| ⌜n⌝ + ⌜1⌝ < # lim(nσf), ((lim(nσf) to n + 2) + nσ)[n] < (lim(nσf) to n + 2)[n + 1], ⌜n + 1⌝ < #(lim(nσf) to n + 2), mon(nσf), lim(nσf)[n + 1] ≤ lim(nσf)[n], ∀ n. nσf(n) ⊑ lim(nσf) ⊦ # lim(nσf) < ⌜n⌝ + ⌜2⌝ |
⌜n⌝ + ⌜1⌝ < # lim(nσf), ((lim(nσf) to n + 2) + nσ)[n] < lim(nσf)[n + 1], ((lim(nσf) to n + 2) + nσ)[n] < lim(nσf)[n], mon(nσf), lim(nσf)[n + 1] ≤ lim(nσf)[n], ∀ n. nσf(n) ⊑ lim(nσf) ⊦ # lim(nσf) < ⌜n⌝ + ⌜2⌝
Used simplifier rules: ⊦ m < n → n ≠ 0; (s)%fle: ⊦ m < n ∧ n ≤ n0 → m < n0; (forward) from specification nat%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic%m < n, ¬ # nσ < ⌜n⌝ ⊦ (nσ to n)[m] = nσ[m]; (s)% ⊦ m + n < m + n0 ↔ n < n0; (s)%add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf%add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf% ⊦ ⌜m⌝ = ⌜m0⌝ ↔ m = m0; (s)% ⊦ ⌜1⌝ < n∞ ↔ n∞ ≠ ⌜0⌝ ∧ n∞ ≠ ⌜1⌝ ; (s)% ⊦ ⌜n⌝ + n∞1 < ⌜n⌝ + n∞2 ↔ n∞1 < n∞2; (s)%¬ # nσ < ⌜n⌝ ⊦ #(nσ to n) = ⌜n⌝ ; (s)%c: ⊦ m + n = n + m; from specification nat-basic%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic% ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s)