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