# Maths - Semidirect Product

This is a modification to the direct product described on this page. Here we will apply a mapping to one of the operands before applying the direct product:

{n, h}φ {n',h'} = {n * φ(n') , h o h' }

where:

• is the operation of the combined algebra (right handed semidirect product).
• * is the operation of the group G.
• o is the operation of the group H which may be, or may not be, the same as *.
• φ() is a mapping as described below.

Here we are using the right handed semidirect product , we can change to the left handed semidirect productby exchanging the operands.

The mapping is done as follows, we first generate cosets of the first group, we apply the group operation to these cosets but slightly modified as follows:

• If we are thinking in terms of the Cayley graph then we reverse the arrows of all permutations of the generators.
• If we are thinking in terms of the Cayley table then we swap rows with their inverse.

We then use a mapping of the second group to select which coset to use for each product of the second group.

### Example C2C3

As with the direct product example we will try calculating the product of C2 and C3. As a reminder these are the definitions of these groups individually (full definitions on this page):

#### C2

generator cayley graph table permutation representation
<m | m²>
 1 m m 1
< ( 1 2 ) >
 0 1 1 0

#### C3

generator cayley graph table permutation representation
<r | r³>
 1 r r² r r² 1 r² 1 r
< ( 1 2 3 ) >
 0 0 1 1 0 0 0 1 0

#### direct product C3 × C2

This gives :

generator cayley graph table
<m,r | m²,r³,rm=mr>
 {1,1} {r,1} {r²,1} {1,m} {r,m} {r²,m} {r,1} {r²,1} {1,1} {r,m} {r²,m} {1,m} {r²,1} {1,1} {r,1} {r²,m} {1,m} {r,m} {1,m} {r,m} {r²,m} {1,1} {r,1} {r²,1} {r,m} {r²,m} {1,m} {r,1} {r²,1} {1,1} {r²,m} {1,m} {r,m} {r²,1} {1,1} {r,1}
permutation representation
<(1 2 3)(4 5 6),(1 4)(2 5)(3 6)>
[
 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0
,
 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0
]

Note that, in addition to applying both the generators and constrains for the original groups we have had to apply an additional constraint: rm=mr. If we had not done this we would have the infinite free product.

## Generating a Semidirect Product using a Program

We can use a computer program to generate these groups, here I have used Axiom/FriCAS which is described here.

(1) -> )r axiom/semidirectProduct
)set output algebra off
)set output mathml on
-- first try C2 x C3
C2 := FiniteGroup(2,[[1,2],[2,1]],["1","m"])
Type: Type
SDP := semidirectProduct([[1,2,3],[2,3,1],[3,1,2]],["1","r","rr"],
[[2,2,2],[2,2,2],[2,2,2]])\$C2

Type: Type
toTable()\$SDP

 1 r rr m mr mrr r rr 1 mr mrr m rr 1 r mrr m mr m mr mrr 1 r rr mr mrr m r rr 1 mrr m mr rr 1 r

Type: Table(6)
setGenerators([false,true,false,true,false,false])\$SDP
Type: Void
PSDP := toPermutation()\$SDP

<(1 2 3)(4 5 6),(1 4)(2 5)(3 6)>

Type: PermutationGroup(Integer)
permutationRepresentation(PSDP,6)

[
 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0
,
 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0
]

Type: List(Matrix(Integer))
-- then try C3 x C2 with mapping [[2,2],[2,2]]
C3 := FiniteGroup(3,[[1,2,3],[2,3,1],[3,1,2]],["1","r","rr"])

Type: Type
SDP := semidirectProduct([[1,2],[2,1]],["1","m"],[[2,2],[2,2]])\$C3

Type: Type
toTable()\$SDP

 1 m rr rrm r rm m 1 rrm rr rm r r rm 1 m rr rrm rm r m 1 rrm rr rr rrm r rm 1 m rrm rr rm r m 1

Type: Table(6)
setGenerators([false,true,true,false,false,false])\$SDP
Type: Void
PSDP := toPermutation()\$SDP

<(1 2)(3 4)(5 6),(1 3 5)(2 4 6)>

Type: PermutationGroup(Integer)
permutationRepresentation(PSDP,6)

[
 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0
,
 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0
]

Type: List(Matrix(Integer))
-- then try C3 x C2 with mapping [[1,1],[2,2]]
C3b := FiniteGroup(3,[[1,2,3],[2,3,1],[3,1,2]],["1","r","rr"])

Type: Type
SDP := semidirectProduct([[1,2],[2,1]],["1","m"],[[1,1],[2,2]])\$C3b

Type: Type
toTable()\$SDP

 1 m r rm rr rrm m 1 rrm rr rm r r rm rr rrm 1 m rm r m 1 rrm rr rr rrm 1 m r rm rrm rr rm r m 1

Type: Table(6)
setGenerators([false,true,true,false,false,false])\$SDP
Type: Void
PSDP := toPermutation()\$SDP

<(1 2)(3 6)(4 5),(1 3 5)(2 4 6)>

Type: PermutationGroup(Integer)
permutationRepresentation(PSDP,6)

[
 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0
,
 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0
]

Type: List(Matrix(Integer))
(19) ->

## Examples

Here are some examples of the semidirect product of groups:

Type Product Description
Dihedral
Group
The dihedral group is the semidirect product of a cyclic group of order 2 and a cyclic group of order n
Isometries

Isometries (distance preseving maps) in 3-space is the semidirect product of:

• R3 : Addative group of translations.
• {±1} : Reflections through the origin.
• SO3 : Group of rotations in 3-space.
Poncaré

Poncaré group is the semidirect product of:

• R4 : Addative group of translations in 4-space.
• SO3,1 : Lorentz group.

Book Shop - Further reading.

Where I can, I have put links to Amazon for books that are relevant to the subject, click on the appropriate country flag to get more details of the book or to buy it from them.

 The Princeton Companion to Mathematics - This is a big book that attempts to give a wide overview of the whole of mathematics, inevitably there are many things missing, but it gives a good insight into the history, concepts, branches, theorems and wider perspective of mathematics. It is well written and, if you are interested in maths, this is the type of book where you can open a page at random and find something interesting to read. To some extent it can be used as a reference book, although it doesn't have tables of formula for trig functions and so on, but where it is most useful is when you want to read about various topics to find out which topics are interesting and relevant to you.