| ⌜min(nσ, n)⌝ < # nσ, n ≤ nσ[min(nσ, n)], ⌜min(nσ, n + 1)⌝ < # nσ, n < nσ[min(nσ, n + 1)], mon<(nσ), min(nσ, n) < min(nσ, n + 1), ∀ m. ⌜m⌝ < # nσ ∧ n ≤ nσ[m] → min(nσ, n) ≤ m, # nσ = ∞ ∨ n < nσ[(# nσ).n - 1], ⌜min(nσ, n)⌝ < # nσ ∧ n < nσ[min(nσ, n)] → min(nσ, n + 1) ≤ min(nσ, n), ∀ m. ⌜m⌝ < # nσ ∧ n < nσ[m] → min(nσ, n + 1) ≤ m, ∀ m. ⌜m⌝ < # nσ → nσ[m] ≠ n, # nσ = ∞ ∨ ¬ nσ[(# nσ).n - 1] < n ⊦ min(nσ, n + 1) = min(nσ, n), nσ = [], nσ[min(nσ, n + 1)] = 0, min(nσ, n + 1) = 0 |
n = nσ[min(nσ, n)], n < nσ[min(nσ, n + 1)], min(nσ, n) < min(nσ, n + 1), mon<(nσ), ⌜min(nσ, n + 1)⌝ < # nσ, ⌜min(nσ, n)⌝ < # nσ, # nσ = ∞ ∨ n < nσ[(# nσ).n - 1], ∀ m. ⌜m⌝ < # nσ ∧ n ≤ nσ[m] → min(nσ, n) ≤ m, # nσ = ∞ ∨ ¬ nσ[(# nσ).n - 1] < n, ∀ m. ⌜m⌝ < # nσ → nσ[m] ≠ n, ∀ m. ⌜m⌝ < # nσ ∧ n < nσ[m] → min(nσ, n + 1) ≤ m ⊦ min(nσ, n + 1) = 0, nσ[min(nσ, n + 1)] = 0, nσ = [], min(nσ, n + 1) = min(nσ, n)
Used simplifier rules: ler: ⊦ m ≤ m; from specification nat%fle-01: ⊦ m ≤ n ∧ n < n0 → m < n0; (forward) from specification nat%lf-02: ⊦ m < n ∧ m = n0 → n0 < n; (forward) from specification nat-basic1%anti: ⊦ m ≤ n → (n ≤ m ↔ m = n); from specification nat%lels: ⊦ ¬ m < n ↔ n ≤ m; from specification nat%ls-le-simp: ⊦ m < n → (n ≤ m ↔ false); from specification nat