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

dual(ComplexMap) -- the dual of a map of complexes

Synopsis

Description

The map $f : C \to D$ of chain complexes over the ring $S$ induces the map $h = Hom(f, S^1) : Hom(D, S^1) \to Hom(C,S^1)$ defined by $\phi \mapsto \phi f$.

i1 : S = ZZ/101[a..c]

o1 = S

o1 : PolynomialRing
i2 : C = freeResolution coker vars S

      1      3      3      1
o2 = S  <-- S  <-- S  <-- S
                           
     0      1      2      3

o2 : Complex
i3 : D = (freeResolution coker matrix{{a^2,a*b,b^3}})[-1]

      1      3      2
o3 = S  <-- S  <-- S
                    
     1      2      3

o3 : Complex
i4 : f = randomComplexMap(D,C)

                   1
o4 = 0 : 0 <----- S  : 0
              0

          1                                                3
     1 : S  <-------------------------------------------- S  : 1
               | 24a-36b-30c -29a+19b+19c -10a-29b-8c |

          3                           3
     2 : S  <----------------------- S  : 2
               {2} | -22 -24 -16 |
               {2} | -29 -38 39  |
               {3} | 0   0   0   |

          2                  1
     3 : S  <-------------- S  : 3
               {3} | 21 |
               {4} | 0  |

o4 : ComplexMap
i5 : h = dual f

           1                     2
o5 = -3 : S  <----------------- S  : -3
                {-3} | 21 0 |

           3                          3
     -2 : S  <---------------------- S  : -2
                {-2} | -22 -29 0 |
                {-2} | -24 -38 0 |
                {-2} | -16 39  0 |

           3                             1
     -1 : S  <------------------------- S  : -1
                {-1} | 24a-36b-30c  |
                {-1} | -29a+19b+19c |
                {-1} | -10a-29b-8c  |

o5 : ComplexMap
i6 : assert isWellDefined h
i7 : assert(h == Hom(f, S^1))
i8 : assert(source h == Hom(D,S^1))
i9 : assert(target h == Hom(C,S^1))

This routine is functorial.

i10 : D' = (freeResolution coker matrix{{a^2,a*b,c^3}})[-1]

       1      3      3      1
o10 = S  <-- S  <-- S  <-- S
                            
      1      2      3      4

o10 : Complex
i11 : f' = randomComplexMap(D', D)

           1              1
o11 = 1 : S  <---------- S  : 1
                | 34 |

           3                                    3
      2 : S  <-------------------------------- S  : 2
                {2} | 19  -39 -13a-43b-15c |
                {2} | -47 -18 -28a-47b+38c |
                {3} | 0   0   2            |

           3                              2
      3 : S  <-------------------------- S  : 3
                {3} | 16 22a+45b-34c |
                {5} | 0  0           |
                {5} | 0  0           |

o11 : ComplexMap
i12 : dual(f' * f) == dual f * dual f'

o12 = true

See also