In this chapter we explain how HAP can be used to make computions about modular forms associated to congruence subgroups Γ of SL_2( Z). Also, in Subsection 10.8 onwards, we demonstrate cohomology computations for the Picard group SL_2( Z[i]), some Bianchi groups PSL_2(cal O_-d) where cal O_d is the ring of integers of 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= Z, cal O_-d.
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 Γ 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 Γ_1(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, or anti-holomorphic forms. See [Wie78] for a full account of the isomorphism.
On the right-hand side of the isomorphism, the ZΓ-module P_ C(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(dx-by,-cx+ay)\ .
In particular P_ C(0)= C is the trivial module. Below we shall compute with the integral analogue P_ Z(k-2) ⊂ 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(Γ) 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,U | S^4=U^6=1, S^2=U^3 ⟩.
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.
The modular group cal M=PSL_2( Z) is isomorphic, as an abstract group, to the free product Z_2∗ Z_3. By the Kurosh subgroup theorem, any finite index subgroup M ⊂ cal M is isomorphic to the free product of finitely many copies of Z_2s, Z_3s and Zs. A subset underline x ⊂ M is an independent set of subgroup generators if M is the free product of the cyclic subgroups <x > as x runs over underline x. Let us say that a set of elements in SL_2( Z) is projectively independent if it maps injectively onto an independent set of subgroup generators underline x⊂ cal M. The generating set {S,U} for SL_2( Z) given in the preceding section is projectively independent.
We are interested in constructing a set of generators for a given congruence subgroup Γ. If a small generating set for Γ is required then we should aim to construct one which is close to being projectively independent.
It is useful to invoke the following general result which follows from a perturbation result about free ZG-resolutons in [EHS06, Theorem 2] and an old observation of John Milnor that a free ZG-resolution can be realized as the cellular chain complex of a CW-complex if it can be so realized in low dimensions.
Theorem. Let X be a contractible CW-complex on which a group G acts by permuting cells. The cellular chain complex C_∗ X is a ZG-resolution of Z which typically is not free. Let [e^n] denote the orbit of the n-cell e^n under the action. Let G^e^n ≤ G denote the stabilizer subgroup of e^n, in which group elements are not required to stabilize e^n point-wise. Let Y_e^n denote a contractible CW-complex on which G^e^n acts cellularly and freely. Then there exists a contractible CW-complex W on which G acts cellularly and freely, and in which the orbits of n-cells are labelled by [e^p]⊗ [f^q] where p+q=n and [e^p] ranges over the G-orbits of p-cells in X, [f^q] ranges over the G^e^p-orbits of q-cells in Y_e^p.
Let W be as in the theorem. Then the quotient CW-complex B_G=W/G is a classifying space for G. Let T denote a maximal tree in the 1-skeleton B^1_G. Basic geometric group theory tells us that the 1-cells in B^1_G∖ T correspond to a generating set for G.
Suppose we wish to compute a set of generators for a principal congruence subgroup Γ=Γ_1(N). In the above theorem take X=cal T to be the cubic tree, and note that Γ acts freely on cal T and thus that W=cal T. To determine the 1-cells of B_Γ∖ 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 with |Γ|/6 vertices. For each vertex v in the tree mathring D_Γ define η(v)=3 - degree(v). Then the number of generators for Γ will be (1/2)∑_v∈ mathring D_Γ η(v).
The following commands determine projectively independent generators for Γ_1(6) and display mathring D_Γ_1(6). The subgroup Γ_1(6) is free on 13 generators.
gap> G:=HAP_PrincipalCongruenceSubgroup(6);; gap> HAP_SL2TreeDisplay(G); gap> gens:=GeneratorsOfGroup(G); [ [ [ -83, -18 ], [ 60, 13 ] ], [ [ -77, -18 ], [ 30, 7 ] ], [ [ -65, -12 ], [ 168, 31 ] ], [ [ -53, -12 ], [ 84, 19 ] ], [ [ -47, -18 ], [ 222, 85 ] ], [ [ -41, -12 ], [ 24, 7 ] ], [ [ -35, -6 ], [ 6, 1 ] ], [ [ -11, -18 ], [ 30, 49 ] ], [ [ -11, -6 ], [ 24, 13 ] ], [ [ -5, -18 ], [ 12, 43 ] ], [ [ -5, -12 ], [ 18, 43 ] ], [ [ -5, -6 ], [ 6, 7 ] ], [ [ 1, 0 ], [ -6, 1 ] ] ]
An alternative but very related approach to computing generators of congruence subgroups of SL_2( Z) is described in [Kul91].
The congruence subgroup Γ_0(N) does not act freely on the vertices of cal T, and so one needs to incorporate a generator for the cyclic stabilizer group according to the above theorem. Alternatively, we can replace the cubic tree by a six-fold cover cal T' on whose vertex set Γ_0(N) acts freely. This alternative approach will produce a redundant set of generators. The following commands display mathring D_Γ_0(39) for a fundamental region in cal T'. They also use the corresponding generating set for Γ_0(39), involving 18 generators, to compute the abelianization Γ_0(39)^ab= Z_2 ⊕ Z_3^2 ⊕ Z^9. The abelianization shows that any generating set has at least 11 generators.
gap> G:=HAP_CongruenceSubgroupGamma0(39);; gap> HAP_SL2TreeDisplay(G); gap> Length(GeneratorsOfGroup(G)); 18 gap> AbelianInvariants(G); [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3 ]
Note that to compute D_Γ one only needs to be able to test whether a given matrix lies in Γ or not. 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 ZΓ-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 ]
This computation establishes that the space M_2(Γ_0(39)) of weight 2 modular forms is of dimension 9.
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 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(Γ_0(39)) of weight 10 modular forms is of dimension 84, and M_11(Γ_0(39)) is of dimension 0. (There are never any modular forms of odd weight, and so M_k(Γ)=0 for all odd k and any congruence subgroup Γ.)
To calculate cohomology H^n(Γ,A) with coefficients in a QΓ-module A it suffices to construct a resolution of Z by non-free ZΓ-modules where Γ acts with finite stabilizer groups on each module in the resolution. Computing over Q is computationally less expensive than computing over Z. The following commands first compute H^1(Γ_0(39), Q) = H_1(Γ_0(39), Q)= Q^9. As a larger example, they then compute H^1(Γ_0(2^13-1), Q) = Q^1365 where Γ_0(2^13-1) has index 8192 in SL_2( Z).
gap> K:=ContractibleGcomplex("SL(2,Z)"); Non-free resolution in characteristic 0 for SL(2,Integers) . gap> gamma:=HAP_CongruenceSubgroupGamma0(39);; gap> KK:=NonFreeResolutionFiniteSubgroup(K,gamma); Non-free resolution in characteristic 0 for <matrix group with 18 generators> . gap> C:=TensorWithRationals(KK); gap> Homology(C,1); 9 gap> G:=HAP_CongruenceSubgroupGamma0(2^13-1);; gap> IndexInSL2Z(G); 8192 gap> KK:=NonFreeResolutionFiniteSubgroup(K,G);; gap> C:=TensorWithRationals(KK);; gap> Homology(C,1); 1365
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,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(Γ,P_ C(k-2)) which in general contains the cuspidal cohomology as a subgroup. However, for congruence subgroups of SL_2( Z) there is equality H_!^n(Γ,P_ C(k-2)) = H_cusp^n(Γ,P_ C(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> 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(Γ_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.
The following commands show that the space S_4(Γ_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 ]
A congruence subgroup Γ ≤ SL_2( Z) and element g∈ SL_2( 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^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 α, β functorial maps, and tr the transfer map. We define the composite T_g=tr ∘ α ∘ β: H^n(Γ, Z) → H^n(Γ, 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 prime integer p≥ 1 we set T_p =T_g with for g=(beginarraycc1&00&pendarray).
The following commands compute T_2 and T_5 for n=1 and Γ=Γ_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 primes p,q.)
gap> gamma:=HAP_CongruenceSubgroupGamma0(39);; gap> p:=2;;N:=1;;h:=HeckeOperatorWeight2(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
The above definition of Hecke operator T_g for g∈ SL_2( Q) extends to a Hecke operator T_g: H^1(Γ,P_ Q(k-2) ) → H^1(Γ,P_ Q(k-2) ) for k≥ 2. We work over the rationals rather than the integers in order to ensure that the action of Γ on homogeneous polynomials extends to an action of g. The following commands compute the matrix of T_2: H^1(Γ,P_ Q(k-2) ) → H^1(Γ,P_ Q(k-2) ) for Γ=SL_2( Z) and k=4;
gap> H:=HAP_CongruenceSubgroupGamma0(1);; gap> h:=HeckeOperator(H,2,12);;Display(h); [ [ 2049, -7560, 0 ], [ 0, -24, 0 ], [ 0, 0, -24 ] ]
Given a modular form f: frak h → C associated to a congruence subgroup Γ, 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( Z), we can evaluate
\int_e f(z)\,dz \ .
In this way we obtain a cochain f_1: C_1(cal T) → C in Hom_ ZΓ(C_1(cal T), C) representing a cohomology class c(f) ∈ H^1( Hom_ ZΓ(C_∗(cal T), C) ) = H^1(Γ, C). The correspondence f↦ 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: S_2(Γ) → S_2(Γ) for s≥ 1.
Let us now introduce the function q=q(z)=e^2π i z which is holomorphic on C. For any modular form f(z) there are numbers a_s such that
f(z) = \sum_{s=0}^\infty a_sq^s
for all z∈ frak h. The form f is a cusp form if a_0=0.
A non-zero cusp form f∈ S_2(Γ) is an eigenform if it is simultaneously an eigenvector for the Hecke operators T_s for all s =1,2,3,⋯. 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∈ S_2(Γ_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(Γ) of cusp forms by computing eigenvalues for Hecke operators.
Suppose that we would like a basis for S_2(Γ_0(11)). The following commands first show that H^1_cusp(Γ_0(11), Z)= Z⊕ Z from which we deduce that S_2(Γ_0(11)) = C is 1-dimensional. Then eigenvalues of Hecke operators are calculated to establish that the modular form
f = q -2q^2 -q^3 +2q^4 +q^5 +2q^6 -2q^7 + -2q^9 -2q^{10} + \cdots
constitutes a basis for S_2(Γ_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> T5:=HomomorphismAsMatrix(HeckeOperator(gamma,5,1));; Display(T5); [ [ 6, -4, 4 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] gap> T7:=HomomorphismAsMatrix(HeckeOperator(gamma,7,1));; Display(T7); [ [ 8, -8, 8 ], [ 0, -2, 0 ], [ 0, 0, -2 ] ]
For a normalized eigenform f=1 + ∑_s=2^∞ 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 Γ 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.
The following commands establish that S_12(SL_2( Z)) has a basis consisting of one cusp eigenform
q - 24q^2 + 252q^3 - 1472q^4 + 4830q^5 - 6048q^6 - 16744q^7 + 84480q^8 - 113643q^9
- 115920q^10 + 534612q^11 - 370944q^12 - 577738q^13 + 401856q^14 + 1217160q^15 + 987136q^16
- 6905934q^17 + 2727432q^18 + 10661420q^19 + ...
gap> H:=HAP_CongruenceSubgroupGamma0(1);; gap> for p in [2,3,5,7,11,13,17,19] do > T:=HeckeOperator(H,p,1,12);; > Print("eigenvalues= ",Eigenvalues(Rationals,T), " and eigenvectors = ", Eigenvectors(Rationals,T)," for p= ",p,"\n"); > od; eigenvalues= [ 2049, -24 ] and eigenvectors = [ [ 1, -2520/691, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] for p= 2 eigenvalues= [ 177148, 252 ] and eigenvectors = [ [ 1, -2520/691, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] for p= 3 eigenvalues= [ 48828126, 4830 ] and eigenvectors = [ [ 1, -2520/691, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] for p= 5 eigenvalues= [ 1977326744, -16744 ] and eigenvectors = [ [ 1, -2520/691, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] for p= 7 eigenvalues= [ 285311670612, 534612 ] and eigenvectors = [ [ 1, -2520/691, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] for p= 11 eigenvalues= [ 1792160394038, -577738 ] and eigenvectors = [ [ 1, -2520/691, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] for p= 13 eigenvalues= [ 34271896307634, -6905934 ] and eigenvectors = [ [ 1, -2520/691, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] for p= 17 eigenvalues= [ 116490258898220, 10661420 ] and eigenvectors = [ [ 1, -2520/691, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] for p= 19
Let us now consider the Picard group G=SL_2( 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\}
The four bottom vertices of D are a = -frac12 +frac12i +fracsqrt2}2j, b = -frac12 +fracsqrt3}2j, c = frac12 +fracsqrt3}2j, d = frac12 +frac12i +fracsqrt2}2j.
The upper-half space frak h^3 can be retracted onto a 2-dimensional subspace cal T ⊂ 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 ZG-resolution R_∗ =C_∗ X. Then R_∗ 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( Z[i]) with coefficients in a module such as the module P_ Z[i](k) of degree k homogeneous polynomials with coefficients in 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 ]
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 Q(sqrt-d). More explicitly,
{\cal O}_{-d} = \mathbb Z\left[\sqrt{-d}\right]~~~~~~~~ {\rm if~} d \equiv 1,2 {\rm ~mod~} 4\, ,
{\cal O}_{-d} = \mathbb Z\left[\frac{1+\sqrt{-d}}{2}\right]~~~~~ {\rm if~} d \equiv 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⊂ 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 [Swa71a] 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+ℓ 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 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 ]
Analogous to the functions for Bianchi groups, HAP has functions
ResolutionSL2QuadraticIntegers(-d,n)
ResolutionSL2ZInvertedInteger(m,n)
ResolutionGL2QuadraticIntegers(-d,n)
ResolutionPGL2QuadraticIntegers(-d,n)
ResolutionGL3QuadraticIntegers(-d,n)
ResolutionPGL3QuadraticIntegers(-d,n)
for computing free resolutions for certain values of SL_2(cal O_-d), SL_2( Z[frac1m]), GL_2(cal O_-d) and PGL_2(cal O_-d). Additionally, the function
ResolutionArithmeticGroup("string",n)
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( Z[frac12]), 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( 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.
The following commands first construct the number field Q(sqrt-7), its ring of integers cal O_-7=cal O( Q(sqrt-7)), and the principal ideal I=⟨ 5 + 2sqrt-7⟩ ◃ cal O( 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≅ Z/53 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( Z/53 Z). The group G is shown to admit a periodic ZG-resolution of 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( 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( Q(sqrtd)) 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
Given a ring of integers cal O and ideal I ◃ cal O there is a canonical homomorphism π_I: SL_2(cal O) → SL_2(cal O/I). A subgroup Γ ≤ SL_2(cal O) is said to be a congruence subgroup if it contains ker π_I. Thus congruence subgroups are of finite index. Generalizing the definition in 13.1 above, we define the principal congruence subgroup Γ_1(I)=ker π_I, and the congruence subgroup Γ_0(I) consisting of preimages of the upper triangular matrices in SL_2(cal O/I).
The following commands construct Γ=Γ_0(I) for the ideal I◃ cal O Q(sqrt-5) generated by 12 and 36sqrt-5. The group Γ has index 385 in SL_2(cal O Q(sqrt-5)). The final command displays a tree in a Cayley graph for SL_2(cal O Q(sqrt-5)) whose nodes represent a transversal for Γ.
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);
The next commands first construct the congruence subgroup Γ_0(I) of index 144 in SL_2(cal O Q(sqrt-2)) for the ideal I in cal O Q(sqrt-2) generated by 4+5sqrt-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 ]
The isomorphism H_1(G, Z) ≅ 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( \Gamma_0(I),\mathbb Z) \cong \mathbb Z_2 \oplus \cdots \oplus \mathbb Z_{4078793513671}
where I is the prime ideal in the Gaussian integers generated by 41+56sqrt-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> AbelianInvariants(G); [ 2, 2, 4, 5, 7, 16, 29, 43, 157, 179, 1877, 7741, 22037, 292306033, 4078793513671 ] gap> II:=QuadraticIdeal(OQ,47+61*Sqrt(-1)); ideal of norm 5930 in O(GaussianRationals) gap> GG:=HAP_CongruenceSubgroupGamma0(II);; gap> AbelianInvariants(GG); [ 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 4, 4, 4, 4, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 11, 16, 16, 16, 16, 17, 17, 17, 32, 37, 61, 61, 64, 64, 128, 263, 263, 263, 263, 512, 1024, 5099, 5099, 72043, 72043 ] gap> III:=QuadraticIdeal(OQ,49+69*Sqrt(-1)); ideal of norm 7162 in O(GaussianRationals) gap> GGG:=HAP_CongruenceSubgroupGamma0(III);; gap> AbelianInvariants(GGG); [ 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 5, 8, 8, 8, 8, 13, 13, 25, 59, 59, 179, 283, 283, 379, 857, 967, 967, 3769, 13537, 25601, 222659, 8180323, 8180323, 11450932001, 11450932001 ]
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 Γ and the volume of their quotient manifold frak h^3/Γ. 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 ∞. The following approximates λ/18π = 0.0161957 and fraclog |Γ_0(I)_tors^ab|{ Norm(I) = 0.00913432 and fraclog |Γ_0(II)_tors^ab|{ Norm(II) = 0.0136594 and fraclog |Γ_0(III)_tors^ab|{ Norm(III) = 0.0120078 for the above example.
gap> Q:=QuadraticNumberField(-1);; gap> Lfunction(Q,2)/(18*3.142); 0.0161957 gap> 1.0*Log(Product(AbelianInvariants(G)),10)/Norm(I); 0.00913432 gap> 1.0*Log(Product(Filtered(AbelianInvariants(GG),i->not i=0)),10)/Norm(II); 0.0136594 gap> 1.0*Log(Product(Filtered(AbelianInvariants(GGG),i->not i=0)),10)/Norm(III); 0.0120078
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 Q(sqrtd). The volume of a finite index subgroup Γis obtained by multiplying the right-hand side by the index |PSL_2(cal O_d): Γ|.
generated by GAPDoc2HTML