aboutsummaryrefslogtreecommitdiff
path: root/src/algebra
diff options
context:
space:
mode:
Diffstat (limited to 'src/algebra')
-rw-r--r--src/algebra/Makefile.am5
-rw-r--r--src/algebra/Makefile.in5
-rw-r--r--src/algebra/indexedp.spad.pamphlet30
3 files changed, 37 insertions, 3 deletions
diff --git a/src/algebra/Makefile.am b/src/algebra/Makefile.am
index d1b5cbae..181dedba 100644
--- a/src/algebra/Makefile.am
+++ b/src/algebra/Makefile.am
@@ -729,6 +729,7 @@ strap-1/IDPAG.$(FASLEXT): strap-1/ABELGRP.$(FASLEXT) \
strap-1/IDPAM.$(FASLEXT): strap-1/ABELMON.$(FASLEXT) \
strap-1/IDPC.$(FASLEXT) strap-1/IDPO.$(FASLEXT)
+strap-1/IDPT.$(FASLEXT): strap-1/PAIR.$(FASLEXT)
strap-1/IDPO.$(FASLEXT): strap-1/PAIR.$(FASLEXT)
strap-1/PAIR.$(FASLEXT): strap-1/KOERCE.$(FASLEXT) \
@@ -1559,8 +1560,10 @@ $(OUT)/STREAM.$(FASLEXT): $(OUT)/LZSTAGG.$(FASLEXT)
$(OUT)/MONOP.$(FASLEXT): $(OUT)/MONOPC.$(FASLEXT) $(OUT)/PAIR.$(FASLEXT) \
$(OUT)/SETCAT.$(FASLEXT)
+$(OUT)/IDPT.$(FASLEXT): $(OUT)/PAIR.$(FASLEXT)
+
oa_algebra_layer_1 = \
- ABELGRP ABELGRP- ABELMON ABELMON- ITUPLE \
+ ABELGRP ABELGRP- ABELMON ABELMON- ITUPLE IDPT \
CABMON MONOID MONOID- RING RING- COMRING \
DIFRING SRING ENTIRER INTDOM INTDOM- OINTDOM \
GCDDOM GCDDOM- UFD UFD- ES ES- \
diff --git a/src/algebra/Makefile.in b/src/algebra/Makefile.in
index dd1ce5a6..c66d563b 100644
--- a/src/algebra/Makefile.in
+++ b/src/algebra/Makefile.in
@@ -759,7 +759,7 @@ oa_algebra_layer_0_objects = \
$(addsuffix .$(FASLEXT),$(oa_algebra_layer_0)))
oa_algebra_layer_1 = \
- ABELGRP ABELGRP- ABELMON ABELMON- ITUPLE \
+ ABELGRP ABELGRP- ABELMON ABELMON- ITUPLE IDPT \
CABMON MONOID MONOID- RING RING- COMRING \
DIFRING SRING ENTIRER INTDOM INTDOM- OINTDOM \
GCDDOM GCDDOM- UFD UFD- ES ES- \
@@ -2219,6 +2219,7 @@ strap-1/IDPAG.$(FASLEXT): strap-1/ABELGRP.$(FASLEXT) \
strap-1/IDPAM.$(FASLEXT): strap-1/ABELMON.$(FASLEXT) \
strap-1/IDPC.$(FASLEXT) strap-1/IDPO.$(FASLEXT)
+strap-1/IDPT.$(FASLEXT): strap-1/PAIR.$(FASLEXT)
strap-1/IDPO.$(FASLEXT): strap-1/PAIR.$(FASLEXT)
strap-1/PAIR.$(FASLEXT): strap-1/KOERCE.$(FASLEXT) \
@@ -2858,6 +2859,8 @@ $(OUT)/STREAM.$(FASLEXT): $(OUT)/LZSTAGG.$(FASLEXT)
$(OUT)/MONOP.$(FASLEXT): $(OUT)/MONOPC.$(FASLEXT) $(OUT)/PAIR.$(FASLEXT) \
$(OUT)/SETCAT.$(FASLEXT)
+$(OUT)/IDPT.$(FASLEXT): $(OUT)/PAIR.$(FASLEXT)
+
$(OUT)/FNCAT.$(FASLEXT): $(OUT)/HOMOTOP.$(FASLEXT) $(OUT)/SETCAT.$(FASLEXT)
$(OUT)/SYNTAX.$(FASLEXT): $(OUT)/IDENT.$(FASLEXT)
$(OUT)/COMMONOP.$(FASLEXT): $(OUT)/BOP.$(FASLEXT)
diff --git a/src/algebra/indexedp.spad.pamphlet b/src/algebra/indexedp.spad.pamphlet
index d17d342c..dab47a6a 100644
--- a/src/algebra/indexedp.spad.pamphlet
+++ b/src/algebra/indexedp.spad.pamphlet
@@ -54,6 +54,33 @@ IndexedDirectProductCategory(A:BasicType,S:OrderedType): Category ==
@
+\section{domain IDPT IndexedProductTerm}
+
+<<domain IDPT IndexedProductTerm>>=
+)abbrev domain IDPT IndexedProductTerm
+++ Author: Gabriel Dos Reis
+++ Date Last Updated: May 7, 2013
+++ Description:
+++ An indexed product term is a utility domain used in the
+++ representation of indexed direct product objects.
+IndexedProductTerm(A,S): Public == Private where
+ A: BasicType
+ S: OrderedType
+ Public == Join(BasicType,CoercibleTo Pair(S,A)) with
+ term : (S, A) -> %
+ ++ \spad{term(s,a)} constructs a term with index \spad{s}
+ ++ and coefficient \spad{a}.
+ index : % -> S
+ ++ \spad{index t} returns the index of the term \spad{t}.
+ coefficient : % -> A
+ ++ \spad{coefficient t} returns the coefficient of the tern \spad{t}.
+ Private == Pair(S,A) add
+ term(s,a) == per [s,a]
+ index t == first rep t
+ coefficient t == second rep t
+ coerce(t: %): Pair(S,A) == rep t
+@
+
\section{domain IDPO IndexedDirectProductObject}
<<domain IDPO IndexedDirectProductObject>>=
)abbrev domain IDPO IndexedDirectProductObject
@@ -334,7 +361,7 @@ IndexedDirectProductAbelianGroup(A:AbelianGroup,S:OrderedType):
<<license>>=
--Copyright (C) 1991-2002, The Numerical ALgorithms Group Ltd.
--All rights reserved.
---Copyright (C) 2007-2010, Gabriel Dos Reis.
+--Copyright (C) 2007-2013, Gabriel Dos Reis.
--All rights reserved.
--
--Redistribution and use in source and binary forms, with or without
@@ -369,6 +396,7 @@ IndexedDirectProductAbelianGroup(A:AbelianGroup,S:OrderedType):
<<license>>
<<category IDPC IndexedDirectProductCategory>>
+<<domain IDPT IndexedProductTerm>>
<<domain IDPO IndexedDirectProductObject>>
<<domain IDPAM IndexedDirectProductAbelianMonoid>>
<<domain IDPOAM IndexedDirectProductOrderedAbelianMonoid>>