Macaulay2 » Documentation
Packages » NormalToricVarieties :: hilbertPolynomial(NormalToricVariety,CoherentSheaf)
next | previous | forward | backward | up | index | toc

hilbertPolynomial(NormalToricVariety,CoherentSheaf) -- compute the multivariate Hilbert polynomial

Synopsis

Description

The Hilbert polynomial of a coherent sheaf $F$ on smooth normal toric variety $X$ is the Euler characteristic of $F ** OO_X(i_0,i_1,...,i_r)$ where $r$ is the rank of the Picard group of $X$ and $i_0,i_1,...,i_r$ are formal variables. The Hilbert polynomial agrees with the Hilbert function when evaluated at any point sufficiently far in the interior of in the nef cone.

For a graded module over the total coordinate ring of $X$, this method computes the Hilbert polynomial of the corresponding coherent sheaf. Given an ideal $I$ in the total coordinate ring, it computes the Hilbert polynomial of the coherent sheaf associated to $S^1/I$.

The cotangent bundle on a smooth surface provides simple examples.

i1 : PP2 = toricProjectiveSpace 2;
i2 : OmegaPP2 = cotangentSheaf PP2

o2 = cokernel {2} | x_2  |
              {2} | x_0  |
              {2} | -x_1 |

                                             3
o2 : coherent sheaf on PP2, quotient of OO    (-2)
                                          PP2
i3 : h0 = hilbertPolynomial (PP2, OmegaPP2)

      2
o3 = i  - 1
      0

o3 : QQ[i ]
         0
i4 : for i to 10 list hilbertFunction(i, module OmegaPP2)

o4 = {0, 0, 3, 8, 15, 24, 35, 48, 63, 80, 99}

o4 : List
i5 : R = ring h0;
i6 : for i to 10 list sub(h0, R_0 => i)

o6 = {-1, 0, 3, 8, 15, 24, 35, 48, 63, 80, 99}

o6 : List
i7 : FF3 = hirzebruchSurface 3;
i8 : OmegaFF3 = cotangentSheaf FF3

o8 = cokernel {2, 0}  | 3x_1x_3 |
              {-2, 2} | x_0     |
              {-2, 2} | -x_2    |

                                             1                 2
o8 : coherent sheaf on FF3, quotient of OO     (-2, 0) ++ OO     (2, -2)
                                          FF3               FF3
i9 : h1 = hilbertPolynomial (FF3, OmegaFF3)

               2
o9 = 2i i  + 3i  - 2
       0 1     1

o9 : QQ[i ..i ]
         0   1
i10 : matrix table(5,5, (i,j) -> hilbertFunction({j,4-i}, module OmegaFF3))

o10 = | 47 54 62 70 78 |
      | 26 31 37 43 49 |
      | 11 14 18 22 26 |
      | 2  3  5  7  9  |
      | 0  0  1  2  3  |

               5       5
o10 : Matrix ZZ  <-- ZZ
i11 : R = ring h1;
i12 : matrix table(5,5, (i,j) -> sub(h1, {R_0 => j, R_1 => 4-i}))

o12 = | 46 54 62 70 78 |
      | 25 31 37 43 49 |
      | 10 14 18 22 26 |
      | 1  3  5  7  9  |
      | -2 -2 -2 -2 -2 |

               5       5
o12 : Matrix QQ  <-- QQ

Example 2.16 in Diane Maclagan and Gregory G. Smith's Uniform bounds on multigraded regularity, J. Algebraic Geom. 14 (2005), 137-164 shows that the Hilbert function for a set of points agrees with the Hilbert polynomial precisedly on the multigraded regularity.

i13 : X = toricProjectiveSpace (1) ** toricProjectiveSpace (1);
i14 : S = ring X;
i15 : I = intersect (ideal (S_1-S_0, S_3-S_2), ideal (S_1-S_0, S_3-2*S_2), ideal (S_1-2*S_0, S_3-S_2), ideal (S_1-2*S_0, S_3-2*S_2), ideal (S_1-3*S_0, S_3-3*S_2), ideal (S_1-4*S_0, S_3-4*S_2))

                4      3        2 2        3    4      3       2         2  
o15 = ideal (24x  - 50x x  + 35x x  - 10x x  + x , 2x x  - 2x x x  - 3x x x 
                2      2 3      2 3      2 3    3    1 2     0 2 3     1 2 3
      -----------------------------------------------------------------------
              2        2      3       3        2         2            2  
      + 3x x x  + x x x  - x x , 24x x  - 50x x x  + 2x x x  + 33x x x  -
          0 2 3    1 2 3    0 3     0 2      0 2 3     1 2 3      0 2 3  
      -----------------------------------------------------------------------
            2       3      3    2 2     2         2 2         2        2  
      3x x x  - 7x x  + x x , 2x x  - 3x x x  - 2x x  + 3x x x , 2x x x  -
        1 2 3     0 3    1 3    1 2     1 2 3     0 3     0 1 3    0 1 2  
      -----------------------------------------------------------------------
        2        2            2     2 2      2                      2      
      2x x x  - x x x  + x x x , 24x x  - 50x x x  + 21x x x x  - 7x x x  +
        0 2 3    1 2 3    0 1 3     0 2      0 2 3      0 1 2 3     1 2 3  
      -----------------------------------------------------------------------
         2 2         2    2 2    2           2      3       3       2      
      14x x  - 3x x x  + x x , 2x x x  - 3x x x  + x x  - 2x x  + 3x x x  -
         0 3     0 1 3    1 3    0 1 2     0 1 2    1 2     0 3     0 1 3  
      -----------------------------------------------------------------------
         2       3          2        3        3        2            2    
      x x x , 24x x  - 42x x x  + 18x x  - 50x x  + 77x x x  - 28x x x  +
       0 1 3     0 2      0 1 2      1 2      0 3      0 1 3      0 1 3  
      -----------------------------------------------------------------------
       3       4      3        2 2        3    4
      x x , 24x  - 50x x  + 35x x  - 10x x  + x )
       1 3     0      0 1      0 1      0 1    1

o15 : Ideal of S
i16 : assert (I == saturate (I, ideal X))
i17 : hilbertPolynomial (X, I)

o17 = 6

o17 : QQ[i ..i ]
          0   1
i18 : matrix table(5,5, (i,j) -> hilbertFunction({j,4-i}, I))

o18 = | 4 6 6 6 6 |
      | 4 6 6 6 6 |
      | 3 6 6 6 6 |
      | 2 4 6 6 6 |
      | 1 2 3 4 4 |

               5       5
o18 : Matrix ZZ  <-- ZZ

See also

Ways to use this method: