| (gnd + gndx0).nds = ndx0 + ndx1, ∀ ndx0, ndx1. gndx0.nds = ndx0 + ndx1 → (∃ gndx2, gndx1. gndx0 = gndx2 + gndx1 ∧ ndx0 = gndx2.nds ∧ ndx1 = gndx1.nds) ⊦ ∃ gndx2, gndx1. gnd + gndx0 = gndx2 + gndx1 ∧ ndx0 = gndx2.nds ∧ ndx1 = gndx1.nds |
gnd.nd ' + gndx0.nds = ndx0 + ndx1, ∀ ndx0, ndx1. gndx0.nds = ndx0 + ndx1 → (∃ gndx2, gndx1. gndx0 = gndx2 + gndx1 ∧ ndx0 = gndx2.nds ∧ ndx1 = gndx1.nds), gnd.nd ∈ ndx0 ∨ gnd.nd ∈ ndx1 ⊦ ∃ gndx, gndx1. gnd ' + gndx0 = gndx + gndx1 ∧ ndx0 = gndx.nds ∧ ndx1 = gndx1.nds
Used simplifier rules: ⊦ nd ∈ ndx + ndx0 ↔ nd ∈ ndx ∨ nd ∈ ndx0; (s)%a: ⊦ (ndx + ndx0) + ndx1 = ndx + ndx0 + ndx1; from specification list[node-list]%in-14: ⊦ nd ' + ndx = ndx0 → nd ∈ ndx0; (forward) from specification list[node-list]%a: ⊦ (gndx + gndx0) + gndx1 = gndx + gndx0 + gndx1; from specification list[group-store]% ⊦ nd + ndx = nd ' + ndx; (s)% ⊦ (gnd ' + gndx).nds = gnd.nd + gndx.nds; (s)% ⊦ gnd + gndx = gnd ' + gndx; (s)