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