F = resolutionOfChainComplex C
Given a chain complex C, the routine returns a surjective ChainComplexMap p:F->C from a free complex. The complex F is constructed from minimal free resolutions of the terms of C by the method of iterated mapping cones.
That is, if C: 0 -> Cn ->...->Cm ->0 is a chain complex, and Gi is a resolution of Ci, and [G -> F] denotes the mapping cone of a map of complexes G \to F, then the resolution of C is Gm if n=m; is [Gn->Gm] if n = m+1 and otherwise is defined inductively as Fi = [Gi -> F(i-1)] where the map Gi -> F(i-1) is induced by lifing Gi_0 --> G(i-1)_0 to the kernel of the (i-1)-st differential of F(i-1).
The complex F = source p is not necessarily minimal, but minimize F returns a morphism to a minimal free chain complex quasi-isomorphic to F, and dual minimimize dual F returns a quasi-isomorphism from a minimal free complex, so
p*(dual minimimize dual F)
is the quasi-isomorphism from the minimal free resolution of C.
|
|
|
|
|
|
|
|
|
|
|
|
The resolution of a free complex is of course the same complex. resolutionOfChainComplex returns this minimal object directly, but cartanEilenbergResolution does not:
|
|
|
The object resolutionOfChainComplex is a method function with options.