| disj(y0, x1), b ∈ x1, a ∈ x1, disj(x1, y0), ∃ y, z. y0 = y + a0 ' + z ∧ ¬ a0 ∈ z, ∀ a, x0. a ∈ x1 ∧ a ∈ x0 → (∃ b, y, y0. b ∈ x1 ∧ x0 = y + b ' + y0 ∧ disj(x1, y0)), a ∈ y ∨ a = b ⊦ a ∈ y0, b ∈ y0, a0 ∈ x1, ∃ b0, y1, y2. (b0 = a0 ∨ b0 ∈ x1) ∧ y + b ' + y0 = y1 + b0 ' + y2 ∧ disj(a0 ' + x1, y2) |
disj(z, x1), disj(y1, x1), a ∈ x1, b ∈ x1, disj(x1, z), disj(x1, y1), a ∈ y ∨ a = b, ∀ a, x0. a ∈ x1 ∧ a ∈ x0 → (∃ b, y, y0. b ∈ x1 ∧ x0 = y + b ' + y0 ∧ disj(x1, y0)) ⊦ b ∈ y1, a ∈ y1, b ∈ z, a ∈ z, a0 ∈ z, a0 ∈ x1, ∃ b0, y3, y2. (b0 = a0 ∨ b0 ∈ x1) ∧ y + b ' + y1 + a0 ' + z = y3 + b0 ' + y2 ∧ disj(a0 ' + x1, y2)
Used simplifier rules: app-03: ⊦ disj(y + z, x) ↔ disj(x, y) ∧ disj(x, z);%first: ⊦ ¬ a ∈ x → (disj(x, a ' + y) ↔ disj(x, y));%app-02: ⊦ disj(x, y + z) ↔ disj(x, y) ∧ disj(x, z);%cons: ⊦ disj(x, y) → (disj(x, a ' + y) ↔ ¬ a ∈ x);%in: ⊦ disj(x, y) ∧ a ∈ x → ¬ a ∈ y;%sym: ⊦ disj(x, y) → disj(y, x);%in-rec: ⊦ a ∈ b ' + x ↔ ¬ ¬(a = b ∨ a ∈ x); from specification list%in-append: ⊦ a ∈ x + y ↔ ¬ ¬(a ∈ x ∨ a ∈ y); from specification list%a: ⊦ (x + y) + z = x + y + z; from specification list