next | previous | forward | backward | up | top | index | toc | Macaulay2 website
Complexes :: isShortExactSequence(Complex)

isShortExactSequence(Complex) -- whether a chain complex is a short exact sequence

Synopsis

Description

A short exact sequence of modules is a complex \[ 0 \to L \xrightarrow{f} M \xrightarrow{g} N \to 0\] consisting of two homomorphisms of modules $f \colon L \to M$ and $g \colon M \to N$ such that $g f = 0$, $\operatorname{image} f = \operatorname{ker} g$, $\operatorname{ker} f = 0$, and $\operatorname{coker} g = 0$.

From a homomorphism $h \colon M \to N$, one obtains a short exact sequence \[ 0 \to \operatorname{image} h \to N \to \operatorname{coker} h \to 0. \]

i1 : R = ZZ/101[a,b,c];
i2 : h = random(R^3, R^{4:-1})

o2 = | 24a-36b-30c  -22a-29b-24c -47a-39b-18c 2a+16b+22c   |
     | -29a+19b+19c -38a-16b+39c -13a-43b-15c 45a-34b-48c  |
     | -10a-29b-8c  21a+34b+19c  -28a-47b+38c -47a+47b+19c |

             3       4
o2 : Matrix R  <--- R
i3 : f = inducedMap(target h, image h)

o3 = | 24a-36b-30c  -22a-29b-24c -47a-39b-18c 2a+16b+22c   |
     | -29a+19b+19c -38a-16b+39c -13a-43b-15c 45a-34b-48c  |
     | -10a-29b-8c  21a+34b+19c  -28a-47b+38c -47a+47b+19c |

o3 : Matrix
i4 : g = inducedMap(cokernel h, target h)

o4 = | 1 0 0 |
     | 0 1 0 |
     | 0 0 1 |

o4 : Matrix
i5 : C = complex {g, f}

                                                                           3
o5 = cokernel | 24a-36b-30c  -22a-29b-24c -47a-39b-18c 2a+16b+22c   | <-- R  <-- image | 24a-36b-30c  -22a-29b-24c -47a-39b-18c 2a+16b+22c   |
              | -29a+19b+19c -38a-16b+39c -13a-43b-15c 45a-34b-48c  |                  | -29a+19b+19c -38a-16b+39c -13a-43b-15c 45a-34b-48c  |
              | -10a-29b-8c  21a+34b+19c  -28a-47b+38c -47a+47b+19c |     1            | -10a-29b-8c  21a+34b+19c  -28a-47b+38c -47a+47b+19c |
                                                                                  
     0                                                                           2

o5 : Complex
i6 : isWellDefined C

o6 = true
i7 : assert isShortExactSequence C
i8 : assert isShortExactSequence(C[10])
i9 : assert not isShortExactSequence(C ++ C[6])
i10 : D = complex(R^1, Base=>4) ++ complex(R^1, Base=>2)

       1            1
o10 = R  <-- 0 <-- R
                    
      2      3     4

o10 : Complex
i11 : assert not isShortExactSequence D

See also