1<Chapter Label="Intro">
2<Heading>Introduction</Heading>
3
4<Section Label="IntroAims">
5<Heading>General aims of &Congruence; package</Heading>
6
7<Index Key="IsCongruenceSubgroup"><C>IsCongruenceSubgroup</C></Index>
8The &GAP; package &Congruence; provides functions to construct several
9types of canonical congruence subgroups in <M>SL_2(&ZZ;)</M>, and also
10intersections of a finite number of such subgroups.
11<P/>
12
13Furthermore, it implements the algorithm for generating Farey symbols for
14congruence subgroups and using them to produce a system of independent
15generators for these subgroups.
16<P/>
17
18Using the package, one can also determine indices of congruence subgroups and
19their intersections in <M>SL_2(&ZZ;)</M> and in other congruence subgroups,
20generate their random elements and check element memberships. Success of other
21group theoretical constructions mostly depends on whether they could be
22expressed in terms of group generators or not.
23<P/>
24
25For the theoretical backround, we refer to <Cite Key="LLT-Hecke" />,
26<Cite Key="LLT-Algorithm" />, <Cite Key="CLT" /> and <Cite Key="Kulkarni" />.
27
28
29</Section>
30
31<!-- ********************************************************* -->
32
33<Section Label="IntroInstall">
34<Heading>Installation and system requirements</Heading>
35
36&Congruence; is distributed in standard formats (<File>tar.gz</File>,
37<File>tar.bz2</File>, <File>-win.zip</File>) and can be obtained from
38<URL>http://www.cs.st-andrews.ac.uk/~alexk/congruence/</URL>.
39<P/>
40
41&Congruence; does not  use  external  binaries and,  therefore,  works  without
42restrictions on the operating system.
43It requires at least version  &GAP;&nbsp;4.5, and no compatibility with
44previous releases of &GAP;&nbsp;4 is guaranteed.
45<P/>
46
47Installation of the package is standard and follows the guidelines from the
48&GAP; manual (see <Ref Sect="Installing a GAP Package" BookName="ref"/>.
49After the package is installed, you can start &GAP; and load
50the &Congruence; package using the command:
51
52<Log>
53<![CDATA[
54gap> LoadPackage("congruence");
55]]>
56</Log>
57
58
59
60</Section>
61
62</Chapter>
63