In this chapter we explain how HAP can be used to make computions about modular forms associated to congruence subgroups Γ of SL_2( Z).
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,M_{k-2})
which relates the cohomology of groups to the theory of modular forms associated to a finite index subgroup Γ of SL_2( 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 Γ of SL_2( Z) is said to be a congruence subgroup of level N if it contains the kernel of the canonical homomorphism π_N: SL_2( Z) → SL_2( Z/N Z). So any congruence subgroup is of finite index in SL_2( Z), but the converse is not true.
One congruence subgroup of particular interest is the group Γ(N)=ker(π_N), known as the principal congruence subgroup of level N. Another congruence subgroup of particular interest is the group Γ_0(N) of those matrices that project to upper triangular matrices in SL_2( Z/N Z).
A modular form of weight k for a congruence subgroup Γ is a complex valued function on the upper-half plane, f: frakh}={z∈ C : Re(z)>0} → C, satisfying:
displaystyle f(fracaz+bcz+d) = (cz+d)^k f(z) for (beginarraylla&b c &d endarray) ∈ Γ,
f is `holomorphic' on the extended upper-half plane frakh^∗ = frakh ∪ Q ∪ {∞} obtained from the upper-half plane by `adjoining a point at each cusp'.
The collection of all weight k modular forms for Γ form a vector space M_k(Γ) over C.
A modular form f is said to be a cusp form if f(∞)=0. The collection of all weight k cusp forms for Γ form a vector subspace S_k(Γ). There is a decomposition
M_k(\Gamma) \cong S_k(\Gamma) \oplus E_k(\Gamma)
involving a summand E_k(Γ) 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. See [Wie78] for a full account of the isomorphism.
On the right-hand side of the isomorphism, the ZΓ-module M_k-2⊂ C[x,y] denotes the space of homogeneous degree k-2 polynomials with action of Γ given by
\left(\begin{array}{ll}a&b\\ c &d \end{array}\right)\cdot p(x,y) = p(ax+cy,bx+dy)\ .
In particular M_0= C is the trivial module.
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(Γ) of cusp forms.
The matrices S=(beginarrayrr0&-1 1 &0 endarray) and T=(beginarrayrr1&1 0 &1 endarray) generate SL_2( 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 = (beginarrayrr0&-1 1 &1 endarray). The matrices S and U also generate SL_2( Z). In fact we have a free presentation SL_2( Z)= ⟨ S,T | S^4=U^6=1 ⟩.
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=⟨ U⟩ in SL_2( Z) as vertices, and joining cosets xcal U and ycal U by an edge if, and only if, x^-1y ∈ cal U Scal U. Thus the vertex cal U is joined to Scal U, UScal U and U^2Scal 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( Z) acts on cal T in such a way that each vertex is stabilized by a cyclic subgroup conjugate to cal U=⟨ U⟩ and each edge is stabilized by a cyclic subgroup conjugate to cal S =⟨ S ⟩.
In order to store this action of SL_2( Z) on the cubic tree cal T we just need to record the following finite amount of information.
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 Γ. The required generators correspond to the 1-cells of a reduced classifying CW-complex (or free resolution) B(Γ). 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(Γ) are in one-one correspondence with generators for the first homology of the quotient graph Γ ∖ cal T together with the 1-cells of B(stab(e^0)). If Γ acts freely on the vertices of cal T then the 1-cells of B(Γ) are in one-one correspondence with just the generators for the first homology of Γ ∖ cal T. To determine the quotient Γ ∖ cal T we need to determine a cellular subspace D_Γ ⊂ cal T whose images under the action of Γ cover cal T and are pairwise either disjoint or identical. The subspace D_Γ 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_Γ a fundamental region for Γ. We denote by mathring D_Γ the largest CW-subcomplex of D_Γ. The vertices of mathring D_Γ are the same as the vertices of D_Γ. Thus mathring D_Γ is a subtree of the cubic tree whose vertices correspond to coset representatives of Γ in SL_2( Z). For each vertex v in the tree mathring D_Γ define η(v)=3 - degree(v). Then the number of homology generators for Γ ∖ cal T will be (1/2)∑_v∈ mathring D_Γ η(v). The role of tree diagrams in the study of congruence subgroups of SL_2( Z) is explained in detail in [Kul91].
Suppose that we wish to calculate a set of generators for the principal congruence subgroup Γ(N) of level N. Note that Γ(N) intersects trivially with cal U, and hence Γ(N) acts freely on the vertices of the cubical tree cal T. The following commands determine generators for Γ(6) and display mathring D_Γ(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);
The congruence subgroup Γ_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 Γ_0(N) on its vertices. The following commands display mathring D_Γ(39) for a fundamental region in cal T'.
gap> G:=HAP_CongruenceSubgroupGamma0(39);; gap> HAP_SL2TreeDisplay(G);
To compute D_Γ one only needs to be able to test whether a given matrix lies in Γ or not. However, for speed, the above calculations of D_Γ take advantage in GAP's facility for iterating over elements of SL_2( Z/N Z). An algorithm that does not use this facility is also implemented but seems to be a bit slower in general.
Given an inclusion Γ'⊂ Γ of congruence subgroups, it is straightforward to use the trees mathring D_Γ' and mathring D_Γ to compute a system of coset representative for Γ'∖ Γ.
To compute the cohomology H^n(Γ,A) of a congruence subgroup Γ with coefficients in a ZΓ-module A we need to construct n+1 terms of a free ZG-resolution of 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 ZG-resolution R_∗ for G=SL_2( Z). This resolution is also a free ZΓ-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 ]
The following commands show that rank_ ZΓ_0(39) R_1 = 112 but that it is possible to apply `Tietze like' simplifications to R_∗ to obtain a free ZΓ_0(39)-resolution T_∗ with rank_ ZΓ_0(39) T_1 = 11. It is more efficient to work with T_∗ 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 above computations establish that the space M_2(Γ_0(39)) of weight 2 modular forms is of dimension 9.
To define and compute cuspidal cohomology we consider the action of SL_2( 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.
The action factors through an action of PSL_2( Z) =SL_2( Z)/⟨ (beginarrayrr-1&0 0 &-1 endarray)⟩. The images of D under the action of PSL_2( 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 ⟨ U⟩, and the bottom middle point which is stabilized by ⟨ S⟩.
A congruence subgroup Γ has a `fundamental domain' D_Γ equal to a union of finitely many copies of D, one copy for each coset in Γ∖ SL_2( Z). The quotient space X=Γ∖ 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↪ X^BS and this inclusion is a homotopy equivalence. One defines the boundary ∂ X^BS = X^BS - X and uses the inclusion ∂ X^BS ↪ X^BS ≃ X to define the cuspidal cohomology group, over the ground ring C, as
H_{cusp}^n(\Gamma,M_{k-2}) = \ker (\ H^n(X,M_{k-2}) \rightarrow H^n(\partial X^{BS},M_{k-2}) \ ).
Stricly speaking, this is the definition of interior cohomology H_!^n(Γ,M_k-2) and not cuspidal cohomology. However, for congruence subgroups of SL_2( Z) there is an equality H_!^n(Γ,M_k-2) = H_cusp^n(Γ,M_k-2).
Working over C has the advantage of avoiding the technical issue that Γ does not necessarily act freely on frak h since there are points with finite cyclic stabilizer groups in SL_2( 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 Γ acts freely, and Γ-equivariant inclusion ∂ tilde X^BS ↪ tilde X^BS. The definition of cuspidal cohomology that we use, which coincides with the above definition when working over 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.
The following commands calculate
H^1_{cusp}(\Gamma_0(39),\mathbb Z) = \mathbb Z^6\ .
gap> gamma:=HAP_CongruenceSubgroupGamma0(39);; gap> c:=CuspidalIntegralCohomology(gamma,1); [ 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(Γ_0(39))≅ C^9, we deduce from this cuspidal cohomology that the space S_2(Γ_0(39)) of cuspidal weight 2 forms is of dimension 3, and the Eisenstein space E_2(Γ_0(39))≅ C^3 is of dimension 3.
A congruence subgroup Γ le SL_n( Z) and element g∈ SL_n( Q) determine the subgroup Γ' = Γ ∩ gΓ 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^k(\Gamma,\mathbb Z)\ \ \stackrel{tr}{\leftarrow} \ \ H^k(\Gamma',\mathbb Z) \ \ \stackrel{\alpha}{\leftarrow} \ \ H^k(g^{-1}\Gamma' g,\mathbb Z) \ \ \stackrel{\beta}{\leftarrow} H^k(\Gamma, \mathbb Z)
with α, β functorial maps, and tr the transfer map. We define the composite T_g=tr ∘ α ∘ β: H^k(Γ, Z) → H^k(Γ, 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].
The following commands computs T_g for k=1, g=(beginarraycc2&00½endarray) and Γ=Γ_0(39).
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> A:=HomomorphismAsMatrix(h);; gap> Display(A); [ [ -4, 2, 4, 4, -3, 0, 3, 3, -3 ], [ -4, -2, 6, 4, 1, 0, 1, 1, -1 ], [ -3, 1, 3, 4, 0, 0, 1, 1, -1 ], [ -3, 1, 4, 2, -4, 2, 4, 4, -4 ], [ -5, -1, 7, 4, 2, 0, -1, -1, 1 ], [ -7, -3, 6, 6, 0, 2, 2, 2, -2 ], [ -1, 7, 2, -4, -5, 2, 5, -1, 1 ], [ -2, -2, 4, 4, 0, 0, -4, 2, 4 ], [ 0, 4, 1, -4, -5, 2, 2, 2, 4 ] ] gap> Eigenvalues(Rationals,A); [ 6, -2 ]
generated by GAPDoc2HTML