


This
page illustrates functions written by Le
Van Luyen for computing the integral homology of simplicial
groups. 

To
obtain an interesting example of a simplicial group let us consider the
dihedral group G of order 16, and the canonical homomorphism µ:G
> Aut(G) from G to its automorphism group which sends an element g
to the inner automorphism x> gxg^{1} . The homomorphism
µ is an example of a crossed
module and, as such, is equivalent to a cat1group C. The
following commands construct this cat1group and show that C has order
512, has fundamental group C_{2}xC_{2} and second
homotopy group C_{2}. 

gap>
C:=AutomorphismGroupAsCatOneGroup(DihedralGroup(16)); Cat1group with underlying group Group( [ f1, f2, f3, f4, f5, f6, f7, f8, f9 ] ) . gap> Size(C); 512 gap> Pi_1:=HomotopyGroup(C,1);; gap> Pi_2:=HomotopyGroup(C,2);; gap> StructureDescription(Pi_1); "C2 x C2" gap> StructureDescription(Pi_2); "C2" 

A
morphism C>Q of cat1groups is called a quasiisomorphism if it induces
isomorphisms of homotopy groups. Quasiisomorphic cat1groups have the
same homology and cohomology. The following commands construct a quasiisomorphic cat1group Q of order 32. 

gap>
Q:=QuasiIsomorph(C); Cat1group with underlying group Group( [ f5, f9, f1, f2*f3, f8 ] ) . gap> Size(Q); 32 

Now
a cat1group Q can be regarded as a category endowed with a
"compatible" group operation (i.e. it is a category object in the
category of groups). The classical nerve of the category Q will be a
simplicial group. The following command constructs the nerve of Q (up
to degree 6). 

gap>
N:=NerveOfCatOneGroup(Q,6); Simplicial group of length 6 

By taking the nerve of each group N_{n}
in the simplicial group N we obtain a bisimplicial set. The diagonal of
this bisimplicial set is a simplicial set which we denote by D. By
taking the free abelian group FD_{n} on each set in D we obtain
a simplicial free abelian group FD. Let Chn(N) denote the standard
chain complex of this simplicial abelian group FD. (The chain
groups Chn(N)_{n} are just the free abelian groups FD_{n};
the boundary homomorphisms in Chn(N) are got by taking alternating sums
of the homomorphisms in FD.)
The chain complex Chn(N) is typically enormous. The following command (due to Le Van Luyen) returns a vastly smaller chain complex K which is chain homotopic to Chn(N). (The smaller chain complex is constructed using homological perturbation theory.) 

gap>
K:=ChainComplexOfSimplicialGroup(N); Chain complex of length 6 in characteristic 0 . 

The
following commands now yield, by definition, the lowdimensional
integral homology groups of our original crossed module µ . 

gap>
Homology(K,1); [ 2, 2 ] gap> Homology(K,2); [ 2 ] gap> Homology(K,3); [ 2, 2, 2 ] gap> Homology(K,4); [ 2, 2, 2 ] gap> Homology(K,5); [ 2, 2, 2, 2, 2, 2 ] 

Other
examples of cat1groups and their nerves can be obtained from the XMOD
package for GAP. This package contains a library of all cat1groups
with underlying group C of small order. For instance, the following
commands construct the nerve of a cat1group whose underlying
groups C has order 8. 

gap>
LoadPackage("xmod");;  loading XMod 2.008 for GAP 4.4  Murat Alp and Chris Wensley  gap> C:=Cat1Select(8,5,3); [c2^3=>c2] gap> N:=NerveOfCatOneGroup(C,4); Simplicial group of length 4 

Other
examples of simplicial groups are the EilenbergMacLane simplicial
groups K(G,n) with (n1)st homotopy group equal to G and all other
homotopy groups equal to 0. The group G must be abelian when n>0. The following computes the first eleven terms of the chain complex CK of the EilenbergMacLane space K(Z,2) and shows that in dimension d the number of free generators of this complex is the dth Fibonacci number. 

gap>
ZZ:=AbelianPcpGroup(1,[0]);; #ZZ is the infinite cyclic group gap> K:=EilenbergMacLaneSimplicialGroup(ZZ,2,10);; gap> CK:=ChainComplexOfSimplicialGroup(K);; gap> List([0..10],CK!.dimension); [ 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 ] 

The
following produces a chain complex D which is quasiisomorphic to CK
and which has just one generator in each odd dimension. (This
corresponds to the standard CWstructure on complex projective
space
involving just one cell in each even dimension.) 

gap>
D:=CoreducedChainComplex(CK);; gap> List([0..9],D!.dimension); [ 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 ] 

The
following analogous commands produce a chain complex for K(Z/2Z,2) in
which the number of free generators in degree d+2 is the dth Fibonacci
number. 

gap>
K:=EilenbergMacLaneSimplicialGroup(CyclicGroup(2),2,10);; gap> CK:=ChainComplexOfSimplicialGroup(K);; gap> List([0..10],CK!.dimension); [ 1, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 ] gap> D:=CoreducedChainComplex(CK);; gap> List([0..9],D!.dimension); [ 1, 0, 1, 1, 2, 3, 5, 8, 13, 21 ] 

Many
homotopy 2types are direct products of EilenbergMacLane spaces. For
instance, if a 2type is represented by a cat1group whose underlying
group is abelian, then the 2type is a product of EilenbergMacLane
spaces. For a nonableian example let us consider the automorphism cat1group C of the 5th small group of order 36. By definition the fundamental group of C acts trivially on the second homotopy group. Moreover, the following commands show that the order of C is equal to the product of the orders of its homotopy groups. This implies that C is a direct product of a K(G,1) and a K(A,2). 

gap>
G:=SmallGroup(36,5);; gap> C:=AutomorphismGroupAsCatOneGroup(G);; gap> Order(HomotopyGroup(C,1))*;Order(HomotopyGroup(C,2)) = Size(C); true 

The
following commands imply that C is quasiisomorphic to the product of
EilenbergMacLane spaces K(Z/2Z,2) x K(Z/2Z,2) x K(Z/9Z,2) x K(C_{6},1)
x
K(S_{3},1) . 

gap>
StructureDescription(HomotopyGroup(C,2)); "C18 x C2" gap> StructureDescription(HomotopyGroup(C,1)); "C6 x S3" 

The
following commands compute the homology of the cat1group C in degree
4. 

gap>
C1:=TensorWithIntegers(ResolutionFiniteGroup(SymmetricGroup(3),5));; gap> C2:=TensorWithIntegers(ResolutionFiniteGroup(CyclicGroup(6),5));; gap> G3:=EilenbergMacLaneSimplicialGroup(CyclicGroup(9),2,5);; gap> C3:=ChainComplexOfSimplicialGroup(G3);; gap> G4:=EilenbergMacLaneSimplicialGroup(CyclicGroup(2),2,5);; gap> C4:=ChainComplexOfSimplicialGroup(G3);; gap> C5:=C4;; gap> D1:=CoreducedChainComplex(C1);; gap> D2:=CoreducedChainComplex(C2);; gap> D3:=CoreducedChainComplex(C3);; gap> D4:=CoreducedChainComplex(C4);; gap> D5:=D4;; gap> T:=TensorProductOfChainComplexes(D1,D2);; gap> T:=TensorProductOfChainComplexes(D3,T);; gap> T:=TensorProductOfChainComplexes(D4,T);; gap> T:=TensorProductOfChainComplexes(D5,T);; gap> Homology(T,4); [ 3, 3, 3, 3, 9, 9, 9, 9, 18, 18 ] 

