# AbelianMonoidRing(R, E)ΒΆ

- R: Join(SemiRng, AbelianMonoid)
- E: OrderedAbelianMonoid

Abelian monoid ring elements (not necessarily of finite support) of this ring are of the form formal SUM (r_i * e_i) where the r_i are coefficents and the e_i, elements of the ordered abelian monoid, are thought of as exponents or monomials. The monomials commute with each other, but in general do not commute with the coefficients (which themselves may or may not be commutative). See FiniteAbelianMonoidRing for the case of finite support. A useful common model for polynomials and power series. Conceptually at least, only the non-zero terms are ever operated on.

- 0: %
- from AbelianMonoid
- 1: % if R has SemiRing
- from MagmaWithUnit
- *: (%, %) -> %
- from Magma
- *: (%, Fraction Integer) -> % if R has Algebra Fraction Integer
- from RightModule Fraction Integer
- *: (%, R) -> %
- from RightModule R
- *: (Fraction Integer, %) -> % if R has Algebra Fraction Integer
- from LeftModule Fraction Integer
- *: (Integer, %) -> % if % has AbelianGroup or R has AbelianGroup
- from AbelianGroup
- *: (NonNegativeInteger, %) -> %
- from AbelianMonoid
- *: (PositiveInteger, %) -> %
- from AbelianSemiGroup
- *: (R, %) -> %
- from LeftModule R
- +: (%, %) -> %
- from AbelianSemiGroup
- -: % -> % if % has AbelianGroup or R has AbelianGroup
- from AbelianGroup
- -: (%, %) -> % if % has AbelianGroup or R has AbelianGroup
- from AbelianGroup

- /: (%, R) -> % if R has Field
`p/c`

divides`p`

by the coefficient`c`

.- =: (%, %) -> Boolean
- from BasicType
- ^: (%, NonNegativeInteger) -> % if R has SemiRing
- from MagmaWithUnit
- ^: (%, PositiveInteger) -> %
- from Magma
- ~=: (%, %) -> Boolean
- from BasicType
- annihilate?: (%, %) -> Boolean if R has Ring
- from Rng
- antiCommutator: (%, %) -> %
- from NonAssociativeSemiRng
- associates?: (%, %) -> Boolean if R has IntegralDomain and % has VariablesCommuteWithCoefficients
- from EntireRing
- associator: (%, %, %) -> % if R has Ring
- from NonAssociativeRng
- characteristic: () -> NonNegativeInteger if R has Ring
- from NonAssociativeRing
- charthRoot: % -> Union(%, failed) if R has CharacteristicNonZero
- from CharacteristicNonZero

- coefficient: (%, E) -> R
`coefficient(p, e)`

extracts the coefficient of the monomial with exponent`e`

from polynomial`p`

, or returns zero if exponent is not present.- coerce: % -> % if R has CommutativeRing and % has VariablesCommuteWithCoefficients or R has IntegralDomain and % has VariablesCommuteWithCoefficients
- from Algebra %
- coerce: % -> OutputForm
- from CoercibleTo OutputForm
- coerce: Fraction Integer -> % if R has Algebra Fraction Integer
- from Algebra Fraction Integer
- coerce: Integer -> % if R has Ring
- from NonAssociativeRing
- coerce: R -> % if R has CommutativeRing and % has VariablesCommuteWithCoefficients
- from Algebra R
- commutator: (%, %) -> % if R has Ring
- from NonAssociativeRng

- degree: % -> E
`degree(p)`

returns the maximum of the exponents of the terms of`p`

.- exquo: (%, %) -> Union(%, failed) if R has IntegralDomain and % has VariablesCommuteWithCoefficients
- from EntireRing
- hash: % -> SingleInteger
- from SetCategory
- hashUpdate!: (HashState, %) -> HashState
- from SetCategory
- latex: % -> String
- from SetCategory

- leadingCoefficient: % -> R
`leadingCoefficient(p)`

returns the coefficient highest degree term of`p`

.

- leadingMonomial: % -> %
`leadingMonomial(p)`

returns the monomial of`p`

with the highest degree.- leftPower: (%, NonNegativeInteger) -> % if R has SemiRing
- from MagmaWithUnit
- leftPower: (%, PositiveInteger) -> %
- from Magma
- leftRecip: % -> Union(%, failed) if R has SemiRing
- from MagmaWithUnit

- map: (R -> R, %) -> %
`map(fn, u)`

maps function`fn`

onto the coefficients of the non-zero monomials of`u`

.

- monomial: (R, E) -> %
`monomial(r, e)`

makes a term from a coefficient`r`

and an exponent`e`

.

- monomial?: % -> Boolean
`monomial?(p)`

tests if`p`

is a single monomial.- one?: % -> Boolean if R has SemiRing
- from MagmaWithUnit
- opposite?: (%, %) -> Boolean
- from AbelianMonoid
- recip: % -> Union(%, failed) if R has SemiRing
- from MagmaWithUnit

- reductum: % -> %
`reductum(u)`

returns`u`

minus its leading monomial returns zero if handed the zero element.- rightPower: (%, NonNegativeInteger) -> % if R has SemiRing
- from MagmaWithUnit
- rightPower: (%, PositiveInteger) -> %
- from Magma
- rightRecip: % -> Union(%, failed) if R has SemiRing
- from MagmaWithUnit
- sample: %
- from AbelianMonoid
- subtractIfCan: (%, %) -> Union(%, failed)
- from CancellationAbelianMonoid
- unit?: % -> Boolean if R has IntegralDomain and % has VariablesCommuteWithCoefficients
- from EntireRing
- unitCanonical: % -> % if R has IntegralDomain and % has VariablesCommuteWithCoefficients
- from EntireRing
- unitNormal: % -> Record(unit: %, canonical: %, associate: %) if R has IntegralDomain and % has VariablesCommuteWithCoefficients
- from EntireRing
- zero?: % -> Boolean
- from AbelianMonoid

AbelianGroup if R has AbelianGroup

Algebra % if R has CommutativeRing and % has VariablesCommuteWithCoefficients or R has IntegralDomain and % has VariablesCommuteWithCoefficients

Algebra Fraction Integer if R has Algebra Fraction Integer

Algebra R if R has CommutativeRing and % has VariablesCommuteWithCoefficients

BiModule(%, %)

BiModule(Fraction Integer, Fraction Integer) if R has Algebra Fraction Integer

BiModule(R, R)

CharacteristicNonZero if R has CharacteristicNonZero

CharacteristicZero if R has CharacteristicZero

CommutativeRing if R has IntegralDomain and % has VariablesCommuteWithCoefficients or R has CommutativeRing and % has VariablesCommuteWithCoefficients

CommutativeStar if R has CommutativeRing and % has VariablesCommuteWithCoefficients or R has IntegralDomain and % has VariablesCommuteWithCoefficients

EntireRing if R has IntegralDomain and % has VariablesCommuteWithCoefficients

IntegralDomain if R has IntegralDomain and % has VariablesCommuteWithCoefficients

LeftModule Fraction Integer if R has Algebra Fraction Integer

MagmaWithUnit if R has SemiRing

Module % if R has CommutativeRing and % has VariablesCommuteWithCoefficients or R has IntegralDomain and % has VariablesCommuteWithCoefficients

Module Fraction Integer if R has Algebra Fraction Integer

Module R if R has CommutativeRing and % has VariablesCommuteWithCoefficients

NonAssociativeRing if R has Ring

NonAssociativeRng if R has Ring

NonAssociativeSemiRing if R has SemiRing

noZeroDivisors if R has IntegralDomain and % has VariablesCommuteWithCoefficients

RightModule Fraction Integer if R has Algebra Fraction Integer

TwoSidedRecip if R has CommutativeRing and % has VariablesCommuteWithCoefficients or R has IntegralDomain and % has VariablesCommuteWithCoefficients

unitsKnown if R has Ring