# AbelianMonoidRing(R, E)¶

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
*: (%, R) -> %

from RightModule R

*: (Fraction Integer, %) -> % if R has Algebra 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.

=: (%, %) -> 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: (%, %) -> %
associates?: (%, %) -> Boolean if R has IntegralDomain and % has VariablesCommuteWithCoefficients

from EntireRing

associator: (%, %, %) -> % if R has Ring
characteristic: () -> NonNegativeInteger if R has Ring
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
coerce: Fraction Integer -> % if R has Algebra Fraction Integer
coerce: Integer -> % if R has Ring
coerce: R -> % if R has CommutativeRing and % has VariablesCommuteWithCoefficients

from Algebra R

commutator: (%, %) -> % if R has Ring
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

from IndexedProductCategory(R, E)

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

AbelianMonoid

AbelianSemiGroup

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

Algebra R if R has CommutativeRing and % has VariablesCommuteWithCoefficients

BasicType

BiModule(%, %)

BiModule(R, R)

CancellationAbelianMonoid

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

Magma

MagmaWithUnit if R has SemiRing

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

Module R if R has CommutativeRing and % has VariablesCommuteWithCoefficients

Monoid if R has SemiRing

NonAssociativeRing if R has Ring

NonAssociativeRng if R has Ring

NonAssociativeSemiRing if R has SemiRing

NonAssociativeSemiRng

noZeroDivisors if R has IntegralDomain and % has VariablesCommuteWithCoefficients

Ring if R has Ring

Rng if R has Ring

SemiGroup

SemiRing if R has SemiRing

SemiRng

SetCategory

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

unitsKnown if R has Ring