Consider a polynomial ring S=\mathbb{Z}[x_0,\dots,x_r], and a quotient Q=S^p/N where N is a homogeneous submodule generated in degrees at most d. Suppose that Q_d is free of rank n. We then have a short exact sequence 0\to N_d\to S_d^p\to Q_d\to 0 where also N_d is free. Thus, N_d\otimes S_1\to S^p_{d+1}\to Q_{d+1}\to 0 is a free presentation of Q_{d+1}. If the basis of Q_d can be chosen as a so called Gotzmann set, then Q_{d+1} is free of rank n if and only if the (n-1)'th Fitting ideal of Q_{d+1} is zero.

As an example, we consider a quotient Q of S^2=\mathbb{Z}[x_0,x_1]^2 such that Q_1 is free of rank 1. As S^2_1=\mathbb{Z}<xe_1,ye_1,xe_2,ye_2> is a free \mathbb{Z}^4-module we have that Q_1 is the cokernel of a (1\times 4)-matrix.

i1 : S=ZZ[x_0,x_1]; |

i2 : R=ZZ[a_1..a_4]; |

i3 : Q1=matrix{{a_1,a_2,a_3,a_4}} o3 = | a_1 a_2 a_3 a_4 | 1 4 o3 : Matrix R <--- R |

Suppose that Q_1 has a basis given by xe_1, corresponding to the 0'th column. We check that this is a Gotzmann set, and calculate a free presentation of Q_2.

i4 : gotzmannTest(S^2,1,{0}) o4 = true |

i5 : Q1=affinePart(Q1,{0}) o5 = | 1 a_2 a_3 a_4 | 1 4 o5 : Matrix R <--- R |

i6 : N1=gens ker Q1 o6 = {0} | a_2 a_3 a_4 | {1} | -1 0 0 | {1} | 0 -1 0 | {1} | 0 0 -1 | 4 3 o6 : Matrix R <--- R |

i7 : N2=nextDegree(N1,1,S) o7 = {-1} | a_2 0 a_3 0 a_4 0 | {-1} | -1 a_2 0 a_3 0 a_4 | {0} | 0 -1 0 0 0 0 | {0} | 0 0 -1 0 0 0 | {0} | 0 0 0 -1 -1 0 | {0} | 0 0 0 0 0 -1 | 6 6 o7 : Matrix R <--- R |

N_2 is the matrix corresponding to the map N_1\otimes S_1\to S^2_2, so Q_2 is the cokernel. We want to calculate the (n-1)'th Fitting ideal of N_2 with n=1.

i8 : co1Fitting(N2) o8 = ideal(a a - a ) 2 3 4 o8 : Ideal of R |

Thus, the obstruction for Q_2 to be free of rank 1 is the equation a_2a_3-a_4.

A result is that the Quot scheme of rank n quotients of \mathcal{O}^p is cut out by a single (n-1)'th Fitting ideal in the Grassmannian of locally free rank n quotients of a push forward of \mathcal{O}(d)^p for d\ge n.

In the case above, we have the Grassmannian Gr(1,4)=\mathbb{P}^3, and the Quot scheme is given by a (n-1)'th Fitting ideal. All of the above calculations can also be done directly by:

i9 : quotScheme(S^2,1,{0}) o9 = ideal(a a - a ) 2 3 4 o9 : Ideal of ZZ[a ..a ] 1 4 |

We can calculate much bigger examples with these function than with the ordinary Fitting ideal function. As an example, we consider the following with rank 2 quotients of S^2.

i10 : S=ZZ[x,y]; |

i11 : R=ZZ[a_1..a_12]; |

i12 : Q2=matrix{toList(a_1..a_6),toList(a_7..a_12)} o12 = | a_1 a_2 a_3 a_4 a_5 a_6 | | a_7 a_8 a_9 a_10 a_11 a_12 | 2 6 o12 : Matrix R <--- R |

i13 : Q2=affinePart(Q2,{0,1}) o13 = | 1 0 a_3 a_4 a_5 a_6 | | 0 1 a_9 a_10 a_11 a_12 | 2 6 o13 : Matrix R <--- R |

i14 : K3=nextDegree(gens ker Q2,2,S); 8 8 o14 : Matrix R <--- R |

i15 : time I=co1Fitting(K3) -- used 0.00277163 seconds o15 = ideal (a a + a - a , a a - a , a a + a - a , a a - a ) 9 11 5 12 3 11 6 9 10 4 11 3 10 5 o15 : Ideal of R |

i16 : time J=fittingIdeal(2-1,coker K3); -- used 0.0090878 seconds o16 : Ideal of R |

i17 : I==J o17 = true |

Note that our method is a bit faster for this small example, and for rank 2 quotients of S^3=\mathbb{Z}[x,y]^3 the time difference is massive.

- gaussCol -- Makes column reductions of a matrix
- co1Fitting -- Calculates the (n-1)'th Fitting ideal of a finite module
- nextDegree -- Lifts the kernel to the next degree
- gotzmannTest -- Checks if a set of monomials is a Gotzmann set
- affinePart -- Replaces columns in a matrix with an identity matrix
- quotScheme -- Calculates the defining equations for Quot schemes of points