# AbelianMonoidRing(R, E)ΒΆ

polycat.spad line 1 [edit on github]

R: Join(SemiRng, AbelianMonoid)

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 LeftModule %

- *: (%, 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 R has AbelianGroup or % has AbelianGroup
from AbelianGroup

- *: (NonNegativeInteger, %) -> %
from AbelianMonoid

- *: (PositiveInteger, %) -> %
from AbelianSemiGroup

- *: (R, %) -> %
from LeftModule R

- +: (%, %) -> %
from AbelianSemiGroup

- -: % -> % if R has AbelianGroup or % has AbelianGroup
from AbelianGroup

- -: (%, %) -> % if R has AbelianGroup or % has AbelianGroup
from AbelianGroup

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

divides`p`

by the coefficient`c`

.

- ^: (%, NonNegativeInteger) -> % if R has SemiRing
from MagmaWithUnit

- ^: (%, PositiveInteger) -> %
from Magma

- annihilate?: (%, %) -> Boolean if R has Ring
from Rng

- antiCommutator: (%, %) -> %

- 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

- 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
- 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

- construct: List Record(k: E, c: R) -> %
from IndexedProductCategory(R, E)

- constructOrdered: List Record(k: E, c: R) -> %
from IndexedProductCategory(R, E)

- 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
from IndexedProductCategory(R, E)

- leadingMonomial: % -> %
from IndexedProductCategory(R, E)

- leadingSupport: % -> E
from IndexedProductCategory(R, E)

- leadingTerm: % -> Record(k: E, c: R)
from IndexedProductCategory(R, E)

- leftPower: (%, NonNegativeInteger) -> % if R has SemiRing
from MagmaWithUnit

- leftPower: (%, PositiveInteger) -> %
from Magma

- leftRecip: % -> Union(%, failed) if R has SemiRing
from MagmaWithUnit

- map: (R -> R, %) -> %
from IndexedProductCategory(R, E)

- monomial?: % -> Boolean
from IndexedProductCategory(R, E)

- monomial: (R, E) -> %
from IndexedProductCategory(R, E)

- one?: % -> Boolean if R has SemiRing
from MagmaWithUnit

- opposite?: (%, %) -> Boolean
from AbelianMonoid

- recip: % -> Union(%, failed) if R has SemiRing
from MagmaWithUnit

- reductum: % -> %
from IndexedProductCategory(R, E)

- 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)

- 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

IndexedProductCategory(R, E)

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