| ⊦ id○(ar0, ar1, n, m) ∧ id○(ar1, ar2, n + m, m0) → id○(ar0, ar2, n, m + m0) |
id○(ar0, ar1, n, m), id○(ar1, ar2, n + m, m0), ¬ id○(ar0, ar2, n, m + m0) ⊦
| id○(ar0, ar1, n, m), id○(ar1, ar2, n + m, m0), ¬ id○(ar0, ar2, n, m + m0) ⊦ |
ar0(m1) ≠ ar2(m1), m1 < size, n + m ≤ size, (n + m) + m0 ≤ size, ∀ m1. (m1 < n ∨ n + m ≤ m1) ∧ m1 < size → ar0(m1) = ar1(m1), ∀ m1. (m1 < n + m ∨ (n + m) + m0 ≤ m1) ∧ m1 < size → ar1(m1) = ar2(m1), m1 < n ∨ n + m + m0 ≤ m1 ⊦
Used simplifier rules: Idexcept-n: ⊦ id○(ar0, ar1, m, n) ↔ m + n ≤ size ∧ (∀ m0. (m0 < m ∨ m + n ≤ m0) ∧ m0 < # ar0 → ar0(m0) = ar1(m0)); ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic ⊦ # ar = size; (s) c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic
| ar0(m1) ≠ ar2(m1), m1 < size, n + m ≤ size, (n + m) + m0 ≤ size, ∀ m1. (m1 < n ∨ n + m ≤ m1) ∧ m1 < size → ar0(m1) = ar1(m1), ∀ m1. (m1 < n + m ∨ (n + m) + m0 ≤ m1) ∧ m1 < size → ar1(m1) = ar2(m1), m1 < n ∨ n + m + m0 ≤ m1 ⊦ |
ar0(m1) ≠ ar2(m1), m1 < size, (n + m) + m0 ≤ size, n + m ≤ size, (m1 < n ∨ n + m ≤ m1) ∧ m1 < size → ar0(m1) = ar1(m1), ∀ m1. (m1 < n + m ∨ (n + m) + m0 ≤ m1) ∧ m1 < size → ar1(m1) = ar2(m1), ∀ m1. (m1 < n ∨ n + m ≤ m1) ∧ m1 < size → ar0(m1) = ar1(m1), m1 < n ∨ n + m + m0 ≤ m1 ⊦
Used terms: m1
| ar0(m1) ≠ ar2(m1), m1 < size, (n + m) + m0 ≤ size, n + m ≤ size, (m1 < n ∨ n + m ≤ m1) ∧ m1 < size → ar0(m1) = ar1(m1), ∀ m1. (m1 < n + m ∨ (n + m) + m0 ≤ m1) ∧ m1 < size → ar1(m1) = ar2(m1), ∀ m1. (m1 < n ∨ n + m ≤ m1) ∧ m1 < size → ar0(m1) = ar1(m1), m1 < n ∨ n + m + m0 ≤ m1 ⊦ |
ar0(m1) ≠ ar2(m1), m1 < size, n + m ≤ size, (n + m) + m0 ≤ size, m1 < n ∨ n + m ≤ m1 → ar0(m1) = ar1(m1), ∀ m1. (m1 < n ∨ n + m ≤ m1) ∧ m1 < size → ar0(m1) = ar1(m1), ∀ m1. (m1 < n + m ∨ (n + m) + m0 ≤ m1) ∧ m1 < size → ar1(m1) = ar2(m1), m1 < n ∨ n + m + m0 ≤ m1 ⊦
| ar0(m1) ≠ ar2(m1), m1 < size, n + m ≤ size, (n + m) + m0 ≤ size, m1 < n ∨ n + m ≤ m1 → ar0(m1) = ar1(m1), ∀ m1. (m1 < n ∨ n + m ≤ m1) ∧ m1 < size → ar0(m1) = ar1(m1), ∀ m1. (m1 < n + m ∨ (n + m) + m0 ≤ m1) ∧ m1 < size → ar1(m1) = ar2(m1), m1 < n ∨ n + m + m0 ≤ m1 ⊦ |
ar0(m1) ≠ ar2(m1), m1 < size, (n + m) + m0 ≤ size, n + m ≤ size, m1 < n ∨ n + m ≤ m1 → ar0(m1) = ar1(m1), (m1 < n + m ∨ (n + m) + m0 ≤ m1) ∧ m1 < size → ar1(m1) = ar2(m1), ∀ m1. (m1 < n + m ∨ (n + m) + m0 ≤ m1) ∧ m1 < size → ar1(m1) = ar2(m1), ∀ m1. (m1 < n ∨ n + m ≤ m1) ∧ m1 < size → ar0(m1) = ar1(m1), m1 < n ∨ n + m + m0 ≤ m1 ⊦
Used terms: m1
| ar0(m1) ≠ ar2(m1), m1 < size, (n + m) + m0 ≤ size, n + m ≤ size, m1 < n ∨ n + m ≤ m1 → ar0(m1) = ar1(m1), (m1 < n + m ∨ (n + m) + m0 ≤ m1) ∧ m1 < size → ar1(m1) = ar2(m1), ∀ m1. (m1 < n + m ∨ (n + m) + m0 ≤ m1) ∧ m1 < size → ar1(m1) = ar2(m1), ∀ m1. (m1 < n ∨ n + m ≤ m1) ∧ m1 < size → ar0(m1) = ar1(m1), m1 < n ∨ n + m + m0 ≤ m1 ⊦ |
ar0(m1) ≠ ar2(m1), m1 < size, n + m ≤ size, (n + m) + m0 ≤ size, m1 < n ∨ n + m ≤ m1 → ar0(m1) = ar1(m1), m1 < n + m ∨ (n + m) + m0 ≤ m1 → ar1(m1) = ar2(m1), ∀ m1. (m1 < n ∨ n + m ≤ m1) ∧ m1 < size → ar0(m1) = ar1(m1), ∀ m1. (m1 < n + m ∨ (n + m) + m0 ≤ m1) ∧ m1 < size → ar1(m1) = ar2(m1), m1 < n ∨ n + m + m0 ≤ m1 ⊦
| ar0(m1) ≠ ar2(m1), m1 < size, n + m ≤ size, (n + m) + m0 ≤ size, m1 < n ∨ n + m ≤ m1 → ar0(m1) = ar1(m1), m1 < n + m ∨ (n + m) + m0 ≤ m1 → ar1(m1) = ar2(m1), ∀ m1. (m1 < n ∨ n + m ≤ m1) ∧ m1 < size → ar0(m1) = ar1(m1), ∀ m1. (m1 < n + m ∨ (n + m) + m0 ≤ m1) ∧ m1 < size → ar1(m1) = ar2(m1), m1 < n ∨ n + m + m0 ≤ m1 ⊦ |
ar0(m1) ≠ ar2(m1), m1 < size, (n + m) + m0 ≤ size, n + m ≤ size, m1 < n + m ∨ (n + m) + m0 ≤ m1 → ar1(m1) = ar2(m1), m1 < n ∨ n + m ≤ m1 → ar0(m1) = ar1(m1), (size < n + m ∨ (n + m) + m0 ≤ size) ∧ size < size → ar1(size) = ar2(size), ∀ m1. (m1 < n + m ∨ (n + m) + m0 ≤ m1) ∧ m1 < size → ar1(m1) = ar2(m1), ∀ m1. (m1 < n ∨ n + m ≤ m1) ∧ m1 < size → ar0(m1) = ar1(m1), m1 < n ∨ n + m + m0 ≤ m1 ⊦
Used terms: size
| ar0(m1) ≠ ar2(m1), m1 < size, (n + m) + m0 ≤ size, n + m ≤ size, m1 < n + m ∨ (n + m) + m0 ≤ m1 → ar1(m1) = ar2(m1), m1 < n ∨ n + m ≤ m1 → ar0(m1) = ar1(m1), (size < n + m ∨ (n + m) + m0 ≤ size) ∧ size < size → ar1(size) = ar2(size), ∀ m1. (m1 < n + m ∨ (n + m) + m0 ≤ m1) ∧ m1 < size → ar1(m1) = ar2(m1), ∀ m1. (m1 < n ∨ n + m ≤ m1) ∧ m1 < size → ar0(m1) = ar1(m1), m1 < n ∨ n + m + m0 ≤ m1 ⊦ |
ar0(m1) ≠ ar2(m1), m1 < size, n + m ≤ size, (n + m) + m0 ≤ size, m1 < n ∨ n + m ≤ m1 → ar0(m1) = ar1(m1), m1 < n + m ∨ (n + m) + m0 ≤ m1 → ar1(m1) = ar2(m1), ∀ m1. (m1 < n ∨ n + m ≤ m1) ∧ m1 < size → ar0(m1) = ar1(m1), ∀ m1. (m1 < n + m ∨ (n + m) + m0 ≤ m1) ∧ m1 < size → ar1(m1) = ar2(m1), m1 < n ∨ n + m + m0 ≤ m1 ⊦
Used simplifier rules: ⊦ ¬ n < n; (s) c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ m ≤ n → (n < m ↔ false); (s)
| ar0(m1) ≠ ar2(m1), m1 < size, n + m ≤ size, (n + m) + m0 ≤ size, m1 < n ∨ n + m ≤ m1 → ar0(m1) = ar1(m1), m1 < n + m ∨ (n + m) + m0 ≤ m1 → ar1(m1) = ar2(m1), ∀ m1. (m1 < n ∨ n + m ≤ m1) ∧ m1 < size → ar0(m1) = ar1(m1), ∀ m1. (m1 < n + m ∨ (n + m) + m0 ≤ m1) ∧ m1 < size → ar1(m1) = ar2(m1), m1 < n ∨ n + m + m0 ≤ m1 ⊦ |
ar0(m1) ≠ ar2(m1), m1 < size, (n + m) + m0 ≤ size, n + m ≤ size, m1 < n + m ∨ (n + m) + m0 ≤ m1 → ar1(m1) = ar2(m1), m1 < n ∨ n + m ≤ m1 → ar0(m1) = ar1(m1), (size < n ∨ n + m ≤ size) ∧ size < size → ar0(size) = ar1(size), ∀ m1. (m1 < n + m ∨ (n + m) + m0 ≤ m1) ∧ m1 < size → ar1(m1) = ar2(m1), ∀ m1. (m1 < n ∨ n + m ≤ m1) ∧ m1 < size → ar0(m1) = ar1(m1), m1 < n ∨ n + m + m0 ≤ m1 ⊦
Used terms: size
| ar0(m1) ≠ ar2(m1), m1 < size, (n + m) + m0 ≤ size, n + m ≤ size, m1 < n + m ∨ (n + m) + m0 ≤ m1 → ar1(m1) = ar2(m1), m1 < n ∨ n + m ≤ m1 → ar0(m1) = ar1(m1), (size < n ∨ n + m ≤ size) ∧ size < size → ar0(size) = ar1(size), ∀ m1. (m1 < n + m ∨ (n + m) + m0 ≤ m1) ∧ m1 < size → ar1(m1) = ar2(m1), ∀ m1. (m1 < n ∨ n + m ≤ m1) ∧ m1 < size → ar0(m1) = ar1(m1), m1 < n ∨ n + m + m0 ≤ m1 ⊦ |
ar0(m1) ≠ ar2(m1), m1 < size, n + m ≤ size, (n + m) + m0 ≤ size, m1 < n ∨ n + m ≤ m1 → ar0(m1) = ar1(m1), m1 < n + m ∨ (n + m) + m0 ≤ m1 → ar1(m1) = ar2(m1), ∀ m1. (m1 < n ∨ n + m ≤ m1) ∧ m1 < size → ar0(m1) = ar1(m1), ∀ m1. (m1 < n + m ∨ (n + m) + m0 ≤ m1) ∧ m1 < size → ar1(m1) = ar2(m1), m1 < n ∨ n + m + m0 ≤ m1 ⊦
Used simplifier rules: ⊦ ¬ n < n; (s)
| ar0(m1) ≠ ar2(m1), m1 < size, n + m ≤ size, (n + m) + m0 ≤ size, m1 < n ∨ n + m ≤ m1 → ar0(m1) = ar1(m1), m1 < n + m ∨ (n + m) + m0 ≤ m1 → ar1(m1) = ar2(m1), ∀ m1. (m1 < n ∨ n + m ≤ m1) ∧ m1 < size → ar0(m1) = ar1(m1), ∀ m1. (m1 < n + m ∨ (n + m) + m0 ≤ m1) ∧ m1 < size → ar1(m1) = ar2(m1), m1 < n ∨ n + m + m0 ≤ m1 ⊦ |
Used simplifier rules: ⊦ m < n → m ≤ n; (s) ⊦ m < n ↔ ¬ n ≤ m; (ss) ⊦ m ≤ n ↔ ¬ n < m; (ss) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic fle: ⊦ m < n ∧ n ≤ n0 → m < n0; (forward) from specification nat fle-01: ⊦ m ≤ n ∧ n < n0 → m < n0; (forward) from specification nat ⊦ m < n → n ≠ 0; (s) ⊦ m < m + n ↔ n ≠ 0; (s) ⊦ m + n < m + n0 ↔ n < n0; (s) ⊦ ¬ m + n < m; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic ⊦ m + n < m0 → m + n < m0 + n0; (s)
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.