# GAP -- Groups, Algorithms and Programming

GAP is a system for computational discrete mathematics, with special emphasis on computational group theory. GAP provides a host of basic functionality to compute with e.g. finite fields, vector spaces, groups, etc. Its small kernel provides the user with a programming language and large parts of the GAP functionality are implemented in this language, and the system is designed in such a way that a user can add modules to his GAP system (so-called packages). These packages extend the functionality of GAP and are continually being updated to keep up with the advances of computational algebra. (See http://www.gap-system.org for more).# Software in the research group

In october 1998, Patrick Govaerts started to implement a proto-type GAP package, called 'PG', to extend GAP with functionality to work with projective geometries. This was a master thesis project under the supervision of Leo Storme. In october 1999, Jan De Beule went on with the development of this package, also as a master thesis project. The resulting package was used by a few people for research purposes. Until October 2004, nothing happened until a new master thesis project was started by Peter Lemens, whereby the existing package was extended, and which was further developed by Anja Hallez (starting from October 2005). Both projects were supervised by Jan De Beule. In the mean time, at the University of Western Australia, there were also ambitions for a geometry package written in the GAP framework. With the permission of the 'PG' maintainers, Max Neunhoeffer (who was visiting UWA), John Bamberg, Maska Law, and Sven Reichard mapped out a structure for a new package which would include facility with groups; the algebraic embodiment of symmetry. This was the starting point for a new package called 'FinInG', which would have the same functionality of the old 'PG' (i.e., basic operations on projective spaces and polar spaces), but with a more flexible framework to include collineation groups and other geometries. Currently, the authors of FinInG comprise John Bamberg, Anton Betten, Jan De Beule, Maska Law, Max Neunhoeffer, Michael Pauley, and Sven Reichard.# State of the art

The package 'FinInG' is at this moment under development, but a beta-version is now available. It will be one of the largest packages ever developed for GAP, comprising tools for working in projective spaces, polar spaces, generalised quadrangles, coset geometries and much, much more. To use 'FinInG', one must also install GenSS, Orb, Grape and Forms (see below).## Forms -- a package for sesquilinear and quadratic forms

Forms is a package, developed by John Bamberg and Jan De Beule. It can be used for work with sesquilinear and quadratic forms, objects that are used to describe polar spaces and classical groups. The package also deals with the recognition of certain matrix groups preserving a sesquilinear or quadratic form. The main features of forms are its facility with creating sesquilinear and quadratic forms via matrices and polynomials, and in changing forms (creation of isometries).## FinInG -- a package for finite geometry

The basic principle behind the design of FinInG is that it should be flexible, versatile, and readily extendable. We also believe that it should use the algebraic power of GAP; and especially the group theoretic power of GAP. Some of our primary aims include having efficient and easy to use operations in FinInG and to have a wide variety of geometric functions to cater for a wide variety of different geometers. So far, we have incoorporated the following functionality into FinInG:- Projective spaces: the construction of projective spaces and their varieties, collineation groups, correlations, basic operations (such as intersection, span, etc), dualities, polarities, residuals of varieties and flags.
- Polar spaces: the construction of polar spaces and their varieties, collineation groups (including a distinction between similarities, isometries, etc), specification of the defining form, operations for changing the form, natural embeddings.
- Generalised polygons: constructions of certain types of generalised polygons (EGQs, Split Cayley hexagon, twisted-triality hexagon), operations on generalised polygons.
- Affine spaces: the construction of affine spaces and their varieties, translation and collineation groups, basic operations (such as intersection, span, etc).
- Coset geometries: the construction of coset geometries, rank 2 residues, tests for flag-transitivity and firmness.