| mon≤(nσ) ∧ m0 ≤ m2 ∧ ⌜m2⌝ < # nσ → nσ[m0] ≤ nσ[m2], # nσ = ∞, nσ[m2] < nσ[m], nσ[m0] < nσ[m], nσ[m2] < nσ[m0], m0 ≤ m, stutf(nσ), nσ[m2] + 1 < nσ[m], ∀ m0. m2 < m0 → nσ[m0] = nσ[m2] + 1 ⊦ |
# nσ = ∞, nσ[m2] + 1 < nσ[m], stutf(nσ), m0 ≤ m, nσ[m2] < nσ[m0], nσ[m0] < nσ[m], nσ[m2] < nσ[m], m2 < m0, m2 < m, ∀ m0. m2 < m0 → nσ[m0] = nσ[m2] + 1 ⊦
Used simplifier rules: stutf-monle: ⊦ stutf(nσ) → (¬ mon≤(nσ) ↔ false);%f: ⊦ m < n → n ≠ 0; from specification nat-basic1%fle: ⊦ m < n ∧ n ≤ n0 → m < n0; (forward) from specification nat%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic1%lels-01: ⊦ ¬ m ≤ n ↔ n < m; from specification nat%less-inf2: ⊦ ⌜m⌝ < ∞; from specification nat-inf%ls-le-simp: ⊦ m < n → (n ≤ m ↔ false); from specification nat