| 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 |
⊦ adr ∈ gstore → gstore[adr] = gstore[adr.lnum].gndlist[pos(@(adr.pos, adr.size), gstore[adr.lnum].ladrlist)]
gstore ↓[@(m, m0, m1)] = mkgnode(nd0, m3, boolvar1, boolvar2), 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 = nd0, m ∈ ginval, @(m, m0, m1) ∈ crash(gstore, gstore0, ginval, nx) ↓
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
Used terms: @(m, m0, m1), crash(gstore, gstore0, ginval, nx) ↓