As I know nothing about Computer Algebra Systems, but was surprised by examples given by Andrej Bauer on the Category list of limits that Mathematica gets wrong, I forwarded his mail to a computer scientist friend of mine, specialist of Mathematca, asking for her opinion. She wrote the following answer, where she disagrees with Bauer, and asked me to forward it to the Category list as she would like to know the reaction of some "experts" to her statements. To tell the truth, so do I. Cordially to all, Jean Benabou Début du message réexpédié :
De: Jacqueline Zizi <jazi@club-internet.fr> Date: Ven 25 nov 2005 11:12:03 Europe/Paris À: Jean Bénabou <jean.benabou@wanadoo.fr> Objet: Mathematica and CAS
Thanks, Jean, for forwarding me some exchanges about Mathematica.
Please find below my opinion. If you think that it might bring some light, please feel free to forward it to the discussion list "categories".
A) Andrej Bauer points out very interesting questions, but I think he is wrong: ===========================================================
The interesting questions are: 1) Symbolic systems and students fall in the same trap; 2) People trust blindly computer results obtained via computers (not only using CAS); 3) Utilization of scientific results by politic or technical people without checking the results could be very dangerous;
But I have the impression that Andrej himself falls in the trap. And especially when he says that :
" I guess I am trying to point out that current Computer Alegbra Systems are very tricky to use_correctly"
Indeed CAS are very complex systems built over several thousands of functions, called primitive. CAS are NOT only tools and moreover they are NOT global closed tools. They live like a science. Improving all the time. Growing all the time.
Each of the functions of a CAS has it's own rules of application. And exactly as in Mathematics you can't use a theorem if some of the hypothesis are not satisfied, you can't use properly a function in a CAS if you are not inside the limits of application of this primitive. The rules for application of the primitives are clearly given in Mathematica, in the "Help" menu. For example, I put a screen shot for the primitive "Limit" as EXAMPLE 1, at this address:
http://homepage.mac.com/jacquelinezizi/CategoriesQA/
As you can see in this screen shot it is written : "Limit by default makes no explicit assumptions about symbolic functions" . That clearly means that you can't hope any discussion about the symbol "a" of the Andrej's limit.
Nevertheless the solution of this limit can be easily done and discussed using Mathematica as you can see in the EXAMPLE 2, at the same address.
But this does not mean at all that Mathematica is not able to deal with parameters, as we are going to see.
B) Jacques Carette said: =================== "Engineers and physicists don't use CAS - they use Matlab. The errors you get there are both worse and better: worse because numerical algorithms are so much more prone to giving (silent) nonsense, and better because Matlab cannot phrase any problems which are parametric! "
I agree with that. For example, in all numerical systems, the Integers are limited, depending on the machine you work on. That is not the case in CAS were Integers are as large as you want, like in Mathematics. This is important as it produces sometimes hidden mistakes in embedded computations, that lead to a wrong result.
Now, I must say that I don't agree with what Jacques Carette says in the following paragraph about people developing CAS:
"This is exactly the kind of parameter specialization problem where CAS designers have "chosen" to ignore and return a generic answer. This has been documented since at least 1991 in a nice paper in the Bulletin of the AMS"
For example, Mathematica has been giving results, for quite a few years now, using "Assumptions" for some primitives. I give an example for the primitive " Integral" in EXAMPLE 3 at the same address. You can see, on this example, that Mathematica deals quite well with parameters, both for questions AND answers. Better than I can do...
Conclusion ========== Happily there are more and more people working hard and well in CAS theory! The problems that they cannot solve, just as in Mathematics, are infinite. But as Mathematics, Mathematica can already solve, to day, quite a lot... This has very little to do with specific numerical tools programmed for specific aims.
Jacqueline Zizi