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\}\}.
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
|
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))
|