next | previous | forward | backward | up | top | index | toc | Macaulay2 website
Complexes :: connectingMap(ComplexMap,ComplexMap)

connectingMap(ComplexMap,ComplexMap) -- construct the connecting homomorphism on homology

Synopsis

Description

Given a short exact sequence of chain complexes

$\phantom{WWWW} 0 \leftarrow C \xleftarrow{g} B \xleftarrow{f} A \leftarrow 0, $

this function returns the unique morphism $h \colon H(C) \to H(A)[-1]$ of complexes that naturally fits into the long exact sequence

$\phantom{WWWW} \dotsb \leftarrow H(C)[-1] \xleftarrow{H(g)[-1]} H(B)[-1] \xleftarrow{H(f)[-1]} H(A)[-1] \xleftarrow{h} H(C) \xleftarrow{H(g)} H(B) \xleftarrow{H(f)} H(A) \leftarrow \dotsb. $

$\phantom{WWWW}$

As a first example, consider a free resolution $F$ of $S/I$. Applying the Hom functor $\operatorname{Hom}(F, -)$ to a short exact sequence of modules

$\phantom{WWWW} 0 \leftarrow S/h \leftarrow S \xleftarrow{h} S(- \deg h) \leftarrow 0 $

gives rise to a short exact sequence of complexes. The corresponding long exact sequence in homology has the form

$\phantom{WWWW} \dotsb \leftarrow \operatorname{Ext}^{d+1}(S/I, S(-\deg h)) \xleftarrow{\delta} \operatorname{Ext}^d(S/I, S/h) \leftarrow \operatorname{Ext}^d(S/I, S) \leftarrow \operatorname{Ext}^d(S/I, S(-\deg h)) \leftarrow \dotsb. $

i1 : S = ZZ/101[a..d, Degrees=>{2:{1,0},2:{0,1}}];
i2 : h = a*c^2 + a*c*d + b*d^2;
i3 : I = (ideal(a,b) * ideal(c,d))^[2]

             2 2   2 2   2 2   2 2
o3 = ideal (a c , a d , b c , b d )

o3 : Ideal of S
i4 : F = freeResolution comodule I;
i5 : g = Hom(F, map(S^1/h, S^1, 1))

                                                                 1
o5 = -3 : cokernel {-4, -4} | ac2+acd+bd2 | <------------------ S  : -3
                                               {-4, -4} | 1 |

                                                                                                           4
     -2 : cokernel {-4, -2} | ac2+acd+bd2 0           0           0           | <------------------------ S  : -2
                   {-4, -2} | 0           ac2+acd+bd2 0           0           |    {-4, -2} | 1 0 0 0 |
                   {-2, -4} | 0           0           ac2+acd+bd2 0           |    {-4, -2} | 0 1 0 0 |
                   {-2, -4} | 0           0           0           ac2+acd+bd2 |    {-2, -4} | 0 0 1 0 |
                                                                                   {-2, -4} | 0 0 0 1 |

                                                                                                           4
     -1 : cokernel {-2, -2} | ac2+acd+bd2 0           0           0           | <------------------------ S  : -1
                   {-2, -2} | 0           ac2+acd+bd2 0           0           |    {-2, -2} | 1 0 0 0 |
                   {-2, -2} | 0           0           ac2+acd+bd2 0           |    {-2, -2} | 0 1 0 0 |
                   {-2, -2} | 0           0           0           ac2+acd+bd2 |    {-2, -2} | 0 0 1 0 |
                                                                                   {-2, -2} | 0 0 0 1 |

                                              1
     0 : cokernel | ac2+acd+bd2 | <--------- S  : 0
                                     | 1 |

o5 : ComplexMap
i6 : f = Hom(F, map(S^1, S^{-degree h}, {{h}}))

           1                                1
o6 = -3 : S  <---------------------------- S  : -3
                {-4, -4} | ac2+acd+bd2 |

           4                                                                    4
     -2 : S  <---------------------------------------------------------------- S  : -2
                {-4, -2} | ac2+acd+bd2 0           0           0           |
                {-4, -2} | 0           ac2+acd+bd2 0           0           |
                {-2, -4} | 0           0           ac2+acd+bd2 0           |
                {-2, -4} | 0           0           0           ac2+acd+bd2 |

           4                                                                    4
     -1 : S  <---------------------------------------------------------------- S  : -1
                {-2, -2} | ac2+acd+bd2 0           0           0           |
                {-2, -2} | 0           ac2+acd+bd2 0           0           |
                {-2, -2} | 0           0           ac2+acd+bd2 0           |
                {-2, -2} | 0           0           0           ac2+acd+bd2 |

          1                       1
     0 : S  <------------------- S  : 0
               | ac2+acd+bd2 |

o6 : ComplexMap
i7 : assert isWellDefined g
i8 : assert isWellDefined f
i9 : assert isShortExactSequence(g, f)
i10 : delta = connectingMap(g, f)

o10 = -2 : cokernel {-3, -2} | d2 -c2 -b2 a2 | <-------------------------------------- subquotient ({-4, -2} | c2 ac+bd -bc   b2 0   a2  0  ab    0  0           |, {-4, -2} | -b2 a2  0   0  ac2+acd+bd2 0           0           0           |) : -2
                                                  {-3, -2} | 0 -d c 0 0 0 0 -a 0 0 |                {-4, -2} | d2 -ad   ac+ad 0  b2  0   a2 0     0  0           |  {-4, -2} | 0   0   -b2 a2 0           ac2+acd+bd2 0           0           |
                                                                                                    {-2, -4} | 0  0     0     d2 -c2 0   0  0     a2 ac2+acd+bd2 |  {-2, -4} | -d2 0   c2  0  0           0           ac2+acd+bd2 0           |
                                                                                                    {-2, -4} | 0  0     0     0  0   -d2 c2 c2+cd b2 0           |  {-2, -4} | 0   -d2 0   c2 0           0           0           ac2+acd+bd2 |

      -1 : subquotient ({-3, 0}  | c2 b2 0   a2  0  0  |, {-3, 0}  | -b2 a2  0   0  |) <----------------------------------------------- subquotient ({-2, -2} | ac2+acd+bd2 0           0           0           -a2cd-abd2 a3c+a2bd -a2bc     acd3+bd4   c2d4            |, {-2, -2} | -a2cd-abd2 ac2+acd+bd2 0           0           0           |) : -1
                        {-3, 0}  | d2 0  b2  0   a2 0  |  {-3, 0}  | 0   0   -b2 a2 |     {-3, 2} | 0 0 0 0 0 0 0  -ab -ac2-acd+bd2 |                {-2, -2} | 0           ac2+acd+bd2 0           0           b2c2       ab2c+b3d -b3c      bc4+bc3d   c6+2c5d+c4d2    |  {-2, -2} | b2c2       0           ac2+acd+bd2 0           0           |
                        {-1, -2} | 0  d2 -c2 0   0  a2 |  {-1, -2} | -d2 0   c2  0  |     {-1, 0} | 0 0 0 0 0 0 0  0   0            |                {-2, -2} | 0           0           ac2+acd+bd2 0           a2d2       -a3d     a3c+a3d   -ad4       d6              |  {-2, -2} | a2d2       0           0           ac2+acd+bd2 0           |
                        {-1, -2} | 0  0  0   -d2 c2 b2 |  {-1, -2} | 0   -d2 0   c2 |     {-1, 0} | 0 0 0 0 0 0 0  0   0            |                {-2, -2} | 0           0           0           ac2+acd+bd2 b2d2       -ab2d    ab2c+ab2d bc2d2+bcd3 c4d2+2c3d3+c2d4 |  {-2, -2} | b2d2       0           0           0           ac2+acd+bd2 |
                                                                                          {-1, 0} | 0 0 0 0 0 0 0  0   0            |
                                                                                          {-1, 0} | 0 0 0 0 0 0 0  0   0            |
                                                                                          {1, -2} | 0 0 0 0 0 d -c 0   0            |

o10 : ComplexMap
i11 : assert isWellDefined delta
i12 : assert(degree delta == 0)
i13 : assert(source delta_(-1) == Ext^1(comodule I, S^1/h))
i14 : assert(target delta_(-1) == Ext^2(comodule I, S^{{-1,-2}}))
i15 : L = longExactSequence(g,f)

o15 = cokernel {-4, -4} | d2 -c2 -b2 a2 ac2+acd+bd2 | <-- cokernel {-4, -4} | d2 -c2 -b2 a2 | <-- cokernel {-3, -2} | d2 -c2 -b2 a2 | <-- subquotient ({-4, -2} | c2 ac+bd -bc   b2 0   a2  0  ab    0  0           |, {-4, -2} | -b2 a2  0   0  ac2+acd+bd2 0           0           0           |) <-- subquotient ({-4, -2} | c2 b2 0   a2  0  0  |, {-4, -2} | -b2 a2  0   0  |) <-- subquotient ({-3, 0}  | c2 b2 0   a2  0  0  |, {-3, 0}  | -b2 a2  0   0  |) <-- subquotient ({-2, -2} | ac2+acd+bd2 0           0           0           -a2cd-abd2 a3c+a2bd -a2bc     acd3+bd4   c2d4            |, {-2, -2} | -a2cd-abd2 ac2+acd+bd2 0           0           0           |) <-- subquotient ({-2, -2} | a2c2 |, {-2, -2} | a2c2 |) <-- subquotient ({-1, 0} | a2c2 |, {-1, 0} | a2c2 |) <-- subquotient (| ac2+acd+bd2 |, | ac2+acd+bd2 |) <-- image 0 <-- image 0 <-- 0
                                                                                                                                                       {-4, -2} | d2 -ad   ac+ad 0  b2  0   a2 0     0  0           |  {-4, -2} | 0   0   -b2 a2 0           ac2+acd+bd2 0           0           |                   {-4, -2} | d2 0  b2  0   a2 0  |  {-4, -2} | 0   0   -b2 a2 |                   {-3, 0}  | d2 0  b2  0   a2 0  |  {-3, 0}  | 0   0   -b2 a2 |                   {-2, -2} | 0           ac2+acd+bd2 0           0           b2c2       ab2c+b3d -b3c      bc4+bc3d   c6+2c5d+c4d2    |  {-2, -2} | b2c2       0           ac2+acd+bd2 0           0           |                   {-2, -2} | b2c2 |  {-2, -2} | b2c2 |                   {-1, 0} | b2c2 |  {-1, 0} | b2c2 |                                                                                  
      -9                                                  -8                                      -7                                                   {-2, -4} | 0  0     0     d2 -c2 0   0  0     a2 ac2+acd+bd2 |  {-2, -4} | -d2 0   c2  0  0           0           ac2+acd+bd2 0           |                   {-2, -4} | 0  d2 -c2 0   0  a2 |  {-2, -4} | -d2 0   c2  0  |                   {-1, -2} | 0  d2 -c2 0   0  a2 |  {-1, -2} | -d2 0   c2  0  |                   {-2, -2} | 0           0           ac2+acd+bd2 0           a2d2       -a3d     a3c+a3d   -ad4       d6              |  {-2, -2} | a2d2       0           0           ac2+acd+bd2 0           |                   {-2, -2} | a2d2 |  {-2, -2} | a2d2 |                   {-1, 0} | a2d2 |  {-1, 0} | a2d2 |      0                                                  1           2           3
                                                                                                                                                       {-2, -4} | 0  0     0     0  0   -d2 c2 c2+cd b2 0           |  {-2, -4} | 0   -d2 0   c2 0           0           0           ac2+acd+bd2 |                   {-2, -4} | 0  0  0   -d2 c2 b2 |  {-2, -4} | 0   -d2 0   c2 |                   {-1, -2} | 0  0  0   -d2 c2 b2 |  {-1, -2} | 0   -d2 0   c2 |                   {-2, -2} | 0           0           0           ac2+acd+bd2 b2d2       -ab2d    ab2c+ab2d bc2d2+bcd3 c4d2+2c3d3+c2d4 |  {-2, -2} | b2d2       0           0           0           ac2+acd+bd2 |                   {-2, -2} | b2d2 |  {-2, -2} | b2d2 |                   {-1, 0} | b2d2 |  {-1, 0} | b2d2 |
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
                                                                                                                                          -6                                                                                                                                                            -5                                                                              -4                                                                              -3                                                                                                                                                                                                               -2                                                     -1

o15 : Complex
i16 : assert isWellDefined L
i17 : assert(HH L == 0)
i18 : assert(dd^L_-9 === delta_-3)
i19 : assert(dd^L_-8 === HH_-3 g)
i20 : assert(dd^L_-7 === HH_-3 f)
i21 : assert(dd^L_-6 === delta_-2)
i22 : assert(dd^L_-5 === HH_-2 g)
i23 : assert(dd^L_-4 === HH_-2 f)
i24 : assert(dd^L_-3 === delta_-1)

Applying the Hom functor $\operatorname{Hom}(-, S)$ to the horseshoe resolution of a short exact sequence of modules

$\phantom{WWWW} 0 \leftarrow S/(I+J) \leftarrow S/I \oplus S/J \leftarrow S/I \cap J \leftarrow 0 $

gives rise to a short exact sequence of complexes. The corresponding long exact sequence in homology has the form

$\phantom{WWWW} \dotsb \leftarrow \operatorname{Ext}^{d+1}(S/(I+J), S) \xleftarrow{\delta} \operatorname{Ext}^d(S/I \cap J, S) \leftarrow \operatorname{Ext}^d(S/I \oplus S/J, S) \leftarrow \operatorname{Ext}^d(S/(I+J), S) \leftarrow \dotsb. $

i25 : S = ZZ/101[a..d];
i26 : I = ideal(c^3-b*d^2, b*c-a*d)

              3      2
o26 = ideal (c  - b*d , b*c - a*d)

o26 : Ideal of S
i27 : J = ideal(a*c^2-b^2*d, b^3-a^2*c)

                2    2    3    2
o27 = ideal (a*c  - b d, b  - a c)

o27 : Ideal of S
i28 : ses = complex{
          map(S^1/(I+J), S^1/I ++ S^1/J, {{1,1}}),
          map(S^1/I ++ S^1/J, S^1/intersect(I,J), {{1},{-1}})
          }

o28 = cokernel | c3-bd2 bc-ad ac2-b2d b3-a2c | <-- cokernel | c3-bd2 bc-ad 0       0      | <-- cokernel | ac2d-b2d2 ac3-b2cd abc2-a2cd b3c-ab2d |
                                                            | 0      0     ac2-b2d b3-a2c |      
      0                                                                                         2
                                                   1

o28 : Complex
i29 : assert isWellDefined ses
i30 : assert(HH ses == 0)
i31 : (g,f) = horseshoeResolution ses

            1               2                           2
o31 = (0 : S  <----------- S  : 0                , 0 : S 
                 | 0 1 |                                 
                                                         
            4                               8
       1 : S  <--------------------------- S  : 1       8
                 {2} | 0 0 0 0 1 0 0 0 |           1 : S 
                 {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 |                 
                                                         
            4                             7              
       2 : S  <------------------------- S  : 2          
                 {4} | 0 0 0 1 0 0 0 |                   
                 {4} | 0 0 0 0 1 0 0 |                   
                 {4} | 0 0 0 0 0 1 0 |
                 {4} | 0 0 0 0 0 0 1 |                  7
                                                   2 : S 
            1                 1                          
       3 : S  <------------- S  : 3                      
                 {5} | 1 |                               
                                                         
                                                         
                                                         
                                                         
      -----------------------------------------------------------------------
                  1
      <--------- S  : 0          )
         | 1 |
         | 0 |

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

                          3
      <----------------- S  : 2
         {5} | 1 0 0 |
         {5} | 0 1 0 |
         {6} | 0 0 1 |
         {4} | 0 0 0 |
         {4} | 0 0 0 |
         {4} | 0 0 0 |
         {4} | 0 0 0 |

o31 : Sequence
i32 : assert isShortExactSequence(g,f)
i33 : (Hf, Hg) = (Hom(f, S), Hom(g, S));
i34 : assert isShortExactSequence(Hf, Hg)
i35 : delta = connectingMap(Hf, Hg)

o35 = -2 : cokernel {-5} | d -c -b a | <------------------ cokernel {-5} | d   -c b  -a | : -2
                                          {-5} | 1 0 0 |            {-5} | 0   0  -d c  |
                                                                    {-6} | -ac b2 0  0  |

o35 : ComplexMap
i36 : assert isWellDefined delta
i37 : assert isComplexMorphism delta
i38 : assert(source delta_-2 == Ext^2(comodule intersect(I,J), S))
i39 : assert(target delta_-2 == Ext^3(comodule (I+J), S))
i40 : L = longExactSequence(Hf, Hg)

o40 = 0  <-- cokernel {-5} | -1 0 0 d -c -b a | <-- cokernel {-5} | d -c -b a | <-- cokernel {-5} | d   -c b  -a | <-- subquotient ({-5} | 0 0 d c  b  a |, {-5} | d   -c b  -a 0   0 0  0 |) <-- subquotient ({-4} | c b 0  a  0 0 |, {-4} | -b2 c a  0 |) <-- subquotient ({-4} | b3c-ab2d  |, {-4} | b3c-ab2d  |) <-- subquotient ({-4} | b3c-ab2d  0       |, {-4} | b3c-ab2d  0       |) <-- subquotient ({-2} | bc-ad   |, {-2} | bc-ad   |) <-- image 0 <-- image 0 <-- image 0 <-- 0
                                                                                             {-5} | 0   0  -d c  |                  {-5} | 0 1 0 0  0  0 |  {-5} | 0   0  -d c  0   0 0  0 |                   {-4} | d 0 b  0  a 0 |  {-4} | -ac d b  0 |                   {-4} | abc2-a2cd |  {-4} | abc2-a2cd |                   {-4} | abc2-a2cd 0       |  {-4} | abc2-a2cd 0       |                   {-3} | b3-a2c  |  {-3} | b3-a2c  |                                           
      -6     -5                                     -4                                       {-6} | -ac b2 0  0  |                  {-6} | 1 0 0 0  0  0 |  {-6} | -ac b2 0  0  0   0 0  0 |                   {-4} | 0 d -c 0  0 a |  {-4} | -bd 0 -c a |                   {-4} | ac3-b2cd  |  {-4} | ac3-b2cd  |                   {-4} | ac3-b2cd  0       |  {-4} | ac3-b2cd  0       |                   {-3} | ac2-b2d |  {-3} | ac2-b2d |      3           4           5           6
                                                                                                                                    {-4} | 0 0 1 0  0  0 |  {-4} | 1   0  0  0  -b2 c a  0 |                   {-4} | 0 0 0  -d c b |  {-4} | -c2 0 -d b |                   {-4} | ac2d-b2d2 |  {-4} | ac2d-b2d2 |                   {-4} | ac2d-b2d2 0       |  {-4} | ac2d-b2d2 0       |                   {-3} | c3-bd2  |  {-3} | c3-bd2  |
                                                                                    -3                                              {-4} | 0 0 0 -1 0  0 |  {-4} | 0   1  0  0  -ac d b  0 |                                                                                                                                          {-2} | bc-ad     bc-ad   |  {-2} | 0         bc-ad   |       
                                                                                                                                    {-4} | 0 0 0 0  -1 0 |  {-4} | 0   0  -1 0  -bd 0 -c a |      -1                                                            0                                                                     {-3} | 0         b3-a2c  |  {-3} | -b3+a2c   b3-a2c  |      2
                                                                                                                                    {-4} | 0 0 0 0  0  1 |  {-4} | 0   0  0  -1 -c2 0 -d b |                                                                                                                                          {-3} | 0         ac2-b2d |  {-3} | -ac2+b2d  ac2-b2d |
                                                                                                                                                                                                                                                                                                                                      {-3} | c3-bd2    c3-bd2  |  {-3} | 0         c3-bd2  |
                                                                                                                       -2                                                                                                                                                                                                 
                                                                                                                                                                                                                                                                                                                         1

o40 : Complex
i41 : assert isWellDefined L
i42 : assert(HH L == 0)
i43 : assert(dd^L_-6 === delta_-3)
i44 : assert(dd^L_-5 === HH_-3 Hf)
i45 : assert(dd^L_-4 === HH_-3 Hg)
i46 : assert(dd^L_-3 === delta_-2)
i47 : assert(dd^L_-2 === HH_-2 Hf)
i48 : assert(dd^L_-1 === HH_-2 Hg)
i49 : assert(dd^L_0 === delta_-1)

See also