| prime(i), 0 < i0, 0 < i1, ∀ i2, i, i1, j, j0. i→n(i2) < i→n(i0) → true → prime(i) ∧ 0 < i2 ∧ 0 < i1 ∧ ¬ i | j ∧ ¬ i | j0 → (i ^ i2 * j = i ^ i1 * j0 ↔ i ^ i2 = i ^ i1 ∧ j = j0) ⊦ i * i ^ (i0 - 1) * j = i ^ (i1 - 1) * i * j0 ↔ i ^ (i0 - 1) * i = i ^ (i1 - 1) * i ∧ j = j0, i | j0, i | j |
⊦ i ≠ 0 → (i * j = i * j0 ↔ j = j0)
i ≠ 0, prime(i), 0 < i0, 0 < i1, ∀ i2, i, i1, j, j0. i→n(i2) < i→n(i0) → true → prime(i) ∧ 0 < i2 ∧ 0 < i1 ∧ ¬ i | j ∧ ¬ i | j0 → (i ^ i2 * j = i ^ i1 * j0 ↔ i ^ i2 = i ^ i1 ∧ j = j0) ⊦ i ^ (i0 - 1) * j = j0 * i ^ (i1 - 1) ↔ i ^ (i0 - 1) * i = i ^ (i1 - 1) * i ∧ j = j0, i | j0, i | j
Used simplifier rules: Mult-zero: ⊦ i * 0 = 0; from specification int-mult%prime-not-neg-01: ⊦ j ≤ 0 → ¬ prime(j); from specification int-gcd%associativity: ⊦ i * j * j0 = (i * j) * j0; from specification int-mult%commutativity: ⊦ i * j = j * i; from specification int-mult Used terms: j0 * i ^ (i1 - 1), i ^ (i0 - 1) * j, i