aboutsummaryrefslogtreecommitdiff
path: root/src/algebra/nsregset.spad.pamphlet
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2007-08-14 05:14:52 +0000
committerdos-reis <gdr@axiomatics.org>2007-08-14 05:14:52 +0000
commitab8cc85adde879fb963c94d15675783f2cf4b183 (patch)
treec202482327f474583b750b2c45dedfc4e4312b1d /src/algebra/nsregset.spad.pamphlet
downloadopen-axiom-ab8cc85adde879fb963c94d15675783f2cf4b183.tar.gz
Initial population.
Diffstat (limited to 'src/algebra/nsregset.spad.pamphlet')
-rw-r--r--src/algebra/nsregset.spad.pamphlet203
1 files changed, 203 insertions, 0 deletions
diff --git a/src/algebra/nsregset.spad.pamphlet b/src/algebra/nsregset.spad.pamphlet
new file mode 100644
index 00000000..13d90b21
--- /dev/null
+++ b/src/algebra/nsregset.spad.pamphlet
@@ -0,0 +1,203 @@
+\documentclass{article}
+\usepackage{axiom}
+\begin{document}
+\title{\$SPAD/src/algebra nsregset.spad}
+\author{Marc Moreno Maza}
+\maketitle
+\begin{abstract}
+\end{abstract}
+\eject
+\tableofcontents
+\eject
+\section{category SNTSCAT SquareFreeNormalizedTriangularSetCategory}
+<<category SNTSCAT SquareFreeNormalizedTriangularSetCategory>>=
+)abbrev category SNTSCAT SquareFreeNormalizedTriangularSetCategory
+++ Author: Marc Moreno Maza
+++ Date Created: 10/07/1998
+++ Date Last Updated: 12/16/1998
+++ Basic Functions:
+++ Related Constructors:
+++ Also See: essai Graphisme
+++ AMS Classifications:
+++ Keywords: polynomial, multivariate, ordered variables set
+++ Description:
+++ The category of square-free and normalized triangular sets.
+++ Thus, up to the primitivity axiom of [1], these sets are Lazard
+++ triangular sets.\newline
+++ References :
+++ [1] D. LAZARD "A new method for solving algebraic systems of
+++ positive dimension" Discr. App. Math. 33:147-160,1991
+SquareFreeNormalizedTriangularSetCategory(R:GcdDomain,E:OrderedAbelianMonoidSup,_
+ V:OrderedSet,P:RecursivePolynomialCategory(R,E,V)):
+ Category ==
+ Join(SquareFreeRegularTriangularSetCategory(R,E,V,P), NormalizedTriangularSetCategory(R,E,V,P))
+
+@
+\section{package LAZM3PK LazardSetSolvingPackage}
+<<package LAZM3PK LazardSetSolvingPackage>>=
+)abbrev package LAZM3PK LazardSetSolvingPackage
+++ Author: Marc Moreno Maza
+++ Date Created: 10/02/1998
+++ Date Last Updated: 12/16/1998
+++ Basic Functions:
+++ Related Constructors:
+++ Also See:
+++ AMS Classifications:
+++ Keywords:
+++ Description:
+++ A package for solving polynomial systems by means of Lazard triangular
+++ sets [1].
+++ This package provides two operations. One for solving in the sense
+++ of the regular zeros, and the other for solving in the sense of
+++ the Zariski closure. Both produce square-free regular sets.
+++ Moreover, the decompositions do not contain any redundant component.
+++ However, only zero-dimensional regular sets are normalized, since
+++ normalization may be time consumming in positive dimension.
+++ The decomposition process is that of [2].\newline
+++ References :
+++ [1] D. LAZARD "A new method for solving algebraic systems of
+++ positive dimension" Discr. App. Math. 33:147-160,1991
+++ [2] M. MORENO MAZA "A new algorithm for computing triangular
+++ decomposition of algebraic varieties" NAG Tech. Rep. 4/98.
+++ Version: 1.
+
+LazardSetSolvingPackage(R,E,V,P,TS,ST): Exports == Implementation where
+
+ R : GcdDomain
+ E : OrderedAbelianMonoidSup
+ V : OrderedSet
+ P : RecursivePolynomialCategory(R,E,V)
+ TS: RegularTriangularSetCategory(R,E,V,P)
+ ST : SquareFreeRegularTriangularSetCategory(R,E,V,P)
+ N ==> NonNegativeInteger
+ Z ==> Integer
+ B ==> Boolean
+ S ==> String
+ K ==> Fraction R
+ LP ==> List P
+ PWT ==> Record(val : P, tower : TS)
+ BWT ==> Record(val : Boolean, tower : TS)
+ LpWT ==> Record(val : (List P), tower : TS)
+ Split ==> List TS
+ --KeyGcd ==> Record(arg1: P, arg2: P, arg3: TS, arg4: B)
+ --EntryGcd ==> List PWT
+ --HGcd ==> TabulatedComputationPackage(KeyGcd, EntryGcd)
+ --KeyInvSet ==> Record(arg1: P, arg3: TS)
+ --EntryInvSet ==> List TS
+ --HInvSet ==> TabulatedComputationPackage(KeyInvSet, EntryInvSet)
+ polsetpack ==> PolynomialSetUtilitiesPackage(R,E,V,P)
+ regsetgcdpack ==> SquareFreeRegularTriangularSetGcdPackage(R,E,V,P,ST)
+ quasicomppack ==> SquareFreeQuasiComponentPackage(R,E,V,P,ST)
+ normalizpack ==> NormalizationPackage(R,E,V,P,ST)
+
+ Exports == with
+
+ normalizeIfCan: ST -> ST
+ ++ \axiom{normalizeIfCan(ts)} returns \axiom{ts} in an normalized shape
+ ++ if \axiom{ts} is zero-dimensional.
+ zeroSetSplit: (LP, B) -> List ST
+ ++ \axiom{zeroSetSplit(lp,clos?)} has the same specifications as
+ ++ \axiomOpFrom{zeroSetSplit(lp,clos?)}{RegularTriangularSetCategory}.
+
+ Implementation == add
+
+ convert(st: ST): TS ==
+ ts: TS := empty()
+ lp: LP := members(st)$ST
+ lp := sort(infRittWu?,lp)
+ for p in lp repeat
+ ts := internalAugment(p,ts)$TS
+ ts
+
+ squareFree(ts: TS): List ST ==
+ empty? ts => [empty()$ST]
+ lp: LP := members(ts)$TS
+ lp := sort(infRittWu?,lp)
+ newts: ST := empty()$ST
+ toSee: List ST := [newts]
+ toSave: List ST
+ for p in lp repeat
+ toSave := []
+ while (not empty? toSee) repeat
+ us := first toSee; toSee := rest toSee
+ lpwt := stoseSquareFreePart(p,us)$regsetgcdpack
+ for pwt in lpwt repeat
+ newus := internalAugment(pwt.val,pwt.tower)$ST
+ toSave := cons(newus,toSave)
+ toSee := toSave
+ toSave
+
+ normalizeIfCan(ts: ST): ST ==
+ empty? ts => ts
+ lp: LP := members(ts)$ST
+ lp := sort(infRittWu?,lp)
+ p: P := first lp
+ not univariate?(p)$polsetpack => ts
+ lp := rest lp
+ newts: ST := empty()$ST
+ newts := internalAugment(p,newts)$ST
+ while (not empty? lp) repeat
+ p := first lp
+ lv := variables(p)
+ for v in lv repeat
+ v = mvar(p) => "leave"
+ not algebraic?(v,newts) => return internalAugment(lp,newts)$ST
+ lp := rest lp
+ p := normalizedAssociate(p,newts)$normalizpack
+ newts := internalAugment(p,newts)$ST
+ newts
+
+ zeroSetSplit(lp:List(P), clos?:B): List ST ==
+ -- if clos? then SOLVE in the closure sense
+ toSee: Split := zeroSetSplit(lp, clos?)$TS
+ toSave: List ST := []
+ for ts in toSee repeat
+ toSave := concat(squareFree(ts),toSave)
+ toSave := removeSuperfluousQuasiComponents(toSave)$quasicomppack
+ [normalizeIfCan(ts) for ts in toSave]
+
+@
+\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>>
+
+<<category SNTSCAT SquareFreeNormalizedTriangularSetCategory>>
+<<package LAZM3PK LazardSetSolvingPackage>>
+@
+\eject
+\begin{thebibliography}{99}
+\bibitem{1} nothing
+\end{thebibliography}
+\end{document}