| fs[ax0] = ndx + ndx1, fs[ax0] = ndx + ndx1 → (∃ ax2, ax1. ax0 = ax2 + ax1 ∧ fs[ax2] = ndx ∧ fs[ax1] = ndx1) ⊦ ∃ ax, ax1. adr ' + ax0 = ax + ax1 ∧ fs[ax] = fs[adr] ' + ndx ∧ fs[ax1] = ndx1 |
⊦ ∃ ax3, ax2. adr ' + ax + ax1 = ax3 + ax2 ∧ fs[ax3] = fs[adr] ' + fs[ax] ∧ fs[ax2] = fs[ax1]
Used simplifier rules: read-app: ⊦ fs[ax0 + ax1] = fs[ax0] + fs[ax1];%a: ⊦ (ndx + ndx0) + ndx1 = ndx + ndx0 + ndx1; from specification list[node-list]% ⊦ ndx + ndx0 = ndx + ndx1 ↔ ndx0 = ndx1; (s)%a: ⊦ (ax + ax0) + ax1 = ax + ax0 + ax1; from specification list[address-list-set]