The GAP package Congruence provides functions to construct several types of canonical congruence subgroups in SL_2(ℤ), and also intersections of a finite number of such subgroups.
Furthermore, it implements the algorithm for generating Farey symbols for congruence subgroups and using them to produce a system of independent generators for these subgroups.
Using the package, one can also determine indices of congruence subgroups and their intersections in SL_2(ℤ) and in other congruence subgroups, generate their random elements and check element memberships. Success of other group theoretical constructions mostly depends on whether they could be expressed in terms of group generators or not.
For the theoretical backround, we refer to [LLT95b], [LLT95a], [CLLT93] and [Kul91].
Congruence is distributed in standard formats (tar.gz
, tar.bz2
, -win.zip
) and can be obtained from https://gap-packages.github.io/congruence/.
Congruence does not use external binaries and, therefore, works without restrictions on the operating system. It requires at least version GAP 4.5, and no compatibility with previous releases of GAP 4 is guaranteed.
Installation of the package is standard and follows the guidelines from the GAP manual (see Reference: Installing a GAP Package. After the package is installed, you can start GAP and load the Congruence package using the command:
gap> LoadPackage("congruence");
generated by GAPDoc2HTML