# Maths - Direct Product

Perhaps the simplest way to combine (multiply) two sets (and therefore groups) is to use the Cartesian product as explained on this page. This product produces a set from the product:

g×h = {g, h}

So the result of this product is a different type of entity than the elements being multiplied, so the multiplication is not closed, and therefore does not represent a group. The external product makes this into a group because the inputs to the multiplication are also sets:

{g, h} × {g' , h' } = {g * g' , h o h' }

where:

• × is the operation of the combined algebra.
• * 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 *.

### Example C2×C3

In order to try to understand this product of two groups lets try multiplying two very simple groups together, the simplest groups I can think of are 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 Direct 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/directProduct
)set output algebra off
)set output mathml on
-- first calculate C2 x C3
C2 := FiniteGroup(2,[[1,2],[2,1]],["1","m"])
Type: Type
DP := directProduct([[1,2,3],[2,3,1],[3,1,2]],["1","r","rr"])\$C2

Type: Type
toTable()\$DP

```
 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])\$DP

Type: Void
PDP := toPermutation()\$DP

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

Type: PermutationGroup(Integer)
permutationRepresentation(PDP,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))
-- now calculate C3 x C2
C3 := FiniteGroup(3,[[1,2,3],[2,3,1],[3,1,2]],["1","r","rr"])

Type: Type
DP := directProduct([[1,2],[2,1]],["1","m"])\$C3

Type: Type
toTable()\$DP

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

Type: Table(6)
setGenerators([false,true,true,false,false,false])\$DP

Type: Void
PDP := toPermutation()\$DP

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

Type: PermutationGroup(Integer)
permutationRepresentation(PDP,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))
(13) ->
```