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 →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 Gi0 --> 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.
i1 : kk= ZZ/101 o1 = kk o1 : QuotientRing |
i2 : S = kk[a,b,c] o2 = S o2 : PolynomialRing |
i3 : R = S/ideal"ab2,a2c3" o3 = R o3 : QuotientRing |
i4 : f = map(R,S,vars R) o4 = map(R,S,{a, b, c}) o4 : RingMap R <--- S |
i5 : C = res(R^1/(ideal vars R))**(R^1/(ideal vars R)^5); |
i6 : mods = for i from 0 to max C list pushForward(f, C_i); |
i7 : C = chainComplex for i from min C+1 to max C list map(mods_(i-1),mods_i,substitute(matrix C.dd_i,S)); |
i8 : time m = resolutionOfChainComplex C; -- used 0.176743 seconds |
i9 : betti source m 0 1 2 3 4 5 6 7 o9 = total: 1 19 80 181 312 484 447 156 0: 1 3 3 1 . . . . 1: . . 1 3 3 . . . 2: . 1 3 3 2 . . . 3: . . 1 4 6 3 . . 4: . 15 72 139 137 64 12 . 5: . . . 16 75 141 117 36 6: . . . . 2 20 27 12 7: . . . 15 72 138 117 36 8: . . . . 15 103 147 60 9: . . . . . . . . 10: . . . . . 15 27 12 o9 : BettiTally |
i10 : betti target minimize source m 0 1 2 3 4 5 6 7 o10 = total: 1 17 72 165 302 484 447 156 0: 1 3 3 1 . . . . 1: . . . . . . . . 2: . . . . 1 . . . 3: . . . . 3 3 . . 4: . 14 69 136 135 64 12 . 5: . . . 14 75 141 117 36 6: . . . . 1 20 27 12 7: . . . 14 72 138 117 36 8: . . . . 15 103 147 60 9: . . . . . . . . 10: . . . . . 15 27 12 o10 : BettiTally |