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