A finitely presented group is a group generated by a set of abstract generators subject to a set of relations that these generators satisfy. Each group can be represented as finitely presented group.
A finitely presented group is constructed as follows. First create an appropriate free group (see FreeGroup). Then create the finitely presented group as a factor of this free group by the relators.
gap> F2 := FreeGroup( "a", "b" );
Group( a, b )
gap> A5 := F2 / [ F2.1^2, F2.2^3, (F2.1*F2.2)^5 ];
Group( a, b )
gap> Size( A5 );
60
gap> a := A5.1;; b := A5.2;;
gap> Index( A5, Subgroup( A5, [ a*b ] ) );
12
Note that, even though the generators print with the names given to FreeGroup,
no variables of that name are defined. That means that the generators must be
entered as free-group.number and fp-group.number.
Note that the generators of the free group are different from the generators of the finitely presented group (even though they print with the same name). That means that words in the generators of the free group are not elements of the finitely presented group.
Note that the relations are entered as relators, i.e., as
words in the generators of the free group. To enter an equation use the
quotient operator, i.e., for the relation a^b = ab you have to enter
a^b/(a*b).
You must not change the relators of a finitely presented group at all.
The elements of a finitely presented group are words. There is one
fundamental problem with this. Different words can correspond to the same
element in a finitely presented group. For example in the group A5
defined above, a and a^3 are actually the same
element. However, a is not equal to a^3 (in the
sense that a = a^3 is false). This leads to the
following anomaly: a^3 in A5 is true, but a^3
in Elements(A5) is false. Some set and group
functions will not work correctly because of this problem. You
should therefore only use the functions mentioned in Set Functions for Finitely Presented Groups
and Group Functions for Finitely Presented Groups.
The first section in this chapter describes the function FreeGroup
that creates a free group (see FreeGroup). The next sections describe which
set theoretic and group functions are implemented specially for finitely
presented groups and how they work (see Set Functions for Finitely Presented Groups
and Group Functions for Finitely Presented Groups). The next section
describes the basic function CosetTableFpGroup that is used by
most other functions for finitely presented groups (see CosetTableFpGroup).
The next section describes how you can compute a permutation group that is a
homomorphic image of a finitely presented group (see OperationCosetsFpGroup).
The final section describes the function that finds all subgroups of a
finitely presented group of small index (see LowIndexSubgroupsFpGroup).
This chapter contains the following sections: