| j = 0, 0 ≤ j, 0 ≤ i, ∀ j0, i. i→n(j0) < i→n(j) → 0 ≤ i ∧ 0 ≤ j0 → fac(i + j0) = fac(i) * Π countFun(1, j0, λ j0. i + j0) ⊦ fac(i + j) = fac(i) * Π countFun(1, j, λ j0. i + j0) |
0 ≤ i, ∀ j0, i. i→n(j0) < i→n(0) → 0 ≤ i ∧ 0 ≤ j0 → fac(i + j0) = fac(i) * Π countFun(1, j0, λ j0. i + j0) ⊦ Π countFun(1, 0, λ j0. i + j0) = 1
Used simplifier rules: fac-zero-02: ⊦ fac(i) ≠ 0;%commutativity: ⊦ i * j = j * i; from specification int-mult%associativity: ⊦ i * j * j0 = (i * j) * j0; from specification int-mult%eq-same: ⊦ i * j = i ↔ i = 0 ∨ j = 1; from specification int-mult%add-c: ⊦ i + j = j + i; from specification int-basic2%add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2%ax-04: ⊦ i + 0 = i; from specification int-basic2