| ∀ n. ⌜n⌝ + ⌜1⌝ < #(⌜nl⌝ + ⌜nl0⌝ ) → (⌜nl⌝ + ⌜nl0⌝ )[n] < (⌜nl⌝ + ⌜nl0⌝ )[n + 1] ⊦ mon<(⌜nl0⌝ ) |
∀ n. 1 + n < # nl0 + # nl → (nl + nl0)[n] < (nl + nl0)[n + 1] ⊦ mon<(⌜nl0⌝ )
Used simplifier rules: get-append2-fin: ⊦ (⌜nl⌝ + ⌜nl0⌝ )[m] = (nl + nl0)[m]; from specification stream[natstream]%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%ls-natinf-to-nat-2-2: ⊦ ⌜n⌝ + ⌜m⌝ < ⌜n0⌝ + ⌜n1⌝ ↔ n + m < n0 + n1; from specification nat-inf%append-assoc: ⊦ (nσ + nσ0) + nσ1 = nσ + nσ0 + nσ1; from specification stream[natstream]%size-fin: ⊦ # ⌜nl⌝ = ⌜# nl⌝ ; from specification stream[natstream]%size-append: ⊦ #(nσ + nσ0) = # nσ + # nσ0; from specification stream[natstream]