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