Macaulay2 » Documentation
Packages » NCAlgebra :: NCMatrix // NCMatrix
next | previous | forward | backward | up | index | toc

NCMatrix // NCMatrix -- Factor one map through another

Synopsis

Description

This command factors one map through another. One nice application of this is to compute twisted matrix factorizations. If the maps input are homogeneous, then the degrees must match up for the command to work.

If M does not factor through N, then the return value L is such that M - N*L is the reduction of M modulo a Groebner basis for the image of N.

Here is an example of doing so over a PI Sklyanin algebra. Note that since quotients of quotients are (unfortunately) not yet implemented, we have to do a bit of acrobatics to define the quotient of the Sklyanin we want.

i1 : B = threeDimSklyanin(QQ,{1,1,-1},{x,y,z})
--Calling Bergman for NCGB calculation.
Complete!

o1 = B

o1 : NCQuotientRing
i2 : A = ambient B

o2 = A

o2 : NCPolynomialRing

The element g below is central in B (the two is just for convenience).

i3 : g = 2*(-y^3-x*y*z+y*x*z+x^3)

        3             3
o3 = -2y +2yxz-2xyz+2x

o3 : A
i4 : J = (ideal B) + ncIdeal {g}

                             2      2       2           3             3
o4 = Two-sided ideal {zy+yz-x , zx-y +xz, -z +yx+xy, -2y +2yxz-2xyz+2x }

o4 : NCIdeal
i5 : B' = A/J -- Factor of sklyanin
--Calling Bergman for NCGB calculation.
Complete!

o5 = B'

o5 : NCQuotientRing
i6 : k = ncMatrix {{x,y,z}}

o6 = | x y z |

o6 : NCMatrix
i7 : BprimeToB = ncMap(B,B',gens B) -- way to lift back from B' to B

o7 = NCRingMap B <--- B'

o7 : NCRingMap
i8 : M = BprimeToB rightKernelBergman rightKernelBergman k  -- second syzygy of k over B
--Calling Bergman for NCGB calculation.
Complete!
--Calling Bergman for NCGB calculation.
Complete!
--Calling Bergman for NCGB calculation.
Complete!
--Calling Bergman for NCGB calculation.
Complete!
--Calling Bergman for NCGB calculation.
Complete!
--Calling Bergman for NCGB calculation.
Complete!

o8 = | -z y*z     -y^2    -y*x-2*x*y |
     | x  y*x+x*y y*z+x^2 -y^2+3*x*z |
     | y  -x*z    -x*y    x^2        |
     | 0  -2*y    -2*x    -2*z       |

o8 : NCMatrix

At this point, M is maximal Cohen-Macaulay B'-module, and hence the projective dimension of M as a B-module is 1. Since M is a B' module, multiplication by g on the complex that gives the resolution over B is null homotopic. This means we may factor the map f through f times the identity. We do so below.

i9 : gId = g*(ncMatrix applyTable(entries id_(ZZ^4), i -> promote(i,B)))

o9 = | -2*y^3+2*y*x*z-2*x*y*z+2*x^3 0                            0                            0                            |
     | 0                            -2*y^3+2*y*x*z-2*x*y*z+2*x^3 0                            0                            |
     | 0                            0                            -2*y^3+2*y*x*z-2*x*y*z+2*x^3 0                            |
     | 0                            0                            0                            -2*y^3+2*y*x*z-2*x*y*z+2*x^3 |

o9 : NCMatrix
i10 : assignDegrees(gId,{2,2,2,3},{5,5,5,6});
i11 : M' = gId // M
--Calling Bergman for NCGB calculation.
Complete!

o11 = | -2*y*x 0  -2*y^2+2*x*z y*x*z+x^3 |
      | -x     z  -y           y^2-x*z   |
      | -y     -x z            y*z-x^2   |
      | z      y  x            0         |

o11 : NCMatrix
i12 : M*M' == gId

o12 = true

Ways to use this method: