| gstore ↓[@(m, m0, m1)] = mkgnode(nd0, m3, boolvar1, boolvar2), gstore[m] = groupblock(gndx, lax, m2), crash(gstore, gstore0, ginval, nx) ↓[@(m, m0, m1).lnum].gndlist [pos(@(@(m, m0, m1).pos, @(m, m0, m1).size), crash(gstore, gstore0, ginval, nx) ↓[@(m, m0, m1).lnum].ladrlist) ] = mkgnode(nd, m4, boolvar, boolvar0), inv(groupblock(gndx, lax, m2)), inv(gstore \ ginval), m ∈ gstore, @(m0, m1) ∈ prefixn(valid-group-nodes(gndx), lax), @(m, m0, m1) ∈ crash(gstore, gstore0, ginval, nx) ↓ ⊦ nd = nd0, m ∈ ginval |
gstore[m] = groupblock(gndx, lax, m2), gstore ↓[@(m, m0, m1)] = mkgnode(nd0, m3, boolvar1, boolvar2), crash(gstore, gstore0, ginval, nx) ↓[m].gndlist[pos(@(m0, m1), crash(gstore, gstore0, ginval, nx) ↓[m].ladrlist)] = mkgnode(nd, m4, boolvar, boolvar0), inv(gstore \ ginval), inv(groupblock(gndx, lax, m2)), @(m0, m1) ∈ prefixn(valid-group-nodes(gndx), lax), m ∈ gstore, @(m0, m1) ∈ crash(gstore, gstore0, ginval, nx) ↓[m].ladrlist ⊦ nd = nd0, m ∈ ginval
Used simplifier rules: down-store-adr-in-explicit: ⊦ @(m0, m1, m2) ∈ gstore ↓ ↔ m0 ∈ gstore ∧ @(m1, m2) ∈ gstore ↓[m0].ladrlist;% ⊦ n ∈ crash(gstore, gstore0, ginval, nx) ↔ n ∈ gstore ∨ n ∈ ginval; (ws)% ⊦ @(m, m0, m1).size = m1; (s)% ⊦ @(m, m0, m1).pos = m0; (s)% ⊦ @(m, m0, m1).lnum = m; (s)