This function first computes the exterior inclusion map on the complex C up to degree d using the exteriorInclusion function. Then it constructs the induced map on the cokernel of this exterior inclusion map, which is the surjection to the second symmetric power of C. Finally, it computes the long exact sequence of homology using the longExactSequence function on the pruned maps of the induced maps.
This long exact sequence is only interesting in characteristic 2, since the above sequence is split whenever 2 is a unit, so there are no interesting connecting homomorphisms. Let's see some examples in characteristic 2 of the connecting homomorphisms:
i1 : Q = ZZ/2[a,b]
o1 = Q
o1 : PolynomialRing
|
i2 : K = koszulComplex vars Q
1 2 1
o2 = Q <-- Q <-- Q
0 1 2
o2 : Complex
|
i3 : prune tensorLES(K,4)
o3 = cokernel | b a | <-- cokernel | b a | <-- 0 <-- 0 <-- cokernel {1} | b a 0 0 | <-- cokernel {1} | a 0 b | <-- cokernel {2} | b a | <-- cokernel {2} | b a | <-- cokernel {2} | b a |
{1} | 0 0 b a | {1} | 0 b a |
0 1 2 3 6 7 8
4 5
o3 : Complex
|
i4 : oo.dd_6 --nontrivial connecting homomorphism
o4 = {1} | b |
{1} | 0 |
o4 : Matrix
|
i5 : F = freeResolution( (ideal vars Q)^3)
1 4 3
o5 = Q <-- Q <-- Q
0 1 2
o5 : Complex
|
i6 : prune tensorLES(F,4)
o6 = cokernel | b3 ab2 a2b a3 | <-- cokernel | b3 ab2 a2b a3 | <-- 0 <-- 0 <-- cokernel {3} | b 0 0 b3 ab2 a2b a3 0 0 0 | <-- cokernel {3} | b 0 0 ab2 a3 0 0 | <-- cokernel {6} | b a 0 0 0 0 0 0 0 0 0 0 | <-- cokernel {6} | b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | <-- cokernel {6} | b a 0 0 0 0 0 0 0 0 0 0 |
{3} | a b 0 0 0 0 0 b3 0 0 | {3} | a b 0 0 0 b3 0 | {6} | 0 0 b a 0 0 0 0 0 0 0 0 | {6} | 0 0 b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {6} | 0 0 b a 0 0 0 0 0 0 0 0 |
0 1 2 3 {3} | 0 a b 0 0 0 0 0 b3 0 | {3} | 0 a b 0 0 0 0 | {6} | 0 0 0 0 b a 0 0 0 0 0 0 | {6} | 0 0 0 0 b a 0 0 0 0 0 0 0 0 0 0 0 0 | {6} | 0 0 0 0 b a 0 0 0 0 0 0 |
{3} | 0 0 a 0 0 0 0 0 0 b3 | {3} | 0 0 a 0 0 0 b3 | {6} | 0 0 0 0 0 0 b a 0 0 0 0 | {6} | 0 0 0 0 0 0 b a 0 0 0 0 0 0 0 0 0 0 | {6} | 0 0 0 0 0 0 b a 0 0 0 0 |
{6} | 0 0 0 0 0 0 0 0 b a 0 0 | {6} | 0 0 0 0 0 0 0 0 b a 0 0 0 0 0 0 0 0 | {6} | 0 0 0 0 0 0 0 0 b a 0 0 |
4 5 {6} | 0 0 0 0 0 0 0 0 0 0 b a | {6} | 0 0 0 0 0 0 0 0 0 0 b a 0 0 0 0 0 0 | {6} | 0 0 0 0 0 0 0 0 0 0 b a |
{6} | 0 0 0 0 0 0 0 0 0 0 0 0 b a 0 0 0 0 |
6 {6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 b a 0 0 | 8
{6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 b a |
7
o6 : Complex
|
i7 : L = complex {K.dd_1, map(source K.dd_1,target K.dd_2 ,K.dd_2*K.dd_1), K.dd_2}
1 2 2 1
o7 = Q <-- Q <-- Q <-- Q
0 1 2 3
o7 : Complex
|
i8 : hL = elapsedTime prune tensorLES(L,4)
-- 1.931s elapsed
25 50 25
o8 = cokernel | b a | <-- cokernel | b a | <-- 0 <-- 0 <-- cokernel | a 0 b | <-- cokernel | a 0 b | <-- cokernel | b a 0 0 | <-- cokernel | b a 0 0 0 0 0 0 | <-- cokernel | 0 0 b a 0 0 0 0 | <-- cokernel | ab2 a2b b2 a2 | <-- cokernel | a2 b2 ab | <-- cokernel | ab2 a2b b2 a2 | <-- Q <-- Q <-- Q
| 0 b a | | 0 b a | | 0 0 b a | | 0 0 b a 0 0 0 0 | | 0 0 0 0 b a 0 0 |
0 1 2 3 | 0 0 0 0 b a 0 0 | | ab2 a2b 0 0 0 0 b2 a2 | 9 10 11 12 13 14
4 5 6 | 0 0 0 0 0 0 b a |
8
7
o8 : Complex
|
i9 : netList {hL.dd_3, hL.dd_6, hL.dd_9, hL.dd_12, hL.dd_15} --two nontrivial connecting homs
+------------------------------------------------------+
o9 = |0 |
+------------------------------------------------------+
|0 |
+------------------------------------------------------+
|| 0 | |
|| 0 | |
|| 1 | |
+------------------------------------------------------+
|| 0 0 0 0 0 0 0 0 ab 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ||
+------------------------------------------------------+
|0 |
+------------------------------------------------------+
|