[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Renaming at inheritance (was: Re: [Axiomdeveloper] Curiosities with
From: 
Gabriel Dos Reis 
Subject: 
Re: Renaming at inheritance (was: Re: [Axiomdeveloper] Curiosities with Axiom mathematical structures) 
Date: 
02 Mar 2006 20:41:02 +0100 
Ralf Hemmecke <address@hidden> writes:
[...]
 >>  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);
 >>  }
 >>
 >> Ring should be both Monoid and Group, whether they shoud be
 >> categories, I don't really know.

 Well, think of Axiom's Category as just a list of function (and
 constant) signatures.
See my last message in response to Bill's post for why I made that
statement.
I believe, the implementation aspect that a Category is just a list of
functions is orthogonal.
 Well, as far as I know, something that is of type Category in
 Aldor/Axiom should be near to a mathematical category.
But that is not true, for any measure "nearness" I could think of :)
 (But I am not
 the original designer and unfortunately there is no page on the
 AxiomWiki that explains it clearly.

 Anyway, what I suggested above is perhaps not so close to mathematics
 as I and probably other mathematicians would like it to be.

 The point is that one speaks of a "category of rings, groups, monoids,
 etc.), but not of a "category of rings(*, 1, +, , 0)". So defining
 those structures in Axiom without arguments would be highly preferable.
I profoundly disagree. Any respectable source on algebraic structures
defines rings as tuples. When one colloquially says "take a monoid",
one speaks of that tuple, and it is also understood that the
components of that tuple are parameters, and as such will vary from
one tuple to another. What the current system does is to say
"oh, the parameters are named the same" and later discover that that
"oh" is causing serious troubles. Then it is decided to have Abelian
monoid not having anything to do with monoid. That is at least
confusing.
Computers are notoriously known not to good at reading minds, and when
they guess they usually guess wrong. Furthermore, mathematics
discourses are highly syntactically ambiguous. For computational
mathematics point of view, one needs to hunt those ambiguities and
flesh them out.
 However, there is no way in Axiom to express that a Ring is a Monoid
 (SemiGroup if you like) "with respect to multiplication" and a Group
 (which is also a Monoid) "with respect to addition".
I understand there is no way. My issue is *why*? E.g. is it
fundamental or just implementation details that shrine into the
interface? My suspected answer is that it is an artifact of the
used objectoriented technology.
[...]
 There are some experiments, however...
 http://citeseer.ist.psu.edu/poll98adding.html
 http://www.cs.kent.ac.uk/people/staff/sjt/Atypical/AldorExs/index.html
Thanks!
 Gaby