A "high syzygy" over a complete intersection is one such that general ci-operators have split kernels when applied recursively on cosyzygy chains of previous kernels.
If p = mfBound M0, then highSyzygy M0 returns the p-th syzygy of M0. (if F is a resolution of M this is the cokernel of F.dd_{p+1}). Optimism => r as optional argument, highSyzygy(M0,Optimism=>r) returns the (p-r)-th syzygy. The script is useful with matrixFactorization(ff, highSyzygy M0).
i1 : setRandomSeed 100 o1 = 100 |
i2 : S = ZZ/101[x,y,z] o2 = S o2 : PolynomialRing |
i3 : f = matrix"x3,y3+x3,z3+x3+y3"
o3 = | x3 x3+y3 x3+y3+z3 |
1 3
o3 : Matrix S <--- S
|
i4 : ff = f*random(source f, source f)
o4 = | 10x3-22y3-4z3 -20x3-20y3-6z3 -27x3-41y3+z3 |
1 3
o4 : Matrix S <--- S
|
i5 : R = S/ideal f o5 = R o5 : QuotientRing |
i6 : M0 = R^1/ideal"x2z2,xyz"
o6 = cokernel | x2z2 xyz |
1
o6 : R-module, quotient of R
|
i7 : betti res (M0, LengthLimit => 7)
0 1 2 3 4 5 6 7
o7 = total: 1 2 6 11 18 26 36 47
0: 1 . . . . . . .
1: . . . . . . . .
2: . 1 . . . . . .
3: . 1 6 6 . . . .
4: . . . 5 18 14 . .
5: . . . . . 12 36 25
6: . . . . . . . 22
o7 : BettiTally
|
i8 : mfBound M0 o8 = 3 |
i9 : M = betti res highSyzygy M0
0 1 2 3 4
o9 = total: 11 18 26 36 47
6: 6 . . . .
7: 5 18 14 . .
8: . . 12 36 25
9: . . . . 22
o9 : BettiTally
|
i10 : netList BRanks matrixFactorization(ff, highSyzygy M0)
+-+-+
o10 = |6|6|
+-+-+
|3|6|
+-+-+
|2|6|
+-+-+
|
In this case as in all others we have examined, greater "Optimism" is not justified, and thus matrixFactorization(ff, highSyzygy(M0, Optimism=>1)); would produce an error.
A bug in the total Ext script means that the oddExtModule is sometimes zero, and this can cause a wrong value to be returned.
The object highSyzygy is a method function with options.