| mon≤(nσ) ∧ m1 ≤ m0 ∧ ⌜m0⌝ < # nσ → nσ[m1] ≤ nσ[m0], nσ[n] = nσ[m0], # nσ = ∞, m0 < n, m1 < n, m0 < m1, ∞.n + m + 1 < max∞(λ n0. nσ[n0] = nσ[m0] + 1).n, stutf(nσ), ⌜nσ[m0]⌝ + ⌜1⌝ < leninv(nσ), nσ[m0] < nσ[m1], m0 + 1 < n, ∀ m. ∃ m0. m < nσ[m0] ⊦ n = 0, nσ[m1] = 0, m1 = 0, nσ[∞.n + m + 1] = nσ[m0] + 1, max∞(λ n0. nσ[n0] = nσ[m0] + 1).n = 0 |
nσ[n] = nσ[m0], # nσ = ∞, m0 < n, m1 < n, m0 < m1, ∞.n + m + 1 < max∞(λ n0. nσ[n0] = nσ[m0] + 1).n, stutf(nσ), ⌜nσ[m0]⌝ + ⌜1⌝ < leninv(nσ), nσ[m0] < nσ[m1], m0 + 1 < n, ∀ m. ∃ m0. m < nσ[m0] ⊦ n = 0, nσ[m1] = 0, m1 = 0, nσ[∞.n + m + 1] = nσ[m0] + 1, max∞(λ n0. nσ[n0] = nσ[m0] + 1).n = 0
Used simplifier rules: stutf-monle: ⊦ stutf(nσ) → (¬ mon≤(nσ) ↔ false);%ls-le-simp: ⊦ m < n → (n ≤ m ↔ false); from specification nat