| fs[adr + ax0] = ndx0 + ndx1, ∀ fs, ndx0, ndx1. fs[ax0] = ndx0 + ndx1 → (∃ ax2, ax1. ax0 = ax2 + ax1 ∧ fs[ax2] = ndx0 ∧ fs[ax1] = ndx1) ⊦ ∃ ax2, ax1. adr + ax0 = ax2 + ax1 ∧ fs[ax2] = ndx0 ∧ fs[ax1] = ndx1 |
fs[adr] ' + fs[ax0] = ndx0 + ndx1, ∀ fs, ndx0, ndx1. fs[ax0] = ndx0 + ndx1 → (∃ ax2, ax1. ax0 = ax2 + ax1 ∧ fs[ax2] = ndx0 ∧ fs[ax1] = ndx1), fs[adr] ∈ ndx0 ∨ fs[adr] ∈ ndx1 ⊦ ∃ ax, ax1. adr ' + ax0 = ax + ax1 ∧ fs[ax] = ndx0 ∧ fs[ax1] = ndx1
Used simplifier rules: read-rec: ⊦ fs[adr ' + ax] = fs[adr] + fs[ax];% ⊦ nd ∈ ndx + ndx0 ↔ nd ∈ ndx ∨ nd ∈ ndx0; (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]%a: ⊦ (ax + ax0) + ax1 = ax + ax0 + ax1; from specification list[address-list-set]% ⊦ nd + ndx = nd ' + ndx; (s)% ⊦ adr + ax = adr ' + ax; (s)