| # ax = # ndx, gstore[n] = groupblock(gndx, lax, m3), ax[n0] = @(m0, m1, m2), gstore[n, groupblock(gndx, lax, m)][@(m0, m1, m2)] = mkgnode(nd, m4, boolvar, boolvar0), gstore[@(m0, m1, m2)] = mkgnode(ndx[n0], m5, boolvar1, boolvar2), n0 < # ndx, @(m0, m1, m2) ∈ gstore ⊦ ndx = [], m0 ∈ ginval, ( @(m0, m1, m2).lnum ∈ gstore[n, groupblock(gndx, lax, m)] ∧ @(@(m0, m1, m2).pos, @(m0, m1, m2).size) ∈ gstore[n, groupblock(gndx, lax, m)][@(m0, m1, m2).lnum].ladrlist) ∧ nd = ndx[n0] |
# ax = # ndx, gstore[n] = groupblock(gndx, lax, m3), ax[n0] = @(m0, m1, m2), gstore[n, groupblock(gndx, lax, m)][@(m0, m1, m2)] = mkgnode(nd, m4, boolvar, boolvar0), gstore[@(m0, m1, m2)] = mkgnode(ndx[n0], m5, boolvar1, boolvar2), n0 < # ndx, @(m0, m1, m2) ∈ gstore, m0 ∈ gstore[n, groupblock(gndx, lax, m)] ⊦ ndx = [], m0 ∈ ginval, nd = ndx[n0] ∧ @(m1, m2) ∈ gstore[n, groupblock(gndx, lax, m)][m0].ladrlist
Used simplifier rules: ⊦ ¬ n ∈ gstore → ¬ @(n, n0, n1) ∈ gstore; (s)%m ≠ n ⊦ @(m, m0, m1) ∈ gstore → gstore[n, gblock][@(m, m0, m1)] = gstore[@(m, m0, m1)]; (s)% ⊦ n ∈ gstore[n0, gblock] ↔ n = n0 ∨ n ∈ gstore; (ws)% ⊦ @(m, m0, m1).size = m1; (s)% ⊦ @(m, m0, m1).pos = m0; (s)% ⊦ @(m, m0, m1).lnum = m; (s)