next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
Macaulay2Doc :: nullhomotopy

nullhomotopy -- make a null homotopy

Description

nullhomotopy f -- produce a nullhomotopy for a map f of chain complexes.

Whether f is null homotopic is not checked.

Here is part of an example provided by Luchezar Avramov. We construct a random module over a complete intersection, resolve it over the polynomial ring, and produce a null homotopy for the map that is multiplication by one of the defining equations for the complete intersection.

i1 : A = ZZ/101[x,y];
i2 : M = cokernel random(A^3, A^{-2,-2})

o2 = cokernel | -10x2-46xy-38y2 -41x2+49xy-43y2 |
              | -x2-23xy-37y2   -27x2-23xy+8y2  |
              | -34x2+28xy-15y2 42x2-27xy-32y2  |

                            3
o2 : A-module, quotient of A
i3 : R = cokernel matrix {{x^3,y^4}}

o3 = cokernel | x3 y4 |

                            1
o3 : A-module, quotient of A
i4 : N = prune (M**R)

o4 = cokernel | -8x2+27xy-45y2 -47x2-44xy+47y2 x3 x2y-20xy2+21y3 -35xy2+39y3 y4 0  0  |
              | x2-39xy+39y2   -16xy-6y2       0  21xy2+25y3     -26xy2+18y3 0  y4 0  |
              | -11xy+2y2      x2+50xy+39y2    0  -37y3          xy2+y3      0  0  y4 |

                            3
o4 : A-module, quotient of A
i5 : C = resolution N

      3      8      5
o5 = A  <-- A  <-- A  <-- 0
                           
     0      1      2      3

o5 : ChainComplex
i6 : d = C.dd

          3                                                                                 8
o6 = 0 : A  <----------------------------------------------------------------------------- A  : 1
               | -8x2+27xy-45y2 -47x2-44xy+47y2 x3 x2y-20xy2+21y3 -35xy2+39y3 y4 0  0  |
               | x2-39xy+39y2   -16xy-6y2       0  21xy2+25y3     -26xy2+18y3 0  y4 0  |
               | -11xy+2y2      x2+50xy+39y2    0  -37y3          xy2+y3      0  0  y4 |

          8                                                                             5
     1 : A  <------------------------------------------------------------------------- A  : 2
               {2} | 46xy2-42y3     32xy2+37y3      -46y3     -15y3     20y3       |
               {2} | 20xy2+37y3     45y3            -20y3     3y3       -16y3      |
               {3} | -50xy+39y2     40xy-5y2        50y2      3y2       10y2       |
               {3} | 50x2-47xy+34y2 -40x2-34xy+42y2 -50xy+8y2 -3xy-43y2 -10xy-30y2 |
               {3} | -20x2+26xy     39xy+28y2       20xy+38y2 -3xy-19y2 16xy+27y2  |
               {4} | 0              0               x+48y     20y       17y        |
               {4} | 0              0               -18y      x         -6y        |
               {4} | 0              0               19y       -43y      x-48y      |

          5
     2 : A  <----- 0 : 3
               0

o6 : ChainComplexMap
i7 : s = nullhomotopy (x^3 * id_C)

          8                             3
o7 = 1 : A  <------------------------- A  : 0
               {2} | 0 x+39y 16y   |
               {2} | 0 11y   x-50y |
               {3} | 1 8     47    |
               {3} | 0 -6    44    |
               {3} | 0 -22   11    |
               {4} | 0 0     0     |
               {4} | 0 0     0     |
               {4} | 0 0     0     |

          5                                                                             8
     2 : A  <------------------------------------------------------------------------- A  : 1
               {5} | 9 46 0 -33y     5x+25y   xy+8y2       15xy+45y2  21xy+14y2    |
               {5} | 1 -2 0 -48x+45y -19x+39y -21y2        xy-45y2    26xy-49y2    |
               {5} | 0 0  0 0        0        x2-48xy+45y2 -20xy+27y2 -17xy-19y2   |
               {5} | 0 0  0 0        0        18xy+32y2    x2-y2      6xy-18y2     |
               {5} | 0 0  0 0        0        -19xy-34y2   43xy+20y2  x2+48xy-44y2 |

                   5
     3 : 0 <----- A  : 2
              0

o7 : ChainComplexMap
i8 : s*d + d*s

          3                    3
o8 = 0 : A  <---------------- A  : 0
               | x3 0  0  |
               | 0  x3 0  |
               | 0  0  x3 |

          8                                       8
     1 : A  <----------------------------------- A  : 1
               {2} | x3 0  0  0  0  0  0  0  |
               {2} | 0  x3 0  0  0  0  0  0  |
               {3} | 0  0  x3 0  0  0  0  0  |
               {3} | 0  0  0  x3 0  0  0  0  |
               {3} | 0  0  0  0  x3 0  0  0  |
               {4} | 0  0  0  0  0  x3 0  0  |
               {4} | 0  0  0  0  0  0  x3 0  |
               {4} | 0  0  0  0  0  0  0  x3 |

          5                              5
     2 : A  <-------------------------- A  : 2
               {5} | x3 0  0  0  0  |
               {5} | 0  x3 0  0  0  |
               {5} | 0  0  x3 0  0  |
               {5} | 0  0  0  x3 0  |
               {5} | 0  0  0  0  x3 |

     3 : 0 <----- 0 : 3
              0

o8 : ChainComplexMap
i9 : s^2

          5         3
o9 = 2 : A  <----- A  : 0
               0

                   8
     3 : 0 <----- A  : 1
              0

o9 : ChainComplexMap

Ways to use nullhomotopy :