wreath product function in GAP Can we compute the wreath product of two arbitrary groups in GAP? There exists the following function : WreathProduct( G, H[, hom] ), but I do not how I can use that for two arbitrary groups?
 A: GAP 4.7 has now two functions for wreath products:


*

*WreathProduct (changed behaviour since GAP 4.7)

*StandardWreathProduct (introduced in GAP 4.7)
They are documented in the GAP Manual (see here or enter in GAP ?WreathProduct or ?StandardWreathProduct). 
To avoid surprises, it is advised to check which version of GAP you're using.
The changes introduced in GAP 4.7 are described here, namely:


*

*It is not possible now to call WreathProduct with 2nd argument H not being a permutation group, without using the 3rd argument specifying the permutation representation. This is an incompatible change but it will produce an error instead of a wrong result. 

*The former behaviour of WreathProduct may now be achieved by using StandardWreathProduct which returns the wreath product for the (right regular) permutation action of H on its elements.
Below there is an example which shows that the results of these two may differ. First we use StandardWreathProduct:
gap> G:=SmallGroup(32,6);
<pc group of size 32 with 5 generators>
gap> D:=DerivedSubgroup(G);
Group([ f3, f5 ])
gap> S:=StandardWreathProduct(CyclicGroup(2),D);
<group of size 64 with 3 generators>
gap> NilpotencyClassOfGroup(S);
3
gap> IdGroup(S);
[ 64, 138 ]
gap> StructureDescription(S);
"(((C4 x C2) : C2) : C2) : C2"

Now we use WreathProduct with the 3rd argument computed with IsomorphismPermGroup(D), and obtain another group:
gap> G:=SmallGroup(32,6);
<pc group of size 32 with 5 generators>
gap> D:=DerivedSubgroup(G);
Group([ f3, f5 ])
gap> hom:=IsomorphismPermGroup(D);
[ f3, f5 ] -> [ (1,2), (3,4) ]
gap> Image(hom);
Group([ (1,2), (3,4) ])
gap> S:=WreathProduct(CyclicGroup(2),D,hom);
<group of size 64 with 4 generators>
gap> NilpotencyClassOfGroup(S);
2
gap> IdGroup(S);
[ 64, 226 ]
gap> StructureDescription(S);
"D8 x D8"

Even more, IsomorphismPermGroup is not guaranteed to return the same degree representation at all times, so two different runs on the same group could produce different results. If one constructs hom explicitly, then that would be fine. 
Finally, the same group as in the first example can be constructed with WreathProduct instead of StandardWreathProduct using the regular permutation representation:
gap> G:=SmallGroup(32,6);
<pc group of size 32 with 5 generators>
gap> D:=DerivedSubgroup(G);
Group([ f3, f5 ])
gap> hom:=ActionHomomorphism(D,AsList(D),OnRight);
<action homomorphism>
gap> Image(hom);
Group([ (1,2)(3,4), (1,3)(2,4) ])
gap> S:=WreathProduct(CyclicGroup(2),D,hom);
<group of size 64 with 3 generators>
gap> NilpotencyClassOfGroup(S);
3
gap> IdGroup(S);
[ 64, 138 ]
gap> StructureDescription(S);
"(((C4 x C2) : C2) : C2) : C2"


Comment: I took this particular wreath product from the test file of the GAP package LAGUNA. There is a result in [J.T. Buckley. Polynomial functions and wreath products. Ill. J. Math., 14:274-282, 1970] that the nilpotency class of the wreath product $C_p \wr H$ is equal to $t(H)$ - the nilpotency index of the augmentation ideal of the group ring $F_p H$. The latter index may be computed with LAGUNA package using the formula which involves indices of JenningsSeries of $H$, and it reports 3, not 2:
gap> F:=GF(2);
GF(2)
gap> FD:=GroupRing(F,D);
<algebra-with-one over GF(2), with 2 generators>
gap> AugmentationIdealNilpotencyIndex(FD);
3

