|
From: | Ralf Hemmecke |
Subject: | Re: [Axiom-developer] Curiosities with Axiom mathematical structures |
Date: | Mon, 13 Mar 2006 14:24:28 +0100 |
User-agent: | Thunderbird 1.5 (X11/20051201) |
hi Martin, On 03/13/2006 01:15 PM, Martin Rubey wrote:
Ralf Hemmecke <address@hidden> writes:Hi Martin, a quick response to the following...There is a simple practical reason why I dislike the idea of asking just "Integer has Monoid". Imagine I'm programming a package, and I need that a parameter domain M is a monoid, so that I can use the monoidal structure, for example for multiplying. Well, then simply asking M has Monoid doesn't buy me anything, since I won't be sure that M really is a Monoid with respect to "+".Imagine you could ask "if M has Monoid(+)..." or "if M has Monoid(*)...". According to which returns true, you would then go on and call (m1 +$M m2) or (m1 *$M m2). Well, but M might have a monoid structure with respect to the operation ".". Do you really also want to ask "if M has Monoid(.)..."? That soon becomes impractical.No, this is not an issue about practicality. Look at it this way: Suppose "M has Monoid" returns "true". How do you know then with respect to which operation M is a monoid? What can you do with the information that M is a monoid with respect to some operation?
If Monodid: Category == with{ 1:%; *:(%,%)->%; } then "M has Monoid" means that M has a 1 and *.By now, we all know that if "M has Monoid" returns false, it does NOT mean that M is not an object in the category of (mathematical) monoids.
It is as simple as this "Monoid" in Axiom does NOT stand for the category of all monoids.
Ralf
[Prev in Thread] | Current Thread | [Next in Thread] |