FreeModuleCategory(R, S)¶

A domain of this category implements formal linear combinations of elements from a domain Basis with coefficients in a domain R. The domain Basis needs only to belong to the category SetCategory and R to the category Ring. Thus the coefficient ring may be non-commutative. See the XDistributedPolynomial constructor for examples of domains built with the FreeModuleCategory category constructor. Author: Michel Petitot (petitot@lifl.fr) Note (Franz Lehner, June 2009): FreeModule originally was not of FreeModuleCategory. Some functions (like support, coefficients, monomials, …) from here could be moved to IndexedDirectProductCategory but at the moment there is no need for this.

0: %

from AbelianMonoid

*: (%, R) -> %

from RightModule R

*: (Integer, %) -> % if R has AbelianGroup

from AbelianGroup

*: (NonNegativeInteger, %) -> %

from AbelianMonoid

*: (PositiveInteger, %) -> %

from AbelianSemiGroup

*: (R, %) -> %

from LeftModule R

+: (%, %) -> %

from AbelianSemiGroup

-: % -> % if R has AbelianGroup

from AbelianGroup

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

from AbelianGroup

=: (%, %) -> Boolean

from BasicType

~=: (%, %) -> Boolean

from BasicType

coefficient: (%, S) -> R

coefficient(x, s) returns the coefficient of the basis element s

coefficients: % -> List R

coefficients(x) returns the list of coefficients of x.

coerce: % -> OutputForm
construct: List Record(k: S, c: R) -> %

from IndexedProductCategory(R, S)

constructOrdered: List Record(k: S, c: R) -> % if S has Comparable

from IndexedProductCategory(R, S)

hash: % -> SingleInteger

from SetCategory

hashUpdate!: (HashState, %) -> HashState

from SetCategory

latex: % -> String

from SetCategory

leadingCoefficient: % -> R if S has Comparable

from IndexedProductCategory(R, S)

leadingMonomial: % -> % if S has Comparable

from IndexedProductCategory(R, S)

leadingSupport: % -> S if S has Comparable

from IndexedProductCategory(R, S)

leadingTerm: % -> Record(k: S, c: R) if S has Comparable

from IndexedProductCategory(R, S)

linearExtend: (S -> R, %) -> R if R has CommutativeRing

linearExtend: (f, x) returns the linear extension of a map defined on the basis applied to a linear combination

listOfTerms: % -> List Record(k: S, c: R)

from IndexedDirectProductCategory(R, S)

map: (R -> R, %) -> %

from IndexedProductCategory(R, S)

monomial?: % -> Boolean

from IndexedProductCategory(R, S)

monomial: (R, S) -> %

from IndexedProductCategory(R, S)

monomials: % -> List %

monomials(x) returns the list of r_i*b_i whose sum is x.

numberOfMonomials: % -> NonNegativeInteger

from IndexedDirectProductCategory(R, S)

opposite?: (%, %) -> Boolean

from AbelianMonoid

reductum: % -> % if S has Comparable

from IndexedProductCategory(R, S)

sample: %

from AbelianMonoid

smaller?: (%, %) -> Boolean if R has Comparable and S has Comparable

from Comparable

subtractIfCan: (%, %) -> Union(%, failed)
support: % -> List S

support(x) returns the list of basis elements with nonzero coefficients.

zero?: % -> Boolean

from AbelianMonoid

AbelianGroup if R has AbelianGroup

AbelianMonoid

AbelianSemiGroup

BasicType

BiModule(R, R)

CancellationAbelianMonoid

Comparable if R has Comparable and S has Comparable

IndexedProductCategory(R, S)

Module R if R has CommutativeRing

SetCategory