| # ints1 = # ints2, i0 + Σ ints2 < i + Σ ints1, ∀ ints. (∀ n. n < # ints2 → ints1[n] ≤ ints[n]) ∧ # ints2 = # ints → Σ ints1 ≤ Σ ints, ¬ # ints2 < 0 → (i ' + ints1)[0] ≤ (i0 ' + ints2)[0], ∀ n. ¬ # ints2 < n → (i ' + ints1)[n] ≤ (i0 ' + ints2)[n] ⊦ |
# ints1 = # ints2, i0 + Σ ints2 < i + Σ ints1, i ≤ i0, ∀ n. ¬ # ints2 < n → (i ' + ints1)[n] ≤ (i0 ' + ints2)[n], ∀ ints. (∀ n. n < # ints2 → ints1[n] ≤ ints[n]) ∧ # ints2 = # ints → Σ ints1 ≤ Σ ints ⊦
Used simplifier rules: a: ⊦ (ints + ints0) + ints1 = ints + ints0 + ints1; from specification list[intlista]%get-zero-01: ⊦ (i ' + ints)[0] = i; from specification list-del[intlista]%zero-01: ⊦ ¬ m < 0; from specification nat-basic1