| fs[adr] ' + fs[ax0] = ndx0 + ndx1, ndx0 = nd + ndx, fs[adr] ∈ ndx0, ∀ fs, ndx0, ndx1. fs[ax0] = ndx0 + ndx1 → (∃ ax2, ax1. ax0 = ax2 + ax1 ∧ fs[ax2] = ndx0 ∧ fs[ax1] = ndx1) ⊦ ∃ ax, ax1. adr ' + ax0 = ax + ax1 ∧ fs[ax] = ndx0 ∧ fs[ax1] = ndx1 |
fs[ax0] = ndx + ndx1, ∀ fs, ndx0, ndx1. fs[ax0] = ndx0 + ndx1 → (∃ ax2, ax1. ax0 = ax2 + ax1 ∧ fs[ax2] = ndx0 ∧ fs[ax1] = ndx1) ⊦ ∃ ax, ax1. adr ' + ax0 = ax + ax1 ∧ fs[ax] = fs[adr] ' + ndx ∧ fs[ax1] = ndx1
Used simplifier rules: ⊦ nd ∈ nd0 ' + ndx ↔ nd = nd0 ∨ nd ∈ ndx; (s)% ⊦ nd ' + ndx = nd0 ' + ndx0 ↔ nd = nd0 ∧ ndx = ndx0; (ws)%a: ⊦ (ndx + ndx0) + ndx1 = ndx + ndx0 + ndx1; from specification list[node-list]% ⊦ nd + ndx = nd ' + ndx; (s)