| j | i0 ∧ prime(j) ∧ j < i0 ∧ (∀ j0. j < j0 ∧ j0 < i0 ∧ prime(j0) → ¬ j0 | i0), all_prime_divisors(((i * i0) / j) / i) = all_prime_divisors((i * i0) / j) -1l i, 0 ≤ i0, 2 ≤ i * i0, 2 ≤ i0, j < i * i0, j | i * i0, i | (i * i0) / j, prime(i), 0 < i, 0 < i0, prime(j), j | i0, j < i0, ∀ j. max_prime_divisor(i0) < j ∧ j < i * i0 ∧ prime(j) → ¬ j | i * i0, ∀ j0. j < j0 ∧ j0 < i0 ∧ prime(j0) → ¬ j0 | i0, ∀ j0, i1. i→n(j0) < i→n(i * i0) → i1 | j0 ∧ prime(i1) ∧ 0 < j0 → all_prime_divisors(j0 / i1) = all_prime_divisors(j0) -1l i1 ⊦ all_prime_divisors(i0 / j) = all_prime_divisors((i * i0) / j) -1l i, prime(i0), prime(i * i0) |
all_prime_divisors(((i * i0) / j) / i) = all_prime_divisors((i * i0) / j) -1l i, 0 ≤ i0, 2 ≤ i * i0, 2 ≤ i0, j < i * i0, i | (i * i0) / j, prime(i), 0 < i, 0 < i0, prime(j), j | i0, j < i0, ∀ j. max_prime_divisor(i0) < j ∧ j < i * i0 ∧ prime(j) → ¬ j | i * i0, ∀ j0. j < j0 ∧ j0 < i0 ∧ prime(j0) → ¬ j0 | i0, ∀ j0, i1. i→n(j0) < i→n(i * i0) → i1 | j0 ∧ prime(i1) ∧ 0 < j0 → all_prime_divisors(j0 / i1) = all_prime_divisors(j0) -1l i1 ⊦ all_prime_divisors(i0 / j) = all_prime_divisors((i * i0) / j) -1l i, prime(i0), prime(i * i0)
Used simplifier rules: commutativity: ⊦ i * j = j * i; from specification int-mult%associativity: ⊦ i * j * j0 = (i * j) * j0; from specification int-mult%divides-mult-01: ⊦ i | j → i | j * j0; from specification int-gcd