From 335db800c7cbaff88eda34d83e23ad808ea42fb8 Mon Sep 17 00:00:00 2001 From: dos-reis Date: Mon, 14 Jun 2010 01:01:07 +0000 Subject: * algebra/catdef.spad.pamphlet (DifferentialRing): Now extends DifferentialDomain. (DifferentialExtension): Check parameter for only DifferentialDomain. * algebra/dpolcat.spad.pamphlet (DifferentialPolynomialCategory): Likewise. * algebra/lodop.spad.pamphlet (OppositeMonogenicLinearOperator): Likewise. --- src/algebra/Makefile.in | 2 +- src/algebra/Makefile.pamphlet | 2 +- src/algebra/catdef.spad.pamphlet | 15 +++------------ src/algebra/dpolcat.spad.pamphlet | 4 ++-- src/algebra/lodop.spad.pamphlet | 2 +- 5 files changed, 8 insertions(+), 17 deletions(-) (limited to 'src/algebra') diff --git a/src/algebra/Makefile.in b/src/algebra/Makefile.in index 89983429..a70711d9 100644 --- a/src/algebra/Makefile.in +++ b/src/algebra/Makefile.in @@ -360,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 DIFFDOM \ + LIST DIFFDOM DIFFDOM- \ LINEXP PATMAB REAL CHARZ LOGIC LOGIC- \ RTVALUE SYSPTR diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet index 9ed8ca3f..9f76645f 100644 --- a/src/algebra/Makefile.pamphlet +++ b/src/algebra/Makefile.pamphlet @@ -314,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 DIFFDOM \ + LIST DIFFDOM DIFFDOM- \ LINEXP PATMAB REAL CHARZ LOGIC LOGIC- \ RTVALUE SYSPTR diff --git a/src/algebra/catdef.spad.pamphlet b/src/algebra/catdef.spad.pamphlet index a7807009..1ea30684 100644 --- a/src/algebra/catdef.spad.pamphlet +++ b/src/algebra/catdef.spad.pamphlet @@ -403,21 +403,12 @@ DifferentialDomain(T: Type): Category == Type with ++ \spad{differentiate(x+y) = differentiate(x)+differentiate(y)} ++ \spad{differentiate(x*y) = x*differentiate(y) + differentiate(x)*y} -DifferentialRing(): Category == Ring with - differentiate: % -> % - ++ differentiate(x) returns the derivative of x. - ++ This function is a simple differential operator - ++ where no variable needs to be specified. - D: % -> % - ++ D(x) returns the derivative of x. - ++ This function is a simple differential operator - ++ where no variable needs to be specified. +DifferentialRing(): Category == Join(Ring,DifferentialDomain %) with differentiate: (%, NonNegativeInteger) -> % ++ differentiate(x, n) returns the n-th derivative of x. D: (%, NonNegativeInteger) -> % ++ D(x, n) returns the n-th derivative of x. add - D r == differentiate r differentiate(r, n) == for i in 1..n repeat r := differentiate r r @@ -455,7 +446,7 @@ DifferentialExtension(R:Ring): Category == Ring with D: (%, R -> R, NonNegativeInteger) -> % ++ D(x, deriv, n) differentiate x n times ++ using a derivation which extends deriv on R. - if R has DifferentialRing then DifferentialRing + if R has DifferentialDomain R then DifferentialRing if R has PartialDifferentialRing(Symbol) then PartialDifferentialRing(Symbol) add @@ -466,7 +457,7 @@ DifferentialExtension(R:Ring): Category == Ring with D(x:%, derivation: R -> R, n:NonNegativeInteger) == differentiate(x, derivation, n) - if R has DifferentialRing then + if R has DifferentialDomain R then differentiate x == differentiate(x, differentiate$R) if R has PartialDifferentialRing Symbol then diff --git a/src/algebra/dpolcat.spad.pamphlet b/src/algebra/dpolcat.spad.pamphlet index c5da0b47..65533281 100644 --- a/src/algebra/dpolcat.spad.pamphlet +++ b/src/algebra/dpolcat.spad.pamphlet @@ -300,7 +300,7 @@ DifferentialPolynomialCategory(R:Ring,S:OrderedSet, ++ separant(p) returns the ++ partial derivative of the differential polynomial p ++ with respect to its leader. - if R has DifferentialRing then + if R has DifferentialDomain R then InnerEvalable(S, R) InnerEvalable(S, $) Evalable $ @@ -394,7 +394,7 @@ DifferentialPolynomialCategory(R:Ring,S:OrderedSet, differentialVariables p == removeDuplicates [variable v for v in variables p] - if R has DifferentialRing then + if R has DifferentialDomain R then makeVariable p == differentiate(p, #1) diff --git a/src/algebra/lodop.spad.pamphlet b/src/algebra/lodop.spad.pamphlet index 3ebad1d2..d4aba322 100644 --- a/src/algebra/lodop.spad.pamphlet +++ b/src/algebra/lodop.spad.pamphlet @@ -86,7 +86,7 @@ OppositeMonogenicLinearOperator(P, R): OPRcat == OPRdef where R: Ring OPRcat == MonogenicLinearOperator(R) with - if P has DifferentialRing then DifferentialRing + if P has DifferentialDomain P then DifferentialRing op: P -> $ ++ op(p) creates a value in $ equal to p in P. po: $ -> P ++ po(q) creates a value in P equal to q in $. -- cgit v1.2.3