next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
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 OOX(i0,i1,...,ir) where r is the rank of the Picard group of X and i0,i1,...,ir 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