Axiom (computer algebra system)

Last updated
Axiom
Developer(s) Independent group of people
Stable release
Latest Docker release / November 13, 2015;8 years ago (2015-11-13) [1]
Preview release
Sourceforge master / February 6, 2022;23 months ago (2022-02-06)
Repository https://sourceforge.net/p/axiom/code/
Written in Lisp
Operating system Cross-platform
Type Computer algebra system
License Modified BSD License
Website www.axiom-developer.org

Axiom is a free, general-purpose computer algebra system. It consists of an interpreter environment, a compiler and a library, which defines a strongly typed hierarchy.

Contents

History

Two computer algebra systems named Scratchpad were developed by IBM. The first one was started in 1965 by James Griesmer [2] at the request of Ralph Gomory, and written in Fortran. [3] The development of this software was stopped before any public release. The second Scratchpad, originally named Scratchpad II, was developed from 1977 on, at Thomas J. Watson Research Center, under the direction of Richard Dimick Jenks. [4]

The design is principally due to Richard D. Jenks (IBM Research), James H. Davenport (University of Bath), Barry M. Trager (IBM Research), David Y.Y. Yun (Southern Methodist University) and Victor S. Miller (IBM Research). Early consultants on the project were David Barton (University of California, Berkeley) and James W. Thatcher (IBM Research). Implementation included Robert Sutor (IBM Research), Scott C. Morrison (University of California, Berkeley), Christine J. Sundaresan (IBM Research), Timothy Daly (IBM Research), Patrizia Gianni (University of Pisa), Albrecht Fortenbacher (Universitaet Karlsruhe), Stephen M. Watt (IBM Research and University of Waterloo), Josh Cohen (Yale University), Michael Rothstein (Kent State University), Manuel Bronstein (IBM Research), Michael Monagan (Simon Fraser University), Jonathan Steinbach (IBM Research), William Burge (IBM Research), Jim Wen (IBM Research), William Sit (City College of New York), and Clifton Williamson (IBM Research) [5]

Scratchpad II was renamed Axiom when IBM decided, circa 1990, to make it a commercial product. A few years later, it was sold to NAG. In 2001, it was withdrawn from the market and re-released under the Modified BSD License. Since then, the project's lead developer has been Tim Daly.

In 2007, Axiom was forked twice, originating two different open-source projects: OpenAxiom [6] and FriCAS , [7] following "serious disagreement about project goals". [8] The Axiom project continued to be developed by Tim Daly.

The current research direction is "Proving Axiom Sane", that is, logical, rational, judicious, and sound.

Documentation

Axiom is a literate program. [9] The source code is becoming available in a set of volumes which are available on the axiom-developer.org website. These volumes contain the actual source code of the system.

The currently available documents are:

Videos

The Axiom project has a major focus on providing documentation. Recently the project announced the first in a series of instructional videos, which are also available on the axiom-developer.org [10] website. The first video [11] provides details on the Axiom information sources. [11]

Philosophy

The Axiom project focuses on the “30 Year Horizon”. The primary philosophy is that Axiom needs to develop several fundamental features in order to be useful to the next generation of computational mathematicians. Knuth's literate programming technique is used throughout the source code. Axiom plans to use proof technology to prove the correctness of the algorithms (such as Coq and ACL2).

Axiom uses Docker Containers as part of a continuous release process. The latest image is available on any platform using docker and the commands:

docker pull daly/axiom  docker run -i -t daly/axiom axiom 

Design

In Axiom, each object has a type. Examples of types are mathematical structures (such as rings, fields, polynomials) as well as data structures from computer science (e.g., lists, trees, hash tables).

A function can take a type as argument, and its return value can also be a type. For example, Fraction is a function, that takes an IntegralDomain as argument, and returns the field of fractions of its argument. As another example, the ring of matrices with rational entries would be constructed as SquareMatrix(4, Fraction Integer). Of course, when working in this domain, 1 is interpreted as the identity matrix and A^-1 would give the inverse of the matrix A, if it exists.

Several operations can have the same name, and the types of both the arguments and the result are used to determine which operation is applied (cf. function overloading).

Axiom comes with an extension language called SPAD. All the mathematical knowledge of Axiom is written in this language. The interpreter accepts roughly the same language.

Features

Within the interpreter environment, Axiom uses type inference and a heuristic algorithm to make explicit type annotations mostly unnecessary.

It features 'HyperDoc', an interactive browser-like help system, and can display two and three dimensional graphics, also providing interactive features like rotation and lighting. It also has a specialized interaction mode for Emacs, as well as a plugin for the TeXmacs editor.

Axiom has an implementation of the Risch algorithm for elementary integration, which was done by Manuel Bronstein and Barry Trager. While this implementation can find most elementary antiderivatives and whether they exist, it does have some non-implemented branches, and raises an error when such cases are encountered during integration. [12] [13]

See also

Related Research Articles

In computing, a compiler is a computer program that translates computer code written in one programming language into another language. The name "compiler" is primarily used for programs that translate source code from a high-level programming language to a low-level programming language to create an executable program.

In symbolic computation, the Risch algorithm is a method of indefinite integration used in some computer algebra systems to find antiderivatives. It is named after the American mathematician Robert Henry Risch, a specialist in computer algebra who developed it in 1968.

<span class="mw-page-title-main">Theoretical computer science</span> Subfield of computer science and mathematics

Theoretical computer science (TCS) is a subset of general computer science and mathematics that focuses on mathematical aspects of computer science such as the theory of computation, formal language theory, the lambda calculus and type theory.

In calculus, symbolic integration is the problem of finding a formula for the antiderivative, or indefinite integral, of a given function f(x), i.e. to find a differentiable function F(x) such that

FORMAC, the FORmula MAnipulation Compiler, was the first computer algebra system to have significant use. It was developed by Jean E. Sammet and her team, as an extension of FORTRAN IV. The compiler was implemented as a preprocessor taking the FORMAC program and converting it to a FORTRAN IV program which was in turn compiled without further user intervention.

A is an object-oriented functional programming language distributed as a separable component of Version 2 of the Axiom computer algebra system. A# types and functions are first-class values and can be used freely together with an extensive library of data structures and other mathematical abstractions. A key design guideline for A# was suitability of compiling to portable and efficient machine code. It is distributed as free and open-source software under a BSD-like license.

John K. S. McKay was a British-Canadian mathematician and academic who worked at Concordia University, known for his discovery of monstrous moonshine, his joint construction of some sporadic simple groups, for the McKay conjecture in representation theory, and for the McKay correspondence relating certain finite groups to Lie groups.

The term "information algebra" refers to mathematical techniques of information processing. Classical information theory goes back to Claude Shannon. It is a theory of information transmission, looking at communication and storage. However, it has not been considered so far that information comes from different sources and that it is therefore usually combined. It has furthermore been neglected in classical information theory that one wants to extract those parts out of a piece of information that are relevant to specific questions.

Symbolic Manipulation Program, usually called SMP, was a computer algebra system designed by Chris A. Cole and Stephen Wolfram at Caltech circa 1979. It was initially developed in the Caltech physics department with contributions from Geoffrey C. Fox, Jeffrey M. Greif, Eric D. Mjolsness, Larry J. Romans, Timothy Shaw, and Anthony E. Terrano.

Speedcoding, Speedcode or SpeedCo was the first high-level programming language created for an IBM computer. The language was developed by John W. Backus in 1953 for the IBM 701 to support computation with floating point numbers.

FriCAS is a general purpose computer algebra system with a strong focus on mathematical research and development of new algorithms. It comprises an interpreter, a compiler and a still-growing library of more than 1,000 domains and categories.

<span class="mw-page-title-main">Computer algebra</span> Scientific area at the interface between computer science and mathematics

In mathematics and computer science, computer algebra, also called symbolic computation or algebraic computation, is a scientific area that refers to the study and development of algorithms and software for manipulating mathematical expressions and other mathematical objects. Although computer algebra could be considered a subfield of scientific computing, they are generally considered as distinct fields because scientific computing is usually based on numerical computation with approximate floating point numbers, while symbolic computation emphasizes exact computation with expressions containing variables that have no given value and are manipulated as symbols.

AMBIT is a historical programming language that was introduced by Carlos Christensen of Massachusetts Computer Associates in 1964 for symbolic computation. The language was influenced by ALGOL 60 and is an early example of a pattern matching language for manipulation of strings . The acronym AMBIT stands for "Algebraic Manipulation by Identity Translation", but has also claimed "Acronym May Be Ignored Totally". AMBIT had dialects for manipulation of lists (AMBIT-L) and graphs (AMBIT-G) Both pioneered with data structure diagrams and visual programming as data and patterns were used to be represented by directed-graph diagrams. AMBIT/L was implemented for a PDP-10 computer and used to implement the interactive algebraic manipulation system IAM.

Cambridge Algebra System (CAMAL) is a computer algebra system written in Cambridge University by David Barton, Steve Bourne, and John Fitch. It was initially used for computations in celestial mechanics and general relativity. The foundation code was written in Titan computer assembler. In 1973, when Titan was replaced with an IBM370/85, it was rewritten in ALGOL 68C and then BCPL where it could run on IBM mainframes and assorted microcomputers.

<span class="mw-page-title-main">Algebrator</span>

Algebrator is a computer algebra system (CAS), which was developed in the late 1990s by Neven Jurkovic of Softmath, San Antonio, Texas. This is a CAS specifically geared towards algebra education. Beside the computation results, it shows step by step the solution process and context sensitive explanations.

ISSAC, the International Symposium on Symbolic and Algebraic Computation, is an academic conference in the field of computer algebra. ISSAC has been organized annually since 1988, typically in July. The conference is regularly sponsored by the Association for Computing Machinery special interest group SIGSAM, and the proceedings since 1989 have been published by ACM. ISSAC is considered as being one of the most influential conferences for the publication of scientific computing research.

FGLM is one of the main algorithms in computer algebra, named after its designers, Faugère, Gianni, Lazard and Mora. They introduced their algorithm in 1993. The input of the algorithm is a Gröbner basis of a zero-dimensional ideal in the ring of polynomials over a field with respect to a monomial order and a second monomial order. As its output, it returns a Gröbner basis of the ideal with respect to the second ordering. The algorithm is a fundamental tool in computer algebra and has been implemented in most of the computer algebra systems. The complexity of FGLM is O(nD3), where n is the number of variables of the polynomials and D is the degree of the ideal. There are several generalization and various applications for FGLM.

Deepak Kapur is a Distinguished Professor in the Department of Computer Science at the University of New Mexico.

Patrizia M. Gianni is an Italian mathematician specializing in computer algebra. She is known for her early research on Gröbner bases including her discovery of the FGLM algorithm for changing monomial orderings in Gröbner bases, and for her development of the components of the Axiom computer algebra system concerning polynomials and rational functions.

References

  1. "daly/axiom Tags". Docker Hub. Retrieved 25 March 2022.
  2. Fitch, John (July 23, 2012). "James Griesmer 1929--2011". ACM Communications in Computer Algebra. 46 (1/2): 10–11. doi: 10.1145/2338496.2338499 . S2CID   36788754.
  3. "Axiom Computer Algebra System". axiom-developer.org.
  4. "Richard D. Jenks Biographical Information". www.eecis.udel.edu.
  5. "EUROCAL '85 | SpringerLink". www.springer.com.
  6. "OpenAxiom: The Open Scientific Computation Platform". www.open-axiom.org.
  7. "FriCAS 18a5ef5d99c796a89efeac06df40043a85b3d44d — FriCAS". fricas.github.io.
  8. "History — FriCAS". fricas.github.io.
  9. Why Literate Programming? at axiom-developer.org website
  10. "Axiom Computer Algebra System". www.axiom-developer.org.
  11. 1 2 "Axiom Computer Algebra System Information Sources". YouTube. November 30, 2008.
  12. Bronstein, Manuel (September 5, 2003). "Manuel Bronstein on Axiom's Integration Capabilities". groups.google.com. Retrieved 2023-02-10.
  13. "integration - Does there exist a complete implementation of the Risch algorithm?". MathOverflow. Oct 15, 2020. Retrieved 2023-02-10.

Further reading

Commons-logo.svg Media related to Axiom (computer algebra software) at Wikimedia Commons

Software forks: