| ⊦ stutf(nσ) → (leninv(nσ) = ⌜0⌝ ↔ nσ = ⌜λ n. 0⌝ ) |
¬(leninv(nσ) = ⌜0⌝ ↔ nσ = ⌜λ n. 0⌝ ), stutf(nσ) ⊦
| ¬(leninv(nσ) = ⌜0⌝ ↔ nσ = ⌜λ n. 0⌝ ), stutf(nσ) ⊦ |
¬(leninv(nσ) = ⌜0⌝ ↔ nσ = ⌜λ n. 0⌝ ), stutf(nσ) ⊦
| ¬(leninv(nσ) = ⌜0⌝ ↔ nσ = ⌜λ n. 0⌝ ), stutf(nσ) ⊦ |
⊦ leninv(nσ) = max∞(λ n. n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1 ∧ ¬(# nσ = ∞ ∧ (∀ m0. m < m0 → nσ(m0) = n - 1))))
stutf(nσ) ⊦ max∞(λ n. n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1 ∧ ¬(# nσ = ∞ ∧ (∀ m0. m < m0 → nσ(m0) = n - 1)))) = ⌜0⌝ ↔ nσ = ⌜λ n. 0⌝
Used terms: nσ
| ⊦ leninv(nσ) = max∞(λ n. n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1 ∧ ¬(# nσ = ∞ ∧ (∀ m0. m < m0 → nσ(m0) = n - 1)))) |
| stutf(nσ) ⊦ max∞(λ n. n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1 ∧ ¬(# nσ = ∞ ∧ (∀ m0. m < m0 → nσ(m0) = n - 1)))) = ⌜0⌝ ↔ nσ = ⌜λ n. 0⌝ |
stutf(nσ) ⊦ max∞(λ n. n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = n - 1)))) = ⌜0⌝ ↔ nσ = ⌜λ n. 0⌝
| stutf(nσ) ⊦ max∞(λ n. n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = n - 1)))) = ⌜0⌝ ↔ nσ = ⌜λ n. 0⌝ |
⊦ max∞(np) = ⌜n⌝ ↔ np(n) ∧ (∀ m. np(m) → ¬ n < m)
stutf(nσ) ⊦ (0 ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = 0 - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = 0 - 1)))) ∧ (∀ m. (m ≠ 0 → (∃ m0. ⌜m0⌝ < # nσ ∧ nσ(m0) = m - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1)))) → ¬ 0 < m) ↔ nσ = ⌜λ n. 0⌝
Used terms: 0, λ n. n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = n - 1)))
| ⊦ max∞(np) = ⌜n⌝ ↔ np(n) ∧ (∀ m. np(m) → ¬ n < m) |
| stutf(nσ) ⊦ (0 ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = 0 - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = 0 - 1)))) ∧ (∀ m. (m ≠ 0 → (∃ m0. ⌜m0⌝ < # nσ ∧ nσ(m0) = m - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1)))) → ¬ 0 < m) ↔ nσ = ⌜λ n. 0⌝ |
nσ ≠ ⌜λ n. 0⌝ , stutf(nσ), ∀ m. (∃ m0. ⌜m0⌝ < # nσ ∧ nσ(m0) = m - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1))) → m = 0 ⊦
Used simplifier rules: ⊦ ⌜nf⌝ (n) = nf(n); (s) ⊦ # ⌜nf⌝ = ∞; (s) ⊦ ⌜m⌝ < ∞; (s) ⊦ m < n → n ≠ 0; (s) ⊦ 0 < m ↔ m ≠ 0; (s)
| nσ ≠ ⌜λ n. 0⌝ , stutf(nσ), ∀ m. (∃ m0. ⌜m0⌝ < # nσ ∧ nσ(m0) = m - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1))) → m = 0 ⊦ |
⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0(n) = σ1(n))
stutf(nσ), ∀ m. (∃ m0. ⌜m0⌝ < # nσ ∧ nσ(m0) = m - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1))) → m = 0, # nσ ≠ # ⌜λ n. 0⌝ ∨ (∃ n. ¬(⌜n⌝ < # nσ → nσ(n) = ⌜λ n. 0⌝ (n))) ⊦
Used terms: ⌜λ n. 0⌝ , nσ
| ⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0(n) = σ1(n)) |
| stutf(nσ), ∀ m. (∃ m0. ⌜m0⌝ < # nσ ∧ nσ(m0) = m - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1))) → m = 0, # nσ ≠ # ⌜λ n. 0⌝ ∨ (∃ n. ¬(⌜n⌝ < # nσ → nσ(n) = ⌜λ n. 0⌝ (n))) ⊦ |
stutf(nσ), ∀ m. (∃ m0. ⌜m0⌝ < # nσ ∧ nσ(m0) = m - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1))) → m = 0, # nσ ≠ ∞ ∨ ¬(⌜n⌝ < # nσ → nσ(n) = 0) ⊦
Used simplifier rules: ⊦ ⌜nf⌝ (n) = nf(n); (s) ⊦ # ⌜nf⌝ = ∞; (s)
| stutf(nσ), ∀ m. (∃ m0. ⌜m0⌝ < # nσ ∧ nσ(m0) = m - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1))) → m = 0, # nσ ≠ ∞ ∨ ¬(⌜n⌝ < # nσ → nσ(n) = 0) ⊦ |
# nσ = ∞, stutf(nσ), ∀ m. (∃ m0. ⌜m0⌝ < # nσ ∧ nσ(m0) = m - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1))) → m = 0, # nσ ≠ ∞ ∨ ¬(⌜n⌝ < # nσ → nσ(n) = 0) ⊦
# nσ ≠ ∞, stutf(nσ), ∀ m. (∃ m0. ⌜m0⌝ < # nσ ∧ nσ(m0) = m - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1))) → m = 0, # nσ ≠ ∞ ∨ ¬(⌜n⌝ < # nσ → nσ(n) = 0) ⊦
Used formulas: # nσ = ∞
| # nσ = ∞, stutf(nσ), ∀ m. (∃ m0. ⌜m0⌝ < # nσ ∧ nσ(m0) = m - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1))) → m = 0, # nσ ≠ ∞ ∨ ¬(⌜n⌝ < # nσ → nσ(n) = 0) ⊦ |
# nσ = ∞, nσ(n) ≠ 0, stutf(nσ), ∀ m. (∃ m0. nσ(m0) = m - 1 ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1)) → m = 0 ⊦
Used simplifier rules: ⊦ ⌜m⌝ < ∞; (s)
| # nσ = ∞, nσ(n) ≠ 0, stutf(nσ), ∀ m. (∃ m0. nσ(m0) = m - 1 ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1)) → m = 0 ⊦ |
# nσ = ∞, nσ(n) ≠ 0, stutf(nσ), ∀ m. (∃ m0. nσ(m0) = m - 1 ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1)) → m = 0, (∃ m0. nσ(m0) = 0.+1 - 1 ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = 0.+1 - 1)) → 0.+1 = 0 ⊦
Used terms: 0.+1
| # nσ = ∞, nσ(n) ≠ 0, stutf(nσ), ∀ m. (∃ m0. nσ(m0) = m - 1 ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1)) → m = 0, (∃ m0. nσ(m0) = 0.+1 - 1 ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = 0.+1 - 1)) → 0.+1 = 0 ⊦ |
# nσ = ∞, nσ(n) ≠ 0, stutf(nσ), ∀ m. (∃ m0. nσ(m0) = m - 1 ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1)) → m = 0 ⊦ ∃ m0. nσ(m0) = 0 ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = 0)
| # nσ = ∞, nσ(n) ≠ 0, stutf(nσ), ∀ m. (∃ m0. nσ(m0) = m - 1 ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1)) → m = 0 ⊦ ∃ m0. nσ(m0) = 0 ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = 0) |
# nσ = ∞, nσ(n) ≠ 0, stutf(nσ), ∀ m. (∃ m0. nσ(m0) = m - 1 ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1)) → m = 0 ⊦ ∃ m0. nσ(m0) = 0 ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = 0), nσ(0) = 0 ∧ ¬(∀ m1. 0 < m1 → nσ(m1) = 0)
Used terms: 0
| # nσ = ∞, nσ(n) ≠ 0, stutf(nσ), ∀ m. (∃ m0. nσ(m0) = m - 1 ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1)) → m = 0 ⊦ ∃ m0. nσ(m0) = 0 ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = 0), nσ(0) = 0 ∧ ¬(∀ m1. 0 < m1 → nσ(m1) = 0) |
# nσ = ∞, nσ(n) ≠ 0, stutf(nσ), ∀ m. (∃ m0. nσ(m0) = m - 1 ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1)) → m = 0, ∀ m1. m1 ≠ 0 → nσ(m1) = 0 ⊦ ∃ m0. nσ(m0) = 0 ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = 0)
Used simplifier rules: stutf-zero: ⊦ stutf(nσ) → nσ(0) = 0; ⊦ 0 < m ↔ m ≠ 0; (s)
| # nσ = ∞, nσ(n) ≠ 0, stutf(nσ), ∀ m. (∃ m0. nσ(m0) = m - 1 ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1)) → m = 0, ∀ m1. m1 ≠ 0 → nσ(m1) = 0 ⊦ ∃ m0. nσ(m0) = 0 ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = 0) |
Used simplifier rules: stutf-zero: ⊦ stutf(nσ) → nσ(0) = 0; Used terms: n
| # nσ ≠ ∞, stutf(nσ), ∀ m. (∃ m0. ⌜m0⌝ < # nσ ∧ nσ(m0) = m - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1))) → m = 0, # nσ ≠ ∞ ∨ ¬(⌜n⌝ < # nσ → nσ(n) = 0) ⊦ |
# nσ ≠ ∞, stutf(nσ), ∀ m. (∃ m0. ⌜m0⌝ < # nσ ∧ nσ(m0) = m - 1) → m = 0 ⊦
| # nσ ≠ ∞, stutf(nσ), ∀ m. (∃ m0. ⌜m0⌝ < # nσ ∧ nσ(m0) = m - 1) → m = 0 ⊦ |
⊦ n∞ = ∞ ↔ ¬(∃ n. n∞ = ⌜n⌝ )
stutf(nσ), ∀ m. (∃ m0. ⌜m0⌝ < # nσ ∧ nσ(m0) = m - 1) → m = 0, ∃ n. # nσ = ⌜n⌝ ⊦
Used terms: # nσ
| ⊦ n∞ = ∞ ↔ ¬(∃ n. n∞ = ⌜n⌝ ) |
| stutf(nσ), ∀ m. (∃ m0. ⌜m0⌝ < # nσ ∧ nσ(m0) = m - 1) → m = 0, ∃ n. # nσ = ⌜n⌝ ⊦ |
# nσ = ⌜n⌝ , stutf(nσ), ∀ m. (∃ m0. m0 < n ∧ nσ(m0) = m - 1) → m = 0 ⊦
Used simplifier rules: ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s)
| # nσ = ⌜n⌝ , stutf(nσ), ∀ m. (∃ m0. m0 < n ∧ nσ(m0) = m - 1) → m = 0 ⊦ |
# nσ = ⌜n⌝ , n = n0.+1, stutf(nσ), ∀ m. (∃ m0. m0 < n ∧ nσ(m0) = m - 1) → m = 0 ⊦
Used simplifier rules: stutf-nonempty: ⊦ stutf(nσ) → (nσ = [] ↔ false); Nat freely generated by 0, +1; ⊦ # σ = ⌜0⌝ ↔ σ = []; (s)
| # nσ = ⌜n⌝ , n = n0.+1, stutf(nσ), ∀ m. (∃ m0. m0 < n ∧ nσ(m0) = m - 1) → m = 0 ⊦ |
# nσ = ⌜n0⌝ + ⌜1⌝ , stutf(nσ), ∀ m. (∃ m0. ¬ n0 < m0 ∧ nσ(m0) = m - 1) → m = 0 ⊦
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) ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s)
| # nσ = ⌜n0⌝ + ⌜1⌝ , stutf(nσ), ∀ m. (∃ m0. ¬ n0 < m0 ∧ nσ(m0) = m - 1) → m = 0 ⊦ |
# nσ = ⌜n0⌝ + ⌜1⌝ , stutf(nσ), ∀ m. (∃ m0. ¬ n0 < m0 ∧ nσ(m0) = m - 1) → m = 0, (∃ m0. ¬ n0 < m0 ∧ nσ(m0) = nσ(n0) + 1 - 1) → nσ(n0) + 1 = 0 ⊦
Used terms: nσ(n0) + 1
| # nσ = ⌜n0⌝ + ⌜1⌝ , stutf(nσ), ∀ m. (∃ m0. ¬ n0 < m0 ∧ nσ(m0) = m - 1) → m = 0, (∃ m0. ¬ n0 < m0 ∧ nσ(m0) = nσ(n0) + 1 - 1) → nσ(n0) + 1 = 0 ⊦ |
# nσ = ⌜n0⌝ + ⌜1⌝ , stutf(nσ), ∀ m. (∃ m0. ¬ n0 < m0 ∧ nσ(m0) = m - 1) → m = 0 ⊦ ∃ m0. ¬ n0 < m0 ∧ nσ(m0) = nσ(n0)
Used simplifier rules: c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ m + 1 ≠ 0; (s) ⊦ n + 0 = n; (s) ⊦ n ≤ m → m + n0 - n = (m - n) + n0; (s)
| # nσ = ⌜n0⌝ + ⌜1⌝ , stutf(nσ), ∀ m. (∃ m0. ¬ n0 < m0 ∧ nσ(m0) = m - 1) → m = 0 ⊦ ∃ m0. ¬ n0 < m0 ∧ nσ(m0) = nσ(n0) |
Used simplifier rules: ⊦ ¬ n < n; (s) Used terms: n0
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.