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.