| gndx0.nds = ndx + ndx1, gndx0.nds = ndx + ndx1 → (∃ gndx2, gndx1. gndx0 = gndx2 + gndx1 ∧ ndx = gndx2.nds ∧ ndx1 = gndx1.nds) ⊦ ∃ gndx, gndx1. mkgnode(nd0, m, boolvar, boolvar0) ' + gndx0 = gndx + gndx1 ∧ nd0 ' + ndx = gndx.nds ∧ ndx1 = gndx1.nds |
⊦ ∃ gndx3, gndx2. mkgnode(nd0, m, boolvar, boolvar0) ' + gndx + gndx1 = gndx3 + gndx2 ∧ nd0 ' + gndx.nds = gndx3.nds ∧ gndx1.nds = gndx2.nds
Used simplifier rules: a: ⊦ (ndx + ndx0) + ndx1 = ndx + ndx0 + ndx1; from specification list[node-list]% ⊦ ndx + ndx0 = ndx + ndx1 ↔ ndx0 = ndx1; (s)%a: ⊦ (gndx + gndx0) + gndx1 = gndx + gndx0 + gndx1; from specification list[group-store]% ⊦ (gndx0 + gndx1).nds = gndx0.nds + gndx1.nds; (s)