|
|
|
last edited 8 years ago by test1 |
| 1 2 | ||
|
Editor: Bill Page
Time: 2009/10/12 00:25:04 GMT-7 |
||
| Note: documentation | ||
changed: - A domain of this category implements formal linear combinations of elements from a domain **S** with coefficients in a domain **R**. 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) Modified by: Franz Lehner, June 2009 \begin{axiom} )sh FreeModuleCategory \end{axiom}
A domain of this category implements formal linear combinations of elements from a domain S with coefficients in a domain R. 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)
Modified by: Franz Lehner, June 2009
(1) -> )sh FreeModuleCategory
FreeModuleCategory(R: Join(SemiRng,AbelianMonoid), S: SetCategory) is a category constructor Abbreviation for FreeModuleCategory is FMCAT This constructor is exposed in this frame. ------------------------------- Operations --------------------------------
?*? : (%,R) -> % ?*? : (R, %) -> % ?*? : (PositiveInteger, %) -> % ?+? : (%, %) -> % ?=? : (%, %) -> Boolean coefficient : (%, S) -> R coefficients : % -> List(R) coerce : % -> OutputForm latex : % -> String map : ((R -> R), %) -> % monomial : (R, S) -> % monomial? : % -> Boolean monomials : % -> List(%) support : % -> List(S) ?~=? : (%, %) -> Boolean ?*? : (NonNegativeInteger, %) -> % if and(OR(has(R, AbelianMonoid), has(R, AbelianMonoid)), has(R, CommutativeRing)) or R has ABELMON or R has ABELMON ?*? : (Integer, %) -> % if and(OR(has(R, AbelianGroup), has(R, AbelianGroup)), has(R, CommutativeRing)) or R has ABELGRP or R has ABELGRP -? : % -> % if and(OR(has(R, AbelianGroup), has(R, AbelianGroup)), has(R, CommutativeRing)) or R has ABELGRP or R has ABELGRP ?-? : (%, %) -> % if and(OR(has(R, AbelianGroup), has(R, AbelianGroup)), has(R, CommutativeRing)) or R has ABELGRP or R has ABELGRP 0 : () -> % if and(OR(has(R, AbelianMonoid), has(R, AbelianMonoid)), has(R, CommutativeRing)) or R has ABELMON or R has ABELMON construct : List(Record(k: S, c: R)) -> % constructOrdered : List(Record(k: S, c: R)) -> % if S has COMPAR leadingCoefficient : % -> R if S has COMPAR leadingMonomial : % -> % if S has COMPAR leadingSupport : % -> S if S has COMPAR leadingTerm : % -> Record(k: S, c: R) if S has COMPAR linearExtend : ((S -> R), %) -> R if R has COMRING listOfTerms : % -> List(Record(k: S, c: R)) numberOfMonomials : % -> NonNegativeInteger opposite? : (%, %) -> Boolean if and(OR(has(R, AbelianMonoid), has(R, AbelianMonoid)), has(R, CommutativeRing)) or R has ABELMON or R has ABELMON reductum : % -> % if S has COMPAR sample : () -> % if and(OR(has(R, AbelianMonoid), has(R, AbelianMonoid)), has(R, CommutativeRing)) or R has ABELMON or R has ABELMON smaller? : (%, %) -> Boolean if S has COMPAR and R has COMPAR subtractIfCan : (%, %) -> Union(%, "failed") if and(OR(has(R, AbelianGroup), has(R, AbelianGroup)), has(R, CommutativeRing)) or R has CABMON zero? : % -> Boolean if and(OR(has(R, AbelianMonoid), has(R, AbelianMonoid)), has(R, CommutativeRing)) or R has ABELMON or R has ABELMON