CosetTableFpGroup( G, H )
CosetTableFpGroup
returns the coset table of the finitely presented
group G on the cosets of the subgroup H.
Basically a coset table is the permutation representation of the finitely presented group on the cosets of a subgroup (which need not be faithful if the subgroup has a nontrivial core). Most of the set theoretic and group functions use the regular representation of G, i.e., the coset table of G over the trivial subgroup.
The coset table is returned as a list of lists. For each generator of
G and its inverse the table contains a generator list. A generator
list is simply a list of integers. If l is the generator list for the
generator g and l[i] = j
then generator g takes the coset i
to the coset j by multiplication from the right. Thus the permutation
representation of G on the cosets of H is obtained by applying
PermList
to each generator list (see PermList). The coset table is
standardized, i.e., the cosets are sorted with respect to the smallest
word that lies in each coset.
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> CosetTableFpGroup( A5, > Subgroup( A5, [ A5.1, A5.2*A5.1*A5.2*A5.1*A5.2^-1 ] ) ); [ [ 1, 3, 2, 5, 4 ], [ 1, 3, 2, 5, 4 ], # inverse of above, 'A5.1' is an involution [ 2, 4, 3, 1, 5 ], [ 4, 1, 3, 2, 5 ] ] # inverse of above gap> List( last, PermList ); [ (2,3)(4,5), (2,3)(4,5), (1,2,4), (1,4,2) ]
The coset table is computed by a method called coset enumeration. A Felsch strategy is used to decide how to define new cosets.
The variable CosetTableFpGroupDefaultLimit
determines for how many
cosets the table has initially room. CosetTableFpGroup
will
automatically extend this table if need arises, but this is an expensive
operation. Thus you should set CosetTableFpGroupDefaultLimit
to the
number of cosets that you expect will be needed at most. However you
should not set it too high, otherwise too much space will be used by the
coset table.
The variable CosetTableFpGroupDefaultMaxLimit
determines the maximal
size of the coset table. If a coset enumeration reaches this limit it
signals an error and enters the breakloop. You can either continue or
quit the computation from there. Setting the limit to 0
allows
arbitrary large coset tables.
GAP 3.4.4