| # ax1 + # ax0 + 1 = # ndx ⊦ fs[ax1 + adr ' + ax0, ndx][adr] = ndx[# ax1], dups(ax1 + ax0), dups(ax1), dups(ax0), adr ∈ ax1, adr ∈ ax0 |
# [] + # ax0 + 1 = # ndx ⊦ fs[[] + adr ' + ax0, ndx][adr] = ndx[# []], dups(ax0), dups([]), dups([] + ax0), adr ∈ ax0, adr ∈ []
#(adr0 + ax) + # ax0 + 1 = # ndx, ∀ ax0, ndx, fs, adr. # ax + # ax0 + 1 = # ndx → fs[ax + adr ' + ax0, ndx][adr] = ndx[# ax] ∨ dups(ax + ax0) ∨ dups(ax) ∨ dups(ax0) ∨ adr ∈ ax ∨ adr ∈ ax0 ⊦ fs[(adr0 + ax) + adr ' + ax0, ndx][adr] = ndx[#(adr0 + ax)], dups(ax0), dups(adr0 + ax), dups((adr0 + ax) + ax0), adr ∈ ax0, adr ∈ adr0 + ax
Used simplifier rules: address-list freely generated by [], +;;