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