| ∀ a2, y0. a2 = (a1 ' + x).last ∧ y0 = (a1 ' + x).butlast ↔ a1 ' + x = y0 + a2 ' ⊦ a = (a1 ' + x).last ∧ y = a0 ' + (a1 ' + x).butlast ↔ a0 ' + a1 ' + x = y + a ' |
y = a3 + y1, ∀ a2, y0. a2 = (a1 ' + x).last ∧ y0 = (a1 ' + x).butlast ↔ a1 ' + x = y0 + a2 ' ⊦ a = (a1 ' + x).last ∧ y = a0 ' + (a1 ' + x).butlast ↔ a0 ' + a1 ' + x = y + a '
Used simplifier rules: list freely generated by [], +;;% ⊦ a ' + x ≠ []; (s)%a: ⊦ (x + y) + z = x + y + z; from specification list% ⊦ [] + x = x; (s)% ⊦ a ' = b ' + x ↔ a = b ∧ x = []; (ws)