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