- Usage:
`degreesMonoid x`

- Inputs:
- 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`.

- the monoid with inverses whose variables have degrees given by the elements of

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 |

- Usage:
`degreesMonoid M`

- Inputs:
`M`, a module, a polynomial ring, or a quotient ring

- Outputs:
- the degrees monoid for (the ring of)
`M`

- the degrees monoid for (the ring of)

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, module, graded module, or resolution
- use -- install or activate object
- degreesRing -- the ring of degrees

- degreesMonoid(GeneralOrderedMonoid)
- degreesMonoid(List)
- degreesMonoid(Module)
- degreesMonoid(PolynomialRing)
- degreesMonoid(QuotientRing)
- degreesMonoid(ZZ)