These pages look at ways to combine two groups together to produce another group. We will look at products and divisions of groups, that is the product of the whole groups, so we get a new group operation that is somehow derived from the group operations of the groups being combined.
When we do this the product of the new groups contains more information or structure than the sum of its parts, so we can add extra information and when we divide a group by a subgroup then this extra information or structure will be lost.
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 *.
Free Product (Coproduct, or Categorical Sum)
Each multiplicand is represented by a 'word' consisting of a sequence of generators. We apply the multiplication by putting the words one after the other. This is the most general type of product that contains the two multiplicands as subgroups.
We can 'reduce' the result by:
- removing the identity element
- replacing and sequence that is within one of the multiplicands
but unless we apply any specific reductions the result will always be infinite for non trivial multiplicands.
Variants on Direct Product
Direct Product | {g, h} × {g',h'} = {g * g' , h o h' } | |
Semidirect Product | {n, h}_{φ} {n',h'} = {n * φ(n') , h o h' } | |
Bicrossed Product also known as Knit or Zappa-Szep product |
{y,z}{y',z' } = {y(z • y'),z^{y'} z'} | |
Complex Multiplication | (x1,y1)(x2,y2) = (x1x2-y1y2,x1y2+x2y1) |
note: the group n is a normal subgroup of the product.
Semidirect Product
Here a function is applied to one of the inputs before doing a direct product. This is like input A acting as a switch to change input B.
See this page for more details.
Bicrossed Product
Given a pair of matched groups H and K, the bicrossed product of groups H×K on the set H×K is given by
(h,k)•(h′,k′)=(hα(k,h′),β(k,h′)k′)
with unit (1,1) and h,h′H, k,k′K, where α:K×H→H, β:K×H→K are left and right actions, respectively.
A pair of groups (H,K) is said to be matched if there exists a left action α of K on the set H and a right action β of the group H on the set K such that for all h,h′H, k,k′K, the following hold:
- β(kk′,h)=β(k,α(k′,h))β(k′,h),
- α(k,hh′)=α(k,h)α(β(k,h),h′),
- α(k,1)=1,
- β(1,h)=1.
See this page for more details.
Category Theory
The above can be notated in terms of category theory:
Group Extension
A group extension is a general means of describing a group in terms of a particular normal subgroup and quotient group. If Q and N are two groups, then G is an extension of Q by N if there is a short exact sequence
1 | → | N | →_{β} | G | →_{α} | Q | → | 1 |
If G is an extension of Q by N, then G is a group, N is a normal subgroup of G and the quotient group G/N is isomorphic to group Q. Group extensions arise in the context of the extension problem, where the groups Q and N are known and the properties of G are to be determined.
External and Internal Product
- External Product - here the group elements of the resulting group are sets containing an element from each on the multiplicands.
- Internal Product - here we use the group operation from from the multiplicands. This requires that the identity element is common to both groups but none of the other elements are.
The internal product uses the individual products of the two groups, this is no problem when we are multiplying two elements of G such as g • g' or two elements of H such as h • h' because the results are already defined by the internal operations of the groups but it does not tell us the result of multiplying an element from G by an element from H such as g•h. These inter-group products may not necessarily be members of G or H, if it is a new element we may just leave the product as g•h but how does this relate to h•g ? To find out which we look for a result that is isomorphic to the external product.
Other Products of groups
We also look at the reverse process on this page, that is, breaking a group down into two or more simpler groups.
Various types of multiplication are also discussed on these pages about the Kronecker Sumand Kronecker 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/directCycle DIRECT : LIST PERM INT := [cycle [1,2],cycle[3,4]] (1) [(1 2),(3 4)] Type: List(Permutation(Integer)) C2XC2 := permutationGroup(DIRECT) (2) <(1 2),(3 4)> Type: PermutationGroup(Integer) toTable()$toFiniteGroup(C2XC2,1) +"i" "a" "b" "ab"+ | | |"a" "i" "ab" "b" | (3) | | |"b" "ab" "i" "a" | | | +"ab" "b" "a" "i" + Type: Table(4) C21 := cycles[[1,2],[3,4]] (4) (1 2)(3 4) Type: Permutation(PositiveInteger) C22 := cycles[[1,3],[2,4]] (5) (1 3)(2 4) Type: Permutation(PositiveInteger) C2OFC2 := permutationGroup[C21,C22] (6) <(1 2)(3 4),(1 3)(2 4)> Type: PermutationGroup(PositiveInteger) toTable()$toFiniteGroup(C2OFC2,1) +"i" "a" "b" "ab"+ | | |"a" "i" "ab" "b" | (7) | | |"b" "ab" "i" "a" | | | +"ab" "b" "a" "i" + Type: Table(4) DIRECT2 : LIST PERM INT := [cycle [1,2,3],cycle[4,5]] (8) [(1 2 3),(4 5)] Type: List(Permutation(Integer)) C3XC2 := permutationGroup(DIRECT2) (9) <(1 2 3),(4 5)> Type: PermutationGroup(Integer) toTable()$toFiniteGroup(C3XC2,1) + "i" "a" "b" "aa" "ab" "aab"+ | | | "a" "aa" "ab" "i" "aab" "b" | | | | "b" "ab" "i" "aab" "a" "aa" | (10) | | |"aa" "i" "aab" "a" "b" "ab" | | | |"ab" "aab" "a" "b" "aa" "i" | | | +"aab" "b" "aa" "ab" "i" "a" + Type: Table(6) C3 := cycles[[1,2,3],[4,5,6]] (11) (1 2 3)(4 5 6) Type: Permutation(PositiveInteger) C2 := cycles[[1,4],[2,5],[3,6]] (12) (1 4)(2 5)(3 6) Type: Permutation(PositiveInteger) C3OFC2 := permutationGroup[C3,C2] (13) <(1 2 3)(4 5 6),(1 4)(2 5)(3 6)> Type: PermutationGroup(PositiveInteger) toTable()$toFiniteGroup(C3OFC2,1) + "i" "a" "b" "aa" "ab" "aab"+ | | | "a" "aa" "ab" "i" "aab" "b" | | | | "b" "ab" "i" "aab" "a" "aa" | (14) | | |"aa" "i" "aab" "a" "b" "ab" | | | |"ab" "aab" "a" "b" "aa" "i" | | | +"aab" "b" "aa" "ab" "i" "a" + Type: Table(6) (15) -> |