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

# longExactSequence(ComplexMap,ComplexMap) -- make the long exact sequence in homology

- Function: longExactSequence
- Usage:
    `L = longExactSequence(g, f)`
- Inputs:
  - f, a map of complexes,
  - g, a map of complexes,
- Optional inputs:
  - Concentration => a sequence, default value null, this optional argument is not yet implemented
- Outputs:
  - L, a complex,

## Description

Every short exact sequence of complexes

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

gives rise to a long exact sequence $L$ in homology having the form

$\phantom{WWWW} \dotsb \leftarrow H_{i-1}(C) \xleftarrow{H_{i-1}(g)} H_{i-1}(B) \xleftarrow{H_{i-1}(f)} H_{i-1}(A) \xleftarrow{\delta_i} H_{i}(C) \xleftarrow{H_{i}(g)} H_{i}(B) \xleftarrow{H_{i}(f)} H_{i}(A) \leftarrow \dotsb. $

This method returns the complex $L$ such that, for all integers $i$, we have $L_{3i} = H_i(C)$, $L_{3i+1} = H_i(B)$, and $L_{3i+2} = H_i(A)$. The differentials $\operatorname{dd}^L_{3i}$ are the connecting homomorphisms $\delta_i \colon H_i(C) \to H_{i-1}(A)$. Moreover, we have $\operatorname{dd}^L_{3i+1} = H_{i}(g)$ and $\operatorname{dd}^L_{3i+2} = H_{i}(f)$.

For 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 $L$ 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 : L = longExactSequence(g,f)

    o10 = 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

    o10 : Complex

    i11 : assert isWellDefined L

    i12 : assert(HH L == 0)

We verify that the indexing on $L$ in this example matches the description above.

    i13 : delta = connectingMap(g, f);

    i14 : assert(dd^L_-9 === delta_-3)

    i15 : assert(dd^L_-8 === HH_-3 g)

    i16 : assert(dd^L_-7 === HH_-3 f)

    i17 : assert(dd^L_-6 === delta_-2)

    i18 : assert(dd^L_-5 === HH_-2 g)

    i19 : assert(dd^L_-4 === HH_-2 f)

    i20 : assert(dd^L_-3 === delta_-1)

## See also

- Towards computing in the derived category
- connectingMap -- construct the connecting homomorphism on homology
- isShortExactSequence -- whether a chain complex is a short exact sequence
- homology -- general homology functor

## Ways to use this method:

- longExactSequence(ComplexMap,ComplexMap) -- make the long exact sequence in homology

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/Complexes/ChainComplexMapDoc.m2:3992:0.