| #(adr0 + ax0) = # ndx, ∀ ndx, adr, fs. # ax0 = # ndx → (adr ∈ fs[ax0, ndx] ↔ adr ∈ fs ∨ adr ∈ ax0) ⊦ adr ∈ fs[adr0 + ax0, ndx] ↔ adr ∈ fs ∨ adr ∈ adr0 + ax0 |
# ax0 + 1 = # ndx, ∀ ndx, adr, fs. # ax0 = # ndx → (adr ∈ fs[ax0, ndx] ↔ adr ∈ fs ∨ adr ∈ ax0) ⊦ adr ∈ fs[adr0 ' + ax0, ndx] ↔ adr ∈ fs ∨ adr = adr0 ∨ adr ∈ ax0
Used simplifier rules: ⊦ adr ∈ adr0 ' + ax ↔ adr = adr0 ∨ adr ∈ ax; (s)%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)