Macaulay2 » Documentation
Packages » MatrixFactorizations :: tailMF
next | previous | forward | backward | up | index | toc

tailMF -- Generate a ZZdFactorization from a module over a hypersurface ring

Description

The function tailMF takes a module $M$ over a hypersurface ring $R = S/(f)$ and generates a ZZdFactorization. This involves computing a resolution of $M$ over the hypersurface $R$, taking a high truncation of this resolution, lifting it to the ambient ring $S$, then finding a nullhomotopy for multiplication by $f$.

i1 : S = ZZ/101[a,b,c];
i2 : R = S/(a^3+b^3+c^3);
i3 : m = ideal vars R;

o3 : Ideal of R
i4 : C1 = tailMF m

      4      4      4
o4 = S  <-- S  <-- S
                    
     0      1      0

o4 : ZZdFactorization
i5 : C1.dd

          4                            4
o5 = 1 : S  <------------------------ S  : 0
               {5} | -a -c2 b2 0  |
               {5} | -c a2  0  b2 |
               {5} | b  0   a2 c2 |
               {6} | 0  -b  -c a  |

          4                              4
     0 : S  <-------------------------- S  : 1
               {3} | -a2 -c2 b2 0   |
               {4} | -c  a   0  -b2 |
               {4} | b   0   a  -c2 |
               {4} | 0   b   c  a2  |

o5 : ZZdFactorizationMap
i6 : assert isWellDefined C1
i7 : C1.dd^2

          4                                                   4
o7 = 0 : S  <----------------------------------------------- S  : 0
               {3} | a3+b3+c3 0        0        0        |
               {4} | 0        a3+b3+c3 0        0        |
               {4} | 0        0        a3+b3+c3 0        |
               {4} | 0        0        0        a3+b3+c3 |

          4                                                   4
     1 : S  <----------------------------------------------- S  : 1
               {5} | a3+b3+c3 0        0        0        |
               {5} | 0        a3+b3+c3 0        0        |
               {5} | 0        0        a3+b3+c3 0        |
               {6} | 0        0        0        a3+b3+c3 |

o7 : ZZdFactorizationMap
i8 : C2 = tailMF m^2

      9      9      9
o8 = S  <-- S  <-- S
                    
     0      1      0

o8 : ZZdFactorization
i9 : C2.dd

          9                                               9
o9 = 1 : S  <------------------------------------------- S  : 0
               {6} | -a 0  c  0   b2  0   0   0  0   |
               {6} | 0  -a 0  0   0   -c2 b2  0  bc  |
               {6} | 0  0  0  -ab -ac -b2 -bc a2 -c2 |
               {6} | 0  0  -a -ac 0   -bc -c2 0  b2  |
               {6} | -c 0  0  a2  0   ab  ac  b2 0   |
               {6} | b  0  0  0   a2  0   0   c2 ac  |
               {6} | 0  -c 0  -b2 -bc a2  0   ab 0   |
               {6} | 0  b  -c -c2 0   0   a2  0  0   |
               {6} | 0  0  b  0   -c2 0   0   ac a2  |

          9                                               9
     0 : S  <------------------------------------------- S  : 1
               {4} | -a2 0   0  -ac -c2 b2 0   0  0  |
               {4} | 0   -a2 0  0   0   0  -c2 b2 bc |
               {4} | c2  0   0  -a2 -ac 0  0   0  b2 |
               {5} | -c  0   0  0   a   0  -b  -c 0  |
               {5} | b   0   0  0   0   a  0   0  -c |
               {5} | 0   -c  -b 0   0   0  a   0  0  |
               {5} | 0   b   0  -c  0   0  0   a  0  |
               {5} | 0   0   a  0   b   c  0   0  0  |
               {5} | 0   0   -c b   0   0  0   0  a  |

o9 : ZZdFactorizationMap
i10 : C2.dd^2

           9                                                                                                9
o10 = 0 : S  <-------------------------------------------------------------------------------------------- S  : 0
                {4} | a3+b3+c3 0        0        0        0        0        0        0        0        |
                {4} | 0        a3+b3+c3 0        0        0        0        0        0        0        |
                {4} | 0        0        a3+b3+c3 0        0        0        0        0        0        |
                {5} | 0        0        0        a3+b3+c3 0        0        0        0        0        |
                {5} | 0        0        0        0        a3+b3+c3 0        0        0        0        |
                {5} | 0        0        0        0        0        a3+b3+c3 0        0        0        |
                {5} | 0        0        0        0        0        0        a3+b3+c3 0        0        |
                {5} | 0        0        0        0        0        0        0        a3+b3+c3 0        |
                {5} | 0        0        0        0        0        0        0        0        a3+b3+c3 |

           9                                                                                                9
      1 : S  <-------------------------------------------------------------------------------------------- S  : 1
                {6} | a3+b3+c3 0        0        0        0        0        0        0        0        |
                {6} | 0        a3+b3+c3 0        0        0        0        0        0        0        |
                {6} | 0        0        a3+b3+c3 0        0        0        0        0        0        |
                {6} | 0        0        0        a3+b3+c3 0        0        0        0        0        |
                {6} | 0        0        0        0        a3+b3+c3 0        0        0        0        |
                {6} | 0        0        0        0        0        a3+b3+c3 0        0        0        |
                {6} | 0        0        0        0        0        0        a3+b3+c3 0        0        |
                {6} | 0        0        0        0        0        0        0        a3+b3+c3 0        |
                {6} | 0        0        0        0        0        0        0        0        a3+b3+c3 |

o10 : ZZdFactorizationMap

Caveat

There are no checks implemented for whether the ambient ring is actually a hypersurface. The user should make sure the input module $M$ satisfies the conditions put forth above.

See also

Ways to use tailMF:

  • tailMF(Ideal)
  • tailMF(Module)

For the programmer

The object tailMF is a method function.


The source of this document is in MatrixFactorizations/MatrixFactorizationsDOC.m2:5217:0.