[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Axiom-developer] Domains and expressions
From: |
Ralf Hemmecke |
Subject: |
Re: [Axiom-developer] Domains and expressions |
Date: |
Fri, 17 Mar 2006 11:02:44 +0100 |
User-agent: |
Thunderbird 1.5 (X11/20051201) |
On 03/16/2006 07:23 PM, Gabriel Dos Reis wrote:
"Bill Page" <address@hidden> writes:
| > In their approach to mimic Axiom, they avoid been careful in
| > making AbelianMonoid "derive" from Monoid.
|
| Yes, that is interesting - nice diagram. I wonder how much
| of that was actually implemented?
Good question.
No it is so simple. They actually suffer from the same problem that we
have with Axiom/Aldor. However, if you look at the code you find the
stuff below. It is simply that: Gauss-Monoid is written additively, and
Gauss-AbelianMonoid, too. We could do that in Axiom, too. So, no surprise.
BTW, if you look at Gauss-Ring, you find that the multiplicative
structure is not a derived from Gauss-Monoid.
Ralf
Monoid := proc() local M;
option `Copyright 1992 Wissenschaftliches Rechnen, ETH Zurich`;
M := SemiGroup(args);
if hasCategory(M,Monoid) then RETURN(op(M)) fi;
addCategory(M,Monoid);
defOperation( 0, M, M ); # the additive identity
addProperty( M, NormalForm ); # must be a unique constant
op(M)
end:
AbelianMonoid := proc() local M;
option `Copyright 1992 Wissenschaftliches Rechnen, ETH Zurich`;
M := Monoid(args);
addCategory(M,AbelianMonoid);
addProperty(M,Commutative(`+`));
op(M)
end: