aboutsummaryrefslogtreecommitdiff
path: root/src/algebra
diff options
context:
space:
mode:
Diffstat (limited to 'src/algebra')
-rw-r--r--src/algebra/Makefile.in19
-rw-r--r--src/algebra/Makefile.pamphlet19
-rw-r--r--src/algebra/catdef.spad.pamphlet98
-rw-r--r--src/algebra/exposed.lsp.pamphlet3
-rw-r--r--src/algebra/op.spad.pamphlet2
-rw-r--r--src/algebra/strap/ABELGRP.lsp13
-rw-r--r--src/algebra/strap/DFLOAT.lsp19
-rw-r--r--src/algebra/strap/INT.lsp27
-rw-r--r--src/algebra/strap/SINT.lsp30
-rw-r--r--src/algebra/term.spad.pamphlet9
10 files changed, 162 insertions, 77 deletions
diff --git a/src/algebra/Makefile.in b/src/algebra/Makefile.in
index cee9ae4c..db050ac9 100644
--- a/src/algebra/Makefile.in
+++ b/src/algebra/Makefile.in
@@ -301,11 +301,11 @@ $(OUT)/LOGIC.$(FASLEXT): $(OUT)/BASTYPE.$(FASLEXT)
$(OUT)/SGROUP.$(FASLEXT) $(OUT)/SGROUP-.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT)
$(OUT)/ABELSG.$(FASLEXT) $(OUT)/ABELSG-.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT)
-$(OUT)/LMODULE.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT)
-$(OUT)/RMODULE.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT)
+$(OUT)/LMODULE.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT) $(OUT)/LLINSET.$(FASLEXT)
+$(OUT)/RMODULE.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT) $(OUT)/RLINSET.$(FASLEXT)
$(OUT)/BMODULE.$(FASLEXT): $(OUT)/LMODULE.$(FASLEXT) \
$(OUT)/RMODULE.$(FASLEXT) $(OUT)/SGROUP.$(FASLEXT)
-$(OUT)/MODULE.$(FASLEXT): $(OUT)/BMODULE.$(FASLEXT)
+$(OUT)/MODULE.$(FASLEXT): $(OUT)/BMODULE.$(FASLEXT) $(OUT)/LINSET.$(FASLEXT)
$(OUT)/ALGEBRA.$(FASLEXT): $(OUT)/MODULE.$(FASLEXT)
$(OUT)/OAGROUP.$(FASLEXT): $(OUT)/OCAMON.$(FASLEXT)
$(OUT)/OCAMON.$(FASLEXT): $(OUT)/OAMON.$(FASLEXT)
@@ -313,10 +313,13 @@ $(OUT)/OAMON.$(FASLEXT): $(OUT)/OASGP.$(FASLEXT)
$(OUT)/OASGP.$(FASLEXT): $(OUT)/ORDSET.$(FASLEXT) $(OUT)/ABELSG.$(FASLEXT)
$(OUT)/RNG.$(FASLEXT): $(OUT)/SGROUP.$(FASLEXT)
+$(OUT)/LLINSET.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT)
+$(OUT)/RLINSET.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT)
+$(OUT)/LINSET.$(FASLEXT): $(OUT)/LLINSET.$(FASLEXT) $(OUT)/RLINSET.$(FASLEXT)
+
$(OUT)/CTORKIND.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT)
$(OUT)/IOMODE.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT)
-$(OUT)/REF.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT) $(OUT)/IDENT.$(FASLEXT)
$(OUT)/PRINT.$(FASLEXT): $(OUT)/TYPE.$(FASLEXT)
$(OUT)/RTVALUE.$(FASLEXT): $(OUT)/TYPE.$(FASLEXT)
@@ -330,7 +333,7 @@ axiom_algebra_layer_0 = \
RMODULE ALGEBRA ALGEBRA- SGROUP SGROUP- ABELSG \
ABELSG- ORDSET ORDSET- OASGP FILECAT SEXCAT \
MODULE MODULE- PID OAGROUP OCAMON OAMON \
- RNG ORDFIN \
+ RNG ORDFIN LLINSET RLINSET LINSET \
MKBCFUNC MKRECORD MKUCFUNC DROPT1 PLOT1 ITFUN2 \
ITFUN3 STREAM1 STREAM2 STREAM3 ANY1 SEGBIND2 \
COMBOPC EQ2 NONE1 CONDUIT IOMODE CTORKIND \
@@ -374,7 +377,7 @@ $(OUT)/BYTEORD.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT)
$(OUT)/RING.$(FASLEXT): $(OUT)/RNG.$(FASLEXT) $(OUT)/MONOID.$(FASLEXT) \
$(OUT)/LMODULE.$(FASLEXT) $(OUT)/KOERCE.$(FASLEXT)
$(OUT)/MONOID.$(FASLEXT): $(OUT)/SGROUP.$(FASLEXT)
-$(OUT)/ABELGRP.$(FASLEXT): $(OUT)/CABMON.$(FASLEXT)
+$(OUT)/ABELGRP.$(FASLEXT): $(OUT)/CABMON.$(FASLEXT) $(OUT)/LLINSET.$(FASLEXT)
$(OUT)/ABELMON.$(FASLEXT): $(OUT)/ABELSG.$(FASLEXT)
$(OUT)/ORDRING.$(FASLEXT): $(OUT)/OAGROUP.$(FASLEXT) $(OUT)/RING.$(FASLEXT) \
$(OUT)/MONOID.$(FASLEXT)
@@ -388,17 +391,17 @@ $(OUT)/GCDDOM.$(FASLEXT): $(OUT)/INTDOM.$(FASLEXT)
$(OUT)/UFD.$(FASLEXT): $(OUT)/GCDDOM.$(FASLEXT) $(OUT)/ES.$(FASLEXT)
$(OUT)/ES.$(FASLEXT): $(OUT)/RING.$(FASLEXT) $(OUT)/CACHSET.$(FASLEXT) \
$(OUT)/REF.$(FASLEXT) $(OUT)/ALIST.$(FASLEXT) \
- $(OUT)/PATAB.$(FASLEXT)
+ $(OUT)/PATAB.$(FASLEXT) $(OUT)/PRIMARR.$(FASLEXT)
$(OUT)/CACHSET.$(FASLEXT): $(OUT)/ORDSET.$(FASLEXT)
$(OUT)/ALIST.$(FASLEXT): $(OUT)/ALAGG.$(FASLEXT)
$(OUT)/PATAB.$(FASLEXT): $(OUT)/TYPE.$(FASLEXT)
$(OUT)/BOOLEAN.$(FASLEXT): $(OUT)/PROPLOG.$(FASLEXT)
-$(OUT)/ES.$(FASLEXT): $(OUT)/PRIMARR.$(FASLEXT)
$(OUT)/VECTCAT.$(FASLEXT): $(OUT)/RADCAT.$(FASLEXT)
$(OUT)/IARRAY1.$(FASLEXT): $(OUT)/PRIMARR.$(FASLEXT)
$(OUT)/PROPERTY.$(FASLEXT): $(OUT)/IDENT.$(FASLEXT)
$(OUT)/BINDING.$(FASLEXT): $(OUT)/PROPERTY.$(FASLEXT)
$(OUT)/OPERCAT.$(FASLEXT): $(OUT)/ARITY.$(FASLEXT)
+$(OUT)/REF.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT) $(OUT)/IDENT.$(FASLEXT)
axiom_algebra_layer_1 = \
ABELGRP ABELGRP- ABELMON ABELMON- FORTCAT ITUPLE \
diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet
index ad0818cf..1d0e4a83 100644
--- a/src/algebra/Makefile.pamphlet
+++ b/src/algebra/Makefile.pamphlet
@@ -255,11 +255,11 @@ $(OUT)/LOGIC.$(FASLEXT): $(OUT)/BASTYPE.$(FASLEXT)
$(OUT)/SGROUP.$(FASLEXT) $(OUT)/SGROUP-.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT)
$(OUT)/ABELSG.$(FASLEXT) $(OUT)/ABELSG-.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT)
-$(OUT)/LMODULE.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT)
-$(OUT)/RMODULE.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT)
+$(OUT)/LMODULE.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT) $(OUT)/LLINSET.$(FASLEXT)
+$(OUT)/RMODULE.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT) $(OUT)/RLINSET.$(FASLEXT)
$(OUT)/BMODULE.$(FASLEXT): $(OUT)/LMODULE.$(FASLEXT) \
$(OUT)/RMODULE.$(FASLEXT) $(OUT)/SGROUP.$(FASLEXT)
-$(OUT)/MODULE.$(FASLEXT): $(OUT)/BMODULE.$(FASLEXT)
+$(OUT)/MODULE.$(FASLEXT): $(OUT)/BMODULE.$(FASLEXT) $(OUT)/LINSET.$(FASLEXT)
$(OUT)/ALGEBRA.$(FASLEXT): $(OUT)/MODULE.$(FASLEXT)
$(OUT)/OAGROUP.$(FASLEXT): $(OUT)/OCAMON.$(FASLEXT)
$(OUT)/OCAMON.$(FASLEXT): $(OUT)/OAMON.$(FASLEXT)
@@ -267,10 +267,13 @@ $(OUT)/OAMON.$(FASLEXT): $(OUT)/OASGP.$(FASLEXT)
$(OUT)/OASGP.$(FASLEXT): $(OUT)/ORDSET.$(FASLEXT) $(OUT)/ABELSG.$(FASLEXT)
$(OUT)/RNG.$(FASLEXT): $(OUT)/SGROUP.$(FASLEXT)
+$(OUT)/LLINSET.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT)
+$(OUT)/RLINSET.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT)
+$(OUT)/LINSET.$(FASLEXT): $(OUT)/LLINSET.$(FASLEXT) $(OUT)/RLINSET.$(FASLEXT)
+
$(OUT)/CTORKIND.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT)
$(OUT)/IOMODE.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT)
-$(OUT)/REF.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT) $(OUT)/IDENT.$(FASLEXT)
$(OUT)/PRINT.$(FASLEXT): $(OUT)/TYPE.$(FASLEXT)
$(OUT)/RTVALUE.$(FASLEXT): $(OUT)/TYPE.$(FASLEXT)
@@ -284,7 +287,7 @@ axiom_algebra_layer_0 = \
RMODULE ALGEBRA ALGEBRA- SGROUP SGROUP- ABELSG \
ABELSG- ORDSET ORDSET- OASGP FILECAT SEXCAT \
MODULE MODULE- PID OAGROUP OCAMON OAMON \
- RNG ORDFIN \
+ RNG ORDFIN LLINSET RLINSET LINSET \
MKBCFUNC MKRECORD MKUCFUNC DROPT1 PLOT1 ITFUN2 \
ITFUN3 STREAM1 STREAM2 STREAM3 ANY1 SEGBIND2 \
COMBOPC EQ2 NONE1 CONDUIT IOMODE CTORKIND \
@@ -333,7 +336,7 @@ $(OUT)/BYTEORD.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT)
$(OUT)/RING.$(FASLEXT): $(OUT)/RNG.$(FASLEXT) $(OUT)/MONOID.$(FASLEXT) \
$(OUT)/LMODULE.$(FASLEXT) $(OUT)/KOERCE.$(FASLEXT)
$(OUT)/MONOID.$(FASLEXT): $(OUT)/SGROUP.$(FASLEXT)
-$(OUT)/ABELGRP.$(FASLEXT): $(OUT)/CABMON.$(FASLEXT)
+$(OUT)/ABELGRP.$(FASLEXT): $(OUT)/CABMON.$(FASLEXT) $(OUT)/LLINSET.$(FASLEXT)
$(OUT)/ABELMON.$(FASLEXT): $(OUT)/ABELSG.$(FASLEXT)
$(OUT)/ORDRING.$(FASLEXT): $(OUT)/OAGROUP.$(FASLEXT) $(OUT)/RING.$(FASLEXT) \
$(OUT)/MONOID.$(FASLEXT)
@@ -347,17 +350,17 @@ $(OUT)/GCDDOM.$(FASLEXT): $(OUT)/INTDOM.$(FASLEXT)
$(OUT)/UFD.$(FASLEXT): $(OUT)/GCDDOM.$(FASLEXT) $(OUT)/ES.$(FASLEXT)
$(OUT)/ES.$(FASLEXT): $(OUT)/RING.$(FASLEXT) $(OUT)/CACHSET.$(FASLEXT) \
$(OUT)/REF.$(FASLEXT) $(OUT)/ALIST.$(FASLEXT) \
- $(OUT)/PATAB.$(FASLEXT)
+ $(OUT)/PATAB.$(FASLEXT) $(OUT)/PRIMARR.$(FASLEXT)
$(OUT)/CACHSET.$(FASLEXT): $(OUT)/ORDSET.$(FASLEXT)
$(OUT)/ALIST.$(FASLEXT): $(OUT)/ALAGG.$(FASLEXT)
$(OUT)/PATAB.$(FASLEXT): $(OUT)/TYPE.$(FASLEXT)
$(OUT)/BOOLEAN.$(FASLEXT): $(OUT)/PROPLOG.$(FASLEXT)
-$(OUT)/ES.$(FASLEXT): $(OUT)/PRIMARR.$(FASLEXT)
$(OUT)/VECTCAT.$(FASLEXT): $(OUT)/RADCAT.$(FASLEXT)
$(OUT)/IARRAY1.$(FASLEXT): $(OUT)/PRIMARR.$(FASLEXT)
$(OUT)/PROPERTY.$(FASLEXT): $(OUT)/IDENT.$(FASLEXT)
$(OUT)/BINDING.$(FASLEXT): $(OUT)/PROPERTY.$(FASLEXT)
$(OUT)/OPERCAT.$(FASLEXT): $(OUT)/ARITY.$(FASLEXT)
+$(OUT)/REF.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT) $(OUT)/IDENT.$(FASLEXT)
axiom_algebra_layer_1 = \
ABELGRP ABELGRP- ABELMON ABELMON- FORTCAT ITUPLE \
diff --git a/src/algebra/catdef.spad.pamphlet b/src/algebra/catdef.spad.pamphlet
index ae0d4f50..c7263464 100644
--- a/src/algebra/catdef.spad.pamphlet
+++ b/src/algebra/catdef.spad.pamphlet
@@ -1,14 +1,77 @@
\documentclass{article}
\usepackage{axiom}
-\begin{document}
+
\title{\$SPAD/src/algebra catdef.spad}
-\author{James Davenport, Lalo Gonzalez-Vega}
+\author{James Davenport, Lalo Gonzalez-Vega, Gabriel Dos~Reis}
+
+\begin{document}
+
\maketitle
\begin{abstract}
\end{abstract}
-\eject
\tableofcontents
\eject
+
+\section{Linear sets}
+
+<<category LLINSET LeftLinearSet>>=
+)abbrev category LLINSET LeftLinearSet
+++ Author: Gabriel Dos Reis
+++ Date Created: May 31, 2009
+++ Date Last Modified: May 31, 2009
+++ Description:
+++ A set is an \spad{R}-left linear set if it is stable by left-dilation
+++ by elements in the ring \spad{R}. This category differs from
+++ \spad{LeftModule} in that no other assumption (such as addition)
+++ is made about the underlying set.
+++ See Also: RightLinearSet.
+LeftLinearSet(R: Rng): Category == SetCategory with
+ 0: %
+ ++ \spad{0} represents the origin of the linear set
+ zero?: % -> Boolean
+ ++ \spad{zero? x} holds is \spad{x} is the origin.
+ *: (R,%) -> %
+ ++ \spad{r*x} is the left-dilation of \spad{x} by \spad{r}.
+
+@
+
+<<category RLINSET RightLinearSet>>=
+)abbrev category RLINSET RightLinearSet
+++ Author: Gabriel Dos Reis
+++ Date Created: May 31, 2009
+++ Date Last Modified: May 31, 2009
+++ Description:
+++ A set is an \spad{R}-right linear set if it is stable by right-dilation
+++ by elements in the ring \spad{R}. This category differs from
+++ \spad{RightModule} in that no other assumption (such as addition)
+++ is made about the underlying set.
+++ See Also: LeftLinearSet.
+RightLinearSet(R: Rng): Category == SetCategory with
+ 0: %
+ ++ \spad{0} represents the origin of the linear set
+ zero?: % -> Boolean
+ ++ \spad{zero? x} holds is \spad{x} is the origin.
+ *: (%,R) -> %
+ ++ \spad{r*x} is the left-dilation of \spad{x} by \spad{r}.
+
+@
+
+<<category LINSET LinearSet>>=
+)abbrev category LINSET LinearSet
+++ Author: Gabriel Dos Reis
+++ Date Created: May 31, 2009
+++ Date Last Modified: May 31, 2009
+++ Description:
+++ A set is an \spad{R}-linear set if it is stable by dilation
+++ by elements in the ring \spad{R}. This category differs from
+++ \spad{Module} in that no other assumption (such as addition)
+++ is made about the underlying set.
+++ See Also: LeftLinearSet, RightLinearSet.
+LinearSet(R: Rng): Category == Join(LeftLinearSet R, RightLinearSet R)
+
+@
+
+
\section{category ABELGRP AbelianGroup}
<<category ABELGRP AbelianGroup>>=
)abbrev category ABELGRP AbelianGroup
@@ -29,13 +92,10 @@
++ \spad{-(-x) = x}
++ \spad{x+(-x) = 0}
-- following domain must be compiled with subsumption disabled
-AbelianGroup(): Category == CancellationAbelianMonoid with
- --operations
- "-": % -> % ++ -x is the additive inverse of x.
- "-": (%,%) -> % ++ x-y is the difference of x and y
- ++ i.e. \spad{x + (-y)}.
- -- subsumes the partial subtraction from previous
- "*": (Integer,%) -> % ++ n*x is the product of x by the integer n.
+AbelianGroup(): Category == Join(CancellationAbelianMonoid, LeftLinearSet Integer) with
+ -: % -> % ++ \spad{-x} is the additive inverse of \spad{x}
+ "-": (%,%) -> % ++ \spad{x-y} is the difference of \spad{x}
+ ++ and \spad{y} i.e. \spad{x + (-y)}.
add
(x:% - y:%):% == x+(-y)
subtractIfCan(x:%, y:%):Union(%, "failed") == (x-y) :: Union(%,"failed")
@@ -923,12 +983,10 @@ IntegralDomain(): Category ==
++ \spad{ (a*b)*x = a*(b*x) }
++ \spad{ (a+b)*x = (a*x)+(b*x) }
++ \spad{ a*(x+y) = (a*x)+(a*y) }
-LeftModule(R:Rng):Category == AbelianGroup with
- --operations
- "*": (R,%) -> % ++ r*x returns the left multiplication of the module element x
- ++ by the ring element r.
+LeftModule(R:Rng):Category == Join(AbelianGroup, LeftLinearSet R)
@
+
\section{category LINEXP LinearlyExplicitRingOver}
<<category LINEXP LinearlyExplicitRingOver>>=
)abbrev category LINEXP LinearlyExplicitRingOver
@@ -972,7 +1030,7 @@ LinearlyExplicitRingOver(R:Ring): Category == Ring with
++ \spad{(a*b)*x = a*(b*x)}
++ \spad{(a+b)*x = (a*x)+(b*x)}
++ \spad{a*(x+y) = (a*x)+(a*y)}
-Module(R:CommutativeRing): Category == BiModule(R,R)
+Module(R:CommutativeRing): Category == Join(BiModule(R,R), LinearSet R)
add
if not(R is %) then x:%*r:R == r*x
@@ -1502,12 +1560,10 @@ PrincipalIdealDomain(): Category == GcdDomain with
++ \spad{ x*(a*b) = (x*a)*b }
++ \spad{ x*(a+b) = (x*a)+(x*b) }
++ \spad{ (x+y)*x = (x*a)+(y*a) }
-RightModule(R:Rng):Category == AbelianGroup with
- --operations
- "*": (%,R) -> % ++ x*r returns the right multiplication of the module element x
- ++ by the ring element r.
+RightModule(R:Rng):Category == Join(AbelianGroup, RightLinearSet R)
@
+
\section{category RING Ring}
<<category RING Ring>>=
)abbrev category RING Ring
@@ -1524,7 +1580,6 @@ RightModule(R:Rng):Category == AbelianGroup with
++ The category of rings with unity, always associative, but
++ not necessarily commutative.
---Ring(): Category == Join(Rng,Monoid,LeftModule(%:Rng)) with
Ring(): Category == Join(Rng,Monoid,LeftModule(%),CoercibleFrom Integer) with
--operations
characteristic: NonNegativeInteger
@@ -1784,6 +1839,9 @@ VectorSpace(S:Field): Category == Module(S) with
<<category CABMON CancellationAbelianMonoid>>
<<category ABELGRP AbelianGroup>>
<<category RNG Rng>>
+<<category LLINSET LeftLinearSet>>
+<<category RLINSET RightLinearSet>>
+<<category LINSET LinearSet>>
<<category LMODULE LeftModule>>
<<category RMODULE RightModule>>
<<category RING Ring>>
diff --git a/src/algebra/exposed.lsp.pamphlet b/src/algebra/exposed.lsp.pamphlet
index c1ca17ae..5247a755 100644
--- a/src/algebra/exposed.lsp.pamphlet
+++ b/src/algebra/exposed.lsp.pamphlet
@@ -679,11 +679,13 @@
(|KeyedDictionary| . KDAGG)
(|LazyStreamAggregate| . LZSTAGG)
(|LeftAlgebra| . LALG)
+ (|LeftLinearSet| . LLINSET)
(|LeftModule| . LMODULE)
(|LieAlgebra| . LIECAT)
(|LinearAggregate| . LNAGG)
(|LinearlyExplicitRingOver| . LINEXP)
(|LinearOrdinaryDifferentialOperatorCategory| . LODOCAT)
+ (|LinearSet| . LINSET)
(|LiouvillianFunctionCategory| . LFCAT)
(|ListAggregate| . LSAGG)
(|Logic| . LOGIC)
@@ -752,6 +754,7 @@
(|RetractableTo| . RETRACT)
(|RGBColorModel| . RGBCMDL)
(|RGBColorSpace| . RGBCSPC)
+ (|RightLinearSet| . RLINSET)
(|RightModule| . RMODULE)
(|Ring| . RING)
(|Rng| . RNG)
diff --git a/src/algebra/op.spad.pamphlet b/src/algebra/op.spad.pamphlet
index a467dd0e..09fba256 100644
--- a/src/algebra/op.spad.pamphlet
+++ b/src/algebra/op.spad.pamphlet
@@ -78,8 +78,6 @@ BasicOperator(): Exports == Implementation where
input : $ -> Union(List SEX -> SEX, "failed")
++ input(op) returns the "%input" property of op if
++ it has one attached, "failed" otherwise.
- is? : ($, Symbol) -> Boolean
- ++ is?(op, s) tests if the name of op is s.
has? : (%, Identifier) -> Boolean
++ \spad{has?(op,p)} tests if property \spad{s} is attached to \spad{op}.
assert : (%, Identifier) -> $
diff --git a/src/algebra/strap/ABELGRP.lsp b/src/algebra/strap/ABELGRP.lsp
index 467559ce..cd7922b8 100644
--- a/src/algebra/strap/ABELGRP.lsp
+++ b/src/algebra/strap/ABELGRP.lsp
@@ -4,14 +4,15 @@
(DEFPARAMETER |AbelianGroup;AL| 'NIL)
(DEFUN |AbelianGroup;| ()
- (PROG (#0=#:G1399)
+ (PROG (#0=#:G1400)
(RETURN
(PROG1 (LETT #0#
- (|Join| (|CancellationAbelianMonoid|)
- (|mkCategory| '|domain|
- '(((- ($ $)) T) ((- ($ $ $)) T)
- ((* ($ (|Integer|) $)) T))
- NIL '((|Integer|)) NIL))
+ (|sublisV| (PAIR '(#1=#:G1399) (LIST '(|Integer|)))
+ (|Join| (|CancellationAbelianMonoid|)
+ (|LeftLinearSet| '#1#)
+ (|mkCategory| '|domain|
+ '(((- ($ $)) T) ((- ($ $ $)) T)) NIL
+ 'NIL NIL)))
|AbelianGroup|)
(|setShellEntry| #0# 0 '(|AbelianGroup|))))))
diff --git a/src/algebra/strap/DFLOAT.lsp b/src/algebra/strap/DFLOAT.lsp
index 58577fe4..582076db 100644
--- a/src/algebra/strap/DFLOAT.lsp
+++ b/src/algebra/strap/DFLOAT.lsp
@@ -1031,7 +1031,7 @@
(CONS (|makeByteWordVec2| 1
'(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0))
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(CONS '#(|FloatingPointSystem&| |RealNumberSystem&|
|Field&| |EuclideanDomain&| NIL
|UniqueFactorizationDomain&| |GcdDomain&|
@@ -1039,9 +1039,10 @@
|Algebra&| |DifferentialRing&| NIL
|OrderedRing&| |Module&| NIL NIL |Module&| NIL
NIL |Ring&| NIL NIL NIL NIL NIL NIL NIL
- |AbelianGroup&| NIL NIL NIL |AbelianMonoid&|
- |Monoid&| NIL |OrderedSet&|
- |AbelianSemiGroup&| |SemiGroup&|
+ |AbelianGroup&| NIL NIL NIL NIL NIL
+ |AbelianMonoid&| |Monoid&| NIL |OrderedSet&|
+ NIL NIL NIL NIL |AbelianSemiGroup&|
+ |SemiGroup&| NIL
|TranscendentalFunctionCategory&|
|RetractableTo&| |RetractableTo&| NIL
|SetCategory&| NIL
@@ -1072,9 +1073,15 @@
(|OrderedAbelianMonoid|)
(|CancellationAbelianMonoid|)
(|OrderedAbelianSemiGroup|)
+ (|LinearSet| 112) (|LinearSet| $$)
(|AbelianMonoid|) (|Monoid|)
(|PatternMatchable| 109) (|OrderedSet|)
+ (|LeftLinearSet| 112)
+ (|RightLinearSet| 112)
+ (|LeftLinearSet| $$)
+ (|RightLinearSet| $$)
(|AbelianSemiGroup|) (|SemiGroup|)
+ (|LeftLinearSet| 26)
(|TranscendentalFunctionCategory|)
(|RetractableTo| 112)
(|RetractableTo| 26) (|RealConstant|)
@@ -1150,8 +1157,8 @@
20 1 0 0 0 105 1 0 0 0 1 2 0 0 0 113
1 2 0 0 0 0 107 2 0 19 0 0 1 2 0 19 0
0 1 2 0 19 0 0 62 2 0 19 0 0 1 2 0 19
- 0 0 54 2 0 0 0 26 63 2 0 0 0 0 45 1 0
- 0 0 55 2 0 0 0 0 57 2 0 0 0 0 56 2 0
+ 0 0 54 2 0 0 0 26 63 2 0 0 0 0 45 2 0
+ 0 0 0 57 1 0 0 0 55 2 0 0 0 0 56 2 0
0 0 0 67 2 0 0 0 112 149 2 0 0 0 26
66 2 0 0 0 113 1 2 0 0 0 24 1 2 0 0
112 0 1 2 0 0 0 112 1 2 0 0 0 0 58 2
diff --git a/src/algebra/strap/INT.lsp b/src/algebra/strap/INT.lsp
index 2d9d4f7a..038285e5 100644
--- a/src/algebra/strap/INT.lsp
+++ b/src/algebra/strap/INT.lsp
@@ -623,17 +623,19 @@
(|unitsKnown| . 0))
(CONS (|makeByteWordVec2| 1
'(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0))
(CONS '#(|IntegerNumberSystem&| |EuclideanDomain&|
|UniqueFactorizationDomain&| NIL NIL
|GcdDomain&| |IntegralDomain&| |Algebra&| NIL
NIL |DifferentialRing&| |OrderedRing&| NIL NIL
|Module&| NIL |Ring&| NIL NIL NIL NIL NIL
- |AbelianGroup&| NIL NIL NIL |AbelianMonoid&|
- |Monoid&| NIL NIL |OrderedSet&|
- |AbelianSemiGroup&| |SemiGroup&| NIL
- |RetractableTo&| |SetCategory&| NIL NIL NIL
- NIL NIL NIL NIL NIL NIL NIL |BasicType&| NIL)
+ |AbelianGroup&| NIL NIL NIL NIL
+ |AbelianMonoid&| |Monoid&| NIL NIL
+ |OrderedSet&| NIL NIL |AbelianSemiGroup&|
+ |SemiGroup&| NIL NIL |RetractableTo&|
+ |SetCategory&| NIL NIL NIL NIL NIL NIL NIL NIL
+ NIL NIL |BasicType&| NIL)
(CONS '#((|IntegerNumberSystem|)
(|EuclideanDomain|)
(|UniqueFactorizationDomain|)
@@ -653,10 +655,13 @@
(|OrderedAbelianMonoid|)
(|CancellationAbelianMonoid|)
(|OrderedAbelianSemiGroup|)
- (|AbelianMonoid|) (|Monoid|)
- (|StepThrough|) (|PatternMatchable| 17)
- (|OrderedSet|) (|AbelianSemiGroup|)
- (|SemiGroup|) (|RealConstant|)
+ (|LinearSet| $$) (|AbelianMonoid|)
+ (|Monoid|) (|StepThrough|)
+ (|PatternMatchable| 17) (|OrderedSet|)
+ (|LeftLinearSet| $$)
+ (|RightLinearSet| $$)
+ (|AbelianSemiGroup|) (|SemiGroup|)
+ (|LeftLinearSet| 17) (|RealConstant|)
(|RetractableTo| 17) (|SetCategory|)
(|OpenMath|) (|ConvertibleTo| 14)
(|ConvertibleTo| 55)
@@ -713,7 +718,7 @@
0 9 27 2 0 11 12 0 28 1 0 14 0 26 1 0
0 0 1 2 0 0 0 7 1 2 0 9 0 0 1 2 0 9 0
0 1 2 0 9 0 0 33 2 0 9 0 0 1 2 0 9 0
- 0 10 2 0 0 0 0 39 1 0 0 0 16 2 0 0 0
+ 0 10 1 0 0 0 16 2 0 0 0 0 39 2 0 0 0
0 37 2 0 0 0 7 81 2 0 0 0 137 1 2 0 0
0 0 52 2 0 0 17 0 80 2 0 0 7 0 1 2 0
0 137 0 1)))))
diff --git a/src/algebra/strap/SINT.lsp b/src/algebra/strap/SINT.lsp
index b3ec9c35..cf309a77 100644
--- a/src/algebra/strap/SINT.lsp
+++ b/src/algebra/strap/SINT.lsp
@@ -599,19 +599,19 @@
(|leftUnitary| . 0) (|unitsKnown| . 0))
(CONS (|makeByteWordVec2| 1
'(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 0))
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0))
(CONS '#(|IntegerNumberSystem&| |EuclideanDomain&|
|UniqueFactorizationDomain&| NIL NIL
|GcdDomain&| |IntegralDomain&| |Algebra&| NIL
NIL |DifferentialRing&| |OrderedRing&| NIL NIL
|Module&| NIL |Ring&| NIL NIL NIL NIL NIL
- |AbelianGroup&| NIL NIL NIL NIL
+ |AbelianGroup&| NIL NIL NIL NIL NIL
|AbelianMonoid&| |Monoid&| NIL NIL NIL
- |OrderedSet&| |AbelianSemiGroup&| |SemiGroup&|
- |Logic&| NIL |RetractableTo&| |SetCategory&|
- NIL NIL NIL NIL NIL NIL NIL NIL NIL
- |BasicType&| NIL)
+ |OrderedSet&| NIL NIL |AbelianSemiGroup&|
+ |SemiGroup&| NIL |Logic&| NIL |RetractableTo&|
+ |SetCategory&| NIL NIL NIL NIL NIL NIL NIL NIL
+ NIL |BasicType&| NIL)
(CONS '#((|IntegerNumberSystem|)
(|EuclideanDomain|)
(|UniqueFactorizationDomain|)
@@ -632,12 +632,16 @@
(|CancellationAbelianMonoid|)
(|OrderedFinite|)
(|OrderedAbelianSemiGroup|)
- (|AbelianMonoid|) (|Monoid|) (|Finite|)
- (|StepThrough|) (|PatternMatchable| 5)
- (|OrderedSet|) (|AbelianSemiGroup|)
- (|SemiGroup|) (|Logic|) (|RealConstant|)
- (|RetractableTo| 5) (|SetCategory|)
- (|OpenMath|) (|ConvertibleTo| 98)
+ (|LinearSet| $$) (|AbelianMonoid|)
+ (|Monoid|) (|Finite|) (|StepThrough|)
+ (|PatternMatchable| 5) (|OrderedSet|)
+ (|LeftLinearSet| $$)
+ (|RightLinearSet| $$)
+ (|AbelianSemiGroup|) (|SemiGroup|)
+ (|LeftLinearSet| 5) (|Logic|)
+ (|RealConstant|) (|RetractableTo| 5)
+ (|SetCategory|) (|OpenMath|)
+ (|ConvertibleTo| 98)
(|ConvertibleTo| 96)
(|CombinatorialFunctionCategory|)
(|ConvertibleTo| 100)
diff --git a/src/algebra/term.spad.pamphlet b/src/algebra/term.spad.pamphlet
index 6a9071c7..da897986 100644
--- a/src/algebra/term.spad.pamphlet
+++ b/src/algebra/term.spad.pamphlet
@@ -72,12 +72,15 @@ Arity(): Public == Private where
OperatorCategory(S: SetCategory): Category ==
SetCategory with
name: % -> S
- ++ name(op) returns the externam name of `op'.
+ ++ \spad{name(op)} returns the externam name of \spad{op}.
arity: % -> Arity
- ++ arity(op) returns the arity of the operator `op'.
+ ++ \spad{arity(op)} returns the arity of the operator \spad{op}.
+ is?: (%,S) -> Boolean
+ ++ \spad{is?(op,n)} holds if the name of the operator \spad{op}
+ ++ is \spad{n}.
add
coerce(op: %): OutputForm == name(op)::OutputForm
-
+ is?(op,n) == name op = n
@