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

## Synopsis

• Function: hilbertPolynomial
• Usage:
hilbertPolynomial (X, F)
• Inputs:
• X, , that is smooth and complete
• F, , on X
• Optional inputs:
• Outputs:
• , the Hilbert polynomial of X

## 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