| #(adr + ax) = # ndx0, # ax1 = # ndx1, ∀ ax1, ndx1, ndx0, fs. # ax1 = # ndx1 ∧ # ax = # ndx0 → fs[ax + ax1, ndx0 + ndx1] = fs[ax, ndx0][ax1, ndx1] ⊦ fs[(adr + ax) + ax1, ndx0 + ndx1] = fs[adr + ax, ndx0][ax1, ndx1] |
# ax1 = # ndx1, # ax + 1 = # ndx0, ∀ ax1, ndx1, ndx0, fs. # ax1 = # ndx1 ∧ # ax = # ndx0 → fs[ax + ax1, ndx0 + ndx1] = fs[ax, ndx0][ax1, ndx1] ⊦ fs[(adr ' + ax) + ax1, ndx0 + ndx1] = fs[adr ' + ax, ndx0][ax1, ndx1]
Used simplifier rules: 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)