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