# cylinder -- make the mapping cylinder of a morphism of chain complexes

## Synopsis

• Usage:
cylinder f
• Inputs:
• f, , which is a morphism of complexes
• Outputs:
• ,

## Description

Given a morphism $f : B \to C$, the mapping cylinder is the complex whose the $i$-th term is $B_{i-1} \oplus B_i \oplus C_i$ and whose $i$-th differential is given in block form by matrix \{\{ - dd^B_{i-1}, 0, 0 \}, \{ -id_{B_{i-1}}, dd^B_i, 0 \}, \{ f_{i-1}, 0, dd^C_i\}\}. Alternatively, the cylinder is the mapping cone of the morphism $g : B \to B \oplus C$ given in block form by matrix\{\{-id_B\}, \{f\}\}.

A map between modules induces a map between their free resolutions, and we compute the associated mapping cylinder.

 i1 : S = ZZ/32003[x,y,z]; i2 : M = ideal vars S o2 = ideal (x, y, z) o2 : Ideal of S i3 : B = freeResolution(S^1/M^2) 1 6 8 3 o3 = S <-- S <-- S <-- S 0 1 2 3 o3 : Complex i4 : C = freeResolution(S^1/M) 1 3 3 1 o4 = S <-- S <-- S <-- S 0 1 2 3 o4 : Complex i5 : f = extend(C,B,id_(S^1)) 1 1 o5 = 0 : S <--------- S : 0 | 1 | 3 6 1 : S <----------------------- S : 1 {1} | x y 0 0 0 0 | {1} | 0 0 y 0 0 0 | {1} | 0 0 0 x y z | 3 8 2 : S <--------------------------- S : 2 {2} | 0 y 0 0 0 0 0 0 | {2} | 0 0 x y 0 0 0 0 | {2} | 0 0 0 0 0 y 0 0 | 1 3 3 : S <----------------- S : 3 {3} | 0 y 0 | o5 : ComplexMap i6 : cylf = cylinder f 2 10 17 12 3 o6 = S <-- S <-- S <-- S <-- S 0 1 2 3 4 o6 : Complex i7 : dd^cylf 2 10 o7 = 0 : S <---------------------------------- S : 1 | -1 x2 xy y2 xz yz z2 0 0 0 | | 1 0 0 0 0 0 0 x y z | 10 17 1 : S <-------------------------------------------------------------------- S : 2 {0} | -x2 -xy -y2 -xz -yz -z2 0 0 0 0 0 0 0 0 0 0 0 | {2} | -1 0 0 0 0 0 -y 0 -z 0 0 0 0 0 0 0 0 | {2} | 0 -1 0 0 0 0 x -y 0 -z 0 0 0 0 0 0 0 | {2} | 0 0 -1 0 0 0 0 x 0 0 0 -z 0 0 0 0 0 | {2} | 0 0 0 -1 0 0 0 0 x y -y 0 -z 0 0 0 0 | {2} | 0 0 0 0 -1 0 0 0 0 0 x y 0 -z 0 0 0 | {2} | 0 0 0 0 0 -1 0 0 0 0 0 0 x y 0 0 0 | {1} | x y 0 0 0 0 0 0 0 0 0 0 0 0 -y -z 0 | {1} | 0 0 y 0 0 0 0 0 0 0 0 0 0 0 x 0 -z | {1} | 0 0 0 x y z 0 0 0 0 0 0 0 0 0 x y | 17 12 2 : S <----------------------------------------------- S : 3 {2} | y 0 z 0 0 0 0 0 0 0 0 0 | {2} | -x y 0 z 0 0 0 0 0 0 0 0 | {2} | 0 -x 0 0 0 z 0 0 0 0 0 0 | {2} | 0 0 -x -y y 0 z 0 0 0 0 0 | {2} | 0 0 0 0 -x -y 0 z 0 0 0 0 | {2} | 0 0 0 0 0 0 -x -y 0 0 0 0 | {3} | -1 0 0 0 0 0 0 0 z 0 0 0 | {3} | 0 -1 0 0 0 0 0 0 0 z 0 0 | {3} | 0 0 -1 0 0 0 0 0 -y 0 0 0 | {3} | 0 0 0 -1 0 0 0 0 x -y 0 0 | {3} | 0 0 0 0 -1 0 0 0 0 -y z 0 | {3} | 0 0 0 0 0 -1 0 0 0 x 0 0 | {3} | 0 0 0 0 0 0 -1 0 0 0 -y 0 | {3} | 0 0 0 0 0 0 0 -1 0 0 x 0 | {2} | 0 y 0 0 0 0 0 0 0 0 0 z | {2} | 0 0 x y 0 0 0 0 0 0 0 -y | {2} | 0 0 0 0 0 y 0 0 0 0 0 x | 12 3 3 : S <-------------------- S : 4 {3} | -z 0 0 | {3} | 0 -z 0 | {3} | y 0 0 | {3} | -x y 0 | {3} | 0 y -z | {3} | 0 -x 0 | {3} | 0 0 y | {3} | 0 0 -x | {4} | -1 0 0 | {4} | 0 -1 0 | {4} | 0 0 -1 | {3} | 0 y 0 | o7 : ComplexMap i8 : assert isWellDefined cylf

The mapping cylinder fits into a canonical short exact sequence of chain complexes, $$0 \to B \to cyl(f) \to cone(f) \to 0.$$

 i9 : Cf = cone f 1 4 9 9 3 o9 = S <-- S <-- S <-- S <-- S 0 1 2 3 4 o9 : Complex i10 : g = canonicalMap(cylf, B) 2 1 o10 = 0 : S <--------- S : 0 | 1 | | 0 | 10 6 1 : S <----------------------- S : 1 {0} | 0 0 0 0 0 0 | {2} | 1 0 0 0 0 0 | {2} | 0 1 0 0 0 0 | {2} | 0 0 1 0 0 0 | {2} | 0 0 0 1 0 0 | {2} | 0 0 0 0 1 0 | {2} | 0 0 0 0 0 1 | {1} | 0 0 0 0 0 0 | {1} | 0 0 0 0 0 0 | {1} | 0 0 0 0 0 0 | 17 8 2 : S <--------------------------- S : 2 {2} | 0 0 0 0 0 0 0 0 | {2} | 0 0 0 0 0 0 0 0 | {2} | 0 0 0 0 0 0 0 0 | {2} | 0 0 0 0 0 0 0 0 | {2} | 0 0 0 0 0 0 0 0 | {2} | 0 0 0 0 0 0 0 0 | {3} | 1 0 0 0 0 0 0 0 | {3} | 0 1 0 0 0 0 0 0 | {3} | 0 0 1 0 0 0 0 0 | {3} | 0 0 0 1 0 0 0 0 | {3} | 0 0 0 0 1 0 0 0 | {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 | {2} | 0 0 0 0 0 0 0 0 | {2} | 0 0 0 0 0 0 0 0 | {2} | 0 0 0 0 0 0 0 0 | 12 3 3 : S <----------------- S : 3 {3} | 0 0 0 | {3} | 0 0 0 | {3} | 0 0 0 | {3} | 0 0 0 | {3} | 0 0 0 | {3} | 0 0 0 | {3} | 0 0 0 | {3} | 0 0 0 | {4} | 1 0 0 | {4} | 0 1 0 | {4} | 0 0 1 | {3} | 0 0 0 | o10 : ComplexMap i11 : h = canonicalMap(Cf, cylf) 1 2 o11 = 0 : S <----------- S : 0 | 0 1 | 4 10 1 : S <------------------------------- S : 1 {0} | 1 0 0 0 0 0 0 0 0 0 | {1} | 0 0 0 0 0 0 0 1 0 0 | {1} | 0 0 0 0 0 0 0 0 1 0 | {1} | 0 0 0 0 0 0 0 0 0 1 | 9 17 2 : S <--------------------------------------------- S : 2 {2} | 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {2} | 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {2} | 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {2} | 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 | {2} | 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 | {2} | 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 | {2} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 | {2} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 | {2} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 | 9 12 3 : S <----------------------------------- S : 3 {3} | 1 0 0 0 0 0 0 0 0 0 0 0 | {3} | 0 1 0 0 0 0 0 0 0 0 0 0 | {3} | 0 0 1 0 0 0 0 0 0 0 0 0 | {3} | 0 0 0 1 0 0 0 0 0 0 0 0 | {3} | 0 0 0 0 1 0 0 0 0 0 0 0 | {3} | 0 0 0 0 0 1 0 0 0 0 0 0 | {3} | 0 0 0 0 0 0 1 0 0 0 0 0 | {3} | 0 0 0 0 0 0 0 1 0 0 0 0 | {3} | 0 0 0 0 0 0 0 0 0 0 0 1 | 3 3 4 : S <----------------- S : 4 {4} | 1 0 0 | {4} | 0 1 0 | {4} | 0 0 1 | o11 : ComplexMap i12 : assert(isWellDefined g and isWellDefined h) i13 : assert(isShortExactSequence(h,g))

The alternative interpretation of the cylinder, defined above, can be demonstrated as follows.

 i14 : g = map(B ++ C, B, {{-id_B},{f}}) 2 1 o14 = 0 : S <---------- S : 0 | -1 | | 1 | 9 6 1 : S <----------------------------- S : 1 {2} | -1 0 0 0 0 0 | {2} | 0 -1 0 0 0 0 | {2} | 0 0 -1 0 0 0 | {2} | 0 0 0 -1 0 0 | {2} | 0 0 0 0 -1 0 | {2} | 0 0 0 0 0 -1 | {1} | x y 0 0 0 0 | {1} | 0 0 y 0 0 0 | {1} | 0 0 0 x y z | 11 8 2 : S <----------------------------------- S : 2 {3} | -1 0 0 0 0 0 0 0 | {3} | 0 -1 0 0 0 0 0 0 | {3} | 0 0 -1 0 0 0 0 0 | {3} | 0 0 0 -1 0 0 0 0 | {3} | 0 0 0 0 -1 0 0 0 | {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 | {2} | 0 y 0 0 0 0 0 0 | {2} | 0 0 x y 0 0 0 0 | {2} | 0 0 0 0 0 y 0 0 | 4 3 3 : S <-------------------- S : 3 {4} | -1 0 0 | {4} | 0 -1 0 | {4} | 0 0 -1 | {3} | 0 y 0 | o14 : ComplexMap i15 : cone g == cylf o15 = true