| i1 ≤ abs(i1 - i2 + 1) + i2, i2 ≤ i1, ∀ i3, i4, i0, i. i→n(i3 - i4) < i→n(i1 - i2) → true → Σ countFun(i4, i3, λ j0. i0 * binom_coef(i3, j0) * i ^ j0 * i0 ^ (i3 - j0)) = Σ countFun(i4, i3, λ j0. binom_coef(i3, j0) * i ^ j0 * i0 ^ (i3 + 1 - j0)) ⊦ Σ countFun(i2 + 1, i1, λ j0. i0 * binom_coef(i1, j0) * i ^ j0 * i0 ^ (i1 - j0)) = Σ countFun(i2 + 1, i1, λ j0. binom_coef(i1, j0) * i ^ j0 * i0 ^ (i1 + 1 - j0)) |
⊦ ¬ j < 0 → abs(j) = j
Used simplifier rules: sub-add-01: ⊦ i + (j - i0) = i + j - i0; from specification int-abs%sub-add-05: ⊦ i + j - i + 1 = j - 1; 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%sub-le-01: ⊦ i ≤ j - i0 ↔ i + i0 ≤ j; from specification int-abs%lep-01: ⊦ i + j ≤ i ↔ j ≤ 0; from specification int-abs%sub-ls: ⊦ i - j < i0 ↔ i < j + i0; from specification int-abs%succ-02: ⊦ i < j + 1 ↔ i ≤ j; from specification int-abs%anti: ⊦ i ≤ j → (j ≤ i ↔ i = j); from specification int-abs%countFun-base-01: ⊦ countFun(i + 1, i, intfun) = []; from specification intlist%sum-empty: ⊦ Σ [] = 0; from specification intlist Used terms: i1 - i2 + 1