| (a0 ' + x1) + a ' + b ' + y + c ' + z = x0 + a ' + c ' + z0, a0 ∈ x0, ∀ a, b, y, c, z, x0, z0. x1 + a ' + b ' + y + c ' + z = x0 + a ' + c ' + z0 → a = b ∨ a = c ∨ b = c ∨ dups(x1 + z) ∨ a ∈ y ∨ a ∈ x1 ∨ a ∈ z ∨ c ∈ x1 ∨ c ∈ z ⊦ a = a0, a = c, a = b, b = c, c = a0, dups(x1 + z), a0 ∈ z, a0 ∈ x1, c ∈ z, c ∈ x1, a ∈ z, a ∈ x1, a ∈ y |
y ≠ [] ⊦ a ' + x = y + z ↔ a = y.head ∧ x = y.tail + z
x1 + a ' + b ' + y + c ' + z = (x0 + a ' + c ').tail + z0, a0 = (x0 + a ' + c ').head, a0 ∈ x0, ∀ a, b, y, c, z, x0, z0. x1 + a ' + b ' + y + c ' + z = x0 + a ' + c ' + z0 → a = b ∨ a = c ∨ b = c ∨ dups(x1 + z) ∨ a ∈ y ∨ a ∈ x1 ∨ a ∈ z ∨ c ∈ x1 ∨ c ∈ z ⊦ x0 + a ' + c ' = [], a = b, a = c, a = a0, b = c, c = a0, dups(x1 + z), a ∈ y, a ∈ x1, a ∈ z, c ∈ x1, c ∈ z, a0 ∈ x1, a0 ∈ z
Used simplifier rules: ⊦ x + y = [] ↔ x = [] ∧ y = []; (as)% ⊦ a ' + x ≠ []; (s)%a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: z0, x0 + a ' + c ', x1 + a ' + b ' + y + c ' + z, a0