| rev(x) + y = a + y0 ⊦ rev(x) + y = [], x = [], y0 = rev(x).tail + y |
rev(x) + y = a ' + y0, a ∈ x ∨ a ∈ y ⊦ x = [], y0 = rev(x).tail + y
Used simplifier rules: rev-in: ⊦ a ∈ rev(x) ↔ a ∈ x;% ⊦ a ∈ x + y ↔ a ∈ x ∨ a ∈ y; (s)% ⊦ a ' + x ≠ []; (s)%a: ⊦ (x + y) + z = x + y + z; from specification list%in-14: ⊦ a ' + x = y → a ∈ y; (forward) from specification list% ⊦ a + x = a ' + x; (s)