| fac(j) * fac(i - j) | j * fac(i - 1), fac(j - 1) * fac(i - j) | fac(i - 1), fac(j) * fac(i - 1 + j) | fac(i - 1), 0 < j, j < i, 0 ≤ j, 1 < i, 0 < i ⊦ fac(j) * fac(i - j) | (i - j) * fac(i - 1), fac(j) * fac(i - j) | fac(i) |
⊦ 0 < i → fac(i) = i * fac(i - 1)
0 < i - j, fac(j) * (i - j) * fac(i - j - 1) | j * fac(i - 1), fac(j - 1) * (i - j) * fac(i - j - 1) | fac(i - 1), fac(j) * fac(i - 1 + j) | fac(i - 1), 0 < j, j < i, 0 ≤ j, 1 < i, 0 < i ⊦ fac(j) * (i - j) * fac(i - j - 1) | (i - j) * fac(i - 1), fac(j) * (i - j) * fac(i - j - 1) | fac(i)
Used simplifier rules: sub-ls-01: ⊦ i < j - i0 ↔ i + i0 < j; from specification int-abs%ax-04: ⊦ i + 0 = i; 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%lels: ⊦ ¬ i < j ↔ j ≤ i; from specification int-abs%lels-03: ⊦ i < j → (¬ ¬ j ≤ i ↔ false); from specification int-abs Used terms: i - j