GAP (computer algebra system)

Last updated

GAP
Developer(s)
Initial release1988
Stable release
4.13.1 [1] / 13 June 2024;5 months ago (13 June 2024)
Repository
Written in C
Operating system Cross-platform
Type Computer algebra system
License GNU General Public License
Website www.gap-system.org

GAP (Groups, Algorithms and Programming) is an open source computer algebra system for computational discrete algebra with particular emphasis on computational group theory.

Contents

History

GAP was developed at Lehrstuhl D für Mathematik (LDFM), Rheinisch-Westfälische Technische Hochschule Aachen, Germany from 1986 to 1997. After the retirement of Joachim Neubüser from the chair of LDFM, the development and maintenance of GAP was coordinated by the School of Mathematical and Computational Sciences at the University of St Andrews, Scotland. [2] In the summer of 2005 coordination was transferred to an equal partnership of four 'GAP Centres', located at the University of St Andrews, RWTH Aachen, Technische Universität Braunschweig, and Colorado State University at Fort Collins; in April 2020, a fifth GAP Centre located at the TU Kaiserslautern was added. [3]

Features

GAP contains a procedural programming language and a large collection of functions to create and manipulate various mathematical objects. It supports integers and rational numbers of arbitrary size, memory permitting. Finite groups can be defined as groups of permutations and it is also possible to define finitely presented groups by specifying generators and relations. Several databases of important finite groups are included. GAP also allows to work with matrices and with finite fields (which are represented using Conway polynomials). Rings, modules and Lie algebras are also supported.

Distribution

GAP and its sources, including packages (sets of user contributed programs), data library (including a list of small groups) and the manual, are distributed freely, subject to "copyleft" conditions. GAP runs on any Unix system, under Windows, and on Macintosh systems. The standard distribution requires about 300 MB (about 400 MB if all the packages are loaded).

The user contributed packages are an important feature of the system, adding a great deal of functionality. GAP offers package authors the opportunity to submit these packages for a process of peer review, hopefully improving the quality of the final packages, and providing recognition akin to an academic publication for their authors. As of March 2021, there are 151 packages distributed with GAP, of which approximately 71 have been through this process.

An interface is available for using the SINGULAR computer algebra system from within GAP. GAP is also included in the mathematical software system SageMath.

Sample session

gap> G:=SmallGroup(8,1);# Set G to be the 1st group (in GAP catalogue) of order 8.<pc group of size 8 with 3 generators>gap> i:=IsomorphismPermGroup(G);# Find an isomorphism from G to a group of permutations.<action isomorphism>gap> Image(i,G);# Generators for the image of G under i - written as products of disjoint cyclic permutations.Group([ (1,5,3,7,2,6,4,8), (1,3,2,4)(5,7,6,8), (1,2)(3,4)(5,6)(7,8) ])gap> Elements(Image(i,G));# All the elements of im G.[ (), (1,2)(3,4)(5,6)(7,8), (1,3,2,4)(5,7,6,8), (1,4,2,3)(5,8,6,7),  (1,5,3,7,2,6,4,8), (1,6,3,8,2,5,4,7), (1,7,4,5,2,8,3,6), (1,8,4,6,2,7,3,5) ]

See also

Related Research Articles

<span class="mw-page-title-main">Automorphism</span> Isomorphism of an object to itself

In mathematics, an automorphism is an isomorphism from a mathematical object to itself. It is, in some sense, a symmetry of the object, and a way of mapping the object to itself while preserving all of its structure. The set of all automorphisms of an object forms a group, called the automorphism group. It is, loosely speaking, the symmetry group of the object.

<span class="mw-page-title-main">Isomorphism</span> Inversible mapping (mathematics)

In mathematics, an isomorphism is a structure-preserving mapping between two structures of the same type that can be reversed by an inverse mapping. Two mathematical structures are isomorphic if an isomorphism exists between them. The word is derived from Ancient Greek ἴσος (isos) 'equal' and μορφή (morphe) 'form, shape'.

<span class="mw-page-title-main">Symmetric group</span> Type of group in abstract algebra

In abstract algebra, the symmetric group defined over any set is the group whose elements are all the bijections from the set to itself, and whose group operation is the composition of functions. In particular, the finite symmetric group defined over a finite set of symbols consists of the permutations that can be performed on the symbols. Since there are such permutation operations, the order of the symmetric group is .

<span class="mw-page-title-main">Group theory</span> Branch of mathematics that studies the properties of groups

In abstract algebra, group theory studies the algebraic structures known as groups. The concept of a group is central to abstract algebra: other well-known algebraic structures, such as rings, fields, and vector spaces, can all be seen as groups endowed with additional operations and axioms. Groups recur throughout mathematics, and the methods of group theory have influenced many parts of algebra. Linear algebraic groups and Lie groups are two branches of group theory that have experienced advances and have become subject areas in their own right.

<span class="mw-page-title-main">Klein four-group</span> Mathematical abelian group

In mathematics, the Klein four-group is an abelian group with four elements, in which each element is self-inverse and in which composing any two of the three non-identity elements produces the third one. It can be described as the symmetry group of a non-square rectangle, as the group of bitwise exclusive-or operations on two-bit binary values, or more abstractly as , the direct product of two copies of the cyclic group of order 2 by the Fundamental Theorem of Finitely Generated Abelian Groups. It was named Vierergruppe, meaning four-group) by Felix Klein in 1884. It is also called the Klein group, and is often symbolized by the letter or as .

A computer algebra system (CAS) or symbolic algebra system (SAS) is any mathematical software with the ability to manipulate mathematical expressions in a way similar to the traditional manual computations of mathematicians and scientists. The development of the computer algebra systems in the second half of the 20th century is part of the discipline of "computer algebra" or "symbolic computation", which has spurred work in algorithms over mathematical objects such as polynomials.

In mathematics and computer science, the Krohn–Rhodes theory is an approach to the study of finite semigroups and automata that seeks to decompose them in terms of elementary components. These components correspond to finite aperiodic semigroups and finite simple groups that are combined in a feedback-free manner.

In mathematics, computational group theory is the study of groups by means of computers. It is concerned with designing and analysing algorithms and data structures to compute information about groups. The subject has attracted interest because for many interesting groups (including most of the sporadic groups) it is impractical to perform calculations by hand.

The Schreier–Sims algorithm is an algorithm in computational group theory, named after the mathematicians Otto Schreier and Charles Sims. This algorithm can find the order of a finite permutation group, determine whether a given permutation is a member of the group, and other tasks in polynomial time. It was introduced by Sims in 1970, based on Schreier's subgroup lemma. The running time was subsequently improved by Donald Knuth in 1991. Later, an even faster randomized version of the algorithm was developed.

In mathematics, a Young symmetrizer is an element of the group algebra of the symmetric group, constructed in such a way that, for the homomorphism from the group algebra to the endomorphisms of a vector space obtained from the action of on by permutation of indices, the image of the endomorphism determined by that element corresponds to an irreducible representation of the symmetric group over the complex numbers. A similar construction works over any field, and the resulting representations are called Specht modules. The Young symmetrizer is named after British mathematician Alfred Young.

The graph isomorphism problem is the computational problem of determining whether two finite graphs are isomorphic.

In graph theory, the Lovász conjecture (1969) is a classical problem on Hamiltonian paths in graphs. It says:

In mathematics, the Burnside ring of a finite group is an algebraic construction that encodes the different ways the group can act on finite sets. The ideas were introduced by William Burnside at the end of the nineteenth century. The algebraic ring structure is a more recent development, due to Solomon (1967).

Mathieu group M<sub>24</sub> Sporadic simple group

In the area of modern algebra known as group theory, the Mathieu groupM24 is a sporadic simple group of order

In mathematics, especially in the area of abstract algebra known as combinatorial group theory, Nielsen transformations, named after Jakob Nielsen, are certain automorphisms of a free group which are a non-commutative analogue of row reduction and one of the main tools used in studying free groups,. They were introduced in to prove that every subgroup of a free group is free, but are now used in a variety of mathematics, including computational group theory, k-theory, and knot theory. The textbook Combinatorial Group Theory devotes all of chapter 3 to Nielsen transformations.

<span class="mw-page-title-main">MuPAD</span> Computer algebra system (CAS)

MuPAD is a computer algebra system (CAS). Originally developed by the MuPAD research group at the University of Paderborn, Germany, development was taken over by the company SciFace Software GmbH & Co. KG in cooperation with the MuPAD research group and partners from some other universities starting in 1997. MuPAD's graphics package was particularly successful, especially considering the era when it was developed.

<span class="mw-page-title-main">Bettina Eick</span> German mathematician

Bettina Eick is a German mathematician specializing in computational group theory. She is Professor of Mathematics at the Technische Universität (TU) Braunschweig.

References

  1. "Release 4.13.1". 13 June 2024. Retrieved 13 June 2024.
  2. "Some history of GAP". Official GAP website. Retrieved 27 September 2019.
  3. "GAP Centres". Official GAP website. Retrieved 18 April 2020.