| (j1 + j2) % 2 = 0, 2 * (j1 ^2 + j2 ^2) / 2 = j1 ^2 + j2 ^2 → (j1 ^2 + j2 ^2) / 2 = ((j1 - j2) / 2)^2 + ((j1 + j2) / 2)^2 ⊦ j1 ^2 + j2 ^2 = 2 * (((j1 - j2) / 2)^2 + ((j1 + j2) / 2)^2) |
j ≠ 0 ⊦ i % j = 0 → i / j * j = i
(j1 + j2) % 2 = 0, 2 * (j1 ^2 + j2 ^2) / 2 = j1 ^2 + j2 ^2 → (j1 ^2 + j2 ^2) / 2 = ((j1 - j2) / 2)^2 + ((j1 + j2) / 2)^2 ⊦ j1 ^2 + j2 ^2 = 2 * (((j1 - j2) / 2)^2 + ((j1 + j2) / 2)^2), 2 ≠ 0 ∧ (j1 ^2 + j2 ^2) % 2 = 0
Used simplifier rules: ⊦ i % 2 = 0 → (i / 2 = j ↔ i = 2 * j); (s)%commutativity: ⊦ i * j = j * i; from specification int-mult Used terms: 2, j1 ^2 + j2 ^2