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

isShortExactSequence(ComplexMap,ComplexMap) -- whether a pair of complex maps forms a short exact sequence

Synopsis

Description

A short exact sequence of complexes \[ 0 \to B \xrightarrow{f} C \xrightarrow{g} D \to 0\] consists of two morphisms of complexes $f \colon B \to C$ and $g \colon C \to D$ such that $g f = 0$, $\operatorname{image} f = \operatorname{ker} g$, $\operatorname{ker} f = 0$, and $\operatorname{coker} g = 0$.

From a complex morphism $h \colon B \to C$, one obtains a short exact sequence \[ 0 \to \operatorname{image} h \to C \to \operatorname{coker} h \to 0. \]

i1 : R = ZZ/101[a,b,c];
i2 : B = freeResolution coker matrix{{a^2*b, a*b*c, c^3}}

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

o2 : Complex
i3 : C = freeResolution coker vars R

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

o3 : Complex
i4 : h = randomComplexMap(C, B, Cycle => true)

          1               1
o4 = 0 : R  <----------- R  : 0
               | -47 |

          3                                                                                              3
     1 : R  <------------------------------------------------------------------------------------------ R  : 1
               {1} | 35ab+10b2+8ac-50bc+29c2  34ab+19b2-43ac+39bc-28c2 39ab+18b2-2ac-3bc-22c2       |
               {1} | 19a2-10ab-29ac+24bc+38c2 -34a2-19ab-9ac-34bc-48c2 -39a2-18ab-13ac+47bc-38c2    |
               {1} | -8a2-22ab-24b2-29ac-38bc 43a2+24ab+34b2+28ac+48bc 2a2+16ab-47b2+22ac+38bc-47c2 |

          3                                                                                           2
     2 : R  <--------------------------------------------------------------------------------------- R  : 2
               {2} | -34a2-19ab-44ac+15bc+2c2     -39a2b-18ab2+24a2c-49abc+18b2c+4ac2-47c3       |
               {2} | 43a2+40ab-5b2+36ac+49bc+29c2 -22a2b-49ab2-18b3-49abc+19b2c-43ac2-15bc2-28c3 |
               {2} | -16a2+39ab+21ac+24bc+38c2    24a3-36a2b-29ab2-30a2c+19abc+45ac2-34bc2-48c3  |

o4 : ComplexMap
i5 : f = canonicalMap(C, image h)

          1
o5 = 0 : R  <----------- image | -47 | : 0
               | -47 |

          3
     1 : R  <------------------------------------------------------------------------------------------ image {1} | 35ab+10b2+8ac-50bc+29c2  34ab+19b2-43ac+39bc-28c2 39ab+18b2-2ac-3bc-22c2       | : 1
               {1} | 35ab+10b2+8ac-50bc+29c2  34ab+19b2-43ac+39bc-28c2 39ab+18b2-2ac-3bc-22c2       |         {1} | 19a2-10ab-29ac+24bc+38c2 -34a2-19ab-9ac-34bc-48c2 -39a2-18ab-13ac+47bc-38c2    |
               {1} | 19a2-10ab-29ac+24bc+38c2 -34a2-19ab-9ac-34bc-48c2 -39a2-18ab-13ac+47bc-38c2    |         {1} | -8a2-22ab-24b2-29ac-38bc 43a2+24ab+34b2+28ac+48bc 2a2+16ab-47b2+22ac+38bc-47c2 |
               {1} | -8a2-22ab-24b2-29ac-38bc 43a2+24ab+34b2+28ac+48bc 2a2+16ab-47b2+22ac+38bc-47c2 |

          3
     2 : R  <--------------------------------------------------------------------------------------- image {2} | -34a2-19ab-44ac+15bc+2c2     -39a2b-18ab2+24a2c-49abc+18b2c+4ac2-47c3       | : 2
               {2} | -34a2-19ab-44ac+15bc+2c2     -39a2b-18ab2+24a2c-49abc+18b2c+4ac2-47c3       |         {2} | 43a2+40ab-5b2+36ac+49bc+29c2 -22a2b-49ab2-18b3-49abc+19b2c-43ac2-15bc2-28c3 |
               {2} | 43a2+40ab-5b2+36ac+49bc+29c2 -22a2b-49ab2-18b3-49abc+19b2c-43ac2-15bc2-28c3 |         {2} | -16a2+39ab+21ac+24bc+38c2    24a3-36a2b-29ab2-30a2c+19abc+45ac2-34bc2-48c3  |
               {2} | -16a2+39ab+21ac+24bc+38c2    24a3-36a2b-29ab2-30a2c+19abc+45ac2-34bc2-48c3  |

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

o5 : ComplexMap
i6 : g = canonicalMap(coker h, C)

                                  1
o6 = 0 : cokernel | -47 | <----- R  : 0
                             0

                                                                                                                             3
     1 : cokernel {1} | 35ab+10b2+8ac-50bc+29c2  34ab+19b2-43ac+39bc-28c2 39ab+18b2-2ac-3bc-22c2       | <----------------- R  : 1
                  {1} | 19a2-10ab-29ac+24bc+38c2 -34a2-19ab-9ac-34bc-48c2 -39a2-18ab-13ac+47bc-38c2    |    {1} | 1 0 0 |
                  {1} | -8a2-22ab-24b2-29ac-38bc 43a2+24ab+34b2+28ac+48bc 2a2+16ab-47b2+22ac+38bc-47c2 |    {1} | 0 1 0 |
                                                                                                            {1} | 0 0 1 |

                                                                                                                          3
     2 : cokernel {2} | -34a2-19ab-44ac+15bc+2c2     -39a2b-18ab2+24a2c-49abc+18b2c+4ac2-47c3       | <----------------- R  : 2
                  {2} | 43a2+40ab-5b2+36ac+49bc+29c2 -22a2b-49ab2-18b3-49abc+19b2c-43ac2-15bc2-28c3 |    {2} | 1 0 0 |
                  {2} | -16a2+39ab+21ac+24bc+38c2    24a3-36a2b-29ab2-30a2c+19abc+45ac2-34bc2-48c3  |    {2} | 0 1 0 |
                                                                                                         {2} | 0 0 1 |

          1                 1
     3 : R  <------------- R  : 3
               {3} | 1 |

o6 : ComplexMap
i7 : assert isShortExactSequence(g,f)

A short exact sequence of modules gives rise to a short exact sequence of complexes. These complexes arise as free resolutions of the modules.

i8 : I = ideal(a^3, b^3, c^3)

             3   3   3
o8 = ideal (a , b , c )

o8 : Ideal of R
i9 : J = I + ideal(a*b*c)

             3   3   3
o9 = ideal (a , b , c , a*b*c)

o9 : Ideal of R
i10 : K = I : ideal(a*b*c)

              2   2   2
o10 = ideal (c , b , a )

o10 : Ideal of R
i11 : SES = complex{
          map(comodule J, comodule I, 1),
          map(comodule I, (comodule K) ** R^{-3}, {{a*b*c}})
          }

o11 = cokernel | a3 b3 c3 abc | <-- cokernel | a3 b3 c3 | <-- cokernel {3} | c2 b2 a2 |
                                                               
      0                             1                         2

o11 : Complex
i12 : assert isWellDefined SES
i13 : assert isShortExactSequence(dd^SES_1, dd^SES_2)
i14 : (g,f) = horseshoeResolution SES

            1               2                             2
o14 = (0 : R  <----------- R  : 0                  , 0 : R 
                 | 0 1 |                                   
                                                           
            4                             7
       1 : R  <------------------------- R  : 1           7
                 {3} | 0 0 0 1 0 0 0 |               1 : R 
                 {3} | 0 0 0 0 1 0 0 |                     
                 {3} | 0 0 0 0 0 1 0 |                     
                 {3} | 0 0 0 0 0 0 1 |                     
                                                           
            6                                 9            
       2 : R  <----------------------------- R  : 2        
                 {5} | 0 0 0 1 0 0 0 0 0 |                 
                 {5} | 0 0 0 0 1 0 0 0 0 |
                 {5} | 0 0 0 0 0 1 0 0 0 |                9
                 {6} | 0 0 0 0 0 0 1 0 0 |           2 : R 
                 {6} | 0 0 0 0 0 0 0 1 0 |                 
                 {6} | 0 0 0 0 0 0 0 0 1 |                 
                                                           
            3                       4                      
       3 : R  <------------------- R  : 3                  
                 {7} | 0 1 0 0 |                           
                 {7} | 0 0 1 0 |                           
                 {7} | 0 0 0 1 |                           
                                                           

                                                          4
                                                     3 : R 
                                                           
                                                           
                                                           
                                                           
      -----------------------------------------------------------------------
                      1
      <------------- R  : 0    )
         {3} | 1 |
         {0} | 0 |

                          3
      <----------------- R  : 1
         {5} | 1 0 0 |
         {5} | 0 1 0 |
         {5} | 0 0 1 |
         {3} | 0 0 0 |
         {3} | 0 0 0 |
         {3} | 0 0 0 |
         {3} | 0 0 0 |

                          3
      <----------------- R  : 2
         {7} | 1 0 0 |
         {7} | 0 1 0 |
         {7} | 0 0 1 |
         {5} | 0 0 0 |
         {5} | 0 0 0 |
         {5} | 0 0 0 |
         {6} | 0 0 0 |
         {6} | 0 0 0 |
         {6} | 0 0 0 |

                      1
      <------------- R  : 3
         {9} | 1 |
         {7} | 0 |
         {7} | 0 |
         {7} | 0 |

o14 : Sequence
i15 : assert isShortExactSequence(g,f)

See also

Ways to use this method: