FreeModuleCategory(R, S)

poly.spad line 19 [edit on github]

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.

* : (%, R) -> %
from RightModule(R)
* : (R, %) -> %
from LeftModule(R)
* : (Integer, %) -> % if R has AbelianGroup
from AbelianGroup
* : (NonNegativeInteger, %) -> %
from AbelianMonoid
* : (PositiveInteger, %) -> %
from AbelianSemiGroup
+ : (%, %) -> %
from AbelianSemiGroup
- : % -> % if R has AbelianGroup
from AbelianGroup
- : (%, %) -> % if R has AbelianGroup
from AbelianGroup
0 : () -> %
from AbelianMonoid
= : (%, %) -> 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
from CoercibleTo(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)
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 : (Mapping(R, S), %) -> 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 : (Mapping(R, R), %) -> %
from IndexedProductCategory(R, S)
monomial : (R, S) -> %
from IndexedProductCategory(R, S)
monomial? : % -> Boolean
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")
from CancellationAbelianMonoid
support : % -> List(S)

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

zero? : % -> Boolean
from AbelianMonoid
~= : (%, %) -> Boolean
from BasicType

IndexedDirectProductCategory(R, S)

IndexedProductCategory(R, S)

BiModule(R, R)

CancellationAbelianMonoid

AbelianProductCategory(R)

LeftModule(R)

RightModule(R)

Module(R)

AbelianGroup

AbelianSemiGroup

SetCategory

Comparable

AbelianMonoid

BasicType

CoercibleTo(OutputForm)