next | previous | forward | backward | up | top | index | toc | Macaulay2 website
Complexes :: part(List,ComplexMap)

part(List,ComplexMap) -- extract a graded component of a map of complexes

Synopsis

Description

If $f$ is a graded (homogeneous) map of complexes over a ring $R$, and $d$ is a degree, this method computes the degree $d$ part of the complex map over the coefficient ring of $R$.

Taking parts of a graded (homogeneous) complex commutes with taking homology.

i1 : kk = ZZ/7

o1 = kk

o1 : QuotientRing
i2 : R = kk[a,b,c,d];
i3 : I = ideal(a*b, a*c, b*c, a*d)

o3 = ideal (a*b, a*c, b*c, a*d)

o3 : Ideal of R
i4 : J = I + ideal(b^3)

                                 3
o4 = ideal (a*b, a*c, b*c, a*d, b )

o4 : Ideal of R
i5 : C = freeResolution I

      1      4      4      1
o5 = R  <-- R  <-- R  <-- R
                           
     0      1      2      3

o5 : Complex
i6 : D = freeResolution ((R^1/J) ** R^{{1}})

      1      5      6      2
o6 = R  <-- R  <-- R  <-- R
                           
     0      1      2      3

o6 : Complex
i7 : f = randomComplexMap(D,C, Cycle=>true)

          1                         1
o7 = 0 : R  <--------------------- R  : 0
               {-1} | 3a-3c+2d |

          5                                                  4
     1 : R  <---------------------------------------------- R  : 1
               {1} | 3a+c-3d -d       -3d       2c+d    |
               {1} | 3b+3d   3a-2b-3c -2b+3d    2b-3d   |
               {1} | 0       2a       -2a-3c+2d 3a      |
               {1} | -2b-3c  b+2c     3b-3c     3a-b+2d |
               {2} | 0       0        0         0       |

          6                                                    4
     2 : R  <------------------------------------------------ R  : 2
               {2} | 3a+c+3d 0            -2b       -2c   |
               {2} | 2b      -2a-2b-3c+2d 3b        3c-2d |
               {2} | b+c     3a-b         3a-b+c-3d -c-d  |
               {2} | 3b+3c   -3a-2b       -b+3d     3a    |
               {3} | 0       0            0         0     |
               {3} | 0       0            0         0     |

          2                       1
     3 : R  <------------------- R  : 3
               {3} | 3a+c+3d |
               {4} | 0       |

o7 : ComplexMap
i8 : g = part(2,f)

           20                                          10
o8 = 0 : kk   <------------------------------------- kk   : 0
                 | 3  0  0  0  0  0  0  0  0  0  |
                 | 0  3  0  0  0  0  0  0  0  0  |
                 | -3 0  3  0  0  0  0  0  0  0  |
                 | 2  0  0  3  0  0  0  0  0  0  |
                 | 0  0  0  0  3  0  0  0  0  0  |
                 | 0  -3 0  0  0  3  0  0  0  0  |
                 | 0  2  0  0  0  0  3  0  0  0  |
                 | 0  0  -3 0  0  0  0  3  0  0  |
                 | 0  0  2  -3 0  0  0  0  3  0  |
                 | 0  0  0  2  0  0  0  0  0  3  |
                 | 0  0  0  0  0  0  0  0  0  0  |
                 | 0  0  0  0  -3 0  0  0  0  0  |
                 | 0  0  0  0  2  0  0  0  0  0  |
                 | 0  0  0  0  0  -3 0  0  0  0  |
                 | 0  0  0  0  0  2  -3 0  0  0  |
                 | 0  0  0  0  0  0  2  0  0  0  |
                 | 0  0  0  0  0  0  0  -3 0  0  |
                 | 0  0  0  0  0  0  0  2  -3 0  |
                 | 0  0  0  0  0  0  0  0  2  -3 |
                 | 0  0  0  0  0  0  0  0  0  2  |

           17                        4
     1 : kk   <------------------- kk  : 1
                 | 3  0  0  0  |
                 | 0  0  0  0  |
                 | 1  0  0  2  |
                 | -3 -1 -3 1  |
                 | 0  3  0  0  |
                 | 3  -2 -2 2  |
                 | 0  -3 0  0  |
                 | 3  0  3  -3 |
                 | 0  2  -2 3  |
                 | 0  0  0  0  |
                 | 0  0  -3 0  |
                 | 0  0  2  0  |
                 | 0  0  0  3  |
                 | -2 1  3  -1 |
                 | -3 2  -3 0  |
                 | 0  0  0  2  |
                 | 0  0  0  0  |

o8 : ComplexMap
i9 : assert(part(2, HH f) ==  prune HH part(2, f))

See also