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

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

- Usage:
    `M = leftQuadraticMatrix I`
- Inputs:
  - I, an ideal, or List
- Outputs:
  - M, a matrix,

## 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:

- `leftQuadraticMatrix(Ideal)`
- `leftQuadraticMatrix(List)`

## For the programmer

The object leftQuadraticMatrix is a method function.

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/AssociativeAlgebras/doc.m2:1235:0.