
From:  Ralf Hemmecke 
Subject:  Re: [sagecombinatdevel] Re: [Axiomdeveloper] Re: [sagedevel] Categories for the working programmer 
Date:  Mon, 10 Nov 2008 01:09:28 +0100 
Useragent:  Thunderbird 2.0.0.17 (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 1: % etc.Programmatically, it is nothing else than the "interface" (Javaspeak) 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 appear.
The type hierarchy in Axiom is actually: elements domains/packages categoriesThen 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 http://axiomportal.newsynthesis.org/refs/articles/doyealdorphd.pdf
Regards Ralf
[Prev in Thread]  Current Thread  [Next in Thread] 