axiom-developer
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]