Previous | About HAP: Resolutions For Extensions | next

Consider a direct product of groups E=N×G. Given a free ZN-resolution R of Z, and a free ZG-resolution S of Z, one can construct a free ZE-resolution of Z by forming a tensor product of resolutions R(×)S. This is a special case of a result by Eilenberg and Zilber. In dimension n the tensor product has free generators e(×)f for each i-dimensional generator e in R and each j-dimensional generator f in S with i+j=n. The boundary homomorphism in the tensor product is described by an explicit formula involving just the boundaries of R and S.
The following commands use this tensor product to show that the direct product A5×S5 of the alternating group of degree 5 with the symmetric group of degree 5 has 6-dimensional integral homology H6(A5×S5,Z)=(Z2)10 +Z6 .

gap> R:=ResolutionFiniteGroup(AlternatingGroup(5),7);; gap> S:=ResolutionFiniteGroup(SymmetricGroup(5),7);; gap> RS:=ResolutionDirectProduct(R,S);; gap> TRS:=TensorWithIntegers(RS);; gap> Homology(TRS,6); [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6 ]
The tensor product of resolutions can be used to construct a (minimal) resolution for any abelian group. For instance, the following commands confirm the well-known fact that the free abelian group Z5 of rank 5 has H4(Z5,Z) = Z5.
gap> R:=ResolutionAbelianGroup([0,0,0,0,0],5);; gap> TR:=TensorWithIntegers(R);; gap> Homology(TR,4); [ 0, 0, 0, 0, 0 ]

Consider now the more general situation of a short exact sequence 1 → N → E → G → 1. In [C.T.C. Wall, "Resolutions for extensions of groups", Proc. Cambridge Philos. Soc, 57 (1961), 251-255] it was shown that in this case too there exists a free ZE-resolution with the same number of generators as in the tensor product R(×)S. The boundary homomorphism in the resolution is generally more complicated than that in the tensor product.
A number of related results have been discovered and studied by various people under the general name of Perturbation Theory. One variation of Wall's result is given in [G. Ellis, J. Harris & E. Sköldberg, "Polytopal resolutions for finite groups", J. Reine Angewandte Math.]. It concerns the more general case where N is not necessarily normal in G and also provides explicit formulae for the boundary in the "twisted tensor product". These formulae involve, in addition to the boundaries of R and S, a contracting homotopy on R (by which we mean a family of abelian group homomorphisms hn:Rn→Rn+1 related to the boundary homomorphisms dn:Rn→Rn-1 via the formula dnhn-1dn=dn). Formulae are also given for a contracting homotopy on the twisted tensor product itself. These formulae can be used to build resolutions and compute homology, as the following commands illustrate.

gap> P:=SylowSubgroup(MathieuGroup(23),2);; gens:=GeneratorsOfGroup(P);;
gap> gensP:=[gens[4], gens[6], gens[2]];; Order(P)=Order(Group(gensP));
true
gap> hom:=NaturalHomomorphismByNormalSubgroup(P,LowerCentralSeries(P)[3]);;
gap> gensG:=List(GensP,x->Image(hom,x));;
gap> S:=ResolutionfFiniteGroup(gensG,6);;
gap> R:=ResolutionFiniteExtension(gensP,gensG,S,6);;
gap> TR:=TensorWithIntegers(R);;
gap> Homology(TR,5);
[ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 ]

The function ResolutionFiniteExtension(gensE,gensG,S,n) inputs generators for the group E, the images of these generators in a quotient group G, at least n terms of a ZG-resolution S and a positive integer n. It outputs n terms of a ZE-resolution R. Thus the fifth integral homology of the Sylow 2-subgroup P of M23 is H5(P,Z)=(Z2)14.
The drawback to this divide-and-conquer technique is that it tends to substantially increase the number of generators in the resolution for E. Nevertheless, in low dimensions is can be repeatedly applied to large groups. One function for doing this is ResolutionNormalSeries([L1, ... , Lk],n). The input is an integer n and a chain of subgroups L1 > L2 > ... > Lk each of which is normal in L1. It outputs n terms of a resolution for the group L1/Lk.
The following commands show that the biggest Mathieu Group M24 has Sylow 2-subgroup P with sixth mod 2 homology H6(P,Z2)=(Z2)143.

gap> P:=SylowSubgroup(MathieuGroup(24),2);; gap> R:=ResolutionNormalSeries(LowerCentraSeries(P),7);; gap> TR:=TensorWithIntegersModP(R,2); gap> Homology(R,6); 143

For an example involving a matrix group consider the group K arising as the kernel of the canonical homomorphism SL2(Zp3) --> SL2(Zp) with p an odd prime. This group has order p6 and exponent p2. It was show in [J. Pakianathan, "Exponents and the cohomology of finite groups, Proc. American Math. Soc., Vol. 128, No. 7 (1999), 1893-1897] that the homology groups Hn(K,Z) have exponent less than or equal to p2 for all but at most finitely many n. In an earlier and longer paper [W. Browder & J. Pakianathan, "Cohomology of uniformly powerful p-groups", Trans. American Math. Soc., Vol. 352, No. 6 (1999), 2659-2688] it had been proved that H3(K,Z) has exponent p3. The group K is therefore an example of a p-group for which the maximal exponent of the homology groups Hn(K,Z) occurs only finitely many times, thus disproving a conjecture of A. Adem.
The exponent of the low dimensional homology groups Hn(K,Z), for say p=3, can be computed using the following commands. (A quick way to construct K is as a maximal subgroup of the Sylow 3-subgroup of SL2(2,Z27).)

gap> P:=SylowSubgroup(SL(2,Integers mod 27),3);;
gap> K:=MaximalSubgroups(P)[2];
<group of 2x2 matrices of size 729 in characteristic 27>
gap> L:=LowerCentralSeries(K);;
gap> R:=ResolutionNormalSeries([L[1],L[2],Group(Identity(K))],6);;
gap> TR:=TensorWithIntegers(R);;
gap> Homology(TR,1);
[ 3, 3, 3 ]
gap> Homology(TR,2);
[3, 3, 3]
gap> Homology(TR,3);
[3, 3, 3, 3, 3, 3, 27]
gap> Homology(TR,4);
[ 3, 3, 3, 3, 3, 3, 3, 3 ]
gap> Homology(TR,5);
[ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 9, 9, 9 ]

The following commands show that the finitely presented dihedral group D100 of order 200 has integral homology H99(D100,Z)=(Z2)50+Z100 in dimension 99.

gap> F:=FreeGroup(2);;x:=F.1;;y:=F.2;; D:=F/[x^100,y^2,(x*y)^2];;
gap> D_100:=Image(IsomorphismPermGroup(D));;
gap> gens:=GeneratorsOfGroup(D_100);;
gap> R:=ResolutionNormalSeries([gens, gens[1], Identity(D_100)],100);;
gap> TR:=TensorWithIntegers(R);;
gap> Homology(R,99);
[ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
100 ]

The Sylow 2-subgroup of the Symmetric group S20 has order 218. The following commands show that this group G has third homology H3(G,Z) = (Z2)56+(Z4)7.
gap> G:=SylowSubgroup(SymmetricGroup(20));; gap> R:=ResolutionNormalSeries(BigStepLCS(G,64),4);; gap> TR:=TensorWithIntegers(R);; gap> Homology(R,3); [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4 ]

Using the function TwistedTensorProduct() this divide-and-conquer technique can be applied to any group G with a subnormal series G=L1 > L2 > ... > Lk . The only requirements are that we have resolutions (with contracting homotopies) for the group Lk and for each quotient Li/Li+1. In particular, resolutions for polycyclic groups can be found using the function ResolutionSubnormalSeries(L,n) .
The group G need not be finite. For example, the following commands use the divide-and-conquer technique to compute the integral homology of the free nilpotent group G of class two on four generators. The homology is trivial in dimensions greater than 10, and there is 3-torsion in dimensions 4 and 5. This homology, and also that of the free nilpotent group of class two on five generators, was first calculated in [Larry Lambe, "Cohomology of principal G-bundles over a torus when H*(BG,R) is polynomial", Bulletin Soc. Math. de Belgium, 38 (1986), 247-264].
(The integral cohomology ring structure for the free nilpotent group of class two on three generators is investigated on a subsequent page. )
The group G is created using the GAP package "nq" by Werner Nickel.

gap> F:=FreeGroup(4);;
gap> G:=NilpotentQuotient(F,2);;
gap> R:=ResolutionNilpotentGroup(G,12);;
gap> TR:=TensorWithIntegers(R);;
gap> for n in [1..11] do
> Print("Homology in dimension ", n," is \n",Homology(TR,n),"\n");
> od;
Homology in dimension 1 is
[ 0, 0, 0, 0 ]
Homology in dimension 2 is
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
Homology in dimension 3 is
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 ]
Homology in dimension 4 is
[ 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
Homology in dimension 5 is
[ 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
Homology in dimension 6 is
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0 ]
Homology in dimension 7 is
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 ]
Homology in dimension 8 is
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
Homology in dimension 9 is
[ 0, 0, 0, 0 ]
Homology in dimension 10 is
[ 0 ]
Homology in dimension 11 is
[ ]

By contrast, the following commands show that the integral homology of the free nilpotent group of class three on three generators has 2-torsion in dimension 4.

gap> F:=FreeGroup(3);;
gap> G:=NilpotentQuotient(F,3);;
gap> R:=ResolutionNilpotentGroup(G,5);;
gap> TR:=TensorWithIntegers(R);;
gap> Homology(TR,4); time;
[ 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
46521881

Note the time taken by GAP's Smith Normal Form algorithm to compute the homology in the last example! The 2-torsion can be detected more quickly using the universal coefficient exact sequence for a trivial ZG-module A (where (×) denotes the tensor product over Z).

1 → Hn(G,Z) (×) A → Hn(G,A) → Tor1(Hn-1(G,Z),A) → 1

The third integral homology of the group G is quickly calculated and seen to be torsion free. So H4(G,A) is isomorphic to H4(G,Z) (×) A. The following commands now establish 2-torsion in the fourth integral homology.

gap> F:=FreeGroup(3);; gap> G:=NilpotentQuotient(F,3);; gap> R:=ResolutionNilpotentGroup(G,5);; gap> TRrational:=TensorWithRationals(R);; gap> TRmod2:=TensorWithIntegersModP(R,2);; gap> Homology(TRrational,4);time; 171 320702 gap> Homology(TRmod2,4);time; 174 36705
Some of the most interesting groups have no normal subgroup and so the above techniques can't be applied to them. We need additional techniques.

Previous Page | Contents | Next page