| i ' + count-i2j(i + 1, i1 + i) ≠ [] ∧ (i ' + count-i2j(i + 1, i1 + i)).rest ≠ [], 0 ≤ i1, ∀ j0, i0. i→n(j0 - i0) < i→n(i1) → true → ordered≤(count-i2j(i0, j0)) ⊦ ¬ (i ' + count-i2j(i + 1, i1 + i)).rest.first < (i ' + count-i2j(i + 1, i1 + i)).first ∧ ordered≤((i ' + count-i2j(i + 1, i1 + i)).rest) |
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))
Used simplifier rules: count-i2j-empty-02: ⊦ count-i2j(i, j) = [] ↔ j < i;%forward-le-05: ⊦ i < j ∧ 0 ≤ i → 0 < j; (forward) from specification int-abs%c-08: ⊦ (i ' + ints).first = i; from specification list[intlista]%lels-02: ⊦ i ≠ j → (i ≤ j ↔ i < j); from specification int-abs%e-01: ⊦ i ' + ints ≠ []; from specification list[intlista]%add-c: ⊦ i + j = j + i; from specification int-basic2%add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2%bet-01: ⊦ 0 ≤ i → (i < 1 ↔ i = 0); from specification int-abs%ls-01: ⊦ i + j < i + i0 ↔ j < i0; from specification int-basic2%a: ⊦ (ints + ints0) + ints1 = ints + ints0 + ints1; from specification list[intlista]%c-07: ⊦ (i ' + ints).rest = ints; from specification list[intlista]