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