| 1 + n < # nl, nl[n + 1] ≤ nl[n], ∀ n. ⌜n⌝ + ⌜1⌝ < #(⌜nl⌝ + ⌜nl0⌝ ) → (⌜nl⌝ + ⌜nl0⌝ )[n] < (⌜nl⌝ + ⌜nl0⌝ )[n + 1] ⊦ nl = [] |
1 + n < # nl, nl[n + 1] ≤ nl[n], ∀ n0. 1 + n0 < # nl0 + # nl → (nl + nl0)[n0] < (nl + nl0)[n0 + 1] ⊦ nl = []
Used simplifier rules: ⊦ (⌜nl⌝ + ⌜nl0⌝ )[m] = (nl + nl0)[m]; (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% ⊦ ⌜n⌝ + ⌜m⌝ < ⌜n0⌝ + ⌜n1⌝ ↔ n + m < n0 + n1; (s)%append-assoc: ⊦ (nσ + nσ0) + nσ1 = nσ + nσ0 + nσ1; from specification stream[natstream]% ⊦ # ⌜nl⌝ = ⌜# nl⌝ ; (s)% ⊦ #(nσ + nσ0) = # nσ + # nσ0; (s)