next | previous | forward | backward | up | top | index | toc | Macaulay2 website
Complexes :: cylinder

cylinder -- make the mapping cylinder of a morphism of chain complexes

Synopsis

Description

Given a morphism $f : B \to C$, the mapping cylinder is the complex whose the $i$-th term is $B_{i-1} \oplus B_i \oplus C_i$ and whose $i$-th differential is given in block form by matrix \{\{ - dd^B_{i-1}, 0, 0 \}, \{ -id_{B_{i-1}}, dd^B_i, 0 \}, \{ f_{i-1}, 0, dd^C_i\}\}. Alternatively, the cylinder is the mapping cone of the morphism $g : B \to B \oplus C$ given in block form by matrix\{\{-id_B\}, \{f\}\}.

A map between modules induces a map between their free resolutions, and we compute the associated mapping cylinder.

i1 : S = ZZ/32003[x,y,z];
i2 : M = ideal vars S

o2 = ideal (x, y, z)

o2 : Ideal of S
i3 : B = freeResolution(S^1/M^2)

      1      6      8      3
o3 = S  <-- S  <-- S  <-- S
                           
     0      1      2      3

o3 : Complex
i4 : C = freeResolution(S^1/M)

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

o4 : Complex
i5 : f = extend(C,B,id_(S^1))

          1             1
o5 = 0 : S  <--------- S  : 0
               | 1 |

          3                           6
     1 : S  <----------------------- S  : 1
               {1} | x y 0 0 0 0 |
               {1} | 0 0 y 0 0 0 |
               {1} | 0 0 0 x y z |

          3                               8
     2 : S  <--------------------------- S  : 2
               {2} | 0 y 0 0 0 0 0 0 |
               {2} | 0 0 x y 0 0 0 0 |
               {2} | 0 0 0 0 0 y 0 0 |

          1                     3
     3 : S  <----------------- S  : 3
               {3} | 0 y 0 |

o5 : ComplexMap
i6 : cylf = cylinder f

      2      10      17      12      3
o6 = S  <-- S   <-- S   <-- S   <-- S
                                     
     0      1       2       3       4

o6 : Complex
i7 : dd^cylf

          2                                      10
o7 = 0 : S  <---------------------------------- S   : 1
               | -1 x2 xy y2 xz yz z2 0 0 0 |
               | 1  0  0  0  0  0  0  x y z |

          10                                                                        17
     1 : S   <-------------------------------------------------------------------- S   : 2
                {0} | -x2 -xy -y2 -xz -yz -z2 0  0  0  0  0  0  0  0  0  0  0  |
                {2} | -1  0   0   0   0   0   -y 0  -z 0  0  0  0  0  0  0  0  |
                {2} | 0   -1  0   0   0   0   x  -y 0  -z 0  0  0  0  0  0  0  |
                {2} | 0   0   -1  0   0   0   0  x  0  0  0  -z 0  0  0  0  0  |
                {2} | 0   0   0   -1  0   0   0  0  x  y  -y 0  -z 0  0  0  0  |
                {2} | 0   0   0   0   -1  0   0  0  0  0  x  y  0  -z 0  0  0  |
                {2} | 0   0   0   0   0   -1  0  0  0  0  0  0  x  y  0  0  0  |
                {1} | x   y   0   0   0   0   0  0  0  0  0  0  0  0  -y -z 0  |
                {1} | 0   0   y   0   0   0   0  0  0  0  0  0  0  0  x  0  -z |
                {1} | 0   0   0   x   y   z   0  0  0  0  0  0  0  0  0  x  y  |

          17                                                   12
     2 : S   <----------------------------------------------- S   : 3
                {2} | y  0  z  0  0  0  0  0  0  0  0  0  |
                {2} | -x y  0  z  0  0  0  0  0  0  0  0  |
                {2} | 0  -x 0  0  0  z  0  0  0  0  0  0  |
                {2} | 0  0  -x -y y  0  z  0  0  0  0  0  |
                {2} | 0  0  0  0  -x -y 0  z  0  0  0  0  |
                {2} | 0  0  0  0  0  0  -x -y 0  0  0  0  |
                {3} | -1 0  0  0  0  0  0  0  z  0  0  0  |
                {3} | 0  -1 0  0  0  0  0  0  0  z  0  0  |
                {3} | 0  0  -1 0  0  0  0  0  -y 0  0  0  |
                {3} | 0  0  0  -1 0  0  0  0  x  -y 0  0  |
                {3} | 0  0  0  0  -1 0  0  0  0  -y z  0  |
                {3} | 0  0  0  0  0  -1 0  0  0  x  0  0  |
                {3} | 0  0  0  0  0  0  -1 0  0  0  -y 0  |
                {3} | 0  0  0  0  0  0  0  -1 0  0  x  0  |
                {2} | 0  y  0  0  0  0  0  0  0  0  0  z  |
                {2} | 0  0  x  y  0  0  0  0  0  0  0  -y |
                {2} | 0  0  0  0  0  y  0  0  0  0  0  x  |

          12                        3
     3 : S   <-------------------- S  : 4
                {3} | -z 0  0  |
                {3} | 0  -z 0  |
                {3} | y  0  0  |
                {3} | -x y  0  |
                {3} | 0  y  -z |
                {3} | 0  -x 0  |
                {3} | 0  0  y  |
                {3} | 0  0  -x |
                {4} | -1 0  0  |
                {4} | 0  -1 0  |
                {4} | 0  0  -1 |
                {3} | 0  y  0  |

o7 : ComplexMap
i8 : assert isWellDefined cylf

The mapping cylinder fits into a canonical short exact sequence of chain complexes, $$0 \to B \to cyl(f) \to cone(f) \to 0.$$

i9 : Cf = cone f

      1      4      9      9      3
o9 = S  <-- S  <-- S  <-- S  <-- S
                                  
     0      1      2      3      4

o9 : Complex
i10 : g = canonicalMap(cylf, B)

           2             1
o10 = 0 : S  <--------- S  : 0
                | 1 |
                | 0 |

           10                           6
      1 : S   <----------------------- S  : 1
                 {0} | 0 0 0 0 0 0 |
                 {2} | 1 0 0 0 0 0 |
                 {2} | 0 1 0 0 0 0 |
                 {2} | 0 0 1 0 0 0 |
                 {2} | 0 0 0 1 0 0 |
                 {2} | 0 0 0 0 1 0 |
                 {2} | 0 0 0 0 0 1 |
                 {1} | 0 0 0 0 0 0 |
                 {1} | 0 0 0 0 0 0 |
                 {1} | 0 0 0 0 0 0 |

           17                               8
      2 : S   <--------------------------- S  : 2
                 {2} | 0 0 0 0 0 0 0 0 |
                 {2} | 0 0 0 0 0 0 0 0 |
                 {2} | 0 0 0 0 0 0 0 0 |
                 {2} | 0 0 0 0 0 0 0 0 |
                 {2} | 0 0 0 0 0 0 0 0 |
                 {2} | 0 0 0 0 0 0 0 0 |
                 {3} | 1 0 0 0 0 0 0 0 |
                 {3} | 0 1 0 0 0 0 0 0 |
                 {3} | 0 0 1 0 0 0 0 0 |
                 {3} | 0 0 0 1 0 0 0 0 |
                 {3} | 0 0 0 0 1 0 0 0 |
                 {3} | 0 0 0 0 0 1 0 0 |
                 {3} | 0 0 0 0 0 0 1 0 |
                 {3} | 0 0 0 0 0 0 0 1 |
                 {2} | 0 0 0 0 0 0 0 0 |
                 {2} | 0 0 0 0 0 0 0 0 |
                 {2} | 0 0 0 0 0 0 0 0 |

           12                     3
      3 : S   <----------------- S  : 3
                 {3} | 0 0 0 |
                 {3} | 0 0 0 |
                 {3} | 0 0 0 |
                 {3} | 0 0 0 |
                 {3} | 0 0 0 |
                 {3} | 0 0 0 |
                 {3} | 0 0 0 |
                 {3} | 0 0 0 |
                 {4} | 1 0 0 |
                 {4} | 0 1 0 |
                 {4} | 0 0 1 |
                 {3} | 0 0 0 |

o10 : ComplexMap
i11 : h = canonicalMap(Cf, cylf)

           1               2
o11 = 0 : S  <----------- S  : 0
                | 0 1 |

           4                                   10
      1 : S  <------------------------------- S   : 1
                {0} | 1 0 0 0 0 0 0 0 0 0 |
                {1} | 0 0 0 0 0 0 0 1 0 0 |
                {1} | 0 0 0 0 0 0 0 0 1 0 |
                {1} | 0 0 0 0 0 0 0 0 0 1 |

           9                                                 17
      2 : S  <--------------------------------------------- S   : 2
                {2} | 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
                {2} | 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
                {2} | 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
                {2} | 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 |
                {2} | 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 |
                {2} | 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 |
                {2} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 |
                {2} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 |
                {2} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 |

           9                                       12
      3 : S  <----------------------------------- S   : 3
                {3} | 1 0 0 0 0 0 0 0 0 0 0 0 |
                {3} | 0 1 0 0 0 0 0 0 0 0 0 0 |
                {3} | 0 0 1 0 0 0 0 0 0 0 0 0 |
                {3} | 0 0 0 1 0 0 0 0 0 0 0 0 |
                {3} | 0 0 0 0 1 0 0 0 0 0 0 0 |
                {3} | 0 0 0 0 0 1 0 0 0 0 0 0 |
                {3} | 0 0 0 0 0 0 1 0 0 0 0 0 |
                {3} | 0 0 0 0 0 0 0 1 0 0 0 0 |
                {3} | 0 0 0 0 0 0 0 0 0 0 0 1 |

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

o11 : ComplexMap
i12 : assert(isWellDefined g and isWellDefined h)
i13 : assert(isShortExactSequence(h,g))

The alternative interpretation of the cylinder, defined above, can be demonstrated as follows.

i14 : g = map(B ++ C, B, {{-id_B},{f}})

           2              1
o14 = 0 : S  <---------- S  : 0
                | -1 |
                | 1  |

           9                                 6
      1 : S  <----------------------------- S  : 1
                {2} | -1 0  0  0  0  0  |
                {2} | 0  -1 0  0  0  0  |
                {2} | 0  0  -1 0  0  0  |
                {2} | 0  0  0  -1 0  0  |
                {2} | 0  0  0  0  -1 0  |
                {2} | 0  0  0  0  0  -1 |
                {1} | x  y  0  0  0  0  |
                {1} | 0  0  y  0  0  0  |
                {1} | 0  0  0  x  y  z  |

           11                                       8
      2 : S   <----------------------------------- S  : 2
                 {3} | -1 0  0  0  0  0  0  0  |
                 {3} | 0  -1 0  0  0  0  0  0  |
                 {3} | 0  0  -1 0  0  0  0  0  |
                 {3} | 0  0  0  -1 0  0  0  0  |
                 {3} | 0  0  0  0  -1 0  0  0  |
                 {3} | 0  0  0  0  0  -1 0  0  |
                 {3} | 0  0  0  0  0  0  -1 0  |
                 {3} | 0  0  0  0  0  0  0  -1 |
                 {2} | 0  y  0  0  0  0  0  0  |
                 {2} | 0  0  x  y  0  0  0  0  |
                 {2} | 0  0  0  0  0  y  0  0  |

           4                        3
      3 : S  <-------------------- S  : 3
                {4} | -1 0  0  |
                {4} | 0  -1 0  |
                {4} | 0  0  -1 |
                {3} | 0  y  0  |

o14 : ComplexMap
i15 : cone g == cylf

o15 = true

See also

Ways to use cylinder :

For the programmer

The object cylinder is a method function.