| 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]) |
dom remove-refsize0(gstore) ∩ ginval = ∅ ⊦ (@(m, m0, m1) ∈ remove-refsize0(gstore) ↔ @(m, m0, m1) ∈ gstore ∧ ¬ m ∈ ginval ∧ gstore[m].ref-size ≠ 0) ∧ ( @(m, m0, m1) ∈ remove-refsize0(gstore) → nodes(remove-refsize0(gstore), ∅)[@(m, m0, m1)] = (nodes(gstore, ginval) \ refsize0-addresses(gstore \ ginval))[@(m, m0, m1)])
Used simplifier rules: ⊦ ¬ n0 ∈ ns → (@(n0, n1, n2) ∈ gstore \ ns ↔ @(n0, n1, n2) ∈ gstore); (s)