| 2 * (j1 ^2 + j2 ^2) / 2 = j1 ^2 + j2 ^2 → (j1 ^2 + j2 ^2) / 2 = ((j1 - j2) / 2)^2 + ((j1 + j2) / 2)^2, (j1 + j2) % 2 = 0 ⊦ j1 ^2 + j2 ^2 = 2 * (((j1 - j2) / 2)^2 + ((j1 + j2) / 2)^2) |
j ≠ 0 ⊦ i % j = 0 → i / j * j = i
Used simplifier rules: add-even: ⊦ (j1 + j2) % 2 = 0 → ((j1 ^2 + j2 ^2) % 2 ≠ 0 ↔ false);%two-even: ⊦ i % 2 = 0 → (i / 2 = j ↔ i = 2 * j); from specification int-div%add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2%add-c: ⊦ i + j = j + i; from specification int-basic2%commutativity: ⊦ i * j = j * i; from specification int-mult Used terms: 2, j1 ^2 + j2 ^2