| j1 ≤ i1, 0 < j1, 0 < i1, ∀ i2, j, i, i0. i→n(i2 - j) < i→n(i1 - j1) → true → 0 < j ∧ j ≤ i2 → countFun(j, i2, λ j0. binom_coef(i2 + 1, j0) * i ^ j0 * i0 ^ (i2 + 1 - j0)) = countFun(j, i2, λ j0. binom_coef(i2, j0 - 1) * i ^ j0 * i0 ^ (i2 + 1 - j0) + binom_coef(i2, j0) * i ^ j0 * i0 ^ (i2 + 1 - j0)) ⊦ ((binom_coef(i1, j1 - 1) + binom_coef(i1, j1)) * i ^ j1 * i0 ^ (i1 + 1 - j1))' + countFun(j1 + 1, i1, λ j0. binom_coef(i1 + 1, j0) * i ^ j0 * i0 ^ (i1 + 1 - j0)) = (binom_coef(i1, j1 - 1) * i ^ j1 * i0 ^ (i1 + 1 - j1) + binom_coef(i1, j1) * i ^ j1 * i0 ^ (i1 + 1 - j1))' + countFun(j1 + 1, i1, λ j0. binom_coef(i1, j0 - 1) * i ^ j0 * i0 ^ (i1 + 1 - j0) + binom_coef(i1, j0) * i ^ j0 * i0 ^ (i1 + 1 - j0)) |
j1 ≤ i1, 0 < j1, 0 < i1, ∀ i2, j, i, i0. i→n(i2 - j) < i→n(i1 - j1) → true → 0 < j ∧ j ≤ i2 → countFun(j, i2, λ j0. binom_coef(i2 + 1, j0) * i ^ j0 * i0 ^ (i2 + 1 - j0)) = countFun(j, i2, λ j0. binom_coef(i2, j0 - 1) * i ^ j0 * i0 ^ (i2 + 1 - j0) + binom_coef(i2, j0) * i ^ j0 * i0 ^ (i2 + 1 - j0)) ⊦ i→n(i1 - j1 + 1) < i→n(i1 - j1), ((binom_coef(i1, j1 - 1) + binom_coef(i1, j1)) * i ^ j1 * i0 ^ (i1 + 1 - j1))' + countFun(j1 + 1, i1, λ j0. binom_coef(i1 + 1, j0) * i ^ j0 * i0 ^ (i1 + 1 - j0)) = (binom_coef(i1, j1 - 1) * i ^ j1 * i0 ^ (i1 + 1 - j1) + binom_coef(i1, j1) * i ^ j1 * i0 ^ (i1 + 1 - j1))' + countFun(j1 + 1, i1, λ j0. binom_coef(i1, j0 - 1) * i ^ j0 * i0 ^ (i1 + 1 - j0) + binom_coef(i1, j0) * i ^ j0 * i0 ^ (i1 + 1 - j0))
Used simplifier rules: zero-02: ⊦ 0 < i ∧ 0 < j → 0 < i + j; from specification int-basic2%add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2%add-c: ⊦ i + j = j + i; from specification int-basic2%succ-01: ⊦ i + 1 ≤ j ↔ i < j; from specification int-abs%associativity: ⊦ i * j * j0 = (i * j) * j0; from specification int-mult%commutativity: ⊦ i * j = j * i; from specification int-mult%c-06: ⊦ i ' + ints = i0 ' + ints0 ↔ i = i0 ∧ ints = ints0; from specification list[intlista]%eq-dist: ⊦ (i + j) * i0 = j0 + j * i0 ↔ i * i0 = j0; from specification int-mult%a: ⊦ (ints + ints0) + ints1 = ints + ints0 + ints1; from specification list[intlista]%lels: ⊦ ¬ i < j ↔ j ≤ i; 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 Used terms: i1, j1 + 1, i, i0