The truncation of a chain complex is engineered to have homology only in certain degrees. There are several possible conventions. We use the "coker" convention so that a complex
... - - -> C_{i-1} - - -> C_i - - -> C_{i+1} - - -> ...
when truncated at position i, becomes
... - - -> C_{i-1} - - -> C_i - - -> coker d - - -> 0 - - -> 0 ...
This convention has computational benefits (it does not require any gb calculation) but has the conceptual drawback that the natural map from the truncation into the original complex is not an inclusion. At the level of the filtered derived category, however, all is well. Some more details would be good, but this function is not yet being used for anything, so we stop here.
i1 : R = QQ[x,y,z]; |
i2 : C = chainModule res coker vars R; |
i3 : phi = map(R[d,f,Degrees=>{{1,0},{0,1}}]/d^2, ring C) R[d, f] R[d] o3 = map(-------,----,{d, x, y, z}) 2 2 d d R[d, f] R[d] o3 : RingMap ------- <--- ---- 2 2 d d |
i4 : canonicalFiltration(target phi, C) o4 = cokernel {-3, -3, 3} | df 0 0 0 0 0 0 0 | {-2, -2, 2} | -z df 0 0 0 0 0 0 | {-2, -2, 2} | y 0 df 0 0 0 0 0 | {-2, -2, 2} | -x 0 0 df 0 0 0 0 | {-1, -1, 1} | 0 y z 0 df 0 0 0 | {-1, -1, 1} | 0 -x 0 z 0 df 0 0 | {-1, -1, 1} | 0 0 -x -y 0 0 df 0 | {0, 0, 0} | 0 0 0 0 -x -y -z df | R[d, f] /R[d, f]\8 o4 : --------module, quotient of |-------| 2 | 2 | d \ d / |
The object canonicalFiltration is a method function.