| gstore[m] = groupblock(gndx, lax, m2), crash(gstore, gstore0, ginval, nx) ↓[@(m, m0, m1)] = mkgnode(nd, m4, boolvar, boolvar0), inv(groupblock(gndx, lax, m2)), inv(gstore \ ginval), m ∈ gstore, @(m0, m1) ∈ prefixn(valid-group-nodes(gndx), lax) ⊦ nd = gstore ↓[@(m, m0, m1)].nd, m ∈ ginval |
crash(gstore, gstore0, ginval, nx) ↓[@(m, m0, m1)] = mkgnode(nd, m4, boolvar, boolvar0), gstore[m] = groupblock(gndx, lax, m2), gstore ↓[@(m, m0, m1)] = mkgnode(nd0, m3, boolvar1, boolvar2), inv(gstore \ ginval), inv(groupblock(gndx, lax, m2)), @(m0, m1) ∈ prefixn(valid-group-nodes(gndx), lax), m ∈ gstore ⊦ nd = nd0, 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, m0, m1)], nd0, m3, boolvar1, boolvar2