Let $d$ be the value of the optional argument Degree, or zero, if not given. For each $i$, the terms $D_{i+d}$ and $C_i$ must be subquotients of the same ambient free module. This method returns the complex map induced by the identity on each of these free modules.
If Verify => true is given, then this method also checks that these identity maps induced well-defined maps. This can be a relatively expensive computation.
i1 : needsPackage "Truncations"
o1 = Truncations
o1 : Package
|
i2 : kk = ZZ/32003
o2 = kk
o2 : QuotientRing
|
i3 : R = kk[a,b,c]
o3 = R
o3 : PolynomialRing
|
i4 : F = freeResolution (ideal gens R)^2
1 6 8 3
o4 = R <-- R <-- R <-- R
0 1 2 3
o4 : Complex
|
i5 : C1 = truncate(3, F)
8 3
o5 = image | c3 bc2 ac2 b2c abc a2c b3 ab2 a2b a3 | <-- image {2} | c b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | <-- R <-- R
{2} | 0 0 0 c b a 0 0 0 0 0 0 0 0 0 0 0 0 |
0 {2} | 0 0 0 0 0 0 c b a 0 0 0 0 0 0 0 0 0 | 2 3
{2} | 0 0 0 0 0 0 0 0 0 c b a 0 0 0 0 0 0 |
{2} | 0 0 0 0 0 0 0 0 0 0 0 0 c b a 0 0 0 |
{2} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c b a |
1
o5 : Complex
|
i6 : C2 = truncate(4, F)
3
o6 = image | c4 bc3 ac3 b2c2 abc2 a2c2 b3c ab2c a2bc a3c b4 ab3 a2b2 a3b a4 | <-- image {2} | c2 bc ac b2 ab a2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | <-- image {3} | c b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | <-- R
{2} | 0 0 0 0 0 0 c2 bc ac b2 ab a2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {3} | 0 0 0 c b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
0 {2} | 0 0 0 0 0 0 0 0 0 0 0 0 c2 bc ac b2 ab a2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {3} | 0 0 0 0 0 0 c b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 3
{2} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c2 bc ac b2 ab a2 0 0 0 0 0 0 0 0 0 0 0 0 | {3} | 0 0 0 0 0 0 0 0 0 c b a 0 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 0 0 0 0 0 0 0 0 0 0 c2 bc ac b2 ab a2 0 0 0 0 0 0 | {3} | 0 0 0 0 0 0 0 0 0 0 0 0 c b a 0 0 0 0 0 0 0 0 0 |
{2} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c2 bc ac b2 ab a2 | {3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c b a 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c b a 0 0 0 |
1 {3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c b a |
2
o6 : Complex
|
i7 : assert isWellDefined C1
|
i8 : assert isWellDefined C2
|
i9 : f = inducedMap(C1, C2)
o9 = 0 : image | c3 bc2 ac2 b2c abc a2c b3 ab2 a2b a3 | <----------------------------------------- image | c4 bc3 ac3 b2c2 abc2 a2c2 b3c ab2c a2bc a3c b4 ab3 a2b2 a3b a4 | : 0
{3} | c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{3} | 0 c 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 c 0 0 0 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 c 0 0 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 0 c 0 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 c 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 c 0 0 0 b 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 c 0 0 0 b 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 c 0 0 0 b 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 c 0 0 0 b a |
1 : image {2} | c b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | <----------------------------------------------------------------------------------- image {2} | c2 bc ac b2 ab a2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | : 1
{2} | 0 0 0 c b a 0 0 0 0 0 0 0 0 0 0 0 0 | {3} | c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {2} | 0 0 0 0 0 0 c2 bc ac b2 ab a2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{2} | 0 0 0 0 0 0 c b a 0 0 0 0 0 0 0 0 0 | {3} | 0 c 0 b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {2} | 0 0 0 0 0 0 0 0 0 0 0 0 c2 bc ac b2 ab a2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{2} | 0 0 0 0 0 0 0 0 0 c b a 0 0 0 0 0 0 | {3} | 0 0 c 0 b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 0 0 0 0 c2 bc ac b2 ab a2 0 0 0 0 0 0 0 0 0 0 0 0 |
{2} | 0 0 0 0 0 0 0 0 0 0 0 0 c b a 0 0 0 | {3} | 0 0 0 0 0 0 c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 0 0 0 0 0 0 0 0 0 0 c2 bc ac b2 ab a2 0 0 0 0 0 0 |
{2} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c b a | {3} | 0 0 0 0 0 0 0 c 0 b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c2 bc ac b2 ab a2 |
{3} | 0 0 0 0 0 0 0 0 c 0 b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 0 0 0 c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 c 0 b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c 0 b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c 0 b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c 0 b a 0 0 0 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c 0 0 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c 0 b 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c 0 b a 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c 0 b 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c 0 b a |
8
2 : R <----------------------------------------------------------- image {3} | c b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | : 2
{3} | c b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {3} | 0 0 0 c b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 c b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {3} | 0 0 0 0 0 0 c b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 c b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {3} | 0 0 0 0 0 0 0 0 0 c b a 0 0 0 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 c b a 0 0 0 0 0 0 0 0 0 0 0 0 | {3} | 0 0 0 0 0 0 0 0 0 0 0 0 c b a 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 0 0 0 c b a 0 0 0 0 0 0 0 0 0 | {3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c b a 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c b a 0 0 0 0 0 0 | {3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c b a 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c b a 0 0 0 | {3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c b a |
{3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c b a |
3 3
3 : R <----------------- R : 3
{4} | 1 0 0 |
{4} | 0 1 0 |
{4} | 0 0 1 |
o9 : ComplexMap
|
i10 : assert isWellDefined f
|
i11 : f1 = inducedMap(F, C1)
1
o11 = 0 : R <-------------------------------------------- image | c3 bc2 ac2 b2c abc a2c b3 ab2 a2b a3 | : 0
| c3 bc2 ac2 b2c abc a2c b3 ab2 a2b a3 |
6
1 : R <----------------------------------------------- image {2} | c b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | : 1
{2} | c b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {2} | 0 0 0 c b a 0 0 0 0 0 0 0 0 0 0 0 0 |
{2} | 0 0 0 c b a 0 0 0 0 0 0 0 0 0 0 0 0 | {2} | 0 0 0 0 0 0 c b a 0 0 0 0 0 0 0 0 0 |
{2} | 0 0 0 0 0 0 c b a 0 0 0 0 0 0 0 0 0 | {2} | 0 0 0 0 0 0 0 0 0 c b a 0 0 0 0 0 0 |
{2} | 0 0 0 0 0 0 0 0 0 c b a 0 0 0 0 0 0 | {2} | 0 0 0 0 0 0 0 0 0 0 0 0 c b a 0 0 0 |
{2} | 0 0 0 0 0 0 0 0 0 0 0 0 c b a 0 0 0 | {2} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c b a |
{2} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c b a |
8 8
2 : R <--------------------------- R : 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 |
3 3
3 : R <----------------- R : 3
{4} | 1 0 0 |
{4} | 0 1 0 |
{4} | 0 0 1 |
o11 : ComplexMap
|
i12 : f2 = inducedMap(F, C2)
1
o12 = 0 : R <---------------------------------------------------------------------- image | c4 bc3 ac3 b2c2 abc2 a2c2 b3c ab2c a2bc a3c b4 ab3 a2b2 a3b a4 | : 0
| c4 bc3 ac3 b2c2 abc2 a2c2 b3c ab2c a2bc a3c b4 ab3 a2b2 a3b a4 |
6
1 : R <----------------------------------------------------------------------------------------------------------------------- image {2} | c2 bc ac b2 ab a2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | : 1
{2} | c2 bc ac b2 ab a2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {2} | 0 0 0 0 0 0 c2 bc ac b2 ab a2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{2} | 0 0 0 0 0 0 c2 bc ac b2 ab a2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {2} | 0 0 0 0 0 0 0 0 0 0 0 0 c2 bc ac b2 ab a2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{2} | 0 0 0 0 0 0 0 0 0 0 0 0 c2 bc ac b2 ab a2 0 0 0 0 0 0 0 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 0 0 0 0 c2 bc ac b2 ab a2 0 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 0 0 0 0 c2 bc ac b2 ab a2 0 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 0 0 0 0 0 0 0 0 0 0 c2 bc ac b2 ab a2 0 0 0 0 0 0 |
{2} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c2 bc ac b2 ab a2 0 0 0 0 0 0 | {2} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c2 bc ac b2 ab a2 |
{2} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c2 bc ac b2 ab a2 |
8
2 : R <----------------------------------------------------------- image {3} | c b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | : 2
{3} | c b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {3} | 0 0 0 c b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 c b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {3} | 0 0 0 0 0 0 c b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 c b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {3} | 0 0 0 0 0 0 0 0 0 c b a 0 0 0 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 c b a 0 0 0 0 0 0 0 0 0 0 0 0 | {3} | 0 0 0 0 0 0 0 0 0 0 0 0 c b a 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 0 0 0 c b a 0 0 0 0 0 0 0 0 0 | {3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c b a 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c b a 0 0 0 0 0 0 | {3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c b a 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c b a 0 0 0 | {3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c b a |
{3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c b a |
3 3
3 : R <----------------- R : 3
{4} | 1 0 0 |
{4} | 0 1 0 |
{4} | 0 0 1 |
o12 : ComplexMap
|
i13 : assert isWellDefined f1
|
i14 : assert isWellDefined f2
|
i15 : assert(f2 == f1 * f)
|