| ⊦ m ∈ gstore, ∀ adr. (adr ∈ nodes(gstore[m, groupblock([], [], m0)], ginval -- m) ↔ adr ∈ nodes(gstore, ginval)) ∧ ( adr ∈ nodes(gstore[m, groupblock([], [], m0)], ginval -- m) → nodes(gstore[m, groupblock([], [], m0)], ginval -- m)[adr] = nodes(gstore, ginval)[adr]) |
⊦ m ∈ gstore, (adr ∈ gstore[m, groupblock([], [], m0)] ∧ (adr.lnum = m ∨ ¬ adr.lnum ∈ ginval) → adr ∈ gstore ∧ ¬ adr.lnum ∈ ginval) ∧ ( adr ∈ gstore[m, groupblock([], [], m0)] ∧ (adr.lnum = m ∨ ¬ adr.lnum ∈ ginval) → nodes(gstore[m, groupblock([], [], m0)], ginval -- m)[adr] = nodes(gstore, ginval)[adr])
Used simplifier rules: nodes-gstore-in: ⊦ adr ∈ nodes(gstore, ginval) ↔ ¬ ¬(adr ∈ gstore ∧ ¬ adr.lnum ∈ ginval);% ⊦ ¬ n ∈ gstore ∧ adr ∈ gstore → adr ∈ gstore[n, gblock]; (ss)% ⊦ n ∈ ns -- n0 ↔ n ≠ n0 ∧ n ∈ ns; (s)