## Basic Capabilities

GAP provides many ways of forming …

- lists (mutable and immutable), which also coverssets,row vectors,matrices,strings, andBoolean lists,
- records,
- domains, i. e., objects representing sets with an algebraic structure.

Notions and tools modeled in some analogy to elementary set theory help to handle these:

- distinction ofobjects and elements,
- Booleans,
- orderings,
- mappings (in particular mappings respecting structures which again can be elements of structures),
- relations.

GAP can compute with

- arbitrary integers,
- rational numbers,
- cyclotomic numbers, in particularGaussian numbers,
- elements offinite fields (see also the coding theory package GUAVA),
*p*-adic numbers,- polynomials, includingmultivariate polynomials (GAP contains only a basic implementation of Buchberger’s algorithm for computingGröbner bases, for more serious computations the package singular provides an interface to the extensive capabilities of the system SINGULAR),
- rational functions as well as
- various kinds of group elements, e. g.permutations,matrices, andabstract words.

One can work with many algebraic structures. In addition to those listed under Mathematical Capabilities, there are e. g.

- finite fields,
- residue class rings of integers (see also the package ResClasses),
- abelian number fields,
- lattices and integral matrices.

Also there are

- variouscombinatorial functions,
- functions forelementary number theory as well as
- functions forprime number factorization (see also the package FactInt).