# hilbertFunct -- return the Hilbert function of a polynomial ring mod a homogeneous ideal as a list

## Synopsis

• Usage:
L=hilbertFunct I
• Inputs:
• I, an ideal, a homogeneous ideal in a polynomial ring or a quotient of a polynomial ring (where the ring has the standard grading)
• Optional inputs:
• MaxDegree => ..., default value null, bound degree through which Hilbert function is computed
• Outputs:
• L, a list, returns the Hilbert function of (ring I)/I as a list

## Description

Let I be a homogeneous ideal in a ring R that is either a polynomial ring or a quotient of a polynomial ring, and suppose that R has the standard grading. hilbertFunct returns the Hilbert function of R/I as a list.

If R/I is Artinian, then the default is for hilbertFunct to return the entire Hilbert function (i.e., until the Hilbert function is zero) of R/I as a list. The user can override this by using the MaxDegree option to bound the highest degree considered.

If R/I is not Artinian, then hilbertFunct returns the Hilbert function of R/I through degree 20. Again, the user can select a different upper bound for the degree by using the MaxDegree option.

We require the standard grading on R in order to compute with the Hilbert series, which is presently much faster than repeatedly computing the Hilbert function.

 i1 : R=ZZ/32003[a..c]; i2 : hilbertFunct ideal(a^3,b^3,c^3) o2 = {1, 3, 6, 7, 6, 3, 1} o2 : List i3 : hilbertFunct ideal(a^3,a*b^2) o3 = {1, 3, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, ------------------------------------------------------------------------ 24, 25} o3 : List i4 : hilbertFunct(ideal(a^3,a*b^2),MaxDegree=>4) o4 = {1, 3, 6, 8, 9} o4 : List i5 : M=ideal(a^3,b^4,a*c); o5 : Ideal of R i6 : Q=R/M; i7 : hilbertFunct ideal(c^4) o7 = {1, 3, 5, 6, 5, 3, 1} o7 : List i8 : hilbertFunct ideal(b*c,a*b) o8 = {1, 3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1} o8 : List