hilbertPolynomial(NormalToricVariety) -- compute the multivariate Hilbert polynomial

Synopsis

• Usage:
hilbertPolynomial X
• Function: hilbertPolynomial
• Inputs:
• X, , that is smooth and complete
• Optional inputs:
• Projective => default value true, this option is ignored
• Outputs:
• , the Hilbert polynomial of X

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.