| # kx0 = # ax1, ∀ ax0, adr0, ri0. # ax1 = # ax0 → (adr0 ∈ ri0[kx0, ax0] ↔ adr0 ∈ ax0 ∨ adr0 ∈ ri0 \ kx0.toSet) ⊦ adr ∈ ri[key, adr1][kx0, ax1] ↔ adr = adr1 ∨ adr ∈ ax1 ∨ adr ∈ (ri \ kx0.toSet) -- key, dups(kx0), key ∈ kx0 |
# kx0 = # ax1, # ax1 = # ax1 → (adr ∈ ri[key, adr1][kx0, ax1] ↔ adr ∈ ax1 ∨ adr ∈ ri[key, adr1] \ kx0.toSet) ⊦ adr ∈ ri[key, adr1][kx0, ax1] ↔ adr = adr1 ∨ adr ∈ ax1 ∨ adr ∈ (ri \ kx0.toSet) -- key, dups(kx0), key ∈ kx0
Used terms: ax1, adr, ri[key, adr1]