| ⊦ x + x0 ≠ [] → max(x + x0) = max(x) ∨ max(x + x0) = max(x0) |
x + x0 ≠ [], max(x + x0) ≠ max(x), max(x + x0) ≠ max(x0) ⊦
| x + x0 ≠ [], max(x + x0) ≠ max(x), max(x + x0) ≠ max(x0) ⊦ |
x + x0 ≠ [], max(x + x0) ≠ max(x), max(x + x0) ≠ max(x0) ⊦
| x + x0 ≠ [], max(x + x0) ≠ max(x), max(x + x0) ≠ max(x0) ⊦ |
(a + x1) + x0 ≠ [], max((a + x1) + x0) ≠ max(a + x1), max((a + x1) + x0) ≠ max(x0), ∀ x0. ¬(x1 + x0 ≠ [] ∧ max(x1 + x0) ≠ max(x1) ∧ max(x1 + x0) ≠ max(x0)) ⊦
Used simplifier rules: list freely generated by [], +;; ⊦ [] + x = x; (s) a: ⊦ (x + y) + z = x + y + z; from specification list
| (a + x1) + x0 ≠ [], max((a + x1) + x0) ≠ max(a + x1), max((a + x1) + x0) ≠ max(x0), ∀ x0. ¬(x1 + x0 ≠ [] ∧ max(x1 + x0) ≠ max(x1) ∧ max(x1 + x0) ≠ max(x0)) ⊦ |
max((a ' + x1) + x0) ≠ max(a ' + x1), max((a ' + x1) + x0) ≠ max(x0), ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a + x = a ' + x; (s) ⊦ a ' + x ≠ []; (s)
| max((a ' + x1) + x0) ≠ max(a ' + x1), max((a ' + x1) + x0) ≠ max(x0), ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦ |
⊦ x ≠ [] → max(a ' + x) = (max(x) < a ⊃ a;max(x))
x1 + x0 ≠ [], (max(x1 + x0) < a ⊃ a;max(x1 + x0)) ≠ max(a ' + x1), (max(x1 + x0) < a ⊃ a;max(x1 + x0)) ≠ max(x0), ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦
Used simplifier rules: max-base: ⊦ max(a ') = a; ⊦ x + y = [] ↔ x = [] ∧ y = []; (as) ⊦ [] + x = x; (s) ⊦ x + [] = x; (s) a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: x1 + x0, a
| ⊦ x ≠ [] → max(a ' + x) = (max(x) < a ⊃ a;max(x)) |
| x1 + x0 ≠ [], (max(x1 + x0) < a ⊃ a;max(x1 + x0)) ≠ max(a ' + x1), (max(x1 + x0) < a ⊃ a;max(x1 + x0)) ≠ max(x0), ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦ |
x1 + x0 ≠ [], (max(x1 + x0) < a ⊃ a;max(x1 + x0)) ≠ max(a ' + x1), (max(x1 + x0) < a ⊃ a;max(x1 + x0)) ≠ max(x0), ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦
| x1 + x0 ≠ [], (max(x1 + x0) < a ⊃ a;max(x1 + x0)) ≠ max(a ' + x1), (max(x1 + x0) < a ⊃ a;max(x1 + x0)) ≠ max(x0), ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦ |
x1 + x0 ≠ [], (max(x1 + x0) < a ⊃ a;max(x1 + x0)) ≠ max(x0), a ≠ max(a ' + x1), max(x1 + x0) < a, ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦
x1 + x0 ≠ [], (max(x1 + x0) < a ⊃ a;max(x1 + x0)) ≠ max(x0), max(x1 + x0) ≠ max(a ' + x1), ¬ max(x1 + x0) < a, ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦
| x1 + x0 ≠ [], (max(x1 + x0) < a ⊃ a;max(x1 + x0)) ≠ max(x0), a ≠ max(a ' + x1), max(x1 + x0) < a, ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦ |
x1 + x0 ≠ [], a ≠ max(a ' + x1), a ≠ max(x0), max(x1 + x0) < a, ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦
| x1 + x0 ≠ [], a ≠ max(a ' + x1), a ≠ max(x0), max(x1 + x0) < a, ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦ |
⊦ x ≠ [] → max(a ' + x) = (max(x) < a ⊃ a;max(x))
x1 + x0 ≠ [], a ≠ (max(x1) < a ⊃ a;max(x1)), a ≠ max(x0), x1 ≠ [], max(x1 + x0) < a, ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦
Used simplifier rules: max-base: ⊦ max(a ') = a; ⊦ x + [] = x; (s) a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: x1, a
| ⊦ x ≠ [] → max(a ' + x) = (max(x) < a ⊃ a;max(x)) |
| x1 + x0 ≠ [], a ≠ (max(x1) < a ⊃ a;max(x1)), a ≠ max(x0), x1 ≠ [], max(x1 + x0) < a, ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦ |
x1 + x0 ≠ [], a ≠ (max(x1) < a ⊃ a;max(x1)), a ≠ max(x0), x1 ≠ [], max(x1 + x0) < a, ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦
| x1 + x0 ≠ [], a ≠ (max(x1) < a ⊃ a;max(x1)), a ≠ max(x0), x1 ≠ [], max(x1 + x0) < a, ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦ |
Used simplifier rules: max-ge: ⊦ x ≠ [] → (max(x + x0) < max(x) ↔ false); ⊦ a ≠ b → (a < b ↔ ¬ b < a); (ss) transitivity: ⊦ a < b ∧ b < c → a < c; (forward) from specification oelem a: ⊦ (x + y) + z = x + y + z; from specification list
| x1 + x0 ≠ [], (max(x1 + x0) < a ⊃ a;max(x1 + x0)) ≠ max(x0), max(x1 + x0) ≠ max(a ' + x1), ¬ max(x1 + x0) < a, ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦ |
x1 + x0 ≠ [], max(x1 + x0) ≠ max(a ' + x1), max(x1 + x0) ≠ max(x0), ¬ max(x1 + x0) < a, ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦
| x1 + x0 ≠ [], max(x1 + x0) ≠ max(a ' + x1), max(x1 + x0) ≠ max(x0), ¬ max(x1 + x0) < a, ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦ |
⊦ x ≠ [] → max(a ' + x) = (max(x) < a ⊃ a;max(x))
x1 + x0 ≠ [], max(x1 + x0) ≠ (max(x1) < a ⊃ a;max(x1)), max(x1 + x0) ≠ max(x0), x1 ≠ [], ¬ max(x1 + x0) < a, ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦
Used simplifier rules: max-base: ⊦ max(a ') = a; ⊦ x + [] = x; (s) ⊦ [] + x = x; (s) a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: x1, a
| ⊦ x ≠ [] → max(a ' + x) = (max(x) < a ⊃ a;max(x)) |
| x1 + x0 ≠ [], max(x1 + x0) ≠ (max(x1) < a ⊃ a;max(x1)), max(x1 + x0) ≠ max(x0), x1 ≠ [], ¬ max(x1 + x0) < a, ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦ |
x1 + x0 ≠ [], max(x1 + x0) ≠ (max(x1) < a ⊃ a;max(x1)), max(x1 + x0) ≠ max(x0), x1 ≠ [], ¬ max(x1 + x0) < a, ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦
| x1 + x0 ≠ [], max(x1 + x0) ≠ (max(x1) < a ⊃ a;max(x1)), max(x1 + x0) ≠ max(x0), x1 ≠ [], ¬ max(x1 + x0) < a, ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦ |
x1 + x0 ≠ [], max(x1 + x0) ≠ a, max(x1 + x0) ≠ max(x0), x1 ≠ [], max(x1) < a, ¬ max(x1 + x0) < a, ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦
x1 + x0 ≠ [], max(x1 + x0) ≠ max(x1), max(x1 + x0) ≠ max(x0), x1 ≠ [], ¬ max(x1) < a, ¬ max(x1 + x0) < a, ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦
| x1 + x0 ≠ [], max(x1 + x0) ≠ a, max(x1 + x0) ≠ max(x0), x1 ≠ [], max(x1) < a, ¬ max(x1 + x0) < a, ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦ |
x1 + x0 ≠ [], max(x1 + x0) ≠ a, max(x1 + x0) ≠ max(x0), x1 ≠ [], max(x1) < a, a < max(x1 + x0), max(x1) < max(x1 + x0), ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦
Used simplifier rules: transitivity: ⊦ a < b ∧ b < c → a < c; (forward) from specification oelem ⊦ a ≠ b → (a < b ↔ ¬ b < a); (ss)
| x1 + x0 ≠ [], max(x1 + x0) ≠ a, max(x1 + x0) ≠ max(x0), x1 ≠ [], max(x1) < a, a < max(x1 + x0), max(x1) < max(x1 + x0), ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦ |
Used simplifier rules: max-ge: ⊦ x ≠ [] → (max(x + x0) < max(x) ↔ false); transitivity: ⊦ a < b ∧ b < c → a < c; (forward) from specification oelem lel: ⊦ a < b ∧ a = c → c < b; (forward) from specification oelem a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: x0
| x1 + x0 ≠ [], max(x1 + x0) ≠ max(x1), max(x1 + x0) ≠ max(x0), x1 ≠ [], ¬ max(x1) < a, ¬ max(x1 + x0) < a, ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦ |
x1 + x0 ≠ [], max(x1 + x0) ≠ max(x1), max(x1 + x0) ≠ max(x0), x1 ≠ [], ¬ max(x1) < a, ¬ max(x1 + x0) < a, ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦
| x1 + x0 ≠ [], max(x1 + x0) ≠ max(x1), max(x1 + x0) ≠ max(x0), x1 ≠ [], ¬ max(x1) < a, ¬ max(x1 + x0) < a, ∀ x. x1 + x = [] ∨ max(x1 + x) = max(x1) ∨ max(x1 + x) = max(x) ⊦ |
Used terms: x0
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.