| a ' + x = x0 + a0 ' + y + a0 ' + z, a ∈ x0 ⊦ a ∈ x, x = x0.rest + a0 ' + y + a0 ' + z, ∃ a0, x0, y, z. x = x0 + a0 ' + y + a0 ' + z |
Used simplifier rules: c: ⊦ a + x = a ' + x; from specification list%a: ⊦ (x + y) + z = x + y + z; from specification list%c-06: ⊦ a ' + x = b ' + y ↔ a = b ∧ x = y; from specification list%Nil: ⊦ [] + x = x; from specification list%neq: ⊦ ¬ a ∈ x → x ≠ y + a ' + z; from specification list%x ≠ [] ⊦ a = x.first ∧ y = x.rest ↔ x = a + y; (elim) Used terms: x0, a1, y0