| # lax = # gndx, # lax1 = # gndx1, gstore[n] = groupblock(gndx, lax, m), transaction(ndx, gndx1), n ∈ gstore, @(m1, m2, m3) ∈ gstore ∨ m1 = n ∧ @(m2, m3) ∈ lax1 ⊦ gstore[n, groupblock(gndx + gndx1, lax + lax1, m0)][@(m1, m2, m3)].nd = nodes(gstore, ginval)[lax1.to-adr(n), ndx][@(m1, m2, m3)], dups(lax + lax1), dups(lax), dups(lax1), m1 ∈ ginval, n ∈ ginval |
# lax1 = # gndx1, # lax = # gndx, gstore[n] = groupblock(gndx, lax, m), gstore[n, groupblock(gndx + gndx1, lax + lax1, m0)][@(m1, m2, m3)] = mkgnode(nd, m4, boolvar, boolvar0), transaction(ndx, gndx1), n ∈ gstore, @(m1, m2, m3) ∈ gstore ∨ m1 = n ∧ @(m2, m3) ∈ lax1 ⊦ nd = nodes(gstore, ginval)[lax1.to-adr(n), ndx][@(m1, m2, m3)], dups(lax1), dups(lax), dups(lax + lax1), n ∈ ginval, m1 ∈ 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(gndx + gndx1, lax + lax1, m0)][@(m1, m2, m3)], nd, m4, boolvar, boolvar0