| j0 * i0 = j2 * i2, all_prime_divisors(i0) = all_prime_divisors(i * i0) -1l i, 0 ≤ j0 * i0, 0 < i, prime(i), prime(j0), j0 < j0 * i * i0, j2 < j0 * i0, prime(j2), 2 ≤ j0 * i0, 2 ≤ j0 * i * i0, 0 < j0 * i0, ∀ j1. j0 < j1 ∧ j1 < j0 * i * i0 ∧ prime(j1) → ¬ j1 | j0 * i * i0, ∀ j. j2 < j ∧ j < j0 * i0 ∧ prime(j) → ¬ j | j0 * i0, j2 < j0 ∧ j0 < j0 * i0 → ¬ true, ∀ j0, i1. i→n(j0) < i→n(i * j2 * i2) → i1 | j0 ∧ prime(i1) ∧ 0 < j0 → all_prime_divisors(j0 / i1) = all_prime_divisors(j0) -1l i1 ⊦ j0 = 0, j2 = j0, all_prime_divisors(i2) + j2 ' = all_prime_divisors(i0) + j0 ', prime(j0 * i * i0), prime(j0 * i0) |
j0 * i0 = j2 * i2, all_prime_divisors(i0) = all_prime_divisors(i * i0) -1l i, 0 ≤ j2 * i2, 0 < i, prime(i), prime(j0), j0 < j0 * i * i0, j2 < j2 * i2, prime(j2), 2 ≤ j2 * i2, 2 ≤ j0 * i * i0, 0 < j2 * i2, j0 < j2, j0 ≤ j2, j0 < j2 * i2, ∀ j1. j0 < j1 ∧ j1 < j0 * i * i0 ∧ prime(j1) → ¬ j1 | j0 * i * i0, ∀ j. j2 < j ∧ j < j2 * i2 ∧ prime(j) → ¬ j | j2 * i2, ∀ j0, i1. i→n(j0) < i→n(i * j2 * i2) → i1 | j0 ∧ prime(i1) ∧ 0 < j0 → all_prime_divisors(j0 / i1) = all_prime_divisors(j0) -1l i1 ⊦ all_prime_divisors(i2) + j2 ' = all_prime_divisors(i0) + j0 ', j0 = 0, prime(j0 * i * i0), prime(j2 * i2)
Used simplifier rules: all_prime_divisors-prime: ⊦ prime(i) → all_prime_divisors(i) = i ';%lst-01: ⊦ ¬ i < j → (i ≠ j ↔ j < i); from specification int-basic1%ls-same-01: ⊦ 0 < i → (i < i * j ↔ 1 < j); from specification int-mult%one-01: ⊦ i ' -1l i = []; from specification list-del[intlista]%one-01: ⊦ i = 1 → i * j = j; from specification int-mult%bet: ⊦ 0 < i → (i ≤ 1 ↔ i = 1); from specification int-abs%le-same: ⊦ 0 < i → (i * j ≤ i ↔ j ≤ 1); from specification int-mult%zero-gr: ⊦ 0 < i → (0 < i * j ↔ 0 < j); from specification int-mult%zero-ge: ⊦ 0 < i → (0 ≤ i * j ↔ 0 ≤ j); from specification int-mult%lels-02: ⊦ i ≠ j → (i ≤ j ↔ i < j); from specification int-abs%commutativity: ⊦ i * j = j * i; from specification int-mult%associativity: ⊦ i * j * j0 = (i * j) * j0; from specification int-mult%ls-pos: ⊦ 0 < i → (i * j < i * j0 ↔ j < j0); from specification int-mult%forward-lele: ⊦ j ≤ j0 ∧ j0 ≤ j1 → j ≤ j1; (forward) from specification int-abs%forward-lsle: ⊦ i < j ∧ j ≤ j0 → i < j0; (forward) from specification int-abs%forward-le: ⊦ i ≤ j ∧ 0 < i → 0 < j; (forward) from specification int-abs%forward-le-01: ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j; (forward) from specification int-abs%forward-lels: ⊦ i ≤ j ∧ j < j0 → i < j0; (forward) from specification int-abs%lels: ⊦ ¬ i < j ↔ j ≤ i; from specification int-abs