| # ax = # ndx, adr ∈ ax ⊦ fs[ax, ndx][adr] = ndx[pos(adr, ax)], dups(ax) |
#(adr0 + ax0) = # ndx, adr ∈ adr0 + ax0, ∀ ndx, adr, fs. # ax0 = # ndx ∧ adr ∈ ax0 → fs[ax0, ndx][adr] = ndx[pos(adr, ax0)] ∨ dups(ax0) ⊦ fs[adr0 + ax0, ndx][adr] = ndx[pos(adr, adr0 + ax0)], dups(adr0 + ax0)
Used simplifier rules: address-list freely generated by [], +;;% ⊦ # [] = 0; (s)% ⊦ # ndx = 0 ↔ ndx = []; (s)% ⊦ pos(adr, []) = 0; (s)% ⊦ ¬ adr ∈ []; (s)