| gstore[m] = groupblock(gndx, lax, n0), m ∈ gstore, @(m2, m3) ∈ prefixn(valid-group-nodes(gndx), lax), valid-group-nodes(gndx) ≤ n0, n0 ≤ m0, valid-group-nodes(gndx) ≤ m0 ⊦ gstore ↓[m, groupblock(prefixn(valid-group-nodes(gndx), gndx), prefixn(valid-group-nodes(gndx), lax), m0)][@(m, m2, m3)].nd = nodes(gstore ↓, ginval)[@(m, m2, m3)], m ∈ ginval |
gstore[m] = groupblock(gndx, lax, n0), gstore ↓[m, groupblock(prefixn(valid-group-nodes(gndx), gndx), prefixn(valid-group-nodes(gndx), lax), m0)][@(m, m2, m3)] = mkgnode(nd, m1, boolvar, boolvar0), @(m2, m3) ∈ prefixn(valid-group-nodes(gndx), lax), m ∈ gstore, valid-group-nodes(gndx) ≤ m0, n0 ≤ m0, valid-group-nodes(gndx) ≤ n0 ⊦ nd = nodes(gstore ↓, ginval)[@(m, m2, m3)], m ∈ 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 ↓ [m, groupblock (prefixn(valid-group-nodes(gndx), gndx), prefixn(valid-group-nodes(gndx), lax), m0) ] [@(m, m2, m3) ], nd, m1, boolvar, boolvar0