# GAP:WreathProduct

## Definition

### Function type

The function takes as input two groups (or two groups and a homomorphism) and outputs a new group.

### Behavior

• The function takes as input two groups and outputs the external wreath product of the first group by the second group acting via the regular group action.
• The function takes as input two groups and a homomorphism from the second group to a permutation group and outputs the external wreath product of the first group by the second group in terms of the action.

## Examples of usage

Here is the construction of the wreath product of the cyclic group of order two and the cyclic group of order two, via the regular action. It turns out to be isomorphic to the dihedral group of order eight.

```gap> G := WreathProduct(CyclicGroup(2),CyclicGroup(2));
<group of size 8 with 2 generators>
gap> IsomorphismGroups(G,DihedralGroup(8));
[ WreathProductElement(f1,<identity> of ...,()),
WreathProductElement(<identity> of ...,<identity> of ...,(1,2)) ] ->
[ f1*f2, f1 ]```

The next example illustrates how, having constructed the wreath product, we can locate, inside it, copies of the base of the wreath product (the first argument) as well as the acting group. The rule is as follows: if the wreath product is by the action on $n$ copies, then the first $n$ embeddings are of the $n$ base factors, and the $(n+1)^{th}$ embedding is of the acting group.

```gap> G := WreathProduct(CyclicGroup(3),CyclicGroup(2));
<group of size 18 with 2 generators>
gap> IdGroup(G);
[ 18, 3 ]
gap> H1 := Image(Embedding(G,1));
<group with 1 generators>
gap> H2 := Image(Embedding(G,2));
<group with 1 generators>
gap> K := Group(Union(H1,H2));
<group with 5 generators>
gap> L := Image(Embedding(G,3));
<group with 1 generators>
gap> IdGroup(L);
[ 2, 1 ]
gap> IdGroup(H1);
[ 3, 1 ]
gap> IdGroup(H2);
[ 3, 1 ]
gap> IdGroup(K);
[ 9, 2 ]```