next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
CompleteIntersectionResolutions :: layeredResolution

layeredResolution -- layered finite and infinite layered resolutions of CM modules

Synopsis

Description

The resolutions computed are those described in the paper "Layered Resolutions of Cohen-Macaulay modules" by Eisenbud and Peeva. They are both minimal when M is a suffiently high syzygy of a module N. Here is an example computing 5 terms of an infinite resolution:

i1 : S = ZZ/101[a,b,c]

o1 = S

o1 : PolynomialRing
i2 : ff = matrix"a3, b3, c3"

o2 = | a3 b3 c3 |

             1       3
o2 : Matrix S  <--- S
i3 : R = S/ideal ff

o3 = R

o3 : QuotientRing
i4 : M = syzygyModule(2,coker vars R)

o4 = cokernel {2} | a  0 -c2 0   b2 0 0   0  0  0 |
              {2} | -b 0 0   -c2 0  0 0   a2 0  0 |
              {2} | c  0 0   0   0  0 -b2 0  a2 0 |
              {3} | 0  c b   a   0  0 0   0  0  0 |
              {3} | 0  0 0   0   c  b a   0  0  0 |
              {3} | 0  0 0   0   0  0 0   c  b  a |

                            6
o4 : R-module, quotient of R
i5 : (FF, aug) = layeredResolution(ff,M,5)

       6      10      15      21      28      36
o5 = (R  <-- R   <-- R   <-- R   <-- R   <-- R  , {2} | 0 0 0 1 0  0 |)
                                                  {2} | 0 1 0 0 0  0 |
      0      1       2       3       4       5    {2} | 0 0 1 0 0  0 |
                                                  {3} | 0 0 0 0 0  1 |
                                                  {3} | 0 0 0 0 -1 0 |
                                                  {3} | 1 0 0 0 0  0 |

o5 : Sequence
i6 : betti FF

            0  1  2  3  4  5
o6 = total: 6 10 15 21 28 36
         2: 3  1  .  .  .  .
         3: 3  9  9  3  .  .
         4: .  .  6 18 18  6
         5: .  .  .  . 10 30

o6 : BettiTally
i7 : betti res(M, LengthLimit=>5)

            0  1  2  3  4  5
o7 = total: 6 10 15 21 28 36
         2: 3  1  .  .  .  .
         3: 3  9  9  3  .  .
         4: .  .  6 18 18  6
         5: .  .  .  . 10 30

o7 : BettiTally
i8 : C = chainComplex flatten {{aug} |apply(4, i-> FF.dd_(i+1))}

                                                         6      10      15      21      28
o8 = cokernel {2} | a  0 -c2 0   b2 0 0   0  0  0 | <-- R  <-- R   <-- R   <-- R   <-- R
              {2} | -b 0 0   -c2 0  0 0   a2 0  0 |                                     
              {2} | c  0 0   0   0  0 -b2 0  a2 0 |     1      2       3       4       5
              {3} | 0  c b   a   0  0 0   0  0  0 |
              {3} | 0  0 0   0   c  b a   0  0  0 |
              {3} | 0  0 0   0   0  0 0   c  b  a |
      
     0

o8 : ChainComplex
i9 : apply(5, j-> prune HH_j C == 0)

o9 = {true, true, true, true, true}

o9 : List

And one computing the whole finite resolution:

i10 : MS = pushForward(map(R,S), M);
i11 : (GG, aug) = layeredResolution(ff,MS)

        6      13      10      3
o11 = (S  <-- S   <-- S   <-- S , {2} | 0 0 0 1 0  0 |)
                                  {2} | 0 1 0 0 0  0 |
       0      1       2       3   {2} | 0 0 1 0 0  0 |
                                  {3} | 0 0 0 0 0  1 |
                                  {3} | 0 0 0 0 -1 0 |
                                  {3} | 1 0 0 0 0  0 |

o11 : Sequence
i12 : betti GG

             0  1  2 3
o12 = total: 6 13 10 3
          2: 3  1  . .
          3: 3  9  . .
          4: .  .  . .
          5: .  3  9 .
          6: .  .  . .
          7: .  .  1 3

o12 : BettiTally
i13 : betti res MS

             0  1  2 3
o13 = total: 6 13 10 3
          2: 3  1  . .
          3: 3  9  . .
          4: .  .  . .
          5: .  3  9 .
          6: .  .  . .
          7: .  .  1 3

o13 : BettiTally
i14 : C = chainComplex flatten {{aug} |apply(length GG -1, i-> GG.dd_(i+1))}

                                                                               6      13      10
o14 = cokernel {2} | 0 0 a  0 c2 0  b2 0  0  0  0  0  0  0  0  0  0  0  | <-- S  <-- S   <-- S
               {2} | 0 0 -b 0 0  c2 0  0  a2 0  0  0  0  b3 0  0  0  0  |                     
               {2} | 0 0 c  0 0  0  0  b2 0  a2 c3 0  0  0  0  0  0  0  |     1      2       3
               {3} | c 0 0  0 -b -a 0  0  0  0  0  0  0  0  b3 0  a3 0  |
               {3} | 0 b 0  0 0  0  c  -a 0  0  0  c3 0  0  0  0  0  a3 |
               {3} | 0 0 0  a 0  0  0  0  c  b  0  0  c3 0  0  b3 0  0  |
       
      0

o14 : ChainComplex
i15 : apply(length GG +1 , j-> prune HH_j C == 0)

o15 = {true, true, true, false}

o15 : List

Ways to use layeredResolution :