| # ax = # ndx, gstore[@(m0, m1, m2)] = mkgnode(ndx[n0], m5, boolvar1, boolvar2), gstore[n, groupblock(gndx, lax, m)][@(m0, m1, m2)] = mkgnode(nd, m4, boolvar, boolvar0), ax[n0] = @(m0, m1, m2), gstore[n] = groupblock(gndx, lax, m3), gstore[n, groupblock(gndx, lax, m)][m0] = groupblock(gndx0, lax0, m6), n0 < # ndx, m0 ∈ gstore[n, groupblock(gndx, lax, m)], @(m0, m1, m2) ∈ gstore ⊦ ndx = [], m0 ∈ ginval, nd = ndx[n0] ∧ @(m1, m2) ∈ lax0 |
⊦ n ≠ n0 → gstore[n0, gblock][n] = gstore[n]
# ax = # ndx, gstore[n, groupblock(gndx, lax, m)][m0] = groupblock(gndx0, lax0, m6), 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), m0 = n, n0 < # ndx, @(m0, m1, m2) ∈ gstore, m0 ∈ gstore[n, groupblock(gndx, lax, m)] ⊦ ndx = [], m0 ∈ ginval, nd = ndx[n0] ∧ @(m1, m2) ∈ lax0
Used simplifier rules: m ≠ n ⊦ @(m, m0, m1) ∈ gstore → gstore[n, gblock][@(m, m0, m1)] = gstore[@(m, m0, m1)]; (s)% ⊦ n ≠ n0 → (n ∈ gstore[n0, gblock] ↔ n ∈ gstore); (s)%⊦ gstore[n] = groupblock(gndx, lax, m0) ∧ @(n, n0, n1) ∈ gstore → @(n0, n1) ∈ lax; (ss)%⊦ mkgnode(nd, m, boolvar, boolvar0) = mkgnode(nd0, m0, boolvar1, boolvar2) ↔ nd = nd0 ∧ m = m0 ∧ (boolvar ↔ boolvar1) ∧ (boolvar0 ↔ boolvar2); (ws) Used terms: m0, groupblock(gndx, lax, m), n, gstore