| 0 < i * j ∧ i | i * j ∧ prime(i) → all_prime_divisors((i * j) / i) = all_prime_divisors(i * j) -1l i, prime(i), 0 < j ⊦ #oc(i, all_prime_divisors(i * j)) = #oc(i, all_prime_divisors(j)) + 1 |
all_prime_divisors(j) = all_prime_divisors(i * j) -1l i, prime(i), 0 < j, 0 < i ⊦ #oc(i, all_prime_divisors(i * j)) = #oc(i, all_prime_divisors(j)) + 1
Used simplifier rules: all_prime_divisors-prime: ⊦ prime(i) → all_prime_divisors(i) = i ';%forward-le-05: ⊦ i < j ∧ 0 ≤ i → 0 < j; (forward) from specification int-abs%prime-not-neg-01: ⊦ j ≤ 0 → ¬ prime(j); from specification int-gcd%lels: ⊦ ¬ i < j ↔ j ≤ i; from specification int-abs%div-mult-03: j ≠ 0 ⊦ (i * j) / j = i; from specification int-div%c: ⊦ m + n = n + m; from specification nat-basic2%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic2%oc-zero: ⊦ #oc(i, ints) = 0 ↔ ¬ i ∈ ints; from specification list-perm[intlista]%one: ⊦ m + n = 1 ↔ m = 0 ∧ n = 1 ∨ n = 0 ∧ m = 1; from specification nat-basic2%one: ⊦ #oc(i, i ') = 1; from specification list-perm[intlista]%Mult-zero: ⊦ i * 0 = 0; from specification int-mult%div-mult: ⊦ i | i * j; from specification int-gcd%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