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) |