| j * i = (j1 ^2 + j0 ^2) + 1, j1 ^2 ≤ (j - 1) / 2 * (j - 1) / 2, j0 ^2 ≤ (j - 1) / 2 * (j - 1) / 2, 0 ≤ j1, 0 ≤ j, prime(j), j0 ≤ (j - 1) / 2, j1 ≤ (j - 1) / 2, 0 ≤ j0, 0 < j, 0 < i, 0 ≤ i, j * j ≤ (2 * (j - 1) / 2) * (j - 1) / 2 + 1, j ≤ i, j * i ≤ (2 * (j - 1) / 2) * (j - 1) / 2 + 1 ⊦ j = 2 |
j ≠ 0 ⊦ i % j = 0 → i / j * j = i
2 ≠ 0 ∧ (j - 1) % 2 = 0, j * i = (j1 ^2 + j0 ^2) + 1, j1 ^2 ≤ (j - 1) / 2 * (j - 1) / 2, j0 ^2 ≤ (j - 1) / 2 * (j - 1) / 2, 0 ≤ j1, 0 ≤ j, prime(j), j0 ≤ (j - 1) / 2, j1 ≤ (j - 1) / 2, 0 ≤ j0, 0 < j, 0 < i, 0 ≤ i, j * j ≤ (j - 1) * (j - 1) / 2 + 1, j ≤ i, j * i ≤ (j - 1) * (j - 1) / 2 + 1 ⊦ j = 2
Used simplifier rules: prime-odd-01: ⊦ prime(j) ∧ j ≠ 2 → (j - 1) % 2 = 0; from specification int-gcd%commutativity: ⊦ i * j = j * i; from specification int-mult Used terms: 2, j - 1