| abs(j0) * abs(j0) = abs(j) * abs(i) * abs(i), j0 * j0 = j * i * i ⊦ i = 0, isSquare(j) |
j0 * j0 = j * i * i, 0 < j0, 0 < j, 0 < i ⊦ i = 0, isSquare(j)
abs(i) = 0 ∨ isSquare(abs(j)), abs(j0) * abs(j0) = abs(j) * abs(i) * abs(i), j0 * j0 = j * i * i ⊦ i = 0, isSquare(j)
Used simplifier rules: abs-06: ⊦ 0 < abs(i) ↔ i ≠ 0; from specification int-abs%Mult-zero: ⊦ i * 0 = 0; from specification int-mult%associativity: ⊦ i * j * j0 = (i * j) * j0; from specification int-mult%commutativity: ⊦ i * j = j * i; from specification int-mult%square-zero: ⊦ i * i = 0 ↔ i = 0; from specification int-mult%abs-07: ⊦ abs(i) = 0 ↔ i = 0; from specification int-abs%isSquare-zero: ⊦ isSquare(0); from specification int-square%zero-eq: ⊦ i * j = 0 ↔ i = 0 ∨ j = 0; from specification int-mult Used terms: abs(j0), abs(j), abs(i)