| j1 + j2 = 2 * i0 + 1, 2 * i = j1 ^2 + j2 ^2 ⊦ ∀ i0. j1 - j2 ≠ 2 * i0 + 1, i = ((j1 - j2) / 2)^2 + ((j1 + j2) / 2)^2 |
2 * i = ((2 * i1 + 1) + j2)^2 + j2 ^2, 2 * j2 + 2 * i1 = 2 * i0 ⊦ i = ((2 * i1 + 1) / 2)^2 + ((2 * j2 + 2 * i1 + 1) / 2)^2
Used simplifier rules: sub-add: ⊦ i + j - i = j; from specification int-abs%add-in: ⊦ i + j = i + i0 ↔ j = i0; from specification int-basic2%add-c: ⊦ i + j = j + i; from specification int-basic2%add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2%add-mult-two: ⊦ i + i = 2 * i; from specification int-mult%sub-eq: ⊦ i - j = i0 ↔ i = i0 + j; from specification int-abs