| x1 + a ' + b ' + y + c ' + z = (x0 + a ' + c ').rest + z0, (x0 + a ').first ∈ x0, ∀ a, b, y, c, z, x0, z0. x1 + a ' + b ' + y + c ' + z = x0 + a ' + c ' + z0 → b = c ∨ a = b ∨ a = c ∨ a ∈ y ∨ a ∈ x1 ∨ a ∈ z ∨ c ∈ x1 ∨ c ∈ z ∨ dups(x1 + z) ⊦ a = c, a = b, b = c, c = x0.first, a = x0.first, c ∈ z, c ∈ x1, a ∈ z, a ∈ x1, a ∈ y, dups(x1 + z), x0.first ∈ z, x0.first ∈ x1 |
x0 = a0 + y0 ∧ x0 ≠ [], x1 + a ' + b ' + y + c ' + z = (x0 + a ' + c ').rest + z0, (x0 + a ').first ∈ x0, ∀ a, b, y, c, z, x0, z0. x1 + a ' + b ' + y + c ' + z = x0 + a ' + c ' + z0 → b = c ∨ a = b ∨ a = c ∨ a ∈ y ∨ a ∈ x1 ∨ a ∈ z ∨ c ∈ x1 ∨ c ∈ z ∨ dups(x1 + z) ⊦ a = c, a = b, b = c, c = a0, a = a0, c ∈ z, c ∈ x1, a ∈ z, a ∈ x1, a ∈ y, dups(x1 + z), a0 ∈ z, a0 ∈ x1
Used simplifier rules: Nil: ⊦ [] + x = x; from specification list%a: ⊦ (x + y) + z = x + y + z; from specification list%c-07: ⊦ (a ' + x).rest = x; from specification list%inapp-02: ⊦ ¬ a ∈ y → (y + c ' + z = a ' + z0 ↔ y = [] ∧ c = a ∧ z = z0); from specification list%x ≠ [] ⊦ a = x.first ∧ y = x.rest ↔ x = a + y; (elim) Used terms: x0, a0, y0