aboutsummaryrefslogtreecommitdiff
path: root/src/algebra
diff options
context:
space:
mode:
Diffstat (limited to 'src/algebra')
-rw-r--r--src/algebra/Makefile.am30
-rw-r--r--src/algebra/Makefile.in30
-rw-r--r--src/algebra/aggcat.spad.pamphlet16
-rw-r--r--src/algebra/lmdict.spad.pamphlet3
-rw-r--r--src/algebra/matcat.spad.pamphlet9
-rw-r--r--src/algebra/mset.spad.pamphlet3
-rw-r--r--src/algebra/newdata.spad.pamphlet5
-rw-r--r--src/algebra/polset.spad.pamphlet7
-rw-r--r--src/algebra/tree.spad.pamphlet7
-rw-r--r--src/algebra/triset.spad.pamphlet3
-rw-r--r--src/algebra/vector.spad.pamphlet4
11 files changed, 55 insertions, 62 deletions
diff --git a/src/algebra/Makefile.am b/src/algebra/Makefile.am
index 6fcb211e..49801808 100644
--- a/src/algebra/Makefile.am
+++ b/src/algebra/Makefile.am
@@ -268,7 +268,7 @@ strap-0/ARR2CAT.$(FASLEXT): strap-0/HOAGG.$(FASLEXT)
strap-0/MATCAT.$(FASLEXT): strap-0/ARR2CAT.$(FASLEXT) \
strap-0/EUCDOM.$(FASLEXT) strap-0/INTDOM.$(FASLEXT) \
- strap-0/FIELD.$(FASLEXT)
+ strap-0/FIELD.$(FASLEXT) strap-0/FINAGG.$(FASLEXT)
strap-0/IDPC.$(FASLEXT): strap-0/SETCAT.$(FASLEXT)
@@ -305,7 +305,8 @@ strap-0/RCAGG.$(FASLEXT): strap-0/HOAGG.$(FASLEXT)
strap-0/ELAGG.$(FASLEXT): strap-0/LNAGG.$(FASLEXT)
strap-0/SRAGG.$(FASLEXT): strap-0/A1AGG.$(FASLEXT)
strap-0/A1AGG.$(FASLEXT): strap-0/FLAGG.$(FASLEXT)
-strap-0/FLAGG.$(FASLEXT): strap-0/LNAGG.$(FASLEXT)
+strap-0/FLAGG.$(FASLEXT): strap-0/LNAGG.$(FASLEXT) strap-0/FINAGG.$(FASLEXT)
+strap-0/FINAGG.$(FASLEXT): strap-0/HOAGG.$(FASLEXT)
strap-0/LNAGG.$(FASLEXT): strap-0/IXAGG.$(FASLEXT) \
strap-0/CLAGG.$(FASLEXT) strap-0/ETLAB.$(FASLEXT)
strap-0/IXAGG.$(FASLEXT): strap-0/HOAGG.$(FASLEXT) \
@@ -611,7 +612,7 @@ strap-1/BTAGG.$(FASLEXT): strap-1/ORDSET.$(FASLEXT) \
strap-1/A1AGG.$(FASLEXT)
strap-1/FSAGG.$(FASLEXT): strap-1/KDAGG.$(FASLEXT) \
- strap-1/SETAGG.$(FASLEXT)
+ strap-1/SETAGG.$(FASLEXT) strap-1/FINAGG.$(FASLEXT)
strap-1/LSAGG.$(FASLEXT): strap-1/STAGG.$(FASLEXT) \
strap-1/FLAGG.$(FASLEXT) strap-1/ELAGG.$(FASLEXT)
@@ -629,7 +630,9 @@ strap-1/SRAGG.$(FASLEXT): strap-1/A1AGG.$(FASLEXT)
strap-1/A1AGG.$(FASLEXT): strap-1/FLAGG.$(FASLEXT)
-strap-1/FLAGG.$(FASLEXT): strap-1/LNAGG.$(FASLEXT)
+strap-1/FLAGG.$(FASLEXT): strap-1/LNAGG.$(FASLEXT) strap-1/FINAGG.$(FASLEXT)
+
+strap-1/FINAGG.$(FASLEXT): strap-1/HOAGG.$(FASLEXT)
strap-1/LNAGG.$(FASLEXT): strap-1/IXAGG.$(FASLEXT) \
strap-1/CLAGG.$(FASLEXT) strap-1/ETLAB.$(FASLEXT) \
@@ -664,7 +667,7 @@ strap-1/CTORCAT.$(FASLEXT): strap-1/OPERCAT.$(FASLEXT) \
strap-1/MATCAT.$(FASLEXT): strap-1/ARR2CAT.$(FASLEXT) \
strap-1/INTDOM.$(FASLEXT) strap-1/FIELD.$(FASLEXT) \
- strap-1/EUCDOM.$(FASLEXT)
+ strap-1/EUCDOM.$(FASLEXT) strap-1/FINAGG.$(FASLEXT)
strap-1/VECTCAT.$(FASLEXT): strap-1/A1AGG.$(FASLEXT) \
strap-1/ABELSG.$(FASLEXT) strap-1/ABELMON.$(FASLEXT) \
@@ -985,7 +988,7 @@ strap-2/UPOLYC.$(FASLEXT): strap-2/POLYCAT.$(FASLEXT) \
strap-2/ARR2CAT.$(FASLEXT): strap-2/HOAGG.$(FASLEXT)
strap-2/FSAGG.$(FASLEXT): strap-2/KDAGG.$(FASLEXT) \
- strap-2/SETAGG.$(FASLEXT)
+ strap-2/SETAGG.$(FASLEXT) strap-2/FINAGG.$(FASLEXT)
strap-2/ALAGG.$(FASLEXT): strap-2/TBAGG.$(FASLEXT) strap-2/LSAGG.$(FASLEXT)
strap-2/LSAGG.$(FASLEXT): strap-2/STAGG.$(FASLEXT) \
strap-2/FLAGG.$(FASLEXT) strap-2/ELAGG.$(FASLEXT)
@@ -1000,7 +1003,8 @@ strap-2/RCAGG.$(FASLEXT): strap-2/HOAGG.$(FASLEXT)
strap-2/ELAGG.$(FASLEXT): strap-2/LNAGG.$(FASLEXT)
strap-2/SRAGG.$(FASLEXT): strap-2/A1AGG.$(FASLEXT)
strap-2/A1AGG.$(FASLEXT): strap-2/FLAGG.$(FASLEXT)
-strap-2/FLAGG.$(FASLEXT): strap-2/LNAGG.$(FASLEXT)
+strap-2/FLAGG.$(FASLEXT): strap-2/LNAGG.$(FASLEXT) strap-2/FINAGG.$(FASLEXT)
+strap-2/FINAGG.$(FASLEXT): strap-2/HOAGG.$(FASLEXT)
strap-2/LNAGG.$(FASLEXT): strap-2/IXAGG.$(FASLEXT) \
strap-2/CLAGG.$(FASLEXT) strap-2/ETLAB.$(FASLEXT)
strap-2/IXAGG.$(FASLEXT): strap-2/HOAGG.$(FASLEXT) \
@@ -1019,7 +1023,7 @@ strap-2/SEXCAT.$(FASLEXT): strap-2/SETCAT.$(FASLEXT) \
strap-2/KVTFROM.$(FASLEXT) strap-2/ELTAB.$(FASLEXT)
strap-2/MATCAT.$(FASLEXT): strap-2/ARR2CAT.$(FASLEXT) \
- strap-2/FLAGG.$(FASLEXT)
+ strap-2/FLAGG.$(FASLEXT) strap-2/FINAGG.$(FASLEXT)
strap-2/CATEGORY.$(FASLEXT): strap-2/KOERCE.$(FASLEXT) \
strap-1/OUTFORM.$(FASLEXT) strap-1/LIST.$(FASLEXT) \
@@ -1347,10 +1351,10 @@ $(OUT)/ELTAGG.$(FASLEXT): $(OUT)/AGG.$(FASLEXT) $(OUT)/SETCAT.$(FASLEXT)
$(OUT)/IXAGG.$(FASLEXT): $(OUT)/ELTAGG.$(FASLEXT) $(OUT)/EVALAB.$(FASLEXT)
$(OUT)/RCAGG.$(FASLEXT): $(OUT)/EVALAB.$(FASLEXT) $(OUT)/SETCAT.$(FASLEXT) \
$(OUT)/AGG.$(FASLEXT)
-$(OUT)/QUAGG.$(FASLEXT): $(OUT)/BGAGG.$(FASLEXT)
-$(OUT)/SKAGG.$(FASLEXT): $(OUT)/BGAGG.$(FASLEXT)
+$(OUT)/QUAGG.$(FASLEXT): $(OUT)/BGAGG.$(FASLEXT) $(OUT)/FINAGG.$(FASLEXT)
+$(OUT)/SKAGG.$(FASLEXT): $(OUT)/BGAGG.$(FASLEXT) $(OUT)/FINAGG.$(FASLEXT)
$(OUT)/DQAGG.$(FASLEXT): $(OUT)/QUAGG.$(FASLEXT) $(OUT)/SKAGG.$(FASLEXT)
-$(OUT)/PRQAGG.$(FASLEXT): $(OUT)/BGAGG.$(FASLEXT)
+$(OUT)/PRQAGG.$(FASLEXT): $(OUT)/BGAGG.$(FASLEXT) $(OUT)/FINAGG.$(FASLEXT)
#$(OUT)/DLAGG.$(FASLEXT): $(OUT)/RCAGG.$(FASLEXT)
#$(OUT)/URAGG.$(FASLEXT): $(OUT)/RCAGG.$(FASLEXT)
#$(OUT)/BRAGG.$(FASLEXT): $(OUT)/RCAGG.$(FASLEXT)
@@ -1358,7 +1362,7 @@ $(OUT)/FLAGG.$(FASLEXT): $(OUT)/BMODULE.$(FASLEXT) $(OUT)/PID.$(FASLEXT) \
$(OUT)/OAGROUP.$(FASLEXT) $(OUT)/RETRACT.$(FASLEXT) \
$(OUT)/LINEXP.$(FASLEXT) $(OUT)/PATMAB.$(FASLEXT) \
$(OUT)/REAL.$(FASLEXT) $(OUT)/CHARZ.$(FASLEXT) \
- $(OUT)/DIFFSPC.$(FASLEXT)
+ $(OUT)/DIFFSPC.$(FASLEXT) $(OUT)/FINAGG.$(FASLEXT)
$(OUT)/A1AGG.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT) $(OUT)/BOOLE-.$(FASLEXT) \
$(OUT)/FLAGG.$(FASLEXT) $(OUT)/LOGIC-.$(FASLEXT) \
$(OUT)/ORDTYPE-.$(FASLEXT)
@@ -1454,6 +1458,7 @@ $(OUT)/SGPOPC.$(FASLEXT): $(OUT)/BINOPC.$(FASLEXT) $(OUT)/BASTYPE.$(FASLEXT)
$(OUT)/SGPOP.$(FASLEXT): $(OUT)/SGPOPC.$(FASLEXT) $(OUT)/SETCAT.$(FASLEXT) \
$(OUT)/BINOP.$(FASLEXT)
$(OUT)/MONOPC.$(FASLEXT): $(OUT)/SGPOPC.$(FASLEXT)
+$(OUT)/FSAGG.$(FASLEXT): $(OUT)/FINAGG.$(FASLEXT)
$(OUT)/FINAGG.$(FASLEXT): $(OUT)/HOAGG.$(FASLEXT)
@@ -1737,6 +1742,7 @@ $(OUT)/PENDTREE.$(FASLEXT): $(OUT)/TREE.$(FASLEXT)
$(OUT)/QFORM.$(FASLEXT): $(OUT)/SQMATRIX.$(FASLEXT)
$(OUT)/SQMATRIX.$(FASLEXT): $(OUT)/SMATCAT.$(FASLEXT) \
$(OUT)/MATRIX.$(FASLEXT) $(OUT)/IARRAY2.$(FASLEXT)
+$(OUT)/MATCAT.$(FASLEXT): $(OUT)/FINAGG.$(FASLEXT)
$(OUT)/SMATCAT.$(FASLEXT): $(OUT)/RMATCAT.$(FASLEXT)
$(OUT)/RMATCAT.$(FASLEXT): $(OUT)/DIRPROD.$(FASLEXT)
$(OUT)/DIRPROD.$(FASLEXT): $(OUT)/DIRPCAT.$(FASLEXT)
diff --git a/src/algebra/Makefile.in b/src/algebra/Makefile.in
index d5f800a0..c098271f 100644
--- a/src/algebra/Makefile.in
+++ b/src/algebra/Makefile.in
@@ -1758,7 +1758,7 @@ strap-0/ARR2CAT.$(FASLEXT): strap-0/HOAGG.$(FASLEXT)
strap-0/MATCAT.$(FASLEXT): strap-0/ARR2CAT.$(FASLEXT) \
strap-0/EUCDOM.$(FASLEXT) strap-0/INTDOM.$(FASLEXT) \
- strap-0/FIELD.$(FASLEXT)
+ strap-0/FIELD.$(FASLEXT) strap-0/FINAGG.$(FASLEXT)
strap-0/IDPC.$(FASLEXT): strap-0/SETCAT.$(FASLEXT)
@@ -1795,7 +1795,8 @@ strap-0/RCAGG.$(FASLEXT): strap-0/HOAGG.$(FASLEXT)
strap-0/ELAGG.$(FASLEXT): strap-0/LNAGG.$(FASLEXT)
strap-0/SRAGG.$(FASLEXT): strap-0/A1AGG.$(FASLEXT)
strap-0/A1AGG.$(FASLEXT): strap-0/FLAGG.$(FASLEXT)
-strap-0/FLAGG.$(FASLEXT): strap-0/LNAGG.$(FASLEXT)
+strap-0/FLAGG.$(FASLEXT): strap-0/LNAGG.$(FASLEXT) strap-0/FINAGG.$(FASLEXT)
+strap-0/FINAGG.$(FASLEXT): strap-0/HOAGG.$(FASLEXT)
strap-0/LNAGG.$(FASLEXT): strap-0/IXAGG.$(FASLEXT) \
strap-0/CLAGG.$(FASLEXT) strap-0/ETLAB.$(FASLEXT)
strap-0/IXAGG.$(FASLEXT): strap-0/HOAGG.$(FASLEXT) \
@@ -2101,7 +2102,7 @@ strap-1/BTAGG.$(FASLEXT): strap-1/ORDSET.$(FASLEXT) \
strap-1/A1AGG.$(FASLEXT)
strap-1/FSAGG.$(FASLEXT): strap-1/KDAGG.$(FASLEXT) \
- strap-1/SETAGG.$(FASLEXT)
+ strap-1/SETAGG.$(FASLEXT) strap-1/FINAGG.$(FASLEXT)
strap-1/LSAGG.$(FASLEXT): strap-1/STAGG.$(FASLEXT) \
strap-1/FLAGG.$(FASLEXT) strap-1/ELAGG.$(FASLEXT)
@@ -2119,7 +2120,9 @@ strap-1/SRAGG.$(FASLEXT): strap-1/A1AGG.$(FASLEXT)
strap-1/A1AGG.$(FASLEXT): strap-1/FLAGG.$(FASLEXT)
-strap-1/FLAGG.$(FASLEXT): strap-1/LNAGG.$(FASLEXT)
+strap-1/FLAGG.$(FASLEXT): strap-1/LNAGG.$(FASLEXT) strap-1/FINAGG.$(FASLEXT)
+
+strap-1/FINAGG.$(FASLEXT): strap-1/HOAGG.$(FASLEXT)
strap-1/LNAGG.$(FASLEXT): strap-1/IXAGG.$(FASLEXT) \
strap-1/CLAGG.$(FASLEXT) strap-1/ETLAB.$(FASLEXT) \
@@ -2154,7 +2157,7 @@ strap-1/CTORCAT.$(FASLEXT): strap-1/OPERCAT.$(FASLEXT) \
strap-1/MATCAT.$(FASLEXT): strap-1/ARR2CAT.$(FASLEXT) \
strap-1/INTDOM.$(FASLEXT) strap-1/FIELD.$(FASLEXT) \
- strap-1/EUCDOM.$(FASLEXT)
+ strap-1/EUCDOM.$(FASLEXT) strap-1/FINAGG.$(FASLEXT)
strap-1/VECTCAT.$(FASLEXT): strap-1/A1AGG.$(FASLEXT) \
strap-1/ABELSG.$(FASLEXT) strap-1/ABELMON.$(FASLEXT) \
@@ -2472,7 +2475,7 @@ strap-2/UPOLYC.$(FASLEXT): strap-2/POLYCAT.$(FASLEXT) \
strap-2/ARR2CAT.$(FASLEXT): strap-2/HOAGG.$(FASLEXT)
strap-2/FSAGG.$(FASLEXT): strap-2/KDAGG.$(FASLEXT) \
- strap-2/SETAGG.$(FASLEXT)
+ strap-2/SETAGG.$(FASLEXT) strap-2/FINAGG.$(FASLEXT)
strap-2/ALAGG.$(FASLEXT): strap-2/TBAGG.$(FASLEXT) strap-2/LSAGG.$(FASLEXT)
strap-2/LSAGG.$(FASLEXT): strap-2/STAGG.$(FASLEXT) \
strap-2/FLAGG.$(FASLEXT) strap-2/ELAGG.$(FASLEXT)
@@ -2487,7 +2490,8 @@ strap-2/RCAGG.$(FASLEXT): strap-2/HOAGG.$(FASLEXT)
strap-2/ELAGG.$(FASLEXT): strap-2/LNAGG.$(FASLEXT)
strap-2/SRAGG.$(FASLEXT): strap-2/A1AGG.$(FASLEXT)
strap-2/A1AGG.$(FASLEXT): strap-2/FLAGG.$(FASLEXT)
-strap-2/FLAGG.$(FASLEXT): strap-2/LNAGG.$(FASLEXT)
+strap-2/FLAGG.$(FASLEXT): strap-2/LNAGG.$(FASLEXT) strap-2/FINAGG.$(FASLEXT)
+strap-2/FINAGG.$(FASLEXT): strap-2/HOAGG.$(FASLEXT)
strap-2/LNAGG.$(FASLEXT): strap-2/IXAGG.$(FASLEXT) \
strap-2/CLAGG.$(FASLEXT) strap-2/ETLAB.$(FASLEXT)
strap-2/IXAGG.$(FASLEXT): strap-2/HOAGG.$(FASLEXT) \
@@ -2506,7 +2510,7 @@ strap-2/SEXCAT.$(FASLEXT): strap-2/SETCAT.$(FASLEXT) \
strap-2/KVTFROM.$(FASLEXT) strap-2/ELTAB.$(FASLEXT)
strap-2/MATCAT.$(FASLEXT): strap-2/ARR2CAT.$(FASLEXT) \
- strap-2/FLAGG.$(FASLEXT)
+ strap-2/FLAGG.$(FASLEXT) strap-2/FINAGG.$(FASLEXT)
strap-2/CATEGORY.$(FASLEXT): strap-2/KOERCE.$(FASLEXT) \
strap-1/OUTFORM.$(FASLEXT) strap-1/LIST.$(FASLEXT) \
@@ -2687,10 +2691,10 @@ $(OUT)/ELTAGG.$(FASLEXT): $(OUT)/AGG.$(FASLEXT) $(OUT)/SETCAT.$(FASLEXT)
$(OUT)/IXAGG.$(FASLEXT): $(OUT)/ELTAGG.$(FASLEXT) $(OUT)/EVALAB.$(FASLEXT)
$(OUT)/RCAGG.$(FASLEXT): $(OUT)/EVALAB.$(FASLEXT) $(OUT)/SETCAT.$(FASLEXT) \
$(OUT)/AGG.$(FASLEXT)
-$(OUT)/QUAGG.$(FASLEXT): $(OUT)/BGAGG.$(FASLEXT)
-$(OUT)/SKAGG.$(FASLEXT): $(OUT)/BGAGG.$(FASLEXT)
+$(OUT)/QUAGG.$(FASLEXT): $(OUT)/BGAGG.$(FASLEXT) $(OUT)/FINAGG.$(FASLEXT)
+$(OUT)/SKAGG.$(FASLEXT): $(OUT)/BGAGG.$(FASLEXT) $(OUT)/FINAGG.$(FASLEXT)
$(OUT)/DQAGG.$(FASLEXT): $(OUT)/QUAGG.$(FASLEXT) $(OUT)/SKAGG.$(FASLEXT)
-$(OUT)/PRQAGG.$(FASLEXT): $(OUT)/BGAGG.$(FASLEXT)
+$(OUT)/PRQAGG.$(FASLEXT): $(OUT)/BGAGG.$(FASLEXT) $(OUT)/FINAGG.$(FASLEXT)
#$(OUT)/DLAGG.$(FASLEXT): $(OUT)/RCAGG.$(FASLEXT)
#$(OUT)/URAGG.$(FASLEXT): $(OUT)/RCAGG.$(FASLEXT)
#$(OUT)/BRAGG.$(FASLEXT): $(OUT)/RCAGG.$(FASLEXT)
@@ -2698,7 +2702,7 @@ $(OUT)/FLAGG.$(FASLEXT): $(OUT)/BMODULE.$(FASLEXT) $(OUT)/PID.$(FASLEXT) \
$(OUT)/OAGROUP.$(FASLEXT) $(OUT)/RETRACT.$(FASLEXT) \
$(OUT)/LINEXP.$(FASLEXT) $(OUT)/PATMAB.$(FASLEXT) \
$(OUT)/REAL.$(FASLEXT) $(OUT)/CHARZ.$(FASLEXT) \
- $(OUT)/DIFFSPC.$(FASLEXT)
+ $(OUT)/DIFFSPC.$(FASLEXT) $(OUT)/FINAGG.$(FASLEXT)
$(OUT)/A1AGG.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT) $(OUT)/BOOLE-.$(FASLEXT) \
$(OUT)/FLAGG.$(FASLEXT) $(OUT)/LOGIC-.$(FASLEXT) \
$(OUT)/ORDTYPE-.$(FASLEXT)
@@ -2794,6 +2798,7 @@ $(OUT)/SGPOPC.$(FASLEXT): $(OUT)/BINOPC.$(FASLEXT) $(OUT)/BASTYPE.$(FASLEXT)
$(OUT)/SGPOP.$(FASLEXT): $(OUT)/SGPOPC.$(FASLEXT) $(OUT)/SETCAT.$(FASLEXT) \
$(OUT)/BINOP.$(FASLEXT)
$(OUT)/MONOPC.$(FASLEXT): $(OUT)/SGPOPC.$(FASLEXT)
+$(OUT)/FSAGG.$(FASLEXT): $(OUT)/FINAGG.$(FASLEXT)
$(OUT)/FINAGG.$(FASLEXT): $(OUT)/HOAGG.$(FASLEXT)
@@ -2903,6 +2908,7 @@ $(OUT)/PENDTREE.$(FASLEXT): $(OUT)/TREE.$(FASLEXT)
$(OUT)/QFORM.$(FASLEXT): $(OUT)/SQMATRIX.$(FASLEXT)
$(OUT)/SQMATRIX.$(FASLEXT): $(OUT)/SMATCAT.$(FASLEXT) \
$(OUT)/MATRIX.$(FASLEXT) $(OUT)/IARRAY2.$(FASLEXT)
+$(OUT)/MATCAT.$(FASLEXT): $(OUT)/FINAGG.$(FASLEXT)
$(OUT)/SMATCAT.$(FASLEXT): $(OUT)/RMATCAT.$(FASLEXT)
$(OUT)/RMATCAT.$(FASLEXT): $(OUT)/DIRPROD.$(FASLEXT)
$(OUT)/DIRPROD.$(FASLEXT): $(OUT)/DIRPCAT.$(FASLEXT)
diff --git a/src/algebra/aggcat.spad.pamphlet b/src/algebra/aggcat.spad.pamphlet
index 938a09fb..83667f77 100644
--- a/src/algebra/aggcat.spad.pamphlet
+++ b/src/algebra/aggcat.spad.pamphlet
@@ -168,6 +168,7 @@ HomogeneousAggregate(S:Type): Category == Aggregate with
++ number of elements.
FiniteAggregate(S: Type): Category == Exports where
Exports == HomogeneousAggregate S with
+ finiteAggregate -- FIXME: TEMPORARY FOR TRANSITIONAL PURPOSE ONLY
#: % -> NonNegativeInteger
++ \spad{#u} returns the number of items in u.
any?: (S->Boolean,%) -> Boolean
@@ -346,8 +347,7 @@ import BagAggregate
++ References:
++ Description:
++ A stack is a bag where the last item inserted is the first item extracted.
-StackAggregate(S:Type): Category == BagAggregate S with
- finiteAggregate
+StackAggregate(S:Type): Category == Join(BagAggregate S,FiniteAggregate S) with
push!: (S,%) -> S
++ push!(x,s) pushes x onto stack s, i.e. destructively changing s
++ so as to have a new first (top) element x.
@@ -383,8 +383,7 @@ import BagAggregate
++ References:
++ Description:
++ A queue is a bag where the first item inserted is the first item extracted.
-QueueAggregate(S:Type): Category == BagAggregate S with
- finiteAggregate
+QueueAggregate(S:Type): Category == Join(BagAggregate S,FiniteAggregate S) with
enqueue!: (S, %) -> S
++ enqueue!(x,q) inserts x into the queue q at the back end.
dequeue!: % -> S
@@ -481,8 +480,7 @@ import BagAggregate
++ Description:
++ A priority queue is a bag of items from an ordered set where the item
++ extracted is always the maximum element.
-PriorityQueueAggregate(S:OrderedSet): Category == BagAggregate S with
- finiteAggregate
+PriorityQueueAggregate(S:OrderedSet): Category == Join(BagAggregate S,FiniteAggregate S) with
max: % -> S
++ max(q) returns the maximum element of priority queue q.
merge: (%,%) -> %
@@ -737,8 +735,7 @@ import SetAggregate
++ by order or multiplicity.
++ See \spadtype{Set} for an example.
FiniteSetAggregate(S:SetCategory): Category ==
- Join(Dictionary S, SetAggregate S) with
- finiteAggregate
+ Join(Dictionary S, SetAggregate S,FiniteAggregate S) with
cardinality: % -> NonNegativeInteger
++ cardinality(u) returns the number of elements of u.
++ Note: \axiom{cardinality(u) = #u}.
@@ -1937,8 +1934,7 @@ import Integer
++ The finite property of the aggregate adds several exports to the
++ list of exports from \spadtype{LinearAggregate} such as
++ \spadfun{reverse}, \spadfun{sort}, and so on.
-FiniteLinearAggregate(S:Type): Category == LinearAggregate S with
- finiteAggregate
+FiniteLinearAggregate(S:Type): Category == Join(LinearAggregate S,FiniteAggregate S) with
merge: ((S,S)->Boolean,%,%) -> %
++ merge(p,a,b) returns an aggregate c which merges \axiom{a} and b.
++ The result is produced by examining each element x of \axiom{a} and y
diff --git a/src/algebra/lmdict.spad.pamphlet b/src/algebra/lmdict.spad.pamphlet
index deede84c..0b1e3ee3 100644
--- a/src/algebra/lmdict.spad.pamphlet
+++ b/src/algebra/lmdict.spad.pamphlet
@@ -36,8 +36,7 @@
NNI ==> NonNegativeInteger
D ==> Record(entry:S, count:NonNegativeInteger)
-ListMultiDictionary(S:SetCategory): MultiDictionary(S) with
- finiteAggregate
+ListMultiDictionary(S:SetCategory): Join(MultiDictionary S,FiniteAggregate S) with
duplicates?: % -> Boolean
++ duplicates?(d) tests if dictionary d has duplicate entries.
substitute : (S, S, %) -> %
diff --git a/src/algebra/matcat.spad.pamphlet b/src/algebra/matcat.spad.pamphlet
index c895e038..530a083a 100644
--- a/src/algebra/matcat.spad.pamphlet
+++ b/src/algebra/matcat.spad.pamphlet
@@ -12,9 +12,9 @@
\section{category MATCAT MatrixCategory}
<<category MATCAT MatrixCategory>>=
)abbrev category MATCAT MatrixCategory
-++ Authors: Grabmeier, Gschnitzer, Williamson
+++ Authors: Grabmeier, Gschnitzer, Williamson, Gabriel Dos Reis
++ Date Created: 1987
-++ Date Last Updated: July 1990
+++ Date Last Updated: May 17, 2013
++ Basic Operations:
++ Related Domains: Matrix(R)
++ Also See:
@@ -569,10 +569,7 @@ RectangularMatrixCategory(m,n,R,Row,Col): Category == Definition where
Row : DirectProductCategory(n,R)
Col : DirectProductCategory(m,R)
- Definition ==> Join(BiModule(R,R),HomogeneousAggregate(R)) with
-
- finiteAggregate
- ++ matrices are finite
+ Definition ==> Join(BiModule(R,R),FiniteAggregate R) with
if R has CommutativeRing then Module(R)
diff --git a/src/algebra/mset.spad.pamphlet b/src/algebra/mset.spad.pamphlet
index 351eefee..9d564ee9 100644
--- a/src/algebra/mset.spad.pamphlet
+++ b/src/algebra/mset.spad.pamphlet
@@ -23,8 +23,7 @@
++ Examples:
++ References:
++ Description: A multiset is a set with multiplicities.
-Multiset(S: SetCategory): MultisetAggregate S with
- finiteAggregate
+Multiset(S: SetCategory): Join(MultisetAggregate S,FiniteAggregate S) with
shallowlyMutable
multiset: () -> %
++ multiset()$D creates an empty multiset of domain D.
diff --git a/src/algebra/newdata.spad.pamphlet b/src/algebra/newdata.spad.pamphlet
index 071fc497..d53ed96b 100644
--- a/src/algebra/newdata.spad.pamphlet
+++ b/src/algebra/newdata.spad.pamphlet
@@ -316,7 +316,7 @@ SplittingNode(V,C) : Exports == Implementation where
)abbrev domain SPLTREE SplittingTree
++ Author: Marc Moereno Maza
++ Date Created: 07/05/1996
-++ Date Last Updated: 07/19/1996
+++ Date Last Updated: May 16, 2013
++ Basic Functions:
++ Related Constructors:
++ Also See:
@@ -361,9 +361,8 @@ SplittingTree(V,C) : Exports == Implementation where
S ==> SplittingNode(V,C)
A ==> Record(root:S,subTrees:List(%))
- Exports == RecursiveAggregate(S) with
+ Exports == Join(RecursiveAggregate S,FiniteAggregate S) with
shallowlyMutable
- finiteAggregate
extractSplittingLeaf : % -> Union(%,"failed")
++ \axiom{extractSplittingLeaf(a)} returns the left
++ most leaf (as a tree) whose status is false
diff --git a/src/algebra/polset.spad.pamphlet b/src/algebra/polset.spad.pamphlet
index 6043955c..b52209a6 100644
--- a/src/algebra/polset.spad.pamphlet
+++ b/src/algebra/polset.spad.pamphlet
@@ -34,8 +34,7 @@
PolynomialSetCategory(R:Ring, E:OrderedAbelianMonoidSup,_
VarSet:OrderedSet, P:RecursivePolynomialCategory(R,E,VarSet)): Category ==
- Join(SetCategory,Collection(P),CoercibleTo(List(P))) with
- finiteAggregate
+ Join(SetCategory,Collection P,FiniteAggregate P,CoercibleTo List P) with
retractIfCan : List(P) -> Union($,"failed")
++ \axiom{retractIfCan(lp)} returns an element of the domain whose elements
++ are the members of \axiom{lp} if such an element exists, otherwise
@@ -376,13 +375,11 @@ GeneralPolynomialSet(R,E,VarSet,P) : Exports == Implementation where
LP ==> List P
PtoP ==> P -> P
- Exports == PolynomialSetCategory(R,E,VarSet,P) with
-
+ Exports == Join(PolynomialSetCategory(R,E,VarSet,P),FiniteAggregate P) with
convert : LP -> $
++ \axiom{convert(lp)} returns the polynomial set whose members
++ are the polynomials of \axiom{lp}.
- finiteAggregate
shallowlyMutable
Implementation == add
diff --git a/src/algebra/tree.spad.pamphlet b/src/algebra/tree.spad.pamphlet
index 403f7351..1352bd35 100644
--- a/src/algebra/tree.spad.pamphlet
+++ b/src/algebra/tree.spad.pamphlet
@@ -30,8 +30,7 @@ import List
++ Each tree is either empty or else is a {\it node} consisting of a value and
++ a list of (sub)trees.
Tree(S: SetCategory): T==C where
- T== RecursiveAggregate(S) with
- finiteAggregate
+ T== Join(RecursiveAggregate S,FiniteAggregate S) with
shallowlyMutable
tree: (S,List %) -> %
++ tree(nd,ls) creates a tree with value nd, and children
@@ -329,11 +328,9 @@ Tree(S: SetCategory): T==C where
++ Description: \spadtype{BinaryTreeCategory(S)} is the category of
++ binary trees: a tree which is either empty or else is a \spadfun{node} consisting
++ of a value and a \spadfun{left} and \spadfun{right}, both binary trees.
-BinaryTreeCategory(S: SetCategory): Category == BinaryRecursiveAggregate(S) with
+BinaryTreeCategory(S: SetCategory): Category == Join(BinaryRecursiveAggregate S,FiniteAggregate S) with
shallowlyMutable
++ Binary trees have updateable components
- finiteAggregate
- ++ Binary trees have a finite number of components
node: (%,S,%) -> %
++ node(left,v,right) creates a binary tree with value \spad{v}, a binary
++ tree \spad{left}, and a binary tree \spad{right}.
diff --git a/src/algebra/triset.spad.pamphlet b/src/algebra/triset.spad.pamphlet
index 78312236..4efdd114 100644
--- a/src/algebra/triset.spad.pamphlet
+++ b/src/algebra/triset.spad.pamphlet
@@ -51,8 +51,7 @@ import List
TriangularSetCategory(R:IntegralDomain,E:OrderedAbelianMonoidSup,_
V:OrderedSet,P:RecursivePolynomialCategory(R,E,V)):
Category ==
- PolynomialSetCategory(R,E,V,P) with
- finiteAggregate
+ Join(PolynomialSetCategory(R,E,V,P),FiniteAggregate P) with
shallowlyMutable
infRittWu? : ($,$) -> Boolean
diff --git a/src/algebra/vector.spad.pamphlet b/src/algebra/vector.spad.pamphlet
index 4bd83302..fafce6ca 100644
--- a/src/algebra/vector.spad.pamphlet
+++ b/src/algebra/vector.spad.pamphlet
@@ -216,9 +216,7 @@ VectorFunctions2(A, B): Exports == Implementation where
++ Many categorical properties are preserved under this construction.
DirectProductCategory(dim:NonNegativeInteger, R:Type): Category ==
- Join(IndexedAggregate(Integer, R), CoercibleTo Vector R) with
- finiteAggregate
- ++ attribute to indicate an aggregate of finite size
+ Join(IndexedAggregate(Integer,R),FiniteAggregate R,CoercibleTo Vector R) with
directProduct: Vector R -> %
++ directProduct(v) converts the vector v to become
++ a direct product. Error: if the length of v is