


Suppose that a group G acts on a contractible cellular space X by permuting cells. Suppose additionally that we have a method for constructing a free ZH^{e}resolution R^{e }of each cell stabilizer group H^{e }. Using a method explained in [G. Ellis, J. Harris & E. Sköldberg, "Polytopal resolutions for finite groups", J. Reine Angewandte Math.] we can combine the resolutions R^{e} with the cellular chain complex C_{*}(X) to form a free ZGresolution.  
For a number of arithmetic groups, such as G=SL_{3}(Z) and G=PSL_{4}(Z), the data for an appropriate exact Gequivariant chain complex C_{*}(X) has been computed by Mathieu Dutour and Alexander Rahm and stored as part of HAP. These chain complexes can be accessed by the following HAP commands.  
gap>
C:=ContractibleGcomplex("SL(3,Z)"); Nonfree resolution in characteristic 0 for <matrix group with 65 generators> . No contracting homotopy available. 

The
list of the available complexes can be found as follows. (It is
actually two lists, data for the first being due to Mathieu Dutour and
data for the second being due to Alexander Rahm.) 

gap>
C:=ContractibleGcomplex("help"); Gcomplexes are implemented for the following groups only: SL(2,Z) , SL(3,Z) , PGL(3,Z[i]) , PGL(3,Eisenstein_Integers) , PSL(4,Z) , PSL(4,Z)_b , PSL(4,Z)_c , PSL(4,Z)_d , Sp(4,Z) (where subscripts _b etc denote alternative complexes for a given group) and SL(2,Od) , d=2, 7, 11, 19, 43, 67, 163 where Od denotes the ring of integers of the number field Q(sqrt(d)). fail 

The
first 5 terms of a free ZGresolution for say G=SL_{3}(Z),
together with the 4th integral homology, can be contructed using the
following commands. (We remark that all degrees of the integral
homology of SL_{3}(Z)
were calculated in a classic paper by Christophe Soule
[The cohomology of SL_{3}(Z), Topology 17 (1978) 1–22]. 

gap>
C:=ContractibleGcomplex("SL(3,Z)");; gap> R:=FreeGResolution(C,5); Resolution of length 5 in characteristic 0 for <matrix group with 65 generators> . No contracting homotopy available. gap> Homology(TensorWithIntegers(R),4); [ 2 ] 

The
cohomology of an arbitrary finite index subgroups of G=SL_{3}(Z)
can
be
investigated by first converting the resolution for the matrix group G
into a resolution for an isomorphic finitely presented group. This
convertion can be done using the command
ResolutionToResolutionOfFpGroup. One can then use GAP's implementation
of the algorithm for enumerating subgroups up to a given index. 

ResolutionToResolutionOfFpGroup(R); gap> G:=R!.group; <fp group on the generators [ f1, f2, f3, f4 ]> gap>index:=15;; gap> L:=LowIndexSubgroupsFpGroup(G,index);; gap> Length(L); 8 gap> H:=L[8];; gap> Index(G,H); 8 gap> #So H is a subgroup of index 8 in G=SL(3,Z). A presentation for H can be found as follows. gap> RelatorsOfFpGroup(Image(IsomorphismFpGroup(H))); [ F1^3, F1*F2*F1*F2*F1*F2, F1*F2^2*F1^1*F2*F1*F2^2*F1^1*F2, F2^1*F1*F2^1*F1*F2^1*F1*F2^1*F1*F2^1*F1*F2^1*F1 ] 

A
resolution for H and its 4th integral homology can be found as follows. 

gap>
S:=ResolutionSubgroup(R,H); Resolution of length 5 in characteristic 0 for Group(<fp, no generators known>) . No contracting homotopy available. gap> S:=ResolutionSubgroup(R,H); Resolution of length 5 in characteristic 0 for Group(<fp, no generators known>) . No contracting homotopy available. gap> Homology(TensorWithIntegers(S),4); [ 2, 2 ] 

The
homology of a congruence subgroup H in SL(2,Z) can be computed as
follows. In the example the congruence subgroup H is the subgroup
H=Gamma_{0}(197) of integer matrices of the form [ [ p , q ] [ 197r , s ] ] with ps197rq = 1, and is constructed using the prototype "Congruence" package being developed by Ann Dooms, Eric Jespers, Alexander Konovalov and Helena Verrill. 

gap>
C:=ContractibleGcomplex("SL(2,Z)");; gap> R:=FreeGResolution(C,5);; gap> H:=CongruenceSubgroupGamma0(197);; gap> S:=ResolutionFiniteSubgroup(R,H);; gap> D:=TensorWithIntegers(S);; gap> Homology(D,4); [ 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 ] 

The
homology of SL(2,Z[1/p]) can be computed using the following resolution
(which is joint work with Bui Anh Tuan).
This
resolution can be used to recover, for any specific prime p, the
periodic cohomology of SL(2,Z[1/p]) determined by Alejandro Adem and
Nadim Naffah ["On the cohomology of SL_{2}(Z[1/p])",
arXiv:math9503230v1]. 

gap>
R:=ResolutionSL2Z(7,6); Resolution of length 6 in characteristic 0 for SL(2,Z[1/7]) . No contracting homotopy available. gap> Homology(TensorWithIntegers(R),5); [ 4, 12 ] 

In
order to compute a free resolution R for PSL(2,O2) we first construct
a contractible complex C with (nonfree) action of SL(2,O2). We then
factor out the action of the group D of order two generated by the
negative of the identity matrix to obtain a contractibe complex PC with
(nonfree) action of PSL(2,O2). We use PC to compute the resolution R.
The relevant commands follow. 

gap>
C:=ContractibleGcomplex("SL(2,O2)");; gap> D:=Group( Identity(C!.group) );; gap> PC:=QuotientOfContractibleGcomplex(C,D);; gap> R:=FreeGResolution(PC,21);; 

The
Poincare series for the mod 2 cohomology H^{*}(PSL(2,O2),Z_{2})
was
calculated by Ethan Berkove in ["The mod2 cohomology of the
Bianchi groups", Transactions American Math Soc, vol 355, number 10
(2000), 45854602]. The following commands recompute this using our
resolution for PSL(2,O2) . (Strictly speaking, the commands compute a rational function p(x) whose expansion has coefficient of x^{n} guaranteed to be equal to the dimension of H^{n}(PSL(2,O2),Z_{2}) for at least all n<21.) 

gap>
K:=TensorWithIntegersModP(R,2);; gap> L:=List([0..20],n>Homology(K,n));; gap> p:=PoincareSeries(L,20); (x_1^6+x_1^5x_1^4+x_1^2+x_1+1)/(x_1^4x_1^3x_1+1) 

