compute Hilbert series
compute Hilbert polynomial
HilbertSeries(J, X, s, characteristic=p)
HilbertPolynomial(J, X, s, characteristic=p)
a list or set of polynomials or a PolynomialIdeal
(optional) a list or set of variables, a ShortMonomialOrder, or a MonomialOrder
(optional) a variable to use for the series or polynomial
The HilbertSeries command computes the Hilbert series of the ideal generated by J, which is defined as ∑n=0∞⁡cn−cn−1⁢sn where cn is the dimension of the vector space of normal forms (with respect to J) of polynomials of degree less than or equal to n. The output is a rational function of the form H⁡s=P⁡s1−sd where d is the HilbertDimension of J. The Hilbert polynomial is defined as the polynomial asymptotically equal to cn−cn−1.
In the case of skew polynomials, the invariants that are returned are those of the left ideal generated by J.
The variables of the system can be specified using an optional second argument X. If X is a ShortMonomialOrder then a Groebner basis of J with respect to X is computed. Be aware that if X is not a graded monomial order (that is, tdeg or grlex) then the result may be incorrect. By default, X is the set of all indeterminates not appearing inside a RootOf or radical when J is a list or set, or PolynomialIdeals[IdealInfo][Variables](J) if J is an ideal.
The variable for the Hilbert series or polynomial can be specified with an optional third argument s. If this is omitted, the global name 'Z' is used.
The optional argument characteristic=p specifies the ring characteristic when J is a list or set. This option has no effect when J is a PolynomialIdeal or when X is a MonomialOrder.
The algorithms for HilbertSeries and HilbertPolynomial use the leading monomials of a total degree Groebner basis for J. To access this functionality directly (as part of a program), make J the list or set of leading monomials. The commands will detect this case and execute their algorithms with minimal overhead.
Note that the hilbertseries and hilbertpoly commands are deprecated. They may not be supported in a future Maple release.
F ≔ x31−x6−x−y,x8−z,x10−t
h ≔ HilbertSeries⁡F,x,y,z,t,s
h ≔ s6−2⁢s5−11⁢s4−9⁢s3−6⁢s2−3⁢s−1−1+s
The system below is not holonomic, in the sense that the Hilbert dimension is greater than the number of polynomial variables (x and y).
A ≔ diff_algebra⁡Dx,x,Dy,y,polynom=x,y:
T ≔ MonomialOrder⁡A,tdeg⁡Dx,Dy,x,y:
p ≔ x2−x+y:
F ≔ p⁢Dx+∂∂x⁢p,p⁢Dy+∂∂y⁢p
F ≔ x2−x+y⁢Dx+2⁢x−1,x2−x+y⁢Dy+1
G ≔ Basis⁡F,T
G ≔ Dy⁢x2−Dy⁢x+Dy⁢y+1,Dx⁢x2−Dx⁢x+Dx⁢y+2⁢x−1
p ≔ HilbertPolynomial⁡F,T,n
p ≔ n2+3⁢n
h ≔ HilbertSeries⁡F,T,s
h ≔ s3−s2−s−1−1+s3
Neither x nor y can be eliminated.
f ≔ 1p
f ≔ 1n2+3⁢n
The system becomes holonomic when we add the polynomial above. The Hilbert dimension is now 2 and both x and y can be eliminated.
F2 ≔ op⁡F,x2−x+y⁢Dx⁢Dy+2⁢2⁢x−1⁢Dy
F2 ≔ x2−x+y⁢Dx+2⁢x−1,x2−x+y⁢Dy+1,x2−x+y⁢Dx⁢Dy+2⁢2⁢x−1⁢Dy
h ≔ HilbertSeries⁡F2,T,s
h ≔ s2+2⁢s+1−1+s2
Download Help Document