| ⊦ ∃ lf. lf(0) = [] ∧ (∀ n. lf(n + 1) = nextli(lf(n))) |
∀ n. ∃ lf. lf(0) = [] ∧ (∀ m. m < n → lf(m + 1) = nextli(lf(m))) ⊦ ∃ lf. lf(0) = [] ∧ (∀ n. lf(n + 1) = nextli(lf(n)))
⊦ ∀ n. ∃ lf. lf(0) = [] ∧ (∀ m. m < n → lf(m + 1) = nextli(lf(m))), ∃ lf. lf(0) = [] ∧ (∀ n. lf(n + 1) = nextli(lf(n)))
Used formulas: ∀ n. ∃ lf. lf(0) = [] ∧ (∀ m. m < n → lf(m + 1) = nextli(lf(m)))
| ∀ n. ∃ lf. lf(0) = [] ∧ (∀ m. m < n → lf(m + 1) = nextli(lf(m))) ⊦ ∃ lf. lf(0) = [] ∧ (∀ n. lf(n + 1) = nextli(lf(n))) |
∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦ ∃ lf. lf(0) = [] ∧ (∀ n. lf(n + 1) = nextli(lf(n)))
| ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦ ∃ lf. lf(0) = [] ∧ (∀ n. lf(n + 1) = nextli(lf(n))) |
∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦ nnlf(0)(0) = [] ∧ (∀ n. nnlf(n + 1)(n + 1) = nextli(nnlf(n)(n)))
Used terms: λ n. nnlf(n)(n)
| ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦ nnlf(0)(0) = [] ∧ (∀ n. nnlf(n + 1)(n + 1) = nextli(nnlf(n)(n))) |
nnlf(0)(0) = [], ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))), ∀ m. m < 0 → nnlf(0)(m + 1) = nextli(nnlf(0)(m)) ⊦ nnlf(0)(0) = [] ∧ (∀ n. nnlf(n + 1)(n + 1) = nextli(nnlf(n)(n)))
Used terms: 0
| nnlf(0)(0) = [], ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))), ∀ m. m < 0 → nnlf(0)(m + 1) = nextli(nnlf(0)(m)) ⊦ nnlf(0)(0) = [] ∧ (∀ n. nnlf(n + 1)(n + 1) = nextli(nnlf(n)(n))) |
nnlf(0)(0) = [], nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦
Used simplifier rules: ⊦ ¬ n < 0; (s)
| nnlf(0)(0) = [], nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦ |
nnlf(0)(0) = [], nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → nnlf(n1)(m) = nnlf(n2)(m) ⊦
nnlf(0)(0) = [], nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦ ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → nnlf(n1)(m) = nnlf(n2)(m)
Used formulas: ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → nnlf(n1)(m) = nnlf(n2)(m)
| nnlf(0)(0) = [], nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → nnlf(n1)(m) = nnlf(n2)(m) ⊦ |
nnlf(0)(0) = [], nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → nnlf(n1)(m) = nnlf(n2)(m), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦
| nnlf(0)(0) = [], nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → nnlf(n1)(m) = nnlf(n2)(m), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦ |
nnlf(0)(0) = [], nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), n ≤ n ∧ n ≤ n + 1 → nnlf(n)(n) = nnlf(n + 1)(n), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → nnlf(n1)(m) = nnlf(n2)(m) ⊦
Used terms: n, n, n + 1
| nnlf(0)(0) = [], nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), n ≤ n ∧ n ≤ n + 1 → nnlf(n)(n) = nnlf(n + 1)(n), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → nnlf(n1)(m) = nnlf(n2)(m) ⊦ |
nnlf(0)(0) = [], nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), n ≤ n ∧ n ≤ n + 1 → nnlf(n)(n) = nnlf(n + 1)(n), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → nnlf(n1)(m) = nnlf(n2)(m), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦
| nnlf(0)(0) = [], nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), n ≤ n ∧ n ≤ n + 1 → nnlf(n)(n) = nnlf(n + 1)(n), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → nnlf(n1)(m) = nnlf(n2)(m), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦ |
nnlf(0)(0) = [], nnlf(n + 1)(0) = [], nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), n ≤ n ∧ n ≤ n + 1 → nnlf(n)(n) = nnlf(n + 1)(n), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → nnlf(n1)(m) = nnlf(n2)(m), ∀ m. m < n + 1 → nnlf(n + 1)(m + 1) = nextli(nnlf(n + 1)(m)) ⊦
Used terms: n + 1
| nnlf(0)(0) = [], nnlf(n + 1)(0) = [], nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), n ≤ n ∧ n ≤ n + 1 → nnlf(n)(n) = nnlf(n + 1)(n), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → nnlf(n1)(m) = nnlf(n2)(m), ∀ m. m < n + 1 → nnlf(n + 1)(m + 1) = nextli(nnlf(n + 1)(m)) ⊦ |
nnlf(n + 1)(0) = [], nnlf(0)(0) = [], nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), n ≤ n ∧ n ≤ n + 1 → nnlf(n)(n) = nnlf(n + 1)(n), ∀ m. m < n + 1 → nnlf(n + 1)(m + 1) = nextli(nnlf(n + 1)(m)), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → nnlf(n1)(m) = nnlf(n2)(m), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦
| nnlf(n + 1)(0) = [], nnlf(0)(0) = [], nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), n ≤ n ∧ n ≤ n + 1 → nnlf(n)(n) = nnlf(n + 1)(n), ∀ m. m < n + 1 → nnlf(n + 1)(m + 1) = nextli(nnlf(n + 1)(m)), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → nnlf(n1)(m) = nnlf(n2)(m), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦ |
nnlf(0)(0) = [], nnlf(n + 1)(0) = [], nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), n ≤ n ∧ n ≤ n + 1 → nnlf(n)(n) = nnlf(n + 1)(n), n < n + 1 → nnlf(n + 1)(n + 1) = nextli(nnlf(n + 1)(n)), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → nnlf(n1)(m) = nnlf(n2)(m), ∀ m. m < n + 1 → nnlf(n + 1)(m + 1) = nextli(nnlf(n + 1)(m)) ⊦
Used terms: n
| nnlf(0)(0) = [], nnlf(n + 1)(0) = [], nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), n ≤ n ∧ n ≤ n + 1 → nnlf(n)(n) = nnlf(n + 1)(n), n < n + 1 → nnlf(n + 1)(n + 1) = nextli(nnlf(n + 1)(n)), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → nnlf(n1)(m) = nnlf(n2)(m), ∀ m. m < n + 1 → nnlf(n + 1)(m + 1) = nextli(nnlf(n + 1)(m)) ⊦ |
Used simplifier rules: ⊦ m < n + 1 ↔ ¬ n < m; (s) ⊦ m ≤ m; (s) ⊦ m ≤ m + n; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic ⊦ ¬ n < n; (s)
| nnlf(0)(0) = [], nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦ ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → nnlf(n1)(m) = nnlf(n2)(m) |
nnlf(0)(0) = [], nnlf(n1)(m) ≠ nnlf(n2)(m), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), m ≤ n1, n1 ≤ n2, m ≤ n2, ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦
Used simplifier rules: let: ⊦ n ≤ n0 ∧ n0 ≤ n1 → n ≤ n1; (forward) from specification nat
| nnlf(0)(0) = [], nnlf(n1)(m) ≠ nnlf(n2)(m), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), m ≤ n1, n1 ≤ n2, m ≤ n2, ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦ |
nnlf(0)(0) = [], nnlf(n1)(0) ≠ nnlf(n2)(0), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), 0 ≤ n2, n1 ≤ n2, 0 ≤ n1, ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦
nnlf(0)(0) = [], nnlf(n1)(m0.+1) ≠ nnlf(n2)(m0.+1), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), m0.+1 ≤ n2, n1 ≤ n2, m0.+1 ≤ n1, ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))), ∀ nnlf, n1, n2, n, nextli. ¬ ( nnlf(0)(0) = [] ∧ nnlf(n1)(m0) ≠ nnlf(n2)(m0) ∧ nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)) ∧ m0 ≤ n1 ∧ n1 ≤ n2 ∧ m0 ≤ n2 ∧ (∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))))) ⊦
Used simplifier rules: Nat freely generated by 0, +1;
| nnlf(0)(0) = [], nnlf(n1)(0) ≠ nnlf(n2)(0), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), 0 ≤ n2, n1 ≤ n2, 0 ≤ n1, ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦ |
nnlf(0)(0) = [], nnlf(n1)(0) ≠ nnlf(n2)(0), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), n1 ≤ n2, ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦
Used simplifier rules: ⊦ 0 ≤ m; (s)
| nnlf(0)(0) = [], nnlf(n1)(0) ≠ nnlf(n2)(0), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), n1 ≤ n2, ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦ |
nnlf(0)(0) = [], nnlf(n1)(0) = [], nnlf(n1)(0) ≠ nnlf(n2)(0), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), n1 ≤ n2, ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))), ∀ m. m < n1 → nnlf(n1)(m + 1) = nextli(nnlf(n1)(m)) ⊦
Used terms: n1
| nnlf(0)(0) = [], nnlf(n1)(0) = [], nnlf(n1)(0) ≠ nnlf(n2)(0), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), n1 ≤ n2, ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))), ∀ m. m < n1 → nnlf(n1)(m + 1) = nextli(nnlf(n1)(m)) ⊦ |
nnlf(n1)(0) = [], nnlf(0)(0) = [], [] ≠ nnlf(n2)(0), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), n1 ≤ n2, ∀ m. m < n1 → nnlf(n1)(m + 1) = nextli(nnlf(n1)(m)), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦
| nnlf(n1)(0) = [], nnlf(0)(0) = [], [] ≠ nnlf(n2)(0), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), n1 ≤ n2, ∀ m. m < n1 → nnlf(n1)(m + 1) = nextli(nnlf(n1)(m)), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦ |
Used terms: n2
| nnlf(0)(0) = [], nnlf(n1)(m0.+1) ≠ nnlf(n2)(m0.+1), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), m0.+1 ≤ n2, n1 ≤ n2, m0.+1 ≤ n1, ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))), ∀ nnlf, n1, n2, n, nextli. ¬ ( nnlf(0)(0) = [] ∧ nnlf(n1)(m0) ≠ nnlf(n2)(m0) ∧ nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)) ∧ m0 ≤ n1 ∧ n1 ≤ n2 ∧ m0 ≤ n2 ∧ (∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))))) ⊦ |
nnlf(0)(0) = [], nnlf(n1)(m0 + 1) ≠ nnlf(n2)(m0 + 1), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), m0 < n2, m0 < n1, n1 ≤ n2, ∀ nnlf0, n0, n3, n4, nextli0. nnlf0(0)(0) ≠ [] ∨ nnlf0(n0)(m0) = nnlf0(n3)(m0) ∨ nnlf0(n4 + 1)(n4 + 1) = nextli0(nnlf0(n4)(n4)) ∨ ¬ m0 ≤ n0 ∨ ¬ n0 ≤ n3 ∨ ¬ m0 ≤ n3 ∨ ¬(∀ n0. nnlf0(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf0(n0)(m + 1) = nextli0(nnlf0(n0)(m)))), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) fle: ⊦ m < n ∧ n ≤ n0 → m < n0; (forward) from specification nat f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ m + 1 ≤ n ↔ m < n; (s) ⊦ m.+1 = m + 1; (s)
| nnlf(0)(0) = [], nnlf(n1)(m0 + 1) ≠ nnlf(n2)(m0 + 1), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), m0 < n2, m0 < n1, n1 ≤ n2, ∀ nnlf0, n0, n3, n4, nextli0. nnlf0(0)(0) ≠ [] ∨ nnlf0(n0)(m0) = nnlf0(n3)(m0) ∨ nnlf0(n4 + 1)(n4 + 1) = nextli0(nnlf0(n4)(n4)) ∨ ¬ m0 ≤ n0 ∨ ¬ n0 ≤ n3 ∨ ¬ m0 ≤ n3 ∨ ¬(∀ n0. nnlf0(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf0(n0)(m + 1) = nextli0(nnlf0(n0)(m)))), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦ |
nnlf(0)(0) = [], nnlf(n1)(m0 + 1) ≠ nnlf(n2)(m0 + 1), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), m0 < n1, m0 < n2, n1 ≤ n2, ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))), nnlf(0)(0) ≠ [] ∨ nnlf(n1)(m0) = nnlf(n2)(m0) ∨ nnlf(n + 1)(n + 1) = nextli(nnlf(n)(n)) ∨ ¬ m0 ≤ n1 ∨ ¬ n1 ≤ n2 ∨ ¬ m0 ≤ n2 ∨ ¬(∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m)))) ⊦
Used terms: nnlf, n1, n2, n, nextli
| nnlf(0)(0) = [], nnlf(n1)(m0 + 1) ≠ nnlf(n2)(m0 + 1), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), m0 < n1, m0 < n2, n1 ≤ n2, ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))), nnlf(0)(0) ≠ [] ∨ nnlf(n1)(m0) = nnlf(n2)(m0) ∨ nnlf(n + 1)(n + 1) = nextli(nnlf(n)(n)) ∨ ¬ m0 ≤ n1 ∨ ¬ n1 ≤ n2 ∨ ¬ m0 ≤ n2 ∨ ¬(∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m)))) ⊦ |
nnlf(0)(0) = [], nnlf(n1)(m0 + 1) ≠ nnlf(n2)(m0 + 1), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), m0 < n2, m0 < n1, n1 ≤ n2, ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))), nnlf(n1)(m0) = nnlf(n2)(m0) ∨ ¬ m0 ≤ n1 ∨ ¬ m0 ≤ n2 ⊦
| nnlf(0)(0) = [], nnlf(n1)(m0 + 1) ≠ nnlf(n2)(m0 + 1), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), m0 < n2, m0 < n1, n1 ≤ n2, ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))), nnlf(n1)(m0) = nnlf(n2)(m0) ∨ ¬ m0 ≤ n1 ∨ ¬ m0 ≤ n2 ⊦ |
nnlf(0)(0) = [], nnlf(n1)(m0) = nnlf(n2)(m0), nnlf(n1)(m0 + 1) ≠ nnlf(n2)(m0 + 1), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), m0 < n1, m0 < n2, n1 ≤ n2, ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦
Used simplifier rules: ⊦ m < n → m ≤ n; (s)
| nnlf(0)(0) = [], nnlf(n1)(m0) = nnlf(n2)(m0), nnlf(n1)(m0 + 1) ≠ nnlf(n2)(m0 + 1), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), m0 < n1, m0 < n2, n1 ≤ n2, ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦ |
nnlf(n1)(m0) = nnlf(n2)(m0), nnlf(0)(0) = [], nnlf(n1)(0) = [], nnlf(n1)(m0 + 1) ≠ nnlf(n2)(m0 + 1), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), m0 < n2, m0 < n1, n1 ≤ n2, ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))), ∀ m. m < n1 → nnlf(n1)(m + 1) = nextli(nnlf(n1)(m)) ⊦
Used terms: n1
| nnlf(n1)(m0) = nnlf(n2)(m0), nnlf(0)(0) = [], nnlf(n1)(0) = [], nnlf(n1)(m0 + 1) ≠ nnlf(n2)(m0 + 1), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), m0 < n2, m0 < n1, n1 ≤ n2, ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))), ∀ m. m < n1 → nnlf(n1)(m + 1) = nextli(nnlf(n1)(m)) ⊦ |
nnlf(n1)(0) = [], nnlf(0)(0) = [], nnlf(n1)(m0) = nnlf(n2)(m0), nnlf(n1)(m0 + 1) ≠ nnlf(n2)(m0 + 1), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), m0 < n1, m0 < n2, n1 ≤ n2, ∀ m. m < n1 → nnlf(n1)(m + 1) = nextli(nnlf(n1)(m)), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦
| nnlf(n1)(0) = [], nnlf(0)(0) = [], nnlf(n1)(m0) = nnlf(n2)(m0), nnlf(n1)(m0 + 1) ≠ nnlf(n2)(m0 + 1), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), m0 < n1, m0 < n2, n1 ≤ n2, ∀ m. m < n1 → nnlf(n1)(m + 1) = nextli(nnlf(n1)(m)), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦ |
nnlf(n1)(m0) = nnlf(n2)(m0), nnlf(0)(0) = [], nnlf(n1)(0) = [], nnlf(n1)(m0 + 1) ≠ nnlf(n2)(m0 + 1), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), m0 < n2, m0 < n1, n1 ≤ n2, m0 < n1 → nnlf(n1)(m0 + 1) = nextli(nnlf(n1)(m0)), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦
Used terms: m0
| nnlf(n1)(m0) = nnlf(n2)(m0), nnlf(0)(0) = [], nnlf(n1)(0) = [], nnlf(n1)(m0 + 1) ≠ nnlf(n2)(m0 + 1), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), m0 < n2, m0 < n1, n1 ≤ n2, m0 < n1 → nnlf(n1)(m0 + 1) = nextli(nnlf(n1)(m0)), ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦ |
nnlf(n1)(0) = [], nnlf(0)(0) = [], nnlf(n1)(m0) = nnlf(n2)(m0), nnlf(n1)(m0 + 1) = nextli(nnlf(n2)(m0)), nnlf(n1)(m0 + 1) ≠ nnlf(n2)(m0 + 1), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), m0 < n1, m0 < n2, n1 ≤ n2, ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦
| nnlf(n1)(0) = [], nnlf(0)(0) = [], nnlf(n1)(m0) = nnlf(n2)(m0), nnlf(n1)(m0 + 1) = nextli(nnlf(n2)(m0)), nnlf(n1)(m0 + 1) ≠ nnlf(n2)(m0 + 1), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), m0 < n1, m0 < n2, n1 ≤ n2, ∀ n0. nnlf(n0)(0) = [] ∧ (∀ m. m < n0 → nnlf(n0)(m + 1) = nextli(nnlf(n0)(m))) ⊦ |
nnlf(n1)(m0 + 1) = nextli(nnlf(n2)(m0)), nnlf(n1)(m0) = nnlf(n2)(m0), nnlf(0)(0) = [], nnlf(n1)(0) = [], nnlf(n2)(0) = [], nnlf(n1)(m0 + 1) ≠ nnlf(n2)(m0 + 1), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), m0 < n2, m0 < n1, n1 ≤ n2, ∀ m. m < n2 → nnlf(n2)(m + 1) = nextli(nnlf(n2)(m)) ⊦
Used terms: n2
| nnlf(n1)(m0 + 1) = nextli(nnlf(n2)(m0)), nnlf(n1)(m0) = nnlf(n2)(m0), nnlf(0)(0) = [], nnlf(n1)(0) = [], nnlf(n2)(0) = [], nnlf(n1)(m0 + 1) ≠ nnlf(n2)(m0 + 1), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), m0 < n2, m0 < n1, n1 ≤ n2, ∀ m. m < n2 → nnlf(n2)(m + 1) = nextli(nnlf(n2)(m)) ⊦ |
nnlf(n2)(0) = [], nnlf(n1)(0) = [], nnlf(0)(0) = [], nnlf(n1)(m0) = nnlf(n2)(m0), nnlf(n1)(m0 + 1) = nextli(nnlf(n2)(m0)), nnlf(n1)(m0 + 1) ≠ nnlf(n2)(m0 + 1), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), m0 < n1, m0 < n2, n1 ≤ n2, ∀ m. m < n2 → nnlf(n2)(m + 1) = nextli(nnlf(n2)(m)) ⊦
| nnlf(n2)(0) = [], nnlf(n1)(0) = [], nnlf(0)(0) = [], nnlf(n1)(m0) = nnlf(n2)(m0), nnlf(n1)(m0 + 1) = nextli(nnlf(n2)(m0)), nnlf(n1)(m0 + 1) ≠ nnlf(n2)(m0 + 1), nnlf(n + 1)(n + 1) ≠ nextli(nnlf(n)(n)), m0 < n1, m0 < n2, n1 ≤ n2, ∀ m. m < n2 → nnlf(n2)(m + 1) = nextli(nnlf(n2)(m)) ⊦ |
Used terms: m0
| ⊦ ∀ n. ∃ lf. lf(0) = [] ∧ (∀ m. m < n → lf(m + 1) = nextli(lf(m))), ∃ lf. lf(0) = [] ∧ (∀ n. lf(n + 1) = nextli(lf(n))) |
⊦ ∃ lf. lf(0) = [] ∧ (∀ n. lf(n + 1) = nextli(lf(n))), ∃ lf. lf(0) = [] ∧ (∀ m. m < n → lf(m + 1) = nextli(lf(m)))
| ⊦ ∃ lf. lf(0) = [] ∧ (∀ n. lf(n + 1) = nextli(lf(n))), ∃ lf. lf(0) = [] ∧ (∀ m. m < n → lf(m + 1) = nextli(lf(m))) |
⊦ ∃ lf. lf(0) = [] ∧ (∀ m. m < n → lf(m + 1) = nextli(lf(m)))
| ⊦ ∃ lf. lf(0) = [] ∧ (∀ m. m < n → lf(m + 1) = nextli(lf(m))) |
⊦ ∃ lf. lf(0) = [] ∧ (∀ m. m < 0 → lf(m + 1) = nextli(lf(m)))
∀ nextli. ∃ lf. lf(0) = [] ∧ (∀ m. m < n0 → lf(m + 1) = nextli(lf(m))) ⊦ ∃ lf. lf(0) = [] ∧ (∀ m. m < n0.+1 → lf(m + 1) = nextli(lf(m)))
Used simplifier rules: Nat freely generated by 0, +1;
| ⊦ ∃ lf. lf(0) = [] ∧ (∀ m. m < 0 → lf(m + 1) = nextli(lf(m))) |
⊦ ∃ lf. lf(0) = []
Used simplifier rules: ⊦ ¬ n < 0; (s)
| ⊦ ∃ lf. lf(0) = [] |
Used terms: λ n. []
| ∀ nextli. ∃ lf. lf(0) = [] ∧ (∀ m. m < n0 → lf(m + 1) = nextli(lf(m))) ⊦ ∃ lf. lf(0) = [] ∧ (∀ m. m < n0.+1 → lf(m + 1) = nextli(lf(m))) |
∀ nextli. ∃ lf. lf(0) = [] ∧ (∀ m. m < n0 → lf(m + 1) = nextli(lf(m))) ⊦ ∃ lf. lf(0) = [] ∧ (∀ m. ¬ n0 < m → lf(m + 1) = nextli(lf(m)))
Used simplifier rules: c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ m < n + 1 ↔ ¬ n < m; (s) ⊦ m.+1 = m + 1; (s)
| ∀ nextli. ∃ lf. lf(0) = [] ∧ (∀ m. m < n0 → lf(m + 1) = nextli(lf(m))) ⊦ ∃ lf. lf(0) = [] ∧ (∀ m. ¬ n0 < m → lf(m + 1) = nextli(lf(m))) |
∃ lf. lf(0) = [] ∧ (∀ m. m < n0 → lf(m + 1) = nextli(lf(m))) ⊦ ∃ lf. lf(0) = [] ∧ (∀ m. ¬ n0 < m → lf(m + 1) = nextli(lf(m)))
Used terms: nextli
| ∃ lf. lf(0) = [] ∧ (∀ m. m < n0 → lf(m + 1) = nextli(lf(m))) ⊦ ∃ lf. lf(0) = [] ∧ (∀ m. ¬ n0 < m → lf(m + 1) = nextli(lf(m))) |
lf(0) = [], ∀ m. m < n0 → lf(m + 1) = nextli(lf(m)) ⊦ ∃ lf. lf(0) = [] ∧ (∀ m. ¬ n0 < m → lf(m + 1) = nextli(lf(m)))
| lf(0) = [], ∀ m. m < n0 → lf(m + 1) = nextli(lf(m)) ⊦ ∃ lf. lf(0) = [] ∧ (∀ m. ¬ n0 < m → lf(m + 1) = nextli(lf(m))) |
lf(0) = [], ∀ m. m < n0 → lf(m + 1) = nextli(lf(m)) ⊦ (0 = n0 + 1 ⊃ nextli(lf(n0));lf(0)) = [] ∧ (∀ m. ¬ n0 < m → (m + 1 = n0 + 1 ⊃ nextli(lf(n0));lf(m + 1)) = nextli((m = n0 + 1 ⊃ nextli(lf(n0));lf(m))))
Used terms: λ n1. (n1 = n0 + 1 ⊃ nextli(lf(n0));lf(n1))
| lf(0) = [], ∀ m. m < n0 → lf(m + 1) = nextli(lf(m)) ⊦ (0 = n0 + 1 ⊃ nextli(lf(n0));lf(0)) = [] ∧ (∀ m. ¬ n0 < m → (m + 1 = n0 + 1 ⊃ nextli(lf(n0));lf(m + 1)) = nextli((m = n0 + 1 ⊃ nextli(lf(n0));lf(m)))) |
lf(0) = [], (m = n0 ⊃ nextli(lf(n0));lf(m + 1)) ≠ nextli((m = n0 + 1 ⊃ nextli(lf(n0));lf(m))), ¬ n0 < m, ∀ m. m < n0 → lf(m + 1) = nextli(lf(m)) ⊦
Used simplifier rules: c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ m + n = m + n0 ↔ n = n0; (s) ⊦ m + 1 ≠ 0; (s)
| lf(0) = [], (m = n0 ⊃ nextli(lf(n0));lf(m + 1)) ≠ nextli((m = n0 + 1 ⊃ nextli(lf(n0));lf(m))), ¬ n0 < m, ∀ m. m < n0 → lf(m + 1) = nextli(lf(m)) ⊦ |
lf(0) = [], lf(m + 1) ≠ nextli((m = n0 + 1 ⊃ nextli(lf(n0));lf(m))), m ≠ n0, ¬ n0 < m, ∀ m. m < n0 → lf(m + 1) = nextli(lf(m)) ⊦
Used simplifier rules: ⊦ m = m + n ↔ n = 0; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic
| lf(0) = [], lf(m + 1) ≠ nextli((m = n0 + 1 ⊃ nextli(lf(n0));lf(m))), m ≠ n0, ¬ n0 < m, ∀ m. m < n0 → lf(m + 1) = nextli(lf(m)) ⊦ |
lf(0) = [], lf(m + 1) ≠ nextli((m = n0 + 1 ⊃ nextli(lf(n0));lf(m))), m ≠ n0, m < n0, ∀ m. m < n0 → lf(m + 1) = nextli(lf(m)) ⊦
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic ⊦ m ≠ n → (m < n ↔ ¬ n < m); (ss)
| lf(0) = [], lf(m + 1) ≠ nextli((m = n0 + 1 ⊃ nextli(lf(n0));lf(m))), m ≠ n0, m < n0, ∀ m. m < n0 → lf(m + 1) = nextli(lf(m)) ⊦ |
lf(0) = [], lf(m + 1) ≠ nextli(lf(m)), m ≠ n0 + 1, m ≠ n0, m < n0, ∀ m. m < n0 → lf(m + 1) = nextli(lf(m)) ⊦
Used simplifier rules: ⊦ m = m + n ↔ n = 0; (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
| lf(0) = [], lf(m + 1) ≠ nextli(lf(m)), m ≠ n0 + 1, m ≠ n0, m < n0, ∀ m. m < n0 → lf(m + 1) = nextli(lf(m)) ⊦ |
lf(0) = [], lf(m + 1) ≠ nextli(lf(m)), m ≠ n0 + 1, m ≠ n0, m < n0, ∀ m. m < n0 → lf(m + 1) = nextli(lf(m)) ⊦
| lf(0) = [], lf(m + 1) ≠ nextli(lf(m)), m ≠ n0 + 1, m ≠ n0, m < n0, ∀ m. m < n0 → lf(m + 1) = nextli(lf(m)) ⊦ |
Used terms: m
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.