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