| 0 < i * j, 0 < i, 0 ≤ j0, 0 < j, j0 < i, prime(i), ∀ j1, i, j0. i→n(j1) < i→n(j) → true → prime(i) ∧ 0 < j1 ∧ 0 ≤ j0 ∧ j0 < i → max_exp(i, fac(i * j1 + j0)) = j1 + max_exp(i, fac(j1)) ⊦ max_exp(i, (i * j) * fac(i * j - 1)) = j + max_exp(i, fac(j)) |
0 < i, 0 ≤ j0, j0 < i, prime(i), 0 < j, ∀ j1, i, j0. i→n(j1) < i→n(j) → true → prime(i) ∧ 0 < j1 ∧ 0 ≤ j0 ∧ j0 < i → max_exp(i, fac(i * j1 + j0)) = j1 + max_exp(i, fac(j1)) ⊦ max_exp(i, (i * j) * fac(i * j - 1)) = j + max_exp(i, fac(j))
Used simplifier rules: commutativity: ⊦ i * j = j * i; from specification int-mult%associativity: ⊦ i * j * j0 = (i * j) * j0; from specification int-mult%zero-gr: ⊦ 0 < i → (0 < i * j ↔ 0 < j); from specification int-mult