diff options
author | dos-reis <gdr@axiomatics.org> | 2007-08-14 05:14:52 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2007-08-14 05:14:52 +0000 |
commit | ab8cc85adde879fb963c94d15675783f2cf4b183 (patch) | |
tree | c202482327f474583b750b2c45dedfc4e4312b1d /src/algebra/modmonom.spad.pamphlet | |
download | open-axiom-ab8cc85adde879fb963c94d15675783f2cf4b183.tar.gz |
Initial population.
Diffstat (limited to 'src/algebra/modmonom.spad.pamphlet')
-rw-r--r-- | src/algebra/modmonom.spad.pamphlet | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/src/algebra/modmonom.spad.pamphlet b/src/algebra/modmonom.spad.pamphlet new file mode 100644 index 00000000..f96b812c --- /dev/null +++ b/src/algebra/modmonom.spad.pamphlet @@ -0,0 +1,158 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/algebra modmonom.spad} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{domain MODMONOM ModuleMonomial} +<<domain MODMONOM ModuleMonomial>>= +)abbrev domain MODMONOM ModuleMonomial +++ Description: +++ This package \undocumented +ModuleMonomial(IS: OrderedSet, + E: SetCategory, + ff:(MM, MM) -> Boolean): T == C where + + MM ==> Record(index:IS, exponent:E) + + T == OrderedSet with + exponent: $ -> E + ++ exponent(x) \undocumented + index: $ -> IS + ++ index(x) \undocumented + coerce: MM -> $ + ++ coerce(x) \undocumented + coerce: $ -> MM + ++ coerce(x) \undocumented + construct: (IS, E) -> $ + ++ construct(i,e) \undocumented + C == MM add + Rep:= MM + x:$ < y:$ == ff(x::Rep, y::Rep) + exponent(x:$):E == x.exponent + index(x:$): IS == x.index + coerce(x:$):MM == x::Rep::MM + coerce(x:MM):$ == x::Rep::$ + construct(i:IS, e:E):$ == [i, e]$MM::Rep::$ + +@ +\section{domain GMODPOL GeneralModulePolynomial} +<<domain GMODPOL GeneralModulePolynomial>>= +)abbrev domain GMODPOL GeneralModulePolynomial +++ Description: +++ This package \undocumented +GeneralModulePolynomial(vl, R, IS, E, ff, P): public == private where + vl: List(Symbol) + R: CommutativeRing + IS: OrderedSet + NNI ==> NonNegativeInteger + E: DirectProductCategory(#vl, NNI) + MM ==> Record(index:IS, exponent:E) + ff: (MM, MM) -> Boolean + OV ==> OrderedVariableList(vl) + P: PolynomialCategory(R, E, OV) + ModMonom ==> ModuleMonomial(IS, E, ff) + + + public == Join(Module(P), Module(R)) with + leadingCoefficient: $ -> R + ++ leadingCoefficient(x) \undocumented + leadingMonomial: $ -> ModMonom + ++ leadingMonomial(x) \undocumented + leadingExponent: $ -> E + ++ leadingExponent(x) \undocumented + leadingIndex: $ -> IS + ++ leadingIndex(x) \undocumented + reductum: $ -> $ + ++ reductum(x) \undocumented + monomial: (R, ModMonom) -> $ + ++ monomial(r,x) \undocumented + unitVector: IS -> $ + ++ unitVector(x) \undocumented + build: (R, IS, E) -> $ + ++ build(r,i,e) \undocumented + multMonom: (R, E, $) -> $ + ++ multMonom(r,e,x) \undocumented + "*": (P,$) -> $ + ++ p*x \undocumented + + + private == FreeModule(R, ModMonom) add + Rep:= FreeModule(R, ModMonom) + leadingMonomial(p:$):ModMonom == leadingSupport(p)$Rep + leadingExponent(p:$):E == exponent(leadingMonomial p) + leadingIndex(p:$):IS == index(leadingMonomial p) + unitVector(i:IS):$ == monomial(1,[i, 0$E]$ModMonom) + + + ----------------------------------------------------------------------------- + + build(c:R, i:IS, e:E):$ == monomial(c, construct(i, e)) + + ----------------------------------------------------------------------------- + + ---- WARNING: assumes c ^= 0 + + multMonom(c:R, e:E, mp:$):$ == + zero? mp => mp + monomial(c * leadingCoefficient mp, [leadingIndex mp, + e + leadingExponent mp]) + multMonom(c, e, reductum mp) + + ----------------------------------------------------------------------------- + + + ((p:P) * (mp:$)):$ == + zero? p => 0 + multMonom(leadingCoefficient p, degree p, mp) + + reductum(p) * mp + +@ +\section{License} +<<license>>= +--Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. +--All rights reserved. +-- +--Redistribution and use in source and binary forms, with or without +--modification, are permitted provided that the following conditions are +--met: +-- +-- - Redistributions of source code must retain the above copyright +-- notice, this list of conditions and the following disclaimer. +-- +-- - Redistributions in binary form must reproduce the above copyright +-- notice, this list of conditions and the following disclaimer in +-- the documentation and/or other materials provided with the +-- distribution. +-- +-- - Neither the name of The Numerical ALgorithms Group Ltd. nor the +-- names of its contributors may be used to endorse or promote products +-- derived from this software without specific prior written permission. +-- +--THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +--IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +--TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +--PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +--OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +--EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +--PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +--PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +--LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +--NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +--SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +@ +<<*>>= +<<license>> + +<<domain MODMONOM ModuleMonomial>> +<<domain GMODPOL GeneralModulePolynomial>> +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} |