| ⊦ ∃ lf. lf(0) = x ∧ (∀ n. lf(n + 1) = nextnli(lf(n), n)) |
∀ n. ∃ lf. lf(0) = x ∧ (∀ m. m < n → lf(m + 1) = nextnli(lf(m), m)) ⊦ ∃ lf. lf(0) = x ∧ (∀ n. lf(n + 1) = nextnli(lf(n), n))
⊦ ∀ n. ∃ lf. lf(0) = x ∧ (∀ m. m < n → lf(m + 1) = nextnli(lf(m), m)), ∃ lf. lf(0) = x ∧ (∀ n. lf(n + 1) = nextnli(lf(n), n))
Used formulas: ∀ n. ∃ lf. lf(0) = x ∧ (∀ m. m < n → lf(m + 1) = nextnli(lf(m), m))
| ∀ n. ∃ lf. lf(0) = x ∧ (∀ m. m < n → lf(m + 1) = nextnli(lf(m), m)) ⊦ ∃ lf. lf(0) = x ∧ (∀ n. lf(n + 1) = nextnli(lf(n), n)) |
∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦ ∃ lf. lf(0) = x ∧ (∀ n. lf(n + 1) = nextnli(lf(n), n))
| ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦ ∃ lf. lf(0) = x ∧ (∀ n. lf(n + 1) = nextnli(lf(n), n)) |
∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦ f_n->fun(0)(0) = x ∧ (∀ n. f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n)(n), n))
Used terms: λ n. f_n->fun(n)(n)
| ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦ f_n->fun(0)(0) = x ∧ (∀ n. f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n)(n), n)) |
∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦ f_n->fun(0)(0) = x ∧ f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n)(n), n)
| ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦ f_n->fun(0)(0) = x ∧ f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n)(n), n) |
∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → f_n->fun(n1)(m) = f_n->fun(n2)(m) ⊦ f_n->fun(0)(0) = x ∧ f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n)(n), n)
∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦ ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → f_n->fun(n1)(m) = f_n->fun(n2)(m), f_n->fun(0)(0) = x ∧ f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n)(n), n)
Used formulas: ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → f_n->fun(n1)(m) = f_n->fun(n2)(m)
| ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → f_n->fun(n1)(m) = f_n->fun(n2)(m) ⊦ f_n->fun(0)(0) = x ∧ f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n)(n), n) |
∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → f_n->fun(n1)(m) = f_n->fun(n2)(m), ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦ f_n->fun(0)(0) = x ∧ f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n)(n), n)
| ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → f_n->fun(n1)(m) = f_n->fun(n2)(m), ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦ f_n->fun(0)(0) = x ∧ f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n)(n), n) |
n ≤ n ∧ n ≤ n + 1 → f_n->fun(n)(n) = f_n->fun(n + 1)(n), ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → f_n->fun(n1)(m) = f_n->fun(n2)(m) ⊦ f_n->fun(0)(0) = x ∧ f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n)(n), n)
Used terms: n, n, n + 1
| n ≤ n ∧ n ≤ n + 1 → f_n->fun(n)(n) = f_n->fun(n + 1)(n), ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → f_n->fun(n1)(m) = f_n->fun(n2)(m) ⊦ f_n->fun(0)(0) = x ∧ f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n)(n), n) |
f_n->fun(n)(n) = f_n->fun(n + 1)(n), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → f_n->fun(n1)(m) = f_n->fun(n2)(m), ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦ f_n->fun(0)(0) = x ∧ f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n)(n), n)
Used simplifier rules: c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ m ≤ m + n; (s) ⊦ m ≤ m; (s)
| f_n->fun(n)(n) = f_n->fun(n + 1)(n), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → f_n->fun(n1)(m) = f_n->fun(n2)(m), ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦ f_n->fun(0)(0) = x ∧ f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n)(n), n) |
f_n->fun(n)(n) = f_n->fun(n + 1)(n), f_n->fun(n + 1)(0) = x, ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → f_n->fun(n1)(m) = f_n->fun(n2)(m), ∀ m. m < n + 1 → f_n->fun(n + 1)(m + 1) = nextnli(f_n->fun(n + 1)(m), m) ⊦ f_n->fun(0)(0) = x ∧ f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n)(n), n)
Used terms: n + 1
| f_n->fun(n)(n) = f_n->fun(n + 1)(n), f_n->fun(n + 1)(0) = x, ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → f_n->fun(n1)(m) = f_n->fun(n2)(m), ∀ m. m < n + 1 → f_n->fun(n + 1)(m + 1) = nextnli(f_n->fun(n + 1)(m), m) ⊦ f_n->fun(0)(0) = x ∧ f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n)(n), n) |
f_n->fun(n)(n) = f_n->fun(n + 1)(n), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → f_n->fun(n1)(m) = f_n->fun(n2)(m), ∀ n0. f_n->fun(n0)(0) = f_n->fun(n + 1)(0) ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)), ∀ m. ¬ n < m → f_n->fun(n + 1)(m + 1) = nextnli(f_n->fun(n + 1)(m), m) ⊦ f_n->fun(0)(0) = f_n->fun(n + 1)(0) ∧ f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n)(n), n)
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)
| f_n->fun(n)(n) = f_n->fun(n + 1)(n), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → f_n->fun(n1)(m) = f_n->fun(n2)(m), ∀ n0. f_n->fun(n0)(0) = f_n->fun(n + 1)(0) ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)), ∀ m. ¬ n < m → f_n->fun(n + 1)(m + 1) = nextnli(f_n->fun(n + 1)(m), m) ⊦ f_n->fun(0)(0) = f_n->fun(n + 1)(0) ∧ f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n)(n), n) |
f_n->fun(n)(n) = f_n->fun(n + 1)(n), ¬ n < n → f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n + 1)(n), n), ∀ m. ¬ n < m → f_n->fun(n + 1)(m + 1) = nextnli(f_n->fun(n + 1)(m), m), ∀ n0. f_n->fun(n0)(0) = f_n->fun(n + 1)(0) ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → f_n->fun(n1)(m) = f_n->fun(n2)(m) ⊦ f_n->fun(0)(0) = f_n->fun(n + 1)(0) ∧ f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n)(n), n)
Used terms: n
| f_n->fun(n)(n) = f_n->fun(n + 1)(n), ¬ n < n → f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n + 1)(n), n), ∀ m. ¬ n < m → f_n->fun(n + 1)(m + 1) = nextnli(f_n->fun(n + 1)(m), m), ∀ n0. f_n->fun(n0)(0) = f_n->fun(n + 1)(0) ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → f_n->fun(n1)(m) = f_n->fun(n2)(m) ⊦ f_n->fun(0)(0) = f_n->fun(n + 1)(0) ∧ f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n)(n), n) |
f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n)(n), n), f_n->fun(n)(n) = f_n->fun(n + 1)(n), f_n->fun(0)(0) ≠ f_n->fun(n + 1)(0), ∀ m. ¬ n < m → f_n->fun(n + 1)(m + 1) = nextnli(f_n->fun(n + 1)(m), m), ∀ n0. f_n->fun(n0)(0) = f_n->fun(n + 1)(0) ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → f_n->fun(n1)(m) = f_n->fun(n2)(m) ⊦
Used simplifier rules: ⊦ ¬ n < n; (s)
| f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n)(n), n), f_n->fun(n)(n) = f_n->fun(n + 1)(n), f_n->fun(0)(0) ≠ f_n->fun(n + 1)(0), ∀ m. ¬ n < m → f_n->fun(n + 1)(m + 1) = nextnli(f_n->fun(n + 1)(m), m), ∀ n0. f_n->fun(n0)(0) = f_n->fun(n + 1)(0) ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → f_n->fun(n1)(m) = f_n->fun(n2)(m) ⊦ |
Used simplifier rules: ⊦ 0 ≤ m; (s) Used terms: 0, 0, n + 1
| ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦ ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → f_n->fun(n1)(m) = f_n->fun(n2)(m), f_n->fun(0)(0) = x ∧ f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n)(n), n) |
f_n->fun(n1)(m) ≠ f_n->fun(n2)(m), m ≤ n1, n1 ≤ n2, m ≤ n2, ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦ f_n->fun(0)(0) = x ∧ f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n)(n), n)
Used simplifier rules: let: ⊦ n ≤ n0 ∧ n0 ≤ n1 → n ≤ n1; (forward) from specification nat
| f_n->fun(n1)(m) ≠ f_n->fun(n2)(m), m ≤ n1, n1 ≤ n2, m ≤ n2, ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦ f_n->fun(0)(0) = x ∧ f_n->fun(n + 1)(n + 1) = nextnli(f_n->fun(n)(n), n) |
f_n->fun(n1)(m) ≠ f_n->fun(n2)(m), m ≤ n2, n1 ≤ n2, m ≤ n1, ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦
| f_n->fun(n1)(m) ≠ f_n->fun(n2)(m), m ≤ n2, n1 ≤ n2, m ≤ n1, ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦ |
f_n->fun(n1)(0) ≠ f_n->fun(n2)(0), 0 ≤ n1, n1 ≤ n2, 0 ≤ n2, ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦
f_n->fun(n1)(m0 +1) ≠ f_n->fun(n2)(m0 +1), m0 +1 ≤ n1, n1 ≤ n2, m0 +1 ≤ n2, ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)), ∀ f_n->fun, n1, n2, x, nextnli. ¬ ( f_n->fun(n1)(m0) ≠ f_n->fun(n2)(m0) ∧ m0 ≤ n2 ∧ n1 ≤ n2 ∧ m0 ≤ n1 ∧ (∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)))) ⊦
Used simplifier rules: nat freely generated by 0, +1;;
| f_n->fun(n1)(0) ≠ f_n->fun(n2)(0), 0 ≤ n1, n1 ≤ n2, 0 ≤ n2, ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦ |
f_n->fun(n1)(0) ≠ f_n->fun(n2)(0), n1 ≤ n2, ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦
Used simplifier rules: ⊦ 0 ≤ m; (s)
| f_n->fun(n1)(0) ≠ f_n->fun(n2)(0), n1 ≤ n2, ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦ |
f_n->fun(n1)(0) = x, f_n->fun(n1)(0) ≠ f_n->fun(n2)(0), n1 ≤ n2, ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)), ∀ m. m < n1 → f_n->fun(n1)(m + 1) = nextnli(f_n->fun(n1)(m), m) ⊦
Used terms: n1
| f_n->fun(n1)(0) = x, f_n->fun(n1)(0) ≠ f_n->fun(n2)(0), n1 ≤ n2, ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)), ∀ m. m < n1 → f_n->fun(n1)(m + 1) = nextnli(f_n->fun(n1)(m), m) ⊦ |
f_n->fun(n1)(0) ≠ f_n->fun(n2)(0), n1 ≤ n2, ∀ m. m < n1 → f_n->fun(n1)(m + 1) = nextnli(f_n->fun(n1)(m), m), ∀ n0. f_n->fun(n0)(0) = f_n->fun(n1)(0) ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦
| f_n->fun(n1)(0) ≠ f_n->fun(n2)(0), n1 ≤ n2, ∀ m. m < n1 → f_n->fun(n1)(m + 1) = nextnli(f_n->fun(n1)(m), m), ∀ n0. f_n->fun(n0)(0) = f_n->fun(n1)(0) ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦ |
Used terms: n2
| f_n->fun(n1)(m0 +1) ≠ f_n->fun(n2)(m0 +1), m0 +1 ≤ n1, n1 ≤ n2, m0 +1 ≤ n2, ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)), ∀ f_n->fun, n1, n2, x, nextnli. ¬ ( f_n->fun(n1)(m0) ≠ f_n->fun(n2)(m0) ∧ m0 ≤ n2 ∧ n1 ≤ n2 ∧ m0 ≤ n1 ∧ (∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)))) ⊦ |
f_n->fun(n1)(m0 + 1) ≠ f_n->fun(n2)(m0 + 1), m0 < n1, m0 < n2, n1 ≤ n2, ∀ f_n->fun0, n, n0, x0, nextnli0. f_n->fun0(n)(m0) = f_n->fun0(n0)(m0) ∨ ¬ m0 ≤ n0 ∨ ¬ n ≤ n0 ∨ ¬ m0 ≤ n ∨ ¬(∀ n0. f_n->fun0(n0)(0) = x0 ∧ (∀ m. m < n0 → f_n->fun0(n0)(m + 1) = nextnli0(f_n->fun0(n0)(m), m))), ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic fle: ⊦ m < n ∧ n ≤ n0 → m < n0; (forward) from specification nat 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)
| f_n->fun(n1)(m0 + 1) ≠ f_n->fun(n2)(m0 + 1), m0 < n1, m0 < n2, n1 ≤ n2, ∀ f_n->fun0, n, n0, x0, nextnli0. f_n->fun0(n)(m0) = f_n->fun0(n0)(m0) ∨ ¬ m0 ≤ n0 ∨ ¬ n ≤ n0 ∨ ¬ m0 ≤ n ∨ ¬(∀ n0. f_n->fun0(n0)(0) = x0 ∧ (∀ m. m < n0 → f_n->fun0(n0)(m + 1) = nextnli0(f_n->fun0(n0)(m), m))), ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦ |
f_n->fun(n1)(m0 + 1) ≠ f_n->fun(n2)(m0 + 1), m0 < n2, m0 < n1, n1 ≤ n2, ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)), f_n->fun(n1)(m0) = f_n->fun(n2)(m0) ∨ ¬ m0 ≤ n2 ∨ ¬ n1 ≤ n2 ∨ ¬ m0 ≤ n1 ∨ ¬(∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m))) ⊦
Used terms: f_n->fun, n1, n2, x, nextnli
| f_n->fun(n1)(m0 + 1) ≠ f_n->fun(n2)(m0 + 1), m0 < n2, m0 < n1, n1 ≤ n2, ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)), f_n->fun(n1)(m0) = f_n->fun(n2)(m0) ∨ ¬ m0 ≤ n2 ∨ ¬ n1 ≤ n2 ∨ ¬ m0 ≤ n1 ∨ ¬(∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m))) ⊦ |
f_n->fun(n1)(m0) = f_n->fun(n2)(m0), f_n->fun(n1)(m0 + 1) ≠ f_n->fun(n2)(m0 + 1), m0 < n1, m0 < n2, n1 ≤ n2, ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦
Used simplifier rules: ⊦ m < n → m ≤ n; (s)
| f_n->fun(n1)(m0) = f_n->fun(n2)(m0), f_n->fun(n1)(m0 + 1) ≠ f_n->fun(n2)(m0 + 1), m0 < n1, m0 < n2, n1 ≤ n2, ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦ |
f_n->fun(n1)(m0) = f_n->fun(n2)(m0), f_n->fun(n1)(0) = x, f_n->fun(n1)(m0 + 1) ≠ f_n->fun(n2)(m0 + 1), m0 < n2, m0 < n1, n1 ≤ n2, ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)), ∀ m. m < n1 → f_n->fun(n1)(m + 1) = nextnli(f_n->fun(n1)(m), m) ⊦
Used terms: n1
| f_n->fun(n1)(m0) = f_n->fun(n2)(m0), f_n->fun(n1)(0) = x, f_n->fun(n1)(m0 + 1) ≠ f_n->fun(n2)(m0 + 1), m0 < n2, m0 < n1, n1 ≤ n2, ∀ n0. f_n->fun(n0)(0) = x ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)), ∀ m. m < n1 → f_n->fun(n1)(m + 1) = nextnli(f_n->fun(n1)(m), m) ⊦ |
f_n->fun(n1)(m0) = f_n->fun(n2)(m0), f_n->fun(n1)(m0 + 1) ≠ f_n->fun(n2)(m0 + 1), m0 < n1, m0 < n2, n1 ≤ n2, ∀ m. m < n1 → f_n->fun(n1)(m + 1) = nextnli(f_n->fun(n1)(m), m), ∀ n0. f_n->fun(n0)(0) = f_n->fun(n1)(0) ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦
| f_n->fun(n1)(m0) = f_n->fun(n2)(m0), f_n->fun(n1)(m0 + 1) ≠ f_n->fun(n2)(m0 + 1), m0 < n1, m0 < n2, n1 ≤ n2, ∀ m. m < n1 → f_n->fun(n1)(m + 1) = nextnli(f_n->fun(n1)(m), m), ∀ n0. f_n->fun(n0)(0) = f_n->fun(n1)(0) ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦ |
f_n->fun(n1)(m0) = f_n->fun(n2)(m0), f_n->fun(n1)(m0 + 1) ≠ f_n->fun(n2)(m0 + 1), m0 < n2, m0 < n1, n1 ≤ n2, m0 < n1 → f_n->fun(n1)(m0 + 1) = nextnli(f_n->fun(n1)(m0), m0), ∀ n0. f_n->fun(n0)(0) = f_n->fun(n1)(0) ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦
Used terms: m0
| f_n->fun(n1)(m0) = f_n->fun(n2)(m0), f_n->fun(n1)(m0 + 1) ≠ f_n->fun(n2)(m0 + 1), m0 < n2, m0 < n1, n1 ≤ n2, m0 < n1 → f_n->fun(n1)(m0 + 1) = nextnli(f_n->fun(n1)(m0), m0), ∀ n0. f_n->fun(n0)(0) = f_n->fun(n1)(0) ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦ |
f_n->fun(n1)(m0) = f_n->fun(n2)(m0), f_n->fun(n1)(m0 + 1) = nextnli(f_n->fun(n2)(m0), m0), f_n->fun(n1)(m0 + 1) ≠ f_n->fun(n2)(m0 + 1), m0 < n1, m0 < n2, n1 ≤ n2, ∀ n0. f_n->fun(n0)(0) = f_n->fun(n1)(0) ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦
| f_n->fun(n1)(m0) = f_n->fun(n2)(m0), f_n->fun(n1)(m0 + 1) = nextnli(f_n->fun(n2)(m0), m0), f_n->fun(n1)(m0 + 1) ≠ f_n->fun(n2)(m0 + 1), m0 < n1, m0 < n2, n1 ≤ n2, ∀ n0. f_n->fun(n0)(0) = f_n->fun(n1)(0) ∧ (∀ m. m < n0 → f_n->fun(n0)(m + 1) = nextnli(f_n->fun(n0)(m), m)) ⊦ |
f_n->fun(n1)(m0 + 1) = nextnli(f_n->fun(n2)(m0), m0), f_n->fun(n1)(m0) = f_n->fun(n2)(m0), f_n->fun(n2)(0) = f_n->fun(n1)(0), f_n->fun(n1)(m0 + 1) ≠ f_n->fun(n2)(m0 + 1), m0 < n2, m0 < n1, n1 ≤ n2, ∀ m. m < n2 → f_n->fun(n2)(m + 1) = nextnli(f_n->fun(n2)(m), m) ⊦
Used terms: n2
| f_n->fun(n1)(m0 + 1) = nextnli(f_n->fun(n2)(m0), m0), f_n->fun(n1)(m0) = f_n->fun(n2)(m0), f_n->fun(n2)(0) = f_n->fun(n1)(0), f_n->fun(n1)(m0 + 1) ≠ f_n->fun(n2)(m0 + 1), m0 < n2, m0 < n1, n1 ≤ n2, ∀ m. m < n2 → f_n->fun(n2)(m + 1) = nextnli(f_n->fun(n2)(m), m) ⊦ |
f_n->fun(n2)(0) = f_n->fun(n1)(0), f_n->fun(n1)(m0) = f_n->fun(n2)(m0), f_n->fun(n1)(m0 + 1) = nextnli(f_n->fun(n2)(m0), m0), f_n->fun(n1)(m0 + 1) ≠ f_n->fun(n2)(m0 + 1), m0 < n1, m0 < n2, n1 ≤ n2, ∀ m. m < n2 → f_n->fun(n2)(m + 1) = nextnli(f_n->fun(n2)(m), m) ⊦
| f_n->fun(n2)(0) = f_n->fun(n1)(0), f_n->fun(n1)(m0) = f_n->fun(n2)(m0), f_n->fun(n1)(m0 + 1) = nextnli(f_n->fun(n2)(m0), m0), f_n->fun(n1)(m0 + 1) ≠ f_n->fun(n2)(m0 + 1), m0 < n1, m0 < n2, n1 ≤ n2, ∀ m. m < n2 → f_n->fun(n2)(m + 1) = nextnli(f_n->fun(n2)(m), m) ⊦ |
Used terms: m0
| ⊦ ∀ n. ∃ lf. lf(0) = x ∧ (∀ m. m < n → lf(m + 1) = nextnli(lf(m), m)), ∃ lf. lf(0) = x ∧ (∀ n. lf(n + 1) = nextnli(lf(n), n)) |
⊦ ∃ lf. lf(0) = x ∧ (∀ n. lf(n + 1) = nextnli(lf(n), n)), ∃ lf. lf(0) = x ∧ (∀ m. m < n → lf(m + 1) = nextnli(lf(m), m))
| ⊦ ∃ lf. lf(0) = x ∧ (∀ n. lf(n + 1) = nextnli(lf(n), n)), ∃ lf. lf(0) = x ∧ (∀ m. m < n → lf(m + 1) = nextnli(lf(m), m)) |
⊦ ∃ lf. lf(0) = x ∧ (∀ m. m < n → lf(m + 1) = nextnli(lf(m), m))
| ⊦ ∃ lf. lf(0) = x ∧ (∀ m. m < n → lf(m + 1) = nextnli(lf(m), m)) |
⊦ ∃ lf. lf(0) = x ∧ (∀ m. m < 0 → lf(m + 1) = nextnli(lf(m), m))
∀ x, nextnli. ∃ lf. lf(0) = x ∧ (∀ m. m < n0 → lf(m + 1) = nextnli(lf(m), m)) ⊦ ∃ lf. lf(0) = x ∧ (∀ m. m < n0 +1 → lf(m + 1) = nextnli(lf(m), m))
Used simplifier rules: nat freely generated by 0, +1;;
| ⊦ ∃ lf. lf(0) = x ∧ (∀ m. m < 0 → lf(m + 1) = nextnli(lf(m), m)) |
⊦ ∃ lf. lf(0) = x
Used simplifier rules: ⊦ ¬ n < 0; (s)
| ⊦ ∃ lf. lf(0) = x |
Used terms: λ n. x
| ∀ x, nextnli. ∃ lf. lf(0) = x ∧ (∀ m. m < n0 → lf(m + 1) = nextnli(lf(m), m)) ⊦ ∃ lf. lf(0) = x ∧ (∀ m. m < n0 +1 → lf(m + 1) = nextnli(lf(m), m)) |
∀ x, nextnli. ∃ lf. lf(0) = x ∧ (∀ m. m < n0 → lf(m + 1) = nextnli(lf(m), m)) ⊦ ∃ lf. lf(0) = x ∧ (∀ m. ¬ n0 < m → lf(m + 1) = nextnli(lf(m), 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)
| ∀ x, nextnli. ∃ lf. lf(0) = x ∧ (∀ m. m < n0 → lf(m + 1) = nextnli(lf(m), m)) ⊦ ∃ lf. lf(0) = x ∧ (∀ m. ¬ n0 < m → lf(m + 1) = nextnli(lf(m), m)) |
∃ lf. lf(0) = x ∧ (∀ m. m < n0 → lf(m + 1) = nextnli(lf(m), m)) ⊦ ∃ lf. lf(0) = x ∧ (∀ m. ¬ n0 < m → lf(m + 1) = nextnli(lf(m), m))
Used terms: x, nextnli
| ∃ lf. lf(0) = x ∧ (∀ m. m < n0 → lf(m + 1) = nextnli(lf(m), m)) ⊦ ∃ lf. lf(0) = x ∧ (∀ m. ¬ n0 < m → lf(m + 1) = nextnli(lf(m), m)) |
∀ m. m < n0 → lf(m + 1) = nextnli(lf(m), m) ⊦ ∃ lf0. lf0(0) = lf(0) ∧ (∀ m. ¬ n0 < m → lf0(m + 1) = nextnli(lf0(m), m))
| ∀ m. m < n0 → lf(m + 1) = nextnli(lf(m), m) ⊦ ∃ lf0. lf0(0) = lf(0) ∧ (∀ m. ¬ n0 < m → lf0(m + 1) = nextnli(lf0(m), m)) |
∀ m. m < n0 → lf(m + 1) = nextnli(lf(m), m) ⊦ (0 = n0 + 1 ⊃ nextnli(lf(n0), n0);lf(0)) = lf(0) ∧ (∀ m. ¬ n0 < m → (m + 1 = n0 + 1 ⊃ nextnli(lf(n0), n0);lf(m + 1)) = nextnli((m = n0 + 1 ⊃ nextnli(lf(n0), n0);lf(m)), m))
Used terms: λ n1. (n1 = n0 + 1 ⊃ nextnli(lf(n0), n0);lf(n1))
| ∀ m. m < n0 → lf(m + 1) = nextnli(lf(m), m) ⊦ (0 = n0 + 1 ⊃ nextnli(lf(n0), n0);lf(0)) = lf(0) ∧ (∀ m. ¬ n0 < m → (m + 1 = n0 + 1 ⊃ nextnli(lf(n0), n0);lf(m + 1)) = nextnli((m = n0 + 1 ⊃ nextnli(lf(n0), n0);lf(m)), m)) |
(m = n0 ⊃ nextnli(lf(n0), n0);lf(m + 1)) ≠ nextnli((m = n0 + 1 ⊃ nextnli(lf(n0), n0);lf(m)), m), m ≤ n0, ∀ m. m < n0 → lf(m + 1) = nextnli(lf(m), m) ⊦
Used simplifier rules: ⊦ m < n ↔ ¬ n ≤ m; (ss) 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)
| (m = n0 ⊃ nextnli(lf(n0), n0);lf(m + 1)) ≠ nextnli((m = n0 + 1 ⊃ nextnli(lf(n0), n0);lf(m)), m), m ≤ n0, ∀ m. m < n0 → lf(m + 1) = nextnli(lf(m), m) ⊦ |
lf(m + 1) ≠ nextnli((m = n0 + 1 ⊃ nextnli(lf(n0), n0);lf(m)), m), m ≠ n0, m ≤ n0, ∀ m. m < n0 → lf(m + 1) = nextnli(lf(m), 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(m + 1) ≠ nextnli((m = n0 + 1 ⊃ nextnli(lf(n0), n0);lf(m)), m), m ≠ n0, m ≤ n0, ∀ m. m < n0 → lf(m + 1) = nextnli(lf(m), m) ⊦ |
lf(m + 1) ≠ nextnli((m = n0 + 1 ⊃ nextnli(lf(n0), n0);lf(m)), m), m ≠ n0, m < n0, ∀ m. m < n0 → lf(m + 1) = nextnli(lf(m), m) ⊦
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic ⊦ m ≠ n → (m ≤ n ↔ m < n); (s)
| lf(m + 1) ≠ nextnli((m = n0 + 1 ⊃ nextnli(lf(n0), n0);lf(m)), m), m ≠ n0, m < n0, ∀ m. m < n0 → lf(m + 1) = nextnli(lf(m), m) ⊦ |
lf(m + 1) ≠ nextnli(lf(m), m), m ≠ n0 + 1, m ≠ n0, m < n0, ∀ m. m < n0 → lf(m + 1) = nextnli(lf(m), 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(m + 1) ≠ nextnli(lf(m), m), m ≠ n0 + 1, m ≠ n0, m < n0, ∀ m. m < n0 → lf(m + 1) = nextnli(lf(m), m) ⊦ |
lf(m + 1) ≠ nextnli(lf(m), m), m ≠ n0 + 1, m ≠ n0, m < n0, ∀ m. m < n0 → lf(m + 1) = nextnli(lf(m), m) ⊦
| lf(m + 1) ≠ nextnli(lf(m), m), m ≠ n0 + 1, m ≠ n0, m < n0, ∀ m. m < n0 → lf(m + 1) = nextnli(lf(m), 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.