| nd.key = fs[adr].key, ri-cons(ri, fs), adr ∈ ri, ∃ ax2, ax1. referenced-adrs(ax0, ri) = ax2 + ax1 ∧ fs[ax2] = ndx ∧ fs[ax1] = nd ' + ndx2 ⊦ dups(ax0), dups(fs[referenced-adrs(ax0, ri)].keys), adr ∈ ax0 |
nd.key = fs[adr].key, fs[ax] = nd ' + ndx2, referenced-adrs(ax0, ri) = ax1 + ax, ri-cons(ri, fs), nd ∈ fs[ax], adr ∈ ri ⊦ dups(ax0), dups(fs[ax1].keys + fs[ax].keys), dups(fs[ax1].keys), dups(fs[ax].keys), adr ∈ ax0
Used simplifier rules: keys-app: ⊦ (ndx0 + ndx1).keys = ndx0.keys + ndx1.keys;%a: ⊦ (kx + kx0) + kx1 = kx + kx0 + kx1; from specification list[key-list-set]%a: ⊦ ¬ dups(kx + kx0) → ¬ dups(kx) ∧ ¬ dups(kx0); (forward) from specification list-dup[key-list-set]%a: ⊦ (ax + ax0) + ax1 = ax + ax0 + ax1; from specification list[address-list-set]% ⊦ fs[ax0 + ax1] = fs[ax0] + fs[ax1]; (s)%a: ⊦ (ndx + ndx0) + ndx1 = ndx + ndx0 + ndx1; from specification list[node-list]%in-14: ⊦ nd ' + ndx = ndx0 → nd ∈ ndx0; (forward) from specification list[node-list]