Macaulay2 » Documentation
Packages » Complexes :: homomorphism(ComplexMap)
next | previous | forward | backward | up | index | toc

homomorphism(ComplexMap) -- get the homomorphism from an element of Hom

Synopsis

Description

As a first example, consider two Koszul complexes $C$ and $D$. From a random map $f : R^1 \to Hom(C, D)$, we construct the corresponding map of chain complexes $g : C \to D$.

i1 : R = ZZ/101[a,b,c]

o1 = R

o1 : PolynomialRing
i2 : C = freeResolution ideal"a,b,c"

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

o2 : Complex
i3 : D = freeResolution ideal"a2,b2,c2"

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

o3 : Complex
i4 : H = Hom(C,D)

      1      6      15      20      15      6      1
o4 = R  <-- R  <-- R   <-- R   <-- R   <-- R  <-- R
                                                   
     -3     -2     -1      0       1       2      3

o4 : Complex
i5 : f = randomComplexMap(H, complex R^{-2})

          20                                             1
o5 = 0 : R   <----------------------------------------- R  : 0
                {0} | 24a2-36ab-29b2-30ac+19bc+19c2 |
                {1} | -10a-29b-8c                   |
                {1} | -22a-29b-24c                  |
                {1} | -38a-16b+39c                  |
                {1} | 21a+34b+19c                   |
                {1} | -47a-39b-18c                  |
                {1} | -13a-43b-15c                  |
                {1} | -28a-47b+38c                  |
                {1} | 2a+16b+22c                    |
                {1} | 45a-34b-48c                   |
                {2} | -47                           |
                {2} | 47                            |
                {2} | 19                            |
                {2} | -16                           |
                {2} | 7                             |
                {2} | 15                            |
                {2} | -23                           |
                {2} | 39                            |
                {2} | 43                            |
                {3} | 0                             |

o5 : ComplexMap
i6 : isWellDefined f

o6 = true
i7 : g = homomorphism f

          1                                         1
o7 = 0 : R  <------------------------------------- R  : 0
               | 24a2-36ab-29b2-30ac+19bc+19c2 |

          3                                                      3
     1 : R  <-------------------------------------------------- R  : 1
               {2} | -10a-29b-8c  21a+34b+19c  -28a-47b+38c |
               {2} | -22a-29b-24c -47a-39b-18c 2a+16b+22c   |
               {2} | -38a-16b+39c -13a-43b-15c 45a-34b-48c  |

          3                           3
     2 : R  <----------------------- R  : 2
               {4} | -47 -16 -23 |
               {4} | 47  7   39  |
               {4} | 19  15  43  |

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

o7 : ComplexMap
i8 : isWellDefined g

o8 = true
i9 : assert not isCommutative g

The map $g : C \to D$ corresponding to a random map into $Hom(C,D)$ does not generally commute with the differentials. However, if the element of $Hom(C,D)$ is a cycle, then the corresponding map does commute.

i10 : f = randomComplexMap(H, complex R^{-2}, Cycle => true)

           20                               1
o10 = 0 : R   <--------------------------- R  : 0
                 {0} | -17a2-11b2+48c2 |
                 {1} | -17a            |
                 {1} | -11a            |
                 {1} | 48a             |
                 {1} | -17b            |
                 {1} | -11b            |
                 {1} | 48b             |
                 {1} | -17c            |
                 {1} | -11c            |
                 {1} | 48c             |
                 {2} | 0               |
                 {2} | 0               |
                 {2} | 0               |
                 {2} | 0               |
                 {2} | 0               |
                 {2} | 0               |
                 {2} | 0               |
                 {2} | 0               |
                 {2} | 0               |
                 {3} | 0               |

o10 : ComplexMap
i11 : isWellDefined f

o11 = true
i12 : g = homomorphism f

           1                           1
o12 = 0 : R  <----------------------- R  : 0
                | -17a2-11b2+48c2 |

           3                              3
      1 : R  <-------------------------- R  : 1
                {2} | -17a -17b -17c |
                {2} | -11a -11b -11c |
                {2} | 48a  48b  48c  |

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

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

o12 : ComplexMap
i13 : isWellDefined g

o13 = true
i14 : assert isCommutative g
i15 : assert(degree g === 0)
i16 : assert(source g === C)
i17 : assert(target g === D)
i18 : assert(homomorphism' g == f)

A homomorphism of non-zero degree can be encoded in (at least) two ways.

i19 : f1 = randomComplexMap(H, complex R^1, Degree => -2)

            6                                              1
o19 = -2 : R  <------------------------------------------ R  : 0
                 {-2} | 36a2+35ab-38b2+11ac+33bc+40c2 |
                 {-2} | 11a2+46ab+b2-28ac-3bc+22c2    |
                 {-2} | -47a2-23ab+2b2-7ac+29bc-47c2  |
                 {-1} | 15a-37b-13c                   |
                 {-1} | -10a+30b-18c                  |
                 {-1} | 39a+27b-22c                   |

o19 : ComplexMap
i20 : f2 = map(target f1, (source f1)[2], i -> f1_(i+2))

            6                                              1
o20 = -2 : R  <------------------------------------------ R  : -2
                 {-2} | 36a2+35ab-38b2+11ac+33bc+40c2 |
                 {-2} | 11a2+46ab+b2-28ac-3bc+22c2    |
                 {-2} | -47a2-23ab+2b2-7ac+29bc-47c2  |
                 {-1} | 15a-37b-13c                   |
                 {-1} | -10a+30b-18c                  |
                 {-1} | 39a+27b-22c                   |

o20 : ComplexMap
i21 : assert isWellDefined f2
i22 : g1 = homomorphism f1

                     1
o22 = -2 : 0 <----- R  : 0
                0

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

           1                                                                                                 3
      0 : R  <--------------------------------------------------------------------------------------------- R  : 2
                | 36a2+35ab-38b2+11ac+33bc+40c2 11a2+46ab+b2-28ac-3bc+22c2 -47a2-23ab+2b2-7ac+29bc-47c2 |

           3                            1
      1 : R  <------------------------ R  : 3
                {2} | 15a-37b-13c  |
                {2} | -10a+30b-18c |
                {2} | 39a+27b-22c  |

o22 : ComplexMap
i23 : g2 = homomorphism f2

                     1
o23 = -2 : 0 <----- R  : 0
                0

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

           1                                                                                                 3
      0 : R  <--------------------------------------------------------------------------------------------- R  : 2
                | 36a2+35ab-38b2+11ac+33bc+40c2 11a2+46ab+b2-28ac-3bc+22c2 -47a2-23ab+2b2-7ac+29bc-47c2 |

           3                            1
      1 : R  <------------------------ R  : 3
                {2} | 15a-37b-13c  |
                {2} | -10a+30b-18c |
                {2} | 39a+27b-22c  |

o23 : ComplexMap
i24 : assert(g1 == g2)
i25 : assert isWellDefined g1
i26 : assert isWellDefined g2
i27 : homomorphism' g1 == f1

o27 = true
i28 : homomorphism' g2 == f1

o28 = true

See also

Ways to use this method: