[GAP Forum] 2-groups

Alexander Konovalov alexander.konovalov at gmail.com
Mon Feb 26 11:29:11 GMT 2007


Dear Ahmet,

> It is clear that two p-elements may not generate a p-group. I'm  
> trying to find 2-groups using permutations. Is there a way in GAP  
> to find 2-elements (permutations) x_1, ...,x_n such that Group 
> (x_1,...,x_n) is a 2-group. May this be possible to find 2-elements  
> (permutations)  x_1, x_2 such that Group(x_1,x_2) is a 2-group, and  
> x_3 such that Group(x_1,x_2,x_3) is a 2-group, etc?  Othewise by  
> trial and error (with IsPGroup) we waste much time.

Dependently on your particular problem, you may find several  
approaches to be useful.

For example, you could find generators of 2-group as permutation  
groups, using the GAP Small Groups Library in the following way:

gap> G:=SmallGroup(8,3);
<pc group of size 8 with 3 generators>

gap> S:=Image(IsomorphismPermGroup(G));
Group([ (1,5)(2,6)(3,8)(4,7), (1,3)(2,4)(5,7)(6,8), (1,2)(3,4)(5,6) 
(7,8) ])

gap> GeneratorsOfGroup(S);
[ (1,5)(2,6)(3,8)(4,7), (1,3)(2,4)(5,7)(6,8), (1,2)(3,4)(5,6)(7,8) ]

In many cases the permutation representation constructed by  
IsomorphismPermGroup is regular, so the group S will act on |G|  
points. If this is not enough, you can try to reduce the degree of  
the permutation representation as below:

gap> W:=Image(SmallerDegreePermutationRepresentation(S));
Group([ (1,3)(2,4), (3,4), (1,2)(3,4) ])
gap> IdGroup(W);
[ 8, 3 ]

Note that there are some warnings in the manual regarding the usage  
of SmallerDegreePermutationRepresentation.

Another approach is to look at the Sylow p-subgroups of Sym(n). They  
are quite well understood and can be easily computed with GAP. You  
could construct a Sylow 2-subgroup of Sym(n) and then determine  
subgroups of that, for example:

gap> G := SymmetricGroup(20);
Sym( [ 1 .. 20 ] )
gap> S := SylowSubgroup(G,2);
<permutation group with 18 generators>
gap> g := Random(S);
(1,3,2,4)(9,14,11,16,10,13,12,15)(17,18)(19,20)
gap> h := Random(S);
(1,2)(9,12)(10,11)(13,15,14,16)(19,20)
gap> U := Subgroup(S, [g,h]);
Group([ (1,3,2,4)(9,14,11,16,10,13,12,15)(17,18)(19,20),
   (1,2)(9,12)(10,11)(13,15,14,16)(19,20) ])
gap> Size(U);
64

Finally, I would like to mention that there is an algorithm by C.  
Sims which can be used to determine a Sylow p-subgroup of a  
permutation group. This algorithm builds up the desired group from  
the bottom and hence the steps of this algorithm would probably do  
exactly what you want. It is implemented in GAP, but the  
implementation is not trivial or easy to read. See the paper [Charles  
C. Sims, Computing the order of a solvable permutation group, J.  
Symbolic Comput., 9:699--705, 1990] for its description.

Hope this helps,

Bettina Eick,
Alexander Konovalov



More information about the Forum mailing list