| gstore[m] = groupblock(gndx, lax, m2), dom gstore ∩ ginval = ∅, m ∈ gstore, @(m0, m1) ∈ lax, @(m, m0, m1) ∈ nodes(gstore, ginval) ⊦ gstore[@(m, m0, m1)].nd = nodes(gstore, ∅)[@(m, m0, m1)] |
gstore[m] = groupblock(gndx, lax, m2), dom gstore ∩ ginval = ∅, @(m0, m1) ∈ lax, m ∈ gstore, @(m, m0, m1) ∈ gstore ⊦ gstore[@(m, m0, m1)].nd = nodes(gstore, ∅)[@(m, m0, m1)]
Used simplifier rules: nodes-gstore-in: ⊦ adr ∈ nodes(gstore, ginval) ↔ ¬ ¬(adr ∈ gstore ∧ ¬ adr.lnum ∈ ginval);% ⊦ ns ∩ dom gstore = ∅ ∧ n ∈ gstore → ¬ n ∈ ns; (s)%int-c: ⊦ ns ∩ ns0 = ns0 ∩ ns; from specification set-union[nat-set]%int-a: ⊦ (ns ∩ ns0) ∩ ns1 = ns ∩ ns0 ∩ ns1; from specification set-union[nat-set]% ⊦ @(m, m0, m1).lnum = m; (s)