| # ax = # ndx, ax[n0] = @(m0, m1, m2), n0 < # ndx, ∀ n. n < # ndx → ax[n] ∈ gstore ∧ ¬ ax[n].lnum ∈ ginval ∧ gstore[ax[n]].nd = ndx[n] ⊦ ndx = [], @(m0, m1, m2) ∈ gstore[n, groupblock(gstore[n].gndlist, gstore[n].ladrlist, m)] ∧ ¬ m0 ∈ ginval ∧ gstore[n, groupblock(gstore[n].gndlist, gstore[n].ladrlist, m)][@(m0, m1, m2)].nd = ndx[n0] |
# ax = # ndx, ax[n0] = @(m0, m1, m2), gstore[n] = groupblock(gndx, lax, m3), n0 < # ndx, ∀ n. n < # ndx → ax[n] ∈ gstore ∧ ¬ ax[n].lnum ∈ ginval ∧ gstore[ax[n]].nd = ndx[n] ⊦ ndx = [], @(m0, m1, m2) ∈ gstore[n, groupblock(gndx, lax, m)] ∧ ¬ m0 ∈ ginval ∧ gstore[n, groupblock(gndx, lax, m)][@(m0, m1, m2)].nd = ndx[n0]
Used simplifier rules: ⊦ (gndx = gblock.gndlist ∧ lax = gblock.ladrlist) ∧ m = gblock.ref-size ↔ gblock = groupblock(gndx, lax, m); (elim) Used terms: gstore[n], gndx, lax, m3