Macaulay2 » Documentation
Packages » SimplicialComplexes :: scarfChainComplex
next | previous | forward | backward | up | index | toc

scarfChainComplex -- create the Scarf chain complex for a list of monomials.

Synopsis

Description

For a monomial ideal $M$, minimally generated by a list of monomials $L$ in a polynomial ring $S$, the Scarf complex is the subcomplex of the Taylor resolution of $S/M$ that is induced on the multihomogeneous basis elements with unique multidegrees. If the Scarf Complex is a resolution, then it is the minimal free resolution of $S/M$. For more information on the Scarf complex and its construction, see Bayer, Dave; Peeva, Irena; Sturmfels, Bernd Monomial Resolutions. Math. Res. Lett. 5 (1998), no. 1-2, 31–46, or Jeff Mermin Three Simplicial Resolutions, (English summary) Progress in commutative algebra 1, 127–141, de Gruyter, Berlin, 2012.

i1 : S = QQ[x_0..x_3, Degrees => {{1,0,0,0},{0,1,0,0},{0,0,1,0},{0,0,0,1}}];
i2 : M = monomialIdeal(x_0*x_1,x_0*x_3,x_1*x_2,x_2*x_3);

o2 : MonomialIdeal of S
i3 : T = taylorResolution M;
i4 : C = scarfChainComplex M;
i5 : T.dd

          1                                       4
o5 = 0 : S  <----------------------------------- S  : 1
               | x_2x_3 x_0x_3 x_1x_2 x_0x_1 |

          4                                                            6
     1 : S  <-------------------------------------------------------- S  : 2
               {0, 0, 1, 1} | -x_0 -x_1 -x_0x_1 0       0    0    |
               {1, 0, 0, 1} | x_2  0    0       -x_1x_2 -x_1 0    |
               {0, 1, 1, 0} | 0    x_3  0       x_0x_3  0    -x_0 |
               {1, 1, 0, 0} | 0    0    x_2x_3  0       x_3  x_2  |

          6                                          4
     2 : S  <-------------------------------------- S  : 3
               {1, 0, 1, 1} | x_1  x_1 0   0    |
               {0, 1, 1, 1} | -x_0 0   x_0 0    |
               {1, 1, 1, 1} | 0    -1  -1  0    |
               {1, 1, 1, 1} | 1    0   0   1    |
               {1, 1, 0, 1} | 0    x_2 0   -x_2 |
               {1, 1, 1, 0} | 0    0   x_3 x_3  |

          4                           1
     3 : S  <----------------------- S  : 4
               {1, 1, 1, 1} | -1 |
               {1, 1, 1, 1} | 1  |
               {1, 1, 1, 1} | -1 |
               {1, 1, 1, 1} | 1  |

o5 : ChainComplexMap
i6 : C.dd

          1                                       4
o6 = 0 : S  <----------------------------------- S  : 1
               | x_2x_3 x_0x_3 x_1x_2 x_0x_1 |

          4                                            4
     1 : S  <---------------------------------------- S  : 2
               {0, 0, 1, 1} | -x_0 -x_1 0    0    |
               {1, 0, 0, 1} | x_2  0    -x_1 0    |
               {0, 1, 1, 0} | 0    x_3  0    -x_0 |
               {1, 1, 0, 0} | 0    0    x_3  x_2  |

o6 : ChainComplexMap
i7 : flatten for i to length C list degrees C_i

o7 = {{0, 0, 0, 0}, {0, 0, 1, 1}, {1, 0, 0, 1}, {0, 1, 1, 0}, {1, 1, 0, 0},
     ------------------------------------------------------------------------
     {1, 0, 1, 1}, {0, 1, 1, 1}, {1, 1, 0, 1}, {1, 1, 1, 0}}

o7 : List
i8 : prune homology C

o8 = 0 : cokernel | x_2x_3 x_0x_3 x_1x_2 x_0x_1 |

     1 : 0                                       

          1
     2 : S                                       

o8 : GradedModule
i9 : T' = taylorResolution{x_0*x_1,x_0*x_2,x_0*x_3};
i10 : C' = scarfChainComplex{x_0*x_1,x_0*x_2,x_0*x_3};
i11 : T'.dd

           1                                3
o11 = 0 : S  <---------------------------- S  : 1
                | x_0x_1 x_0x_2 x_0x_3 |

           3                                       3
      1 : S  <----------------------------------- S  : 2
                {1, 1, 0, 0} | -x_2 -x_3 0    |
                {1, 0, 1, 0} | x_1  0    -x_3 |
                {1, 0, 0, 1} | 0    x_1  x_2  |

           3                             1
      2 : S  <------------------------- S  : 3
                {1, 1, 1, 0} | x_3  |
                {1, 1, 0, 1} | -x_2 |
                {1, 0, 1, 1} | x_1  |

o11 : ChainComplexMap
i12 : C'.dd

           1                                3
o12 = 0 : S  <---------------------------- S  : 1
                | x_0x_1 x_0x_2 x_0x_3 |

           3                                       3
      1 : S  <----------------------------------- S  : 2
                {1, 1, 0, 0} | -x_2 -x_3 0    |
                {1, 0, 1, 0} | x_1  0    -x_3 |
                {1, 0, 0, 1} | 0    x_1  x_2  |

           3                             1
      2 : S  <------------------------- S  : 3
                {1, 1, 1, 0} | x_3  |
                {1, 1, 0, 1} | -x_2 |
                {1, 0, 1, 1} | x_1  |

o12 : ChainComplexMap
i13 : prune homology C'

o13 = 0 : cokernel | x_0x_3 x_0x_2 x_0x_1 |

      1 : 0                                

      2 : 0                                

      3 : 0                                

o13 : GradedModule
i14 : flatten for i to length C list degrees C'_i

o14 = {{0, 0, 0, 0}, {1, 1, 0, 0}, {1, 0, 1, 0}, {1, 0, 0, 1}, {1, 1, 1, 0},
      -----------------------------------------------------------------------
      {1, 1, 0, 1}, {1, 0, 1, 1}}

o14 : List

See also

Ways to use scarfChainComplex :

For the programmer

The object scarfChainComplex is a method function.