| 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)) |
count-i2j(i + 1, i1 + i) = i2 ' + ints0, i2 ≤ i1 + i, i < i2, i ≤ i2, 0 < i1, ∀ j0, i0. i→n(j0 - i0) < i→n(i1) → true → ordered≤(count-i2j(i0, j0)) ⊦ i1 = 0, ordered≤(i2 ' + ints0)
Used simplifier rules: count-i2j-empty-02: ⊦ count-i2j(i, j) = [] ↔ j < i;%count-i2j-in: ⊦ i0 ∈ count-i2j(i, j) ↔ i ≤ i0 ∧ i0 ≤ j;%lels-02: ⊦ i ≠ j → (i ≤ j ↔ i < j); from specification int-abs%lep: ⊦ i ≤ i + j ↔ 0 ≤ j; from specification int-abs%add-less: ⊦ 0 < i → i1 < i1 + i; from specification int-basic2%forward-lele: ⊦ j ≤ j0 ∧ j0 ≤ j1 → j ≤ j1; (forward) from specification int-abs%forward-lsle: ⊦ i < j ∧ j ≤ j0 → i < j0; (forward) from specification int-abs%lels: ⊦ ¬ i < j ↔ j ≤ i; from specification int-abs%ls-01: ⊦ i < j → ¬ j < i; from specification int-basic1%succ-01: ⊦ i + 1 ≤ j ↔ i < j; from specification int-abs%a: ⊦ (ints + ints0) + ints1 = ints + ints0 + ints1; from specification list[intlista]%in-14: ⊦ i ' + ints = ints0 → i ∈ ints0; (forward) 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%lels-01: ⊦ ¬ i ≤ j ↔ j < i; from specification int-abs%lsone: ⊦ i < 1 ↔ i ≤ 0; from specification int-abs%ls-01: ⊦ i + j < i + i0 ↔ j < i0; from specification int-basic2%c: ⊦ i + ints = i ' + ints; from specification list[intlista]