[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Axiomdeveloper] Curiosities with Axiom mathematical structures
From: 
Gabriel Dos Reis 
Subject: 
Re: [Axiomdeveloper] 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