| ∀ n. 1 + n < # nl0 + # nl → (nl + nl0)[n] < (nl + nl0)[n + 1] ⊦ ∀ n. ⌜n⌝ + ⌜1⌝ < # ⌜nl0⌝ → ⌜nl0⌝ [n] < ⌜nl0⌝ [n + 1] |
1 + n < # nl0, nl0[n + 1] ≤ nl0[n], ∀ n. 1 + n < # nl0 + # nl → (nl + nl0)[n] < (nl + nl0)[n + 1] ⊦ nl0 = []
Used simplifier rules: ⊦ # nl = 0 ↔ nl = []; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ m < n ↔ ¬ n ≤ m; (ss)% ⊦ ⌜nl⌝ [n] = nl[n]; (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⌝ ↔ n + m < n0; (s)% ⊦ # ⌜nl⌝ = ⌜# nl⌝ ; (s)