[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Axiom-developer] Curiosities with Axiom mathematical structures
From: |
Gabriel Dos Reis |
Subject: |
Re: [Axiom-developer] Curiosities with Axiom mathematical structures |
Date: |
27 Feb 2006 05:08:42 +0100 |
"Bill Page" <address@hidden> writes:
[...]
| > 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.
|
| I don't think there is any essential reason why SemiGroup and
| Monoid could not be implemented in the way you suggest. For
| example:
|
| )abbrev category SGROUP SemiGroup
| SemiGroup(m:Symbol): Category == SetCategory with
| m: (%,%) -> % ++ returns the product of x and y.
| associative(m)
|
| )abbrev category ABELSQ AbelianSemiGroup
| AbelianSemiGroup(m:Symbol): Category == SemiGroup(m) with
| abelian(m)
|
| ------
|
| The symbol for product can be passed as a parameter.
Indeed.
The reason I asked is that that design was carried over in the more
"modern" version of libalgebra.
| )show SemiGroup(*)
|
| I think the reasons are only historical. The changes to the
| Axiom library to implement this would be quite extensive.
I can understand the extent of the change, but I believe that to some
extent it is essential.
| One thing to remember about Axiom is that it does not actually
| implement "axioms" in a constructive manner.
that is understood.
| The properties
| 'associative' and 'abelian' are simply declarative.
yes, most computer algebra systems I know work that way -- just
define some tag and have system understand it and have people agree on
it.
| It is up
| to the SPAD programmer to include appropriate code such as
|
| if D has associate("*"::Symbol) then ...
|
-- Gaby
Re: [Axiom-developer] Curiosities with Axiom mathematical structures, Andrey G. Grozin, 2006/02/26