| ⊦ 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)))) ∧ (∀ m. (∃ 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 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)))) ∧ (∀ m. (∃ 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) |
# nσ = ∞, stutf(nσ) ⊦ (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = nσ(m)))) ∧ (∀ m. (∃ 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)
# nσ ≠ ∞, stutf(nσ) ⊦ (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = nσ(m)))) ∧ (∀ m. (∃ 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 formulas: # nσ = ∞
| # nσ = ∞, stutf(nσ) ⊦ (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = nσ(m)))) ∧ (∀ m. (∃ 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) |
# nσ = ∞, stutf(nσ) ⊦ (∃ m. nσ(m) = n ∧ ¬(∀ m0. m < m0 → nσ(m0) = nσ(m))) ∧ (∀ m. (∃ m0. nσ(m0) = m - 1 ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1)) → ¬ n + 1 < m) ↔ (∃ 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))) ∧ (∀ m. (∃ m0. nσ(m0) = m - 1 ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1)) → ¬ n + 1 < 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)), ∀ m. (∃ m0. nσ(m0) = m - 1 ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1)) → ¬ n + 1 < 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))) ∧ (∀ m. (∃ m0. nσ(m0) = m - 1 ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1)) → ¬ n + 1 < m)
| # nσ = ∞, stutf(nσ), ∃ m. nσ(m) = n ∧ ¬(∀ m0. m < m0 → nσ(m0) = nσ(m)), ∀ m. (∃ m0. nσ(m0) = m - 1 ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1)) → ¬ n + 1 < m ⊦ ∃ m. nσ(m) = n ∧ (∀ m0. m < m0 → nσ(m0) = nσ(m) + 1) |
# nσ = ∞, nσ(m0) ≠ nσ(m), m < m0, stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0 ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1)
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic
| # nσ = ∞, nσ(m0) ≠ nσ(m), m < m0, stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0 ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1) |
⊦ mon≤(nσ) ∧ m ≤ n ∧ ⌜n⌝ < # nσ → nσ(m) ≤ nσ(n)
# nσ = ∞, nσ(m0) ≠ nσ(m), m < m0, stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0, mon≤(nσ) ∧ m ≤ m0 ∧ ⌜m0⌝ < # nσ → nσ(m) ≤ nσ(m0) ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1)
Used terms: nσ, m, m0
| ⊦ mon≤(nσ) ∧ m ≤ n ∧ ⌜n⌝ < # nσ → nσ(m) ≤ nσ(n) |
| # nσ = ∞, nσ(m0) ≠ nσ(m), m < m0, stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0, mon≤(nσ) ∧ m ≤ m0 ∧ ⌜m0⌝ < # nσ → nσ(m) ≤ nσ(m0) ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1) |
# nσ = ∞, nσ(m0) ≠ nσ(m), m < m0, nσ(m) < nσ(m0), stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0 ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 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σ(m0) ≠ nσ(m), m < m0, nσ(m) < nσ(m0), stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0 ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1) |
# nσ = ∞, nσ(m0) ≠ nσ(m), m < m0, nσ(m) < nσ(m0), stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0, (∃ m1. nσ(m1) = nσ(m0) - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = nσ(m0) - 1)) → ¬ nσ(m) + 1 < nσ(m0) ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1)
Used terms: nσ(m0)
| # nσ = ∞, nσ(m0) ≠ nσ(m), m < m0, nσ(m) < nσ(m0), stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0, (∃ m1. nσ(m1) = nσ(m0) - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = nσ(m0) - 1)) → ¬ nσ(m) + 1 < nσ(m0) ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1) |
# nσ = ∞, nσ(m0) = m3 + 1, nσ(m0) ≠ 0, nσ(m0) ≠ nσ(m), m < m0, nσ(m) < nσ(m0), stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0, (∃ m1. nσ(m1) = m3 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m3)) → ¬ nσ(m) + 1 < nσ(m0) ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1)
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) n ≠ 0 ⊦ m = n - 1 ↔ n = m + 1; (elim) Used terms: nσ(m0), m3
| # nσ = ∞, nσ(m0) = m3 + 1, nσ(m0) ≠ 0, nσ(m0) ≠ nσ(m), m < m0, nσ(m) < nσ(m0), stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0, (∃ m1. nσ(m1) = m3 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m3)) → ¬ nσ(m) + 1 < nσ(m0) ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1) |
# nσ = ∞, nσ(m0) = m3 + 1, m3 + 1 ≠ nσ(m), m < m0, nσ(m) ≤ m3, stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0, (∃ m1. nσ(m1) = m3 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = nσ(m1))) → ¬ nσ(m) < m3 ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 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σ(m0) = m3 + 1, m3 + 1 ≠ nσ(m), m < m0, nσ(m) ≤ m3, stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0, (∃ m1. nσ(m1) = m3 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = nσ(m1))) → ¬ nσ(m) < m3 ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1) |
# nσ = ∞, nσ(m0) = m3 + 1, m3 + 1 ≠ nσ(m), m < m0, nσ(m) ≤ m3, stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0 ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1), ∃ m1. nσ(m1) = m3 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = nσ(m1))
# nσ = ∞, nσ(m0) = m3 + 1, m3 + 1 ≠ nσ(m), m < m0, nσ(m) ≤ m3, stutf(nσ), ¬ nσ(m) < m3, ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0 ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1)
| # nσ = ∞, nσ(m0) = m3 + 1, m3 + 1 ≠ nσ(m), m < m0, nσ(m) ≤ m3, stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0 ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1), ∃ m1. nσ(m1) = m3 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = nσ(m1)) |
⊦ stutf(nσ) ∧ ⌜m⌝ < # nσ ∧ n ≤ nσ(m) → (∃ m0. m0 ≤ m ∧ nσ(m0) = n)
# nσ = ∞, nσ(m0) = m3 + 1, m3 + 1 ≠ nσ(m), m < m0, nσ(m) ≤ m3, stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0, stutf(nσ) ∧ ⌜m0⌝ < # nσ ∧ m3 ≤ nσ(m0) → (∃ m1. m1 ≤ m0 ∧ nσ(m1) = m3) ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1), ∃ m1. nσ(m1) = m3 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = nσ(m1))
Used terms: nσ, m0, m3
| ⊦ stutf(nσ) ∧ ⌜m⌝ < # nσ ∧ n ≤ nσ(m) → (∃ m0. m0 ≤ m ∧ nσ(m0) = n) |
| # nσ = ∞, nσ(m0) = m3 + 1, m3 + 1 ≠ nσ(m), m < m0, nσ(m) ≤ m3, stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0, stutf(nσ) ∧ ⌜m0⌝ < # nσ ∧ m3 ≤ nσ(m0) → (∃ m1. m1 ≤ m0 ∧ nσ(m1) = m3) ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1), ∃ m1. nσ(m1) = m3 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = nσ(m1)) |
# nσ = ∞, nσ(m0) = nσ(m1) + 1, nσ(m0) ≠ nσ(m), m < m0, m1 ≤ m0, nσ(m) ≤ nσ(m1), stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0 ⊦ ∃ m. nσ(m) = nσ(m1) ∧ ¬(∀ m2. m < m2 → nσ(m2) = nσ(m)), ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 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; (s) ⊦ ⌜m⌝ < ∞; (s)
| # nσ = ∞, nσ(m0) = nσ(m1) + 1, nσ(m0) ≠ nσ(m), m < m0, m1 ≤ m0, nσ(m) ≤ nσ(m1), stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0 ⊦ ∃ m. nσ(m) = nσ(m1) ∧ ¬(∀ m2. m < m2 → nσ(m2) = nσ(m)), ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1) |
# nσ = ∞, nσ(m0) = nσ(m1) + 1, nσ(m0) ≠ nσ(m), m < m0, m1 ≤ m0, nσ(m) ≤ nσ(m1), stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0 ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1), nσ(m1) = nσ(m1) ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = nσ(m1))
Used terms: m1
| # nσ = ∞, nσ(m0) = nσ(m1) + 1, nσ(m0) ≠ nσ(m), m < m0, m1 ≤ m0, nσ(m) ≤ nσ(m1), stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0 ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1), nσ(m1) = nσ(m1) ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = nσ(m1)) |
# nσ = ∞, nσ(m0) = nσ(m1) + 1, nσ(m0) ≠ nσ(m), m < m0, m1 ≤ m0, nσ(m) ≤ nσ(m1), stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0, ∀ m2. m1 < m2 → nσ(m2) = nσ(m1) ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1)
| # nσ = ∞, nσ(m0) = nσ(m1) + 1, nσ(m0) ≠ nσ(m), m < m0, m1 ≤ m0, nσ(m) ≤ nσ(m1), stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0, ∀ m2. m1 < m2 → nσ(m2) = nσ(m1) ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1) |
# nσ = ∞, nσ(m0) = nσ(m1) + 1, nσ(m0) ≠ nσ(m), m < m0, m1 ≤ m0, nσ(m) ≤ nσ(m1), stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0, m1 < m0 → nσ(m0) = nσ(m1) ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1)
Used terms: m0
| # nσ = ∞, nσ(m0) = nσ(m1) + 1, nσ(m0) ≠ nσ(m), m < m0, m1 ≤ m0, nσ(m) ≤ nσ(m1), stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0, m1 < m0 → nσ(m0) = nσ(m1) ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 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σ(m0) = m3 + 1, m3 + 1 ≠ nσ(m), m < m0, nσ(m) ≤ m3, stutf(nσ), ¬ nσ(m) < m3, ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0 ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1) |
# nσ = ∞, nσ(m0) = nσ(m) + 1, m < m0, stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0 ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 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σ(m0) = nσ(m) + 1, m < m0, stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0 ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1) |
# nσ = ∞, nσ(m0) = nσ(m) + 1, m < m0, stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0, ∃ m1. m ≤ m1 ∧ m1 < m0 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1)
# nσ = ∞, nσ(m0) = nσ(m) + 1, m < m0, stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0 ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1), ∃ m1. m ≤ m1 ∧ m1 < m0 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1
Used formulas: ∃ m1. m ≤ m1 ∧ m1 < m0 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1
| # nσ = ∞, nσ(m0) = nσ(m) + 1, m < m0, stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0, ∃ m1. m ≤ m1 ∧ m1 < m0 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1) |
# nσ = ∞, nσ(m0) = nσ(m1) + 1, nσ(m1 + 1) = nσ(m0), nσ(m) = nσ(m1), m < m0, m ≤ m1, m1 < m0, stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m1) + 1 < m0 ⊦ ∃ m0. nσ(m0) = nσ(m1) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1)
Used simplifier rules: fle-01: ⊦ m ≤ n ∧ n < n0 → m < n0; (forward) from specification nat
| # nσ = ∞, nσ(m0) = nσ(m1) + 1, nσ(m1 + 1) = nσ(m0), nσ(m) = nσ(m1), m < m0, m ≤ m1, m1 < m0, stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m1) + 1 < m0 ⊦ ∃ m0. nσ(m0) = nσ(m1) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1) |
# nσ = ∞, nσ(m) = nσ(m1), nσ(m1 + 1) = nσ(m0), nσ(m0) = nσ(m1) + 1, m ≤ m1, m < m0, m1 < m0, stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m1) + 1 < m0 ⊦ nσ(m1) = nσ(m1) ∧ (∀ m. m1 < m → nσ(m) = nσ(m1) + 1)
Used terms: m1
| # nσ = ∞, nσ(m) = nσ(m1), nσ(m1 + 1) = nσ(m0), nσ(m0) = nσ(m1) + 1, m ≤ m1, m < m0, m1 < m0, stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m1) + 1 < m0 ⊦ nσ(m1) = nσ(m1) ∧ (∀ m. m1 < m → nσ(m) = nσ(m1) + 1) |
# nσ = ∞, nσ(m) = nσ(m1), nσ(m1 + 1) = nσ(m0), nσ(m0) = nσ(m1) + 1, nσ(m2) ≠ nσ(m0), m < m2, m ≤ m1, m < m0, m1 < m2, m1 < m0, stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m1) + 1 < m0 ⊦
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σ(m) = nσ(m1), nσ(m1 + 1) = nσ(m0), nσ(m0) = nσ(m1) + 1, nσ(m2) ≠ nσ(m0), m < m2, m ≤ m1, m < m0, m1 < m2, m1 < m0, stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m1) + 1 < m0 ⊦ |
⊦ mon≤(nσ) ∧ m ≤ n ∧ ⌜n⌝ < # nσ → nσ(m) ≤ nσ(n)
# nσ = ∞, nσ(m0) = nσ(m1) + 1, nσ(m1 + 1) = nσ(m0), nσ(m) = nσ(m1), nσ(m2) ≠ nσ(m0), m < m0, m ≤ m1, m < m2, m1 < m0, m1 < m2, stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m1) + 1 < m0, mon≤(nσ) ∧ m1 + 1 ≤ m2 ∧ ⌜m2⌝ < # nσ → nσ(m1 + 1) ≤ nσ(m2) ⊦
Used terms: nσ, m1 + 1, m2
| ⊦ mon≤(nσ) ∧ m ≤ n ∧ ⌜n⌝ < # nσ → nσ(m) ≤ nσ(n) |
| # nσ = ∞, nσ(m0) = nσ(m1) + 1, nσ(m1 + 1) = nσ(m0), nσ(m) = nσ(m1), nσ(m2) ≠ nσ(m0), m < m0, m ≤ m1, m < m2, m1 < m0, m1 < m2, stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m1) + 1 < m0, mon≤(nσ) ∧ m1 + 1 ≤ m2 ∧ ⌜m2⌝ < # nσ → nσ(m1 + 1) ≤ nσ(m2) ⊦ |
# nσ = ∞, nσ(m) = nσ(m1), nσ(m1 + 1) = nσ(m0), nσ(m0) = nσ(m1) + 1, nσ(m2) ≠ nσ(m0), m < m2, m ≤ m1, m < m0, m1 < m2, m1 < m0, nσ(m0) < nσ(m2), stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m1) + 1 < m0 ⊦
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σ(m) = nσ(m1), nσ(m1 + 1) = nσ(m0), nσ(m0) = nσ(m1) + 1, nσ(m2) ≠ nσ(m0), m < m2, m ≤ m1, m < m0, m1 < m2, m1 < m0, nσ(m0) < nσ(m2), stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m1) + 1 < m0 ⊦ |
# nσ = ∞, nσ(m0) = nσ(m1) + 1, nσ(m1 + 1) = nσ(m0), nσ(m) = nσ(m1), nσ(m2) ≠ nσ(m0), m < m0, m ≤ m1, m < m2, m1 < m0, m1 < m2, nσ(m0) < nσ(m2), stutf(nσ), (∃ m1. nσ(m1) = nσ(m2) - 1 ∧ ¬(∀ m. m1 < m → nσ(m) = nσ(m2) - 1)) → ¬ nσ(m1) + 1 < nσ(m2) ⊦
Used terms: nσ(m2)
| # nσ = ∞, nσ(m0) = nσ(m1) + 1, nσ(m1 + 1) = nσ(m0), nσ(m) = nσ(m1), nσ(m2) ≠ nσ(m0), m < m0, m ≤ m1, m < m2, m1 < m0, m1 < m2, nσ(m0) < nσ(m2), stutf(nσ), (∃ m1. nσ(m1) = nσ(m2) - 1 ∧ ¬(∀ m. m1 < m → nσ(m) = nσ(m2) - 1)) → ¬ nσ(m1) + 1 < nσ(m2) ⊦ |
# nσ = ∞, nσ(m0) = nσ(m1) + 1, nσ(m1 + 1) = nσ(m0), nσ(m) = nσ(m1), nσ(m2) ≠ nσ(m0), m < m0, m ≤ m1, m < m2, m1 < m0, m1 < m2, nσ(m0) < nσ(m2), stutf(nσ) ⊦ ∃ m1. nσ(m1) = nσ(m2) - 1 ∧ ¬(∀ m. m1 < m → nσ(m) = nσ(m2) - 1)
| # nσ = ∞, nσ(m0) = nσ(m1) + 1, nσ(m1 + 1) = nσ(m0), nσ(m) = nσ(m1), nσ(m2) ≠ nσ(m0), m < m0, m ≤ m1, m < m2, m1 < m0, m1 < m2, nσ(m0) < nσ(m2), stutf(nσ) ⊦ ∃ m1. nσ(m1) = nσ(m2) - 1 ∧ ¬(∀ m. m1 < m → nσ(m) = nσ(m2) - 1) |
# nσ = ∞, nσ(m) = nσ(m1), nσ(m1 + 1) = nσ(m0), nσ(m0) = nσ(m1) + 1, nσ(m2) = m3 + 1, nσ(m2) ≠ 0, nσ(m2) ≠ nσ(m0), m < m2, m ≤ m1, m < m0, m1 < m2, m1 < m0, nσ(m0) < nσ(m2), stutf(nσ) ⊦ ∃ m1. nσ(m1) = m3 ∧ ¬(∀ m. m1 < m → nσ(m) = m3)
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) n ≠ 0 ⊦ m = n - 1 ↔ n = m + 1; (elim) Used terms: nσ(m2), m3
| # nσ = ∞, nσ(m) = nσ(m1), nσ(m1 + 1) = nσ(m0), nσ(m0) = nσ(m1) + 1, nσ(m2) = m3 + 1, nσ(m2) ≠ 0, nσ(m2) ≠ nσ(m0), m < m2, m ≤ m1, m < m0, m1 < m2, m1 < m0, nσ(m0) < nσ(m2), stutf(nσ) ⊦ ∃ m1. nσ(m1) = m3 ∧ ¬(∀ m. m1 < m → nσ(m) = m3) |
# nσ = ∞, nσ(m2) = m3 + 1, nσ(m0) = nσ(m1) + 1, nσ(m1 + 1) = nσ(m0), nσ(m) = nσ(m1), m3 + 1 ≠ nσ(m0), m < m0, m ≤ m1, m < m2, m1 < m0, m1 < m2, nσ(m0) ≤ m3, nσ(m1) < m3, stutf(nσ) ⊦ ∃ m4. nσ(m4) = m3 ∧ ¬(∀ m. m4 < m → nσ(m) = nσ(m4))
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σ(m2) = m3 + 1, nσ(m0) = nσ(m1) + 1, nσ(m1 + 1) = nσ(m0), nσ(m) = nσ(m1), m3 + 1 ≠ nσ(m0), m < m0, m ≤ m1, m < m2, m1 < m0, m1 < m2, nσ(m0) ≤ m3, nσ(m1) < m3, stutf(nσ) ⊦ ∃ m4. nσ(m4) = m3 ∧ ¬(∀ m. m4 < m → nσ(m) = nσ(m4)) |
⊦ stutf(nσ) ∧ ⌜m⌝ < # nσ ∧ n ≤ nσ(m) → (∃ m0. m0 ≤ m ∧ nσ(m0) = n)
# nσ = ∞, nσ(m) = nσ(m1), nσ(m1 + 1) = nσ(m0), nσ(m0) = nσ(m1) + 1, nσ(m2) = m3 + 1, m3 + 1 ≠ nσ(m0), m < m2, m ≤ m1, m < m0, m1 < m2, m1 < m0, nσ(m1) < m3, nσ(m0) ≤ m3, stutf(nσ), stutf(nσ) ∧ ⌜m2⌝ < # nσ ∧ m3 ≤ nσ(m2) → (∃ m0. m0 ≤ m2 ∧ nσ(m0) = m3) ⊦ ∃ m4. nσ(m4) = m3 ∧ ¬(∀ m. m4 < m → nσ(m) = nσ(m4))
Used terms: nσ, m2, m3
| ⊦ stutf(nσ) ∧ ⌜m⌝ < # nσ ∧ n ≤ nσ(m) → (∃ m0. m0 ≤ m ∧ nσ(m0) = n) |
| # nσ = ∞, nσ(m) = nσ(m1), nσ(m1 + 1) = nσ(m0), nσ(m0) = nσ(m1) + 1, nσ(m2) = m3 + 1, m3 + 1 ≠ nσ(m0), m < m2, m ≤ m1, m < m0, m1 < m2, m1 < m0, nσ(m1) < m3, nσ(m0) ≤ m3, stutf(nσ), stutf(nσ) ∧ ⌜m2⌝ < # nσ ∧ m3 ≤ nσ(m2) → (∃ m0. m0 ≤ m2 ∧ nσ(m0) = m3) ⊦ ∃ m4. nσ(m4) = m3 ∧ ¬(∀ m. m4 < m → nσ(m) = nσ(m4)) |
# nσ = ∞, nσ(m) = nσ(m1), nσ(m1 + 1) = nσ(m0), nσ(m0) = nσ(m1) + 1, nσ(m2) = nσ(m4) + 1, nσ(m2) ≠ nσ(m0), m < m2, m ≤ m1, m < m0, m1 < m2, m1 < m0, m4 ≤ m2, nσ(m1) < nσ(m4), nσ(m0) ≤ nσ(m4), stutf(nσ) ⊦ ∃ m. nσ(m) = nσ(m4) ∧ ¬(∀ m0. m < m0 → nσ(m0) = nσ(m))
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σ(m) = nσ(m1), nσ(m1 + 1) = nσ(m0), nσ(m0) = nσ(m1) + 1, nσ(m2) = nσ(m4) + 1, nσ(m2) ≠ nσ(m0), m < m2, m ≤ m1, m < m0, m1 < m2, m1 < m0, m4 ≤ m2, nσ(m1) < nσ(m4), nσ(m0) ≤ nσ(m4), stutf(nσ) ⊦ ∃ m. nσ(m) = nσ(m4) ∧ ¬(∀ m0. m < m0 → nσ(m0) = nσ(m)) |
# nσ = ∞, nσ(m2) = nσ(m4) + 1, nσ(m0) = nσ(m1) + 1, nσ(m1 + 1) = nσ(m0), nσ(m) = nσ(m1), nσ(m2) ≠ nσ(m0), m < m0, m ≤ m1, m < m2, m1 < m0, m1 < m2, m4 ≤ m2, nσ(m0) ≤ nσ(m4), nσ(m1) < nσ(m4), stutf(nσ) ⊦ nσ(m4) = nσ(m4) ∧ ¬(∀ m0. m4 < m0 → nσ(m0) = nσ(m4))
Used terms: m4
| # nσ = ∞, nσ(m2) = nσ(m4) + 1, nσ(m0) = nσ(m1) + 1, nσ(m1 + 1) = nσ(m0), nσ(m) = nσ(m1), nσ(m2) ≠ nσ(m0), m < m0, m ≤ m1, m < m2, m1 < m0, m1 < m2, m4 ≤ m2, nσ(m0) ≤ nσ(m4), nσ(m1) < nσ(m4), stutf(nσ) ⊦ nσ(m4) = nσ(m4) ∧ ¬(∀ m0. m4 < m0 → nσ(m0) = nσ(m4)) |
# nσ = ∞, nσ(m) = nσ(m1), nσ(m1 + 1) = nσ(m0), nσ(m0) = nσ(m1) + 1, nσ(m2) = nσ(m4) + 1, nσ(m2) ≠ nσ(m0), m < m2, m ≤ m1, m < m0, m1 < m2, m1 < m0, m4 ≤ m2, nσ(m1) < nσ(m4), nσ(m0) ≤ nσ(m4), stutf(nσ), ∀ m0. m4 < m0 → nσ(m0) = nσ(m4) ⊦
| # nσ = ∞, nσ(m) = nσ(m1), nσ(m1 + 1) = nσ(m0), nσ(m0) = nσ(m1) + 1, nσ(m2) = nσ(m4) + 1, nσ(m2) ≠ nσ(m0), m < m2, m ≤ m1, m < m0, m1 < m2, m1 < m0, m4 ≤ m2, nσ(m1) < nσ(m4), nσ(m0) ≤ nσ(m4), stutf(nσ), ∀ m0. m4 < m0 → nσ(m0) = nσ(m4) ⊦ |
# nσ = ∞, nσ(m2) = nσ(m4) + 1, nσ(m0) = nσ(m1) + 1, nσ(m1 + 1) = nσ(m0), nσ(m) = nσ(m1), nσ(m2) ≠ nσ(m0), m < m0, m ≤ m1, m < m2, m1 < m0, m1 < m2, m4 ≤ m2, nσ(m0) ≤ nσ(m4), nσ(m1) < nσ(m4), stutf(nσ), m4 < m2 → nσ(m2) = nσ(m4) ⊦
Used terms: m2
| # nσ = ∞, nσ(m2) = nσ(m4) + 1, nσ(m0) = nσ(m1) + 1, nσ(m1 + 1) = nσ(m0), nσ(m) = nσ(m1), nσ(m2) ≠ nσ(m0), m < m0, m ≤ m1, m < m2, m1 < m0, m1 < m2, m4 ≤ m2, nσ(m0) ≤ nσ(m4), nσ(m1) < nσ(m4), stutf(nσ), m4 < m2 → nσ(m2) = nσ(m4) ⊦ |
# nσ = ∞, nσ(m) = nσ(m1), nσ(m1 + 1) = nσ(m0), nσ(m0) = nσ(m1) + 1, nσ(m2) = nσ(m4) + 1, nσ(m2) ≠ nσ(m0), m < m2, m ≤ m1, m < m0, m1 < m2, m1 < m0, m4 ≤ m2, nσ(m1) < nσ(m4), nσ(m0) ≤ nσ(m4), stutf(nσ), m4 < m2 → nσ(m2) = nσ(m4) ⊦
| # nσ = ∞, nσ(m) = nσ(m1), nσ(m1 + 1) = nσ(m0), nσ(m0) = nσ(m1) + 1, nσ(m2) = nσ(m4) + 1, nσ(m2) ≠ nσ(m0), m < m2, m ≤ m1, m < m0, m1 < m2, m1 < m0, m4 ≤ m2, nσ(m1) < nσ(m4), nσ(m0) ≤ nσ(m4), stutf(nσ), m4 < m2 → nσ(m2) = nσ(m4) ⊦ |
⊦ 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σ, m2, m4
| ⊦ mon≤(nσ) ∧ m ≤ n ∧ ⌜n⌝ < # nσ → nσ(m) ≤ nσ(n) |
| # nσ = ∞, nσ(m0) = nσ(m) + 1, m < m0, stutf(nσ), ∀ m0. (∃ m1. nσ(m1) = m0 - 1 ∧ ¬(∀ m2. m1 < m2 → nσ(m2) = m0 - 1)) → ¬ nσ(m) + 1 < m0 ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ (∀ m1. m0 < m1 → nσ(m1) = nσ(m0) + 1), ∃ m1. m ≤ m1 ∧ m1 < m0 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 |
# nσ = ∞, nσ(m0) = nσ(m) + 1, m < m0, stutf(nσ) ⊦ ∃ m1. m ≤ m1 ∧ m1 < m0 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1
| # nσ = ∞, nσ(m0) = nσ(m) + 1, m < m0, stutf(nσ) ⊦ ∃ m1. m ≤ m1 ∧ m1 < m0 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 |
# nσ = ∞, m2.+1 = m0 - m, nσ(m0) = nσ(m) + 1, m < m0, stutf(nσ), ∀ m0, m, nσ. m2 = m0 - m ∧ # nσ = ∞ ∧ nσ(m0) = nσ(m) + 1 ∧ m < m0 ∧ stutf(nσ) → (∃ m1. m ≤ m1 ∧ m1 < m0 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1) ⊦ ∃ m1. m ≤ m1 ∧ m1 < m0 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1
Used simplifier rules: Nat freely generated by 0, +1; ⊦ n < m → m - n ≠ 0; (s)
| # nσ = ∞, m2.+1 = m0 - m, nσ(m0) = nσ(m) + 1, m < m0, stutf(nσ), ∀ m0, m, nσ. m2 = m0 - m ∧ # nσ = ∞ ∧ nσ(m0) = nσ(m) + 1 ∧ m < m0 ∧ stutf(nσ) → (∃ m1. m ≤ m1 ∧ m1 < m0 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1) ⊦ ∃ m1. m ≤ m1 ∧ m1 < m0 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 |
# nσ = ∞, m2 + 1 = m0 - m, nσ(m0) = nσ(m) + 1, m < m0, stutf(nσ), ∀ m0, m, nσ. m2 = m0 - m ∧ # nσ = ∞ ∧ nσ(m0) = nσ(m) + 1 ∧ m < m0 ∧ stutf(nσ) → (∃ m1. m ≤ m1 ∧ m1 < m0 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1) ⊦ ∃ m1. m ≤ m1 ∧ m1 < m0 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1
Used simplifier rules: ⊦ m.+1 = m + 1; (s)
| # nσ = ∞, m2 + 1 = m0 - m, nσ(m0) = nσ(m) + 1, m < m0, stutf(nσ), ∀ m0, m, nσ. m2 = m0 - m ∧ # nσ = ∞ ∧ nσ(m0) = nσ(m) + 1 ∧ m < m0 ∧ stutf(nσ) → (∃ m1. m ≤ m1 ∧ m1 < m0 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1) ⊦ ∃ m1. m ≤ m1 ∧ m1 < m0 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 |
# nσ = ∞, m0 = n0 + m, m2 + 1 = n0, nσ(m0) = nσ(m) + 1, m < m0, m ≤ m0, stutf(nσ), ∀ m0, m, nσ. m2 = m0 - m ∧ # nσ = ∞ ∧ nσ(m0) = nσ(m) + 1 ∧ m < m0 ∧ stutf(nσ) → (∃ m1. m ≤ m1 ∧ m1 < m0 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1) ⊦ ∃ m1. m ≤ m1 ∧ m1 < m0 ∧ nσ(m) = 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: m0, m, n0
| # nσ = ∞, m0 = n0 + m, m2 + 1 = n0, nσ(m0) = nσ(m) + 1, m < m0, m ≤ m0, stutf(nσ), ∀ m0, m, nσ. m2 = m0 - m ∧ # nσ = ∞ ∧ nσ(m0) = nσ(m) + 1 ∧ m < m0 ∧ stutf(nσ) → (∃ m1. m ≤ m1 ∧ m1 < m0 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1) ⊦ ∃ m1. m ≤ m1 ∧ m1 < m0 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 |
# nσ = ∞, nσ((m2 + 1) + m) = nσ(m) + 1, stutf(nσ), ∀ m0, m, nσ. m2 = m0 - m ∧ # nσ = ∞ ∧ nσ(m0) = nσ(m) + 1 ∧ m < m0 ∧ stutf(nσ) → (∃ m1. m ≤ m1 ∧ m1 < m0 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1) ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = 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σ((m2 + 1) + m) = nσ(m) + 1, stutf(nσ), ∀ m0, m, nσ. m2 = m0 - m ∧ # nσ = ∞ ∧ nσ(m0) = nσ(m) + 1 ∧ m < m0 ∧ stutf(nσ) → (∃ m1. m ≤ m1 ∧ m1 < m0 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1) ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 |
# nσ = ∞, nσ((m2 + 1) + m) = nσ(m) + 1, stutf(nσ), ∀ m0, m, nσ. m2 = m0 - m ∧ # nσ = ∞ ∧ nσ(m0) = nσ(m) + 1 ∧ m < m0 ∧ stutf(nσ) → (∃ m1. m ≤ m1 ∧ m1 < m0 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1), m2 = m2 + m - m ∧ # nσ = ∞ ∧ nσ(m2 + m) = nσ(m) + 1 ∧ m < m2 + m ∧ stutf(nσ) → (∃ m1. m ≤ m1 ∧ m1 < m2 + m ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1) ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1
Used terms: m2 + m, m, nσ
| # nσ = ∞, nσ((m2 + 1) + m) = nσ(m) + 1, stutf(nσ), ∀ m0, m, nσ. m2 = m0 - m ∧ # nσ = ∞ ∧ nσ(m0) = nσ(m) + 1 ∧ m < m0 ∧ stutf(nσ) → (∃ m1. m ≤ m1 ∧ m1 < m0 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1), m2 = m2 + m - m ∧ # nσ = ∞ ∧ nσ(m2 + m) = nσ(m) + 1 ∧ m < m2 + m ∧ stutf(nσ) → (∃ m1. m ≤ m1 ∧ m1 < m2 + m ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1) ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 |
# nσ = ∞, nσ((m2 + 1) + m) = nσ(m) + 1, stutf(nσ), ∀ m0, m, nσ. m2 = m0 - m ∧ # nσ = ∞ ∧ nσ(m0) = nσ(m) + 1 ∧ m < m0 ∧ stutf(nσ) → (∃ m1. m ≤ m1 ∧ m1 < m0 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1), nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 0 → m ≤ m1 ∧ m1 < m2 + m ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = 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σ((m2 + 1) + m) = nσ(m) + 1, stutf(nσ), ∀ m0, m, nσ. m2 = m0 - m ∧ # nσ = ∞ ∧ nσ(m0) = nσ(m) + 1 ∧ m < m0 ∧ stutf(nσ) → (∃ m1. m ≤ m1 ∧ m1 < m0 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1), nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 0 → m ≤ m1 ∧ m1 < m2 + m ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 |
# nσ = ∞, nσ((m2 + 1) + m) = nσ(m) + 1, stutf(nσ), m2 = (m2 + 1) + m - m + 1 ∧ # nσ = ∞ ∧ nσ((m2 + 1) + m) = nσ(m + 1) + 1 ∧ m + 1 < (m2 + 1) + m ∧ stutf(nσ) → (∃ m1. m + 1 ≤ m1 ∧ m1 < (m2 + 1) + m ∧ nσ(m + 1) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1), nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 0 → m ≤ m1 ∧ m1 < m2 + m ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1
Used terms: (m2 + 1) + m, m + 1, nσ
| # nσ = ∞, nσ((m2 + 1) + m) = nσ(m) + 1, stutf(nσ), m2 = (m2 + 1) + m - m + 1 ∧ # nσ = ∞ ∧ nσ((m2 + 1) + m) = nσ(m + 1) + 1 ∧ m + 1 < (m2 + 1) + m ∧ stutf(nσ) → (∃ m1. m + 1 ≤ m1 ∧ m1 < (m2 + 1) + m ∧ nσ(m + 1) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1), nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 0 → m ≤ m1 ∧ m1 < m2 + m ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 |
# nσ = ∞, nσ((m2 + 1) + m) = nσ(m) + 1, stutf(nσ), nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 0 → m ≤ m1 ∧ m1 < m2 + m ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1, nσ(m) = nσ(m + 1) ∧ m2 ≠ 0 → m < m0 ∧ ¬ m2 + m < m0 ∧ nσ(m + 1) = nσ(m0) ∧ nσ(m0 + 1) = nσ(m0) + 1 ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = 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σ((m2 + 1) + m) = nσ(m) + 1, stutf(nσ), nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 0 → m ≤ m1 ∧ m1 < m2 + m ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1, nσ(m) = nσ(m + 1) ∧ m2 ≠ 0 → m < m0 ∧ ¬ m2 + m < m0 ∧ nσ(m + 1) = nσ(m0) ∧ nσ(m0 + 1) = nσ(m0) + 1 ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 |
# nσ = ∞, nσ((m2 + 1) + m) = nσ(m) + 1, nσ(m) = nσ(m + 1), stutf(nσ), nσ(m) = nσ(m + 1) ∧ m2 ≠ 0 → m < m0 ∧ ¬ m2 + m < m0 ∧ nσ(m + 1) = nσ(m0) ∧ nσ(m0 + 1) = nσ(m0) + 1, nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 0 → m ≤ m1 ∧ m1 < m2 + m ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1
# nσ = ∞, nσ((m2 + 1) + m) = nσ(m) + 1, nσ(m) ≠ nσ(m + 1), stutf(nσ), nσ(m) = nσ(m + 1) ∧ m2 ≠ 0 → m < m0 ∧ ¬ m2 + m < m0 ∧ nσ(m + 1) = nσ(m0) ∧ nσ(m0 + 1) = nσ(m0) + 1, nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 0 → m ≤ m1 ∧ m1 < m2 + m ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1
Used formulas: nσ(m) = nσ(m + 1)
| # nσ = ∞, nσ((m2 + 1) + m) = nσ(m) + 1, nσ(m) = nσ(m + 1), stutf(nσ), nσ(m) = nσ(m + 1) ∧ m2 ≠ 0 → m < m0 ∧ ¬ m2 + m < m0 ∧ nσ(m + 1) = nσ(m0) ∧ nσ(m0 + 1) = nσ(m0) + 1, nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 0 → m ≤ m1 ∧ m1 < m2 + m ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 |
# nσ = ∞, nσ(m) = nσ(m + 1), nσ((m2 + 1) + m) = nσ(m) + 1, stutf(nσ), m2 ≠ 0 → m < m0 ∧ ¬ m2 + m < m0 ∧ nσ(m) = nσ(m0) ∧ nσ(m0 + 1) = nσ(m0) + 1, nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 0 → m ≤ m1 ∧ m1 < m2 + m ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1
| # nσ = ∞, nσ(m) = nσ(m + 1), nσ((m2 + 1) + m) = nσ(m) + 1, stutf(nσ), m2 ≠ 0 → m < m0 ∧ ¬ m2 + m < m0 ∧ nσ(m) = nσ(m0) ∧ nσ(m0 + 1) = nσ(m0) + 1, nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 0 → m ≤ m1 ∧ m1 < m2 + m ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 |
# nσ = ∞, nσ((m2 + 1) + m) = nσ(m) + 1, nσ(m) = nσ(m + 1), m2 ≠ 0, stutf(nσ), m2 ≠ 0 → m < m0 ∧ ¬ m2 + m < m0 ∧ nσ(m) = nσ(m0) ∧ nσ(m0 + 1) = nσ(m0) + 1, nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 0 → m ≤ m1 ∧ m1 < m2 + m ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = 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: m2 ≠ 0
| # nσ = ∞, nσ((m2 + 1) + m) = nσ(m) + 1, nσ(m) = nσ(m + 1), m2 ≠ 0, stutf(nσ), m2 ≠ 0 → m < m0 ∧ ¬ m2 + m < m0 ∧ nσ(m) = nσ(m0) ∧ nσ(m0 + 1) = nσ(m0) + 1, nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 0 → m ≤ m1 ∧ m1 < m2 + m ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 |
# nσ = ∞, nσ(m0 + 1) = nσ(m0) + 1, nσ(m) = nσ(m0), nσ((m2 + 1) + m) = nσ(m0) + 1, nσ(m0) = nσ(m + 1), m2 ≠ 0, m < m0, m0 ≤ m2 + m, stutf(nσ), nσ(m2 + m) = nσ(m0) + 1 → m ≤ m1 ∧ m1 < m2 + m ∧ nσ(m0) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m0) = 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σ(m0 + 1) = nσ(m0) + 1, nσ(m) = nσ(m0), nσ((m2 + 1) + m) = nσ(m0) + 1, nσ(m0) = nσ(m + 1), m2 ≠ 0, m < m0, m0 ≤ m2 + m, stutf(nσ), nσ(m2 + m) = nσ(m0) + 1 → m ≤ m1 ∧ m1 < m2 + m ∧ nσ(m0) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m0) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 |
Used simplifier rules: ⊦ m < n → m ≤ n; (s) ⊦ m ≤ n → (n < m ↔ false); (s) Used terms: m0
| # nσ = ∞, nσ((m2 + 1) + m) = nσ(m) + 1, nσ(m) ≠ nσ(m + 1), stutf(nσ), nσ(m) = nσ(m + 1) ∧ m2 ≠ 0 → m < m0 ∧ ¬ m2 + m < m0 ∧ nσ(m + 1) = nσ(m0) ∧ nσ(m0 + 1) = nσ(m0) + 1, nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 0 → m ≤ m1 ∧ m1 < m2 + m ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 |
# nσ = ∞, nσ((m2 + 1) + m) = nσ(m) + 1, nσ(m) ≠ nσ(m + 1), stutf(nσ), nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 0 → m ≤ m1 ∧ m1 < m2 + m ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1
| # nσ = ∞, nσ((m2 + 1) + m) = nσ(m) + 1, nσ(m) ≠ nσ(m + 1), stutf(nσ), nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 0 → m ≤ m1 ∧ m1 < m2 + m ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 |
# nσ = ∞, nσ((m2 + 1) + m) = nσ(m) + 1, nσ(m) ≠ nσ(m + 1), stutf(nσ) ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1, nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 0
# nσ = ∞, nσ((m2 + 1) + m) = nσ(m) + 1, nσ(m) = nσ(m1), nσ(m1 + 1) = nσ(m1) + 1, nσ(m) ≠ nσ(m + 1), m ≤ m1, m1 < m2 + m, stutf(nσ) ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1
| # nσ = ∞, nσ((m2 + 1) + m) = nσ(m) + 1, nσ(m) ≠ nσ(m + 1), stutf(nσ) ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1, nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 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σ((m2 + 1) + m) = nσ(m) + 1, nσ(m) ≠ nσ(m + 1), nσ ≠ [], ∀ n. ⌜n⌝ + ⌜1⌝ < # nσ → nσ(n + 1) = nσ(n) ∨ nσ(n + 1) = nσ(n) + 1 ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1, nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 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σ((m2 + 1) + m) = nσ(m) + 1, nσ(m) ≠ nσ(m + 1), nσ ≠ [], ∀ n. ⌜n⌝ + ⌜1⌝ < # nσ → nσ(n + 1) = nσ(n) ∨ nσ(n + 1) = nσ(n) + 1 ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1, nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 0 |
# nσ = ∞, nσ(0) = 0, nσ((m2 + 1) + m) = nσ(m) + 1, nσ ≠ [], nσ(m) ≠ nσ(m + 1), ∀ n. nσ(n + 1) = nσ(n) ∨ nσ(n + 1) = nσ(n) + 1 ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1, nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 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σ((m2 + 1) + m) = nσ(m) + 1, nσ ≠ [], nσ(m) ≠ nσ(m + 1), ∀ n. nσ(n + 1) = nσ(n) ∨ nσ(n + 1) = nσ(n) + 1 ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1, nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 0 |
# nσ = ∞, nσ((m2 + 1) + m) = nσ(m) + 1, nσ(0) = 0, nσ ≠ [], nσ(m) ≠ nσ(m + 1), nσ(m + 1) = nσ(m) ∨ nσ(m + 1) = nσ(m) + 1 ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1, nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 0
Used terms: m
| # nσ = ∞, nσ((m2 + 1) + m) = nσ(m) + 1, nσ(0) = 0, nσ ≠ [], nσ(m) ≠ nσ(m + 1), nσ(m + 1) = nσ(m) ∨ nσ(m + 1) = nσ(m) + 1 ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1, nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 0 |
# nσ = ∞, nσ(m + 1) = nσ(m) + 1, nσ((m2 + 1) + m) = nσ(m) + 1, nσ(0) = 0, nσ ≠ [] ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1, nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 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σ(m + 1) = nσ(m) + 1, nσ((m2 + 1) + m) = nσ(m) + 1, nσ(0) = 0, nσ ≠ [] ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1, nσ(m2 + m) = nσ(m) + 1 ∧ m2 ≠ 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: m
| # nσ = ∞, nσ((m2 + 1) + m) = nσ(m) + 1, nσ(m) = nσ(m1), nσ(m1 + 1) = nσ(m1) + 1, nσ(m) ≠ nσ(m + 1), m ≤ m1, m1 < m2 + m, stutf(nσ) ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 |
# nσ = ∞, nσ((m2 + 1) + m) = nσ(m1) + 1, nσ(m) = nσ(m1), nσ(m1 + 1) = nσ(m1) + 1, m2 ≠ 0, nσ(m1) ≠ nσ(m + 1), m ≤ m1, m1 < m2 + m, stutf(nσ) ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = 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) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic fle-01: ⊦ m ≤ n ∧ n < n0 → m < n0; (forward) from specification nat
| # nσ = ∞, nσ((m2 + 1) + m) = nσ(m1) + 1, nσ(m) = nσ(m1), nσ(m1 + 1) = nσ(m1) + 1, m2 ≠ 0, nσ(m1) ≠ nσ(m + 1), m ≤ m1, m1 < m2 + m, stutf(nσ) ⊦ ∃ m1. m ≤ m1 ∧ ¬ m2 + m < m1 ∧ nσ(m) = nσ(m1) ∧ nσ(m1 + 1) = nσ(m1) + 1 |
Used simplifier rules: ⊦ m < n → ¬ n < m; (s) Used terms: m1
| # 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))) ∧ (∀ m. (∃ m0. nσ(m0) = m - 1 ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = m - 1)) → ¬ n + 1 < m) |
# nσ = ∞, stutf(nσ), ∀ m0. m < m0 → nσ(m0) = nσ(m) + 1 ⊦ (∃ m0. nσ(m0) = nσ(m) ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = nσ(m0))) ∧ (nσ(m1) = m0 - 1 ∧ ¬(m1 < m2 → nσ(m2) = m0 - 1) → ¬ nσ(m) + 1 < m0)
| # nσ = ∞, stutf(nσ), ∀ m0. m < m0 → nσ(m0) = nσ(m) + 1 ⊦ (∃ m0. nσ(m0) = nσ(m) ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = nσ(m0))) ∧ (nσ(m1) = m0 - 1 ∧ ¬(m1 < m2 → nσ(m2) = m0 - 1) → ¬ nσ(m) + 1 < m0) |
# nσ = ∞, stutf(nσ), ∀ m0. m < m0 → nσ(m0) = nσ(m) + 1 ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = nσ(m0))
# nσ = ∞, nσ(m1) = m0 - 1, nσ(m2) ≠ m0 - 1, m1 < m2, nσ(m) + 1 < m0, stutf(nσ), ∀ m0. m < m0 → nσ(m0) = nσ(m) + 1 ⊦
| # nσ = ∞, stutf(nσ), ∀ m0. m < m0 → nσ(m0) = nσ(m) + 1 ⊦ ∃ m0. nσ(m0) = nσ(m) ∧ ¬(∀ m1. m0 < m1 → nσ(m1) = nσ(m0)) |
# nσ = ∞, stutf(nσ), ∀ m0. m < m0 → nσ(m0) = nσ(m) + 1 ⊦ nσ(m) = nσ(m) ∧ ¬(∀ m1. m < m1 → nσ(m1) = nσ(m))
Used terms: m
| # nσ = ∞, stutf(nσ), ∀ m0. m < m0 → nσ(m0) = nσ(m) + 1 ⊦ nσ(m) = nσ(m) ∧ ¬(∀ m1. m < m1 → nσ(m1) = nσ(m)) |
# nσ = ∞, stutf(nσ), ∀ m0. m < m0 → nσ(m0) = nσ(m) + 1, ∀ m1. m < m1 → nσ(m1) = nσ(m) ⊦
| # nσ = ∞, stutf(nσ), ∀ m0. m < m0 → nσ(m0) = nσ(m) + 1, ∀ m1. m < m1 → nσ(m1) = nσ(m) ⊦ |
# nσ = ∞, stutf(nσ), m < m + 1 → nσ(m + 1) = nσ(m), ∀ m0. m < m0 → nσ(m0) = nσ(m) + 1 ⊦
Used terms: m + 1
| # nσ = ∞, stutf(nσ), m < m + 1 → nσ(m + 1) = nσ(m), ∀ m0. m < m0 → nσ(m0) = nσ(m) + 1 ⊦ |
# nσ = ∞, nσ(m + 1) = nσ(m), stutf(nσ), ∀ 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 ⊦ ¬ n < n; (s) ⊦ m < n + 1 ↔ ¬ n < m; (s)
| # nσ = ∞, nσ(m + 1) = nσ(m), stutf(nσ), ∀ m0. m < m0 → nσ(m0) = nσ(m) + 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: m + 1
| # nσ = ∞, nσ(m1) = m0 - 1, nσ(m2) ≠ m0 - 1, m1 < m2, nσ(m) + 1 < m0, stutf(nσ), ∀ m0. m < m0 → nσ(m0) = nσ(m) + 1 ⊦ |
# nσ = ∞, nσ(m1) = m0 - 1, nσ(m2) ≠ m0 - 1, m1 < m2, nσ(m) + 1 < m0, stutf(nσ), ∀ 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σ(m1) = m0 - 1, nσ(m2) ≠ m0 - 1, m1 < m2, nσ(m) + 1 < m0, stutf(nσ), ∀ m0. m < m0 → nσ(m0) = nσ(m) + 1 ⊦ |
# nσ = ∞, m0 = m3 + 1, nσ(m1) = m3, m0 ≠ 0, nσ(m2) ≠ m3, m1 < m2, nσ(m) + 1 < m0, stutf(nσ), ∀ m0. m < m0 → nσ(m0) = nσ(m) + 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: m0, m3
| # nσ = ∞, m0 = m3 + 1, nσ(m1) = m3, m0 ≠ 0, nσ(m2) ≠ m3, m1 < m2, nσ(m) + 1 < m0, stutf(nσ), ∀ m0. m < m0 → nσ(m0) = nσ(m) + 1 ⊦ |
# nσ = ∞, nσ(m2) ≠ nσ(m1), m1 < m2, nσ(m) < nσ(m1), stutf(nσ), ∀ 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 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σ(m2) ≠ nσ(m1), m1 < m2, nσ(m) < nσ(m1), stutf(nσ), ∀ m0. m < m0 → nσ(m0) = nσ(m) + 1 ⊦ |
⊦ mon≤(nσ) ∧ m ≤ n ∧ ⌜n⌝ < # nσ → nσ(m) ≤ nσ(n)
# nσ = ∞, nσ(m2) ≠ nσ(m1), m1 < m2, nσ(m) < nσ(m1), stutf(nσ), ∀ m0. m < m0 → nσ(m0) = nσ(m) + 1, mon≤(nσ) ∧ m1 ≤ m ∧ ⌜m⌝ < # nσ → nσ(m1) ≤ nσ(m) ⊦
Used terms: nσ, m1, m
| ⊦ mon≤(nσ) ∧ m ≤ n ∧ ⌜n⌝ < # nσ → nσ(m) ≤ nσ(n) |
| # nσ = ∞, nσ(m2) ≠ nσ(m1), m1 < m2, nσ(m) < nσ(m1), stutf(nσ), ∀ m0. m < m0 → nσ(m0) = nσ(m) + 1, mon≤(nσ) ∧ m1 ≤ m ∧ ⌜m⌝ < # nσ → nσ(m1) ≤ nσ(m) ⊦ |
# nσ = ∞, nσ(m2) ≠ nσ(m1), m < m2, m < m1, m + 1 < m2, m1 < m2, nσ(m) < nσ(m1), stutf(nσ), ∀ m0. m < m0 → nσ(m0) = nσ(m) + 1 ⊦
Used simplifier rules: stutf-monle: ⊦ stutf(nσ) → (mon≤(nσ) ↔ true); ⊦ m.+1 = m + 1; (s) ⊦ m < n → n ≠ 0; (s) trans-Nat: ⊦ 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σ(m2) ≠ nσ(m1), m < m2, m < m1, m + 1 < m2, m1 < m2, nσ(m) < nσ(m1), stutf(nσ), ∀ m0. m < m0 → nσ(m0) = nσ(m) + 1 ⊦ |
# nσ = ∞, nσ(m2) ≠ nσ(m1), m + 1 < m2, m < m1, m < m2, m1 < m2, nσ(m) < nσ(m1), stutf(nσ), m < m1 → nσ(m1) = nσ(m) + 1, ∀ m0. m < m0 → nσ(m0) = nσ(m) + 1 ⊦
Used terms: m1
| # nσ = ∞, nσ(m2) ≠ nσ(m1), m + 1 < m2, m < m1, m < m2, m1 < m2, nσ(m) < nσ(m1), stutf(nσ), m < m1 → nσ(m1) = nσ(m) + 1, ∀ m0. m < m0 → nσ(m0) = nσ(m) + 1 ⊦ |
# nσ = ∞, nσ(m1) = nσ(m) + 1, nσ(m2) ≠ nσ(m1), m + 1 < m2, m < m1, m < m2, m1 < m2, nσ(m) < nσ(m1), stutf(nσ), ∀ m0. m < 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 ⊦ ¬ 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σ(m1) = nσ(m) + 1, nσ(m2) ≠ nσ(m1), m + 1 < m2, m < m1, m < m2, m1 < m2, nσ(m) < nσ(m1), stutf(nσ), ∀ m0. m < m0 → nσ(m0) = nσ(m1) ⊦ |
Used terms: m2
| # nσ ≠ ∞, stutf(nσ) ⊦ (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ(m0) = nσ(m)))) ∧ (∀ m. (∃ 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) |
# nσ ≠ ∞, stutf(nσ) ⊦ (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n) ∧ (∀ m. (∃ m0. ⌜m0⌝ < # nσ ∧ nσ(m0) = m - 1) → ¬ n + 1 < m) ↔ nσ((# nσ).n - 1) = n
| # nσ ≠ ∞, stutf(nσ) ⊦ (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n) ∧ (∀ m. (∃ m0. ⌜m0⌝ < # nσ ∧ nσ(m0) = m - 1) → ¬ n + 1 < m) ↔ nσ((# nσ).n - 1) = n |
⊦ n∞ = ∞ ↔ ¬(∃ n. n∞ = ⌜n⌝ )
stutf(nσ), ∃ n. # nσ = ⌜n⌝ ⊦ (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n) ∧ (∀ m. (∃ m0. ⌜m0⌝ < # nσ ∧ nσ(m0) = m - 1) → ¬ n + 1 < m) ↔ nσ((# nσ).n - 1) = n
Used terms: # nσ
| ⊦ n∞ = ∞ ↔ ¬(∃ n. n∞ = ⌜n⌝ ) |
| stutf(nσ), ∃ n. # nσ = ⌜n⌝ ⊦ (∃ m. ⌜m⌝ < # nσ ∧ nσ(m) = n) ∧ (∀ m. (∃ m0. ⌜m0⌝ < # nσ ∧ nσ(m0) = m - 1) → ¬ n + 1 < m) ↔ nσ((# nσ).n - 1) = n |
# nσ = ⌜n0⌝ , stutf(nσ) ⊦ (∃ m. m < n0 ∧ nσ(m) = n) ∧ (∀ m. (∃ m0. m0 < n0 ∧ nσ(m0) = m - 1) → ¬ n + 1 < m) ↔ 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) ∧ (∀ m. (∃ m0. m0 < n0 ∧ nσ(m0) = m - 1) → ¬ n + 1 < m) ↔ nσ(n0 - 1) = n |
# nσ = ⌜n0⌝ , n0 = m1 + 1, n0 ≠ 0, stutf(nσ) ⊦ (∃ m. m < n0 ∧ nσ(m) = n) ∧ (∀ m. (∃ m0. m0 < n0 ∧ nσ(m0) = m - 1) → ¬ n + 1 < m) ↔ nσ(m1) = n
Used simplifier rules: stutf-nonempty: ⊦ stutf(nσ) → (nσ = [] ↔ false); ⊦ # σ = ⌜0⌝ ↔ σ = []; (s) n ≠ 0 ⊦ m = n - 1 ↔ n = m + 1; (elim) Used terms: n0, m1
| # nσ = ⌜n0⌝ , n0 = m1 + 1, n0 ≠ 0, stutf(nσ) ⊦ (∃ m. m < n0 ∧ nσ(m) = n) ∧ (∀ m. (∃ m0. m0 < n0 ∧ nσ(m0) = m - 1) → ¬ n + 1 < m) ↔ nσ(m1) = n |
# nσ = ⌜m1⌝ + ⌜1⌝ , stutf(nσ) ⊦ (∃ m. ¬ m1 < m ∧ nσ(m) = n) ∧ (∀ m. (∃ m0. ¬ m1 < m0 ∧ nσ(m0) = m - 1) → ¬ n + 1 < m) ↔ nσ(m1) = 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σ = ⌜m1⌝ + ⌜1⌝ , stutf(nσ) ⊦ (∃ m. ¬ m1 < m ∧ nσ(m) = n) ∧ (∀ m. (∃ m0. ¬ m1 < m0 ∧ nσ(m0) = m - 1) → ¬ n + 1 < m) ↔ nσ(m1) = n |
# nσ = ⌜m1⌝ + ⌜1⌝ , nσ(m1) ≠ n, stutf(nσ), ∃ m. ¬ m1 < m ∧ nσ(m) = n, ∀ m. (∃ m0. ¬ m1 < m0 ∧ nσ(m0) = m - 1) → ¬ n + 1 < m ⊦
# nσ = ⌜m1⌝ + ⌜1⌝ , nσ(m1) = n, stutf(nσ) ⊦ (∃ m. ¬ m1 < m ∧ nσ(m) = n) ∧ (∀ m. (∃ m0. ¬ m1 < m0 ∧ nσ(m0) = m - 1) → ¬ n + 1 < m)
| # nσ = ⌜m1⌝ + ⌜1⌝ , nσ(m1) ≠ n, stutf(nσ), ∃ m. ¬ m1 < m ∧ nσ(m) = n, ∀ m. (∃ m0. ¬ m1 < m0 ∧ nσ(m0) = m - 1) → ¬ n + 1 < m ⊦ |
# nσ = ⌜m1⌝ + ⌜1⌝ , nσ(m1) ≠ nσ(m), m ≤ m1, stutf(nσ), ∀ m0. (∃ m2. ¬ m1 < m2 ∧ nσ(m2) = m0 - 1) → ¬ nσ(m) + 1 < m0 ⊦
Used simplifier rules: ⊦ m < n ↔ ¬ n ≤ m; (ss)
| # nσ = ⌜m1⌝ + ⌜1⌝ , nσ(m1) ≠ nσ(m), m ≤ m1, stutf(nσ), ∀ m0. (∃ m2. ¬ m1 < m2 ∧ nσ(m2) = m0 - 1) → ¬ nσ(m) + 1 < m0 ⊦ |
# nσ = ⌜m1⌝ + ⌜1⌝ , nσ(m1) ≠ nσ(m), m ≤ m1, stutf(nσ), ∀ m0. (∃ m2. ¬ m1 < m2 ∧ nσ(m2) = m0 - 1) → ¬ nσ(m) + 1 < m0, (∃ m2. ¬ m1 < m2 ∧ nσ(m2) = nσ(m1) + 1 - 1) → ¬ nσ(m) + 1 < nσ(m1) + 1 ⊦
Used terms: nσ(m1) + 1
| # nσ = ⌜m1⌝ + ⌜1⌝ , nσ(m1) ≠ nσ(m), m ≤ m1, stutf(nσ), ∀ m0. (∃ m2. ¬ m1 < m2 ∧ nσ(m2) = m0 - 1) → ¬ nσ(m) + 1 < m0, (∃ m2. ¬ m1 < m2 ∧ nσ(m2) = nσ(m1) + 1 - 1) → ¬ nσ(m) + 1 < nσ(m1) + 1 ⊦ |
# nσ = ⌜m1⌝ + ⌜1⌝ , nσ(m1) ≠ nσ(m), m ≤ m1, stutf(nσ), ∀ m0. (∃ m2. ¬ m1 < m2 ∧ nσ(m2) = m0 - 1) → ¬ nσ(m) + 1 < m0, (∃ m2. ¬ m1 < m2 ∧ nσ(m2) = nσ(m1)) → ¬ nσ(m) < 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 ⊦ m + n < m + n0 ↔ n < n0; (s) ⊦ n + 0 = n; (s) ⊦ n ≤ m → m + n0 - n = (m - n) + n0; (s)
| # nσ = ⌜m1⌝ + ⌜1⌝ , nσ(m1) ≠ nσ(m), m ≤ m1, stutf(nσ), ∀ m0. (∃ m2. ¬ m1 < m2 ∧ nσ(m2) = m0 - 1) → ¬ nσ(m) + 1 < m0, (∃ m2. ¬ m1 < m2 ∧ nσ(m2) = nσ(m1)) → ¬ nσ(m) < nσ(m1) ⊦ |
# nσ = ⌜m1⌝ + ⌜1⌝ , nσ(m1) ≠ nσ(m), m ≤ m1, stutf(nσ), ∀ m0. (∃ m2. ¬ m1 < m2 ∧ nσ(m2) = m0 - 1) → ¬ nσ(m) + 1 < m0 ⊦ ∃ m2. ¬ m1 < m2 ∧ nσ(m2) = nσ(m1)
# nσ = ⌜m1⌝ + ⌜1⌝ , nσ(m1) ≠ nσ(m), m ≤ m1, stutf(nσ), ¬ nσ(m) < nσ(m1), ∀ m0. (∃ m2. ¬ m1 < m2 ∧ nσ(m2) = m0 - 1) → ¬ nσ(m) + 1 < m0 ⊦
| # nσ = ⌜m1⌝ + ⌜1⌝ , nσ(m1) ≠ nσ(m), m ≤ m1, stutf(nσ), ∀ m0. (∃ m2. ¬ m1 < m2 ∧ nσ(m2) = m0 - 1) → ¬ nσ(m) + 1 < m0 ⊦ ∃ m2. ¬ m1 < m2 ∧ nσ(m2) = nσ(m1) |
# nσ = ⌜m1⌝ + ⌜1⌝ , nσ(m1) ≠ nσ(m), m ≤ m1, stutf(nσ), ∀ m0. (∃ m2. ¬ m1 < m2 ∧ nσ(m2) = m0 - 1) → ¬ nσ(m) + 1 < m0 ⊦ ∃ m2. ¬ m1 < m2 ∧ nσ(m2) = nσ(m1)
| # nσ = ⌜m1⌝ + ⌜1⌝ , nσ(m1) ≠ nσ(m), m ≤ m1, stutf(nσ), ∀ m0. (∃ m2. ¬ m1 < m2 ∧ nσ(m2) = m0 - 1) → ¬ nσ(m) + 1 < m0 ⊦ ∃ m2. ¬ m1 < m2 ∧ nσ(m2) = nσ(m1) |
Used simplifier rules: ⊦ ¬ n < n; (s) Used terms: m1
| # nσ = ⌜m1⌝ + ⌜1⌝ , nσ(m1) ≠ nσ(m), m ≤ m1, stutf(nσ), ¬ nσ(m) < nσ(m1), ∀ m0. (∃ m2. ¬ m1 < m2 ∧ nσ(m2) = m0 - 1) → ¬ nσ(m) + 1 < m0 ⊦ |
⊦ 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-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 → (m ≤ n ↔ m < n); (s) ⊦ m < n → ¬ n < m; (s) Used terms: nσ, m, m1
| ⊦ mon≤(nσ) ∧ m ≤ n ∧ ⌜n⌝ < # nσ → nσ(m) ≤ nσ(n) |
| # nσ = ⌜m1⌝ + ⌜1⌝ , nσ(m1) = n, stutf(nσ) ⊦ (∃ m. ¬ m1 < m ∧ nσ(m) = n) ∧ (∀ m. (∃ m0. ¬ m1 < m0 ∧ nσ(m0) = m - 1) → ¬ n + 1 < m) |
# nσ = ⌜m1⌝ + ⌜1⌝ , stutf(nσ) ⊦ (∃ m. ¬ m1 < m ∧ nσ(m) = nσ(m1)) ∧ (¬ m1 < m0 ∧ nσ(m0) = m - 1 → ¬ nσ(m1) + 1 < m)
| # nσ = ⌜m1⌝ + ⌜1⌝ , stutf(nσ) ⊦ (∃ m. ¬ m1 < m ∧ nσ(m) = nσ(m1)) ∧ (¬ m1 < m0 ∧ nσ(m0) = m - 1 → ¬ nσ(m1) + 1 < m) |
# nσ = ⌜m1⌝ + ⌜1⌝ , stutf(nσ) ⊦ ∃ m. ¬ m1 < m ∧ nσ(m) = nσ(m1)
# nσ = ⌜m1⌝ + ⌜1⌝ , nσ(m0) = m - 1, nσ(m1) + 1 < m, stutf(nσ), ¬ m1 < m0 ⊦
| # nσ = ⌜m1⌝ + ⌜1⌝ , stutf(nσ) ⊦ ∃ m. ¬ m1 < m ∧ nσ(m) = nσ(m1) |
Used simplifier rules: ⊦ ¬ n < n; (s) Used terms: m1
| # nσ = ⌜m1⌝ + ⌜1⌝ , nσ(m0) = m - 1, nσ(m1) + 1 < m, stutf(nσ), ¬ m1 < m0 ⊦ |
# nσ = ⌜m1⌝ + ⌜1⌝ , nσ(m0) = m - 1, nσ(m1) + 1 < m, stutf(nσ), ¬ m1 < m0 ⊦
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic
| # nσ = ⌜m1⌝ + ⌜1⌝ , nσ(m0) = m - 1, nσ(m1) + 1 < m, stutf(nσ), ¬ m1 < m0 ⊦ |
# nσ = ⌜m1⌝ + ⌜1⌝ , m = m2 + 1, nσ(m0) = m2, m ≠ 0, nσ(m1) + 1 < m, stutf(nσ), ¬ m1 < 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: m, m2
| # nσ = ⌜m1⌝ + ⌜1⌝ , m = m2 + 1, nσ(m0) = m2, m ≠ 0, nσ(m1) + 1 < m, stutf(nσ), ¬ m1 < m0 ⊦ |
# nσ = ⌜m1⌝ + ⌜1⌝ , nσ(m1) < nσ(m0), stutf(nσ), ¬ m1 < 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σ = ⌜m1⌝ + ⌜1⌝ , nσ(m1) < nσ(m0), stutf(nσ), ¬ m1 < m0 ⊦ |
⊦ mon≤(nσ) ∧ m ≤ n ∧ ⌜n⌝ < # nσ → nσ(m) ≤ nσ(n)
# nσ = ⌜m1⌝ + ⌜1⌝ , nσ(m1) < nσ(m0), stutf(nσ), ¬ m1 < m0, mon≤(nσ) ∧ m0 ≤ m1 ∧ ⌜m1⌝ < # nσ → nσ(m0) ≤ nσ(m1) ⊦
Used terms: nσ, m0, m1
| ⊦ mon≤(nσ) ∧ m ≤ n ∧ ⌜n⌝ < # nσ → nσ(m) ≤ nσ(n) |
| # nσ = ⌜m1⌝ + ⌜1⌝ , nσ(m1) < nσ(m0), stutf(nσ), ¬ m1 < m0, mon≤(nσ) ∧ m0 ≤ m1 ∧ ⌜m1⌝ < # nσ → nσ(m0) ≤ nσ(m1) ⊦ |
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) 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 ↔ ¬ n ≤ m; (ss)
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.