Chapter 11. Group Theory

Table of Contents

General Theory
Holonomy Groups
Group Cohomology
Introduction
Cohomology using Sylow subgroups
What _is_ a Schur cover?
Schur covers and lifting a quotient
Results
Morphing Group
Galois Groups
ToDo

There are groups all over the place!

Consider the group (lattice group, automorphism group) generated by the following two actions on directed edges:

By using the export utility (again see Appendix A, Installation and Usage) we can get these generators. One can use a third operation (available by -s 3 as cmd line option): the rotation of directed edges (those starting from there) around the vertices (counter-clockwise), giving the same groups. Actually dual_rot*rot flip -1 of course.

Example: Let's consider a tetrahedron:

gap>G:=Group(
	(1, 2, 3)(4, 5, 6)(7, 8, 9)(10, 11, 12),
	(1, 11)(2, 6)(3, 9)(4, 10)(5, 7)(8, 12)
);;
gap>Collected(Factors(Size(G)));
[ [ 2, 2 ], [ 3, 1 ] ]
gap>IsNaturalAlternatingGroup(G);
false
gap>H:=AlternatingGroup(4);;
gap>l:=NormalSubgroups(H);
[ Alt( [1..4] ), Group([ (1,3)(2,4), (1,2)(3,4) ]), Group(()) ]
gap>OneCocycles(H,l[2]);
... isSplitExtension:=true;
gap>cmpl:=Complementclasses(H,l[2]);
[ Group([ (2,4,3) ]) ]
gap>Size(Intersection(cmpl[1],l[2]));
1
gap>ClosureGroup(cmpl[1],l[2]);;
gap>IsomorphismGroups(H,G);
[ (1,2,3),(2,3,4) ] 
  -> [ (1,9,12)(2,11,4)(3,6,7)(5,10,8), (1,2,3)(4,5,6)(7,8,9)/10,11,12) ]
gap>DisplayCompositionSeries(G);
G (3 gens, size 12)
 | Z(3)
S (2 gens, size 4)
 | Z(2)
S (1 gens, size 2)
 | Z(2)
1 (0 gens, size 1)

This group is ment when we speak of the lattice group on the next pages. Even though topologically our graphs don't differ so much (only by genus), geometrically some vertices are different from others, their valences vary. How about the relationship of stellation, gluing or turning faces to holes and the resulting groups? In fact as (the number of labels) n → ∞ the result will almost always be S(n) or A(n).

In the case of holes we use the 'double' (graph, glueShapes along inner boundary lines, and mirrored graph, see the section called “Holonomy Groups” for an explanation) and work with all those polygons. One could also (in the flip action) fix labels pointing towards holes to construct some group (and all pointers originating from holes are ignored then). But this is not really sophisticated and somehow weakens the overall design. Yet another possible treatment is to take holes simply as valid faces.

Please be aware that instead of the exact group in the following we often only present some sorted simple factors in a composition series. For example actually A(4) is (Z(2) × Z(2)) : Z(3) (direct and semi-direct product) whereby Z(3) is not a normal subgroup, so just merging the factors into a final big pile is a quite lossy presentation and should be improved.

It seems that the following ATLAS™ notation should be used: A × B for a direct product; A.B or A B for a group with normal subgroup isomorphic to A, for which the corresponding quotient group is isomorphic to B; A : B for the case of A.B which is a split extension (or a semi-direct product in other words); and A B for the case when A.B is not a split extension.

Actually now that a canonical naming is available by GAP™ (there A.B already means non-split), we can use this (in case our computational resources suffice):

gap>StructureDescription(G);
'A4'

Whereas non-isomorphic groups can get the same description, this is anyway a substantial improvement. Some cyclic and alternating groups seem to be the standard results. The latter are sometimes said to be finite analogs of the families of simple Lie groups (aka 'groups of Lie type'). Anyway there are numerous isomorphisms like A(4) L2(3) , A(5) L2(4) L2(5) , A(6) L2(9) , and A(8) L4(2) involving finite (Galois) fields (thereby for example L2(3) and PSL(2,3) denote the same group and are only different notations).

Besides for example A(4) is also a Frobenius group (that's a transitive permutation group on a finite set, such that no non-trivial element fixes more than one point and some non-trivial element fixes a point).

Let's create the regular (2,4,5) representation of S(5) A(5):2 (on 120 labels of genus 4):

gap>S5:=SymmetricGroup(5);;
gap>hom:=RegularActionHomomorphism(S5);
<action epimorphism>
gap>S5_reg:=Image(hom,S5);

The same works for the simple group L2(7) of order 168 and genus 3 using the (2,3,7) triple. Both groups obey the Riemann-Hurwitz identity (Equation 11.1, “Riemann-Hurwitz identity”), relating the group's size, the genus, and the valences 2, p and q (around edges, faces and vertices respectively):


Moreover the group achieves the maximal possible order 84(g-1) and so is a Hurwitz group. And all this has to do with Klein's quartic as well as the group of symmetries of the Fano plane.

But for example M(24) as well can be obtained, obeying rot 3 flip 2 dual_rot 21 , with the rot on 6 triangles and the dual_rot having one cycle of length 21 once around the boundary, and one cycle of length 3 (luckily dividing 21) around the single inner vertex.

Btw. (see [Lan04]) let Ck denote the conjugacy classes of the group G and define a number as

N := #{ (c1, …, ck) in C1× … ×Ck | c1 … ck = 1 }

, then using the complex irreducible characters χ of G we get the generalized Frobenius formula (Equation 11.2, “Frobenius formula”) for ramified coverings of a Riemannian surface (without torsion) with genus g.


For example take the simple group M(24) and the class vector (2A, 3A, 21A) with k=3 (flip,rot,dual_rot), look at the character table and realize g = 0. And btw. all this is also related to the so called normalized structure constant of a class vector.

We can determine the group of automorphisms of a group G (icosahedron G:=A(5) example):

gap>AG:=AutomorphismGroup(G);
gap>DisplayCompositionSeries(AG);
G (3 gens, size 120)
 | Z(2)
S (2 gens, size 60)
 | A(5)
1 (0 gens, size 1)
gap>Size(InnerAutomorphismsAutomorphismGroup(AG));
60
Here AG has got 7 irreducible characters, and A(5) is the normal subgroup, Z(2) is not.

Let's see what GRAPE™ gives as the edge-set preserving automorphism group (here A is the icosahedron adjacency matrix):

gap>LoadPackage("grape");;
gap>P := Graph( Group(()), [1..20], OnPoints,
	    function(x,y) return A[x][y]=1; end, true);;
gap>G:=AutGroupGraph(P);;
gap>DisplayCompositionSeries(G);
G (3 gens, size 120)
 | A(5) ~ A(1,4) = L(2,4) ~ B(1,4) = O(3,4) ~ C(1,4) = S(2,4) ~ 2A(1,4) = U(2,4)\
 ~ A(1,5) = L(2,5) ~ B(1,5) = O(3,5) ~ C(1,5) = S(2,5) ~ 2A(1,5) = U(2,5)
S (1 gens, size 2)
 | Z(2)
1 (0 gens, size 1)

This is the direct product Z(2) × A(5) (both Z(2) and A(5) are normal subgroups, G has 10 irreducible characters).

Yet another group is returned when we ask for all matrices commutating with B, the adjacency matrix of A's dual (the dodecahedron):

gap>G := GL(12,2);
SL(12,2)
gap>ConvertToMatrixRep(B,2);;
gap>C := Centralizer(G,B);;
gap>DisplayCompositionSeries(C);
(A(11,2) = L(12,2)

Actually (even more meaningful and important) one might take the rot/flip group from above and represent each element by a n × n permutation matrix with n the number of used labels (the degree), the entries ( α , β ) being 1 if the group element changes α to β , and 0 otherwise. Such a map is a homomorphism from the group into GL(n,F) for any field F. The centraliser algebra is the set of all n × n matrices which commute with all arising matrices of the group (see [Cam99]). The algebra's dimension equals the rank of the permutation group.