[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [sage-combinat-devel] Re: [Axiom-developer] Re: [sage-devel] Categor
Re: [sage-combinat-devel] Re: [Axiom-developer] Re: [sage-devel] Categories for the working programmer
Mon, 10 Nov 2008 01:09:28 +0100
Thunderbird 184.108.40.206 (X11/20080914)
What is the relationship between "categories" in Axiom and the
mathematical notion of a category?
None. It is much better to think of categories in Axiom as multisorted
algebras. Or to make it simpler, as a first approach you can think of it
as universal algebras.
A semigroup in Axiom looks like
SemiGroup(): Category == with
*: (%, %) -> %
Monoid: Category == SemiGroup with
Programmatically, it is nothing else than the "interface" (Java-speak)
of a domain, i.e. all the exported function names and their signatures
(it's a bit oversimplified).
And I also would not too much draw a distinction between domains and
packages. A package is a domain where the special symbol % (which stands
for something like ThisDomain, old Axiom use $ instead of %) does not
The type hierarchy in Axiom is actually:
Then there is a hierarchy of domains (only single inheritance is
possible) and a hierarchy of categories (multiple inheritance allowed
since there is no conflict, because a category (usually) contains no
implementation of the signatures).
More details you find in Section 2.5 (p. 28) of