| ⊦ (i1 ^2 + i2 ^2 + i3 ^2 + i4 ^2) * (j1 ^2 + j2 ^2 + j3 ^2 + j4 ^2) = (((i1 * j1 + i2 * j2) + i3 * j3) + i4 * j4)^2 + ((i1 * j2 - i2 * j1 - i3 * j4) + i4 * j3)^2 + (i1 * j3 + i2 * j4 - i3 * j1 - i4 * j2)^2 + ((i1 * j4 - i2 * j3) + i3 * j2 - i4 * j1)^2 |
⊦ i2 ^2 * j4 ^2 + 2 * (i1 * j3) * i2 * j4 + i1 ^2 * j3 ^2 + i3 ^2 * j1 ^2 + 2 * (i3 * j1) * i4 * j2 + i4 ^2 * j2 ^2 + i4 ^2 * j4 ^2 + 2 * (i3 * j3) * i4 * j4 + i3 ^2 * j3 ^2 + 2 * (i2 * j2) * (i3 * j3 + i4 * j4) + i2 ^2 * j2 ^2 + 2 * (i1 * j1) * (i2 * j2 + i3 * j3 + i4 * j4) + i1 ^2 * j1 ^2 + i3 ^2 * j4 ^2 + 2 * (i2 * j1) * i3 * j4 + i2 ^2 * j1 ^2 + i4 ^2 * j3 ^2 + 2 * (i4 * j3) * i1 * j2 + i1 ^2 * j2 ^2 + i4 ^2 * j1 ^2 + 2 * (i2 * j3) * i4 * j1 + i2 ^2 * j3 ^2 + i3 ^2 * j2 ^2 + 2 * (i3 * j2) * i1 * j4 + i1 ^2 * j4 ^2 = (i1 ^2 + i2 ^2 + i3 ^2 + i4 ^2) * (j1 ^2 + j2 ^2 + j3 ^2 + j4 ^2) + 2 * (i3 * j2 + i1 * j4) * (i2 * j3 + i4 * j1) + 2 * (i1 * j3 + i2 * j4) * (i3 * j1 + i4 * j2) + 2 * (i4 * j3 + i1 * j2) * (i2 * j1 + i3 * j4)
Used simplifier rules: two-plus: ⊦ (i + j)^2 = i ^2 + 2 * i * j + j ^2;%two-mult: ⊦ (i * j)^2 = i ^2 * j ^2;%two-minus: ⊦ (i - j)^2 = (i ^2 - 2 * i * j) + j ^2;%sub-eq: ⊦ i - j = i0 ↔ i = i0 + j; from specification int-abs%sub-add-01: ⊦ i + (j - i0) = i + j - i0; from specification int-abs%sub-sub: ⊦ i - j - i0 = i - j + i0; from specification int-abs%add-c: ⊦ i + j = j + i; from specification int-basic2%add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2%commutativity: ⊦ i * j = j * i; from specification int-mult%associativity: ⊦ i * j * j0 = (i * j) * j0; from specification int-mult