<<

CALIFORNIA STATE UNIVERSITY SAN MARCOS

MASTER’S THESIS

Data of Modular

Author: Supervisor: Steven NEWBERG Dr. Shahed SHARIF

A thesis submitted in fulfillment of the requirements for the degree of Master of Science in the

Department of California State University San Marcos

December 14, 2017 i Acknowledgements

I would like to begin by thanking my thesis advisor, Dr. Shahed Sharif, for his oft needed mathematical insight and enduring support. He holds signifi- cant responsibility for making the writing of this thesis such an enjoyable and fulfilling process. I would also like to thank my committee members, Dr. Wayne Aitken and Dr. Badal Joshi, for their contribution to this thesis as well as my mathematical education. I am grateful to my parents, Nick and Bella, for supporting my decision to pursue a graduate degree and for their unwavering encouragement at every step of the way. To my sister, Nicole, for assisting with my thesis submission and listening to my explanations of problems that I was working on. Lastly, I would like to thank my best friend and wife, Heidi, for her un- conditional love and encouragement. She allowed me to spend countless days and nights buried in a book or huddled over my keyboard. She has kept me grounded during the writing of this thesis. ii

Data of Modular Curves

Steven NEWBERG

Abstract

A moduli problem seeks to find a bijection between a class of objects and a topological space that describes the parameters of the class of objects. We will present the moduli problem for a type of used in cryptography, elliptic curves. The topological space describing elliptic curves is the quotient of the com- plex plane by the action of matrices in SL2(Z), which we call a modular curve. Taking a quotient of the upper half of the complex plane by subgroups of SL2(Z) also give moduli spaces of elliptic curves but include some extra struc- ture. There are special points on modular curves, which we will discuss and give methods for finding. iii

Contents

Abstract ii

1 Introduction 1 1.1 Moduli problem ...... 1 1.2 Elliptic curves ...... 2 1.3 Complex upper half-plane ...... 3 1.3.1 Action of SL2(Z) on H ...... 4 1.4 Modular curves ...... 7 1.5 Elliptic points ...... 8 1.6 Modular curve as a ...... 10 1.7 Degree ...... 10 1.7.1 Properties of maps between compact Riemann surfaces . 10 1.8 Genus ...... 12

2 Cusps 13 2.1 Definitions ...... 13 2.2 Computing cusps of X(1) ...... 14 2.3 Computing cusps of X(Γ) ...... 15 2.3.1 Computing cusps of X(N) ...... 16 2.3.2 Algorithm for cusps of X(N) ...... 18 2.3.3 Algorithm in Sage ...... 20 2.3.4 Computing cusps of X1(N) ...... 21 2.3.5 Algorithm for cusps of X1(N) ...... 22 2.3.6 Algorithm in Sage ...... 25 2.3.7 Computing cusps of X0(N) ...... 27 2.3.8 Algorithm for cusps of X0(N) ...... 31 2.3.9 Algorithm in Sage ...... 33

3 Elliptic Points 35 3.1 Definitions ...... 35 3.2 Elliptic points of X(N) ...... 35 3.3 Elliptic points of X1(N) ...... 36 3.4 Elliptic points of X0(N) ...... 40

4 Genus and Ramification Degree 43 4.1 Ramification degree ...... 43 4.1.1 Ramification degree formula ...... 43 4.1.2 Ramification degrees of elliptic points ...... 45 4.1.3 Ramification degree of cusps ...... 45 4.2 Genera of modular curves ...... 47 iv

4.3 Cuspidal trees ...... 50 4.3.1 Degree of a map between modular curves ...... 50 4.3.2 Cuspidal trees ...... 51 4.3.3 Sage code for creating cuspidal trees ...... 52

Bibliography 55 1

Chapter 1

Introduction

1.1 Moduli problem

We first present the idea of a moduli problem. A moduli problem seeks to find a bijection between a class of objects and a topological space that describes the parameters of the class of objects. The key steps in solving a moduli problem are (1) defining the class of objects that we hope to describe; (2) determining the parameters, or what dis- tinguishes one object from another; and (3) defining an equivalence relation for our parameter space. For clarity, we will show a few examples of moduli problems. 2 Example 1.1. We want to describe all the circles in R . We know that given any three distinct points we can define a circle. Unfor- tunately there are infinitely many points on any circle in the plane, so there are infinite triples of points that describe the same circle. This means 3 points do not uniquely define a circle, but we require uniqueness for our . Instead we can describe distinct circles by their center and their radius. Since the center and radius can be represented by a triple (a, b, r) for a, b, r ∈ R and r > 0, the moduli space of circles is

3 M = {(a, b, r) ∈ R |r > 0}.

2 The map f which takes M to circles in R is clearly bijective. So the topo- 2 logical space M is a moduli space for the set of circles in R . Example 1.2. We want to describe all the triangles in the real plane. We first observe that a triangle depends on the coordinates of its vertices 2 a1, a2 and a3, with each ai ∈ R . The question we need to ask is when do these points not specify a triangle. The only condition we need for our three points is that they are not collinear. We define the space C to be

C = {(a1, a2, a3)|ai’s are collinear}.

2 3 We see that any triangle can be represented by at least one in (R ) − C, but it is possible that one triangle corresponds to multiple points in this topological space. Notice that (a1, a2, a3) and (a2, a1, a3) both give the same triangle in the plane. It does not matter what order we list the vertices of the triangle, so all such permutations of the points a1, a2 and a3 give the same triangle. Chapter 1. Introduction 2

Recall that S3 is the set of permutations on a set of size 3. We will de- 2 3 fine a action on the set (R ) − C. For σ ∈ S3, define σ(a1, a2, a3) = (aσ(1), aσ(2), aσ(3)). We would now like to prove the following proposition:

2 3 Proposition 1.3. Two triples (a1, a2, a3) and (b1, b2, b3) in (R ) − C give the same triangle if and only if there exists σ ∈ S3 such that σ((a1, a2, a3)) = (b1, b2, b3).

Proof. To prove the forward direction let (a1, a2, a3) and (b1, b2, b3) give the 2 3 same triangle in (R ) −C. Since a triangle has exactly 3 vertices then (a1, a2, a3) and (b1, b2, b3) contain the same points but permuted in some manner. There- fore for some σ ∈ S3 we have that σ((a1, a2, a3)) = (b1, b2, b3). For the reverse direction let σ((a1, a2, a3)) = (b1, b2, b3) for some σ ∈ S3. 2 Then (a1, a2, a3) and (b1, b2, b3) contain the same points ai and bj in R . In the plane these sets of vertices are identical and hence give the same triangle.

We have shown that different points give the same triangle if and only if they are permutations of each other. In our moduli space we require that distinct points give distinct objects so points that differ by a permutation are equivalent. We achieve this equivalence by modding out by the 2 3 on ((R ) − C):

2 3 2 3 S3\((R ) − C) = {{σ(α): σ ∈ S3} : α ∈ ((R ) − C)}.

Since we have shown triples give the same triangle only when permuted 2 then this gives us a moduli space for all triangles in R . In our second example we saw the importance of finding all possible equiv- alences in our topological space and how to translate such an equivalence to our moduli space. The goal of this chapter will be to find the moduli space for elliptic curves.

1.2 Elliptic curves

To begin discussing the moduli problem for elliptic curves we first need to explore the types of objects that we would like to describe. We must first define the notion of a lattice.

Definition 1.4. A lattice Λ ⊂ C is a set of the form

Λ = ω1Z ⊕ ω2Z = {ω1α + ω2β : α, β ∈ Z} where ω1, ω2 are R-independent elements of C and are called a basis of Λ. Note that a basis of a lattice is not unique.

Definition 1.5. Fix a lattice Λ with basis ω1 and ω2. An , E(Λ), is 0 the quotient space C/Λ. Two points z, z ∈ C are equivalent if and only if there exist m, n ∈ Z such that 0 z = z + mω1 + nω2. Chapter 1. Introduction 3

Definition 1.6. Given a topological space X under a group action G, we define a fundamental domain to be a set of representatives for orbits in X. Notice that the elliptic curve E(Λ) contains infinitely many orbits and each orbit contains infinitely many points. Given an elliptic curve E(Λ) and lattice Λ with basis ω1 and ω2 we define the fundamental parallelogram to be the set

P = {aω1 + bω2 : 0 ≤ a < 1, 0 ≤ b < 1}.

Topologically this gives a parallelogram in the complex plane with opposite sides "glued" together. One can show that this is a fundamental domain. From our discussion of moduli spaces, the first step in finding a moduli space is determining when two elliptic curves are isomorphic. Definition 1.7. Two elliptic curves are isomorphic if there exists a holomorphic group isomorphism between them; that is, they are isomorphic as groups with the extra condition that the isomorphism between them is holomorphic.

Let Λ(ω1, ω2) be the lattice formed by the basis ω1 and ω2. Let Λ1 = Λ(1, i) and Λ2 = Λ(2, 2i). By observation we can see that one lattice can be mapped to the other by stretching the smaller lattice using the φ :Λ1 → Λ2 given by z 7→ 2z. Notice that Λ1 and Λ2 are in fact different lattices since (0, i) ∈ Λ1 but (0, i) 6∈ Λ2.

Definition 1.8. Two lattices Λ1 and Λ2 are homothetic if and only if Λ1 = αΛ2 for some α ∈ C. We will denote two homothetic lattices by Λ1 ∼ Λ2. Homothety of lattices is actually the property that defines isomorphic el- liptic curves.

Theorem 1.9. The elliptic curves C/Λ1 and C/Λ2 are isomorphic if and only if there exists α ∈ C such that αΛ1 = Λ2; that is, Λ1 and Λ2 are homothetic. Proof. [DS05, Corollary 1.3.3]

1.3 Complex upper half-plane

From the previous section we saw that two elliptic curves are isomorphic if the associated lattices are homothetic. The goal of this section will be to give a map from the upper half-plane under a group action to the set of elliptic curves. Consider the elliptic curve E(Λ) where Λ is a lattice with basis elements ω1 and ω2. Both basis elements are nonzero since they are R-linearly independent. Therefore we get the following homothety:     1 ω2 Λ(ω1, ω2) ∼ (Λ(ω1, ω2)) = Λ 1, . ω1 ω1

We can see that any lattice is homothetic to a lattice of the form Λ(1, τ). ω ω τ = ω2 Since 1 and 2 are linearly independent over R then ω1 must have a nonzero imaginary part. The next lemma will show that, in fact, we can choose τ in the upper half-plane. Chapter 1. Introduction 4

Lemma 1.10. Given a lattice Λ(ω1, ω2) there is a lattice of the form Λ(1, τ) with Im(τ) > 0 such that Λ(ω1, ω2) ∼ Λ(1, τ).   Proof. Λ(ω , ω ) Λ(ω , ω ) ∼ Λ 1, ω2 Consider the lattice 1 2 . Above we saw that 1 2 ω1 Λ(ω , ω ) ∼ Λ(1, τ) τ = ω2 and so 1 2 where ω1 . If Im(τ) < 0 then Im(−τ) > 0. Therefore either τ or −τ is in the upper half-plane. Observe that for any complex number α ∈ C with Im(α) 6= 0, the lattices Λ(1, α) and Λ(1, −α) are equal since negating a basis element does not change the lattice. Therefore Λ(ω1, ω2) ∼ Λ (1, τ) and Λ(ω1, ω2) ∼ Λ (1, −τ) with either τ or −τ in the upper half-plane.

The above lemma shows that every elliptic curve is isomorphic to an ellip- tic curve E(Λ(1, τ)) where Im(τ) > 0.

1.3.1 Action of SL2(Z) on H The basis of a lattice is not unique and so two different bases can represent the same lattice. Two bases give the same lattice if and only if they are Z-linear 0 0 combinations of each other. More explicitly two bases ω1, ω2 and ω1, ω2 give the same lattice if and only if

 0      ω1 a b ω1 0 = (1.1) ω2 c d ω2

 a b  for some matrix c d ∈ GL2(Z). We denote the set of points in the upper half-plane as

H = {τ ∈ C : Im(τ) > 0}.

 a b  Given A = c d ∈ SL2(Z) and τ ∈ H, define the action of SL2(Z) on H by aτ + b Aτ = for τ ∈ . (1.2) cτ + d H One checks that this is a well-defined action. We would like to verify that the action of SL2(Z) on H is closed, that is, given a point τ ∈ H, Aτ ∈ H for every A ∈ SL2(Z).

 a b  0 0 Lemma 1.11. Let z ∈ H and A = c d ∈ SL2(Z). If Az = z then z ∈ H. Chapter 1. Introduction 5

Proof. Observe that

az + b Im(z0) = Im(Az) = Im cz + d (az + b)(cz¯ + d) = Im (cz + d)(cz¯ + d) Im(aczz¯ + azd + bcz¯ + bd) = |cz + d|2 (ad − bc)Im(z) = |cz + d|2 Im(z) = . |cz + d|

0 By our assumption, A ∈ SL2(Z), and so ad − bc = 1. Therefore Im(z ) > 0.

0 0 0 Lemma 1.12. If Λ(1, τ) ∼ Λ(1, τ ) for τ, τ ∈ H then Aτ = τ for some A ∈ SL2(Z). 0 0 Proof. Let Λ(1, τ) ∼ Λ(1, τ ). Therefore Λ(1, τ ) = Λ(α, ατ) for some α ∈ C with  a b  α 6= 0. This gives us that for some c d ∈ GL2(Z)

ατ a b τ 0 = α c d 1 aτ 0 + b = . cτ 0 + d

ατ h aτ 0+b i Hence [ α ] = cτ 0+d and this implies that

aτ 0 + b = ατ (1.3) cτ 0 + d = α. (1.4)

 a b  Let A = c d . Since α 6= 0, we may divide (1.3) by (1.4) which gives

Aτ 0 = τ. 0 Im(τ) Using the formula Im(τ ) = |cτ+d| , we conclude that ad − bc > 0 since 0 τ, τ ∈ H. Therefore A ∈ SL2(Z), which proves the lemma. We would like to give a map between the set of isomorphism classes of elliptic curves to the quotient of the upper half-plane by SL2(Z). Let SL2(Z)τ denote the orbit of τ under the action of SL2(Z). Consider the set

SL2(Z)\H = {SL2(Z)τ : τ ∈ H}. We now define the function

f : SL2(Z)\H −→ {elliptic curves}/ ∼ Chapter 1. Introduction 6 by

f(SL2(Z)τ) = E(Λ(1, τ)). Theorem 1.13. The map f is well-defined.

0 0  a b  Proof. Let SL2(Z)τ = SL2(Z)τ and so Aτ = τ for some A = c d ∈ SL2(Z). We have that

f(SL2(Z)τ) = E(Λ(1, τ)) and 0 0 f(SL2(Z)τ ) = E(Λ(1, τ )) = E(Λ(1, Aτ)).

If Λ(1, τ) ∼ Λ(1, Aτ) then E(Λ(1, τ)) is isomorphic to E(Λ(1, Aτ)). Therefore it suffices to show the claim that Λ(1, τ) ∼ Λ(1, Aτ). Notice that

 aτ + b Λ 1, ∼ Λ(cτ + d, aτ + b). (1.5) cτ + d

We will show that Λ(1, τ) = Λ(cτ + d, aτ + b). First we have

a b τ aτ + b = . (1.6) c d 1 cτ + d

Observe that  d −b aτ + b τ = . (1.7) −c a cτ + d 1

By (1.6) and (1.7), the bases τ, 1 and cτ +d, aτ +b are Z-linear combinations of each other. Therefore Λ(1, τ) = Λ(cτ + d, aτ + b). Combining (1.5) and Λ(1, τ) = Λ(cτ + d, aτ + b) we get that Λ(1, τ) ∼ Λ(1, Aτ) which proves the theorem.

To show that SL2(Z)\H is a moduli space we need to show that f is a bijection.

Theorem 1.14. The map f is a bijection.

Proof. First we will show that the map is surjective. Let E(Λ(ω1, ω2)) be an elliptic curve. By Lemma 1.10 there is τ ∈ H such that Λ(ω1, ω2) ∼ Λ(1, τ). Therefore f(SL2(Z)τ) = E(Λ(1, τ)) and since E(Λ(ω1, ω2)) is isomorphic to E(Λ(1, τ)), this proves surjectivity. 0 0 Now we will show injectivity. Let f(SL2(Z)τ) = f(SL2(Z)τ ) for τ, τ ∈ H. Therefore E(Λ(1, τ)) and E(Λ(1, τ 0)) are in the same isomorphism class and so Λ(1, τ) ∼ Λ(1, τ 0). By Lemma 1.12, if Λ(1, τ) ∼ Λ(1, τ 0) then τ = Aτ 0 for some 0 A ∈ SL2(Z) and so SL2(Z)τ = SL2(Z)τ which proves injectivity.

Since f is a bijection then SL2(Z)\H is a moduli space for the set of elliptic curves. Chapter 1. Introduction 7

1.4 Modular curves

The previous section showed that every elliptic curve is represented by a point in the moduli space SL2(Z)\H. Although it will not be covered in this thesis, one can study the moduli space to find general properties of elliptic curves. Additionally, restricting the group action to certain subgroups of SL2(Z) gives rise to moduli spaces for the set of elliptic curves with some additional infor- mation. This thesis will only discuss the moduli spaces that arise; the details regarding their relationship to elliptic curves can be found in [DS05, Section 1.4]. The following definitions will be used to define the different moduli spaces. Definition 1.15. The principal of level N, denoted Γ(N), is given by

a b a b 1 0  Γ(N) = ∈ SL ( ): ≡ (modN) . c d 2 Z c d 0 1

Definition 1.16. A subgroup Γ of SL2(Z) is a congruence subgroup if Γ(N) ⊂ Γ + for some N ∈ Z . The two such congruence subgroups that will be studied in this thesis are a b a b ??  Γ (N) = ∈ SL ( ): ≡ (mod N) and 0 c d 2 Z c d 0 ? a b a b 1 ?  Γ (N) = ∈ SL ( ): ≡ (mod N) 1 c d 2 Z c d 0 1 where ? denotes an entry in the matrix that is not restricted. Definition 1.17. Let Γ be a congruence subgroup. The corresponding modular curve is defined as Y (Γ) = Γ\H = {Γτ : τ ∈ H}; that is, the orbits of elements in H under the action of Γ. We will write

π : H → Y (Γ) (1.8) for the natural surjection given by τ 7→ Γτ. For brevity we will denote Y (Γ(N)) as Y (N) and we will define Y (1) = SL2(Z)\H. Similarly, we denote Y (Γ0(N)) and Y (Γ1(N)) as Y0(N) and Y1(N) respectively. Since these topological spaces are abstract and hard to visualize, one can give a fundamental domain for each modular curve. The fundamental domain for Y (1) is given by the following proposition. Proposition 1.18. A fundamental domain of Y (1) is the space

M = {z = x+iy : −1/2 ≤ x < 1/2, |z| > 1}∪{z ∈ H : |z| = 1, −1/2 ≤ Re(z) ≤ 0}.

Proof. See [DS05] Lemma 2.3.1 and Lemma 2.3.2. Chapter 1. Introduction 8

1.5 Elliptic points

One of the goals of this thesis is to identify important points on modular curves. A type of point that we are interested in finding is called an elliptic point. These are defined as points in the upper half-plane with nontrivial stabilizers. Since −I and I act trivially on the upper half-plane, we refer to {±I} as the trivial stabilizer.

Definition 1.19. Given a congruence subgroup Γ, a point z ∈ H is an elliptic point of Γ if there exists γ ∈ Γ, γ 6= ±I such that γz = z.

The following lemma will be used to find the cusps of Y (1):

Lemma 1.20. Let γ ∈ SL2(Z).  0 1  (a) If γ has order 3 then γ is conjugate to −1 −1 in SL2(Z).  0 −1  (b) If γ has order 4 then γ is conjugate to 1 0 in SL2(Z).  0 −1  (c) If γ has order 6 then γ is conjugate to 1 1 in SL2(Z). Proof. See [DS05] Proposition 2.3.3

For the first example we will find the elliptic points of Y (1).

Theorem 1.21. The modular curve Y (1) = SL2(Z)\H has two elliptic points, the orbits of i and ρ = e2πi/3.

 a b  Proof. We want to find points τ ∈ H such that there exists γ = c d ∈ SL2(Z), γ 6= ±I for which γτ = τ. We need to satisfy the condition aτ + b = τ. cτ + d Therefore we want to solve

cτ 2 + (d − a)τ − b = 0.

If c = 0 and a = d then b = 0 which forces a = d = ±1. Therefore γ = ±I. Recall that τ is an elliptic point when γτ = τ for some γ 6= ±I. If c = 0 and a 6= d, then τ = b/(d − a). We assumed that b, d, a ∈ Z which implies that τ ∈ Q. This contradicts that τ is in H. Therefore c 6= 0. The discriminant is

(a − d)2 + 4bc.

Since τ ∈ H then there is a nonzero imaginary part so the discriminant is negative and must satisfy (a − d)2 + 4bc < 0. Rearranging these terms we get

(a − d)2 + 4bc = a2 − 2ad + d2 + 4bc = (a + d)2 − 4ad + 4bc = (a + d)2 − 4 since ad − bc = 1. Chapter 1. Introduction 9

Therefore (a + d)2 < 4 and

|a + d| < 2.

The characteristic of γ is

(a − x)(d − x) − bc = x2 − (a + d)x + 1.

Our condition for a + d implies that the characteristic polynomial is either x2 + 1, x2 + x + 1, or x2 − x + 1. Notice that x2 + x + 1 and x2 − x + 1 are both factors of x6 − 1 so γ must satisfy the equation γ6 − I = 0 or γ6 = I. Therefore in these cases γ has order 6, 3, or 2. Similarly x2 + 1 is a factor of x4 − 1 and so by the same argument in this case γ satisfies γ4 = I and so γ has order 4 or 2. Therefore γ has order 2, 3, 4, or 6. If γ2 = I then γ2 − I = 0 and so the minimal polynomial p(t) of γ is either t + 1, t − 1, or t2 − 1. If the minimal polynomial is t2 − 1 then the determinant of γ is −1, which is a contradiction. If the minimal polynomial of γ is t + 1 then γ = −I and if the minimal polynomial of γ is t − 1 then γ = I. Hence if γ2 = I then γ = ±I and so γ must have order 3, 4 or 6.  0 1   0 −1  By Lemma 1.20 we know that γ is conjugate to either −1 −1 , 1 0 or  0 −1  1 1 .  0 1  We can now compute the fixed elements of the above matrices. For −1 −1  0 1  we want to find z ∈ H such that −1 −1 z = z so we want to solve the equation 1 = z or −z − 1 z2 + z + 1 = 0. √ Solving this quadratic gives the solutions z = (−1 ± i 3)/2, and since√ we are finding points in the upper half-plane we get one solution, z = (−1 + i 3)/2.  0 −1  Now we find the point fixed by the matrix 1 0 : −1 = z so z z2 + 1 = 0.

This gives z = i.  0 −1   0 −1  −1 If γ has order 4 then it is conjugate to 1 0 and so it has the form α 1 0 α . If a point z is fixed by γ then

0 −1 α α−1(z) = z so 1 0 0 −1 α−1(z) = α−1(z). 1 0 Chapter 1. Introduction 10

 0 −1  −1 We found that i is the fixed element of 1 0 and so α (z) = i. Therefore z = α(i) which shows that the fixed point of γ is α(i). A similar argument can be used to show that if γ has order 3 then it fixes some point in the orbit of ρ. For the case where γ has order six, notice that if γ is in the stabilizer of some point z, then so is γ2. Since γ2 has order three, then the set of points fixed by γ is a subset of the elements from the order three case, which we have already solved. The points i and ρ are distinct since they both lie in our fundamental do- main for Y (1) and therefore we get the elliptic points of Y (1) as the orbits of i and ρ.

1.6 Modular curve as a Riemann surface

We will now introduce the concept of a compact Riemann surface. A Riemann surface looks like the complex plane locally but globally can have a different topology.

Definition 1.22. A Riemann surface is a topological surface X that satisfies the following properties:

1. X is Hausdorff : if τ1, τ2 ∈ H, there exist respective neighborhoods U1 and U2 of τ1 and τ2 such that if τ1 6= τ2 then π(U1) ∩ π(U2) = ∅. S 2. has a complex structure, which is a covering X = i∈I Uα by open subsets along with homeomorphisms zi : Ui → Vi where Vi is a connected open −1 subset of C. Additionally we require that Ui ∩Uj 6= ∅ implies that zj ◦zi : zi(Ui∩Uj) → zj(Ui∩Uj) is holomorphic. If Ui is a neighborhood of a point x ∈ X, we define a chart for x to be a pair (Ui, zi).

The details of the proof that Y (Γ) is a Riemann surface can be found in [DS05, Chapter 2].

1.7 Degree

1.7.1 Properties of maps between compact Riemann surfaces We would like to define the notion of the degree of maps between Riemann surfaces. Specifically we will be looking at maps between modular curves. For the purposes of this thesis we will be using a topologically motivated definition of degree and ramification degree.

Theorem 1.23. Let g : X → Y be an analytic, nonconstant function between con- nected compact Riemann surfaces X and Y . Given x ∈ X with y = g(x) there exists an mx such that for every neighborhood V of x there is a neighborhood U ⊂ V of x such that every point, except possibly y, in g(U) has mx preimages in U.

Proof. See the Open-Mapping Theorem [Mir95, Proposition 3.8] and [Mir95, Proposition 4.1]. Chapter 1. Introduction 11

Definition 1.24. Given an analytic, nonconstant function f : X → Y between connected compact Riemann surfaces X and Y , the integer mx from the above theorem is called the ramification degree of x.

Definition 1.25. Let f : X → Y be an analytic, nonconstant function between connected compact Riemann surfaces X and Y . Choose some y ∈ Y . Then the degree of f at y, denoted degy(f), is the number of preimages of a point y counting ramification degree. More explicitly we have X degy(f) = mx. x∈f −1(y)

Proposition 1.26. The degree of f at y is independent of y.

Proof. [Mir95, Proposition 4.8]

Due to Proposition 1.26, we can denote the degree deg(f).

Definition 1.27. Let f : X → Y be an analytic, nonconstant function between connected compact Riemann surfaces X and Y . A point x ∈ X is a ramification point if mx ≥ 2.

Lemma 1.28. Let f : X → Y be an analytic, nonconstant function between connected compact Riemann surfaces X and Y . The number of ramification points is finite.

Proof. By [Mir95, Lemma 4.4] the number of ramifications points is discrete and since X is a compact the number of ramifications points is finite.

The degree of the maps between modular curves can be found explicitly.

Theorem 1.29. Let Γ1 and Γ2 be congruence subgroups of SL2(Z) with Γ1 ⊂ Γ2. We define the map f : Y (Γ1) → Y (Γ2) given by Γ1τ 7→ Γ2τ. The degree of f is given by ( [Γ :Γ ]/2 if − I ∈ Γ and − I 6∈ Γ deg(f) = 2 1 2 1 [Γ2 :Γ1] otherwise. S Proof. Let {±I}Γ2 = j{±I}Γ1γj be a coset decomposition. Since Γ1 and Γ2 are finite index subgroups of SL2(Z) then [{±I}Γ2 : {±I}Γ1] is finite. Observe that the number of cosets is [{±I}Γ2 : {±I}Γ1] and that

( [Γ2 :Γ1]/2 if − I ∈ Γ2 and − I 6∈ Γ1 [{±I}Γ2 : {±I}Γ1] = [Γ2 :Γ1] otherwise.

Therefore it suffices to show that the number of preimages for most points in the codomain is [{±I}Γ2 : {±I}Γ1]. −1 Let Γ2τ be an orbit in Y (Γ2). Then f (Γ2τ) = {Γ1γjτ} for all j. We claim that if τ is not an elliptic point for Γ2 then Γ1γiτ 6= Γ1γjτ for all i 6= j. We prove the contrapositive, so assume that Γ1γiτ = Γ1γjτ. Then −1 −1 αγiτ = γjτ for some α ∈ Γ1. This implies that γj αγiτ = τ with γj αγi ∈ Γ2. Chapter 1. Introduction 12

−1 −1 We show that γj αγi 6= ±I. If γj αγi = ±I then αγi = ±γj which is a −1 contradiction since the cosets {±I}Γ1γj are disjoint. Therefore γj αγi 6= ±I and so τ is an elliptic point, which proves the claim. We showed that if τ is not an elliptic point for Γ2 then Γ1γiτ 6= Γ1γjτ for all i 6= j. Therefore the number of preimages of Γ2τ equals [{±I}Γ2 : {±I}Γ1] which proves the theorem.

1.8 Genus

Another important invariant of Riemann surfaces is the genus. In this thesis we will be using the topological definition of genus.

Proposition 1.30. Every compact and connected Riemann surface is homeo- morphic to a sphere with g handles, where g is a nonnegative integer.

Proof. See [Mir95, Proposition 1.23].

Definition 1.31. The integer g from Proposition 1.30 is called the genus.

In order to compute the genus we will use the following formula

Theorem 1.32. (Riemann-Hurwitz Formula) Let f : X → Y be a nonconstant map between connected, compact Riemann surfaces. Let gX be the genus of X, gY the genus of Y , d the degree of f, and mx be the ramification degree of x ∈ X. The following formula holds: X 2gX − 2 = d(2gY − 2) + (mx − 1). x∈X Proof. [Mir95, Theorem 4.11] P For Theorem 1.32 note that the sum x∈X (mx − 1) is finite since the num- ber of ramifications points is finite. The goal of this thesis is to tabulate important properties of various mod- ular curves. These include elliptic points and cusps with their ramification degrees as well as the genera of different modular curves. 13

Chapter 2

Cusps

2.1 Definitions

In Section 1.6 we discussed the fact that Y (Γ) is a Riemann surface, but many results pertaining to Riemann surfaces require that they be compact. Since Y (Γ) is not compact then we will make the surface compact by adding a "point at infinity" as well as points in the orbit of infinity under the action of SL2(Z). ? Denote the set Q = Q∪{∞}. We would like to define the action of SL2(Z) ? m  a b  on Q . For n ∈ Q and c d ∈ SL2(Z), define the action by

a b m am + bn = . c d n cm + dn

 a b  If cm + dn = 0 then c d (m/n) is the point ∞.  a b  Define the action of c d ∈ SL2(Z) on ∞ as a b a ∞ = . c d c 1 We can represent the point ∞ by 0 . Definition 2.1. Given a congruence subgroup Γ, the cusps of Γ are the orbits of ? Q under the action of Γ. In general, we add cusps to the modular curve Y (Γ) and the result will ∗ ? be a compact Riemann surface, which we will denote X(Γ). Let H = H ∪ Q . Then we define ∗ X(Γ) = Γ\H . ∗ We define X(1) to be the modular curve SL2(Z)\H . We will use similar notation to Y (Γ) and denote X(Γ(N)) as X(N), and X(Γ0(N)) and X(Γ1(N)) as X0(N) and X1(N) respectively. The modular curve X(Γ) is a Riemann surface; see [DS05, Chapter 2]. For any k define the set

? Vk = {z ∈ H : Im(z) > k}.

These sets will serve as a basis for the neighborhoods of ∞. Theorem 2.2. X(1) is compact. Proof. Recall the fundamental domain for Y (1) which is given by Chapter 2. Cusps 14

M = {z = x+iy : −1/2 ≤ x < 1/2, |z| > 1}∪{z ∈ H : |z| = 1, −1/2 ≤ Re(z) ≤ 0}.

Let M denote the closure of M. The topology of X(1) is the quotient ? topology from H and so it is sufficient to show that M = M∪{∞} is compact. ? Consider an open covering of {Ui} of M . There is an element of the open ? cover that contains ∞, say U0. Clearly M − U0 is compact since it is closed and bounded and so there is a finite subcover {U1,...,Un} that covers this set. ? ? The set {U0,U1,...,Un} is a finite covering of M and so M is compact.

2.2 Computing cusps of X(1)

? Recall that cusps are defined as the orbits of points in Q under the action of a congruence subgroup Γ. Therefore we will refer to a cusp as an element of ? Γ\Q . We would like to give a system of representatives for the cusps of X(N), X1(N), and X0(N). In order to compute a system of representatives we need some conditions ? for when points in Q represent the same cusp. The following theorem will be useful in giving explicit equivalence conditions. 0 ? 0 0 0 Proposition 2.3. Let s, s ∈ Q be given by s = (a/c) and s = (a /c ) with gcd(a, c) = gcd(a0, c0) = 1. Then

a0 a SL ( )s0 = SL ( )s ⇐⇒ = ±γ 2 Z 2 Z c0 c for some γ ∈ SL2(Z). Proof. See [DS05, Lemma 3.8.1]

? Recall that cusps are elements of Γ\Q . Denote the set

2 ? a 2 (Z ) = {[ c ] ∈ Z : gcd(a, c) = 1}.

2 ? a  a0  Define an equivalence relation ∼ on (Z ) where [ c ] ∼ c0 if and only if Γ(a/c) = Γ(a0/c0). Define the map

2 ? ? ϕ :(Z ) / ∼→ Γ\Q a by [ c ] 7→ Γ(a/c). Proposition 2.4. The map ϕ is a bijection.

 a   a0  2 ? a  a0  Proof. To show that ϕ is well-defined let c , c0 ∈ (Z ) with [ c ] ∼ c0 . 0 0 a  a0  By our hypothesis, Γ(a/c) = Γ(a /c ) and therefore ϕ([ c ]) = ϕ c0 . So ϕ is well-defined. ? ? To show that ϕ is surjective, first let Γ(a/c) ∈ Γ\Q . Since a/c ∈ Q , we can a 2 ? assume that the fraction is reduced which implies that [ c ] ∈ (Z ) . Therefore a ϕ([ c ]) = Γ(a/c) which proves the map is surjective. Chapter 2. Cusps 15

a  a0  To show that ϕ is injective assume that ϕ([ c ]) = ϕ( c0 ), which implies 0 0 0 0 a  a0  that Γ(a/c) = Γ(a /c ). By our hypothesis, if Γ(a/c) = Γ(a /c ) then [ c ] ∼ c0 , and so ϕ is injective.

2 ? Thus the map ϕ gives a correspondence between elements of (Z ) / ∼ and cusps of X(Γ). We will develop methods for computing a system of represen- 2 ? tatives for (Z ) / ∼ which will then give representatives for the cusps of X(Γ). ? We will now determine the cusps of X(1); that is, the elements of SL2(Z)\Q . 2 ? a  a0  Define an equivalence relation ∼ on (Z ) by [ c ] ∼ c0 if and only if a  a0  [ c ] = ±γ c0 for some γ ∈ SL2(Z). So applying Proposition 2.4,

2 ? ? ϕ :(Z ) / ∼→ SL2(Z)\Q is a bijection. The following proposition shows that there is one element of 2 ? ? (Z ) / ∼ and hence one cusp for SL2(Z)\Q . Proposition 2.5. There is one cusp in X(1). 2 ? a 2 ? Proof. We want to show that there is one element in (Z ) / ∼. Let [ c ] ∈ (Z ) , so a and c are relatively prime. There exist x, y ∈ Z such that ax + cy = 1. We compute

 x y a  ax + cy  = −c a c −ac + ac 1 = . 0

 x y  We check that ax − (c)(−y) = 1 so −c a ∈ SL2(Z). a 1 a Therefore [ c ] ∼ [ 0 ] for any [ c ] so there is one cusp in X(1).

2.3 Computing cusps of X(Γ)

We have similar results for cusps of X(N),X1(N) and X0(N). 0 0 ? 0 0 Proposition 2.6. Let (a/c), (a /c ) be in Q with gcd(a, c) = gcd(a , c ) = 1. Then a0 a a0 a = γ for some γ ∈ Γ(N) ⇐⇒ ≡ (mod N). c0 c c0 c

Proof. The forward direction is obvious. a 1 To show the reverse direction, we first assume [ c ] = [ 0 ], which implies that a0 ≡ 1 (mod N) and c0 ≡ 0 (mod N). This implies that there exists an 0 0 0 integer ` such that ` = (1 − a )/N. Since gcd(a , c ) = 1 there exist x, y ∈ Z such that a0x − c0y = 1. Then

a0x` − c0y` = ` = (1 − a0)/N. Chapter 2. Cusps 16

h 0 i δ = x` β = y` a0δ − c0β = (1 − a0)/N γ = a βN If we let and then . Let c0 1+δN . By assumption a0 ≡ 1 (mod N) and c0 ≡ 0 (mod N). Therefore γ ∈ Γ(N) and  a0  1 c0 = γ [ 0 ]. a  a0  Consider the general case. Assume that [ c ] ≡ c0 (mod N) with gcd(a, c) = gcd(a0, c0) = 1. By the Euclidean algorithm we can choose b, d such that γ =  a b  1 a c d is in SL2(Z). Observe that γ [ 0 ] = [ c ], so we get

−1  a0  −1 a γ c0 ≡ γ [ c ] (mod N) 1 = [ 0 ] .

−1  a0  1 Hence γ c0 ≡ [ 0 ] (mod N). By the first case, there exists α ∈ Γ(N) −1  a0  1 such that αγ c0 = [ 0 ]. Multiplying by γ on both sides gives

−1  a0  1 γαγ c0 = γ [ 0 ] a = [ c ] .

−1  a0  a Therefore γαγ c0 = [ c ]. Let ϕ : SL2(Z) → SL2(Z/NZ) be the homomorphism given by reduction mod N. The kernel is Γ(N). Therefore Γ(N) is a normal subgroup of SL2(Z). Therefore γαγ−1 ∈ Γ(N), which completes the proof.

0 0 0 ? 0 0 Theorem 2.7. Let s = (a/c), s = (a /c ) be in Q with gcd(a, c) = gcd(a , c ) = 1. Then

0 a  a0  Γ(N)s = Γ(N)s ⇐⇒ [ c ] ≡ ± c0 (mod N), (2.1)

h 0 i Γ (N)s = Γ (N)s0 ⇐⇒ [ a ] ≡ ± a +jc (mod N), 1 1 c c0 (2.2)

0 ya h a0+jc i Γ0(N)s = Γ0(N)s ⇐⇒ [ c ] ≡ yc0 (mod N) (2.3) for some j, y ∈ Z with gcd(y, N) = 1. Proof. [DS05, Proposition 3.8.3] The remainder of the chapter will give algorithms for computing cusps for the modular curves X(N),X1(N), and X0(N). Theorem 2.7 gives us a corre- 2 ? spondence between cusps and equivalence classes of (Z ) . The next section will make this correspondence more explicit. We will need the following lemma in the next section. Lemma 2.8. Let a, c ∈ {0,...,N − 1} have images a,¯ c¯ in Z/nZ. Then a¯  a0  2 0 0 [ c¯ ] has a lift c0 ∈ Z with gcd(a , c ) = 1 if and only if gcd(a, c, N) = 1. Proof. [DS05, Lemma 3.8.4]

2.3.1 Computing cusps of X(N) Recall 2 ? a 2 (Z ) = {[ c ] ∈ Z : gcd(a, c) = 1}. Chapter 2. Cusps 17

2 ? Define an equivalence relation ∼1 on (Z ) by

a  a0  a  a0  [ c ] ∼1 c0 ⇐⇒ [ c ] ≡ ± c0 (mod N). By equation (2.1)

a  a0  0 0 [ c ] ∼1 c0 ⇐⇒ Γ(N)(a/c) = Γ(N)(a /c ) and so Proposition 2.4 proves that

2 ? ? ϕ :(Z ) / ∼1−→ Γ(N)\Q 2 ? is a bijection. Therefore the elements of (Z ) / ∼1 correspond to cusps of X(N). This section will give an algorithm for finding a system of representatives for 2 ? the equivalence classes of (Z ) . For a,¯ c¯ ∈ Z/NZ, define gcd(¯a, c¯) = gcd(x, y) where x, y are the smallest positive representatives of a,¯ c¯ respectively. We will use the following lemma. Lemma 2.9. Fix an integer N and let a, c be integers with gcd(a, c) = 1. Let a0, c0 be integers such that a ≡ a0 (mod N) and c ≡ c0 (mod N). Then gcd(a0, c0,N) = 1. Proof. The congruences a ≡ a0 (mod N) and c ≡ c0 (mod N) imply that a = 0 0 a + Nk1 and c = c + Nk2 for some integers k1, k2. Therefore gcd(a, c) = 1 0 0 0 0 implies that gcd(a + Nk1, c + Nk2) = 1 and so gcd(a , c ,N) = 1.

Let a,¯ c¯ be elements of Z/NZ. Define the set

2 ? a¯ ((Z/NZ) ) = {[ c¯ ] :a, ¯ c¯ ∈ (Z/NZ), gcd(¯a, c,¯ N) = 1}. Now we define the map

2 ? 2 ? ψ : ((Z/NZ) ) −→ (Z ) / ∼1 a¯ a a a¯ 2 ? by ψ ([ c¯ ]) = [ c ] where [ c ] is a lift of [ c¯ ] to (Z ) . This lift is guaranteed to exist by the condition gcd(¯a, c,¯ N) = 1. Theorem 2.10. The map ψ is independent of the choice of lift and surjective.

 a0   a00  Proof. To show that ψ is independent of the choice of lift, let c0 and c00 be a¯ 2 ? 0 00 0 00 lifts of [ c¯ ] to (Z ) . Since a ≡ a (mod N) and c ≡ c (mod N), we have that  a0   a00  c0 ∼1 c00 . Therefore the map ψ is independent of the choice of lift from 2 ? 2 ? ((Z/NZ) ) to (Z ) . a 2 ? Next we show ψ is surjective. Let [ c ] ∈ (Z ) and a,¯ c¯ be the images of a a¯ a, c in Z/NZ. Since [ c ] is a lift of [ c¯ ] and ψ is independent of the choice of a¯ a a 2 ? a¯ lift, we have that ψ ([ c¯ ]) = [ c ]. By Lemma 2.9, [ c ] ∈ (Z ) implies that [ c¯ ] ∈ 2 ? ((Z/NZ) ) and so ψ is surjective. The following lemma will be used to prove the algorithm.

a¯  x¯  2 ? a¯  x¯  Lemma 2.11. Let [ c¯ ] and y¯ be elements of ((Z/NZ) ) and [ c¯ ] 6= y¯ . Then a¯  x¯  a¯  x¯  ψ ([ c¯ ]) = ψ y¯ if and only if [ c¯ ] = − y¯ . Chapter 2. Cusps 18

a¯  x¯  Proof. We will first show the forward direction. Assume that ψ ([ c¯ ]) = ψ y¯ . a¯  x¯  a x Let ψ ([ c¯ ]) and ψ y¯ be the respective classes of [ c ] and [ y ]. a x a x By our assumptions, [ c ] ∼1 [ y ] and so [ c ] ≡ ± [ y ] (mod N). This implies a¯  x¯  a¯  x¯  a¯  x¯  that [ c¯ ] = ± y¯ . We assumed that [ c¯ ] 6= y¯ , and hence [ c¯ ] = − y¯ . a¯  x¯  a¯ To prove the reverse direction assume that [ c¯ ] = − y¯ . Let ψ ([ c¯ ]) and  x¯  a x a¯  x¯  a x ψ y¯ be the respective classes of [ c ] and [ y ]. If [ c¯ ] = − y¯ then [ c ] ≡ − [ y ] a¯  x¯  (mod N) and so ψ ([ c¯ ]) = ψ y¯ . This proves the lemma.

2.3.2 Algorithm for cusps of X(N) The algorithm for computing cusps of X(N) is as follows:

a 1. For integers a, c ∈ {0,...,N − 1}, list out all elements [ c ] such that gcd(a, c, N) = 1.

a x a x 2. Compute sets {[ c ] , [ y ]} where [ c ] ≡ − [ y ] (mod N) from elements found in Step 1.

3. Choose one element from each set computed in Step 2 and output these elements as a list.

2 ? Theorem 2.12. The above algorithm outputs a set of elements in ((Z/NZ) ) that lift 2 ? to a system of representatives for the equivalence classes of (Z ) with respect to ∼1. a¯  x¯  2 ? Proof. By Lemma 2.11, [ c¯ ] and y¯ in ((Z/NZ) ) lift to the same equivalence 2 ? a¯  x¯  class in (Z ) if and only if [ c¯ ] = ± y¯ . a¯  x¯  a¯  x¯  Therefore choosing one element from each pair [ c¯ ] , y¯ with [ c¯ ] = − y¯ , 2 ? gives a subset of ((Z/NZ) ) that lifts to a system of representatives for the 2 ? equivalence classes of (Z ) with respect to ∼1.

Corollary 2.13. The algorithm outputs a set that is in bijection with the cusps of X(N).

Proof. By Theorem 2.12 the algorithm outputs a set that is in bijection with 2 ? (Z ) / ∼1. By Proposition 2.4, the map

2 ? ? ϕ :(Z ) / ∼1→ Γ\Q

a where ϕ ([ c ]) = Γ(a/c), is a bijection. Hence the algorithm outputs a set in bijection with the cusps of X(N).

We will give an example of the implementation of the algorithm.

Example 2.14. Find the cusps of X(4). The list from Step 1 is given by: Chapter 2. Cusps 19

1 3 , , 0 0 0 1 2 3 , , , , 1 1 1 1 1 3 , , 2 2 0 1 2 3 , , , . 3 3 3 3

Next we compute the sets for Step 2. This gives us the following sets:

0 0 1 3 1 3 1 3 1 3 2 2 {[ 1 ] , [ 3 ]}, {[ 0 ] , [ 0 ]}, {[ 1 ] , [ 3 ]}, {[ 3 ] , [ 1 ]}, {[ 2 ] , [ 2 ]}, {[ 1 ] , [ 3 ]}.

Now we choose the first element from each set and this gives the system of representatives for the cusps of X(4) as

0 1 1 1 1 2 , , , , , . 1 0 1 3 2 1

Lemma 2.15. Let N be a positive integer and d a divisor of N. Let c ∈ {1,...,N− 1}. There are φ(N/d) values of c such that gcd(c, N) = 1. Proof. Let P (M) = {x : 1 ≤ x ≤ M − 1, gcd(M, x) = 1}. It suffices to show that the map

P (N/d) → {c : gcd(c, N) = d} defined by x 7→ xd is a bijection. If gcd(x, N/d) = 1 then gcd(xd, N) = d and so the map is well-defined. Consider the map

{c : gcd(c, N) = d} → P (N/d) given by y 7→ y/d. If gcd(y, N) = d then gcd(y/d, N/d) = 1 and so this map is well-defined. Clearly these maps are inverses of each other and so they are bijections. The order of P (N/d) is φ(N/d) and the claim follows.

Theorem 2.16. For N > 2, the modular curve X(N) has

1 X (N/d)φ(d)φ(N/d) 2 d|N cusps. Additionally X(2) has 3 cusps. Proof. We will count the number of representatives by counting at each step in the algorithm given in this section. Fix c ∈ {0,...,N − 1} and define gcd(c, N) = d. We want to find the number of elements a ∈ {0,...,N − 1} Chapter 2. Cusps 20 such that gcd(a, d) = 1. The number of such values of a is (N/d)φ(d). By Lemma 2.15 there are φ(N/d) values of c such that gcd(c, N) = d. Hence there P are d|N (N/d)φ(d)φ(N/d) elements in the list after Step 1. To count the possible system of representatives after Step 2 we observe that we pair possible representatives by equivalence by −I. The only elements h i h i h i [ a ] ≡ − [ a ] (mod N) N/2 , 0 , N/2 N that satisfy c c are N/2 N/2 and 0 . Clearly if is odd there are no such elements. If N > 2 is even, then none of those elements satisfy the gcd condition and therefore do not appear in Step 1. Therefore for N > 2 we halve the number of representatives found in Step 1. In total X(N) has 1 X (N/d)φ(d)φ(N/d) 2 d|N cusps for N > 2. If N = 2 the system of representatives is

0 1 1 , , . 1 0 1

Clearly none of these are equivalent by −I and so this gives a system of representatives of the cusps of X(2) which proves the theorem.

2.3.3 Algorithm in Sage Sage is an open source mathematical software package that is based on Python. The following program implements the algorithm from the previous section. def cusplist(N): """List all [a,b] where gcd(a,b,N)=1.""" l = [] for b in range(N): d= gcd(b,N) for a in range(N): if gcd(d,a)==1: l.append([a,b]) return l def cusps(N): """Output cusps of X(N).

Creates list of [a,b] from cusplist and remove [c,d] if [a,b]=[-c,-d].""" l = cusplist(N) k=[] while len(l)>0: a = l.pop(0) k.append(a) Chapter 2. Cusps 21

for i in range(0,len(l)): if (a[0]+l[i][0])%N==0 and (a[1]+l[i][1])%N ,→ ==0: l.pop(i) break return k

2.3.4 Computing cusps of X1(N)

We will now give an algorithm for finding the cusps of X1(N). Define an equiv- 2 ? alence relation ∼2 on (Z ) by

h 0 i [ a ] ∼  a0  ⇐⇒ [ a ] ≡ ± a +jc (mod N) c 2 c0 c c0 for some j ∈ Z. By equation (2.2)

a  a0  0 0 [ c ] ∼2 c0 ⇐⇒ Γ1(N)(a/c) = Γ1(N)(a /c ) and so Proposition 2.4 proves that the map

2 ? ? ϕ :(Z ) / ∼2 −→ Γ1(N)\Q . is a bijection. Recall we define the set

2 ? a¯ ((Z/NZ) ) = {[ c¯ ] :a, ¯ c¯ ∈ (Z/NZ), gcd(¯a, c,¯ N) = 1}. Now define the map,

2 ? 2 ? ψ : ((Z/NZ) ) −→ (Z ) / ∼2

a¯  a0   a0  a¯ 2 ? by ψ ([ c¯ ]) = c0 where c0 is a lift of [ c¯ ] to (Z ) . Theorem 2.17. The map ψ is independent of the choice of lift and is well-defined and surjective. The proof of Theorem 2.17 is analogous to the proof of Theorem 2.10. Now 2 ? a  a0  define an equivalence relation '2 on (Z ) where two elements [ c ] , c0 are h 0 i [ a ] ≡ a +jc (mod N) j ∈ equivalent if and only if c c0 for some Z. Observe that this is the equivalence ∼2 without the negation. For the following lemmas when a,¯ c¯ ∈ Z/NZ take a, c to be the smallest nonnegative representative of a,¯ c¯, which will be in the set {0,...,N − 1}. a¯ x¯ 2 ? Lemma 2.18. Fix c¯ ∈ (Z/NZ). Let [ c¯ ] and [ c¯ ] be elements of ((Z/NZ) ) with  a0   x0  2 ? lifts c0 and c0 in (Z ) . Let d = gcd(c, N). Then a ≡ x (mod d) if and only  a0   x0  if c0 '2 c0 . Proof. First we prove the forward direction. Let gcd(c, N) = d and a ≡ x (mod d). There exist integers `, k, and w such that

c` + Nk = d (2.4) x − a = dw. (2.5) Chapter 2. Cusps 22

If we multiply through equation (2.4) by w, then we get c(`w) + N(kw) = dw. Plugging into equation (2.5) and rearranging gives

c(w`) + N(wk) = x − a a + c(w`) = x − N(wk) ≡ x (mod N).

Observe that a0 ≡ a (mod N), x ≡ x0 (mod N), and c ≡ c0 (mod N). Since a + c(w`) ≡ x (mod N), we have that

a0 + c0(w`) x0 ≡ (mod N). c0 c0

 a0   x0  Therefore c0 '2 c0 which proves the forward direction.  a0   x0  Now to prove the reverse direction assume that c0 '2 c0 . Therefore

a0 + c0j x0 ≡ (mod N) c0 c0 for some integer j. Thus a0 + c0j ≡ x0 (mod N) and so a + cj ≡ x (mod N). Hence a+cj ≡ x (mod d) since d | N. Therefore a ≡ x (mod N) since d | c.

2.3.5 Algorithm for cusps of X1(N) 2 ? We will now give an algorithm for finding a set of elements in ((Z/NZ) ) that 2 ? lift to a set of representatives for the equivalence classes of (Z ) / ∼2. Define P (n) = {x : 0 ≤ x < n, gcd(x, n) = 1}.

1. For each c ∈ {0, 1,...,N − 1}, define d = gcd(c, N). For each a ∈ P (d), a add [ c ] to the list.

a 2. Choose an element [ c ] from the list in Step 1 and let d = gcd(c, N). If x possible, find a different element [ y ] from the list in Step 1 such that y ≡ a x −c (mod N) and x ≡ −a (mod d). Create the set {[ c ] , [ y ]} if there is x a such an element [ y ], otherwise create the set {[ c ]}.

3. Create a list choosing one element from each set found in Step 2. Output this list.

2 ? Theorem 2.19. The above algorithm gives a set of elements in ((Z/NZ) ) that lift to 2 ? a set of representatives for the equivalence classes of (Z ) with respect to ∼2. 2 ? Proof. We claim that Step 1 gives a set of ((Z/NZ) ) that lifts to a system of 2 ? representatives for equivalence classes of (Z ) with respect to '2. Recall that h 0 i [ a ] ,  a0  ∈ ( 2)?/ ' [ a ] ≡ a +jc two elements c c0 Z 2 are equivalent if and only if c c0 a  a0  (mod N) for some j ∈ Z. Observe that [ c ] and c0 are equivalent if and only 0 a¯  x¯  2 ? if c ≡ c (mod N). Therefore [ c¯ ] and y¯ lift to different elements of (Z ) / ∼2 if and only if c¯ 6=y ¯. Chapter 2. Cusps 23

a¯ Fix c ∈ {0,...,N − 1} and define d = gcd(c, N). By Lemma 2.18, [ c¯ ] and x¯ 2 ? [ c¯ ] lift to the same in (Z ) if and only if a ≡ x (mod d) for a and x relatively prime to d. Observe that if a is not relatively prime to d then a¯ 2 ? [ c¯ ] does not have a lift to (Z ) . a¯ Therefore for each c ∈ {0,...,N − 1} choosing all elements [ c¯ ] where a ∈ {0, . . . , d − 1} and gcd(a, d) = 1 gives a set that lifts to a system of repre- 2 ? sentatives of equivalence classes of (Z ) with respect to '2. This set is given by Step 1 of the algorithm. Observe that the equivalence '2 is a refinement of the equivalence ∼2. If 2 ? we take a system of representatives of equivalence classes of (Z ) with respect to '2 and apply the equivalence by −I then this gives a system of representa- tives with respect to ∼2. a Choose an element [ c ] from Step 1 and let d = gcd(c, N). A different x  −a  element [ y ] from Step 1 is in the same orbit as −c if x ≡ −a (mod d) and y ≡ a x −c (mod N). The set {[ c ] , [ y ]} gives elements from Step 1 that are equivalent by −I. Choosing one such element from each set gives a set that reduces to a 2 ? system of representatives of (Z ) / ∼2.

Corollary 2.20. The algorithm outputs a set that is in bijection with the cusps of X1(N).

Proof. By Theorem 2.17 the algorithm outputs a set that is in bijection with 2 ? (Z ) / ∼2. By Proposition 2.4, the map

2 ? ? ϕ :(Z ) / ∼2→ Γ\Q ,

a where ϕ ([ c ]) = Γ(a/c), is a bijection. Hence the algorithm outputs a set in bijection with the cusps of X1(N).

Example 2.21. We will find the cusps of X1(10). First choose all c ∈ {0,...,N − 1} such that gcd(c, 10) = 1. This is the set {1, 3, 7, 9}. Applying Step 1 of the algorithm, we add the following elements to our list: 0 0 0 0 , , , . 1 3 7 9

Let c = 0. Then gcd(0, 10) = 10. Observe that P (10) = {1, 3, 7, 9}. Apply- ing Step 1, we add the following elements to our list:

1 3 7 9 . 0 0 0 0

If c = 2, then gcd(2, 10) = 2. Since P (2) = {1}, we add the following element to our list: 1 . 2 Chapter 2. Cusps 24

If c = 4 then gcd(4, 10) = 2. Since P (2) = {1}, we add the following element to our list: 1 . 4

If b = 5 then gcd(5, 10) = 5, and repeating the previous steps we add the following elements to our list:

1 2 3 4 . 5 5 5 5

For both c = 6 and c = 8, gcd(c, 10) = 2, so we add the following element to our list: 1 1 , . 6 8

We have now completed the list of elements for Step 1. For Step 2, we a x directly compute the sets {[ c ] , [ y ]} with y ≡ −c (mod N) and x ≡ −a (mod d) where d = gcd(c, N):

1 9 3 7 0 0 , , , 0 0 0 0 1 9 1 1 0 0 1 1 , , , 2 8 3 7 4 6 1 4 2 3 , , . 5 5 5 5

We can now choose one representative from each of the sets above. There- fore the following list gives representatives of the cusps of X1(10):

1 3 0 1 0 1 1 2 , , , , , , , . 0 0 1 2 3 4 5 5

Theorem 2.22. For N = 3,N ≥ 5, the number of cusps in X1(N) is

1 X φ(d)φ(N/d) 2 d|N

Proof. We will count the number of cusps that are found for each step in the algorithm. Given N, fix c ∈ {0,...,N − 1} and let d = gcd(c, N). We would a 2 like to count the elements [ c ] ∈ (Z/NZ) from Step 1. For each c, there are φ(d) possible representatives. For each divisor d of N we want to determine how many 0 ≤ c < N there are for which gcd(c, N) = d. We claim that the appropriate number is φ(N/d). If c satisfies gcd(c, N) = d it must be of the form `d for some ` ∈ {1, 2, . . . , N/d}. Then c = `d satisfies gcd(c, N) = d exactly when gcd(`, N/d) = 1. The number of choices of ` that Chapter 2. Cusps 25 satisfy gcd(`, N/d) = 1 is φ(N/d). For each divisor d of N, there are φ(d)φ(N/d) possible representatives from Step 1. a x In Step 2 we create the set {[ c ] , [ y ]} where x ≡ −a (mod d) and y ≡ −c (mod N). If this set is a singleton then c is equal to 0 or N/2. If c = 0 then a = N/2. Therefore if N is odd there are no singletons in Step 2. Assume that N is even.  0  2 ? Since N/2 is in ((Z/NZ) ) only when N = 2 we cannot have that c = 0.  0  If c = N/2 then a ≡ −a (mod N/2) and so a = 0 or N/4. The element N/2 is 2 ?  N/4  2 ? in ((Z/NZ) ) only when N = 2 and N/2 is in ((Z/NZ) ) only when N = 4. Therefore there are only singletons in Step 2 when N = 2 and N = 4. Thus we can halve the number of elements found in Step 1 which gives the total number of cusps as

1 X φ(d)φ(N/d). 2 d|N

2.3.6 Algorithm in Sage The following program implements the algorithm from the previous section. def cusps1(N): """List all cusps of X_1(N).

Creates list of [a,b] with a coprime to gcd(b,N), ,→ then removes [c,d] from cusplist if there is a [a,b] with [a,b]=[-c,-d].""" l = [] for b in range(N): d = gcd(b,N) for k in range(0,d): if gcd(k,d)==1: l.append([k,b]) r=[] while len(l)>0: a = l.pop(0) r.append(a) d=gcd(a[1],N) for i in range(len(l)): if (a[0]+l[i][0])%d==0 and (a[1]+l[i][1])%N ,→ ==0: l.pop(i) break return r Chapter 2. Cusps 26

Using the algorithm defined in this section we can compute the cusps of the modular curves X1(N) for 2 ≤ N ≤ 12. The computations are given in Table 2.1.

N Cusps of X1(N)

1 1 0

1 0 2 , 0 1

1 0 3 , 0 1

1 0 1 4 , , 0 1 2

1  2 0 0 5 , , , 0 0 1 2

1  0 1 1 6 , , , 0 1 2 3

0  0  0 1 2 3  7 , , , , , 1 2 3 0 0 0

0  0  1 3 1 1  8 , , , , , 1 3 0 0 2 4

1  2  4  0 0 1 2  0  9 , , , , , , , 0 0 0 1 2 3 3 4

1  3  0  1 0 1 1  2  10 , , , , , , , 0 0 1 2 3 4 5 5

1  2  3  4  5 0 0 0  0  0  11 , , , , , , , , , 0 0 0 0 0 1 2 3 4 5

1  5  0  1  1 2 1 3  0  1  12 , , , , , , , , , 0 0 1 2 3 3 4 4 5 6

TABLE 2.1: Cusps of X1(N) Chapter 2. Cusps 27

2.3.7 Computing cusps of X0(N)

We will proceed as in the previous sections. Define an equivalence relation ∼3 2 ? on (Z ) by

a  a0  ya h a0+jc i [ c ] ∼3 c0 ⇐⇒ [ c ] ≡ yc0 (mod N) for some integers j, y with gcd(y, N) = 1. By equation (2.2) of Theorem 2.7,

a  a0  0 0 [ c ] ∼3 c0 ⇐⇒ Γ0(N)(a/c) = Γ0(N)(a /c ) and so Proposition 2.4 proves that the map

2 ? ? ϕ :(Z ) / ∼3 −→ Γ0(N)\Q is a bijection. Recall that if a,¯ c¯ are elements of Z/NZ then we define the set

2 ? a¯ ((Z/NZ) ) = {[ c¯ ] :a, ¯ c¯ ∈ (Z/NZ), gcd(¯a, c,¯ N) = 1}. Now define the map

2 ? 2 ? ψ : ((Z/NZ) ) −→ (Z ) / ∼3

a¯  a0   a0  a¯ 2 ? 0 0 by ψ ([ c¯ ]) = c0 where c0 is a lift of [ c¯ ] to (Z ) with gcd(a , c ) = 1. Theorem 2.23. The map ψ is independent of the choice of lift and is well-defined and surjective. The proof of this Theorem is analogous to the proof of Theorem 2.10. As in the previous section when a,¯ c,¯ d¯ ∈ Z/NZ take a, c, d to be the smallest non- negative representative of a,¯ c,¯ d¯, which will be in the set {0,...,N − 1}.

Theorem 2.24. There are two cusps in X0(p) for p prime. 2 ? Proof. Let p be prime. We will show that there are two elements in (Z ) / ∼3.  0¯   1¯  More specifically we will show that 1¯ and 0¯ lift to a system of representa- 2 ? tives for equivalence classes of (Z ) with respect to ∼3.  a¯  2 ? ¯ We will first show that for a¯ ∈ Z/NZ, if 0¯ ∈ ((Z/NZ) ) and a¯ 6= 0 then  a¯   1¯  ψ 0¯ = ψ 0¯ . Since a is nonzero, then it has an inverse mod p. Choose an integer y such that ya ≡ 1 (mod p). Observe that

ya 1 + j(0) ≡ (mod p). p y(0)

a 1 Therefore [ p ] ∼3 [ 0 ]. Recall that ψ is independent of the choice of lift. a 1  a¯   1¯  2 ?  a¯  Since [ p ] , [ 0 ] are respective lifts of 0¯ and 0¯ to (Z ) , we have that ψ 0¯ =  1¯  ψ 0¯ . ¯ a¯ Now assume that c¯ 6= 0. We will show that for all a¯ ∈ Z/pZ, ψ ([ c¯ ]) =  0¯  ψ 1¯ . Since c is nonzero, gcd(c, p) = 1. Choose an integer y such that y ≡ c (mod p) and so gcd(y, p) = 1. Choose an integer j such that j ≡ a (mod p). Chapter 2. Cusps 28

Then we have the congruence

ya 0 + jc ≡ (mod p). c y · 1

 a0  0  a0  a¯ Therefore c0 ∼3 [ 1 ] where c0 is a lift of [ c¯ ]. Recall that ψ is indepen-  a0  0 a¯  0¯  dent of the choice of lift. Since c0 , [ 1 ] are respective lifts of [ c¯ ] and 1¯ to 2 ? a¯  0¯  (Z ) , we have that ψ ([ c¯ ]) = ψ 1¯ . 1 0 1 0 Lastly we need to show that [ 0 ] 6∼3 [ 1 ]. By Theorem 2.7, if [ 0 ] ∼3 [ 1 ] then

y(1) 0 + j(0) ≡ (mod p) 0 y(1) for integers y, j with gcd(y, p) = 1. Since gcd(y, p) = 1 then y 6≡ 0 (mod p) 1 0 which contradicts that y(1) ≡ 0 + j(0) (mod p). Therefore [ 0 ] 6∼3 [ 1 ]. Since the  1¯   0¯  map ψ is independent of lift, ψ 0¯ 6= ψ 1¯ .  1¯   0¯  Therefore X0(p) has two cusps and they are represented by 0¯ and 1¯ .

+ Lemma 2.25. Let c ∈ Z and d a divisor of a positive integer N. Then

gcd(c, N) = d ⇐⇒ cy ≡ d (mod N) (2.6) for some y ∈ Z with gcd(y, N) = 1. Proof. For the reverse direction let cy ≡ d (mod N), so there exists an integer k such that cy + Nk = d. Therefore gcd(c, N) | d. Since gcd(y, N) = 1 there is y0 such that yy0 ≡ 1 (mod N). Observe that c ≡ dy0 (mod N) and so c = dy0 + Nm for some integer m. Hence gcd(d, N) | c. Recall that d is a divisor of N so gcd(d, N) = d and so d | c and d | N. Therefore d | gcd(c, N) and so gcd(c, N) = d. To show the forward direction assume gcd(c, N) = d. Hence d | c and so c = d` with gcd(`, N/d) = 1. Since gcd(`, N/d) = 1, ` has an inverse mod N/d, call it y. Observe that

cy = d`y ≡ d (mod N).

This proves the forward direction.

a¯ 2 ? ¯ Lemma 2.26. Let [ c¯ ] ∈ ((Z/NZ) ) . There exist d, x¯ ∈ Z/NZ with d a divisor a¯  x¯  of N such that ψ ([ c¯ ]) = ψ d¯ . a¯ 2 ? a¯ a Proof. To prove the lemma let [ c¯ ] ∈ ((Z/NZ) ) and ψ ([ c¯ ]) be the class of [ c ]. Observe that gcd(a, c, N) = 1 and define d = gcd(c, N). By Lemma 2.25, there is y ∈ Z with gcd(y, N) = 1 such that

cy ≡ d (mod N). Chapter 2. Cusps 29

Choose x such that yx ≡ a (mod N). Then we have that

 a  yx ≡ (mod N). yc d

 x¯  2 ? We need to check that d¯ ∈ ((Z/NZ) ) . Since yx ≡ a (mod N), we have that gcd(x, N) | a. Recall that gcd(a, c, N) = 1 and gcd(c, N) = d, and so gcd(a, d) = 1. Therefore gcd(x, d, N) | gcd(a, d) = 1 which implies that  x¯  2 ? gcd(x, d, N) = 1. Hence d¯ is in ((Z/NZ) ) . a¯  x¯  By Theorem 2.7, ψ ([ c¯ ]) = ψ d¯ .

Lemma 2.27. The divisor d in Lemma 2.26 is unique.

Proof. Given a positive integer N, let d1 and d2 be divisors of N. It suffices to h i h i ψ a¯1 = ψ a¯2 d = d show that d¯1 d¯2 implies that 1 2.  a1  Observe that if gcd(a1, d1,N) = 1 then gcd(a1, d1) = 1. Therefore d and h i h i 1  a2  a¯1 a¯2 ( 2)? d2 are lifts of d¯1 and d¯2 to Z . h i h i ψ a¯1 = ψ a¯2 If d¯1 d¯2 then

ya  a + jd  1 ≡ 2 1 (mod N) d1 yd2 for some integers j, y with gcd(y, N) = 1. By Lemma 2.25 if d1 ≡ yd2 (mod N) then gcd(d1,N) = d2. Clearly gcd(d1,N) = d1 and so d1 = d2 which proves the lemma.

Given d | N, let ` = gcd(d, N/d).

 a¯1   a¯2  Lemma 2.28. Suppose d | N and ψ d¯ = ψ d¯ . Then a1 ≡ a2 (mod `).

 a¯1   a¯2  Proof. If ψ d¯ = ψ d¯ then

ya  a + jd 1 ≡ 2 (mod N) d yd for some integers j, y with gcd(y, N) = 1. The bottom congruence yd ≡ d (mod N) implies that y ≡ 1 (mod N/d) and so y = 1+(N/d)z for some integer z. Plugging into the top congruence gives

(1 + (N/d)z)a1 ≡ a2 + jd (mod N).

Simplifying we get

a1 ≡ a2 − (N/d)za1 + jd (mod N).

Hence a1 ≡ a2 (mod `) since ` | N/d and ` | d. Chapter 2. Cusps 30

Lemma 2.29. Suppose d | N and a1 ≡ a2 (mod `). Also suppose gcd(a2, d) = 1. Then there exist integers y, j with y ≡ 1 (mod N/d) such that ya2 + jd ≡ a1 (mod N).

Proof. Since ` = gcd(d, N/d), there exist integers u, v such that ` = ud + v(N/d). Also if a1 ≡ a2 (mod `) then a1 = a2 + w` for some integer w. Plugging in ` gives

a1 = w(ud + v(N/d)) + a2

= (wu)d + (wv)(N/d) + a2

= jd + (wv)(N/d) + a2 letting j = wu.

Therefore it suffices to find y so that

(wv)(N/d) + a2 ≡ ya2 (mod N). (2.7)

Let y = 1 + z(N/d). Plugging this in to (2.7) gives

(wv)(N/d) + a2 ≡ (1 + z(N/d))a2 (mod N)

= a2 + a2z(N/d).

Canceling a2 we get

(wv)(N/d) ≡ a2z(N/d) (mod N).

This congruence holds if (wv) ≡ a2z (mod d), and since gcd(a2, d) = 1 −1 −1 we can solve for z so that z ≡ (wv)a2 (mod d). Thus if we let z ≡ (wv)a2 (mod d) then y = 1 + z(N/d) is an integer and congruence (2.7) holds. This proves the lemma.

Lemma 2.30. Suppose d | N and a1 ≡ a2 (mod `). Also suppose gcd(a1, d) = gcd(a2, d) = 1. There exist y, j with gcd(y, N) = 1 such that ya2 + jd ≡ a1 (mod N) and y ≡ 1 (mod N/d).

Proof. By Lemma 2.29 there are integers y, j such that

ya2 + jd ≡ a1 (mod N). (2.8)

Therefore ya2 ≡ a1 (mod d). Recall that a1, a2 are invertible (mod d) so gcd(y, d) = 1. Lemma 2.29 gives that gcd(y, N/d) = 1. Therefore gcd(y, N) = 1, and this proves the lemma.

 a¯1   a¯2  2 ? Lemma 2.31. Suppose d | N and d¯ , d¯ ∈ ((Z/NZ) ) . If a1 ≡ a2 (mod `)  a¯1   a¯2  then ψ d¯ = ψ d¯ .

a1 a2  a¯1   a¯2  2 ? Proof. Let [ d ] and [ d ] be lifts of d¯ and d¯ in (Z ) respectively. If a1 ≡ a2 (mod `) then by Lemma 2.30 there are integers y, j with gcd(y, N) = 1 such that

ya1 ≡ a2 − jd (mod N). Chapter 2. Cusps 31

Additionally y ≡ 1 (mod N/d) so d ≡ yd (mod N). Thus we have that

ya  a − jd 1 ≡ 2 (mod N). d yd

a1 a2  a¯1   a¯2  Therefore [ d ] ∼3 [ d ] and so ψ d¯ = ψ d¯ .

 a¯  2 ? Lemma 2.32. Suppose d¯ ∈ ((Z/NZ) ) with d | N. Then gcd(a, `) = 1.  a¯  2 ? Proof. Notice that gcd(a, d, N) = 1 since d¯ is in ((Z/NZ) ) . Therefore gcd(a, d) = 1 which implies that gcd(a, `) = 1 since ` | d.

Lemma 2.33. Let a, d, N ∈ Z such that gcd(a, d) = 1 and N 6= 0. Let

P = {primes p : p | N and p - a} and Y n = p. p∈P Then gcd(a + nd, N) = 1. Proof. Suppose p is a prime such that p | a + nd and p | N. Case 1: suppose p | a. Thus p | nd and so p divides n or d. If p | n then p ∈ P and so p - a which is a contradiction. If p | d then p | gcd(a, d) which is a contradiction since gcd(a, d) = 1. Case 2: suppose p - a. Therefore p ∈ P and so p | nd. This is a contradiction since p | a + nd. Thus there are no such primes, which proves the lemma.

Lemma 2.34. Suppose d | N. Given an integer a1 with gcd(a1, `) = 1, there  a¯2  2 ? exists a2 ≡ a1 (mod `) such that d¯ ∈ ((Z/NZ) ) .

Proof. Since gcd(a1, `, N) = 1, by Lemma 2.33 there is an integer n such that a1 + `n is relatively prime to N. Let a2 = a1 + `n. Therefore gcd(a2, d, N) = 1  a¯2  2 ? and so d¯ ∈ ((Z/NZ) ) .

2.3.8 Algorithm for cusps of X0(N) We will use the following algorithm to determine the system of representatives 2 ? for the elements of (Z ) / ∼3. Define the set P (n) = {x : 0 ≤ x < n, gcd(x, n) = 1}.

1. For each divisor d of N, define ` = gcd(d, N/d). For every a ∈ P (`) add a [ d ] to the list. a 2. For each elements [ d ] from the list created in Step 1, if gcd(a, d, N) 6= 1  a+`  a then replace with d . Repeat adding ` until the resulting [ d ] satisfies gcd(a, d, N) = 1.

We will prove that the algorithm gives the cusps of X0(N). Chapter 2. Cusps 32

2 ? Theorem 2.35. The above algorithm gives a set of elements in ((Z/NZ) ) that lift to 2 ? a set of representatives for the equivalence classes of (Z ) with respect to ∼3. a¯ 2 ? ¯ Proof. By Lemma 2.26, for any element [ c¯ ] in ((Z/NZ) ) , there is x,¯ d ∈ Z/NZ a¯  x¯  with d a divisor of N such that ψ ([ c¯ ]) = ψ d¯ . By Lemma 2.27 this di- 2 ? visor is unique. Thus to choose elements of ((Z/NZ) ) that lift to a set of 2 ? representatives it suffices to give a condition for a¯1, a¯2 ∈ ((Z/NZ) ) so that  a¯1   a¯2  ψ d¯ = ψ d¯ .  a¯1   a¯2  2 ? Suppose d | N and d¯ , d¯ ∈ ((Z/NZ) ) . By Lemma 2.28 and Lemma  a¯1   a¯2  2.31, a1 ≡ a2 (mod `) if and only if ψ d¯ = ψ d¯ . By Lemma 2.32, a1 and a2 must be relatively prime to `. Therefore for each divisor d of N, the 2 ?  a¯  elements of ((Z/NZ) ) that lift to a set of representatives are given by d¯ where gcd(a, `) = 1. To give a list of all such element that lift to a set of representatives, for each  a¯   a¯  2 ? divisor d of N add to the list d¯ for each a ∈ P (`). If d¯ 6∈ ((Z/NZ) ) , by  x¯  2 ? Lemma 2.34 there is an integer n with x = a + `n such that d¯ ∈ ((Z/NZ) ) . Thus Step 2 of the algorithm terminates and this proves the theorem.

Corollary 2.36. The algorithm outputs a set that is in bijection with the cusps of X0(N).

Proof. By Theorem 2.23 the algorithm outputs a set that is in bijection with 2 ? (Z ) / ∼3. By Proposition 2.4, the map

2 ? ? ϕ :(Z ) / ∼3→ Γ0\Q

a where ϕ ([ c ]) = Γ0(a/c), is a bijection. Hence the algorithm outputs a set in bijection with the cusps of X0(N).

Theorem 2.37. The number of cusps of X0(N) is X φ(gcd(d, N/d)). d|N

Proof. From our algorithm we can count the number of cusps. For each divi- sor d of N, we add an element for each x ∈ P (gcd(d, N/d)). Since there are φ(gcd(d, N/d)) elements in P (gcd(d, N/d)) the number of cusps of X0(N) is X φ(gcd(d, N/d)). d|N

We will now implement the algorithm to determine the cusps of X0(4)

Example 2.38. Compute the cusps of X0(4). The divisors of 4 are 1, 2, 4. First let d = 1, then ` = gcd(1, 4) = 1. Therefore 0 1 add [ 1 ] to the list. Let d = 2, and so ` = gcd(2, 2) = 2. Hence we can add [ 2 ]. 1 Lastly let d = 4, so ` = gcd(4, 1) = 1. Hence we can add [ 4 ] to the list. Chapter 2. Cusps 33

Our final list is 0 1 1 , , . 1 2 4

We check that gcd(0, 1, 4) = gcd(1, 2, 4) = gcd(1, 4, 4) = 1 and so this list gives a system of representatives for the cusps of X0(4).

2.3.9 Algorithm in Sage

We will give the Sage code to implement the algorithm for cusps in X0(N). def div(N): """Output list of positive integers that divide N.""" l=[] for i in range(1,N+1): if N%i==0: l.append(i) return l def tot(N): """Output list of integers less than N coprime to N. ,→ """ l=[] for i in range(N): if gcd(i,N)==1: l.append(i) return l def lift2(x,d1,d2,N): """Output x+d1 if gcd(x,d2,N)!=1.""" while true: e=gcd(x,d2) if gcd(e,N)==1: return x else: x = x +d1 def cusps0(N): """Output cusps of X_0(N).

Create a list of pairs [a,d] with d a divisor of N and a is relatively prime to gcd(d,N/d).""" l=[] k = div(N) for i in k: d=gcd(i,N/i) g =tot(d) for m in g: Chapter 2. Cusps 34

l.append([lift2(m,d,i,N),i]) return l Using the algorithm defined in this section we can compute the cusps of the modular curves X0(N) for 2 ≤ N ≤ 12. The computations are given in Table 2.2.

N Cusps of X0(N)

1 1 0

0 1  2 , 1 2

0 1  3 , 1 3

0 1 1 4 , , 1 2 4

0 1  5 , 1 5

0 1 1  1  6 , , , 1 2 3 6

0 1  7 , 1 7

0 1 1  1  8 , , , 1 2 4 8

0 1 2  1  9 , , , 1 3 3 9

0  1 1  1  10 , , , 1 2 5 10

0  1  11 , 1 11

0  1  1 1 1 1  12 , , , , , 1 2 3 4 6 12

TABLE 2.2: Cusps of X0(N) 35

Chapter 3

Elliptic Points

3.1 Definitions

Recall the definition of an elliptic point:

Definition 3.1. Given a congruence subgroup Γ, a point z ∈ H is an elliptic point of Γ if there exists γ ∈ Γ, γ =6 ±I such that γz = z. Let π be as in (1.8). The corresponding π(z) ∈ X(Γ) is similarly called an elliptic point.

We have shown that X(1) has two elliptic points, the orbits of i and ρ. We would like to give a method for finding the elliptic points of X(N),X1(N) and X0(N). Recall that if z is an elliptic point of Γ then the order of the stabilizer is either order 3,4 or 6. The order of the quotient of the stabilizer by {±I} we call the period of z. If −I is not in Γ, we first multiply Γ by {±I} and then take the quotient. Additionally define the period of π(z) ∈ X(Γ) to be the period of z. The period of an elliptic point is either 2 or 3.

3.2 Elliptic points of X(N)

Theorem 3.2. For N > 1 the elliptic curve X(N) has no elliptic points.

Proof. Observe that an elliptic point of X(N) has period 2 or 3. First assume τ ∈ H is an elliptic point of Γ(N) with period 2. Then there  a b  is some γ = c d ∈ Γ(N) of order 4 such that γτ = τ. By Lemma 1.20, γ is  0 −1  conjugate to 1 0 . Notice that a ≡ d ≡ 1 (mod N) and c ≡ d ≡ 0 (mod N) since γ ∈ Γ(N). Conjugate matrices have the same trace and so a = −d. Substituting into the congruence gives

1 ≡ −1 (mod N), which implies that N = 2. We have the condition that −a2 − bc = 1 since a = −d and det(γ) = 1. Also a is odd since a ≡ 1 (mod 2) and so a = 2` + 1 for some ` ∈ Z. Therefore −4`2 − 4` − 1 − bc = 1 which simplifies to

−4`2 − 4` − bc = 2. (3.1) Chapter 3. Elliptic Points 36

We know that 2 | b and 2 | c since b ≡ 0 (mod 2) and c ≡ 0 (mod 2), and therefore 4 | bc. Hence 4 divides the left hand side of (3.1). Thus 4 - 2 which gives a contradiction and so there is no elliptic point of Γ(N) with period 2. We will now show that X(N) has no elliptic points of period 3. Assume that τ ∈ H is an elliptic point of Γ(N) with period 3. Therefore there is γ =  a b   0 1  c d ∈ Γ(N) such that γτ = τ where γ is conjugate to −1 −1 by Lemma 1.20. Conjugate matrices have the same trace so a + d = −1 and so (−a − 1)a − bc = 1. Therefore −a2 −a−bc = 1. Substituting a ≡ 1 (mod N), b ≡ 0 (mod N) and c ≡ 0 (mod N) we get

−2 ≡ 1 (mod N) and so N = 3. We had that −a2 − a − bc = 1 and since a ≡ 1 (mod 3) then a = 3` + 1 for some `. By substituting we get

1 = −(3` + 1)2 − (3` + 1) − bc = −(9`2 + 6` + 1) − (3` + 1) − bc = −9`2 − 9` − bc − 2.

Therefore 1 = −9`2 − 9` − bc − 2 and adding 2 to both sides we get

3 = −9`2 − 9` − bc.

Since 3 | b and 3 | c, 9 divides the right hand side of the above equation, but clearly 9 does not divide the left hand side. This gives a contradiction and proves that X(N) does not contain any elliptic points.

3.3 Elliptic points of X1(N)

We will now find the elliptic points for X1(N).

Theorem 3.3. There are no elliptic points in X1(N) for N > 3.

Proof. We will prove that if X1(N) has an elliptic point with period 2 then N = 2 and if X1(N) has an elliptic point of period 3, then N = 3. This implies that if X1(N) has elliptic points then N ≤ 3, which proves the theorem. Case 1: Assume X1(N) has an elliptic point of period 2. Let τ ∈ H be an  a b  elliptic point of Γ1(N) with period 2, so there is γ = c d ∈ Γ1(N) such that  0 −1  γτ = τ where γ is conjugate to 1 0 by Lemma 1.20.  0 −1  Since γ is conjugate to 1 0 , their traces are the same and therefore a+d = 0. Additionally, a ≡ d ≡ 1 (mod N) since γ ∈ Γ1(N). Substituting gives

2 ≡ 0 (mod N).

This implies that N = 2. Therefore if X1(N) has an elliptic point of period 2 then N = 2. Case 2: Assume X1(N) has an elliptic point with period 3. Let τ ∈ H be an  a b  elliptic point of Γ1(N) with period 3, so there is γ = c d ∈ Γ1(N) such that  0 1  γτ = τ where γ is conjugate to −1 −1 by Lemma 1.20. Conjugate matrices Chapter 3. Elliptic Points 37 have the same trace so a + d = −1. Additionally, a ≡ d ≡ 1 (mod N). Plugging in the congruences to a + d = −1 gives

2 ≡ −1 (mod N).

This implies that N = 3. Hence if X1(N) has an elliptic point of period 3 then N = 3.

Both X1(2) and X1(3) may contain elliptic points. We will now explicitly find the elliptic points for these modular curves. We will use Γ to denote either Γ1(N) or Γ0(N). The set Γ is a finite in- dex subgroup of SL2(Z) and we can represent the latter group as the union of disjoint right cosets

d [ SL2(Z) = Γγj (3.2) j=1 where the γj are called the coset representatives. From elementary group theory we know that the cosets form a partition of the set SL2(Z). Sd Lemma 3.4. Let SL2(Z) = j=1 Γγj be a coset decomposition of SL2(Z). Each elliptic point of Γ of period 2 is in the orbit of at least one of γ1(i), γ2(i), . . . , γd(i). Each elliptic point of Γ with period 3 is in the orbit of at least one of γ1(ρ), γ2(ρ), . . . , γd(ρ).  0 −1  −1 The stabilizer of γj(i) in SL2(Z) is the subgroup generated by γj 1 0 γj  0 −1  −1 and the stabilizer of γj(ρ) in SL2(Z) is the subgroup generated by γj 1 1 γj .

Proof. Let τ ∈ H be an elliptic point of Γ. The period of τ is either 2 or 3. Assume that τ has period 2. Therefore τ is some point in the SL2(Z)-orbit of i and so τ = γ(i) for some γ ∈ SL2(Z). The element γ is only in one right coset of (3.2), say Γγk. Therefore γ = αγk for some α ∈ Γ. Hence αγk(i) = γ(i) and so γk(i) and τ = γ(i) are in the same Γ-orbit. Since τ was an arbitrary elliptic point with period 2, this holds for any elliptic point of Γ with period 2. Repeating the above argument for an elliptic point τ ∈ H of Γ with period 3 gives that τ = γ(ρ) is in the same Γ-orbit as one of γ1(ρ), γ2(ρ), . . . , γd(ρ) in Xi(N). This proves the first statement. Now we will give the stabilizers of γj(i) and γj(ρ). Let β be in the stabilizer of γj(i), so βγj(i) = γj(i). Therefore

−1 γj βγj(i) = (i).

 0 −1  −1  0 −1 n We have shown that the stabilizer of i is h 1 0 i and so γj βγj = 1 0  0 −1 n −1 for some integer n. Therefore β = γj 1 0 γj . This proves that the stabilizer  0 −1  −1 of γj(i) is a subset of the group generated by γj 1 0 γj .  0 −1 n −1 To show the reverse inclusion let γj 1 0 γj be an element of the group  0 −1  −1 generated by γj 1 0 γj . We can see that Chapter 3. Elliptic Points 38

 0 −1 n −1  0 −1 n γj 1 0 γj (γj(i)) = γj 1 0 (i)

= γj(i).

 0 −1 n −1 Therefore γj 1 0 γj is in the stabilizer of γj(i). This proves that the  0 −1  −1 stabilizer of γj(i) is the subgroup generated by γj 1 0 γj . Repeating the above argument gives that the stabilizer of γj(ρ) is the sub-  0 −1  −1 group generated by γj 1 1 γj . This proves the second statement. Sd Corollary 3.5. Let SL2(Z) = j=1 Γγj be a coset decomposition of SL2(Z).  0 −1  −1  0 −1  −1 γk 1 0 γk is in Γ if and only if γk(i) is an elliptic point of Γ and ±γk 1 1 γk is in Γ if and only if γk(ρ) is an elliptic point of Γ.  0 −1  −1 To give all elliptic points of Γ it suffices to check if γk 1 0 γk ∈ Γ and  0 −1  −1 γk 1 1 γk ∈ Γ for each coset representative γk.  0 −1  −1 Proof. By Lemma 3.4, the stabilizer of γk(i) is generated by γk 1 0 γk and  0 −1  −1 so if γk 1 0 γk ∈ Γ then γk(i) is an elliptic point of Γ. Similarly γk(ρ) is an  0 −1  −1 elliptic point of Γ if ±γk 1 1 γk ∈ Γ.

We have shown that only X1(2) and X1(3) contain elliptic points. The fol- lowing theorems will gives the respective elliptic points of these two modular curves.

1 1 Theorem 3.6. The elliptic point of X1(2) is the orbit of τ = 2 + 2 i.

Proof. We showed that if X1(2) has an elliptic point τ, then the stabilizer of τ has order 2. The coset representatives of Γ1(2) are given by

1 0 0 −1 1 0 , , . 0 1 1 0 1 1

Theorem 4.8 gives that the index is 3. It is easy to check that these give different cosets. 1 0  0 −1  1 0 By Lemma 3.4, every elliptic point is in the orbit of one of [ 0 1 ] i, 1 0 i, [ 1 1 ] i.  0 −1  −1 If we compute γj 1 0 γj for each coset representative we get

1 0 0 −1 1 0−1 0 −1 = , 0 1 1 0 0 1 1 0 0 −1 0 −1 0 −1−1 0 −1 = , and 1 0 1 0 1 0 1 0 1 0 0 −1 1 0−1 1 −1 = . 1 1 1 0 1 1 2 −1

1 0  0 −1  1 0 −1  1 −1   0 −1  We see that [ 1 1 ] 1 0 [ 1 1 ] = 2 −1 ∈ Γ1(2) and 1 0 is not in Γ1(2). 1 0 Therefore every elliptic point of Γ1(2) is in the orbit of [ 1 1 ] i. Chapter 3. Elliptic Points 39

We compute

1 0 i i = 1 1 i + 1 i2 − i = i2 − 1 −1 − i = −2 1 1 = + i. 2 2

1 1 Hence the elliptic point of X1(2) is the orbit of τ = 2 + 2 i. √ 1 3 Theorem 3.7. The elliptic point of X1(3) is the orbit of τ = − 2 + 6 i.

Proof. We have shown that if τ is an elliptic point of Γ1(3)then τ has period 3. A set of coset representatives for Γ1(3) is given by

1 0 0 −1 1 0 0 −1 , , , . 0 1 1 0 1 1 1 2

Theorem 4.8 gives that the index [{±I}Γ(1) : {±I}Γ1(3)] is 4. It is easy to check that these give different cosets. The elliptic points of X1(3) have period 3. Therefore the elliptic points are 1 0  0 −1  1 0  0 −1  in the orbit of [ 0 1 ] ρ, 1 0 ρ, [ 1 1 ] ρ, and 1 2 ρ.  0 −1  −1 As in the previous theorem we can compute γj 1 1 γj for all coset rep- resentatives:

1 0 0 −1 1 0−1 0 −1 = , 0 1 1 1 0 1 1 1 0 −1 0 −1 0 −1−1 1 −1 = , 1 0 1 1 1 0 1 0 1 0 0 −1 1 0−1 1 −1 = , and 1 1 1 1 1 1 1 0 0 −1 0 −1 0 −1−1 −1 −1 = . 1 2 1 1 1 2 3 2

 −1 −1  We can see that only the matrix − 3 2 is in Γ1(3). Therefore all elliptic  0 −1  points are in the orbit of 1 2 ρ. We compute

0 −1 −1 ρ = . 1 2 ρ + 2 Chapter 3. Elliptic Points 40

√ −1+i 3 −1 Recall that ρ = 2 and so we can explicitly find ρ+2 . We have that −1 −1 = √ ρ + 2 −1+i 3 2 + 2 −1 = √ 3+i 3 2 −2 = √ 3 + i 3 √ −2 3 − i 3 = √ √ 3 + i 3 3 − i 3 √ −6 + i2 3 = 12√ 1 3 = − + i 2 6 √ 1 3 Therefore the elliptic point of X1(3) is the orbit of τ = − 2 + 6 i.

3.4 Elliptic points of X0(N)

We have given the elliptic points for X(N) and X1(N). We will now give an easy method for finding elliptic points of X0(p) when p is prime. We will use a similar method that was used for finding the elliptic points of Γ1(2) and Γ1(3).

 1 0   1 −1  Lemma 3.8. Let αj = j 1 for j = 0, . . . , p − 1 and α∞ = 1 0 . Then [ SL2(Z) = Γ0(p)αj j is a disjoint union.

Proof. We first would like to show that the cosets are disjoint. That is, Γ0(p)αi ∩ −1 Γ0(p)αj = ∅ if i 6= j. It suffices to show that αiαj 6∈ Γ0(p). Let i, j ∈ {0, . . . , p− −1 1}. We compute αiαj

1 0  1 0  1 0 = . i 1 −j 1 i − j 1

−1 −1 Since i 6= j, the matrix αiαj is not in Γ0(p). Now compute α∞αj

1 −1  1 0 1 + j −1 = . 1 0 −j 1 1 0

−1 Since the bottom left entry is 1, α∞αj is not in Γ0(p). Therefore the cosets are distinct. By Theorem 4.8, the index [SL2(Z):Γ0(p)] equals p + 1. Given that there are p + 1 cosets and the cosets are distinct, this proves the lemma. Chapter 3. Elliptic Points 41

Theorem 3.9. Let p be prime. The elliptic points of X0(p) with period 2 are the orbits 2 of αj(i) for 0 ≤ j ≤ p that satisfy the congruence j + 1 ≡ 0 (mod p).

Proof. Lemma 3.8 gives the coset decomposition [ SL2(Z) = Γ0(p)αj. j

 0 −1  −1 By Lemma 3.4, αj(i) is an elliptic point of Γ0(p) with period 2 if αj 1 0 αj ∈  0 −1  −1 Γ0(p). We directly compute αj 1 0 αj for all coset representatives αj. We  0 −1  −1 first compute α∞ 1 0 α∞ :

1 −1 0 −1 1 −1 1 −2 = 1 0 1 0 1 0 1 −1 which clearly is not an element of Γ0(p).  0 −1  −1 Next we compute αj 1 0 αj for j ∈ {0, . . . , p − 1}:

1 0 0 −1  1 0 0 −1  1 0 = j 1 1 0 −j 1 1 −j −j 1  j −1 = . j2 + 1 −j

 0 −1  −1 2 Therefore αj 1 0 αj ∈ Γ0(p) if and only if j + 1 ≡ 0 (mod p) and so 2 the elliptic points of Γ0(p) are αj(i) for all j that satisfy j + 1 ≡ 0 (mod p).

Theorem 3.10. Let p be prime, the elliptic points of X0(p) with period 3 are the orbits 2 of αj(ρ) for all 0 ≤ j ≤ p that satisfy the congruence j − j + 1 ≡ 0 (mod p).

Proof. By Lemma 3.4, all elliptic points in Γ0(p) with period 3 are in the orbit of −1 one of αj(ρ). Also if αjγαj ∈ Γ0(p) then αj(ρ) is an elliptic point.  0 −1  −1 We first compute α∞ 1 1 α∞ :

1 −1 0 −1 1 −1 2 −3 = . 1 0 1 1 1 0 1 −1

 0 −1  −1 Therefore α∞ 1 1 α∞ is not in Γ0(p) and so α∞(ρ) is not an elliptic point.  0 −1  −1 Next we compute αj 1 1 αj for j ∈ {0, . . . , p − 1}:

1 0 0 −1  1 0 0 −1   1 0 = j 1 1 1 −j 1 1 −j + 1 −j 1  j −1  = . j2 − j + 1 −j + 1

 0 −1  −1 2 Therefore αj 1 1 αj is in Γ0(p) if and only if j −j +1 ≡ 0 (mod p) and 2 so αj(ρ) is an elliptic point if and only if j − j + 1 ≡ 0 (mod p). Chapter 3. Elliptic Points 42

The following table gives the elliptic points of X0(N) for 1 ≤ N ≤ 13. When N is prime we can use Theorem 3.9 and Theorem 3.10 to find the ellip- tic points. When N is composite one can find coset representatives and use Corollary 3.5 to find the elliptic points.

N Elliptic points of X0(N) 1 i, ρ

1 1 2 2+ 2 i √ 1 3 3 2+ 6 i 4 None

3 12 1 5 10+ 10i, 5+ 5 i 6 None √ − 5 + 3 i, − 3 + 1√ i 7 14 14 14 14 3 8 None

9 None

3 17 1 10 10+ 10i, 50+ 50 i 11 None

12 None √ √ 5 i 8 i 7 3 19 3 13 26 + 26 , 65+ 65 , 28 + 26i, 182 + 182 i

TABLE 3.1: Elliptic points of X0(N) 43

Chapter 4

Genus and Ramification Degree

In this section we will compute the genera of various modular curves. We will also describe maps between modular curves as well as the ramification degrees of cusps and elliptic points for those maps. We will use the previous discussion of elliptic points and cusps to explicitly give the map for these points. For the remainder of the chapter let Γ1 ⊂ Γ2 be congruence subgroups and f : X(Γ1) → X(Γ2) the function given by Γ1τ 7→ Γ2τ.

4.1 Ramification degree

4.1.1 Ramification degree formula Recall the definition of ramification degree: Definition 4.1. Let g : X → Y be an analytic, nonconstant function between connected compact Riemann surfaces X and Y . Given x ∈ X with y = g(x) there exists an integer mx such that for every neighborhood V of x there is a neighborhood U ⊂ V of x such that every point, except possibly y, in g(U) has mx preimages in U. The integer mx is called the ramification degree. We will now give a method for finding the ramification degree of points ? in modular curves. Define the projection maps π1, π2 from H to X(Γ1),X(Γ2) by τ 7→ Γ1τ and τ 7→ Γ2τ respectively.

Theorem 4.2. Let f : X(Γ1) → X(Γ2) be as above. For each π1(x0) ∈ X(Γ1) the ramification degree of π1(x0) is

[{±I}StabΓ2 (x0): {±I}StabΓ1 (x0)].

Proof. The following diagram commutes:

? Id ? H H

π1 π2 f X(Γ1) X(Γ2).

? Let x0 ∈ H . By [DS05, Corollary 2.2.3], for x0 ∈ H there is a neighborhood

W of x0 such that for all γ ∈ Γ2, γ(W ) ∩ W 6= ∅ if and only if γ ∈ StabΓ2 (x0). ? T This property also hold for x0 ∈ . Define the set Ve = γ(W ). If Q γ∈StabΓ2 (x0) x0 is not a cusp then StabΓ2 (x0) is a finite set so Ve is an open set. If x0 is the Chapter 4. Genus and Ramification Degree 44

cusp at infinity then StabΓ2 (x0) is a group of translations by some integer. Let ? Vk = {z ∈ H : Im(z) > k}. For γ ∈ StabΓ2 (∞), γVk = Vk. If x0 = δ(∞) ? is a point in Q , its stabilizer is conjugate to the stabilizer of ∞. Observe if −1 δγδ ∈ StabΓ2 (x0) then

−1 δγδ (δVk) = δγVk = δVk.

Therefore Ve = δVk is a open neighborhood of x0 fixed under the action of

StabΓ2 (x0). Observe that Ve is a neighborhood of x0 and satisfies γVe ∩ Ve 6= ∅ if and only if γ ∈ StabΓ2 (x0). (If x0 is a cusp then this holds for k sufficiently large.)

This neighborhood also satisfies StabΓ2 (x0)Ve = Ve. Define the sets U = π1(Ve) and V = π2(Ve).  a b  Given A = c d ∈ SL2(Z) not equal to ±I, x ∈ C is fixed by A if and only if cx2 + (d − a)x − b = 0. The two solutions are complex conjugates and thus at most one solution is in H. Therefore there is at most one point in H fixed by A. Choose z ∈ V, z 6= π2(x0). By the uniqueness of a fixed point in H for a given matrix in SL2(Z), when x0 is not a cusp our choice of Ve guarantees that z is not an elliptic point or cusp. When x0 is a cusp choosing k to be sufficiently large ensures that Vk contains no other cusps. Since z ∈ V , there is x ∈ Ve with π2(x) = z. It suffices to show that the map

−1 ψ : {±I}StabΓ2 (x0)/{±I}StabΓ1 (x0) −→ f (z) ∩ U defined by [γ] 7→ π1(γx) is a bijection. First we will show the map is well-defined. Let [γ] = [γ0]. So γ = αγ0 for some α ∈ {±I}StabΓ1 (x0). Therefore

0 π1(γx) = π1(αγ x) 0 = π1(γ x) since α ∈ {±I}Γ1.

Also γ ∈ {±I}StabΓ2 (x0) and x ∈ Ve, so γx ∈ Ve. Therefore π1(γx) ∈ U. Additionally π2(x) = π2(γx) since γ ∈ Γ2. By the commutative diagram we can see that f(π1(γx)) = π2(γx) = z, which proves that ψ is well-defined. 0 0 Next we will show that ψ is injective. Let π1(γx) = π1(γ x) with γ, γ ∈ 0 {±I}StabΓ2 (x0). Then γx = βγ x for some β ∈ Γ1. Additionally we know that 0 β ∈ {±I}StabΓ1 (x0) since γx and γ x are elements of Ve. Additionally

γ−1βγ0x = x

−1 0 −1 0 and x is not an elliptic point or cusp of Γ2 so γ βγ = ±I. Hence γ βγ ∈

{±I}StabΓ1 (x0) and by the properties of cosets, this proves that

[γ] = [βγ0] 0 = [γ ] since β ∈ {±I}StabΓ1 (x0), which proves injectivity. Chapter 4. Genus and Ramification Degree 45

Last we will prove surjectivity. Let w ∈ f −1(z) ∩ U. Since w ∈ U, there 0 0 0 exists x ∈ Ve such that π1(x ) = w. Since f(π1(x )) = z and π2(x) = z, there 0 0 exists γ ∈ Γ2 such that x = γx. Furthermore x and x are in Ve so γ is in

StabΓ2 (x0). This proves that ψ([γ]) = π1(γx) = w. Therefore ψ is a bijection which proves the theorem.

For the function f as defined in Theorem 4.2, note that if π2(x) is not an elliptic point or a cusp then the stabilizer is trivial and so is not a ramification point.

4.1.2 Ramification degrees of elliptic points We will now give the ramification degrees for elliptic points.

? Proposition 4.3. Let x ∈ H . The ramification degree of Γ1x with respect to function f is ( |{±I}StabΓ2 (x)|/2 if x is an elliptic point of Γ2 but not an elliptic point of Γ1 1 if x is an elliptic point of both Γ1 and Γ2.

Proof. Let x be an elliptic point of Γ2 but not an elliptic point of Γ1. Recall that the order of the stabilizer of x is either 3,4 or 6. By Lemma 4.2, the ramification degree is

|{±I}StabΓ2 (x)| [{±I}StabΓ2 (x): {±I}StabΓ1 (x)] = . |{±I}StabΓ1 (x)|

Observe that x is not an elliptic point of Γ1 so |{±I}StabΓ1 (x)| = 2. There- fore the ramification degree of x equals |{±I}StabΓ2 (x)|/2.

Let x be an elliptic point of both Γ1 and Γ2. We know that |{±I}StabΓi (x)| ∈ {4, 6} and the ramification degree is an integer so

|{±I}Stab (x)| Γ2 = 1. |{±I}StabΓ1 (x)|

Notice that if x is an elliptic point of Γ1 but not an elliptic point of Γ2 then |{±I}Stab (x)| Γ2 is not an integer so this case is not possible. |{±I}StabΓ1 (x)|

4.1.3 Ramification degree of cusps We will now give the ramification degrees for cusps. Notice that for the func- tion f defined in the previous section that cusps are always mapped to cusps. 1 1 ? The stabilizer of ∞ in Γ(1) is the group {±I}h[ 0 1 ]i. Given s ∈ Q ∪ {∞}, −1 choose δ ∈ SL2(Z) such that δ∞ = s. Then δ StabΓ(s)δ is a subgroup of  1 h  −1 finite index in StabΓ(1)(∞). Therefore StabΓ(s) = δ{±I} 0 1 δ for some positive integer h.

Definition 4.4. The integer h defined above we call the width of s. Chapter 4. Genus and Ramification Degree 46

Let s ∈ Q ∪ {∞} and denote the widths of the cusp s under Γ1 and Γ2 as h1 and h2 respectively. Proposition 4.5. The ramification degree of s with respect to the function f is h1/h2. Proof. By Theorem 4.2 and the fact that index is invariant under conjugation, the ramification degree of s is

  1 h2   1 h1   {±I} 0 1 : {±I} 0 1 .

 1 h1   1 h2  Since 0 1 < 0 1 , we have that h2` = h1 for some integer `. Ob- D `E  1 h1   1 h2  serve that 0 1 = 0 1 , and so the above index is h1/h2.

To compute the width of a cusp s let δ ∈ SL2(Z) with δ∞ = s and Γ a congruence subgroup of level N. It suffices to find the smallest h such that  1 h  −1 δ 0 1 δ ∈ {±I}Γ. We will use the algorithm given in [Ste07].

a c 1. Given s = a/b, find integers c, d such that ad − bc = 1 and let δ = [ b d ]. 2. Compute the following matrix in terms of the x:

1 x ∆(x) = δ δ−1. 0 1

3. Compute when ∆(x) ∈ {±I}Γ by reducing to congruence conditions on x. One uses enumeration to find the smallest positive value of x that simultaneously satisfies the congruence conditions.

The following gives the Sage code for implementing this algorithm: def lift(a,b,N): """Lift a/b in (Z/NZ)^2 to Q^2.""" if a==0 or b==0: if a==0: x=a+N y=b if b==0: y=b+N x=a return x,y if gcd(a,b)==1: return a,b if gcd(a,b)!=1: x =a +N y =b return x,y Chapter 4. Genus and Ramification Degree 47 def width(a,b,N,k): """Compute the width of a cusp a/b.""" m,n = lift(a,b,N) x = var(’x’) d,u,v = xgcd(m,n) A = Matrix([[m,-v],[n,u]]) B = Matrix([[1,x],[0,1]]) Delta = A*B*(A^(-1)) i=1 if k==1: #width for Gamma_1(N) while true: D = Delta.substitute(x=i) if ((int(D[0,0])%N==1 and int(D[1,1])%N==1) ,→ or (int(D[0,0])%N==(-1%N) and int(D ,→ [1,1])%N==(-1%N))) and int(D[1,0])%N ,→ ==0: return i else: i=i+1 if k==0: #width for Gamma_0(N) while true: D = Delta.substitute(x=i) if int(D[1,0])%N==0: return i else: i=i+1 if k==2: #width for Gamma(N) while true: D = Delta.substitute(x=i) if int(D[0,0])%N==1 and int(D[1,1])%N==1 and ,→ int(D[1,0])%N==0 and int(D[0,1])%N==0: return i else: i=i+1

4.2 Genera of modular curves

We will now give a method for computing the genera of the modular curves. Recall from Proposition 1.30 that every Riemann surface is homeomorphic to a sphere with g handles, where g is defined to be the genus of the Riemann surface. Also recall the Riemann-Hurwitz Formula.

Theorem 4.6 (Riemann-Hurwitz Formula). Let f : X → Y be a nonconstant map between connected, compact Riemann surfaces. Let gX be the genus of X, gY the genus of Y , d the degree of f, and mx be the ramification degree of x ∈ X. The following formula holds: Chapter 4. Genus and Ramification Degree 48

X 2gX − 2 = d(2gY − 2) + (mx − 1). x∈X By analyzing the fundamental domain of X(1) given in Proposition 1.18, we can see that the genus of X(1) is 0. Using this fact as well as the fact that X(1) has one cusp and two elliptic points one can modify the Riemann- Hurwitz Formula to produce the following theorem.

Theorem 4.7. Let Γ be a finite index subgroup of Γ(1). Let n = [{±I}Γ(1) : {±I}Γ], let c be the number of cusps of Γ, and for i ∈ {2, 3}, let νi be the number of elliptic points of period i. Then n ν ν c g(X(Γ)) = 1 + − 2 − 3 − 12 4 3 2 Proof. [DS05, Theorem 3.1.1]

To use Theorem 4.7 we need to compute [{±I}Γ(1) : {±I}Γ(N)], [{±I}Γ(1) : {±I}Γ1(N)] and [{±I}Γ(1) : {±I}Γ0(N)] as well as the number of cusps and elliptic points for X(N),X1(N) and X0(N). We will give the indices but the derivation can be found in [Shi71, Page 22].

Theorem 4.8. If N ≥ 3, then Y [{±I}Γ(1) : {±I}Γ(N)] = (N 3/2) (1 − p−2) p|N 2 Y −2 [{±I}Γ(1) : {±I}Γ1(N)] = (N /2) (1 − p ) p|N Y −1 [{±I}Γ(1) : {±I}Γ0(N)] = N (1 + p ). p|N

The degrees for N = 2 are 3, 3 and 6 respectively.

Proof. [Shi71, Page 22]

Using Theorem 4.8 we give a table with the necessary indices.

N [{±I}Γ(1) : {±I}Γ(N)] [{±I}Γ(1) : {±I}Γ1(N)] [{±I}Γ(1) : {±I}Γ0(N)] 2 6 3 3 3 12 4 4 4 24 6 6 5 60 12 6 6 72 12 12 7 168 24 8 8 192 24 12 Chapter 4. Genus and Ramification Degree 49

We now would like to tabulate the number of cusps for the various mod- ular curves. Recall that 1 X # of cusps of X(N) = (N/d)φ(d)φ(N/d) 2 d|N 1 X # of cusps of X (N) = φ(d)φ(N/d) 1 2 d|N X # of cusps of X0(N) = φ(gcd(d, N/d)). d|N

The values for the number of cusps are given in the table below.

N # of cusps of X(N) # of cusps of X1(N) # of cusps of X0(N) 2 3 2 2 3 4 2 2 4 6 3 3 5 12 4 2 6 12 4 4 7 24 6 2 8 24 6 4

We showed that X(N) contains no elliptic points, and that X1(2) and X1(3) both contain one elliptic point. The number of elliptic points of X0(N) is given in the following theorem.

Theorem 4.9. The number of elliptic points in X0(N) is ( 0 if 4 | N v2 = Q   −1  p|N 1 + p otherwise where (−1/p) is ±1 if p ≡ ±1 (mod 4) and is 0 if p = 2, and ( 0 if 9 | N v3 = Q   −3  p|N 1 + p otherwise where (−3/p) is ±1 if p ≡ ±1 (mod 3) and is 0 if p = 3. Proof. [Shi71, Proposition 1.43]

The following table gives the number of elliptic points of X0(N) by the period of the elliptic point.

N v2 in X0(N) v3 in X0(N) 2 1 0 3 0 1 4 0 0 5 2 0 6 0 0 7 0 2 8 0 0 Chapter 4. Genus and Ramification Degree 50

We have now compiled all the necessary inputs. Plugging these in to the formula n ν ν c g(X(Γ)) = 1 + − 2 − 3 − , 12 4 3 2 we can compute the genera of the modular curves X(N),X1(N) and X0(N) which are given in the following table.

N g(X(N)) g(X0(N)) g(X1(N)) 2 0 0 0 3 0 0 0 4 0 0 0 5 0 0 0 6 1 0 0 7 3 0 0

4.3 Cuspidal trees

4.3.1 Degree of a map between modular curves

Recall that the degree of a map ϕ : X(Γ1) → X(Γ2) defined by Γ1τ 7→ Γ2τ is given by ( [Γ :Γ ]/2 if − I ∈ Γ and − I 6∈ Γ deg(ϕ) = 2 1 2 1 [Γ2 :Γ1] otherwise.

Since Γ(N) ⊂ Γ1(N), Γ1(N) ⊂ Γ0(N), and Γ0(N) ⊂ SL2(Z) we can define the maps

f : X(N) → X1(N)

g : X1(N) → X0(N)

h : X0(N) → X(1) where Γ(N)τ 7→ Γ1(N)τ, Γ1(N)τ 7→ Γ0(N)τ, and Γ0(N)τ 7→ SL2(Z)τ respec- tively. The degrees of these maps are given by

deg(f) = [Γ1(N) : Γ(N)] = N Y −1 deg(g) = [Γ0(N):Γ1(N)]/2 = (N/2) (1 − p ) p|N Y −1 deg(h) = [Γ(1) : Γ0(N)] = N (1 + p ). p|N

Explicit computation of the degrees are given in the following table. Chapter 4. Genus and Ramification Degree 51

N deg(f) deg(g) deg(h) 2 2 1 3 3 3 1 4 4 4 1 6 5 5 2 6 6 6 1 12 7 7 3 8 8 8 2 12

4.3.2 Cuspidal trees Definition 4.10. The cuspidal tree is the stratified weighted digraph where:

1. vertices are the set of all cusps of all modular curves,

2. there is an edge between two cusps if there exists a nontrivial map taking one cusp to another,

3. the weights of the edges are the ramification degrees, and

4. the stratification is the set of modular curves partially ordered by X(Γ1) > X(Γ2) if Γ1 ⊂ Γ2.

Observe that in this graph if there is an edge between two vertices then these two vertices are in different strata. The following are some subgraphs of the cuspidal tree. We place the sub- graph on the right side with all the cusps in the same strata on the same level and on the left side we give the strata of the cusps as well as the degree of the map between the strata.

X(2) 1/0 1/1 0/1

2 2 1 1

X1(2) 1/0 0/1

1 1 1

X0(2) 1/0 0/1

3 1 2

X(1) 1/0 Chapter 4. Genus and Ramification Degree 52

X(3) 1/0 1/1 1/2 0/1

3 3 1 1 1

X1(3) 1/0 0/1

1 1 1

X0(3) 1/0 0/1

4 1 3

X(1) 1/0

X(4) 1/0 1/2 3/1 2/1 1/1 0/1

4 4 4 1 1 1 1

X1(4) 1/0 1/2 0/1

1 1 1 1

X0(4) 1/4 1/2 1/1

6 1 1 4

X(1) 1/0

4.3.3 Sage code for creating cuspidal trees We will now give the Sage code that was used to make the necessary computa- tions for creating the cusp trees. def cong1(a,b,c,d,N): """Return true if a/b is congruent to c/d in X(\ ,→ Gamma_1(N)).""" for i in [0..N-1]: Chapter 4. Genus and Ramification Degree 53

if (a-(c+d*i)%N==0 and (b-d)%N==0) or ((a+(c+d*i) ,→ )%N==0 and (b+d)%N==0): return true return false def inv(N): """Return list of integers relatively prime to N.""" l=[] for i in [1..N-1]: if gcd(i,N)==1: l.append(i) return l def inv1(x,N): """Return the inverse of x mod N.""" for i in inv(N): if (x*i)%N==1: return i def cong2(a,b,c,d,N): """Return true if a/b = c/d in X(\Gamma_0(N)).""" for i in [0..N-1]: for j in inv(N): if (b*inv1(j,N) - d)%N==0 and (j*a + b*i-c)%N ,→ ==0: return true return false def gammaN_gamma1N(N): """Return [a,b] -> [c,d] if Gamma(N)a/b is mapped to ,→ Gamma_1(N)c/d.""" k = cusp(N) l = cusps1(N) for i in range(len(k)): for j in range(len(l)): if cong1(k[i][0],k[i][1],l[j][0],l[j][1],N)== ,→ true: w = width(k[i][0],k[i][1],N,2)/width(l[j ,→ ][0],l[j][1],N,1) print str(k[i]) + "->" + str(l[j]) + " ,→ the ramification degree is " + ,→ str(w) def gamma1N_gamma0N(N): """Return [a,b] -> [c,d] if Gamma_1(N)a/b is mapped ,→ to Gamma_0(N)c/d.""" Chapter 4. Genus and Ramification Degree 54

k = cusps1(N) l = cusps0(N) for i in range(len(k)): for j in range(len(l)): if cong2(k[i][0],k[i][1],l[j][0],l[j][1],N)== ,→ true: w = width(k[i][0],k[i][1],N,1)/width(l[j ,→ ][0],l[j][1],N,0) print str(k[i]) + "->" + str(l[j]) + " ,→ the ramification degree is " + ,→ str(w) def gamma0N_gamma1(N): """Return [a,b] -> [c,d] if Gamma_0(N)a/b is mapped ,→ to SL_2(Z)c/d.""" l = cusps0(N) for i in range(len(l)): w = width(l[i][0],l[i][1],N,0) print str(l[i])+ "->" + str([1,0]) + " the ,→ ramification degree is " + str(w) 55

Bibliography

[DS05] F. Diamond and J. Shurman. A First Course in Modular Forms. Springer, New York, 2005. [Mir95] R. Miranda. Algebraic Curves and Riemann Surfaces. Amer Mathemati- cal Society, Providence, RI, 1995. [Shi71] G. Shimura. Introduction to the Arithmetic Theory of Automorphic Func- tion. Princeton University Press, New Jersey, 1971. [Ste07] W. Stein. Modular Forms, a Computational Approach. American Mathe- matical Society, Providence, RI, 2007.