| 0 < i1, ∀ j0, i0. i→n(j0 - i0) < i→n(i1) → true → ordered≤(count-i2j(i0, j0)) ⊦ i1 = 0, ¬ count-i2j(i + 1, i1 + i).first < i ∧ ordered≤(count-i2j(i + 1, i1 + i)) |
count-i2j(i + 1, i1 + i) = i2 + ints0 ∧ count-i2j(i + 1, i1 + i) ≠ [], 0 < i1, ∀ j0, i0. i→n(j0 - i0) < i→n(i1) → true → ordered≤(count-i2j(i0, j0)) ⊦ i1 = 0, ¬ i2 < i ∧ ordered≤(count-i2j(i + 1, i1 + i))
Used simplifier rules: count-i2j-empty-02: ⊦ count-i2j(i, j) = [] ↔ j < i;%ls-01: ⊦ i + j < i + i0 ↔ j < i0; from specification int-basic2%lsone: ⊦ i < 1 ↔ i ≤ 0; from specification int-abs%lels-02: ⊦ i ≠ j → (i ≤ j ↔ i < j); from specification int-abs%ls-01: ⊦ i < j → ¬ j < i; from specification int-basic1%add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2%add-c: ⊦ i + j = j + i; from specification int-basic2%ints ≠ [] ⊦ i = ints.first ∧ ints0 = ints.rest ↔ ints = i + ints0; (elim) Used terms: count-i2j(i + 1, i1 + i), i2, ints