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