| ⊦ ¬ a ∈ x ∧ ¬ a ∈ y → (x + a ' + y = z + a ' + y0 ↔ y = y0 ∧ x = z) |
¬(x + a ' + y = z + a ' + y0 ↔ y = y0 ∧ x = z), ¬ a ∈ y, ¬ a ∈ x ⊦
| ¬(x + a ' + y = z + a ' + y0 ↔ y = y0 ∧ x = z), ¬ a ∈ y, ¬ a ∈ x ⊦ |
x + a ' + y = z + a ' + y0, ¬ a ∈ y, ¬ a ∈ x ⊦ y = y0 ∧ x = z
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z;
| x + a ' + y = z + a ' + y0, ¬ a ∈ y, ¬ a ∈ x ⊦ y = y0 ∧ x = z |
(a0 + x0) + a ' + y = z + a ' + y0, ¬ a ∈ y, ¬ a ∈ a0 + x0, ∀ a, y, z, y0. x0 + a ' + y = z + a ' + y0 ∧ ¬ a ∈ y ∧ ¬ a ∈ x0 → y = y0 ∧ x0 = z ⊦ y = y0 ∧ a0 + x0 = z
Used simplifier rules: Nil: ⊦ [] + x = x; inapp-04: ⊦ ¬ a ∈ x → (a ' + x = y + a ' + z ↔ y = [] ∧ z = x); a: ⊦ (x + y) + z = x + y + z; in-empty: ⊦ ¬ a ∈ []; list('a) freely generated by [], +;;
| (a0 + x0) + a ' + y = z + a ' + y0, ¬ a ∈ y, ¬ a ∈ a0 + x0, ∀ a, y, z, y0. x0 + a ' + y = z + a ' + y0 ∧ ¬ a ∈ y ∧ ¬ a ∈ x0 → y = y0 ∧ x0 = z ⊦ y = y0 ∧ a0 + x0 = z |
(a0 ' + x0) + a ' + y = z + a ' + y0, a ≠ a0, a0 ∈ z, ¬ a ∈ x0, ¬ a ∈ y, ∀ a, y, z, y0. x0 + a ' + y = z + a ' + y0 ∧ ¬ a ∈ y ∧ ¬ a ∈ x0 → y = y0 ∧ x0 = z ⊦ y = y0 ∧ a0 ' + x0 = z
Used simplifier rules: in-06: ⊦ a ∈ a0 ' + x ↔ ¬(a ≠ a0 ∧ ¬ a ∈ x); c: ⊦ a + x = a ' + x; in-14: ⊦ a ' + x = y → a ∈ y; in-append: ⊦ a ∈ x + y ↔ a ∈ x ∨ a ∈ y; inapp-02: ⊦ ¬ a ∈ y → (y + a0 ' + z = a ' + z0 ↔ y = [] ∧ a0 = a ∧ z = z0); a: ⊦ (x + y) + z = x + y + z;
| (a0 ' + x0) + a ' + y = z + a ' + y0, a ≠ a0, a0 ∈ z, ¬ a ∈ x0, ¬ a ∈ y, ∀ a, y, z, y0. x0 + a ' + y = z + a ' + y0 ∧ ¬ a ∈ y ∧ ¬ a ∈ x0 → y = y0 ∧ x0 = z ⊦ y = y0 ∧ a0 ' + x0 = z |
y ≠ [] ⊦ a ' + x = y + z ↔ a = y.head ∧ x = y.tail + z
x0 + a ' + y = (z + a ').tail + y0, a0 = (z + a ').head, z + a ' ≠ [], a ≠ a0, a0 ∈ z, ¬ a ∈ x0, ¬ a ∈ y, ∀ a, y, z, y0. x0 + a ' + y = z + a ' + y0 ∧ ¬ a ∈ y ∧ ¬ a ∈ x0 → y = y0 ∧ x0 = z ⊦ y = y0 ∧ a0 ' + x0 = z
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; app-02: ⊦ x + y = [] ↔ x = [] ∧ y = []; e: ⊦ a ' ≠ []; a: ⊦ (x + y) + z = x + y + z; Used terms: y0, z + a ', x0 + a ' + y, a0
| y ≠ [] ⊦ a ' + x = y + z ↔ a = y.head ∧ x = y.tail + z |
| x0 + a ' + y = (z + a ').tail + y0, a0 = (z + a ').head, z + a ' ≠ [], a ≠ a0, a0 ∈ z, ¬ a ∈ x0, ¬ a ∈ y, ∀ a, y, z, y0. x0 + a ' + y = z + a ' + y0 ∧ ¬ a ∈ y ∧ ¬ a ∈ x0 → y = y0 ∧ x0 = z ⊦ y = y0 ∧ a0 ' + x0 = z |
x0 + a ' + y = (z + a ').tail + y0, a ≠ z.head, (z + a ').head ∈ z, ¬ a ∈ x0, ¬ a ∈ y, ∀ a, y, z, y0. x0 + a ' + y = z + a ' + y0 ∧ ¬ a ∈ y ∧ ¬ a ∈ x0 → y = y0 ∧ x0 = z ⊦ y = y0 ∧ z.head ' + x0 = z
Used simplifier rules: e-02: ⊦ x + a ' ≠ []; first-app: ⊦ a ∈ x → (x + y).head = x.head; a: ⊦ (x + y) + z = x + y + z;
| x0 + a ' + y = (z + a ').tail + y0, a ≠ z.head, (z + a ').head ∈ z, ¬ a ∈ x0, ¬ a ∈ y, ∀ a, y, z, y0. x0 + a ' + y = z + a ' + y0 ∧ ¬ a ∈ y ∧ ¬ a ∈ x0 → y = y0 ∧ x0 = z ⊦ y = y0 ∧ z.head ' + x0 = z |
x0 + a ' + y = (z + a ').tail + y0, z = a0 + y1, a ≠ a0, z ≠ [], (z + a ').head ∈ z, ¬ a ∈ x0, ¬ a ∈ y, ∀ a, y, z, y0. x0 + a ' + y = z + a ' + y0 ∧ ¬ a ∈ y ∧ ¬ a ∈ x0 → y = y0 ∧ x0 = z ⊦ y = y0 ∧ a0 ' + x0 = z
Used simplifier rules: rest: ⊦ a '.tail = []; Nil: ⊦ [] + x = x; a: ⊦ (x + y) + z = x + y + z; first: ⊦ a '.head = a; in-empty: ⊦ ¬ a ∈ []; x ≠ [] ⊦ a = x.head ∧ y = x.tail ↔ x = a + y; (elim) Used terms: z, a0, y1
| x0 + a ' + y = (z + a ').tail + y0, z = a0 + y1, a ≠ a0, z ≠ [], (z + a ').head ∈ z, ¬ a ∈ x0, ¬ a ∈ y, ∀ a, y, z, y0. x0 + a ' + y = z + a ' + y0 ∧ ¬ a ∈ y ∧ ¬ a ∈ x0 → y = y0 ∧ x0 = z ⊦ y = y0 ∧ a0 ' + x0 = z |
x0 + a ' + y = (y1 + a ') + y0, a ≠ a0, ¬ a ∈ x0, ¬ a ∈ y, ∀ a, y, z, y0. x0 + a ' + y = z + a ' + y0 ∧ ¬ a ∈ y ∧ ¬ a ∈ x0 → y = y0 ∧ x0 = z ⊦ y = y0 ∧ x0 = y1
Used simplifier rules: c-07: ⊦ (a ' + x).tail = x; e-01: ⊦ a ' + x ≠ []; c-08: ⊦ (a ' + x).head = a; in-append: ⊦ a ∈ x + y ↔ a ∈ x ∨ a ∈ y; in-17: ⊦ a ∈ a0 ' ↔ a = a0; c: ⊦ a + x = a ' + x; app-01: ⊦ x + y = x + z ↔ y = z; a: ⊦ (x + y) + z = x + y + z;
| x0 + a ' + y = (y1 + a ') + y0, a ≠ a0, ¬ a ∈ x0, ¬ a ∈ y, ∀ a, y, z, y0. x0 + a ' + y = z + a ' + y0 ∧ ¬ a ∈ y ∧ ¬ a ∈ x0 → y = y0 ∧ x0 = z ⊦ y = y0 ∧ x0 = y1 |
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; Used terms: a, y, y1, y0
The following image shows the proof tree of sequent calculus. The proved goal is at the bottom. You can click on the nodes to view additional rules. See here for details on colors in a proof tree.