| j0 | j ∧ prime(j0) ∧ j0 < j ∧ (∀ j1. j0 < j1 ∧ j1 < j ∧ prime(j1) → ¬ j1 | j), max_prime_divisor(j / i) = j0, all_prime_divisors((j / j0) / i) = all_prime_divisors(j / j0) -1l i, 2 ≤ j / i, 2 ≤ j, 0 < j, prime(i), i | j, 0 ≤ j, 0 < j / i, 0 ≤ j / i, i | j / j0, prime(j0), j0 | j, j0 < j, ∀ j1. j0 < j1 ∧ j1 < j ∧ prime(j1) → ¬ j1 | j, ∀ j0, i. i→n(j0) < i→n(j) → i | j0 ∧ prime(i) ∧ 0 < j0 → all_prime_divisors(j0 / i) = all_prime_divisors(j0) -1l i ⊦ all_prime_divisors((j / i) / j0) = all_prime_divisors(j / j0) -1l i, prime(j), prime(j / i) |
all_prime_divisors((j / max_prime_divisor(j / i)) / i) = all_prime_divisors(j / max_prime_divisor(j / i)) -1l i, 2 ≤ j / i, 2 ≤ j, 0 < j, prime(i), i | j, 0 ≤ j, 0 < j / i, 0 ≤ j / i, i | j / max_prime_divisor(j / i), max_prime_divisor(j / i) | j, max_prime_divisor(j / i) < j, ∀ j1. max_prime_divisor(j / i) < j1 ∧ j1 < j ∧ prime(j1) → ¬ j1 | j, ∀ j0, i. i→n(j0) < i→n(j) → i | j0 ∧ prime(i) ∧ 0 < j0 → all_prime_divisors(j0 / i) = all_prime_divisors(j0) -1l i ⊦ all_prime_divisors((j / i) / max_prime_divisor(j / i)) = all_prime_divisors(j / max_prime_divisor(j / i)) -1l i, prime(j), prime(j / i)
Used simplifier rules: max_prime_divisor-prime: ⊦ ¬ prime(i) ∧ 2 ≤ i → prime(max_prime_divisor(i)); from specification int-gcd