| nd.key ' + ndx0.keys = kx0 + kx1, kx0 = [], ∀ kx0, kx1. ndx0.keys = kx0 + kx1 → (∃ ndx2, ndx1. ndx0 = ndx2 + ndx1 ∧ ndx2.keys = kx0 ∧ ndx1.keys = kx1), nd.key ∈ kx0 ∨ nd.key ∈ kx1 ⊦ ∃ ndx, ndx1. nd ' + ndx0 = ndx + ndx1 ∧ ndx.keys = kx0 ∧ ndx1.keys = kx1 |
∀ kx0, kx1. ndx0.keys = kx0 + kx1 → (∃ ndx2, ndx1. ndx0 = ndx2 + ndx1 ∧ ndx2.keys = kx0 ∧ ndx1.keys = kx1) ⊦ ∃ ndx, ndx1. nd ' + ndx0 = ndx + ndx1 ∧ ndx.keys = [] ∧ ndx1.keys = nd.key ' + ndx0.keys
Used simplifier rules: ⊦ key ∈ key0 ' + kx ↔ key = key0 ∨ key ∈ kx; (s)%in-14: ⊦ key ' + kx = kx0 → key ∈ kx0; (forward) from specification list[key-list-set]% ⊦ ¬ key ∈ []; (s)%a: ⊦ (kx + kx0) + kx1 = kx + kx0 + kx1; from specification list[key-list-set]% ⊦ [] + kx = kx; (s)