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