# degreesMonoid -- get the monoid of degrees

## Synopsis

• Usage:
degreesMonoid x
• Inputs:
• x, a list or an integera list of integers, or a single integer
• Outputs:
• the monoid with inverses whose variables have degrees given by the elements of x, and whose weights in the first component of the monomial ordering are minus the degrees. If x is an integer, then the number of variables is x, the degrees are all {}, and the weights are all -1.

This is the monoid whose elements correspond to degrees of rings with heft vector x, or, in case x is an integer, of rings with degree rank x and no heft vector; see heft vectors. Hilbert series and polynomials of modules over such rings are elements of its monoid ring over ZZ; see hilbertPolynomial and hilbertSeries The monomial ordering is chosen so that the Hilbert series, which has an infinite number of terms, is bounded above by the weight.

 i1 : degreesMonoid {1,2,5} o1 = monoid[T ..T , Degrees => {1..2, 5}, MonomialOrder => {MonomialSize => 32 }, DegreeRank => 1, Inverses => true, Global => false] 0 2 {Weights => {-1, -2, -5}} {GroupLex => 3 } {Position => Up } o1 : GeneralOrderedMonoid i2 : degreesMonoid 3 o2 = monoid[T ..T , Degrees => {3:{}}, MonomialOrder => {MonomialSize => 32}, DegreeRank => 0, Inverses => true, Global => false] 0 2 {Weights => {3:-1} } {GroupLex => 3 } {Position => Up } o2 : GeneralOrderedMonoid

## Synopsis

• Usage:
degreesMonoid M
• Inputs:
• M, , , or
• Outputs:
• the degrees monoid for (the ring of) M
 i3 : R = QQ[x,y,Degrees => {{1,-2},{2,-1}}]; i4 : heft R o4 = {1, 0} o4 : List i5 : degreesMonoid R o5 = monoid[T ..T , Degrees => {1, 0}, MonomialOrder => {MonomialSize => 32}, DegreeRank => 1, Inverses => true, Global => false] 0 1 {Weights => {-1..0}} {GroupLex => 2 } {Position => Up } o5 : GeneralOrderedMonoid i6 : S = QQ[x,y,Degrees => {-2,1}]; i7 : heft S i8 : degreesMonoid S^3 o8 = monoid[T, Degrees => {{}}, MonomialOrder => {MonomialSize => 32}, DegreeRank => 0, Inverses => true, Global => false] {Weights => {-1} } {GroupLex => 1 } {Position => Up } o8 : GeneralOrderedMonoid

• heft -- heft vector of ring or monoid
• use -- install or activate object
• degreesRing -- the ring of degrees

## Ways to use degreesMonoid :

• "degreesMonoid(GeneralOrderedMonoid)"
• "degreesMonoid(List)"
• "degreesMonoid(Module)"
• "degreesMonoid(PolynomialRing)"
• "degreesMonoid(QuotientRing)"
• "degreesMonoid(ZZ)"

## For the programmer

The object degreesMonoid is .