Macaulay2 » Documentation
Packages » Macaulay2Doc » rings » polynomial rings » monomial orderings » monoid » monoid(...,DegreeLift=>...)
next | previous | forward | backward | up | index | toc

# monoid(...,DegreeLift=>...) -- specify maps between degree groups

- Usage:
    `monoid[x,y, DegreeMap => p, DegreeLift => q]`

## Description

The DegreeMap option specifies the degree map, particularly when Join => false is given. The degree map is a (linear) function from the multidegrees of the (future) coefficient ring to the multidegrees of the monoid ring (polynomial ring) made from it with the monoid created here, to be used in determining homogeneity and in determining degrees in tensor products. The default is the identity.

If a degree map is provided, it will be used in computing tensor products.

    i1 : A = QQ[x];

    i2 : B = A[y,
             Join => false,
             DegreeMap => x -> 7*x]

    o2 = B

    o2 : PolynomialRing

    i3 : B.FlatMonoid

    o3 = monoid[y, x, Degrees => {1, 7}, Heft => {1}, Join => false, MonomialOrder => {MonomialSize => 32}]
                                                                                      {GRevLex => {1}    }
                                                                                      {Position => Up    }
                                                                                      {GRevLex => {1}    }

    o3 : GeneralOrderedMonoid

    i4 : degrees A^{-1,-2}

    o4 = {{1}, {2}}

    o4 : List

    i5 : degrees(A^{-1,-2} ** B)

    o5 = {{7}, {14}}

    o5 : List

For certain applications, such as lifting matrices, a degree lift function can be provided using the DegreeLift option. The degree lift is a (partial) inverse of the degree map, giving an error when lifting is not possible. If the degree map is the identity, then by default the identity map will be provided.

    i6 : B = A[y,
             Join => false,
             DegreeMap => x -> 7*x,
             DegreeLift => x -> apply(x, d -> d // 7)]

    o6 = B

    o6 : PolynomialRing

    i7 : m = matrix {{x_B}}

    o7 = | x |

                 1      1
    o7 : Matrix B  <-- B

    i8 : degrees m

    o8 = {{{0}}, {{7}}}

    o8 : List

    i9 : lift(m, A)

    o9 = | x |

                 1      1
    o9 : Matrix A  <-- A

    i10 : degrees oo

    o10 = {{{0}}, {{1}}}

    o10 : List

This option may also be used when creating a new ring from an existing ring, creating a tensor product ring, or symmetric algebra.

## See also

- monoid -- make or retrieve a monoid
- newRing -- make a copy of a ring, with some features changed
- tensor(Ring,Ring) -- tensor product of monoids
- symmetricAlgebra -- the symmetric algebra of a module

## Functions with optional argument named DegreeLift:

- `map(...,DegreeLift=>...)` -- see map(Ring,Ring,Matrix) -- make a ring map
- monoid(...,DegreeLift=>...) -- specify maps between degree groups
- `newRing(...,DegreeLift=>...)` -- see newRing -- make a copy of a ring, with some features changed
- `symmetricAlgebra(...,DegreeLift=>...)` -- see symmetricAlgebra -- the symmetric algebra of a module
- `tensor(Monoid,Monoid,DegreeLift=>...)` -- see tensor(Monoid,Monoid) -- tensor product of monoids
- `tensor(Ring,Ring,DegreeLift=>...)` -- see tensor(Monoid,Monoid) -- tensor product of monoids

## Further information

- Default value: null
- Function: monoid -- make or retrieve a monoid
- Option key: DegreeLift -- an optional argument

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/Macaulay2Doc/functions/monoid-doc.m2:563:0.