up previous next
HilbertSeriesShifts

the Hilbert-Poincare series

Syntax
HilbertSeriesShifts(M: MODULE, ShiftsList: LIST):TAGGED("$hp.PSeries")
HilbertSeriesShifts(M: TAGGED("Quotient"), ShiftsList: LIST)
                                           :TAGGED("$hp.PSeries")

Description
This function computes the Hilbert-Poincare series (single-graded) module M with shifts sh .

This function is only a handy shortcut to avoid creating the proper free module with shifts sh .

NOTE: functions producing tagged objects cannot safely be compared for equality with other values.

For more information, see the article: A.M. Bigatti, "Computations of Hilbert-Poincare Series" J. Pure Appl. Algebra, 119/3 (1997), 237--253.

Example
/**/  use P ::= QQ[x,y,z];
/**/  F := NewFreeModule(P, ColMat([2,0]));  -- P(-2) (+) P(0)
/**/  M := SubmoduleRows(F, mat([[x,y^3], [x-z,0]]));
/**/  HilbertSeries(M);
(2*t^3) / (1-t)^3
/**/  HilbertSeriesShifts(M, [3,1]);
(2*t^4) / (1-t)^3

See Also