# degreesRing -- the ring or monoid of degrees

## Synopsis

• Usage:
degreesRing A
degreesMonoid A
• Inputs:
• Outputs:
• or , a Laurent polynomial ring or monoid with inverses;

## Description

Given a ring or monoid A with degree length $n$, degreesRing and degreesMonoid produce a Laurent polynomial ring or monoid of Laurent monomials in $n$ variables, respectively, whose monomials correspond to the degrees of elements of A. The variable has no subscript when $n=1$.

 i1 : A = ZZ[x,y]; i2 : degreesRing A o2 = ZZ[T] o2 : PolynomialRing i3 : degreesMonoid A o3 = monoid[T, Degrees => {1}, MonomialOrder => {MonomialSize => 32}, Inverses => true, Global => false] {Weights => {-1} } {GroupLex => 1 } {Position => Up } o3 : GeneralOrderedMonoid i4 : degrees oo o4 = {{1}} o4 : List i5 : heft A o5 = {1} o5 : List i6 : R = QQ[x,y, Degrees => {{1,-2}, {2,-1}}]; i7 : degreesRing R o7 = ZZ[T ..T ] 0 1 o7 : PolynomialRing i8 : degreesMonoid R o8 = monoid[T ..T , Degrees => {1, 0}, MonomialOrder => {MonomialSize => 32}, Inverses => true, Global => false] 0 1 {Weights => {-1..0}} {GroupLex => 2 } {Position => Up } o8 : GeneralOrderedMonoid i9 : degrees oo o9 = {{1}, {0}} o9 : List i10 : heft R o10 = {1, 0} o10 : List i11 : S = QQ[x,y, Degrees => {-2,1}]; i12 : degreesRing S o12 = ZZ[T] o12 : PolynomialRing i13 : degreesMonoid S o13 = monoid[T, Degrees => {{}}, MonomialOrder => {MonomialSize => 32}, Inverses => true, Global => false] {Weights => {-1} } {GroupLex => 1 } {Position => Up } o13 : GeneralOrderedMonoid i14 : degrees oo o14 = {{}} o14 : List i15 : heft S

Note that in the last example the ring does not have a heft vector.

Hilbert series and polynomials of modules over A are elements of its degrees ring over ZZ. The monomial ordering is chosen so that the Hilbert series, which has an infinite number of terms, is bounded above by the weight. Elements of this ring are also used as variables for Poincare polynomials generated by poincare and poincareN.

 i16 : R = QQ[x,y, Degrees => {{1,-2,0}, {2,-1,1}}]; i17 : use degreesRing R o17 = ZZ[T ..T ] 0 2 o17 : PolynomialRing i18 : hilbertSeries module ideal vars R -2 2 -1 3 -3 T T + T T T - T T T 0 1 0 1 2 0 1 2 o18 = ------------------------- 2 -1 -2 (1 - T T T )(1 - T T ) 0 1 2 0 1 o18 : Expression of class Divide i19 : (1+T_1+T_2^2)^3 3 2 2 2 4 2 6 4 2 o19 = T + 3T T + 3T + 3T T + 6T T + 3T + T + 3T + 3T + 1 1 1 2 1 1 2 1 2 1 2 2 2 o19 : ZZ[T ..T ] 0 2