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