| # nσ = ⌜m0⌝ + ⌜1⌝ , min(nσ, nσ[m0] + 1) = m0 + 1, min(nσ, nσ[m0]) < m0, mon<(nσ), nσ[m0] ≤ nσ[min(nσ, nσ[m0])], ∀ m. m < m0 + 1 ∧ nσ[m0] ≤ nσ[m] → min(nσ, nσ[m0]) ≤ m ⊦ m0 + 1 = min(nσ, nσ[m0]), m0 = min(nσ, nσ[m0]), nσ = [] |
⊦ mon<(nσ) ∧ m < n ∧ ⌜n⌝ < # nσ → nσ[m] < nσ[n]
Used simplifier rules: ⊦ 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∞0 + ⌜1⌝ = n∞ → (n∞0 < n∞ ↔ n∞0 ≠ ∞); (ss)% ⊦ ⌜m⌝ ≠ ∞; (s) Used terms: nσ, min(nσ, nσ[m0]), m0