[Next] [Prev] [Right] [Left] [Up] [Index] [Root]

PREFACE

PREFACE

The algebra system Magma is designed to provide a software environment for computing with the structures which arise in algebra, geometry, number theory and (algebraic) combinatorics. Magma enables users to define and to compute with structures such as finite and infinite groups, rings, fields, modules, graphs and designs. Novel features of the system include:

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, that is, 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 classes. Informally, a family of algebraic structures forms a class if its members all share a common representation. All varieties possess the abstract class of structures (finitely presented structures). However, classes based on a concrete representation are as least as important in most varieties. For example, within the variety of rings, the family of polynomial rings constitutes the abstract class, while the family of matrix rings constitutes a concrete class.

In the mid 1970's, the computer algebra system Cayley was conceived, primarily as a group theory package. However, a great deal of the infrastructure originally developed to support group theoretic computation is equally applicable to other branches of algebra. Further, the study of groups involves working with many other types of algebraic structure. As a consequence, over the past six years the system has been significantly expanded to include fields, matrix rings, polynomial rings, modules and other types of structure. In parallel with these mathematical developments, a new user programming language based on the principles outlined above has been designed. The new system Magma comprises the new language and the expanded range of mathematical facilities. This book is a draft of what is intended to be the reference manual for Magma.

As remarked before, this manual is a draft for a comprehensive guide to Magma. Although we have compiled this guide with great 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.

Sydney, January 1998

ACKNOWLEDGEMENTS

The Magma system has benefited enormously from contributions made by many members of the mathematical community. We list below those persons and research groups who have given the project substantial assistance either by allowing us to adapt their software for inclusion within Magma or through general advice and criticism. We wish to express our gratitude both to the people listed here and to all those others who participated in some aspect of the Magma development.