| dom remove-refsize0(gstore) ∩ ginval = ∅ ⊦ (adr ∈ remove-refsize0(gstore) ↔ adr ∈ nodes(gstore, ginval) ∧ ¬ adr ∈ refsize0-addresses(gstore \ ginval)) ∧ (adr ∈ remove-refsize0(gstore) → nodes(remove-refsize0(gstore), ∅)[adr] = (nodes(gstore, ginval) \ refsize0-addresses(gstore \ ginval))[adr]) |
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])
Used simplifier rules: nodes-gstore-in: ⊦ adr ∈ nodes(gstore, ginval) ↔ ¬ ¬(adr ∈ gstore ∧ ¬ adr.lnum ∈ ginval);%refsize0-addresses: ⊦ adr ∈ refsize0-addresses(gstore) ↔ ¬ ¬(adr ∈ gstore ∧ gstore[adr.lnum].ref-size = 0);% ⊦ ¬ n ∈ ns → (gstore \ ns)[n] = gstore[n]; (s)