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