On 02/26/2006 05:42 PM, Gabriel Dos Reis wrote:
Hello Willian,
thanks for the quick reply.
William Sit <[EMAIL PROTECTED]> writes:
| Gabriel Dos Reis wrote:
| > In the impressive diagram titled "Basic Agebra Hierarchy" displayed
| > in the Axiom Book (I only have a copy of the edition copyrighted 1992,
| > NAG), AbelianSemiGroup is not "derived" from SemiGroup, and similarly
| > AbelianMonoid is not "derived" from Monoid. I find that curious as it
| > goes counter the mathematical fact that an AbelianMonoid *is* a
| > Monoid, with an additional algebraic law (commutation).
| >
| > Does anyone know the reason of those curiosities?
|
| One probable reason may be the convention in mathematics to use +
| instead of * when a semigroup, monoid, or group is abelian.
I find that argument very unconvincing for several reasons:
1. "+" or "*" are *syntax*, not algebraic properties. Whether a
monoid is Abelian or not does stop it from being a monoid. The
mathematical definition of an Abelian monoid is that it is a
monoid, whose operation *additionally* is commutative.
2. The set of natural numbers, NN, has *many* Abelian structures on it,
for examples:
a. (NN, +, 0) -- the usual addition
b. (NN, *, 1) -- the usual multiplication, commutative!
c. (NN, max, 0) -- "max" is the usual maximum function
Such a counterexample can be multiplied.
One reason for having Monoid and AbelianMoniod (one with "*" and the
other with "+") is that neither SPAD nor Aldor allows to rename
functions during inheritance.
Note that one would have to say something like
define Monoid(
*: (%, %) -> %;
1: %
): Category == ...
define Group(
*: (%, %) -> %,
inv: % -> %,
1: %
): Category == ...
define Ring(.....): Category == with {
Monoid(*, 1);
Group(+, -, 0);
}
OK, that is not well thought of...
Anyway, there is not way to do this in Aldor, yet. At least nobody has
told me so far.
If such renaming could be implemented into the Aldor language that would
make it even better suited for mathematics. However, then there is need
that someone implements these ideas into the compiler. Who?
Ralf
_______________________________________________
Axiom-developer mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/axiom-developer