next | previous | forward | backward | up | top | index | toc | home
Macaulay2 > rings > monoid

monoid -- make or retrieve a monoid

Synopsis

Description

The function monoid is called whenever a polynomial ring is created, see Ring Array. Some of the options provided when making a monoid don't take effect until the monoid is made into a polynomial ring.

Let's make a free ordered commutative monoid on the variables a,b,c, with degrees 2, 3, and 4, respectively.
i1 : M = monoid [a,b,c,Degrees=>{2,3,4}]

o1 = M

o1 : GeneralOrderedMonoid
i2 : degrees M

o2 = {{2}, {3}, {4}}

o2 : List
i3 : M_0 * M_1^6

        6
o3 = a*b

o3 : M
Use use to arrange for the variables to be assigned their values in the monoid.
i4 : a

o4 = a

o4 : M
i5 : use M

o5 = M

o5 : GeneralOrderedMonoid
i6 : a * b^6

        6
o6 = a*b

o6 : M
The options used when the monoid was created can be recovered with options.
i7 : options M

o7 = OptionTable{Adjust => identity                                     }
                 DegreeRank => 1
                 Degrees => {{2}, {3}, {4}}
                 Global => true
                 Heft => 
                 Inverses => false
                 MonomialOrder => {GRevLex => {2, 3, 4}, Position => Up}
                 MonomialSize => 32
                 Repair => identity
                 SkewCommutative => {}
                 VariableBaseName => 
                 Variables => {a, b, c}
                 Weights => {}
                 WeylAlgebra => {}

o7 : OptionTable
The variables listed may be symbols or indexed variables. The values assigned to these variables are the corresponding monoid generators. The function baseName may be used to recover the original symbol or indexed variable.

The Adjust and Repair options are used in particular by Ext(Module,Module).

i8 : R = ZZ[x,y, Degrees => {-1,-2}, Repair => d -> -d, Adjust => d -> -d]

o8 = R

o8 : PolynomialRing
i9 : degree \ gens R

o9 = {{-1}, {-2}}

o9 : List
i10 : transpose vars R

o10 = {1} | x |
      {2} | y |

              2       1
o10 : Matrix R  <--- R
In this example we make a Weyl algebra.
i11 : R = ZZ/101[x,dx,y,dy,WeylAlgebra => {x=>dx, y=>dy}]

o11 = R

o11 : PolynomialRing
i12 : dx*x

o12 = x*dx + 1

o12 : R
i13 : dx*x^10

       10        9
o13 = x  dx + 10x

o13 : R
i14 : dx*y^10

          10
o14 = dx*y

o14 : R
In this example we make a skew commutative ring.
i15 : R = ZZ[x,y,z,SkewCommutative=>{x,y}]

o15 = R

o15 : PolynomialRing
i16 : x*y

o16 = x*y

o16 : R
i17 : y*x

o17 = -x*y

o17 : R
i18 : x*z-z*x

o18 = 0

o18 : R

Synopsis

  • Usage:
    monoid R
  • Inputs:
  • Outputs:
    • the monoid of monomials in the polynomial ring R

If R is a quotient ring of a polynomial ring S, then the monoid of S is returned.

i19 : R = QQ[a..d, Weights=>{1,2,3,4}]

o19 = R

o19 : PolynomialRing
i20 : monoid R

o20 = [a, b, c, d]

o20 : GeneralOrderedMonoid

Ways to use monoid :