| nnf(0) = 0, mon<(⌜nnf⌝ ), nnf(n + 1) ≤ n ⊦ |
⊦ mon<(nσ) ∧ nσ[0] = 0 ∧ ⌜n + 1⌝ < # nσ → (¬ n < nσ[n + 1] ↔ false)
Used simplifier rules: sel-inf: ⊦ ⌜nnf⌝ [n] = nnf(n); from specification stream[natstream]%add-fin: ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; from specification nat-inf%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic2%c: ⊦ m + n = n + m; from specification nat-basic2%size-inf: ⊦ # ⌜nnf⌝ = ∞; from specification stream[natstream]%inf-less: ⊦ n∞ < ∞ ↔ n∞ ≠ ∞; from specification nat-inf%addeqinf-cancel: ⊦ ⌜m⌝ + n∞ = ∞ ↔ n∞ = ∞; from specification nat-inf%disj: ⊦ ⌜m⌝ ≠ ∞; from specification nat-inf-basic%add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf%add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf%le-ls-simp: ⊦ m ≤ n → (n < m ↔ false); from specification nat Used terms: ⌜nnf⌝ , n