|
From: | Ralf Hemmecke |
Subject: | Re: [Axiom-developer] Curiosities with Axiom mathematical structures |
Date: | Mon, 13 Mar 2006 12:34:13 +0100 |
User-agent: | Thunderbird 1.5 (X11/20051201) |
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.
But here the question to our category theory experts:Since Monoid is something like (*,1) would it make sense to speak of a category (in the mathematical sense) of
monoids that have * and 1 as their operations (1)? Morphisms would respect 1 not just the identity element with respect to *. And for each morphism f we would have f(a*b) = f(a)*f(b). Of course as operations the two * above are different but in that category they have to have the same name. (No idea whether this makes sense, but it seems that this is the way as "Category" it is implemented in Axiom/Aldor.)
Then, of course, (N, +, 0) is not an object in the category given by (1). Ralf
[Prev in Thread] | Current Thread | [Next in Thread] |