Previous About HAP: Some Definitions next

The cohomology of a group G can be defined in terms of resolutions. Let Z be the group of integers considered as a trivial ZG-module. A free ZG-resolution of Z is a sequence of ZG-module homomorphisms

... → Mn → Mn-1 → ... → M1 → M0

satisfying:
• (Freeness) Each Mn is a free ZG-module.
• (Exactness) The image of Mn+1 → Mn equals the kernel of Mn → Mn-1 for all n>0.
• (Augmentation) The cokernel of M1 → M0 is isomorphic to the trivial ZG-module Z.
The maps Mn → Mn-1 are referred to as boundary homomorphisms. Setting TMn equal to the abelian group Mn/G obtained from Mn by killing the G-action, we get an induced sequence of abelian group homomorphisms

... → TMn → TMn-1 → ... → TM1 → TM0 .

This sequence will generally not satisfy the above exactness condition, and one defines the integral homology of G to be

 Hn(G,Z) = Kernel(TMn → TMn-1) / Image(TMn+1 → TMn)

for all n>0. By changing the definition of TMn one arrives at the definition of homology Hn(G,A) and cohomology Hn(G,A) with coefficients in a ZG-module A. Needless to say, homology and cohomology are invariants of G, and do not depend on the particular choice of free ZG-resolution.

(See David Joyners intoduction to group cohomology for more details on this definition.)
There are two steps to computing group homology:
• Construct a free ZG-resolution R = {Mn}.
• Calculate the homology from TR = {TMn} using some version of the Smith Normal Form algorithm.
For example, the 25th integral homology of the Dihedral group D512 of order 1024 can be calculated using the following commands.
gap> F:=FreeGroup(2);;x:=F.1;;y:=F.2;;
gap> G:=F/[x^2,y^512,(x*y)^2];;  D_512:=Image(IsomorphismPermGroup(G));;

gap> R:=ResolutionFiniteGroup(D_512,26);
Resolution of length 26 in characteristic 0 for <permutation group of size 1024 with 2 generators> .

gap> time; #The time, in milliseconds, for constructing R.
265262

gap> TR:=TensorWithIntegers(R);;
Chain complex of length 26 in characteristic 0 .

gap> Homology(TR,25);
[ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 ]
We see that H25(D512,Z) = (Z2)14.  (Quicker methods for computing this are given on subsequent pages!)

Homology with other coefficients can also be calculated from the resolution R. For instance, the following additional command shows that the 25th homology of D512 with coefficients in the trivial module Z2 is the vector space H25(D512,Z2) = (Z2)26.
gap> T2R:=TensorWithIntegersModP(R,2);;
Chain complex of length 26 in characteristic 2 .

gap> Homology(T2R,25);
26
(At this point we should note that there exist more efficient methods for computing the homology of a finite group G over the finite field Zp with trivial action.

One approach, which has been used very succesfully by Jon Carlson on small p-groups, is to regard the group ring ZpG as a vector space of rank |G|. Each term in a ZpG-resolution R is then also a vector space, and one can use linear algebra techniques to construct R. Details of Carlson's computations can be found here.

The HAP function ResolutionPrimePowerGroup(G,n) uses this idea to compute a free ZpG-resolution for a p-group G. The resolution is minimal in the sense that the number of free generators in degree n is equal to the rank of the vector space Hn(G,Zp) . For example, the following commands compute the ranks of the first 25 mod 2 homology groups of the Sylow 2-subgroup of the Mathieu group M12 .
gap> G:=SmallGroup(64,134);;    #This is the Sylow 2-subgroup of MathieuGroup(12).
gap> R:=ResolutionPrimePowerGroup(G,25);; time;
436107

gap> #The dimensions of the first twenty-five mod 2 homology groups of G are:
gap> List([0..25],n->Dimension(R)(n));
[ 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171,
190, 210, 231, 253, 276, 300, 325, 351 ]
The linear algebra approach to mod p cohomology will not work so well on large groups G since one ends up having to compute null-spaces of large matrices. Consider for instance the above computation for G=D512. Any resolution is going to have at least 26 Z2G-generators in dimension 25, and 25 generators in dimension 24. So to obtain the 26th term one would have to compute the nullspace of a matrix with (1024)2×26×25 =  681574400 entries.

An efficient method for mod p cohomology of larger groups has been developed by David Green. It involves non-abelian Gröbner basis techniques and is described in the book [D.J. Green, Gröbner bases and the computation of group cohomology, Lecture Notes in Math., No. 1828 (Springer, 2003)] and on the corresponding web page.)
For integral (or mod p) computations to succeed the ZG-rank of the resolution R should not be too large in any given dimension. The construction of small ZG-resolutions is an interesting problem and at first glance might seem to be a purely algebraic one. However, we can benefit from the advice of Sir Michael Atiyah.

 "Fundamentally the purpose of algebra always was to produce a formula which one could put into a machine, turn a handle and get an answer. You took something that had a meaning; you converted it into a formula, and you got the answer. In this process you do not need to think any more about what the different stages in the algebra correspond to in the geometry. You lose the insights, and this can be important at different stages. You must not give up the insight altogether! You might want to come back to it later on." M. Atiyah, "Mathematics in the 20th century",  Bulletin London Math. Soc.  34 (2002),  1-15.

 Previous Page Contents Next page