MAGMA
Magma is a radically new system designed to solve computationally hard problems in algebra, number theory,
geometry and combinatorics. Magma provides a mathematically rigorous environment for computing with
algebraic and geometric objects. The basic design principles are:
 Algebraic structures and their morphisms as first class objects.
 Language design reflecting the structure of modern algebra.
 Kernel implementation of important structures to achieve outstanding performance.
 A strong typing scheme derived from modern algebra whereby types correspond to algebraic structures
(magmas) to provide mathematical rigour and clarity.
 Seamless integration of algorithmic and database knowledge.
Structures supported range across group theory (finitely presented groups,
blackbox groups, abelian groups, soluble groups, permutation groups,
matrix groups, finitely presented
semigroups, and characters of finite groups), rings (the integers with
optimized arithmetic, residue class rings, univariate and multivariate
polynomial rings, invariate rings of finite groups, valuation rings),
fields (finite fields, quadratic fields, local fields, cyclotomic fields,
number fields, rational function fields, and the rationals), algebras
(group algebras, matrix algebras, finitely presented algebras, associative
algebras, and algebras defined by structure constants), power and
Laurent series,vector spaces, modules, lattices, algebraic geometry
(elliptic curves, zerodimensional varieties), graphs, incidence
structures and designs, finite planes, enumerative combinatorics,
and coding theory.
