| j = i1 + i, i ≤ j, 0 ≤ i, 0 ≤ j, ∀ 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)) ⊦ Σ countFun(i, j, λ j0. intfun1(j0) + intfun2(j0)) = Σ countFun(i, j, intfun1) + Σ countFun(i, j, 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)) ⊦ Σ countFun(i, i1 + i, λ j0. intfun1(j0) + intfun2(j0)) = Σ countFun(i, i1 + i, intfun1) + Σ countFun(i, i1 + i, intfun2)
Used simplifier rules: forward-le-01: ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j; (forward) from specification int-abs%add-c: ⊦ i + j = j + i; from specification int-basic2%add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2%lep: ⊦ i ≤ i + j ↔ 0 ≤ j; from specification int-abs