| # ax0 = # ndx0, new(ax0, fs0), new(adr + ax, fs0[ax0, ndx0]), ∀ ax0, ndx0, fs0. # ax0 = # ndx0 ∧ new(ax, fs0[ax0, ndx0]) ∧ new(ax0, fs0) → new(ax, fs0) ⊦ new(adr + ax, fs0) |
# ax0 = # ndx0, new(ax0, fs0), new(ax, fs0[ax0, ndx0]), ∀ ax0, ndx0, fs0. # ax0 = # ndx0 ∧ new(ax, fs0[ax0, ndx0]) ∧ new(ax0, fs0) → new(ax, fs0) ⊦ new(ax, fs0), adr ∈ ax0, adr ∈ fs0
Used simplifier rules: new-rec: ⊦ new(adr ' + log, fs) ↔ ¬ adr ∈ fs ∧ new(log, fs);%in-write: # ax = # ndx ⊦ adr ∈ fs[ax, ndx] ↔ adr ∈ fs ∨ adr ∈ ax;%a: ⊦ (ax + ax0) + ax1 = ax + ax0 + ax1; from specification list[address-list-set]% ⊦ adr + ax = adr ' + ax; (s)