| i ≤ j, i ≤ j, ∀ j0, i0. i→n(j0 - i0) < i→n(j - i) → i0 ≤ j0 → min(count-i2j(i0, j0)) = i0 ⊦ min(i ' + count-i2j(i + 1, j)) = i |
⊦ ints ≠ [] → min(i ' + ints) = min(i, min(ints))
count-i2j(i + 1, j) ≠ [], i ≤ j, i ≤ j, ∀ j0, i0. i→n(j0 - i0) < i→n(j - i) → i0 ≤ j0 → min(count-i2j(i0, j0)) = i0 ⊦ min(i, min(count-i2j(i + 1, j))) = i
Used simplifier rules: count-i2j-empty-02: ⊦ count-i2j(i, j) = [] ↔ j < i;%count-i2j-empty-01: ⊦ count-i2j(i + 1, i) = [];%min-one: ⊦ min(i ') = i;%succ-02: ⊦ i < j + 1 ↔ i ≤ j; from specification int-abs%anti: ⊦ i ≤ j → (j ≤ i ↔ i = j); from specification int-abs%add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2%add-c: ⊦ i + j = j + i; from specification int-basic2%app: ⊦ ints + [] = ints; from specification list[intlista]%a: ⊦ (ints + ints0) + ints1 = ints + ints0 + ints1; from specification list[intlista] Used terms: count-i2j(i + 1, j), i