Given a multi-graded module M, this function computes the coefficients of the multi-graded Hilbert polynomial of M in its Macaulay expansion. If the input is an ideal I, then the Hilbert sequence of comodule I is returned.
i1 : R = QQ[a..e, DegreeRank => 5] o1 = R o1 : PolynomialRing |
i2 : I = monomialIdeal "de,abe,ace,abcd" o2 = monomialIdeal (a*b*c*d, a*b*e, a*c*e, d*e) o2 : MonomialIdeal of R |
i3 : hilbSequence I
o3 = HashTable{{0, 0, 0, 0, 1} => -1}
{0, 0, 0, 1, 0} => 1
{0, 0, 1, 0, 0} => 1
{0, 0, 1, 1, 0} => -1
{0, 1, 0, 0, 0} => 1
{0, 1, 0, 1, 0} => -1
{0, 1, 1, 0, 0} => -2
{0, 1, 1, 0, 1} => 1
{0, 1, 1, 1, 0} => 1
{1, 0, 0, 0, 1} => 1
{1, 0, 0, 1, 0} => -1
{1, 0, 1, 0, 0} => -1
{1, 0, 1, 1, 0} => 1
{1, 1, 0, 0, 0} => -1
{1, 1, 0, 1, 0} => 1
{1, 1, 1, 0, 0} => 1
o3 : HashTable
|
One can read off the Hilbert polynomial from the Hilbert sequence, which can be verified for singly-graded modules:
i4 : R = QQ[a..e] o4 = R o4 : PolynomialRing |
i5 : I = monomialIdeal "de,abe,ace,abcd" o5 = monomialIdeal (a*b*c*d, a*b*e, a*c*e, d*e) o5 : MonomialIdeal of R |
i6 : hilbSequence I
o6 = HashTable{{1} => 2 }
{2} => -6
{3} => 5
o6 : HashTable
|
i7 : hilbertPolynomial I
o7 = 2*P - 6*P + 5*P
0 1 2
o7 : ProjectiveHilbertPolynomial
|
The object hilbSequence is a method function.