| # nσ = ⌜m0⌝ + ⌜1⌝ , min(nσ, nσ[m0] + 1) = m0 + 1, mon<(nσ), nσ[m0] ≤ nσ[min(nσ, nσ[m0])], min(nσ, nσ[m0]) < m0, ∀ m. m < m0 + 1 ∧ nσ[m0] ≤ nσ[m] → min(nσ, nσ[m0]) ≤ m ⊦ m0 = min(nσ, nσ[m0]), m0 + 1 = min(nσ, nσ[m0]), nσ = [] |
⊦ mon<(nσ) ∧ m < n ∧ ⌜n⌝ < # nσ → nσ[m] < nσ[n]
Used simplifier rules: le-ls-simp: ⊦ m ≤ n → (n < m ↔ false); from specification nat%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%eqsucc-ls: ⊦ n∞0 + ⌜1⌝ = n∞ → (¬ n∞0 < n∞ ↔ n∞0 = ∞); from specification nat-inf%disj: ⊦ ⌜m⌝ ≠ ∞; from specification nat-inf-basic Used terms: nσ, min(nσ, nσ[m0]), m0