hi Martin,

On 03/13/2006 01:15 PM, Martin Rubey wrote:
Ralf Hemmecke <[EMAIL PROTECTED]> 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


_______________________________________________
Axiom-developer mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/axiom-developer

Reply via email to