[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Axiom-developer] Re: [sage-devel] Categories for the working progra
Re: [Axiom-developer] Re: [sage-devel] Categories for the working programmer
Sun, 9 Nov 2008 18:59:32 -0500
>On Sun, Nov 9, 2008 at 1:21 PM, root <address@hidden> wrote:
>> There are at least two possible paths toward a category hierarchy in Sage,
>> adopting Axiom's version or designing a new one.
>> The key advantage of adopting the Axiom category hierarchy is the Sage
>> system could reuse a lot of the algorithms in Axiom. The Spad language
>> used in Axiom is similar in style and spirit to the Sage python language.
>> If the same categories were available it should be possible to use the
>> algorithms in Axiom's domains as written.
>> The temptation to re-design is very seductive but not very productive.
>What is the relationship between "categories" in Axiom and the
>mathematical notion of a category?
That's a pretty deep question that's been under debate for a while
on the Axiom mailing list. See:
My capsule response would be that it is a computational approximation
to the mathematical idea. Axiom's implementation was not trying to
develop category theory in full generality. However, because many of
the ideas underlie the implementation, Axiom has a very strong
"scaffold" that arranges and supports its category hierarchy.
I've found that there is a gap between traditional mathematics and
computational mathematics. Implementing the exact mathematics makes
a system extremely difficult to use. Implementing the computational
approximation makes mathematical reasoning awkward and approximate.
(Trivially, consider "Real Numbers")
I do not believe that the proper theory exists to bridge the gap.
I feel that such a theory will be the fundamental theory of
computational mathematics. And, no, I have no idea what that might be.
The point I was making is related to Nicolas's suggestion of redesigning
the category hierarchy to handle additive vs multiplicative forms in a
different way. While that may be a good idea it would have the side-effect
of changing the implementation of the algorithms. I make no claim that
Axiom's choices are better than any other possible choices, merely that
the pragmatics of the choice make life easier.
If Sage had an Axiom-style category hierarchy then the Axiom (Spad language)
algorithms for things like integration could be rewritten into python
with a local-minimum of effort. Spad uses indentation in the same way
that python does. However, this would not be "trivial" since python
does not support lisp-like macros, Sage does not seem to have a compiler,
python does not support the data==program abstraction, etc.