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