Macaulay2 » Documentation
Packages » PencilsOfQuadrics :: ciModuleToMatrixFactorization
next | previous | forward | backward | up | index | toc

ciModuleToMatrixFactorization -- transforms a module over a complete intersection of 2 quadrics into a matrix factorization

Synopsis

Description

Part of the series of explicit functors giving category equivalences:

cliffordModule

cliffordModuleToCIResolution

cliffordModuleToMatrixFactorization

ciModuleToMatrixFactorization

ciModuleToCliffordModule

This function uses the bihomogeneous matrix factorization produced by the script EisenbudShamashTotal in the package CompleteIntersectionResolutions. Using the multigrading, a new matrix factorization in the form needed for cliffordModule(e1,e0,R), where R=k[s,t].

i1 : n = 4

o1 = 4
i2 : c = 2

o2 = 2
i3 : kk = ZZ/101

o3 = kk

o3 : QuotientRing
i4 : U = kk[x_0..x_(n-1)]

o4 = U

o4 : PolynomialRing
i5 : qq = matrix{{x_0^2+x_1^2,x_0*x_1}}

o5 = | x_0^2+x_1^2 x_0x_1 |

             1      2
o5 : Matrix U  <-- U
i6 : qq = random(U^1, U^{2:-2})

o6 = | 24x_0^2-36x_0x_1+19x_1^2-30x_0x_2+19x_1x_2-29x_2^2-29x_0x_3-10x_1x_3-
     ------------------------------------------------------------------------
     8x_2x_3-22x_3^2 -29x_0^2-24x_0x_1+39x_1^2-38x_0x_2+21x_1x_2+19x_2^2-16x_
     ------------------------------------------------------------------------
     0x_3+34x_1x_3-47x_2x_3-39x_3^2 |

             1      2
o6 : Matrix U  <-- U
i7 : Ubar = U/ideal qq

o7 = Ubar

o7 : QuotientRing
i8 : M = coker vars Ubar

o8 = cokernel | x_0 x_1 x_2 x_3 |

                                  1
o8 : Ubar-module, quotient of Ubar
i9 : betti (fM=res M)

            0 1 2  3  4  5
o9 = total: 1 4 8 12 16 20
         0: 1 4 8 12 16 20

o9 : BettiTally
i10 : betti res coker transpose fM.dd_3

              0 1 2 3 4  5
o10 = total: 12 8 5 5 8 12
         -3: 12 8 4 1 .  .
         -2:  . . 1 4 8 12

o10 : BettiTally
i11 : (e1,e0) = ciModuleToMatrixFactorization M;

Check that it's a matrix factorization:

i12 : source e0 == target e1

o12 = true
i13 : 0 == e0*e1 - diagonalMatrix(ring e0, apply(numcols e0, i->(e0*e1)_0_0))

o13 = true
i14 : degrees source e1-degrees target e0

o14 = {{3}, {3}, {3}, {3}, {3}, {3}, {3}, {3}}

o14 : List

Caveat

See also

Ways to use ciModuleToMatrixFactorization :

For the programmer

The object ciModuleToMatrixFactorization is a method function.