| # ndx = # gndx1, # lax = # gndx, # lax1 = # gndx1, gstore[n] = groupblock(gndx, lax, m), gstore[@(m1, m2, m3)] = mkgnode(nd, m4, boolvar, boolvar0), transaction(ndx, gndx1), n ∈ gstore, @(m1, m2, m3) ∈ gstore ⊦ m1 = n, nd = nodes(gstore, ginval)[@(m1, m2, m3)], dups(lax1), dups(lax), dups(lax + lax1), n ∈ ginval, m1 ∈ ginval |
⊦ adr ∈ nodes(gstore, ginval) → nodes(gstore, ginval)[adr] = gstore[adr].nd
Used simplifier rules: nodes-gstore-in: ⊦ adr ∈ nodes(gstore, ginval) ↔ ¬ ¬(adr ∈ gstore ∧ ¬ adr.lnum ∈ ginval);%nodes-gstore-in: ⊦ adr ∈ nodes(gstore, ginval) ↔ ¬ ¬(adr ∈ gstore ∧ ¬ adr.lnum ∈ ginval);% ⊦ @(m, m0, m1).lnum = m; (s)% ⊦ mkgnode(nd, m, boolvar, boolvar0).nd = nd; (s)% ⊦ ¬ adr ∈ fs → fs[adr] = (∅)[adr]; (s) Used terms: @(m1, m2, m3), ginval, gstore