| # kx0 = # ax1, adr ∈ ri[key, adr1][kx0, ax1], adr ∈ ri[key, adr1] \ kx0.toSet ⊦ adr = adr1, dups(kx0), adr ∈ ax1, key ∈ kx0, ∃ key0. key0 ≠ key ∧ key0 ∈ ri \ kx0.toSet ∧ (ri \ kx0.toSet)[key0] = adr |
⊦ adr ∈ ri ↔ (∃ key. key ∈ ri ∧ ri[key] = adr)
# kx0 = # ax1, adr ∈ ri[key, adr1][kx0, ax1], ∃ key0. key0 ∈ ri[key, adr1] \ kx0.toSet ∧ (ri[key, adr1] \ kx0.toSet)[key0] = adr ⊦ adr = adr1, dups(kx0), key ∈ kx0, adr ∈ ax1, ∃ key0. key0 ≠ key ∧ key0 ∈ ri \ kx0.toSet ∧ (ri \ kx0.toSet)[key0] = adr
Used terms: ri[key, adr1] \ kx0.toSet, adr