On 9/12/07, William Stein <[EMAIL PROTECTED]> wrote: > ... > I remember reading a long thread on axiom-devel that was a discussion > between Ondrej Certik and the axiom developers. It ended rather > abruptly when one of them wrote that they were not interested at all in > "formal symbol manipulation" and Ondrej replied that possibly non-rigorous > formal symbol manipulation was *precisely* what he is interested in. > There is certainly a very important place for this sort of computation. >
There is perhaps a formal distinction to be made between algebra and calculus, where one views algebra as studing mathematical objects and their relationships, while calculus is devoted to formal manipulations of expressions with much less emphasis on the objects which they may or may not represent. Of course one of the types of mathematical object worthy of study are just such expressions. From my point of view this was/is the primary purpose of programming languages such as Lisp, e.g. S-expressions. Axiom is written in Lisp so there is very definitely an interest in formal symbol manipulation of this type, but it's primary purpose is to describe very much more general algebraic objects. I recall Ondrej's posts to axiom-developer. I am not sure exactly what conversation you have in mind but my recollection is somewhat different. I think the point (on the Axiom side) was that in principle it should not be necessary to sacrifice mathematical rigor in the design of packages for formal symbol manipulation. Doing so risks perpetuating the confusing array of ad hoc manipulations that are the basis of programs like Maxima, Maple, and Mathematica today. From this point of view, having yet another system for doing this in Python does not seem like much of an advantage - at best it is a matter of convenience for people who for whatever reason already program in Python. But I think the connection between symbolic and algebraic modes of computation is a rather deep one that even as a research subject has not been fully explored yet. I think it is worth trying to understand how Axiom attempted to implement a fairly general "Expression" domain by first formally defining polynomials, then rational functions and extending them with transcendental operators etc., all in a mathematically rigorous manner. This is a way of being as formal and as flexible as possible in a mathematically defensible manner. The emphasis is on the deep semantics of the underlying algebraic operations, rather than focusing only on the surface-level syntactic manipulations. The Expression domain in Axiom is where most of the "calculus" (integration, differentiation, limits, etc.) takes place but it is built up step my step in a rigorous manner from simpler algebraic objects. On the critical side however, one might consider how the Axiom "Expression" domain fails to be sufficiently general for some important purposes. In these cases even the Axiom algorithms sometimes resort to rather shallow heuristics and simple pattern matching. Over the long history of projects like Axiom this subject has been debated in many different ways. (For example you could check the axiom-developer email archives for references to recent papers by Stephen Watt on this subject.) I think it would be a great pity if we do not find some way to build on this work rather than walking over the same ground again and again just wearing slightly different clothes. So I am very grateful to Ondrej to having taken some time to look at Axiom and to discuss these ideas. And I think that it is a good thing that the subject comes up again here in Sage since Sage does make some effort to implement other formal (algebraic) mathematical structures in a rigorous manner. Regards, Bill Page. --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/ -~----------~----~----~----~------~----~------~--~---