| ⊦ ∃ z, x0, y0. x = z + x0 ∧ y = z + y0 ∧ (x0 ≠ [] ∧ y0 ≠ [] → x0.head ≠ y0.head) |
⊦ ∃ z, x0, y0. x = z + x0 ∧ [] = z + y0 ∧ (x0 ≠ [] ∧ y0 ≠ [] → x0.head ≠ y0.head)
∀ x. ∃ z, x0, y1. x = z + x0 ∧ y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) ⊦ ∃ z, x0, y1. x = z + x0 ∧ a + y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head)
Used simplifier rules: list freely generated by [], +;;
| ⊦ ∃ z, x0, y0. x = z + x0 ∧ [] = z + y0 ∧ (x0 ≠ [] ∧ y0 ≠ [] → x0.head ≠ y0.head) |
Used simplifier rules: Nil: ⊦ [] + x = x; a: ⊦ (x + y) + z = x + y + z; Used terms: [], x, []
| ∀ x. ∃ z, x0, y1. x = z + x0 ∧ y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) ⊦ ∃ z, x0, y1. x = z + x0 ∧ a + y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) |
∀ x. ∃ z, x0, y1. x = z + x0 ∧ y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) ⊦ ∃ z, x0, y1. x = z + x0 ∧ a ' + y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head)
Used simplifier rules: c: ⊦ a + x = a ' + x;
| ∀ x. ∃ z, x0, y1. x = z + x0 ∧ y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) ⊦ ∃ z, x0, y1. x = z + x0 ∧ a ' + y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) |
x = [], ∀ x. ∃ z, x0, y1. x = z + x0 ∧ y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) ⊦ ∃ z, x0, y1. x = z + x0 ∧ a ' + y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head)
x = a0 + x1, ∀ x. ∃ z, x0, y1. x = z + x0 ∧ y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) ⊦ ∃ z, x0, y1. x = z + x0 ∧ a ' + y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head)
Used simplifier rules: list freely generated by [], +;;
| x = [], ∀ x. ∃ z, x0, y1. x = z + x0 ∧ y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) ⊦ ∃ z, x0, y1. x = z + x0 ∧ a ' + y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) |
∀ x. ∃ z, x0, y1. x = z + x0 ∧ y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) ⊦ ∃ z, x0, y1. [] = z + x0 ∧ a ' + y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head)
| ∀ x. ∃ z, x0, y1. x = z + x0 ∧ y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) ⊦ ∃ z, x0, y1. [] = z + x0 ∧ a ' + y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) |
Used simplifier rules: c: ⊦ a + x = a ' + x; Nil: ⊦ [] + x = x; app-01: ⊦ x + y = x + z ↔ y = z; a: ⊦ (x + y) + z = x + y + z; Used terms: [], [], a + y0
| x = a0 + x1, ∀ x. ∃ z, x0, y1. x = z + x0 ∧ y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) ⊦ ∃ z, x0, y1. x = z + x0 ∧ a ' + y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) |
∀ x. ∃ z, x0, y1. x = z + x0 ∧ y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) ⊦ ∃ z, x0, y1. a0 ' + x1 = z + x0 ∧ a ' + y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head)
Used simplifier rules: c: ⊦ a + x = a ' + x;
| ∀ x. ∃ z, x0, y1. x = z + x0 ∧ y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) ⊦ ∃ z, x0, y1. a0 ' + x1 = z + x0 ∧ a ' + y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) |
a = a0, ∀ x. ∃ z, x0, y1. x = z + x0 ∧ y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) ⊦ ∃ z, x0, y1. a0 ' + x1 = z + x0 ∧ a ' + y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head)
a ≠ a0, ∀ x. ∃ z, x0, y1. x = z + x0 ∧ y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) ⊦ ∃ z, x0, y1. a0 ' + x1 = z + x0 ∧ a ' + y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head)
Used formulas: a = a0
| a = a0, ∀ x. ∃ z, x0, y1. x = z + x0 ∧ y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) ⊦ ∃ z, x0, y1. a0 ' + x1 = z + x0 ∧ a ' + y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) |
∀ x. ∃ z, x0, y1. x = z + x0 ∧ y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) ⊦ ∃ z, x0, y1. a0 ' + x1 = z + x0 ∧ a0 ' + y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head)
| ∀ x. ∃ z, x0, y1. x = z + x0 ∧ y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) ⊦ ∃ z, x0, y1. a0 ' + x1 = z + x0 ∧ a0 ' + y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) |
∃ z, x0, y1. x1 = z + x0 ∧ y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) ⊦ ∃ z, x0, y1. a0 ' + x1 = z + x0 ∧ a0 ' + y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head)
Used terms: x1
| ∃ z, x0, y1. x1 = z + x0 ∧ y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) ⊦ ∃ z, x0, y1. a0 ' + x1 = z + x0 ∧ a0 ' + y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) |
x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head ⊦ ∃ z0, x, y. a0 ' + z + x0 = z0 + x ∧ a0 ' + z + y1 = z0 + y ∧ (x ≠ [] ∧ y ≠ [] → x.head ≠ y.head)
| x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head ⊦ ∃ z0, x, y. a0 ' + z + x0 = z0 + x ∧ a0 ' + z + y1 = z0 + y ∧ (x ≠ [] ∧ y ≠ [] → x.head ≠ y.head) |
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; Used terms: a0 ' + z, x0, y1
| a ≠ a0, ∀ x. ∃ z, x0, y1. x = z + x0 ∧ y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) ⊦ ∃ z, x0, y1. a0 ' + x1 = z + x0 ∧ a ' + y0 = z + y1 ∧ (x0 ≠ [] ∧ y1 ≠ [] → x0.head ≠ y1.head) |
Used simplifier rules: Nil: ⊦ [] + x = x; app-01: ⊦ x + y = x + z ↔ y = z; e-01: ⊦ a ' + x ≠ []; c-08: ⊦ (a ' + x).head = a; a: ⊦ (x + y) + z = x + y + z; Used terms: [], a0 ' + x1, a ' + 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.