| # gndx = # lax, gstore[n] = groupblock(gndx, lax, n0), gstore ↓[@(n, m1, m2)] = mkgnode(nd0, m, boolvar1, boolvar2), @(m1, m2) ∈ prefixn(valid-group-nodes(gndx), lax), n ∈ gstore, @(m1, m2) ∈ prefixn((boolvar0 ⊃ # lax + 1;valid-group-nodes(gndx)), lax + ladr '), n0 ≤ m0 ⊦ nd0 = gstore ↓ [n, groupblock (prefixn((boolvar0 ⊃ # lax + 1;valid-group-nodes(gndx)), gndx + mkgnode(nd, m3, boolvar, boolvar0) '), prefixn((boolvar0 ⊃ # lax + 1;valid-group-nodes(gndx)), lax + ladr '), m0) ] [@(n, m1, m2) ] .nd, n ∈ ginval |
# gndx = # lax, gstore ↓[@(n, m1, m2)] = mkgnode(nd0, m, boolvar1, boolvar2), gstore[n] = groupblock(gndx, lax, n0), gstore ↓ [n, groupblock (prefixn((boolvar0 ⊃ # lax + 1;valid-group-nodes(gndx)), gndx + mkgnode(nd, m3, boolvar, boolvar0) '), prefixn((boolvar0 ⊃ # lax + 1;valid-group-nodes(gndx)), lax + ladr '), m0) ] [@(n, m1, m2) ] = mkgnode(nd1, m4, boolvar3, boolvar4), @(m1, m2) ∈ prefixn((boolvar0 ⊃ # lax + 1;valid-group-nodes(gndx)), lax + ladr '), n ∈ gstore, @(m1, m2) ∈ prefixn(valid-group-nodes(gndx), lax), n0 ≤ m0 ⊦ nd0 = nd1, n ∈ ginval
Used simplifier rules: ⊦ ((nd = gnd.nd ∧ m = gnd.sqnum) ∧ (boolvar ↔ gnd.start)) ∧ (boolvar0 ↔ gnd.end) ↔ gnd = mkgnode(nd, m, boolvar, boolvar0); (elim) Used terms: gstore ↓ [n, groupblock (prefixn ((boolvar0 ⊃ # lax + 1;valid-group-nodes(gndx)), gndx + mkgnode(nd, m3, boolvar, boolvar0) '), prefixn ((boolvar0 ⊃ # lax + 1;valid-group-nodes(gndx)), lax + ladr '), m0) ] [@(n, m1, m2) ], nd1, m4, boolvar3, boolvar4