next | previous | forward | backward | up | top | index | toc | Macaulay2 website
NormalToricVarieties :: hilbertPolynomial(NormalToricVariety)

hilbertPolynomial(NormalToricVariety) -- compute the multivariate Hilbert polynomial

Synopsis

Description

The Hilbert polynomial of a smooth projective toric variety $X$ is the Euler characteristic of $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 in the nef cone.

On projective space, one recovers the standard Hilbert polynomial.

i1 : PP2 = toricProjectiveSpace 2;
i2 : h0 = hilbertPolynomial PP2

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

o2 : QQ[i ]
         0
i3 : factor h0

                      1
o3 = (i  + 1)(i  + 2)(-)
       0       0      2

o3 : Expression of class Product
i4 : h1 = hilbertPolynomial (ring PP2, Projective => false)

     1 2   3
o4 = -i  + -i + 1
     2     2

o4 : QQ[i]
i5 : assert (h0 === sub(h1, (ring h1)_0 => (ring h0)_0))
i6 : PP3 = toricProjectiveSpace 3;
i7 : h2 = hilbertPolynomial PP3

     1 3    2   11
o7 = -i  + i  + --i  + 1
     6 0    0    6 0

o7 : QQ[i ]
         0
i8 : factor h2

                              1
o8 = (i  + 1)(i  + 2)(i  + 3)(-)
       0       0       0      6

o8 : Expression of class Product
i9 : h3 = hilbertPolynomial (ring PP3, Projective => false)

     1 3    2   11
o9 = -i  + i  + --i + 1
     6           6

o9 : QQ[i]
i10 : assert (h2 === sub(h3, (ring h3)_0 => (ring h2)_0))

The Hilbert polynomial of a product of normal toric varieties is simply the product of the Hilbert polynomials of the factors.

i11 : X = toricProjectiveSpace (2) ** toricProjectiveSpace (3);
i12 : h3 = hilbertPolynomial X

       1 2 3   1 2 2   1   3   11 2     3   2   1 3   1 2   11        2   3  
o12 = --i i  + -i i  + -i i  + --i i  + -i i  + -i  + -i  + --i i  + i  + -i 
      12 0 1   2 0 1   4 0 1   12 0 1   2 0 1   6 1   2 0    4 0 1    1   2 0
      -----------------------------------------------------------------------
        11
      + --i  + 1
         6 1

o12 : QQ[i ..i ]
          0   1
i13 : factor h3

                                                1
o13 = (i  + 1)(i  + 2)(i  + 3)(i  + 1)(i  + 2)(--)
        1       1       1       0       0      12

o13 : Expression of class Product

Example 2.9 in [Diane Maclagan and Gregory G. Smith, Uniform bounds on multigraded regularity, J. Algebraic Geom. 14 (2005), 137-164] describes the Hilbert polynomials on a Hirzebruch surface.

i14 : a = random (9)

o14 = 8
i15 : FFa = hirzebruchSurface a;
i16 : h4 = hilbertPolynomial FFa

               2
o16 = i i  + 4i  + i  + 5i  + 1
       0 1     1    0     1

o16 : QQ[i ..i ]
          0   1
i17 : R = ring h4;
i18 : assert (h4 == R_0 * R_1 + (a/2)*R_1^2 + R_0 + ((a+2)/2)*R_1 + 1)

The Hilbert polynomial is computed using the Hirzebruch-Riemann-Roch Theorem. In particular, this method depends on the Schubert2 package.

See also