Macaulay2 » Documentation
Packages » AssociativeAlgebras :: leftQuadraticMatrix
next | previous | forward | backward | up | index | toc

leftQuadraticMatrix -- Factors the quadratic ideal on the left or on the right.

Synopsis

Description

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

Ways to use leftQuadraticMatrix :

For the programmer

The object leftQuadraticMatrix is a method function.