axiom-developer
[Top][All Lists]

## Re: [Axiom-developer] Re: BINGO, Curiosities with Axiom mathematical str

 From: Martin Rubey Subject: Re: [Axiom-developer] Re: BINGO, Curiosities with Axiom mathematical structures Date: 11 Mar 2006 09:33:52 +0100 User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.4

```Dear Bill, Ralf, *,

> Your explanation looks good but then I thought: What about those categories
> in Axiom that take a member of some domain as a parameter.  If this parameter
> does not appear in any export of the category then surely this same "error"
> would occur right?

Funny, I thought about the same thing just yesterday evening. So at *least*
this discussion was very educative!

I'd just like to restate what I'm looking for, since I have the feeling that we
might meanwhile talk about different purposes:

In the following "category" is reserved for the Axiom/Aldor meaning of the
word. I do not know much about the mathematical thing.

I'd like to have a category Monoid and a category Ring and say that Integer is
a Ring.

If I ask *something* like Integer has Monoid(+) I'd like to get true.
If I ask *something* like Integer has Monoid(*) I'd like to get true.
For other operations I'd like to get false.

I'd like that Integer has an operation double, that uses the monoidSquare from
Monoid(+), an operation square that uses the monoidSquare from Monoid(*). I
imagine that I would be able to define it somehow like

double(a:%):% == monoidSquare(a)\$Monoid(+)

I'd like that

if X has Monoid(+) then op x := monoidSquare(x)\$X

uses the operation monoidSquare from Monoid(+), if X inherits from
Monoid(+). Here it should use the implementation "just before there are two
identical signatures". For example, there could be a category derived from
Monoid called AbelianMonoid, with a default for "monoidSquare". Then the above
line should use the default from AbelianMonoid, if Integer is an AbelianMonoid.

Similarly for X has Monoid(*).

I think it would be best if monoidSquare would be unavailable in Integer, if
not qualified like monoidSquare(x)\$Monoid(+) or as above. I would be happy also
if only the above form "if X has Monoid(+)"... would work.

Martin

```