login  home  contents  what's new  discussion  bug reports help  links  subscribe  changes  refresh  edit

See FriCASAdvantages. The page below is mostly historical.

## Mathematical Abilities:

• elementary integration
• Real Algebraic Closure, see RealClosure

## [Axiom Language]? and Library:

• domains and categories provide an extensive library of generic algorithms that are easily extended to new domains
• object-oriented programming methodology

## User Interface:

• Axiom's 2-d and 3-d graphics are quite advanced and very flexible.
• HyperDoc provides online reference and tutorial examples
• OldTeXmacs interface
• web interface MathAction

## Documentation:

• more available documentation than any other open source computer algebra system
• active [Axiom Wiki]?
• excellent Help browser

## Development:

• full source code available through common open source channels such as Savannah and SourceForge
• source code is evolving towards full literate programming documentation
• command interpreter, library compiler and stand-alone compiler aldor is available

Fundamentally I see Axiom as a research platform in computational mathematics.

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

Strengths --Cliff Yapp, Sun, 23 Apr 2006 11:15:08 -0500 reply
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.

1. Axiom provides a much better platform for the inclusion of new concepts such as Units and Dimensions. An attempt to incorporate those ideas into Maxima highlighted several weaknesses in that system, including the difficulty of treating units as something "different" from regular numbers. Axiom's type system allowed Martin Rubey to write very quickly a prototype units environment which sidestepped some extremely difficult display problems encountered in the Maxima effort. Although this isn't the final version of that environment, it was a compelling demonstration of the advantages of Axiom's display logic and type system for adding new concepts to Axiom.
2. Axiom's dedication to correctness and literate programming, e.g. the complete documentation of not just the programming code needed to solve a problem but the research, algorithms, and reasoning behind that algorithm, make the Axiom project something more than just a program - they make it a research project whose results are immediately practical for real world development, use, and interactive exploration.

Martin wrote:
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.

 Subject: (replying)   Be Bold !! ( 15 subscribers )