Returns a new complex which drops (sets to zero) all modules outside the given range.
i1 : R = ZZ/101[a,b,c,d,e]; |
i2 : I = intersect(ideal(a,b),ideal(c,d,e)) o2 = ideal (b*e, a*e, b*d, a*d, b*c, a*c) o2 : Ideal of R |
i3 : C = freeResolution I 1 6 9 5 1 o3 = R <-- R <-- R <-- R <-- R 0 1 2 3 4 o3 : Complex |
i4 : naiveTruncation(C, 1, 2) 6 9 o4 = R <-- R 1 2 o4 : Complex |
i5 : C16 = naiveTruncation(C, 1, 6) 6 9 5 1 o5 = R <-- R <-- R <-- R 1 2 3 4 o5 : Complex |
i6 : isWellDefined C16 o6 = true |
i7 : naiveTruncation(C, 1, infinity) 6 9 5 1 o7 = R <-- R <-- R <-- R 1 2 3 4 o7 : Complex |
i8 : naiveTruncation(C, -13, 2) 1 6 9 o8 = R <-- R <-- R 0 1 2 o8 : Complex |
i9 : naiveTruncation(C, -infinity, 2) 1 6 9 o9 = R <-- R <-- R 0 1 2 o9 : Complex |
i10 : naiveTruncation(C, , 2) 1 6 9 o10 = R <-- R <-- R 0 1 2 o10 : Complex |
Truncation gives rise to a natural short exact sequence of complexes.
i11 : C' = naiveTruncation(C,, 1) 1 6 o11 = R <-- R 0 1 o11 : Complex |
i12 : C'' = naiveTruncation(C, 2, infinity) 9 5 1 o12 = R <-- R <-- R 2 3 4 o12 : Complex |
i13 : f = inducedMap(C, C') 1 1 o13 = 0 : R <--------- R : 0 | 1 | 6 6 1 : R <----------------------- R : 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 | o13 : ComplexMap |
i14 : g = inducedMap(C'', C) 9 9 o14 = 2 : R <----------------------------- R : 2 {3} | 1 0 0 0 0 0 0 0 0 | {3} | 0 1 0 0 0 0 0 0 0 | {3} | 0 0 1 0 0 0 0 0 0 | {3} | 0 0 0 1 0 0 0 0 0 | {3} | 0 0 0 0 1 0 0 0 0 | {3} | 0 0 0 0 0 1 0 0 0 | {3} | 0 0 0 0 0 0 1 0 0 | {3} | 0 0 0 0 0 0 0 1 0 | {3} | 0 0 0 0 0 0 0 0 1 | 5 5 3 : R <--------------------- R : 3 {4} | 1 0 0 0 0 | {4} | 0 1 0 0 0 | {4} | 0 0 1 0 0 | {4} | 0 0 0 1 0 | {4} | 0 0 0 0 1 | 1 1 4 : R <------------- R : 4 {5} | 1 | o14 : ComplexMap |
i15 : assert isShortExactSequence(g,f) |
There is another type of truncation, canonicalTruncation, which induces an isomorphism on (a range) of homology.