| ⊦ stutf(nσ) → (leninv(nσ) = ∞ ↔ # nσ = ∞ ∧ (∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0))) |
stutf(nσ) ⊦ leninv(nσ) = ∞ ↔ # nσ = ∞ ∧ (∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0))
| stutf(nσ) ⊦ leninv(nσ) = ∞ ↔ # nσ = ∞ ∧ (∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0)) |
stutf(nσ) ⊦ leninv(nσ) = ∞ ↔ # nσ = ∞ ∧ (∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0))
| stutf(nσ) ⊦ leninv(nσ) = ∞ ↔ # nσ = ∞ ∧ (∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0)) |
⊦ 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)))) = ∞ ↔ # nσ = ∞ ∧ (∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0))
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)))) = ∞ ↔ # nσ = ∞ ∧ (∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0)) |
stutf(nσ) ⊦ max∞(λ n. n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = n - 1)))) = ∞ ↔ # nσ = ∞ ∧ (∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0))
| stutf(nσ) ⊦ max∞(λ n. n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = n - 1)))) = ∞ ↔ # nσ = ∞ ∧ (∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0)) |
⊦ max∞(np) = ∞ ↔ (∀ n. ∃ n0. n < n0 ∧ np(n0)) ∨ (∀ n. ¬ np(n))
stutf(nσ) ⊦ (∀ n. ∃ n0. n < n0 ∧ (n0 ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n0 - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1))))) ∨ (∀ n. ¬(n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = n - 1))))) ↔ # nσ = ∞ ∧ (∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0))
Used terms: λ n. n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = n - 1)))
| ⊦ max∞(np) = ∞ ↔ (∀ n. ∃ n0. n < n0 ∧ np(n0)) ∨ (∀ n. ¬ np(n)) |
| stutf(nσ) ⊦ (∀ n. ∃ n0. n < n0 ∧ (n0 ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n0 - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1))))) ∨ (∀ n. ¬(n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = n - 1))))) ↔ # nσ = ∞ ∧ (∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0)) |
stutf(nσ) ⊦ (∀ n. ∃ n0. n < n0 ∧ (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n0 - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1)))) ∨ (∀ n. ¬(n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = n - 1))))) ↔ # nσ = ∞ ∧ (∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0))
Used simplifier rules: ⊦ m < n → n ≠ 0; (s)
| stutf(nσ) ⊦ (∀ n. ∃ n0. n < n0 ∧ (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n0 - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1)))) ∨ (∀ n. ¬(n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = n - 1))))) ↔ # nσ = ∞ ∧ (∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0)) |
# nσ = ∞, stutf(nσ) ⊦ (∀ n. ∃ n0. n < n0 ∧ (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n0 - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1)))) ∨ (∀ n. ¬(n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = n - 1))))) ↔ # nσ = ∞ ∧ (∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0))
# nσ ≠ ∞, stutf(nσ) ⊦ (∀ n. ∃ n0. n < n0 ∧ (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n0 - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1)))) ∨ (∀ n. ¬(n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = n - 1))))) ↔ # nσ = ∞ ∧ (∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0))
Used formulas: # nσ = ∞
| # nσ = ∞, stutf(nσ) ⊦ (∀ n. ∃ n0. n < n0 ∧ (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n0 - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1)))) ∨ (∀ n. ¬(n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = n - 1))))) ↔ # nσ = ∞ ∧ (∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0)) |
# nσ = ∞, stutf(nσ) ⊦ (∀ n. ∃ n0. n < n0 ∧ (∃ m. nσ(m) = n0 - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1))) ∨ (∀ n. ¬(n ≠ 0 → (∃ m. nσ(m) = n - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n - 1)))) ↔ (∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0))
Used simplifier rules: ⊦ ⌜m⌝ < ∞; (s)
| # nσ = ∞, stutf(nσ) ⊦ (∀ n. ∃ n0. n < n0 ∧ (∃ m. nσ(m) = n0 - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1))) ∨ (∀ n. ¬(n ≠ 0 → (∃ m. nσ(m) = n - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n - 1)))) ↔ (∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0)) |
# nσ = ∞, stutf(nσ), (∀ n. ∃ n0. n < n0 ∧ (∃ m. nσ(m) = n0 - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1))) ∨ (∀ n. ¬(n ≠ 0 → (∃ m. nσ(m) = n - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n - 1)))) ⊦ ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0)
# nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0) ⊦ ∀ n. ∃ n0. n < n0 ∧ (∃ m. nσ(m) = n0 - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1)), ∀ n. ¬(n ≠ 0 → (∃ m. nσ(m) = n - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n - 1)))
| # nσ = ∞, stutf(nσ), (∀ n. ∃ n0. n < n0 ∧ (∃ m. nσ(m) = n0 - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1))) ∨ (∀ n. ¬(n ≠ 0 → (∃ m. nσ(m) = n - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n - 1)))) ⊦ ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0) |
# nσ = ∞, stutf(nσ), (∀ n. ∃ n0. n < n0 ∧ (∃ m. nσ(m) = n0 - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1))) ∨ (∀ n. ¬(n ≠ 0 → (∃ m. nσ(m) = n - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n - 1)))) ⊦ ∃ m0. m < m0 ∧ nσ(m) < nσ(m0)
| # nσ = ∞, stutf(nσ), (∀ n. ∃ n0. n < n0 ∧ (∃ m. nσ(m) = n0 - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1))) ∨ (∀ n. ¬(n ≠ 0 → (∃ m. nσ(m) = n - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n - 1)))) ⊦ ∃ m0. m < m0 ∧ nσ(m) < nσ(m0) |
# nσ = ∞, stutf(nσ), ∀ n. ∃ n0. n < n0 ∧ (∃ m. nσ(m) = n0 - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1)) ⊦ ∃ m0. m < m0 ∧ nσ(m) < nσ(m0)
# nσ = ∞, stutf(nσ), ∀ n. ¬(n ≠ 0 → (∃ m. nσ(m) = n - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n - 1))) ⊦ ∃ m0. m < m0 ∧ nσ(m) < nσ(m0)
| # nσ = ∞, stutf(nσ), ∀ n. ∃ n0. n < n0 ∧ (∃ m. nσ(m) = n0 - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1)) ⊦ ∃ m0. m < m0 ∧ nσ(m) < nσ(m0) |
# nσ = ∞, stutf(nσ), ∃ n0. nσ(m) + 1 < n0 ∧ (∃ m. nσ(m) = n0 - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1)) ⊦ ∃ m0. m < m0 ∧ nσ(m) < nσ(m0)
Used terms: nσ(m) + 1
| # nσ = ∞, stutf(nσ), ∃ n0. nσ(m) + 1 < n0 ∧ (∃ m. nσ(m) = n0 - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1)) ⊦ ∃ m0. m < m0 ∧ nσ(m) < nσ(m0) |
# nσ = ∞, nσ(m0) = n0 - 1, nσ(m1) ≠ n0 - 1, m0 < m1, nσ(m) + 1 < n0, stutf(nσ) ⊦ ∃ m0. m < m0 ∧ nσ(m) < nσ(m0)
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic
| # nσ = ∞, nσ(m0) = n0 - 1, nσ(m1) ≠ n0 - 1, m0 < m1, nσ(m) + 1 < n0, stutf(nσ) ⊦ ∃ m0. m < m0 ∧ nσ(m) < nσ(m0) |
# nσ = ∞, n0 = m2 + 1, nσ(m0) = m2, n0 ≠ 0, nσ(m1) ≠ m2, m0 < m1, nσ(m) + 1 < n0, stutf(nσ) ⊦ ∃ m0. m < m0 ∧ nσ(m) < nσ(m0)
Used simplifier rules: n0 < n ⊦ ¬ m + (* n) < (* n0); (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic n ≠ 0 ⊦ m = n - 1 ↔ n = m + 1; (elim) Used terms: n0, m2
| # nσ = ∞, n0 = m2 + 1, nσ(m0) = m2, n0 ≠ 0, nσ(m1) ≠ m2, m0 < m1, nσ(m) + 1 < n0, stutf(nσ) ⊦ ∃ m0. m < m0 ∧ nσ(m) < nσ(m0) |
# nσ = ∞, nσ(m1) ≠ nσ(m0), m0 < m1, nσ(m) < nσ(m0), stutf(nσ) ⊦ ∃ m0. m < m0 ∧ nσ(m) < nσ(m0)
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) 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 + n < m + n0 ↔ n < n0; (s) ⊦ m + 1 ≠ 0; (s)
| # nσ = ∞, nσ(m1) ≠ nσ(m0), m0 < m1, nσ(m) < nσ(m0), stutf(nσ) ⊦ ∃ m0. m < m0 ∧ nσ(m) < nσ(m0) |
# nσ = ∞, nσ(m1) ≠ nσ(m0), m0 < m1, nσ(m) < nσ(m0), stutf(nσ) ⊦ m < m0 ∧ nσ(m) < nσ(m0)
Used terms: m0
| # nσ = ∞, nσ(m1) ≠ nσ(m0), m0 < m1, nσ(m) < nσ(m0), stutf(nσ) ⊦ m < m0 ∧ nσ(m) < nσ(m0) |
# nσ = ∞, nσ(m1) ≠ nσ(m0), m0 < m1, m0 ≤ m, nσ(m) < nσ(m0), stutf(nσ) ⊦
Used simplifier rules: ⊦ m < n ↔ ¬ n ≤ m; (ss)
| # nσ = ∞, nσ(m1) ≠ nσ(m0), m0 < m1, m0 ≤ m, nσ(m) < nσ(m0), stutf(nσ) ⊦ |
⊦ mon≤(nσ) ∧ m ≤ n ∧ ⌜n⌝ < # nσ → nσ(m) ≤ nσ(n)
Used simplifier rules: stutf-monle: ⊦ stutf(nσ) → (mon≤(nσ) ↔ true); ⊦ m < n → (n ≤ m ↔ false); (s) ⊦ ⌜m⌝ < ∞; (s) Used terms: nσ, m0, m
| ⊦ mon≤(nσ) ∧ m ≤ n ∧ ⌜n⌝ < # nσ → nσ(m) ≤ nσ(n) |
| # nσ = ∞, stutf(nσ), ∀ n. ¬(n ≠ 0 → (∃ m. nσ(m) = n - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n - 1))) ⊦ ∃ m0. m < m0 ∧ nσ(m) < nσ(m0) |
Used terms: 0
| # nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0) ⊦ ∀ n. ∃ n0. n < n0 ∧ (∃ m. nσ(m) = n0 - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1)), ∀ n. ¬(n ≠ 0 → (∃ m. nσ(m) = n - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n - 1))) |
# nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦ ∃ n0. n < n0 ∧ (∃ m. nσ(m) = n0 - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1))
| # nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦ ∃ n0. n < n0 ∧ (∃ m. nσ(m) = n0 - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1)) |
# nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), ∀ n. ∃ m. nσ(m) = n, n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦ ∃ n0. n < n0 ∧ (∃ m. nσ(m) = n0 - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1))
# nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦ ∀ n. ∃ m. nσ(m) = n, ∃ n0. n < n0 ∧ (∃ m. nσ(m) = n0 - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1))
Used formulas: ∀ n. ∃ m. nσ(m) = n
| # nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), ∀ n. ∃ m. nσ(m) = n, n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦ ∃ n0. n < n0 ∧ (∃ m. nσ(m) = n0 - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1)) |
# nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), ∀ n. ∃ m. nσ(m) = n, n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦ n < n + 1 ∧ (∃ m. nσ(m) = n + 1 - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n + 1 - 1))
Used terms: n + 1
| # nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), ∀ n. ∃ m. nσ(m) = n, n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦ n < n + 1 ∧ (∃ m. nσ(m) = n + 1 - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n + 1 - 1)) |
# nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), ∀ n. ∃ m. nσ(m) = n, n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦ ∃ m1. nσ(m1) = n ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = nσ(m1))
Used simplifier rules: c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ n + 0 = n; (s) ⊦ n ≤ m → m + n0 - n = (m - n) + n0; (s) ⊦ ¬ n < n; (s) ⊦ m < n + 1 ↔ ¬ n < m; (s)
| # nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), ∀ n. ∃ m. nσ(m) = n, n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦ ∃ m1. nσ(m1) = n ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = nσ(m1)) |
# nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), ∃ m. nσ(m) = n, ∀ n. ∃ m. nσ(m) = n, n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦ ∃ m1. nσ(m1) = n ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = nσ(m1))
Used terms: n
| # nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), ∃ m. nσ(m) = n, ∀ n. ∃ m. nσ(m) = n, n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦ ∃ m1. nσ(m1) = n ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = nσ(m1)) |
# nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), ∀ n. ∃ m. nσ(m) = n, n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦ ∃ m. nσ(m) = nσ(m1) ∧ ¬(∀ m2. m < m2 → nσ(m2) = nσ(m))
| # nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), ∀ n. ∃ m. nσ(m) = n, n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦ ∃ m. nσ(m) = nσ(m1) ∧ ¬(∀ m2. m < m2 → nσ(m2) = nσ(m)) |
# nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), ∀ n. ∃ m. nσ(m) = n, n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦ nσ(m1) = nσ(m1) ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = nσ(m1))
Used terms: m1
| # nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), ∀ n. ∃ m. nσ(m) = n, n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦ nσ(m1) = nσ(m1) ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = nσ(m1)) |
# nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), ∀ m2. m1 < m2 → nσ(m2) = nσ(m1), ∀ n. ∃ m. nσ(m) = n, n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦
| # nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), ∀ m2. m1 < m2 → nσ(m2) = nσ(m1), ∀ n. ∃ m. nσ(m) = n, n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦ |
# nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), ∃ m. nσ(m) = nσ(m1) + 1, ∀ m2. m1 < m2 → nσ(m2) = nσ(m1), ∀ n. ∃ m. nσ(m) = n, n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦
Used terms: nσ(m1) + 1
| # nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), ∃ m. nσ(m) = nσ(m1) + 1, ∀ m2. m1 < m2 → nσ(m2) = nσ(m1), ∀ n. ∃ m. nσ(m) = n, n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦ |
# nσ = ∞, nσ(m2) = nσ(m1) + 1, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), ∀ m2. m1 < m2 → nσ(m2) = nσ(m1), ∀ n. ∃ m. nσ(m) = n, n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦
| # nσ = ∞, nσ(m2) = nσ(m1) + 1, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), ∀ m2. m1 < m2 → nσ(m2) = nσ(m1), ∀ n. ∃ m. nσ(m) = n, n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦ |
# nσ = ∞, nσ(m2) = nσ(m1) + 1, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), m1 < m2 → nσ(m2) = nσ(m1), ∀ n. ∃ m. nσ(m) = n, n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦
Used terms: m2
| # nσ = ∞, nσ(m2) = nσ(m1) + 1, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), m1 < m2 → nσ(m2) = nσ(m1), ∀ n. ∃ m. nσ(m) = n, n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦ |
# nσ = ∞, nσ(m2) = nσ(m1) + 1, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), m1 < m2 → nσ(m2) = nσ(m1), ∀ n. ∃ m. nσ(m) = n, n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦
| # nσ = ∞, nσ(m2) = nσ(m1) + 1, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), m1 < m2 → nσ(m2) = nσ(m1), ∀ n. ∃ m. nσ(m) = n, n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦ |
⊦ mon≤(nσ) ∧ m ≤ n ∧ ⌜n⌝ < # nσ → nσ(m) ≤ nσ(n)
Used simplifier rules: stutf-monle: ⊦ stutf(nσ) → (mon≤(nσ) ↔ true); ⊦ m = n + 1 → ¬ m ≤ n; (s) ⊦ ⌜m⌝ < ∞; (s) ⊦ m ≤ n ↔ ¬ n < m; (ss) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic ⊦ 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 Used terms: nσ, m2, m1
| ⊦ mon≤(nσ) ∧ m ≤ n ∧ ⌜n⌝ < # nσ → nσ(m) ≤ nσ(n) |
| # nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦ ∀ n. ∃ m. nσ(m) = n, ∃ n0. n < n0 ∧ (∃ m. nσ(m) = n0 - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1)) |
# nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦ ∃ m. nσ(m) = n1, ∃ n0. n < n0 ∧ (∃ m. nσ(m) = n0 - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1))
| # nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), n0 ≠ 0 → nσ(m) = n0 - 1 ∧ ¬(m < m0 → nσ(m0) = n0 - 1) ⊦ ∃ m. nσ(m) = n1, ∃ n0. n < n0 ∧ (∃ m. nσ(m) = n0 - 1 ∧ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1)) |
# nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0) ⊦ ∃ m. nσ(m) = n1
| # nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0) ⊦ ∃ m. nσ(m) = n1 |
# nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0) ⊦ ∃ m. nσ(m) = 0
# nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), ∀ nσ. # nσ = ∞ ∧ stutf(nσ) ∧ (∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0)) → (∃ m. nσ(m) = n) ⊦ ∃ m. nσ(m) = n.+1
Used simplifier rules: Nat freely generated by 0, +1;
| # nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0) ⊦ ∃ m. nσ(m) = 0 |
Used simplifier rules: stutf-zero: ⊦ stutf(nσ) → nσ(0) = 0; Used terms: 0
| # nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), ∀ nσ. # nσ = ∞ ∧ stutf(nσ) ∧ (∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0)) → (∃ m. nσ(m) = n) ⊦ ∃ m. nσ(m) = n.+1 |
# nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), ∀ nσ. # nσ = ∞ ∧ stutf(nσ) ∧ (∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0)) → (∃ m. nσ(m) = n) ⊦ ∃ m. nσ(m) = n + 1
Used simplifier rules: ⊦ m.+1 = m + 1; (s)
| # nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0), ∀ nσ. # nσ = ∞ ∧ stutf(nσ) ∧ (∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0)) → (∃ m. nσ(m) = n) ⊦ ∃ m. nσ(m) = n + 1 |
# nσ = ∞, stutf(nσ), # nσ = ∞ ∧ stutf(nσ) ∧ (∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0)) → (∃ m. nσ(m) = n), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0) ⊦ ∃ m. nσ(m) = n + 1
Used terms: nσ
| # nσ = ∞, stutf(nσ), # nσ = ∞ ∧ stutf(nσ) ∧ (∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0)) → (∃ m. nσ(m) = n), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0) ⊦ ∃ m. nσ(m) = n + 1 |
# nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0) ⊦ ∃ m0. nσ(m0) = nσ(m) + 1
| # nσ = ∞, stutf(nσ), ∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0) ⊦ ∃ m0. nσ(m0) = nσ(m) + 1 |
# nσ = ∞, stutf(nσ), ∃ m0. m < m0 ∧ nσ(m) < nσ(m0) ⊦ ∃ m0. nσ(m0) = nσ(m) + 1
Used terms: m
| # nσ = ∞, stutf(nσ), ∃ m0. m < m0 ∧ nσ(m) < nσ(m0) ⊦ ∃ m0. nσ(m0) = nσ(m) + 1 |
# nσ = ∞, m < m0, nσ(m) < nσ(m0), stutf(nσ) ⊦ ∃ m0. nσ(m0) = nσ(m) + 1
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic
| # nσ = ∞, m < m0, nσ(m) < nσ(m0), stutf(nσ) ⊦ ∃ m0. nσ(m0) = nσ(m) + 1 |
⊦ stutf(nσ) ∧ ⌜m⌝ < # nσ ∧ n ≤ nσ(m) → (∃ m0. m0 ≤ m ∧ nσ(m0) = n)
# nσ = ∞, m < m0, nσ(m) < nσ(m0), stutf(nσ), stutf(nσ) ∧ ⌜m0⌝ < # nσ ∧ nσ(m) + 1 ≤ nσ(m0) → (∃ m1. m1 ≤ m0 ∧ nσ(m1) = nσ(m) + 1) ⊦ ∃ m0. nσ(m0) = nσ(m) + 1
Used terms: nσ, m0, nσ(m) + 1
| ⊦ stutf(nσ) ∧ ⌜m⌝ < # nσ ∧ n ≤ nσ(m) → (∃ m0. m0 ≤ m ∧ nσ(m0) = n) |
| # nσ = ∞, m < m0, nσ(m) < nσ(m0), stutf(nσ), stutf(nσ) ∧ ⌜m0⌝ < # nσ ∧ nσ(m) + 1 ≤ nσ(m0) → (∃ m1. m1 ≤ m0 ∧ nσ(m1) = nσ(m) + 1) ⊦ ∃ m0. nσ(m0) = nσ(m) + 1 |
# nσ = ∞, nσ(m1) = nσ(m) + 1, m < m0, m1 ≤ m0, nσ(m) < nσ(m0), nσ(m1) ≤ nσ(m0), stutf(nσ) ⊦ ∃ m0. nσ(m0) = nσ(m1)
Used simplifier rules: c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic eqle-one: ⊦ m = n + 1 ∧ n < n0 → m ≤ n0; (forward) from specification nat ⊦ ⌜m⌝ < ∞; (s) ⊦ m + 1 ≤ n ↔ m < n; (s)
| # nσ = ∞, nσ(m1) = nσ(m) + 1, m < m0, m1 ≤ m0, nσ(m) < nσ(m0), nσ(m1) ≤ nσ(m0), stutf(nσ) ⊦ ∃ m0. nσ(m0) = nσ(m1) |
Used terms: m1
| # nσ ≠ ∞, stutf(nσ) ⊦ (∀ n. ∃ n0. n < n0 ∧ (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n0 - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = n0 - 1)))) ∨ (∀ n. ¬(n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = n - 1))))) ↔ # nσ = ∞ ∧ (∀ m. ∃ m0. m < m0 ∧ nσ(m) < nσ(m0)) |
# nσ ≠ ∞, stutf(nσ), (∀ n. ∃ n0. n < n0 ∧ (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n0 - 1)) ∨ (∀ n. ¬(n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1))) ⊦
| # nσ ≠ ∞, stutf(nσ), (∀ n. ∃ n0. n < n0 ∧ (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n0 - 1)) ∨ (∀ n. ¬(n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1))) ⊦ |
⊦ n∞ = ∞ ↔ ¬(∃ n. n∞ = ⌜n⌝ )
stutf(nσ), (∀ n. ∃ n0. n < n0 ∧ (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n0 - 1)) ∨ (∀ n. ¬(n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1))), ∃ n. # nσ = ⌜n⌝ ⊦
Used terms: # nσ
| ⊦ n∞ = ∞ ↔ ¬(∃ n. n∞ = ⌜n⌝ ) |
| stutf(nσ), (∀ n. ∃ n0. n < n0 ∧ (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n0 - 1)) ∨ (∀ n. ¬(n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1))), ∃ n. # nσ = ⌜n⌝ ⊦ |
# nσ = ⌜n⌝ , stutf(nσ), (∀ n. ∃ n0. n < n0 ∧ (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n0 - 1)) ∨ (∀ n. ¬(n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1))) ⊦
| # nσ = ⌜n⌝ , stutf(nσ), (∀ n. ∃ n0. n < n0 ∧ (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n0 - 1)) ∨ (∀ n. ¬(n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1))) ⊦ |
# nσ = ⌜n⌝ , stutf(nσ), ∀ n. ∃ n0. n < n0 ∧ (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n0 - 1) ⊦
# nσ = ⌜n⌝ , stutf(nσ), ∀ n. ¬(n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1)) ⊦
| # nσ = ⌜n⌝ , stutf(nσ), ∀ n. ∃ n0. n < n0 ∧ (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n0 - 1) ⊦ |
# nσ = ⌜n⌝ , n = n1.+1, stutf(nσ), ∀ n. ∃ n0. n < n0 ∧ (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n0 - 1) ⊦
Used simplifier rules: stutf-nonempty: ⊦ stutf(nσ) → (nσ = [] ↔ false); Nat freely generated by 0, +1; ⊦ # σ = ⌜0⌝ ↔ σ = []; (s)
| # nσ = ⌜n⌝ , n = n1.+1, stutf(nσ), ∀ n. ∃ n0. n < n0 ∧ (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n0 - 1) ⊦ |
# nσ = ⌜n1⌝ + ⌜1⌝ , stutf(nσ), ∀ n. ∃ n0. n < n0 ∧ (∃ m. ¬ n1 < m ∧ nσ(m) = n0 - 1) ⊦
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) ⊦ n∞ = ⌜m⌝ + ⌜n0⌝ → (⌜n⌝ < n∞ ↔ n < m + n0); (s) add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s) ⊦ m.+1 = m + 1; (s)
| # nσ = ⌜n1⌝ + ⌜1⌝ , stutf(nσ), ∀ n. ∃ n0. n < n0 ∧ (∃ m. ¬ n1 < m ∧ nσ(m) = n0 - 1) ⊦ |
# nσ = ⌜n1⌝ + ⌜1⌝ , stutf(nσ), ∀ n. ∃ n0. n < n0 ∧ (∃ m. ¬ n1 < m ∧ nσ(m) = n0 - 1), ∃ n0. nσ(n1) + 1 < n0 ∧ (∃ m. ¬ n1 < m ∧ nσ(m) = n0 - 1) ⊦
Used terms: nσ(n1) + 1
| # nσ = ⌜n1⌝ + ⌜1⌝ , stutf(nσ), ∀ n. ∃ n0. n < n0 ∧ (∃ m. ¬ n1 < m ∧ nσ(m) = n0 - 1), ∃ n0. nσ(n1) + 1 < n0 ∧ (∃ m. ¬ n1 < m ∧ nσ(m) = n0 - 1) ⊦ |
# nσ = ⌜n1⌝ + ⌜1⌝ , nσ(m) = n0 - 1, m ≤ n1, nσ(n1) + 1 < n0, stutf(nσ), ∀ n. ∃ n0. n < n0 ∧ (∃ m. ¬ n1 < m ∧ nσ(m) = n0 - 1) ⊦
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic ⊦ m < n ↔ ¬ n ≤ m; (ss)
| # nσ = ⌜n1⌝ + ⌜1⌝ , nσ(m) = n0 - 1, m ≤ n1, nσ(n1) + 1 < n0, stutf(nσ), ∀ n. ∃ n0. n < n0 ∧ (∃ m. ¬ n1 < m ∧ nσ(m) = n0 - 1) ⊦ |
# nσ = ⌜n1⌝ + ⌜1⌝ , n0 = m0 + 1, nσ(m) = m0, n0 ≠ 0, m ≤ n1, nσ(n1) + 1 < n0, stutf(nσ), ∀ n. ∃ n0. n < n0 ∧ (∃ m. ¬ n1 < m ∧ nσ(m) = n0 - 1) ⊦
Used simplifier rules: n0 < n ⊦ ¬ m + (* n) < (* n0); (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic n ≠ 0 ⊦ m = n - 1 ↔ n = m + 1; (elim) Used terms: n0, m0
| # nσ = ⌜n1⌝ + ⌜1⌝ , n0 = m0 + 1, nσ(m) = m0, n0 ≠ 0, m ≤ n1, nσ(n1) + 1 < n0, stutf(nσ), ∀ n. ∃ n0. n < n0 ∧ (∃ m. ¬ n1 < m ∧ nσ(m) = n0 - 1) ⊦ |
# nσ = ⌜n1⌝ + ⌜1⌝ , m ≤ n1, nσ(n1) < nσ(m), stutf(nσ), ∀ n. ∃ n0. n < n0 ∧ (∃ m. ¬ n1 < m ∧ nσ(m) = n0 - 1) ⊦
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) 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 + n < m + n0 ↔ n < n0; (s) ⊦ m + 1 ≠ 0; (s)
| # nσ = ⌜n1⌝ + ⌜1⌝ , m ≤ n1, nσ(n1) < nσ(m), stutf(nσ), ∀ n. ∃ n0. n < n0 ∧ (∃ m. ¬ n1 < m ∧ nσ(m) = n0 - 1) ⊦ |
⊦ mon≤(nσ) ∧ m ≤ n ∧ ⌜n⌝ < # nσ → nσ(m) ≤ nσ(n)
Used simplifier rules: stutf-monle: ⊦ stutf(nσ) → (mon≤(nσ) ↔ true); add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf ⊦ n∞ = ⌜m⌝ + ⌜n0⌝ → (⌜n⌝ < n∞ ↔ n < m + n0); (s) ⊦ m < n + 1 ↔ ¬ n < m; (s) ⊦ ¬ n < n; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic ⊦ m < n → (n ≤ m ↔ false); (s) Used terms: nσ, m, n1
| ⊦ mon≤(nσ) ∧ m ≤ n ∧ ⌜n⌝ < # nσ → nσ(m) ≤ nσ(n) |
| # nσ = ⌜n⌝ , stutf(nσ), ∀ n. ¬(n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1)) ⊦ |
# nσ = ⌜n⌝ , n = n0.+1, stutf(nσ), ∀ n. ¬(n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1)) ⊦
Used simplifier rules: stutf-nonempty: ⊦ stutf(nσ) → (nσ = [] ↔ false); Nat freely generated by 0, +1; ⊦ # σ = ⌜0⌝ ↔ σ = []; (s)
| # nσ = ⌜n⌝ , n = n0.+1, stutf(nσ), ∀ n. ¬(n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n - 1)) ⊦ |
# nσ = ⌜n0⌝ + ⌜1⌝ , stutf(nσ), ∀ n. ¬(n ≠ 0 → (∃ m. ¬ n0 < m ∧ nσ(m) = n - 1)) ⊦
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) ⊦ n∞ = ⌜m⌝ + ⌜n0⌝ → (⌜n⌝ < n∞ ↔ n < m + n0); (s) add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s) ⊦ m.+1 = m + 1; (s)
| # nσ = ⌜n0⌝ + ⌜1⌝ , stutf(nσ), ∀ n. ¬(n ≠ 0 → (∃ m. ¬ n0 < m ∧ nσ(m) = n - 1)) ⊦ |
# nσ = ⌜n0⌝ + ⌜1⌝ , nσ(n0) + 1 ≠ 0, stutf(nσ), ∀ n. ¬(n ≠ 0 → (∃ m. ¬ n0 < m ∧ nσ(m) = n - 1)) ⊦ ∃ m. ¬ n0 < m ∧ nσ(m) = nσ(n0) + 1 - 1
Used terms: nσ(n0) + 1
| # nσ = ⌜n0⌝ + ⌜1⌝ , nσ(n0) + 1 ≠ 0, stutf(nσ), ∀ n. ¬(n ≠ 0 → (∃ m. ¬ n0 < m ∧ nσ(m) = n - 1)) ⊦ ∃ m. ¬ n0 < m ∧ nσ(m) = nσ(n0) + 1 - 1 |
# nσ = ⌜n0⌝ + ⌜1⌝ , stutf(nσ), ∀ n. ¬(n ≠ 0 → (∃ m. ¬ n0 < m ∧ nσ(m) = n - 1)) ⊦ ∃ m. ¬ n0 < m ∧ nσ(m) = 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 ⊦ n + 0 = n; (s) ⊦ n ≤ m → m + n0 - n = (m - n) + n0; (s) ⊦ m + 1 ≠ 0; (s)
| # nσ = ⌜n0⌝ + ⌜1⌝ , stutf(nσ), ∀ n. ¬(n ≠ 0 → (∃ m. ¬ n0 < m ∧ nσ(m) = n - 1)) ⊦ ∃ m. ¬ n0 < m ∧ nσ(m) = 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.