| mon≤(nσ) ∧ m1 ≤ m ∧ ⌜m⌝ < # nσ → nσ[m1] ≤ nσ[m], # nσ = ∞, m1 < m2, stutf(nσ), nσ[m] < nσ[m1], ∀ m0. m < m0 → nσ[m0] = nσ[m] + 1 ⊦ nσ[m2] = nσ[m1], m2 = 0, nσ[m1] = 0 |
# nσ = ∞, m < m2, m < m1, m1 < m2, stutf(nσ), nσ[m] < nσ[m1], m + 1 < m2, ∀ m0. m < m0 → nσ[m0] = nσ[m] + 1 ⊦ m1 = 0, nσ[m2] = nσ[m1], m2 = 0, nσ[m1] = 0
Used simplifier rules: stutf-monle: ⊦ stutf(nσ) → (¬ mon≤(nσ) ↔ false);%succ: ⊦ m +1 = m + 1; from specification nat-basic2%trans-1: ⊦ n < n0 ∧ n0 < n1 → n < n1; (forward) from specification nat-basic1%lf: ⊦ m < n ∧ n < n0 → m +1 < n0; (forward) from specification nat-basic1%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