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

ComplexMap | ComplexMap -- join or concatenate maps horizontally

Synopsis

Description

Given complex maps with the same target, this method constructs the associated map from the direct sum of the sources to the target.

First, we define some non-trivial maps of chain complexes.

i1 : R = ZZ/101[a..d];
i2 : C1 = (freeResolution coker matrix{{a,b,c}})[1]

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

o2 : Complex
i3 : C2 = freeResolution coker matrix{{a*b,a*c,b*c}}

      1      3      2
o3 = R  <-- R  <-- R
                    
     0      1      2

o3 : Complex
i4 : D = freeResolution coker matrix{{a^2,b^2,c*d}}

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

o4 : Complex
i5 : f = randomComplexMap(D, C1)

                    1
o5 = -1 : 0 <----- R  : -1
               0

          1                                                           3
     0 : R  <------------------------------------------------------- R  : 0
               | 24a-36b-30c-29d 19a+19b-10c-29d -8a-22b-29c-24d |

          3                          3
     1 : R  <---------------------- R  : 1
               {2} | -38 21 -47 |
               {2} | -16 34 -39 |
               {2} | 39  19 -18 |

          3         1
     2 : R  <----- R  : 2
               0

o5 : ComplexMap
i6 : g = randomComplexMap(D, C2)

          1               1
o6 = 0 : R  <----------- R  : 0
               | -13 |

          3                          3
     1 : R  <---------------------- R  : 1
               {2} | -43 -47 16 |
               {2} | -15 38  22 |
               {2} | -28 2   45 |

          3         2
     2 : R  <----- R  : 2
               0

o6 : ComplexMap
i7 : h = f|g

          1                                                               4
o7 = 0 : R  <----------------------------------------------------------- R  : 0
               | 24a-36b-30c-29d 19a+19b-10c-29d -8a-22b-29c-24d -13 |

          3                                     6
     1 : R  <--------------------------------- R  : 1
               {2} | -38 21 -47 -43 -47 16 |
               {2} | -16 34 -39 -15 38  22 |
               {2} | 39  19 -18 -28 2   45 |

o7 : ComplexMap
i8 : assert isWellDefined h
i9 : assert(source h === source f ++ source g)
i10 : assert(target h === target f)

This is really a shorthand for constructing complex maps via block matrices.

i11 : assert(h === map(D, C1 ++ C2, {{f,g}}))

See also