| fs[adr0].key = fs[adr].key, referenced-adrs(ax0, ri) = ax1 + adr0 ' + ax2, ri-cons(ri, fs), adr ∈ ri ⊦ dups(ax0), dups(fs[ax1].keys + fs[ax2].keys), dups(fs[ax1].keys), dups(fs[ax2].keys), adr ∈ ax0, fs[adr].key ∈ fs[ax1].keys, fs[adr].key ∈ fs[ax2].keys |
⊦ referenced-adrs(ax, ri) = ax0 + ax1 ↔ (∃ ax2, ax3. ax = ax2 + ax3 ∧ referenced-adrs(ax2, ri) = ax0 ∧ referenced-adrs(ax3, ri) = ax1)
fs[adr0].key = fs[adr].key, ri-cons(ri, fs), adr ∈ ri, ∃ ax4, ax3. ax0 = ax4 + ax3 ∧ referenced-adrs(ax4, ri) = ax1 ∧ referenced-adrs(ax3, ri) = adr0 ' + ax2 ⊦ dups(fs[ax2].keys), dups(fs[ax1].keys), dups(fs[ax1].keys + fs[ax2].keys), dups(ax0), fs[adr].key ∈ fs[ax2].keys, fs[adr].key ∈ fs[ax1].keys, adr ∈ ax0
Used terms: adr0 ' + ax2, ax1, ri, ax0