This function expresses the generators of the quadratic ideal I as a product of a row or column vector of the variables times a matrix with linear entries.
i1 : R = ZZ/32003 <|x_4,x_1,x_2,x_3|> o1 = R o1 : FreeAlgebra |
i2 : I = ideal {x_3^2 - x_1*x_2, x_4^2 - x_2*x_1, x_1*x_3 - x_2*x_4, x_3*x_1 - x_2*x_3, x_1*x_4 - x_4*x_2, x_4*x_1 - x_3*x_2} 2 2 o2 = ideal (- x x + x , x - x x , x x - x x , - x x + x x , - x x + 1 2 3 4 2 1 1 3 2 4 2 3 3 1 4 2 ------------------------------------------------------------------------ x x , x x - x x ) 1 4 4 1 3 2 o2 : Ideal of R |
i3 : lQ = leftQuadraticMatrix I o3 = | 0 0 -x_1 x_3 | | x_4 -x_2 0 0 | | -x_2 0 0 x_1 | | 0 x_3 0 -x_2 | | x_1 0 -x_4 0 | | 0 x_4 -x_3 0 | 6 4 o3 : Matrix R <--- R |
i4 : rQ = rightQuadraticMatrix I o4 = | 0 x_4 0 0 -x_2 x_1 | | -x_2 0 x_3 0 x_4 0 | | 0 -x_1 -x_4 -x_3 0 0 | | x_3 0 0 x_1 0 -x_2 | 4 6 o4 : Matrix R <--- R |
i5 : d = matrix {{x_4,x_1,x_2,x_3}} o5 = | x_4 x_1 x_2 x_3 | 1 4 o5 : Matrix R <--- R |
i6 : e = matrix transpose {{x_4,x_1,x_2,x_3}} o6 = | x_4 | | x_1 | | x_2 | | x_3 | 4 1 o6 : Matrix R <--- R |
i7 : NCReductionTwoSided(ncMatrixMult(d,rQ),I) o7 = 0 1 6 o7 : Matrix R <--- R |
i8 : NCReductionTwoSided(ncMatrixMult(lQ,e),I) o8 = 0 6 1 o8 : Matrix R <--- R |
We can perform these products over the quotient to verify that the composite is zero there.
i9 : S = R/I o9 = S o9 : FreeAlgebraQuotient |
i10 : (lQS,dS) = (sub(lQ,S),sub(d,S)); |
i11 : (rQS,eS) = (sub(rQ,S),sub(e,S)); |
i12 : ncMatrixMult(dS,rQS) o12 = 0 1 6 o12 : Matrix S <--- S |
i13 : ncMatrixMult(lQS,eS) o13 = 0 6 1 o13 : Matrix S <--- S |
The object leftQuadraticMatrix is a method function.