A "pure free resolution of type (d0,d1,..,dn)" is a resolution of a graded Cohen-Macaulay module M over a polynomial ring such that for each i = 1,..,n, the module of i-th syzygies of M is generated by syzygies of degree di. Eisenbud and Schreyer constructed such free resolutions in all characteristics and for all degree sequences d0 < d1 < …< dn by pushing forward appropriate twists of a Koszul complex. (The construction was known for the Eagon-Northcott complex since work of Kempf).
The script allows several variations including a sparse version and a generic version.
Here is a simple example, where we produce one of the complexes in the family that included the Eagon-Northcott complex (see for example the appendix in "Commutative Algebra with a View toward Algebraic Geometry" by D. Eisenbud.) This way of producing the Eagon-Northcott complex was certainly known to George Kempf, who may have invented it.
i1 : kk = ZZ/101
o1 = kk
o1 : QuotientRing
|
i2 : A = kk[u,v,w]
o2 = A
o2 : PolynomialRing
|
i3 : T = A[x,y]
o3 = T
o3 : PolynomialRing
|
i4 : params = matrix"ux,uy+vx,vy+wx,wy"
o4 = | xu xv+yu xw+yv yw |
1 4
o4 : Matrix T <--- T
|
i5 : kn = koszul(params)
1 4 6 4 1
o5 = T <-- T <-- T <-- T <-- T
0 1 2 3 4
o5 : ChainComplex
|
i6 : directImageComplex kn
1 6 8 3
o6 = 0 <-- A <-- A <-- A <-- A
-1 0 1 2 3
o6 : ChainComplex
|
If we twist the map kn a little before taking the direct image we get other complexes in a family that also includes the Buchsbaum-Rim complex (see Eisenbud, loc. cit.)
i7 : for d from -1 to 3 do
(print betti directImageComplex (T^{{d,0}}**kn);print())
0 1 2 3
total: 4 12 12 4
1: 4 12 12 4
()
0 1 2 3
total: 1 6 8 3
0: 1 . . .
1: . 6 8 3
()
0 1 2 3
total: 2 4 4 2
0: 2 4 . .
1: . . 4 2
()
0 1 2 3
total: 3 8 6 1
0: 3 8 6 .
1: . . . 1
()
0 1 2 3
total: 4 12 12 4
0: 4 12 12 4
()
|
For more complex examples, we use the function pureResolution, which creates a Koszul complex over a product of projective spaces over a ground ring A and (iteratively) forms the direct image over A. In the following we specify a ground ring A and a degree sequence.
i8 : A = kk[a,b,c]
o8 = A
o8 : PolynomialRing
|
i9 : betti (pureResolution(A,{1,3,4,6}))
0 1 2 3
o9 = total: 4 20 20 4
1: 4 . . .
2: . 20 20 .
3: . . . 4
o9 : BettiTally
|
If one doesn’t want to bother creating the ring, it suffices to give the characteristic.
i10 : betti (F = pureResolution(11,{0,2,4}))
0 1 2
o10 = total: 3 6 3
0: 3 . .
1: . 6 .
2: . . 3
o10 : BettiTally
|
i11 : describe ring F
ZZ
o11 = --[a , a , Degrees => {2:1}, Heft => {1}, MonomialOrder => {MonomialSize => 32}, DegreeRank => 1]
11 0 1 {GRevLex => {2:1} }
{Position => Up }
|
With the form pureResolution(M,D) It is possible to specify a matrix M of linear forms in the ground ring A that defines the parameters used in the Koszul complex whose direct image is taken. The matrix M in pureResolution(M,D) should have size product(mi+1) x q, where the mi+1 are the successive differences of the entries of D that happen to be >1, and q >= #D-1+sum(mi).(The mi are the dimensions of the projective spaces from whose product we are projecting.)
i12 : A = kk[a,b]
o12 = A
o12 : PolynomialRing
|
i13 : M = random(A^4, A^{4:-1})
o13 = | -39a+17b 20a+22b -26a-19b -40a+42b |
| 32a+37b -35a-7b -31a+4b 24a+12b |
| -21a-28b 26a-18b -20a+36b 5a+48b |
| -44a-4b 2a-15b -32a+7b -33a+9b |
4 4
o13 : Matrix A <--- A
|
i14 : time betti (F = pureResolution(M,{0,2,4}))
-- used 0.299893 seconds
0 1 2
o14 = total: 3 6 3
0: 3 . .
1: . 6 .
2: . . 3
o14 : BettiTally
|
With the form pureResolution(p,q,D) we can directly create the situation of pureResolution(M,D) where M is generic product(mi+1) x #D-1+sum(mi) matrix of linear forms defined over a ring with product(mi+1) * #D-1+sum(mi) variables of characteristic p, created by the script. For a given number of variables in A this runs much faster than taking a random matrix M.
i15 : time betti (F = pureResolution(11,4,{0,2,4}))
-- used 0.361205 seconds
0 1 2
o15 = total: 3 6 3
0: 3 . .
1: . 6 .
2: . . 3
o15 : BettiTally
|
i16 : ring F
ZZ
o16 = --[a , a , a , a , a , a , a , a , a , a , a , a , a , a , a , a ]
11 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
o16 : PolynomialRing
|