Macaulay2 » Documentation
Packages » FiniteFittingIdeals :: Fitting ideals of finite modules
next | previous | forward | backward | up | index | toc

Fitting ideals of finite modules -- An introductory example

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.00162668 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.00429485 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.

See also