Let R = ring F = ring ff, and Rbar = R/(ideal f), where ff = matrix{{f}} is a 1x1 matrix whose entry is a nonzerodivisor in R. The complex F should admit a system of higher homotopies for the entry of ff, returned by the call makeHomotopies(ff,F).
The complex FF has terms
FF_{2*i} = Rbar**(F_0 ++ F_2 ++ .. ++ F_i)
FF_{2*i+1} = Rbar**(F_1 ++ F_3 ++..++F_{2*i+1})
and maps made from the higher homotopies.
For the case of a complete intersection of higher codimension, or to see the components of the resolution as summands of FF_j, use the routine EisenbudShamash instead.
i1 : S = ZZ/101[x,y,z] o1 = S o1 : PolynomialRing |
i2 : R = S/ideal"x3,y3" o2 = R o2 : QuotientRing |
i3 : M = R^1/ideal(x,y,z) o3 = cokernel | x y z | 1 o3 : R-module, quotient of R |
i4 : F = res M 1 3 5 7 9 o4 = R <-- R <-- R <-- R <-- R 0 1 2 3 4 o4 : ChainComplex |
i5 : ff = matrix{{z^3}} o5 = | z3 | 1 1 o5 : Matrix R <--- R |
i6 : R1 = R/ideal ff o6 = R1 o6 : QuotientRing |
i7 : betti F 0 1 2 3 4 o7 = total: 1 3 5 7 9 0: 1 3 3 1 . 1: . . 2 6 6 2: . . . . 3 o7 : BettiTally |
i8 : FF = Shamash(ff,F,4) / R\1 / R\3 / R\6 / R\10 / R\15 o8 = |--| <-- |--| <-- |--| <-- |--| <-- |--| | 3| | 3| | 3| | 3| | 3| \z / \z / \z / \z / \z / 0 1 2 3 4 o8 : ChainComplex |
i9 : GG = Shamash(R1,F,4) 1 3 6 10 15 o9 = R1 <-- R1 <-- R1 <-- R1 <-- R1 0 1 2 3 4 o9 : ChainComplex |
i10 : betti FF 0 1 2 3 4 o10 = total: 1 3 6 10 15 0: 1 3 3 1 . 1: . . 3 9 9 2: . . . . 6 o10 : BettiTally |
i11 : betti GG 0 1 2 3 4 o11 = total: 1 3 6 10 15 0: 1 3 3 1 . 1: . . 3 9 9 2: . . . . 6 o11 : BettiTally |
i12 : ring GG o12 = R1 o12 : QuotientRing |
i13 : apply(length GG, i->prune HH_i FF) o13 = {cokernel | z y x |, 0, 0, 0} o13 : List |
F is assumed to be a homological complex starting from F_0. The matrix ff must be 1x1.
The object Shamash is a method function.