| inv(gstore \ ginval) ⊦ (¬ m ∈ ginval → (@(m, m0, m1) ∈ crash(gstore, gstore0, ginval, nx) ↓ ↔ @(m, m0, m1) ∈ gstore ↓)) ∧ ( @(m, m0, m1) ∈ crash(gstore, gstore0, ginval, nx) ↓ ∧ ¬ m ∈ ginval → nodes(crash(gstore, gstore0, ginval, nx) ↓, ginval)[@(m, m0, m1)] = nodes(gstore ↓, ginval)[@(m, m0, m1)]) |
⊦ adr ∈ gstore ↔ adr.lnum ∈ gstore ∧ @(adr.pos, adr.size) ∈ gstore[adr.lnum].ladrlist
inv(gstore \ ginval) ⊦ ( ¬ m ∈ ginval → ( @(m, m0, m1).lnum ∈ crash(gstore, gstore0, ginval, nx) ↓ ∧ @(@(m, m0, m1).pos, @(m, m0, m1).size) ∈ crash(gstore, gstore0, ginval, nx) ↓[@(m, m0, m1).lnum].ladrlist ↔ @(m, m0, m1) ∈ gstore ↓)) ∧ ( ( @(m, m0, m1).lnum ∈ crash(gstore, gstore0, ginval, nx) ↓ ∧ @(@(m, m0, m1).pos, @(m, m0, m1).size) ∈ crash(gstore, gstore0, ginval, nx) ↓[@(m, m0, m1).lnum].ladrlist) ∧ ¬ m ∈ ginval → nodes(crash(gstore, gstore0, ginval, nx) ↓, ginval)[@(m, m0, m1)] = nodes(gstore ↓, ginval)[@(m, m0, m1)])
Used terms: crash(gstore, gstore0, ginval, nx) ↓, @(m, m0, m1)