|
PREFACE
The computer algebra system Magma is designed to provide a software environment
for computing with the structures which arise in areas such as algebra, number
theory, algebraic geometry and (algebraic) combinatorics. Magma enables users
to define and to compute with structures such as groups, rings, fields, modules,
algebras, schemes, curves, graphs, designs, codes and many others. The main
features of Magma include:
 - Algebraic Design Philosophy: The design principles
underpinning both the user language and system architecture are based
on ideas from universal algebra and category theory. The language
attempts to approximate as closely as possible the usual mathematical
modes of thought and notation. In particular, the principal constructs
in the user language are set, (algebraic) structure and morphism.
 - Explicit Typing: The user is required to explicitly
define most of the algebraic structures in which calculations are to take place.
Each object arising in the computation is then defined in terms of these
structures.
 - Integration: The facilities for each area are
designed in a similar manner using generic constructors wherever possible.
The uniform design makes it a simple matter to program calculations
that span different classes of mathematical structures or which
involve the interaction of structures.
 - Relationships: Magma provides a mechanism that
manages "relationships" between complex bodies of information. For example,
when substructures and quotient structures are created by the system, the
natural homomorphisms that arise are always stored. These are then used to
support automatic coercion between parent and child structures.
 - Mathematical Databases: Magma has access to a large
number of databases containing information that may be used in searches for
interesting examples or which form an integral part of certain algorithms.
Examples of
current databases include factorizations of integers of the form pn ∓ 1,
p a prime; modular equations; strongly regular graphs; maximal subgroups
of simple groups; integral lattices; K3 surfaces; best known linear codes
and many others.
 - Performance: The intention is that Magma provide
the best possible performance both in terms of the algorithms used and their
implementation. The design philosophy permits the kernel implementor
to choose optimal data structures at the machine level. Most of the
major algorithms currently installed in the Magma kernel are state-of-the-art
and give performance similar to, or better than, specialized programs.
The theoretical basis for the design of Magma is founded on the concepts
and methodology of modern algebra. The central notion is that of an
algebraic structure. Every object created during the course of a
computation is associated with a unique parent algebraic structure. The
type of an object is then simply its parent structure.
Algebraic structures are first classified by variety: a variety being
a class of structures having the same set of defining operators and satisfying
a common set of axioms. Thus, the collection of all rings forms a variety.
Within a variety, structures are partitioned into categories. Informally,
a family of algebraic structures forms a category if its members all share a
common representation. All varieties possess an abstract category
of structures (the finitely presented structures). However, categories based
on a concrete representation are as least as important as the abstract
category in most varieties. For example, within the variety of algebras,
the family of finitely presented algebras constitutes an abstract category,
while the family of matrix algebras constitutes a concrete category.
Magma comprises a novel user programming language based on the principles
outlined above together with program code and databases designed to support
computational research in those areas of mathematics which are algebraic in
nature. The major areas represented in Magma {V version}
include group theory, ring theory, commutative algebra, arithmetic fields and
their completions, module theory and lattice theory, finite dimensional algebras,
Lie theory, representation theory, homological algebra, general schemes
and curve schemes, modular forms and modular curves, L-functions, finite
incidence structures, linear codes and much else.
Although the Handbook has been compiled with care, it is possible that the
semantics of some facilities have not been described adequately.
We regret any inconvenience that this may cause, and we would be most grateful
for any comments and suggestions for improvement. We would like to thank
users for numerous helpful suggestions for improvement and for pointing
out misprints in previous versions.
The development of Magma has only been possible through the dedication and
enthusiasm of a group of very talented mathematicians and computer scientists.
Since 1990, the principal members of the Magma group have included:
Eran Assaf, Geoff Bailey, Mark Bofinger, Wieb Bosma, Gavin Brown, John Brownie,
Herbert Brückner, Nils Bruin, John Cannon,
Steve Collins, Scott Contini, Edgar Costa,
Bruce Cox,
Brendan Creutz, Steve Donnelly, Willem de Graaf, Andreas-Stephan Elsenhans,
Claus Fieker, Damien Fisher, Alexandra Flynn, Volker Gebhardt,
Katharina Geißler, Sergei Haller, Michael Harrison, Emanuel Herrmann,
Florian Heß, David Howden, Al Kasprzyk, David Kohel, Madeleine Kyng,
Paulette Lieby, Graham Matthews, Scott Murray, Anne O`Kane, Catherine Playoust,
Richard Rannard, Colva Roney-Dougal, Dan Roozemond, Andrew Solomon,
Bernd Souvignier, Ben Smith, Allan Steel, Damien Stehlé, Nicole Sutherland,
Don Taylor, Bill Unger, John Voight, Alexa van der Waall, Mark Watkins and
Greg White.
Sydney, September 2025 |