|
|
last edited 8 months ago by test1 |
1 2 3 4 5 6 7 | ||
Editor: test1
Time: 2018/06/27 15:10:21 GMT+0 |
||
Note: |
changed: - - elementary integration, see - http://www.math.univ-montp2.fr/FODESIT/SemJuin2004/Bronstein/bronstein.pdf - elementary integration
See FriCASAdvantages?. The page below is mostly historical.
I believe that we are at the very beginning of the collision of mathematics with computers. There are whole areas of mathematics that need to be explored and computer algebra systems provide a place to do this research. When we implement a new algorithm we not only "reduce to practice" a useful idea we also prove, in some very fundamental way, that our algorithm is correct. Most mathematical proofs are social events where you try to convince another person that your statements are correct. Convincing a computer to generate the correct answers is the ultimate proof that you understand the problem and are generating the correct solution.
Axiom is the strongest of the computer algebra systems for research purposes. You have complete control of all of the mathematics and, now that it is open source, you have the ability to reshape it in any way necessary.
Axiom stands head and shoulders above all of the other existing systems because it is strongly based on theory. I believe that this is necessary in order to make systems that can scale. Without a good theoretical scaffolding it is very difficult to build ever-larger systems. Much more research remains to be done to explore computational mathematics. The computational aspect of mathematics can shed light on fundamental representation questions (like constructing rings over monoids using multiple inheritance) which do not arise in hand-manipulated math.
Provisos (e.g. 1/x provided x <> 0) go directly to the heart of some very difficult and unsolved computational mathematical questions. If the proviso for 1/x is represented as intervals then we can write that 1/x \in [-infinity,0) AND 1/x \in (0,+infinity]?. This implies that the computation has split into two parallel paths. We need to develop control algorithms that can handle such splits (there are 8 known possible control solutions). Furthermore, we need to consider several hard questions like the mathematics of combining intervals (and thus control branches). Hard questions arise if we make the endpoints symbolic such as f(x) \in [y,z]?. We need to add conditions like f(x) \in [y,z]? AND y <= z. So there are computations WITH provisos and computations IN provisos. A correct solution for provisos involves a complete rewrite of Axiom's algebra system.
There are other equally hard computational mathematics problems.
Consider the indefinites
issue. We know how to raise a matrix
to a fixed power, say 3. Do we know how to raise a matrix to an
indefinite power, say N? Or do polynomial arithmetic of p^n + ...
* q^m + ... For fixed n and m we can compute any term in the
resulting product. For arbitrary n and m what is the general
term? How is it represented?
Another outstanding question is the combination of proof technology (such as ACL2) and Axiom. What happens if we decorate the axiom algebra hierarchy with the theorems that apply, say, to monoids. Can we constructively prove that the algorithms in axiom that apply to monoids are formally correct?
A further issue is the fact that formulas in textbooks are "iconic". That is, they represent "pictures" of ideas. Once you've studied E=mc^2 you view the formula as a picture rather than an equation. In fact, if you study the question you will eventually discover that all of the meaning of the equation resides in the surrounding paragraphs. Axiom carries this meaning in the type associated with each object. However there needs to be a formal sematic calculus developed which can represent and manipulate this "paragraph sematics" rather than just the equations.
Even apparently easy ideas like simplification are very, very hard in general. Consider the question of simplification when using interval arithmetic. Interval bounds are provably tight if the equations are linear but not otherwise. Intervals that contain zero get very wide when they are squared. So the chosen representation of an equation can have a very large impact on the computed result. Automatic simplification that ignores this effect can cause previously stable computations to become unstable. This is only one of the many hard issues that automatic simplification introduces.
Axiom is pushing the boundaries of literate programming. Hopefully the long term effect will be that researchers start publishing detailed implementations of their algorithms in a form that allows them to be "dragged and dropped" onto a running system and be immediately useful. This would allow detailed checking of results. It would also make programming be a legitimate activity for tenure track research consideration.
Yet more interesting research problems arise if we consider machines which will be available on the 30 year horizon. These essentially infinite computing resources will have to be able to fully model not only the computational mathematics but model the problem being confronted by the researcher and even be aware of the researcher's "intensional stance" (their current approach to the problem) so that relevant research can be suggested from by the automatic literature searches.
Tim
I am not sufficiently fluent in Axiom to give a concrete description of its strengths compared to those of other systems, but I can describe what motivated me to switch my attention from Maxima to Axiom.excellent Help browser
Although Axiom's hyperdoc browser does do some things that other systems can't - such as navigate Axiom's complex type/domain system - I would hardly call it "excellent" in comparison to similar facilities in commercial products such as Maple and Mathematica.