Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 Bib Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

10 Congruence Subgroups, Cuspidal Cohomology and Hecke Operators
 10.1 Eichler-Shimura isomorphism
 10.2 Generators for \(SL_2(\mathbb Z)\) and the cubic tree
 10.3 One-dimensional fundamental domains and generators for congruence subgroups
 10.4 Cohomology of congruence subgroups
 10.5 Cuspidal cohomology
 10.6 Hecke operators
 10.7 Reconstructing modular forms from cohomology computations
 10.8 The Picard group
 10.9 Bianchi groups
 10.10 Some other infinite matrix groups
 10.11 Ideals and finite quotient groups
 10.12 Congruence subgroups for ideals
 10.13 First homology

10 Congruence Subgroups, Cuspidal Cohomology and Hecke Operators

In this chapter we explain how HAP can be used to make computions about modular forms associated to congruence subgroups \(\Gamma\) of \(SL_2(\mathbb Z)\). Also, in Subsection 10.8 onwards, we demonstrate cohomology computations for the Picard group \(SL_2(\mathbb Z[i])\), some Bianchi groups \(PSL_2({\cal O}_{-d}) \) where \({\cal O}_{d}\) is the ring of integers of \(\mathbb Q(\sqrt{-d})\) for square free positive integer \(d\), and some other groups of the form \(SL_m({\cal O})\), \(GL_m({\cal O})\), \(PSL_m({\cal O})\), \(PGL_m({\cal O})\), for \(m=2,3,4\) and certain \({\cal O}=\mathbb Z, {\cal O}_{-d}\).

10.1 Eichler-Shimura isomorphism

We begin by recalling the Eichler-Shimura isomorphism [Eic57][Shi59]

\[ S_k(\Gamma) \oplus \overline{S_k(\Gamma)} \oplus E_k(\Gamma) \cong_{\sf Hecke} H^1(\Gamma,P_{\mathbb C}(k-2))\]

which relates the cohomology of groups to the theory of modular forms associated to a finite index subgroup \(\Gamma\) of \(SL_2(\mathbb Z)\). In subsequent sections we explain how to compute with the right-hand side of the isomorphism. But first, for completeness, let us define the terms on the left-hand side.

Let \(N\) be a positive integer. A subgroup \(\Gamma\) of \(SL_2(\mathbb Z)\) is said to be a congruence subgroup of level \(N \) if it contains the kernel of the canonical homomorphism \(\pi_N\colon SL_2(\mathbb Z) \rightarrow SL_2(\mathbb Z/N\mathbb Z)\). So any congruence subgroup is of finite index in \(SL_2(\mathbb Z)\), but the converse is not true.

One congruence subgroup of particular interest is the group \(\Gamma_1(N)=\ker(\pi_N)\), known as the principal congruence subgroup of level \(N\). Another congruence subgroup of particular interest is the group \(\Gamma_0(N)\) of those matrices that project to upper triangular matrices in \(SL_2(\mathbb Z/N\mathbb Z)\).

A modular form of weight \(k\) for a congruence subgroup \(\Gamma\) is a complex valued function on the upper-half plane, \(f\colon {\frak{h}}=\{z\in \mathbb C : Re(z)>0\} \rightarrow \mathbb C\), satisfying:

The collection of all weight \(k\) modular forms for \(\Gamma\) form a vector space \(M_k(\Gamma)\) over \(\mathbb C\).

A modular form \(f\) is said to be a cusp form if \(f(\infty)=0\). The collection of all weight \(k\) cusp forms for \(\Gamma\) form a vector subspace \(S_k(\Gamma)\). There is a decomposition

\[M_k(\Gamma) \cong S_k(\Gamma) \oplus E_k(\Gamma)\]

involving a summand \(E_k(\Gamma)\) known as the Eisenstein space. See [Ste07] for further introductory details on modular forms.

The Eichler-Shimura isomorphism is more than an isomorphism of vector spaces. It is an isomorphism of Hecke modules: both sides admit notions of Hecke operators, and the isomorphism preserves these operators. The bar on the left-hand side of the isomorphism denotes complex conjugation, or anti-holomorphic forms. See [Wie78] for a full account of the isomorphism.

On the right-hand side of the isomorphism, the \(\mathbb Z\Gamma\)-module \(P_{\mathbb C}(k-2)\subset \mathbb C[x,y]\) denotes the space of homogeneous degree \(k-2\) polynomials with action of \(\Gamma\) given by

\[\left(\begin{array}{ll}a&b\\ c &d \end{array}\right)\cdot p(x,y) = p(dx-by,-cx+ay)\ .\]

In particular \(P_{\mathbb C}(0)=\mathbb C\) is the trivial module. Below we shall compute with the integral analogue \(P_{\mathbb Z}(k-2) \subset \mathbb Z[x,y]\).

In the following sections we explain how to use the right-hand side of the Eichler-Shimura isomorphism to compute eigenvalues of the Hecke operators restricted to the subspace \(S_k(\Gamma)\) of cusp forms.

10.2 Generators for \(SL_2(\mathbb Z)\) and the cubic tree

The matrices \(S=\left(\begin{array}{rr}0&-1\\ 1 &0 \end{array}\right)\) and \(T=\left(\begin{array}{rr}1&1\\ 0 &1 \end{array}\right)\) generate \(SL_2(\mathbb Z)\) and it is not difficult to devise an algorithm for expressing an arbitrary integer matrix \(A\) of determinant \(1\) as a word in \(S\), \(T\) and their inverses. The following illustrates such an algorithm.

gap> A:=[[4,9],[7,16]];;
gap> word:=AsWordInSL2Z(A);
[ [ [ 1, 0 ], [ 0, 1 ] ], [ [ 0, 1 ], [ -1, 0 ] ], [ [ 1, -1 ], [ 0, 1 ] ], 
  [ [ 0, 1 ], [ -1, 0 ] ], [ [ 1, 1 ], [ 0, 1 ] ], [ [ 0, 1 ], [ -1, 0 ] ], 
  [ [ 1, -1 ], [ 0, 1 ] ], [ [ 1, -1 ], [ 0, 1 ] ], [ [ 1, -1 ], [ 0, 1 ] ], 
  [ [ 0, 1 ], [ -1, 0 ] ], [ [ 1, 1 ], [ 0, 1 ] ], [ [ 1, 1 ], [ 0, 1 ] ] ]
gap> Product(word);
[ [ 4, 9 ], [ 7, 16 ] ]

It is convenient to introduce the matrix \(U=ST = \left(\begin{array}{rr}0&-1\\ 1 &1 \end{array}\right)\). The matrices \(S\) and \(U\) also generate \(SL_2(\mathbb Z)\). In fact we have a free presentation \(SL_2(\mathbb Z)= \langle S,T\, |\, S^4=U^6=1 \rangle \).

The cubic tree \(\cal T\) is a tree (i.e. a \(1\)-dimensional contractible regular CW-complex) with countably infinitely many edges in which each vertex has degree \(3\). We can realize the cubic tree \(\cal T\) by taking the left cosets of \({\cal U}=\langle U\rangle\) in \(SL_2(\mathbb Z)\) as vertices, and joining cosets \(x\,{\cal U} \) and \(y\,{\cal U}\) by an edge if, and only if, \(x^{-1}y \in {\cal U}\, S\,{\cal U}\). Thus the vertex \(\cal U \) is joined to \(S\,{\cal U} \), \(US\,{\cal U}\) and \(U^2S\,{\cal U}\). The vertices of this tree are in one-to-one correspondence with all reduced words in \(S\), \(U\) and \(U^2\) that, apart from the identity, end in \(S\).

From our realization of the cubic tree \(\cal T\) we see that \(SL_2(\mathbb Z)\) acts on \(\cal T\) in such a way that each vertex is stabilized by a cyclic subgroup conjugate to \({\cal U}=\langle U\rangle\) and each edge is stabilized by a cyclic subgroup conjugate to \({\cal S} =\langle S \rangle\).

In order to store this action of \(SL_2(\mathbb Z)\) on the cubic tree \(\cal T\) we just need to record the following finite amount of information.

Information for the cubic tree

10.3 One-dimensional fundamental domains and generators for congruence subgroups

Recall that a cell structure on a space \(X\) is a partition of \(X\) into subsets \(e_i\) such that each \(e_i\) is homeomorphic to an open Euclidean ball of some dimension. We say that \(e_i\) is an \(n\)-cell if it is homeomorphic to the open \(n\)-dimensional ball. We say that the cell structure is reduced if it has precisely one \(0\)-cell. A CW-complex is a cell complex satisfying extra conditions.

Suppose that we wish to compute a set of generators for a congruence subgroup \(\Gamma\). The required generators correspond to the \(1\)-cells of a reduced classifying CW-complex (or free resolution) \(B(\Gamma)\). Such a classifying complex can be constructed, using perturbation techniques, from \( \cal T\) and reduced classifying CW-complexes \(B(stab(e^0))\), \(B(Stab(e^1))\) for the stabilizer groups of a vertex and edge of \(\cal T\). In this construction, the \(1\)-cells of \(B(\Gamma)\) are in one-one correspondence with generators for the first homology of the quotient graph \( \Gamma \setminus \cal T\) together with the \(1\)-cells of \(B(stab(e^0))\). If \(\Gamma\) acts freely on the vertices of \( \cal T\) then the \(1\)-cells of \(B(\Gamma)\) are in one-one correspondence with just the generators for the first homology of \( \Gamma \setminus \cal T\). To determine the quotient \( \Gamma \setminus \cal T\) we need to determine a cellular subspace \(D_\Gamma \subset \cal T\) whose images under the action of \(\Gamma\) cover \(\cal T\) and are pairwise either disjoint or identical. The subspace \(D_\Gamma\) will not be a CW-complex as it won't be closed, but it can be chosen to be connected, and hence contractible. We call \(D_\Gamma\) a fundamental region for \(\Gamma\). We denote by \(\mathring D_\Gamma\) the largest CW-subcomplex of \(D_\Gamma\). The vertices of \(\mathring D_\Gamma\) are the same as the vertices of \(D_\Gamma\). Thus \(\mathring D_\Gamma\) is a subtree of the cubic tree whose vertices correspond to coset representatives of \(\Gamma\) in \(SL_2(\mathbb Z)\). For each vertex \(v\) in the tree \(\mathring D_\Gamma\) define \(\eta(v)=3 -{\rm degree}(v)\). Then the number of homology generators for \( \Gamma \setminus \cal T\) will be \((1/2)\sum_{v\in \mathring D_\Gamma} \eta(v)\). The role of tree diagrams in the study of congruence subgroups of \(SL_2(\mathbb Z)\) is explained in detail in [Kul91].

Suppose that we wish to calculate a set of generators for the principal congruence subgroup \(\Gamma_1(N)\) of level \(N\). Note that \(\Gamma_1(N)\) intersects trivially with \(\cal U\), and hence \(\Gamma_1(N)\) acts freely on the vertices of the cubical tree \(\cal T\). The following commands determine generators for \(\Gamma_1(6)\) and display \(\mathring D_{\Gamma_1(6)}\).

gap> G:=HAP_PrincipalCongruenceSubgroup(6);;
gap> gens:=GeneratorsOfGroup(G);
[ [ [ -65, 18 ], [ 18, -5 ] ], [ [ -41, 18 ], [ 66, -29 ] ], 
  [ [ -29, 12 ], [ 12, -5 ] ], [ [ -17, -12 ], [ -24, -17 ] ], 
  [ [ -17, -6 ], [ -48, -17 ] ], [ [ -5, 6 ], [ -6, 7 ] ], 
  [ [ -5, 18 ], [ -12, 43 ] ], [ [ 1, -6 ], [ 0, 1 ] ], 
  [ [ 1, 0 ], [ -6, 1 ] ], [ [ 7, -18 ], [ -12, 31 ] ], 
  [ [ 7, 12 ], [ 18, 31 ] ], [ [ 7, 18 ], [ 12, 31 ] ], 
  [ [ 13, -18 ], [ -18, 25 ] ], [ [ 19, -30 ], [ -12, 19 ] ] ]
gap> HAP_SL2TreeDisplay(G);


Fundamental region in the cubic tree

The congruence subgroup \(\Gamma_0(N)\) does not act freely on the vertices of \(\cal T\). However, we can replace \(\cal T\) by a double cover \({\cal T}'\) which admits a free action of \(\Gamma_0(N)\) on its vertices. The following commands display \(\mathring D_{\Gamma_1(39)}\) for a fundamental region in \({\cal T}'\).

gap> G:=HAP_CongruenceSubgroupGamma0(39);;
gap> HAP_SL2TreeDisplay(G);

Fundamental region in the cubic tree

To compute \(D_\Gamma\) one only needs to be able to test whether a given matrix lies in \(\Gamma\) or not. However, for speed, the above calculations of \(D_\Gamma\) take advantage in GAP's facility for iterating over elements of \(SL_2(\mathbb Z/N \mathbb Z)\). An algorithm that does not use this facility is also implemented but seems to be a bit slower in general.

Given an inclusion \(\Gamma'\subset \Gamma\) of congruence subgroups, it is straightforward to use the trees \(\mathring D_{\Gamma'}\) and \(\mathring D_{\Gamma}\) to compute a system of coset representative for \(\Gamma'\setminus \Gamma\).

10.4 Cohomology of congruence subgroups

To compute the cohomology \(H^n(\Gamma,A)\) of a congruence subgroup \(\Gamma\) with coefficients in a \(\mathbb Z\Gamma\)-module \(A\) we need to construct \(n+1\) terms of a free \(\mathbb ZG\)-resolution of \(\mathbb Z\). We can do this by first using perturbation techniques (as described in [BE14]) to combine the cubic tree with resolutions for the cyclic groups of order \(4\) and \(6\) in order to produce a free \(\mathbb ZG\)-resolution \(R_\ast\) for \(G=SL_2(\mathbb Z)\). This resolution is also a free \(\mathbb Z\Gamma\)-resolution with each term of rank

\[{\rm rank}_{\mathbb Z\Gamma} R_k = |G:\Gamma|\times {\rm rank}_{\mathbb ZG} R_k\ .\]

For congruence subgroups of lowish index in \(G\) this resolution suffices to make computations.

The following commands compute

\[H^1(\Gamma_0(39),\mathbb Z) = \mathbb Z^9\ .\]

gap> R:=ResolutionSL2Z_alt(2);
Resolution of length 2 in characteristic 0 for SL(2,Integers) .

gap> gamma:=HAP_CongruenceSubgroupGamma0(39);;
gap> S:=ResolutionFiniteSubgroup(R,gamma);
Resolution of length 2 in characteristic 0 for 
CongruenceSubgroupGamma0( 39)  .

gap> Cohomology(HomToIntegers(S),1);
[ 0, 0, 0, 0, 0, 0, 0, 0, 0 ]

This computation establishes that the space \(M_2(\Gamma_0(39))\) of weight \(2\) modular forms is of dimension \(9\).

The following commands show that \({\rm rank}_{\mathbb Z\Gamma_0(39)} R_1 = 112\) but that it is possible to apply `Tietze like' simplifications to \(R_\ast\) to obtain a free \(\mathbb Z\Gamma_0(39)\)-resolution \(T_\ast\) with \({\rm rank}_{\mathbb Z\Gamma_0(39)} T_1 = 11\). It is more efficient to work with \(T_\ast\) when making cohomology computations with coefficients in a module \(A\) of large rank.

gap> S!.dimension(1);
112
gap> T:=TietzeReducedResolution(S);
Resolution of length 2 in characteristic 0 for CongruenceSubgroupGamma0(
39)  . 

gap> T!.dimension(1);
11

The following commands compute

\[H^1(\Gamma_0(39),P_{\mathbb Z}(8)) = \mathbb Z_3 \oplus \mathbb Z_6 \oplus \mathbb Z_{168} \oplus \mathbb Z^{84}\ ,\]

\[H^1(\Gamma_0(39),P_{\mathbb Z}(9)) = \mathbb Z_2 \oplus \mathbb Z_2 .\]

gap> P:=HomogeneousPolynomials(gamma,8);;
gap> c:=Cohomology(HomToIntegralModule(T,P),1);
[ 3, 6, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
gap> Length(c);
87

gap> P:=HomogeneousPolynomials(gamma,9);;
gap> c:=Cohomology(HomToIntegralModule(T,P),1);
[ 2, 2 ]

This computation establishes that the space \(M_{10}(\Gamma_0(39))\) of weight \(10\) modular forms is of dimension \(84\), and \(M_{11}(\Gamma_0(39))\) is of dimension \(0\). (There are never any modular forms of odd weight, and so \(M_k(\Gamma)=0\) for all odd \(k\) and any congruence subgroup \(\Gamma\).)

10.5 Cuspidal cohomology

To define and compute cuspidal cohomology we consider the action of \(SL_2(\mathbb Z)\) on the upper-half plane \({\frak h}\) given by

\[\left(\begin{array}{ll}a&b\\ c &d \end{array}\right) z = \frac{az +b}{cz+d}\ .\]

A standard 'fundamental domain' for this action is the region

\[\begin{array}{ll} D=&\{z\in {\frak h}\ :\ |z| > 1, |{\rm Re}(z)| < \frac{1}{2}\} \\ & \cup\ \{z\in {\frak h} \ :\ |z| \ge 1, {\rm Re}(z)=-\frac{1}{2}\}\\ & \cup\ \{z \in {\frak h}\ :\ |z|=1, -\frac{1}{2} \le {\rm Re}(z) \le 0\} \end{array} \]

illustrated below.

Fundamental domain in the upper-half plane

The action factors through an action of \(PSL_2(\mathbb Z) =SL_2(\mathbb Z)/\langle \left(\begin{array}{rr}-1&0\\ 0 &-1 \end{array}\right)\rangle\). The images of \(D\) under the action of \(PSL_2(\mathbb Z)\) cover the upper-half plane, and any two images have at most a single point in common. The possible common points are the bottom left-hand corner point which is stabilized by \(\langle U\rangle\), and the bottom middle point which is stabilized by \(\langle S\rangle\).

A congruence subgroup \(\Gamma\) has a `fundamental domain' \(D_\Gamma\) equal to a union of finitely many copies of \(D\), one copy for each coset in \(\Gamma\setminus SL_2(\mathbb Z)\). The quotient space \(X=\Gamma\setminus {\frak h}\) is not compact, and can be compactified in several ways. We are interested in the Borel-Serre compactification. This is a space \(X^{BS}\) for which there is an inclusion \(X\hookrightarrow X^{BS}\) and this inclusion is a homotopy equivalence. One defines the boundary \(\partial X^{BS} = X^{BS} - X\) and uses the inclusion \(\partial X^{BS} \hookrightarrow X^{BS} \simeq X\) to define the cuspidal cohomology group, over the ground ring \(\mathbb C\), as

\[ H_{cusp}^n(\Gamma,P_{\mathbb C}(k-2)) = \ker (\ H^n(X,P_{\mathbb C}(k-2)) \rightarrow H^n(\partial X^{BS},P_{\mathbb C}(k-2)) \ ).\]

Strictly speaking, this is the definition of interior cohomology \(H_!^n(\Gamma,P_{\mathbb C}(k-2))\) which in general contains the cuspidal cohomology as a subgroup. However, for congruence subgroups of \(SL_2(\mathbb Z)\) there is equality \(H_!^n(\Gamma,P_{\mathbb C}(k-2)) = H_{cusp}^n(\Gamma,P_{\mathbb C}(k-2))\).

Working over \(\mathbb C\) has the advantage of avoiding the technical issue that \(\Gamma \) does not necessarily act freely on \({\frak h}\) since there are points with finite cyclic stabilizer groups in \(SL_2(\mathbb Z)\). But it has the disadvantage of losing information about torsion in cohomology. So HAP confronts the issue by working with a contractible CW-complex \(\tilde X^{BS}\) on which \(\Gamma\) acts freely, and \(\Gamma\)-equivariant inclusion \(\partial \tilde X^{BS} \hookrightarrow \tilde X^{BS}\). The definition of cuspidal cohomology that we use, which coincides with the above definition when working over \(\mathbb C\), is

\[ H_{cusp}^n(\Gamma,A) = \ker (\ H^n({\rm Hom}_{\, \mathbb Z\Gamma}(C_\ast(\tilde X^{BS}), A)\, ) \rightarrow H^n(\ {\rm Hom}_{\, \mathbb Z\Gamma}(C_\ast(\tilde \partial X^{BS}), A)\, \ ).\]

The following data is recorded and, using perturbation theory, is combined with free resolutions for \(C_4\) and \(C_6\) to constuct \(\tilde X^{BS}\).

Borel-Serre compactified fundamental domain in the upper-half plane

The following commands calculate

\[H^1_{cusp}(\Gamma_0(39),\mathbb Z) = \mathbb Z^6\ .\]

gap> gamma:=HAP_CongruenceSubgroupGamma0(39);;
gap> k:=2;; deg:=1;; c:=CuspidalCohomologyHomomorphism(gamma,deg,k);
[ g1, g2, g3, g4, g5, g6, g7, g8, g9 ] -> [ g1^-1*g3, g1^-1*g3, g1^-1*g3, 
  g1^-1*g3, g1^-1*g2, g1^-1*g3, g1^-1*g4, g1^-1*g4, g1^-1*g4 ]
gap> AbelianInvariants(Kernel(c));
[ 0, 0, 0, 0, 0, 0 ]

From the Eichler-Shimura isomorphism and the already calculated dimension of \(M_2(\Gamma_0(39))\cong \mathbb C^9\), we deduce from this cuspidal cohomology that the space \(S_2(\Gamma_0(39))\) of cuspidal weight \(2\) forms is of dimension \(3\), and the Eisenstein space \(E_2(\Gamma_0(39))\cong \mathbb C^3\) is of dimension \(3\).

The following commands show that the space \(S_4(\Gamma_0(39))\) of cuspidal weight \(4\) forms is of dimension \(12\).

gap> gamma:=HAP_CongruenceSubgroupGamma0(39);;
gap> k:=4;; deg:=1;; c:=CuspidalCohomologyHomomorphism(gamma,deg,k);;
gap> AbelianInvariants(Kernel(c));
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]

10.6 Hecke operators

A congruence subgroup \(\Gamma \le SL_m(\mathbb Z)\) and element \(g\in SL_m(\mathbb Q)\) determine the subgroup \(\Gamma' = \Gamma \cap g\Gamma g^{-1} \) and homomorphisms

\[ \Gamma\ \hookleftarrow\ \Gamma'\ \ \stackrel{\gamma \mapsto g^{-1}\gamma g}{\longrightarrow}\ \ g^{-1}\Gamma' g\ \hookrightarrow \Gamma\ . \]

These homomorphisms give rise to homomorphisms of cohomology groups

\[H^n(\Gamma,\mathbb Z)\ \ \stackrel{tr}{\leftarrow} \ \ H^n(\Gamma',\mathbb Z) \ \ \stackrel{\alpha}{\leftarrow} \ \ H^n(g^{-1}\Gamma' g,\mathbb Z) \ \ \stackrel{\beta}{\leftarrow} H^n(\Gamma, \mathbb Z) \]

with \(\alpha\), \(\beta\) functorial maps, and \(tr\) the transfer map. We define the composite \(T_g=tr \circ \alpha \circ \beta\colon H^n(\Gamma, \mathbb Z) \rightarrow H^n(\Gamma, \mathbb Z)\) to be the Hecke operator determined by \(g\). Further details on this description of Hecke operators can be found in [Ste07, Appendix by P. Gunnells].

For each integer \(s\ge 1\) we set \(T_s =T_s\) with for \(g=\left(\begin{array}{cc}1&0\\0&\frac{1}{s}\end{array}\right)\).

The following commands compute \(T_2\) and \(T_5\) for \(n=1\) and \(\Gamma=\Gamma_0(39)\). The commands also compute the eigenvalues of these two Hecke operators. The final command confirms that \(T_2\) and \(T_5\) commute. (It is a fact that \(T_pT_q=T_qT_p\) for all integers \(p,q\).)

gap> gamma:=HAP_CongruenceSubgroupGamma0(39);;
gap> p:=2;;N:=1;;h:=HeckeOperator(gamma,p,N);;
gap> AbelianInvariants(Source(h));
[ 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
gap> T2:=HomomorphismAsMatrix(h);;
gap> Display(T2);
[ [  -2,  -2,   2,   2,   1,   2,   0,   0,   0 ],
  [  -2,   0,   1,   2,  -2,   2,   2,   2,  -2 ],
  [  -2,  -1,   2,   2,  -1,   2,   1,   1,  -1 ],
  [  -2,  -1,   2,   2,   1,   1,   0,   0,   0 ],
  [  -1,   0,   0,   2,  -3,   2,   3,   3,  -3 ],
  [   0,   1,   1,   1,  -1,   0,   1,   1,  -1 ],
  [  -1,   1,   1,  -1,   0,   1,   2,  -1,   1 ],
  [  -1,  -1,   0,   2,  -3,   2,   1,   4,  -1 ],
  [   0,   1,   0,  -1,  -2,   1,   1,   1,   2 ] ]
gap> Eigenvalues(Rationals,T2);
[ 3, 1 ]

gap> p:=5;;N:=1;;h:=HeckeOperator(gamma,p,N);;
gap> T5:=HomomorphismAsMatrix(h);;
gap> Display(T5);
[ [  -1,  -1,   3,   4,   0,   0,   1,   1,  -1 ],
  [  -5,  -1,   5,   4,   0,   0,   3,   3,  -3 ],
  [  -2,   0,   4,   4,   1,   0,  -1,  -1,   1 ],
  [  -2,   0,   3,   2,  -3,   2,   4,   4,  -4 ],
  [  -4,  -2,   4,   4,   3,   0,   1,   1,  -1 ],
  [  -6,  -4,   5,   6,   1,   2,   2,   2,  -2 ],
  [   1,   5,   0,  -4,  -3,   2,   5,  -1,   1 ],
  [  -2,  -2,   2,   4,   0,   0,  -2,   4,   2 ],
  [   1,   3,   0,  -4,  -4,   2,   2,   2,   4 ] ]
gap> Eigenvalues(Rationals,T5);
[ 6, 2 ]

gap>T2*T5=T5*T2;
true

10.7 Reconstructing modular forms from cohomology computations

Given a modular form \(f\colon {\frak h} \rightarrow \mathbb C\) associated to a congruence subgroup \(\Gamma\), and given a compact edge \(e\) in the tessellation of \({\frak h}\) (i.e. an edge in the cubic tree \(\cal T\)) arising from the above fundamental domain for \(SL_2(\mathbb Z)\), we can evaluate

\[\int_e f(z)\,dz \ .\]

In this way we obtain a cochain \(f_1\colon C_1({\cal T}) \rightarrow \mathbb C\) in \(Hom_{\mathbb Z\Gamma}(C_1({\cal T}), \mathbb C)\) representing a cohomology class \(c(f) \in H^1(\, Hom_{\mathbb Z\Gamma}(C_\ast({\cal T}), \mathbb C) \,) = H^1(\Gamma,\mathbb C)\). The correspondence \(f\mapsto c(f)\) underlies the Eichler-Shimura isomorphism. Hecke operators can be used to recover modular forms from cohomology classes.

Hecke operators restrict to operators on cuspidal cohomology. On the left-hand side of the Eichler-Shimura isomorphism Hecke operators restrict to operators \(T_s\colon S_2(\Gamma) \rightarrow S_2(\Gamma)\) for \(s\ge 1\).

Let us now introduce the function \(q=q(z)=e^{2\pi i z}\) which is holomorphic on \(\mathbb C\). For any modular form \(f(z)\) there are numbers \(a_n\) such that

\[f(z) = \sum_{s=0}^\infty a_sq^s \]

for all \(z\in {\frak h}\). The form \(f\) is a cusp form if \(a_0=0\).

A non-zero cusp form \(f\in S_2(\Gamma)\) is an eigenform if it is simultaneously an eigenvector for the Hecke operators \(T_s\) for all \(s =1,2,3,\cdots\). An eigenform is said to be normalized if its coefficient \(a_1=1\). It turns out that if \(f\) is a normalized eigenform then the coefficient \(a_s\) is an eigenvalue for \(T_s\) (see for instance [Ste07] for details). It can be shown [AL70] that \(f\in S_2(\Gamma_0(N))\) admits a basis of eigenforms.

This all implies that, in principle, we can construct an approximation to an explicit basis for the space \(S_2(\Gamma)\) of cusp forms by computing eigenvalues for Hecke operators.

Suppose that we would like a basis for \(S_2(\Gamma_0(11))\). The following commands first show that \(H^1_{cusp}(\Gamma_0(11),\mathbb Z)=\mathbb Z\oplus \mathbb Z\) from which we deduce that \(S_2(\Gamma_0(11)) =\mathbb C\) is \(1\)-dimensional. Then eigenvalues of Hecke operators are calculated to establish that the modular form

\[f = q -2q^2 -q^3 +q^4 +q^5 +2q^6 -2q^7 +2q^8 -3q^9 -2q^{10} + \cdots \]

constitutes a basis for \(S_2(\Gamma_0(11))\).

gap> gamma:=HAP_CongruenceSubgroupGamma0(11);;
gap> AbelianInvariants(Kernel(CuspidalCohomologyHomomorphism(gamma,1,2)));
[ 0, 0 ]

gap> T1:=HomomorphismAsMatrix(HeckeOperator(gamma,1,1));; Display(T1);
[ [  1,  0,  0 ],
  [  0,  1,  0 ],
  [  0,  0,  1 ] ]
gap> T2:=HomomorphismAsMatrix(HeckeOperator(gamma,2,1));; Display(T2);
[ [   3,  -4,   4 ],
  [   0,  -2,   0 ],
  [   0,   0,  -2 ] ]
gap> T3:=HomomorphismAsMatrix(HeckeOperator(gamma,3,1));; Display(T3);
[ [   4,  -4,   4 ],
  [   0,  -1,   0 ],
  [   0,   0,  -1 ] ]
gap> T4:=HomomorphismAsMatrix(HeckeOperator(gamma,4,1));; Display(T4);
[ [   6,  -4,   4 ],
  [   0,   1,   0 ],
  [   0,   0,   1 ] ]
gap> T5:=HomomorphismAsMatrix(HeckeOperator(gamma,5,1));; Display(T5);
[ [   6,  -4,   4 ],
  [   0,   1,   0 ],
  [   0,   0,   1 ] ]
gap> T6:=HomomorphismAsMatrix(HeckeOperator(gamma,6,1));; Display(T6);
[ [  12,  -8,   8 ],
  [   0,   2,   0 ],
  [   0,   0,   2 ] ]
gap> T7:=HomomorphismAsMatrix(HeckeOperator(gamma,7,1));; Display(T7);
[ [   8,  -8,   8 ],
  [   0,  -2,   0 ],
  [   0,   0,  -2 ] ]
gap> T8:=HomomorphismAsMatrix(HeckeOperator(gamma,8,1));; Display(T8);
[ [  12,  -8,   8 ],
  [   0,   2,   0 ],
  [   0,   0,   2 ] ]
gap> T9:=HomomorphismAsMatrix(HeckeOperator(gamma,9,1));; Display(T9);
[ [   12,  -12,   12 ],
  [    0,   -3,    0 ],
  [    0,    0,   -3 ] ]
gap> T10:=HomomorphismAsMatrix(HeckeOperator(gamma,10,1));; Display(T10);
[ [   18,  -16,   16 ],
  [    0,   -2,    0 ],
  [    0,    0,   -2 ] ]

For a normalized eigenform \(f=1 + \sum_{s=2}^\infty a_sq^s\) the coefficients \(a_s\) with \(s\) a composite integer can be expressed in terms of the coefficients \(a_p\) for prime \(p\). If \(r,s\) are coprime then \(T_{rs} =T_rT_s\). If \(p\) is a prime that is not a divisor of the level \(N\) of \(\Gamma\) then \(a_{p^m} =a_{p^{m-1}}a_p - p a_{p^{m-2}}.\) If the prime \( p\) divides \(N\) then \(a_{p^m} = (a_p)^m\). It thus suffices to compute the coefficients \(a_p\) for prime integers \(p\) only.

10.8 The Picard group

Let us now consider the Picard group \(G=SL_2(\mathbb Z[ i])\) and its action on upper-half space

\[{\frak h}^3 =\{(z,t) \in \mathbb C\times \mathbb R\ |\ t > 0\} \ . \]

To describe the action we introduce the symbol \(j\) satisfying \(j^2=-1\), \(ij=-ji\) and write \(z+tj\) instead of \((z,t)\). The action is given by

\[\left(\begin{array}{ll}a&b\\ c &d \end{array}\right)\cdot (z+tj) \ = \ \left(a(z+tj)+b\right)\left(c(z+tj)+d\right)^{-1}\ .\]

Alternatively, and more explicitly, the action is given by

\[\left(\begin{array}{ll}a&b\\ c &d \end{array}\right)\cdot (z+tj) \ = \ \frac{(az+b)\overline{(cz+d) } + a\overline c y^2}{|cz +d|^2 + |c|^2y^2} \ +\ \frac{y}{|cz+d|^2+|c|^2y^2}\, j \ .\]

A standard 'fundamental domain' \(D\) for this action is the following region (with some of the boundary points removed).

\[ \{z+tj\in {\frak h}^3\ |\ 0 \le |{\rm Re}(z)| \le \frac{1}{2}, 0\le {\rm Im}(z) \le \frac{1}{2}, z\overline z +t^2 \ge 1\} \]

Fundamental domain for the Picard group

The four bottom vertices of \(D\) are \(a = -\frac{1}{2} +\frac{1}{2}i +\frac{\sqrt{2}}{2}j\), \(b = -\frac{1}{2} +\frac{\sqrt{3}}{2}j\), \(c = \frac{1}{2} +\frac{\sqrt{3}}{2}j\), \(d = \frac{1}{2} +\frac{1}{2}i +\frac{\sqrt{2}}{2}j\).

The upper-half space \({\frak h}^3\) can be retracted onto a \(2\)-dimensional subspace \({\cal T} \subset {\frak h}^3\). The space \({\cal T}\) is a contractible \(2\)-dimensional regular CW-complex, and the action of the Picard group \(G\) restricts to a cellular action of \(G\) on \({\cal T}\). Under this action there is one orbit of \(2\)-cells, represented by the curvilinear square with vertices \(a\), \(b\), \(c\) and \(d\) in the picture. This \(2\)-cell has stabilizer group isomorphic to the quaternion group \(Q_4\) of order \(8\). There are two orbits of \(1\)-cells, both with stabilizer group isomorphic to a semi-direct product \(C_3:C_4\). There is one orbit of \(0\)-cells, with stabilizer group isomorphic to \(SL(2,3)\).

Using perturbation techniques, the \(2\)-complex \({\cal T}\) can be combined with free resolutions for the cell stabilizer groups to contruct a regular CW-complex \(X\) on which the Picard group \(G\) acts freely. The following commands compute the first few terms of the free \(\mathbb ZG\)-resolution \(R_\ast =C_\ast X\). Then \(R_\ast\) is used to compute

\[H^1(G,\mathbb Z) =0\ ,\]

\[H^2(G,\mathbb Z) =\mathbb Z_2\oplus \mathbb Z_2\ ,\]

\[H^3(G,\mathbb Z) =\mathbb Z_6\ ,\]

\[H^4(G,\mathbb Z) =\mathbb Z_4\oplus \mathbb Z_{24}\ ,\]

and compute a free presentation for \(G\) involving four generators and seven relators.

gap> K:=ContractibleGcomplex("SL(2,O-1)");;
gap> R:=FreeGResolution(K,5);;
gap> Cohomology(HomToIntegers(R),1);
[  ]
gap> Cohomology(HomToIntegers(R),2);
[ 2, 2 ]
gap> Cohomology(HomToIntegers(R),3);
[ 6 ]
gap> Cohomology(HomToIntegers(R),4);
[ 4, 24 ]
gap> P:=PresentationOfResolution(R);
rec( freeGroup := <free group on the generators [ f1, f2, f3, f4 ]>, 
  gens := [ 184, 185, 186, 187 ], 
  relators := [ f1^2*f2^-1*f1^-1*f2^-1, f1*f2*f1*f2^-2, 
      f3*f2^2*f1*(f2*f1^-1)^2*f3^-1*f1^2*f2^-2, 
      f1*(f2*f1^-1)^2*f3^-1*f1^2*f2^-1*f3^-1, 
      f4*f2*f1*(f2*f1^-1)^2*f4^-1*f1*f2^-1, f1*f4^-1*f1^-2*f4^-1, 
      f3*f2*f1*(f2*f1^-1)^2*f4^-1*f1*f2^-1*f3^-1*f4*f2 ] )

We can also compute the cohomology of \(G=SL_2(\mathbb Z[i])\) with coefficients in a module such as the module \(P_{\mathbb Z[i]}(k)\) of degree \(k\) homogeneous polynomials with coefficients in \(\mathbb Z[i]\) and with the action described above. For instance, the following commands compute

\[H^1(G,P_{\mathbb Z[i]}(24)) = (\mathbb Z_2)^4 \oplus \mathbb Z_4 \oplus \mathbb Z_8 \oplus \mathbb Z_{40} \oplus \mathbb Z_{80}\, ,\]

\[H^2(G,P_{\mathbb Z[i]}(24)) = (\mathbb Z_2)^{24} \oplus \mathbb Z_{520030}\oplus \mathbb Z_{1040060} \oplus \mathbb Z^2\, ,\]

\[H^3(G,P_{\mathbb Z[i]}(24)) = (\mathbb Z_2)^{22} \oplus \mathbb Z_{4}\oplus (\mathbb Z_{12})^2 \, .\]

gap> G:=R!.group;;
gap> M:=HomogeneousPolynomials(G,24);;
gap> C:=HomToIntegralModule(R,M);;
gap> Cohomology(C,1);
[ 2, 2, 2, 2, 4, 8, 40, 80 ]
gap> Cohomology(C,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, 
  520030, 1040060, 0, 0 ]
gap> Cohomology(C,3);
[ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 12, 12 
 ]

10.9 Bianchi groups

The Bianchi groups are the groups \(G=PSL_2({\cal O}_{-d})\) where \(d\) is a square free positive integer and \({\cal O}_{-d}\) is the ring of integers of the imaginary quadratic field \(\mathbb Q(\sqrt{-d})\). More explicitly,

\[{\cal O}_{-d} = \mathbb Z\left[\sqrt{-d}\right]~~~~~~~~ {\rm if~} d \equiv 1 {\rm ~mod~} 4\, ,\]

\[{\cal O}_{-d} = \mathbb Z\left[\frac{1+\sqrt{-d}}{2}\right]~~~~~ {\rm if~} d \equiv 2,3 {\rm ~mod~} 4\, .\]

These groups act on upper-half space \({\frak h}^3\) in the same way as the Picard group. Upper-half space can be tessellated by a 'fundamental domain' for this action. Moreover, as with the Picard group, this tessellation contains a \(2\)-dimensional cellular subspace \({\cal T}\subset {\frak h}^3\) where \({\cal T}\) is a contractible CW-complex on which \(G\) acts cellularly. It should be mentioned that the fundamental domain and the contractible \(2\)-complex \({\cal T}\) are not uniquely determined by \(G\). Various algorithms exist for computing \({\cal T}\) and its cell stabilizers. One algorithm due to Swan [Swa71] has been implemented by Alexander Rahm [Rah10] and the output for various values of \(d\) are stored in HAP. Another approach is to use Voronoi's theory of perfect forms. This approach has been implemented by Sebastian Schoennenbeck [BCNS15] and, again, its output for various values of \(d\) are stored in HAP. The following commands combine data from Schoennenbeck's algorithm with free resolutions for cell stabiliers to compute

\[H^1(PSL_2({\cal O}_{-6}),P_{{\cal O}_{-6}}(24)) = (\mathbb Z_2)^4 \oplus \mathbb Z_{12} \oplus \mathbb Z_{24} \oplus \mathbb Z_{9240} \oplus \mathbb Z_{55440} \oplus \mathbb Z^4\,, \]

\[H^2(PSL_2({\cal O}_{-6}),P_{{\cal O}_{-6}}(24)) = \begin{array}{l} (\mathbb Z_2)^{26} \oplus \mathbb (Z_{6})^8 \oplus \mathbb (Z_{12})^{9} \oplus \mathbb Z_{24} \oplus (\mathbb Z_{120})^2 \oplus (\mathbb Z_{840})^3\\ \oplus \mathbb Z_{2520} \oplus (\mathbb Z_{27720})^2 \oplus (\mathbb Z_{24227280})^2 \oplus (\mathbb Z_{411863760})^2\\ \oplus \mathbb Z_{2454438243748928651877425142836664498129840}\\ \oplus \mathbb Z_{14726629462493571911264550857019986988779040}\\ \oplus \mathbb Z^4\end{array}\ , \]

\[H^3(PSL_2({\cal O}_{-6}),P_{{\cal O}_{-6}}(24)) = (\mathbb Z_2)^{23} \oplus \mathbb Z_{4} \oplus (\mathbb Z_{12})^2\ . \]

Note that the action of \(SL_2({\cal O}_{-d})\) on \(P_{{\cal O}_{-d}}(k)\) induces an action of \(PSL_2({\cal O}_{-d})\) provided \(k\) is even.

gap> R:=ResolutionPSL2QuadraticIntegers(-6,4);
Resolution of length 4 in characteristic 0 for PSL(2,O-6) . 
No contracting homotopy available. 

gap> G:=R!.group;;
gap> M:=HomogeneousPolynomials(G,24);;
gap> C:=HomToIntegralModule(R,M);;
gap> Cohomology(C,1);
[ 2, 2, 2, 2, 12, 24, 9240, 55440, 0, 0, 0, 0 ]
gap> Cohomology(C,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, 6, 6, 6, 6, 6, 6, 6, 6, 12, 12, 12, 12, 12, 12, 12, 12, 12, 24, 120, 120, 
  840, 840, 840, 2520, 27720, 27720, 24227280, 24227280, 411863760, 411863760, 
  2454438243748928651877425142836664498129840, 
  14726629462493571911264550857019986988779040, 0, 0, 0, 0 ]
gap> Cohomology(C,3);
[ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 12, 
  12 ]

We can also consider the coefficient module

\[ P_{{\cal O}_{-d}}(k,\ell) = P_{{\cal O}_{-d}}(k) \otimes_{{\cal O}_{-d}} \overline{P_{{\cal O}_{-d}}(\ell)} \]

where the bar denotes a twist in the action obtained from complex conjugation. For an action of the projective linear group we must insist that \(k+\ell\) is even. The following commands compute

\[H^2(PSL_2({\cal O}_{-11}),P_{{\cal O}_{-11}}(5,5)) = (\mathbb Z_2)^8 \oplus \mathbb Z_{60} \oplus (\mathbb Z_{660})^3 \oplus \mathbb Z^6\,, \]

a computation which was first made, along with many other cohomology computationsfor Bianchi groups, by Mehmet Haluk Sengun [Sen11].

gap> R:=ResolutionPSL2QuadraticIntegers(-11,3);;
gap> M:=HomogeneousPolynomials(R!.group,5,5);;
gap> C:=HomToIntegralModule(R,M);;
gap> Cohomology(C,2);
[ 2, 2, 2, 2, 2, 2, 2, 2, 60, 660, 660, 660, 0, 0, 0, 0, 0, 0 ]

The function ResolutionPSL2QuadraticIntegers(-d,n) relies on a limited data base produced by the algorithms implemented by Schoennenbeck and Rahm. The function also covers some cases covered by entering a sring "-d+I" as first variable. These cases correspond to projective special groups of module automorphisms of lattices of rank 2 over the integers of the imaginary quadratic number field \(\mathbb Q(\sqrt{-d})\) with non-trivial Steinitz-class. In the case of a larger class group there are cases labelled "-d+I2",...,"-d+Ik" and the Ij together with O-d form a system of representatives of elements of the class group modulo squares and Galois action. For instance, the following commands compute

\[H_2(PSL({\cal O}_{-21+I2}),\mathbb Z) = \mathbb Z_2\oplus \mathbb Z^6\, .\]

gap> R:=ResolutionPSL2QuadraticIntegers("-21+I2",3);
Resolution of length 3 in characteristic 0 for PSL(2,O-21+I2)) . 
No contracting homotopy available. 

gap> Homology(TensorWithIntegers(R),2);
[ 2, 0, 0, 0, 0, 0, 0 ]

10.10 Some other infinite matrix groups

Analogous to the functions for Bianchi groups, HAP has functions

for computing free resolutions for certain values of \(SL_2({\cal O}_{-d})\), \(SL_2(\mathbb Z[\frac{1}{m}])\), \(GL_2({\cal O}_{-d})\) and \(PGL_2({\cal O}_{-d})\). Additionally, the function

can be used to compute resolutions for groups whose data (provided by Sebastian Schoennenbeck, Alexander Rahm and Mathieu Dutour) is stored in the directory gap/pkg/Hap/lib/Perturbations/Gcomplexes .

For instance, the following commands compute

\[H^1(SL_2({\cal O}_{-6}),P_{{\cal O}_{-6}}(24)) = (\mathbb Z_2)^4 \oplus \mathbb Z_{12} \oplus \mathbb Z_{24} \oplus \mathbb Z_{9240} \oplus \mathbb Z_{55440} \oplus \mathbb Z^4\,, \]

\[H^2(SL_2({\cal O}_{-6}),P_{{\cal O}_{-6}}(24)) = \begin{array}{l} (\mathbb Z_2)^{26} \oplus \mathbb (Z_{6})^7 \oplus \mathbb (Z_{12})^{10} \oplus \mathbb Z_{24} \oplus (\mathbb Z_{120})^2 \oplus (\mathbb Z_{840})^3\\ \oplus \mathbb Z_{2520} \oplus (\mathbb Z_{27720})^2 \oplus (\mathbb Z_{24227280})^2 \oplus (\mathbb Z_{411863760})^2\\ \oplus \mathbb Z_{2454438243748928651877425142836664498129840}\\ \oplus \mathbb Z_{14726629462493571911264550857019986988779040}\\ \oplus \mathbb Z^4\end{array}\ , \]

\[H^3(SL_2({\cal O}_{-6}),P_{{\cal O}_{-6}}(24)) = (\mathbb Z_2)^{58} \oplus (\mathbb Z_{4})^4 \oplus (\mathbb Z_{12})\ . \]

gap> R:=ResolutionSL2QuadraticIntegers(-6,4);
Resolution of length 4 in characteristic 0 for PSL(2,O-6) . 
No contracting homotopy available. 

gap> G:=R!.group;;
gap> M:=HomogeneousPolynomials(G,24);;
gap> C:=HomToIntegralModule(R,M);;
gap> Cohomology(C,1);
[ 2, 2, 2, 2, 12, 24, 9240, 55440, 0, 0, 0, 0 ]
gap> Cohomology(C,2);
gap> Cohomology(C,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, 6, 6, 6, 6, 6, 6, 6, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 24, 120, 
  120, 840, 840, 840, 2520, 27720, 27720, 24227280, 24227280, 411863760, 
  411863760, 2454438243748928651877425142836664498129840, 
  14726629462493571911264550857019986988779040, 0, 0, 0, 0 ]
gap> Cohomology(C,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, 2, 2, 4, 4, 4, 4, 12, 12 ]

The following commands construct free resolutions up to degree 5 for the groups \(SL_2(\mathbb Z[\frac{1}{2}])\), \(GL_2({\cal O}_{-2})\), \(GL_2({\cal O}_{2})\), \(PGL_2({\cal O}_{2})\), \(GL_3({\cal O}_{-2})\), \(PGL_3({\cal O}_{-2})\). The final command constructs a free resolution up to degree 3 for \(PSL_4(\mathbb Z)\).

gap> R1:=ResolutionSL2ZInvertedInteger(2,5);
Resolution of length 5 in characteristic 0 for SL(2,Z[1/2]) . 

gap> R2:=ResolutionGL2QuadraticIntegers(-2,5);
Resolution of length 5 in characteristic 0 for GL(2,O-2) . 
No contracting homotopy available. 

gap> R3:=ResolutionGL2QuadraticIntegers(2,5);
Resolution of length 5 in characteristic 0 for GL(2,O2) . 
No contracting homotopy available. 

gap> R4:=ResolutionPGL2QuadraticIntegers(2,5);
Resolution of length 5 in characteristic 0 for PGL(2,O2) . 
No contracting homotopy available. 

gap> R5:=ResolutionGL3QuadraticIntegers(-2,5);
Resolution of length 5 in characteristic 0 for GL(3,O-2) . 
No contracting homotopy available. 

gap> R6:=ResolutionPGL3QuadraticIntegers(-2,5);
Resolution of length 5 in characteristic 0 for PGL(3,O-2) . 
No contracting homotopy available. 

gap> R7:=ResolutionArithmeticGroup("PSL(4,Z)",3);
Resolution of length 3 in characteristic 0 for <matrix group with 655 generators> . 
No contracting homotopy available. 

10.11 Ideals and finite quotient groups

The following commands first construct the number field \(\mathbb Q(\sqrt{-7})\), its ring of integers \({\cal O}_{-7}={\cal O}(\mathbb Q(\sqrt{-7}))\), and the principal ideal \(I=\langle 5 + 2\sqrt{-7}\rangle \triangleleft {\cal O}(\mathbb Q(\sqrt{-7}))\) of norm \({\cal N}(I)=53\). The ring \(I\) is prime since its norm is a prime number. The primality of \(I\) is also demonstrated by observing that the quotient ring \(R={\cal O}_{-7}/I\) is an integral domain and hence isomorphic to the unique finite field of order \(53 \), \(R\cong \mathbb Z/53\mathbb Z\) . (In a ring of quadratic integers prime ideal is the same as maximal ideal).

The finite group \(G=SL_2({\cal O}_{-7}\,/\,I)\) is then constructed and confirmed to be isomorphic to \(SL_2(\mathbb Z/53\mathbb Z)\). The group \(G\) is shown to admit a periodic \(\mathbb ZG\)-resolution of \(\mathbb Z\) of period dividing \(52\).

Finally the integral homology

\[H_n(G,\mathbb Z) = \left\{\begin{array}{ll} 0 & n\ne 3,7, {\rm~for~} 0\le n \le 8,\\ \mathbb Z_{2808} & n=3,7, \end{array}\right.\]

is computed.

gap> Q:=QuadraticNumberField(-7);
Q(Sqrt(-7))

gap> OQ:=RingOfIntegers(Q);
O(Q(Sqrt(-7)))

gap> I:=QuadraticIdeal(OQ,5+2*Sqrt(-7));
ideal of norm 53 in O(Q(Sqrt(-7)))

gap> R:=OQ mod I;
ring mod ideal of norm 53

gap> IsIntegralRing(R);
true

gap> gens:=GeneratorsOfGroup( SL2QuadraticIntegers(-7) );;
gap> G:=Group(gens*One(R));;G:=Image(IsomorphismPermGroup(G));;
gap> StructureDescription(G);
"SL(2,53)"

gap> IsPeriodic(G);
true
gap> CohomologicalPeriod(G);
52

gap> GroupHomology(G,1);
[  ]
gap> GroupHomology(G,2);
[  ]
gap> GroupHomology(G,3);
[ 8, 27, 13 ]
gap> GroupHomology(G,4);
[  ]
gap> GroupHomology(G,5);
[  ]
gap> GroupHomology(G,6);
[  ]
gap> GroupHomology(G,7);
[ 8, 27, 13 ]
gap> GroupHomology(G,8);
[  ]

The following commands show that the rational prime \(7\) is not prime in \({\cal O}_{-5}={\cal O}(\mathbb Q(\sqrt{-5}))\). Moreover, \(7\) totally splits in \({\cal O}_{-5}\) since the final command shows that only the rational primes \(2\) and \(5\) ramify in \({\cal O}_{-5}\).

gap> Q:=QuadraticNumberField(-5);;
gap> OQ:=RingOfIntegers(Q);;
gap> I:=QuadraticIdeal(OQ,7);;
gap> IsPrime(I);
false

gap> Factors(Discriminant(OQ));
[ -2, 2, 5 ]

For \(d < 0\) the rings \({\cal O}_d={\cal O}(\mathbb Q(\sqrt{d}))\) are unique factorization domains for precisely

\[ d = -1, -2, -3, -7, -11, -19, -43, -67, -163.\]

This result was conjectured by Gauss, and essentially proved by Kurt Heegner, and then later proved by Harold Stark.

The following commands construct the classic example of a prime ideal \(I\) that is not principal. They then illustrate reduction modulo \(I\).

gap> Q:=QuadraticNumberField(-5);;
gap> OQ:=RingOfIntegers(Q);;
gap> I:=QuadraticIdeal(OQ,[2,1+Sqrt(-5)]);
ideal of norm 2 in O(Q(Sqrt(-5)))

gap> 6 mod I;
0

10.12 Congruence subgroups for ideals

Given a ring of integers \({\cal O}\) and ideal \(I \triangleleft {\cal O}\) there is a canonical homomorphism \(\pi_I\colon SL_2({\cal O}) \rightarrow SL_2({\cal O}/I)\). A subgroup \(\Gamma \le SL_2({\cal O})\) is said to be a congruence subgroup if it contains \(\ker \pi_I\). Thus congruence subgroups are of finite index. Generalizing the definition in 10.1 above, we define the principal congruence subgroup \(\Gamma_1(I)=\ker \pi_I\), and the congruence subgroup \(\Gamma_0(I)\) consisting of preimages of the upper triangular matrices in \(SL_2({\cal O}/I)\).

The following commands construct \(\Gamma=\Gamma_0(I)\) for the ideal \(I\triangleleft {\cal O}\mathbb Q(\sqrt{-5})\) generated by \(12\) and \(36\sqrt{-5}\). The group \(\Gamma\) has index \(385\) in \(SL_2({\cal O}\mathbb Q(\sqrt{-5}))\). The final command displays a tree in a Cayley graph for \(SL_2({\cal O}\mathbb Q(\sqrt{-5}))\) whose nodes represent a transversal for \(\Gamma\).

gap> Q:=QuadraticNumberField(-5);;
gap> OQ:=RingOfIntegers(Q);;
gap> I:=QuadraticIdeal(OQ,[36*Sqrt(-5), 12]);;
gap> G:=HAP_CongruenceSubgroupGamma0(I);
CongruenceSubgroupGamma0(ideal of norm 144 in O(Q(Sqrt(-5)))) 

gap> IndexInSL2O(G);
385
 
gap> HAP_SL2TreeDisplay(G);

Information for the cubic tree

The next commands first construct the congruence subgroup \(\Gamma_0(I)\) of index \(144\) in \(SL_2({\cal O}\mathbb Q(\sqrt{-2}))\) for the ideal \(I\) in \({\cal O}\mathbb Q(\sqrt{-2})\) generated by \(4+5\sqrt{-2}\). The commands then compute

\[H_1(\Gamma_0(I),\mathbb Z) = \mathbb Z_3 \oplus \mathbb Z_6 \oplus \mathbb Z_{30} \oplus \mathbb Z^8\, ,\]

\[H_2(\Gamma_0(I), \mathbb Z) = (\mathbb Z_2)^9 \oplus \mathbb Z^7\, ,\]

\[H_3(\Gamma_0(I), \mathbb Z) = (\mathbb Z_2)^9 \, .\]

gap> Q:=QuadraticNumberField(-2);;
gap> OQ:=RingOfIntegers(Q);;
gap> I:=QuadraticIdeal(OQ,4+5*Sqrt(-2));;
gap> G:=HAP_CongruenceSubgroupGamma0(I);
CongruenceSubgroupGamma0(ideal of norm 66 in O(Q(Sqrt(-2)))) 

gap> IndexInSL2O(G);
144

gap> R:=ResolutionSL2QuadraticIntegers(-2,4,true);;
gap> S:=ResolutionFiniteSubgroup(R,G);;

gap> Homology(TensorWithIntegers(S),1);
[ 3, 6, 30, 0, 0, 0, 0, 0, 0, 0, 0 ]
gap> Homology(TensorWithIntegers(S),2);
[ 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0 ]
gap> Homology(TensorWithIntegers(S),3);
[ 2, 2, 2, 2, 2, 2, 2, 2, 2 ]

10.13 First homology

The isomorphism \(H_1(G,\mathbb Z) \cong G_{ab}\) allows for the computation of first integral homology using computational methods for finitely presented groups. Such methods underly the following computation of

\[H_1( SL_2({\cal O}\mathbb Q(\sqrt{-1})),\mathbb Z) \cong \mathbb Z_? \oplus \mathbb Z_?\]

where \(I\) is the prime ideal in the Gaussian integers generated by \(41+56\sqrt{-1}\).

gap> Q:=QuadraticNumberField(-1);;
gap> OQ:=RingOfIntegers(Q);;
gap> I:=QuadraticIdeal(OQ,41+56*Sqrt(-1));
ideal of norm 4817 in O(GaussianRationals)
gap> G:=HAP_CongruenceSubgroupGamma0(I);;
gap> F:=AsFpGroup(G);;
gap> AbelianInvariants(F);
[ 2, 2, 4, 5, 7, 16, 29, 43, 157, 179, 1877, 7741, 22037, 292306033, 
  4078793513671 ]

We write \(G^{ab}_{tors}\) to denote the maximal finite summand of the first homology group of \(G\) and refer to this as the torsion subgroup. Nicholas Bergeron and Akshay Venkatesh [Ber16] have conjectured relationships between the torsion in congruence subgroups \(\Gamma\) and the volume of their quotient manifold \({\frak h}^3/\Gamma\). For instance, for the Gaussian integers they conjecture

\[ \frac{\log |\Gamma_0(I)_{tors}^{ab}|}{{\rm Norm}(I)} \rightarrow \frac{\lambda}{18\pi},\ \lambda =L(2,\chi_{\mathbb Q(\sqrt{-1})}) = 1 -\frac{1}{9} + \frac{1}{25} - \frac{1}{49} + \cdots\]

as the norm of the prime ideal \(I\) tends to \(\infty\). The following approximates \(\lambda/18\pi = 0.0161957\) and \(\frac{\log |\Gamma_0(I)_{tors}^{ab}|}{{\rm Norm}(I)} = 0.00913432\) for the above example.

gap> Q:=QuadraticNumberField(-1);;
gap> Lfunction(Q,2)/(18*3.142);
0.0161957

gap> 1.0*Log(Product(AbelianInvariants(F)),10)/Norm(I);
0.00913432

The link with volume is given by the Humbert volume formula

\[ {\rm Vol} ( {\frak h}^3 / PSL_2( {\cal O}_{d} ) ) = \frac{|D|^{3/2}}{24} \zeta_{ \mathbb Q( \sqrt{d} ) }(2)/\zeta_{\mathbb Q}(2) \]

valid for square-free \(d<0\), where \(D\) is the discriminant of \(\mathbb Q(\sqrt{d})\). The volume of a finite index subgroup \(\Gamma\)is obtained by multiplying the right-hand side by the index \(|PSL_2({\cal O}_d)\,:\, \Gamma|\).

 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 Bib Ind

generated by GAPDoc2HTML