| #(adr0 + ax0) = # ndx, ∀ ndx, fs, adr, nd. # ax0 = # ndx → fs[adr, nd][ax0, ndx] = fs[ax0, ndx][adr, nd] ∨ adr ∈ ax0 ⊦ fs[adr, nd][adr0 + ax0, ndx] = fs[adr0 + ax0, ndx][adr, nd], adr ∈ adr0 + ax0 |
# ax0 + 1 = # ndx, ∀ ndx, fs, adr, nd. # ax0 = # ndx → fs[adr, nd][ax0, ndx] = fs[ax0, ndx][adr, nd] ∨ adr ∈ ax0 ⊦ fs[adr, nd][adr0 ' + ax0, ndx] = fs[adr0 ' + ax0, ndx][adr, nd], adr = adr0, adr ∈ ax0
Used simplifier rules: ⊦ adr ∈ adr0 ' + ax ↔ ¬(adr ≠ adr0 ∧ ¬ adr ∈ ax); (ss)%a: ⊦ (ax + ax0) + ax1 = ax + ax0 + ax1; from specification list[address-list-set]% ⊦ m +1 = m + 1; (s)% ⊦ #(adr ' + ax) = (# ax)+1; (s)% ⊦ adr + ax = adr ' + ax; (s)