| rev(x) + y = a ' + y0, a ∈ x ∨ a ∈ y ⊦ x = [], y0 = rev(x).rest + y |
rev(x) = a0 + y1 ∧ rev(x) ≠ [], rev(x) + y = a ' + y0, a ∈ x ∨ a ∈ y ⊦ x = [], y0 = y1 + y
Used simplifier rules: rev-empty: ⊦ rev(x) = [] ↔ x = [];%x ≠ [] ⊦ a = x.first ∧ y = x.rest ↔ x = a + y; (elim) Used terms: rev(x), a0, y1