| gndx0[pos(@(m0, m1), lax0)] = mkgnode(nd, m3, boolvar, boolvar0), gstore[m] = groupblock(gndx, lax, m2), gstore[@(m, m0, m1)] = mkgnode(nd0, m4, boolvar1, boolvar2), remove-refsize0(gstore)[m] = groupblock(gndx0, lax0, m5), dom remove-refsize0(gstore) ∩ ginval = ∅, @(m, m0, m1) ∈ gstore, m ∈ gstore, @(m0, m1) ∈ lax, @(m, m0, m1) ∈ remove-refsize0(gstore) ⊦ m2 = 0, nd = nd0, m ∈ ginval |
⊦ n ∈ gstore ∧ gstore[n].ref-size ≠ 0 → remove-refsize0(gstore)[n] = gstore[n]
gstore[m] = groupblock(gndx0, lax0, m5), gstore[@(m, m0, m1)] = mkgnode(nd0, m4, boolvar1, boolvar2), gstore[m] = groupblock(gndx, lax, m2), gndx0[pos(@(m0, m1), lax0)] = mkgnode(nd, m3, boolvar, boolvar0), dom remove-refsize0(gstore) ∩ ginval = ∅, @(m, m0, m1) ∈ remove-refsize0(gstore), @(m0, m1) ∈ lax, @(m, m0, m1) ∈ gstore, m ∈ gstore ⊦ gstore[m].ref-size = 0, m2 = 0, nd = nd0, m ∈ ginval
Used simplifier rules: ⊦ groupblock(gndx, lax, m).ref-size = m; (s) Used terms: m, gstore