| i ≤ i1 + i, 0 ≤ i, 0 ≤ i1 + i, 0 ≤ i1, ∀ j0, i0, intfun1, intfun2. i→n(j0 - i0) < i→n(i1) → true → 0 ≤ i0 ∧ i0 ≤ j0 → Σ countFun(i0, j0, λ j0. intfun1(j0) + intfun2(j0)) = Σ countFun(i0, j0, λ j0. intfun1(j0)) + Σ countFun(i0, j0, λ j0. intfun2(j0)) ⊦ (intfun1(i) + intfun2(i)) + Σ countFun(i + 1, i1 + i, λ j0. intfun1(j0) + intfun2(j0)) = Σ(intfun1(i) ' + countFun(i + 1, i1 + i, intfun1)) + Σ countFun(i, i1 + i, intfun2) |
0 ≤ i, 0 ≤ i1 + i, 0 ≤ i1, ∀ j0, i0, intfun1, intfun2. i→n(j0 - i0) < i→n(i1) → true → 0 ≤ i0 ∧ i0 ≤ j0 → Σ countFun(i0, j0, λ j0. intfun1(j0) + intfun2(j0)) = Σ countFun(i0, j0, λ j0. intfun1(j0)) + Σ countFun(i0, j0, λ j0. intfun2(j0)) ⊦ intfun2(i) + Σ countFun(i + 1, i1 + i, λ j0. intfun1(j0) + intfun2(j0)) = Σ countFun(i + 1, i1 + i, intfun1) + Σ countFun(i, i1 + i, intfun2)
Used simplifier rules: sum-rec: ⊦ Σ(i ' + ints) = i + Σ ints;%zero-gels-04: ⊦ i ≤ 0 ∧ 0 ≤ j → i ≤ j; from specification int-abs%lep: ⊦ i ≤ i + j ↔ 0 ≤ j; from specification int-abs%add-c: ⊦ i + j = j + i; from specification int-basic2%add-in: ⊦ i + j = i + i0 ↔ j = i0; from specification int-basic2%add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2%a: ⊦ (ints + ints0) + ints1 = ints + ints0 + ints1; from specification list[intlista]