|
|
last edited 6 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
)sh FreeModuleCategory
FreeModuleCategory(R: Join(SemiRng,AbelianMonoid), S: Comparable) is a category constructor Abbreviation for FreeModuleCategory is FMCAT This constructor is exposed in this frame. ------------------------------- Operations -------------------------------- ?*? : (S, R) -> % ?*? : (R, S) -> % ?*? : (%, R) -> % ?*? : (R, %) -> % ?*? : (PositiveInteger, %) -> % ?+? : (%, %) -> % ?=? : (%, %) -> Boolean coefficient : (%, S) -> R coefficients : % -> List(R) coerce : % -> OutputForm hash : % -> SingleInteger latex : % -> String leadingCoefficient : % -> R leadingMonomial : % -> S leadingSupport : % -> S map : ((R -> R), %) -> % monom : (S, R) -> % monomial : (R, S) -> % monomial? : % -> Boolean monomials : % -> List(%) reductum : % -> % support : % -> List(S) ?~=? : (%, %) -> Boolean ?*? : (NonNegativeInteger, %) -> % if and(OR(has(R, AbelianMonoid), has(R, AbelianMonoid)), has(R, CommutativeRing)) or R has OAMON and S has ORDSET or R has OAMONS and S has ORDSET 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 ?<? : (%, %) -> Boolean if R has OAMON and S has ORDSET or R has OAMONS and S has ORDSET ?<=? : (%, %) -> Boolean if R has OAMON and S has ORDSET or R has OAMONS and S has ORDSET ?>? : (%, %) -> Boolean if R has OAMON and S has ORDSET or R has OAMONS and S has ORDSET ?>=? : (%, %) -> Boolean if R has OAMON and S has ORDSET or R has OAMONS and S has ORDSET 0 : () -> % if and(OR(has(R, AbelianMonoid), has(R, AbelianMonoid)), has(R, CommutativeRing)) or R has OAMON and S has ORDSET or R has OAMONS and S has ORDSET or R has ABELMON coerce : S -> % if R has SRING construct : List(Record(k: S, c: R)) -> % constructOrdered : List(Record(k: S, c: R)) -> % hashUpdate! : (HashState, %) -> HashState leadingTerm : % -> Record(k: S, c: R) linearExtend : ((S -> R), %) -> R if R has COMRING listOfTerms : % -> List(Record(k: S, c: R)) max : (%, %) -> % if R has OAMON and S has ORDSET or R has OAMONS and S has ORDSET min : (%, %) -> % if R has OAMON and S has ORDSET or R has OAMONS and S has ORDSET numberOfMonomials : % -> NonNegativeInteger retract : % -> S if R has SRING retractIfCan : % -> Union(S, "failed") if R has SRING sample : () -> % if and(OR(has(R, AbelianMonoid), has(R, AbelianMonoid)), has(R, CommutativeRing)) or R has OAMON and S has ORDSET or R has OAMONS and S has ORDSET or R has ABELMON smaller? : (%, %) -> Boolean if R has COMPAR or R has OAMON and S has ORDSET or R has OAMONS and S has ORDSET subtractIfCan : (%, %) -> Union(%, "failed") if and(OR(has(R, AbelianGroup), has(R, AbelianGroup)), has(R, CommutativeRing)) or R has OAMONS and S has ORDSET or R has CABMON or R has ABELGRP sup : (%, %) -> % if R has OAMONS and S has ORDSET zero? : % -> Boolean if and(OR(has(R, AbelianMonoid), has(R, AbelianMonoid)), has(R, CommutativeRing)) or R has OAMON and S has ORDSET or R has OAMONS and S has ORDSET or R has ABELMON