| 0 ≤ i1, 2 ≤ i0 * i1, 0 < i0, 2 < i0 * i1, 1 < i1, 0 < i1, i1 ≤ i0, 1 < i0, 0 ≤ i0, prime(i1) ∧ i1 * i1 ≤ i0 * i1 → ¬ i1 | i0 * i1, ∀ j. prime(j) ∧ j * j ≤ i0 * i1 → ¬ j | i0 * i1, ∀ i2. i→n(i2) < i→n(i0 * i1) → 0 < i2 ∧ 1 < i2 ∧ (∀ j. prime(j) ∧ j * j ≤ i2 → ¬ j | i2) → prime(i2) ⊦ |
0 ≤ i1, 2 ≤ i0 * i1, 0 < i0, 2 < i0 * i1, 1 < i1, 0 < i1, i1 ≤ i0, 1 < i0, 0 ≤ i0, ∀ j. prime(j) ∧ j * j ≤ i0 * i1 → ¬ j | i0 * i1, ∀ i2. i→n(i2) < i→n(i0 * i1) → 0 < i2 ∧ 1 < i2 ∧ (∀ j. prime(j) ∧ j * j ≤ i2 → ¬ j | i2) → prime(i2) ⊦ prime(i1)
Used simplifier rules: div-mult: ⊦ i | i * j;%commutativity: ⊦ i * j = j * i; from specification int-mult%associativity: ⊦ i * j * j0 = (i * j) * j0; from specification int-mult%le-pos: ⊦ 0 < i → (i * j ≤ i * i0 ↔ j ≤ i0); from specification int-mult