Goto Chapter: Top 1 2 3 4 5 6 7 8 9 Bib Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

7 Cosets of PcpGroups
 7.1 Right cosets
 7.2 Double cosets

7 Cosets of PcpGroups

GAP is well-equipped to deal with finite cosets. However, if a coset is infinite, methods may not be available, may be faulty, or may run forever. The TwistedConjugacyClone package provides additional methods for existing functions that can deal with infinite cosets of PcpGroups.

The only completely new functions are DoubleCosetIndex (7.2-7) and its NC version.

7.1 Right cosets

Calculating the intersection of two right cosets Hx and Ky can be reduced to calculating the intersection H \cap K and verifying whether xy^{-1} \in HK (see \in (7.2-1)).

7.1-1 Intersection
‣ Intersection( C1, C2, ... )( function )
‣ Intersection( L )( function )

Returns: the intersection of the right cosets C1, C2, ...

Alternatively, this function also accepts a single list of right cosets L as argument.

This intersection is always a right coset, or the empty list.

gap> G := ExamplesOfSomePcpGroups( 5 );;
gap> H := Subgroup( G, [ G.1*G.2^-1*G.3^-1*G.4^-1, G.2^-1*G.3*G.4^-2 ] );;
gap> K := Subgroup( G, [ G.1*G.3^-2*G.4^2, G.1*G.4^4 ] );;
gap> x := G.1*G.3^-1;;
gap> y := G.1*G.2^-1*G.3^-2*G.4^-1;;
gap> z := G.1*G.2*G.3*G.4^2;;
gap> Hx := RightCoset( H, x );;
gap> Ky := RightCoset( K, y );;
gap> Intersection( Hx, Ky );
RightCoset(<group with 2 generators>,<object>)
gap> Kz := RightCoset( K, z );;
gap> Intersection( Hx, Kz );
[  ]

7.2 Double cosets

Algorithms designed for computing with twisted conjugacy classes can be leveraged to do computations involving double cosets, see [Ter25, Sec. 9] for a description on this. When the TwistedConjugacyClone package is loaded, it does this automatically, and the functions below should then work for PcpGroups, even if they are infinite.

7.2-1 \in
‣ \in( g, D )( operation )

Returns: true if g is an element of D, otherwise false.

7.2-2 Size
‣ Size( D )( operation )

Returns: the number of elements in D.

7.2-3 List
‣ List( D )( function )

Returns: a list containing the elements of D.

If D is infinite, this will run forever. It is recommended to first test the finiteness of D using Size (7.2-2).

7.2-4 \=
‣ \=( C, D )( operation )

Returns: true if C and D are the same double coset, otherwise false.

7.2-5 DoubleCosets
‣ DoubleCosets( G, H, K )( function )
‣ DoubleCosetsNC( G, H, K )( operation )

Returns: a duplicate-free list of all (H,K)-double cosets in G if there are finitely many, otherwise fail.

The groups H and K must be subgroups of the group G. The NC version does not check whether this is the case.

7.2-6 DoubleCosetRepsAndSizes
‣ DoubleCosetRepsAndSizes( G, H, K )( operation )

Returns: a list containing pairs of the form [ r, n ], where r is a representative and n is the size of a double coset.

While for finite groups this function is supposed to be faster than DoubleCosetsNC (7.2-5), for PcpGroups it is usually slower.

7.2-7 DoubleCosetIndex
‣ DoubleCosetIndex( G, H, K )( function )
‣ DoubleCosetIndexNC( G, H, K )( operation )

Returns: the double coset index of the pair (H,K).

The groups H and K must be subgroups of the group G. The NC version does not check whether this is the case.

gap> HxK := DoubleCoset( H, x, K );;
gap> HyK := DoubleCoset( H, y, K );;
gap> HzK := DoubleCoset( H, z, K );;
gap> y in HxK;
true
gap> z in HxK;
false
gap> HxK = HyK;
true
gap> HxK = HzK;
false
gap> DoubleCosets( G, H, K );
[ DoubleCoset(<group with 2 generators>,<object>,<group with 2 generators>),
  DoubleCoset(<group with 2 generators>,<object>,<group with 2 generators>) ]
gap> DoubleCosetIndex( G, H, K );
2
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 Bib Ind

generated by GAPDoc2HTML