On 03/09/2006 03:46 PM, Martin Rubey wrote:
I wouldn't want to ask "Integer has Monoid", since this doesn't make any sense
to me. I'd like to ask "Integer has Monoid(Integer, *)" or
"Integer has Monoid(*)"
Well, if one interprets Monoid as the category of monoids then
Integer has Monoid
just say that the integers (now the question is whether you mean the
integers with the additive or the multiplicative structure) are an
object in the category of monoids.
Integer is a name for a structure with carrier set
{0, 1, -1, 2, -2, ...}
and operations {+, *, 0, 1, ...}.
Integer is certainly not the carrier set alone.
How would you mathematically express that the integers belong to the
category of monoids? You would probably say that
F(Integer) is an object in the category of monoids
where F is a functor from the category of rings (or rather the category
in which Integer really lives) that forgets every extra structure of a
ring an just selects a monoid structure. Yes, the functor F decides
whether you mean the additive or the multiplicative structure.
I hope, some category experts correct me, if I am wrong. I'm not so
fluent in that language.
Anyway there is clearly something missing in the "has" construction if
that would have to be written mathematically.
Simply think of a category Foo with hundreds of exported function, would you
like to write
Dom has Foo(f1, f2, ..., f100)
no, but wait a moment: It is obvious to me that I don't want to have all
exported functions as parameters. Only certain "defining" functions, like:
Integer has Monoid(*, 1);
Integer has Ring(+, *, 1);
Can you think of an example where more than, say 5, parameters would be
desirable?
A partial differential ring (0,1,+,*) with n derivations. ;-) But maybe
you prefer k automorphisms in order to get a difference algebra.
Ralf
_______________________________________________
Axiom-developer mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/axiom-developer