aboutsummaryrefslogtreecommitdiff
path: root/src/algebra
diff options
context:
space:
mode:
Diffstat (limited to 'src/algebra')
-rw-r--r--src/algebra/Makefile.in4
-rw-r--r--src/algebra/Makefile.pamphlet4
-rw-r--r--src/algebra/catdef.spad.pamphlet31
-rw-r--r--src/algebra/exposed.lsp.pamphlet1
4 files changed, 38 insertions, 2 deletions
diff --git a/src/algebra/Makefile.in b/src/algebra/Makefile.in
index 37f31c73..89983429 100644
--- a/src/algebra/Makefile.in
+++ b/src/algebra/Makefile.in
@@ -335,6 +335,8 @@ $(OUT)/SYSPTR.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT)
$(OUT)/VOID.$(FASLEXT): $(OUT)/KOERCE.$(FASLEXT)
$(OUT)/OUT.$(FASLEXT): $(OUT)/VOID.$(FASLEXT)
+$(OUT)/DIFFDOM.$(FASLEXT): $(OUT)/TYPE.$(FASLEXT)
+
axiom_algebra_layer_0 = \
AHYP ATTREG CFCAT ELTAB KOERCE KONVERT \
KRCFROM KVTFROM IEVALAB IEVALAB- EVALAB EVALAB- \
@@ -358,7 +360,7 @@ axiom_algebra_layer_0 = \
RCAGG RCAGG- SETAGG SETAGG- HOAGG HOAGG- \
TBAGG TBAGG- KDAGG KDAGG- DIAGG DIAGG- \
DIOPS DIOPS- STRING STRICAT ISTRING ILIST \
- LIST \
+ LIST DIFFDOM \
LINEXP PATMAB REAL CHARZ LOGIC LOGIC- \
RTVALUE SYSPTR
diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet
index ec2c0682..9ed8ca3f 100644
--- a/src/algebra/Makefile.pamphlet
+++ b/src/algebra/Makefile.pamphlet
@@ -289,6 +289,8 @@ $(OUT)/SYSPTR.$(FASLEXT): $(OUT)/SETCAT.$(FASLEXT)
$(OUT)/VOID.$(FASLEXT): $(OUT)/KOERCE.$(FASLEXT)
$(OUT)/OUT.$(FASLEXT): $(OUT)/VOID.$(FASLEXT)
+$(OUT)/DIFFDOM.$(FASLEXT): $(OUT)/TYPE.$(FASLEXT)
+
axiom_algebra_layer_0 = \
AHYP ATTREG CFCAT ELTAB KOERCE KONVERT \
KRCFROM KVTFROM IEVALAB IEVALAB- EVALAB EVALAB- \
@@ -312,7 +314,7 @@ axiom_algebra_layer_0 = \
RCAGG RCAGG- SETAGG SETAGG- HOAGG HOAGG- \
TBAGG TBAGG- KDAGG KDAGG- DIAGG DIAGG- \
DIOPS DIOPS- STRING STRICAT ISTRING ILIST \
- LIST \
+ LIST DIFFDOM \
LINEXP PATMAB REAL CHARZ LOGIC LOGIC- \
RTVALUE SYSPTR
diff --git a/src/algebra/catdef.spad.pamphlet b/src/algebra/catdef.spad.pamphlet
index f3963ea3..a7807009 100644
--- a/src/algebra/catdef.spad.pamphlet
+++ b/src/algebra/catdef.spad.pamphlet
@@ -353,6 +353,36 @@ CommutativeRing():Category == Join(Ring,BiModule(%,%)) with
@
+\section{Differential Domain}
+
+<<category DIFFDOM DifferentialDomain>>=
+)abbrev category DIFFDOM DifferentialDomain
+++ Author: Gabriel Dos Reis
+++ Date Created: June 13, 2010
+++ Date Last Modified: June 13, 2010
+++ Description:
+++ This category captures the interface of domains with a distinguished
+++ operation named \spad{differentiate}. Usually, additional properties
+++ are wanted. For example, that it obeys the usual Leibniz identity
+++ of differentiation of product, in case of differential rings. One
+++ could also want \spad{differentiate} to obey the chain rule when
+++ considering differential manifolds.
+++ The lack of specific requirement in this category is an implicit
+++ admission that currently \Language{} is not expressive enough to
+++ express the most general notion of differentiation in an adequate
+++ manner, suitable for computational purposes.
+DifferentialDomain(T: Type): Category == Type with
+ differentiate: % -> T
+ ++ \spad{differentiate x} compute the derivative of \spad{x}.
+ D: % -> T
+ ++ \spad{D x} is a shorthand for \spad{differentiate x}
+ add
+ D x ==
+ differentiate x
+
+@
+
+
\section{category DIFRING DifferentialRing}
<<category DIFRING DifferentialRing>>=
)abbrev category DIFRING DifferentialRing
@@ -1875,6 +1905,7 @@ VectorSpace(S:Field): Category == Module(S) with
<<category ORDRING OrderedRing>>
<<category OINTDOM OrderedIntegralDomain>>
<<category OAMONS OrderedAbelianMonoidSup>>
+<<category DIFFDOM DifferentialDomain>>
<<category DIFRING DifferentialRing>>
<<category PDRING PartialDifferentialRing>>
<<category DIFEXT DifferentialExtension>>
diff --git a/src/algebra/exposed.lsp.pamphlet b/src/algebra/exposed.lsp.pamphlet
index b7df3dbd..2d584577 100644
--- a/src/algebra/exposed.lsp.pamphlet
+++ b/src/algebra/exposed.lsp.pamphlet
@@ -627,6 +627,7 @@
(|DequeueAggregate| . DQAGG)
(|Dictionary| . DIAGG)
(|DictionaryOperations| . DIOPS)
+ (|DifferentialDomain| . DIFFEXT)
(|DifferentialExtension| . DIFEXT)
(|DifferentialPolynomialCategory| . DPOLCAT)
(|DifferentialRing| . DIFRING)