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.