| dom remove-refsize0(gstore) ∩ ginval = ∅ ⊦ (adr ∈ remove-refsize0(gstore) ↔ adr ∈ gstore ∧ ¬ adr.lnum ∈ ginval ∧ (¬ adr ∈ gstore \ ginval ∨ gstore[adr.lnum].ref-size ≠ 0)) ∧ (adr ∈ remove-refsize0(gstore) → nodes(remove-refsize0(gstore), ∅)[adr] = (nodes(gstore, ginval) \ refsize0-addresses(gstore \ ginval))[adr]) |
adr = @(m, m0, m1), dom remove-refsize0(gstore) ∩ ginval = ∅ ⊦ (adr ∈ remove-refsize0(gstore) ↔ adr ∈ gstore ∧ ¬ m ∈ ginval ∧ (¬ adr ∈ gstore \ ginval ∨ gstore[m].ref-size ≠ 0)) ∧ (adr ∈ remove-refsize0(gstore) → nodes(remove-refsize0(gstore), ∅)[adr] = (nodes(gstore, ginval) \ refsize0-addresses(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