| 0 < min(i, min(ints0)), 0 < min(ints0), min(i ' + (ints0 -l i0)) < 0, min(i ' + (ints0 -l i0)) < min(i, min(ints0)), min(i ' + (ints0 -l i0)) < min(ints0), ∀ i0. ¬ min(ints0 -l i0) < 0 ⊦ ints0 = [], i0 = i |
⊦ ints ≠ [] → min(i ' + ints) = min(i, min(ints))
ints0 -l i0 ≠ [], 0 < min(i, min(ints0)), 0 < min(ints0), min(i, min(ints0 -l i0)) < 0, min(i, min(ints0 -l i0)) < min(i, min(ints0)), min(i, min(ints0 -l i0)) < min(ints0), ∀ i0. ¬ min(ints0 -l i0) < 0 ⊦ ints0 = [], i0 = i
Used simplifier rules: min-one: ⊦ min(i ') = i;%transitivity: ⊦ i < i0 ∧ i0 < i1 → i < i1; (forward) from specification oelem[intlista]%forward-le-02: ⊦ j < i ∧ i ≤ 0 → j < 0; (forward) from specification int-abs%app: ⊦ ints + [] = ints; from specification list[intlista]%a: ⊦ (ints + ints0) + ints1 = ints + ints0 + ints1; from specification list[intlista]%Min-left: ⊦ j < i → min(j, i) = j; from specification int-min%min-a: ⊦ min(i, min(j, j0)) = min(min(i, j), j0); from specification int-min%min-c: ⊦ min(i, j) = min(j, i); from specification int-min%irreflexivity: ⊦ ¬ i < i; from specification oelem[intlista] Used terms: ints0 -l i0, i