<<

arXiv:2101.02673v2 [math.NT] 9 Feb 2021 eoetesto uhitgr,fragiven a for integers, such of set the denote hoe 1.2 Theorem following. the proved fteEsnti uteto h aoino h oua curve modular the of Jacobian the of quotient Eisenstein the of method immersion formal Mazur’s erfrto refer we 1] 2] 2] 2] ek salse h olwn eut iligteco the yielding 1.3 rationals. result, Theorem the over following degrees the isogeny established cyclic Kenku of [22], resolution [20], [21], [19], nelpi curve elliptic an IsogPrimeDeg ento 1.1. Definition h v values five the fte“rp frtoa sgne”rdcstedtriainof determination the reduces isogenies” rational of IsogCyclicDeg “graph the of IsogPrimeDeg XLCTIOEISO RM EREOE QUADRATIC OVER DEGREE PRIME OF ISOGENIES EXPLICIT osdrtebs aeof case base the Consider oevr nteitouto ohsppr au xlishwcons how explains Mazur t paper, known his not to was introduction it the theorem, in this Moreover, to prior that, stressing worth is It 2010 Let K ahmtc ujc Classification. Subject nwr fDvd asnVito,adMms.Cmiigti algo this Combining Bruin-Najman, Momose. of and work Larson-Vaintrob, David, of work on Hypothesis. K Q bv e fpie o h orqartcfields quadratic four the for primes of set above fcasnme n.W eciea loih ocmueteprimes the compute over to curve algorithm elliptic an an exists describe We there one. number class of Abstract. ( √ eanme ed and field, number a be IsogCyclicDeg = ) rvdn h rtsc xmlsatrMzrs17 determina 1978 Mazur’s after examples such first the providing 5), N IsogPrimeDeg Q ( ( ( h emnto fteagrtmrle nteGnrlsdRiemann Generalised the on relies algorithm the of termination The . K Q Q san as N Mzr hoe n[30]) in 1 Theorem (Mazur, (Kenku) a vnfinite. even was ) osoigthat showing to ) ). E/K esythat say We 13 = Let sgn rm for prime isogeny K 2 hc osse a possesses which ( , . Q eaqartcfil hc snta mgnr udai field quadratic imaginary an not is which field quadratic a be 13 ( = ) Q · K za-isk n otrcnl o,w eemn the determine we Box, recently most and Ozman-Siksek, 7 ¨ = ) AIDRS BANWAIT S. BARINDER , { 13 = N 1 1. { · ≤ Q N sa is 2 5 X , ya prahwihhscm ob nw as known be to come has which approach an By . , Introduction K N 3 novn eiaesuyo h N´eron model the of study delicate a involving - oiieinteger. positive a 0 13 , ( FIELDS ylcioeydge for degree isogeny cyclic ditn a admitting N 5 ≤ 10 piay,1Y0 11.(secondary). 11G15. 11Y60, (primary), 11G05 · , n 5 and 3 )( 7 19 K , 1 Q K 11 { ∪ } rtoa ylcioeyo degree of isogeny cyclic -rational . osssol ftecsia onsfor points cuspidal the of only consists ) K n eoetesto uhpie by primes such of set the denote and , , 13 by , 3 hrb,i eiso orpapers four of series a in Thereby, . 21 , K Q 17 -rational ( , IsogCyclicDeg √ 25 , 19 7), , 27 , Q 37 ( , √ p 37 , ioey hsbuilds This -isogeny. 43 − , 5), 43 , 67 , Q ( , K 67 ( 163 √ K .If ). p , ih with rithm X − 163 o which for } 0,and 10), 0 h agrset larger the fteeexists there if infor tion ( . N } N a h set the hat . Mazur - ) ideration sprime, is N mplete We . 2 BARINDER S. BANWAIT

These values of cyclic isogeny degrees for Q were known prior to the work of Mazur, and can be explained in terms of clearly describable geometric conditions on the X0(N); see the opening paragraph of [30] for more details. For an arbitrary number field K, it is no longer necessarily true that IsogPrimeDeg(K) (and hence a fortiori IsogCyclicDeg(K)) is finite. To see this, consider an E which has complex multiplication by an order of an imaginary quadratic field L. Observe that, for any rational prime p whichO splits or ramifies in , E admits an endomorphism of degree p rational over the ring class field H of O, and O O so defines a CM point in X0(p)(H ). Thus, if K contains the Hilbert class field of an imaginary quadratic field, thenO IsogPrimeDeg(K) is infinite. Let us therefore consider a number field K which does not contain the Hilbert class field of an imaginary quadratic field. In attempting to establish finiteness of IsogPrimeDeg(K) in this case, Momose [32] carried out a systematic study of the mod-p isogeny character λ arising from considering the Galois action on the kernel of a p-isogeny, and showed (Theorem A in loc. cit.) the existence of a constant CK such that, if p>CK, then λ must fall into one of three types: “Type 1”, “Type 2”, or “Type 3”. We will recall this theorem in Section 2 below; for now we remark that, under our hypothesis on K, “Type 3” does not arise, so we exclude it from consideration for the remainder of the Introduction. Momose showed that Type 1 primes arise only finitely often under the additional hypothesis that [K : Q] 12 (Theorem 3 in loc. cit.); that Type 2 primes arise only finitely often under≤ the Generalised (Remark 8 in loc. cit.); and that Type 2 primes arise only finitely often - unconditional on GRH - if K is a quadratic field (Proposition 1 in loc. cit.). In this way, Momose was able to establish the following unconditional result. Theorem 1.4 (Momose, Theorem B in [32]). Let K be a quadratic field which is not an imaginary quadratic field of class number 1. Then IsogPrimeDeg(K) is finite. To be sure - and to quote Mazur from the introduction of [29] speaking in the context of rational points on X0(N) - the assertion of mere finiteness is not all that is wanted. The work of making Momose’s constant CK above explicit was subsequently and independently carried out by David (Th´eor`eme II in [11]), and Larson and Vaintrob (Theorem 7.9 in [27]). Both David as well as Larson and Vaintrob make the observation that, as a consequence of Merel’s resolution of the uniform boundedness conjecture for torsion orders of elliptic curves over number fields [31], Type 1 primes as above arise only finitely often; one therefore obtains the following result, written explicitly in the literature by the latter authors. Theorem 1.5 (Larson and Vaintrob, Corollary 2 in [27]). Assume the Generalised Riemann Hypothesis. For a number field K, IsogPrimeDeg(K) is finite if and only if K does not contain the Hilbert class field of an imaginary quadratic field.

An explicit expression for CK does not immediately yield an explicit upper bound on IsogPrimeDeg(K); one further needs to effectively bound Type 2 primes, which Theorem 7.9 in [27] does only up to the determination of various effectively com- putable absolute constants. Since these have not been computed, an explicit upper bound on IsogPrimeDeg(K) has not hitherto been exhibited for any K = Q. Specialise now to [K : Q] = 2. By combining the bounds of David6 with those of Larson and Vaintrob, and improving upon the process of determining an upper bound for Type 2 primes, we obtain the following. QUADRATIC ISOGENY PRIMES 3

Algorithm 1.6. Assume GRH. Then there is an algorithm which, given a quadratic field K which is not imaginary quadratic of class number 1, computes an upper bound on IsogPrimeDeg(K). Given the provenance of this bound, we henceforth refer to it as the David- Larson-Momose-Vaintrob bound for K, or DLMV(K) for short. The Sage [38] implementation of this algorithm is described in Section 6. Running it on the quadratic fields Q(√D) (not imaginary quadratic of class number one) with D 10 yields the following. | | ≤ Corollary 1.7. Assume GRH. Then for each K in Table 1.1, DLMV(K) gives a bound on the isogeny primes for K.

∆K K DLMV(K) 40 Q(√ 10) 3.20 10316 − − × 24 Q(√ 6) 2.99 10308 − − × 20 Q(√ 5) 2.58 10305 − − × 8 Q(√2) 4.06 10139 × 12 Q(√3) 1.68 10152 × 5 Q(√5) 5.65 10126 × 24 Q(√6) 9.76 10177 × 28 Q(√7) 1.08 10189 × 40 Q(√10) 2.59 10354 × Table 1.1. The David-Larson-Momose-Vaintrob bounds for quad- ratic fields Q(√D) with D 10, excluding imaginary quadratic fields of class number one.| | ≤

According to the introduction of [6], 1080 is approximately the number of atoms in the visible universe. The adjective ‘astronomical’ therefore falls somewhat short of describing the numbers in the above table. Indeed, as observed by Kamienny and Mazur in the introduction of [18], such enormous bounds, however explicit, are of small comfort when one expects IsogPrimeDeg(K) to be not much larger than IsogPrimeDeg(Q), and that in parading such bounds one risks some level of public embarrassment1. We are thus motivated to go further. Rather than merely enumerating an up- per bound for IsogPrimeDeg(K), can one instead find a finite set of primes which contains IsogPrimeDeg(K)? A careful reading of Momose’s proofs suggests that the isogeny primes arise in the support of a handful of explicitly computable integers. While this is not strictly true, it is “true enough” to the point of being able to provide an algorithm to compute such a superset for IsogPrimeDeg(K). Algorithm 1.8. Assume GRH. Then there is an algorithm which, given a quadratic field K which is not imaginary quadratic of class number 1, computes a superset for IsogPrimeDeg(K).

1especially so for us considering our bounds are several orders of magnitude larger than theirs! 4 BARINDER S. BANWAIT

More specifically, the algorithm requires one to check whether a certain element- ary condition on Legendre symbols is satisfied for all prime numbers up to the bound on Type 2 primes. While this bound is fairly sizeable (about 60 billion for K = Q(√5)), it is nowhere near the dizzying heights of DLMV(K), and more importantly it can be managed with an optimised PARI/GP [37] implementation utilising memoization and parallel threading. The implementation of this algorithm is therefore split between PARI/GP and Sage. As will be explained in Section 3, the primes p 71 will necessarily always be contained in the output; and clearly IsogPrimeDeg≤(Q) IsogPrimeDeg(K) for all K; so in the following table we show only those primes p⊆ 73 that furthermore are not contained in IsogPrimeDeg(Q). ≥ Corollary 1.9. Assume GRH. Then for each K in Table 1.2, if p is an isogeny prime for K which is strictly larger than 71 and not equal to 163, then p is listed in the column Large Possible Isogeny Primes.

∆K K Large Possible Isogeny Primes 40 Q(√ 10) None − − 24 Q(√ 6) 73, 97, 103, 149 − − 20 Q(√ 5) None − − 8 Q(√2) 73, 79 12 Q(√3) 97, 109, 157 5 Q(√5) 73, 79 24 Q(√6) 73, 97, 103, 139 28 Q(√7) 73 40 Q(√10) 79, 109, 157 Table 1.2. The large possible isogeny primes (p 73 and p / IsogPrimeDeg(Q)) for the same quadratic fields as in≥ Table 1.1. ∈

Having computed a finite list of possible isogeny primes for the Ks in the above table, we should now like to determine, for each prime p in this list, whether or not it is indeed an isogeny prime; that is, whether or not X0(p)(K) contains any noncuspidal points. Such questions are notoriously difficult; but fortunately, many of these ps we need to consider are such that the genus of X0(p) is fairly small; and most importantly, there has been in recent years much progress in the study of quadratic points on low-genus modular curves. Of particular significance are the works of Bruin and Najman [9], Ozman¨ and Siksek [36], and most recently Box [8]; taken together, these three works give a complete determination of the quadratic points on X0(N) when it has genus 2, 3, 4 or 5. In essence, for each such N, there are only finitely many quadratic points which do not correspond to elliptic Q-curves; and these finitely many points are determined explicitly. All of these works utilise Magma [7] in a significant way. By combining these results with earlier work of Ozman¨ in determining local sol- ubility of quadratic twists of X0(N) [35], together with a fair amount of Sage and Magma computation - notably the Chabauty package - one is able to completely QUADRATIC ISOGENY PRIMES 5 determine IsogPrimeDeg(K) for some Ks, giving - conditional upon GRH - the first examples of the determination of isogeny primes for number fields larger than Q. Theorem 1.10. Assuming GRH, we have the following. IsogPrimeDeg(Q(√7)) = IsogPrimeDeg(Q) IsogPrimeDeg(Q(√ 10)) = IsogPrimeDeg(Q) − IsogPrimeDeg(Q(√ 5)) = IsogPrimeDeg(Q) 23 . − ∪{ } Of particular note here is the ruling out of the prime 73, which is treated in Box’s work, and relies on the determination of the rational points on the modular curve + X0(73) , recently completed in the work of Balakrishnan, Best, Bianchi, Lawrence, M¨uller, Triantafillou and Vonk (Theorem 6.3 in [2]) and uses the method of explicit quadratic Chabauty developed by Balakrishnan and Dogra [3] and Balakrishnan, Dogra, M¨uller, Tuitman and Vonk [4] following Kim’s work [23] [24] on non-abelian Chabauty. Our original motivation for this work was to write down IsogPrimeDeg(K) for a single K = Q, so we are content to stop at this point. Dealing with primes larger than 73 may6 be possible by extending the methods of Ozman-Siksek¨ and Box, but currently this is the largest prime considered in their work. However, in Appendix A, written jointly with Derickx, it is proved that 79 / IsogPrimeDeg(Q(√5)), from which one obtains the following result. ∈ Theorem 1.11. Assuming GRH, IsogPrimeDeg(Q(√5)) = IsogPrimeDeg(Q) 23, 47 . ∪{ } Theorem 1.10 and Theorem 1.11 are proved in Section 11. The arising of the primes 23 and 47 may be explained by the geometric condition that, in these cases, X0(p) is hyperelliptic, so necessarily admit infinitely many quadratic points; it is therefore not too surprising that these primes arise for a given quadratic field. Our implementation [5] - including all the code shown in this article - is available at: https://github.com/barinderbanwait/quadratic_isogeny_primes More details on how to use the command line tool are given on the README.md there. There are two parts to this article: Part I - Theory, and Part II - Implementation. Part I describes the objects, concepts and ideas underlying the algorithms, and covers Type 1 and Type 2 primes, and their finiteness. Part II gets into the details of the Sage implementations of the algorithms, explaining the various methods and helper functions we use, as well as the PARI/GP optimisation of searching for Type 2 primes. The Magma code we use for the determination of isogeny primes up to 73 is also presented here. In the spirit of Mazur’s introduction in [30], we would like to end our introduction with the following. A question. Suppose one has determined IsogPrimeDeg(K) for a particular quad- ratic field K. By considering the “graph of K-rational isogenies”, can one reduce the determination of IsogCyclicDeg(K) to the determination of K-points on X0(N) for a finite list of composite Ns, just as Mazur does in the introduction of his paper? 6 BARINDER S. BANWAIT

Acknowledgements. I am very grateful to David Roe and Andrew Sutherland for granting me access to MIT’s legendre computer, on which the Magma and PARI/GP computations were performed, and to Barry Mazur for a correspondence which prompted me to think beyond the computations into the underlying geo- metric reasons for isogenies. The copy of Magma was made available through a generous initiative of the Simons Foundation. I am indebted to Maarten Derickx for suggestions on improving the implementation as well as for ideas that led to the Appendix, Samir Siksek for answering a question about rational points on hyperel- liptic curves, James Stankewicz for bringing my attention to Momose’s work, and Isabel Vogt for useful conversations. I also thank Alex Bartel, Lassina Demb´el´e, Bas Edixhoven, Gerhard Frey, and John Voight for comments on an earlier version of the manuscript. Finally I wish to express my sincere gratitude to John Cremona, who introduced me to the subject of rational isogenies, and who both encouraged and helped me in my first steps in attempting to understand the 1978 paper of Mazur, whose work more generally remains a great source of inspiration to me.

Part 1. Theory 2. Type 1 and Type 2 primes Since we shall mostly be following Momose’s proofs [32], it will help to reduce confusion if we largely stick to his notation. Thus, let E/K be an elliptic curve over a number field possessing a K-rational p-isogeny for some prime p 5; write ≥ V for the kernel of the isogeny, a one-dimensional GK-stable module, and denote by λ the isogeny character:

λ : G Aut V (K) = F×. K −→ ∼ p Write θp for the mod-p cyclotomic character of GK. Since, in light of Theorem 1.5, we are chiefly concerned with number fields K that do not contain the Hilbert class field of an imaginary quadratic field, and moreover since this condition is rather a mouthful to say every time, we make the following definition. Definition 2.1. A number field K is called isogeny-finite if it does not contain the Hilbert class field of an imaginary quadratic field. Note that the definition may need to be revised should it become known that in fact the Generalised Riemann Hypothesis is false. We begin with the statement of Theorem 1 from loc. cit.. Theorem 2.2 (Momose, Theorem 1 in loc. cit.). Let K be a number field. Then there exists an effective constant C0 = C0(K) such that for any prime p>C0, and for any elliptic curve admitting a K-rational p-isogeny, the isogeny character λ falls into one of the following three types: 12 1 12 Type 1. λ or (λθp− ) is unramified. Type 2. λ12 = θ6 and p 3 (mod 4). p ≡ Type 3. K contains the Hilbert class field HL of an imaginary quadratic field. The rational prime p splits in L: p = pp¯. OL QUADRATIC ISOGENY PRIMES 7

For any prime q of K prime to p, with Frobenius automorphism σq, 12 12 λ (σq)= α (mod p)

for any α K× with α = Nm (q). ∈ OL k/L Remark 2.3. We are chiefly concerned with isogeny-finite number fields, so Type 3 will not arise in our setting. Nevertheless it is important to show this here in light of Lemma 2.7 below, which explains where these Types arise from, and which ultimately affects the implementation (see Lemma 2.8).

In order to get a handle on C0, we step through Momose’s proof of this theorem in our setting of quadratic isogeny-finite K. In doing so, one sees that it is in fact possible to explicitly compute the set of primes for which the isogeny character is not of Type 1 or 2. We denote this set by PreTypeOneTwoPrimes(K) (again noting that Type 3 does not arise in our setting). The first step in proving this is a description of how λ12 acts on ideals of K coprime to p (identifying λ with a character of the ideal group IK(p)), which is expressed as Lemma 1: Lemma 2.4 (Momose, Lemma 1 of loc. cit.). Assume that K is Galois over Q, and that p is unramified in K. Then for a fixed prime p of K lying over p, there exist integers a satisfying 0 a 12, for σ Gal(K/Q) such that σ ≤ σ ≤ ∈ λ12((α)) αǫ (mod p) ≡ for ǫ = a σ and α K× prime to p. σ σ ∈ Thus,Pλ12 acts (modulo p) via an element ǫ of the group ring Z[Gal(K/Q)], for which there are only finitely many possibilities. In our case of quadratic K, we may denote ǫ as a pair (a, b) of integers, referring to a id + b σ, with σ being the non-trivial Galois automorphism. · · Lemma 2.5. The possible values of the group ring character ǫ for a quadratic field K are as follows: (1) Quadratic ǫ: the 4 pairs (12a, 12b) for a, b 0, 1 ; (2) Quartic ǫ: the 12 pairs (4a, 4b) for a, b 0∈{, 1, 2, 3} , excluding the 4 quad- ratic pairs. ∈{ } (3) Sextic ǫ: the 5 pairs (6a, 6b) for a, b 0, 1, 2 , excluding the 4 quadratic pairs; ∈ { } Proof. This follows from Remark 1 of loc. cit., where the possible values for the unordered set a, b are given as { } 0, 12 ; • {0, 4, 8}, 12 (possible only if j(E) 0 (mod p) and p 2 (mod 3)); • {0, 6, 12 (possible} only if j(E) ≡1728 (mod p) and p≡ 3 (mod 4)). • { } ≡ ≡ 

Remark 2.6. Momose cites Mazur’s papers [30] and Chapter III of [29] for the above result, but does not specify any particular result from them. It seems that the relevant result from [30] is Lemma 5.1 (which occurs just before the restriction to N remaining prime in K), and from Chapter III of [29] is Proposition 4.2, which in turn relies on the very detailed analysis of bad fibres of the N´eron model of J0(N) 8 BARINDER S. BANWAIT in the Appendix of loc. cit., by Mazur and Rapoport. The naming of pairs in the above Lemma as quadratic, quartic, or sextic therefore reflects the size of the pair AutC(E,V ). Moreover, from Mazur’s Lemma 5.1 we gain another restriction on p in the cubic and quartic cases beyond those shown above; namely, that such a p must split or ramify in K. These restrictions on p in the exceptional automorphism case will be used in the implementation to further cut down possible isogeny primes. The notion of λ being of Type 1,2, or 3 has its seed in the following classification, which is Momose’s Lemma 2. Lemma 2.7 (Momose, Lemma 2 of loc. cit.). Under the same notation and as- sumptions as Lemma 2.4, take a rational prime q = p which splits completely in K. 6 hK Take a prime q of K lying over q, and an element α K× with (α)= q , where ∈ hK denotes the class number of K. Assume that αǫ = β12hK for a root β of the Frobenius map of an elliptic curve defined over Fq. Then ǫ is one of the following types:

Type 2. ǫ = 6NmK/Q and p 3 (mod 4). Type 3. K contains the imaginary≡ quadratic field L = Q(β), and ǫ = 12Nm or 12Nm ρ K/L K/L · for the complex conjugation ρ of L. Type 3 therefore becomes relevant for us in the imaginary quadratic case. Let us now return to Momose’s proof of his Theorem 1. If ǫ = (0, 0) or (12, 12), then we are in Type 1; if ǫ = (6, 6), then (according to Lemma 2.7; note that in this case p must be 3 (mod 4) from the proof of Lemma 2.5) we are in Type 2; so we suppose that ǫ≡is neither of these three possibilities. Momose takes a rational prime q = p which splits completely in K, and a prime q of K lying over q. We refer to such6 a q as an auxiliary prime, and observe that we can (and in the implementation to be described in Section 8, most definitely will) take several of these auxiliary primes. Momose shows that, if E has potentially multiplicative reduction at q, then p must divide one of the following two non-zero integers (non-zero because ǫ is not of Type 1):

ǫ ǫ 12hK A(ǫ, q) := Nm Q(α 1) or B(ǫ, q) := Nm Q(α q ), K/ − K/ − hK where hK denotes the class number of K, and α is a generator of the ideal q . We refer to primes in the support of these two integers as Type A and Type B primes, respectively. Observe that each of these integers depends only on ǫ and q. If E has potentially good reduction at q, and ǫ is not of Type 2 or 3, then from Lemma 2.7 we know that αǫ = β12hK for any root β of the characteristic polynomial of Frobenius of any elliptic curve6 over κ(q); consequently p must divide the following non-zero integer depending only on ǫ and q:

ǫ 12hK C(ǫ, q) := lcm( Nm Q(α β ) β is a Frobenius root over κ(q) ). K(β)/ − | We refer to primes dividing this integer as Type C primes. It remains to deal with ǫ of Type 3. QUADRATIC ISOGENY PRIMES 9

Lemma 2.8. Let K be a quadratic field. If ǫ is of Type 3, and there exists β as above such that αǫ = β12hK , then the auxiliary prime q is principal. Proof. This follows from the end of the proof of Momose’s Theorem 1. If K is real quadratic then there is nothing to prove, so suppose that K is ima- ginary quadratic; in the notation of Type 3 of Lemma 2.7, we have K = L. The relation αǫ = β12hK gives the equalities of ideals that (q)12hK =(α)12 =(β)12hK . Then q =(β) is principal.  Therefore, in our setting of an isogeny-finite quadratic field, our implementation will take non-principal auxiliary prime ideals in the case of an imaginary quadratic field. Let Aux denote such a finite set of auxiliary prime ideals, and let ABC(ǫ, q) denote the union of the Type A, B, and C primes arising as above, together with the rational prime q lying under q; we append this single rational prime since the possible isogeny primes of type A, B or C were deemed to be distinct from q. We may thus define the set of pre-Type 1 or 2 primes for K as PreTypeOneTwoPrimes(K) := ABC(ǫ, q), ǫ q Aux [ ∈\ where the union is taken over the 18 pairs in Lemma 2.5 excluding (0, 12), (12, 0), and (6, 6). We summarise this re-interpretation of Momose’s Theorem 1 into the following. Proposition 2.9. Let K be an isogeny-finite number field, and p a prime not in PreTypeOneTwoPrimes(K). Then the isogeny character λ is of Type 1 or Type 2.

We end this section by recalling David’s explicit expression for C0(K) (Th´eor`eme II in [11]). David makes the following notational definitions of entitites associated to a num- ber field K Galois over Q. For simplicity, we give these in the case of a quadratic field K:

∆K = discriminant of K

hK = class number of K

RK = regulator of K

rK = rank of unit group of K ln 2 δK = rK +1 rK +1 (rK 1) r δ− − C (K)= K K 1 2 C2(K) = exp(24C1(K)RK ) C(K, n)=(n12hK C (K)+ n6hK )4 for n Z. 2 ∈ AhK David then takes C0 to be C(K, 2(∆K) ), where A is an absolute constant which appears in the Effective Chebotarev Density Theorem (Theorem 1.1 in [25]). A minor variant of this will be used in Section 6 when we discuss the implement- ation of the DLMV bound. 10 BARINDER S. BANWAIT

3. Computing Type 1 primes Momose proved (Theorem 3 in [32]) that a number field of degree at most 12 admits only finitely many Type 1 primes. At that time, the restriction on degree arose from the n for which the natural2 map from the smooth locus of the nth symmetric power of X0(p) into the N´eron model of the Eisenstein quotient of J0(p) was known to be a formal immersion. This restriction on degree was removed very soon after Momose’s paper appeared, as a result of Merel’s resolution of the uniform boundedness conjecture for torsion on elliptic curves [31]. Furthermore, not long after Merel’s work appeared, Oesterl´eprovided a very explicit bound on the torsion primes that arise over a number field of given degree. Oesterl´enever published his result; this gap in the literature was filled by Derickx, Kamienny, Stein, and Stoll as Appendix A in [12]. Both David as well as Larson and Vaintrob use this bound of Oesterl´eto give an explicit bound on the Type 1 primes as follows: max(TypeOnePrimes(K)) (1+36dK hK )2. ≤ We will use this in Section 6 when we discuss the implementation of the DLMV bound. In this section, as in the previous one, we show how one may step through Mo- mose’s proof and algorithmically determine the set TypeOnePrimes(K) in the case of quadratic K. Momose starts by adding all primes strictly less than p(2) = 73 into TypeOnePrimes(K); this is so that he may invoke Theorem 2 and Corollary 1 in [32], due to Kamienny3. The quantity 73 comes from the statement of Proposition 3.2 of [17]. The primes that ramify in K are also added into the set. Next, Momose takes an auxiliary prime q larger than or equal to q(2) = 7; as before, we will take several such auxiliary primes. Let q denote a prime of K above q, and suppose now that E/K is an elliptic curve with a K-rational p isogeny, with p of Type 1, and p = q. If E has potentially6 multiplicative reduction at q, then Momose shows that p 1 − divides 12hK. If E has potentially good reduction at q, then Momose shows that p must divide the non-zero integer (non-zero from Lemma 2.7): D(q) := lcm( 1+ N(q)12hK β12hK β¯12hK β is a Frobenius root over κ(q) ). − − | (3.1) We summarise the above as follows.

Proposition 3.1. TypeOnePrimes(K)= PrimesUpTo(71) p : p ∆ ∪{ | K } p :(p 1) 12h p : p qD(q) . ∪{ − | K} ∪ { | } q Aux ! ∈\

2in the context of Kamienny’s extension of Mazur’s formal immersion method 3Momose also attributes Abramovich, who extended the symmetric power formal immersion method from degree 8 to degree 12 number fields QUADRATIC ISOGENY PRIMES 11

4. Computing Type 2 primes Let K be an isogeny-finite quadratic field, and E/K an elliptic curve admitting a K-rational p-isogeny, with p of Type 2. Denote as before the isogeny character by λ. We begin this section by recalling Momose’s Lemmas 3, 4, and 5. Lemma 4.1 (Momose, Lemma 3 in loc. cit.). λ is of the form m λ = ψθp for an integer m with 2m p+1/2 (mod p 1), and a character ψ of order dividing 6. ≡ − Lemma 4.2 (Momose, Lemma 4 in loc. cit.). Let q be a prime of K lying over a rational prime q = p. If E has potentially multiplicative reduction at q, and q splits in the imaginary6 quadratic field Q(√ p), then − 2 N(q) ψ(σ )± (mod p). ≡ q Lemma 4.3 (Momose, Lemma 5 in loc. cit.). Let q be a prime of K lying over a rational prime q = p. If E has potentially good reduction at q, q is of odd residue field degree, and N6 (q) < p/4, then q is inert in Q(√ p). − Momose then states without proof that these three lemmas imply that a Type 2 prime must satisfy the following condition. Condition C. Any rational prime q with q

Subcase 1.a. q splits or ramifies in K. Then by Lemma 4.3 (Momose’s Lemma 5), q is inert in Q(√ p). − Subcase 1.b. q is inert in K. Nothing further to say in this case.

Case 2. E has potentially multiplicative reduction at q Subcase 2.a. q splits in Q(√ p). − In this case we proceed as follows. 2 N(q) ψ(σ )± (mod p) (by Lemma 4.2) ≡ q rd N(q) is a 3 root of unity in F× (since ψ has order dividing 6 by Lemma 4.1) ⇒ p rd 2 q is a 3 root of unity in F×, or q is inert in K (since N(q) is either q or q ) ⇔ p q2 + q +1 0 (mod p) or q is inert in K (since 2 q

From the above, one sees that if q is not inert in K, and q2 + q +1 0 (mod p), then q is inert in Q(√ p). 6≡  −

Implementing this condition instead of Momose’s Condition C then did yield 163 in the final output for Q(√5), as must necessarily be the case (since 163 IsogPrimeDeg(Q)). Note that Condition CC also resembles more closely the condi-∈ tions that Goldfeld considers in his Appendix to Mazur’s paper [30]. We would now like to determine the primes p which satisfy Condition CC. As mentioned above, in Mazur’s case for K = Q, he was able to show - in the very last paragraph of §7 of loc. cit., using nothing more than undergraduate algebraic - that his ps are such that Q(√ p) has class number 1, so one can conclude by applying the theorem of Baker-Heegner-Stark.− This explicit determination is more difficult for higher degree number fields K. Indeed, in §8 of loc. cit., Mazur extends his results to the setting of imaginary quadratic fields K and isogeny primes N which are inert in K; and the analogous finiteness here (of Mazur’s set 4(K)) is the subject of Goldfeld’s Appendix, and is not effective. Similarly, Momose’sN Proposition 1 (which itself is based on Goldfeld’s theorem) is not effective. It was Larson and Vaintrob who found an effective bound on Type 2 primes assuming GRH, and modulo the determination of an effectively computable absolute constant c7, which appears in Corollary 6.3 of [27]. Tracing through their proof, and combining it with the best possible bounds in the Effective Chebotarev Density Theorem due to Bach and Sorenson (Theorem 5.1 in [1]), we are able to offer a modest improvement on their bound which removes the dependence on c7 in our case.

Proposition 4.4. Assume GRH. Let K be an isogeny-finite quadratic field, and E/K an elliptic curve possessing a K-rational p-isogeny, for p a Type 2 prime. QUADRATIC ISOGENY PRIMES 13

Then p satisfies p (16 log p + 16 log(12∆ )+26)4. ≤ K In particular, there are only finitely many primes p as above. Proof. In the proof of Theorem 6.4 of [27], the authors prove that a Type 2 prime p satisfies 4 p 1+ NmK (v) (4.1) ≤ Q  q  where v is a prime ideal of K such that v is split in K(√ p), is of degree 1, does not lie over 3, and satisfies the inequality − 2 NmK/Q(v) c7 (log ∆K(√ p) + nK(√ p) log 3) ≤ · ± ± for an effectively computable absolute constant c7 (note that they use ℓ instead of p, and nK denotes the degree of K). The existence of such a v follows from their Corollary 6.3. Stepping into the proof of this Corollary, we arrive at a point where they apply the Effective Chebotarev Density Theorem to Gal(E′/K) - for a certain Galois extension E′ which fits into a tower of successive quadratic extensions E′/E/K/Q - to bound the norm of v as

Nm Q(v) c (log ∆ ′ ) K/ ≤ 5 E for an effectively computable absolute constant c5. However, we may at this breakpoint instead use Theorem 5.1 of [1] on the degree 8 extension E′ to obtain 2 Nm Q(v) (4 log ∆ ′ + 25) . K/ ≤ E This then subsequently (stepping back out into the proof of Theorem 6.4) yields the bound 2 Nm Q(v) (16 log ∆ + 16 log p + 16 log 6 + 16 log 2 + 25) . K/ ≤ K Inserting this into Equation (4.1) yields the result.  Corollary 4.5. Assume GRH. Then there is an algorithm to compute TypeTwoPrimes(K). Proof. For each p up to the bound, we check whether it satisfies Condition CC, which is a finite computation.  The above Proposition is also used in the implementation of the DLMV bound. Example 4.6. For K = Q(√5), this bound on Type 2 primes is approximately 5.61 1010. The algorithm therefore needs to check all primes up to this large bound.× See Section 9 for the implementation details. We end this section with some observations on whether we can remove the de- pendence on GRH. While it is unconditionally true that IsogPrimeDeg(K) is finite for isogeny-finite quadratic fields, the effective bound in Proposition 4.4 above requires GRH to work; that is, replacing the bound on the smallest (ordered by norm) prime ideal in the above proof with the best known unconditional bound (Theorem 1.1 in [25]) does not yield a contradiction for large p. Therefore, in this quadratic setting, finiteness of Type 2 primes is unconditionally true ineffectively, but effectively true conditionally. 14 BARINDER S. BANWAIT

However, in Goldfeld’s appendix to Mazur’s paper, it is written that for quadratic 100 fields K such that ∆K 10, one may take an explicit unconditional bound as e ; there is no further| mention| ≤ of how this value is arrived at. We did contemplate attempting to check all primes up to this bound using the PARI/GP implementation in Section 9, but decided not to for the following reason: even if one could manage to check all primes up to this bound, one would still be in the unfortunate situation of wondering about the existence of a single possible isogeny prime larger than e100 (which would exist if a certain Dedekind zeta function has a Siegel zero). Note that Larson publicly asked this very question about removing GRH [26] around about the time his joint work with Vaintrob appeared. The feeling among the participants there was that this “is pretty hopeless with present day technology” (to quote prominent Mathoverflow contributor “GH from MO”). 5. Putting the parts together Having described the principles behind the algorithm, we record the main al- gorithmic result Algorithm 1.8 of this paper, referenced in the Introduction. Algorithm 5.1. Let K be a quadratic field which is not imaginary quadratic of class number 1. Then there is an algorithm that computes a superset of IsogPrimeDeg(K) as the union of three sets: IsogPrimeDeg(K) PreTypeOneTwoPrimes(K) TypeOnePrimes(K) ⊆ ∪ TypeTwoPrimes(K). ∪ Note that this strategy of computing a superset for IsogPrimeDeg(K) is used by Mazur; compare, for example, the above with the very last sentence of his paper [30], just before Goldfeld’s Appendix: “it is clear that Proposition 8.1 is proved where (K) is the finite set of primes (K) (K) (K) (K)”. N N1 ∪N2 ∪N3 ∪N4 Part 2. Implementation Part 2 contains the code we used in our implementations, broken down at places where some discussion is warranted. The code shown here may contain redundancy (e.g. computing the degree of a number field several times); this has been done to aid readibility of the code. The final implementation is structured differently for optimisation (e.g. computing the class number once at the outset, and storing it in memory rather than having every method recompute it). With regard to the Sage code, we have endeavoured to follow the PEP8 coding conventions [39]. 6. The DLMV bound In this section we present the Sage code for calculating the DLMV bound for an isogeny-finite quadratic field K. We begin by computing the bound on TypeTwoPrimes, using Sage’s find_root function.

GENERIC_UPPER_BOUND = 10 ** 30 def get_type_2_bound(K):

# The Bach and Sorenson parameters QUADRATIC ISOGENY PRIMES 15

A = 4 B = 2.5 C = 5

n_K = K.degree() delta_K = K.discriminant().abs()

D = 2 * A * n_K E = 4 * A * log(delta_K) + 2 * A * n_K * log(12) + 4 *B *n_K+C + 1

R = PolynomialRing(Rationals(), 'x') x = R.gen() f = x - (D*log(x) + E) ** 4

try: bound = find_root(f,10,GENERIC_UPPER_BOUND) return ceil(bound) except RuntimeError: warning_msg = ("Warning: Type 2 bound for quadratic field with " "discriminant {} failed. Returning generic upper bound").format(delta_K) print(warning_msg) return GENERIC_UPPER_BOUND

This searches for a root of the function p (16 log p + 16 log(12∆ )+26)4 − K in the range [10, 1030], and if it doesn’t find one, returns a generic bound of 1030; for all of our examples, a root was found in this interval. Using this function, we obtain the following implementation of the DLMV bound. AhK We make one minor improvement: David took C(K, 2(∆K )). However, since we AhK hK are in any case assuming GRH, we may replace the 2(∆K ) with (4 log ∆K + 2 | | 5hK + 5) , using Theorem 5.1 of [1] (applied with E = HK, the Hilbert class field of K.) def DLMV(K): """Compute the DLMV bound"""

# First compute David's C_0

Delta_K = K.discriminant().abs() h_K = K.class_number() R_K = K.regulator() r_K = K.unit_group().rank() delta_K = log(2)/(r_K + 1) C_1_K = r_K ** (r_K + 1) * delta_K**(-(r_K - 1))/ 2 C_2_K = exp(24 * C_1_K * R_K) CHEB_DEN_BOUND = (4*log(Delta_K**h_K) + 5*h_K + 5)**2 C_0 = ((CHEB_DEN_BOUND**(12*h_K))*C_2_K + CHEB_DEN_BOUND**(6*h_K))**4

# Now the Type 1 and 2 bounds

type_1_bound = (1 + 3**(12 * h_K))**2 type_2_bound = get_type_2_bound(K) 16 BARINDER S. BANWAIT

return max(C_0, type_1_bound, type_2_bound)

7. TypeOnePrimes The function which computes the Type 1 primes begins as follows:

P_2 = 73 Q_2 = 7 def get_type_1_primes(K, aux_prime_count=3, loop_curves=False): """Compute the type 1 primes"""

aux_primes = [Q_2] prime_to_append = Q_2 for _ in range(1,aux_prime_count): prime_to_append = next_prime(prime_to_append) aux_primes.append(prime_to_append)

aux_prime_count is a parameter denoting the number of auxiliary primes to take, and Q_2 is the global value of 7 denoting what Momose calls q(2); the code thus far takes aux_prime_count number of rational primes larger than or equal to 7. loop_curves is a boolean parameter to be described below. We initialise a dictionary to store the primes dividing D(q) for each q, and then begin the loop over all such auxiliary primes, initially computing various entities associated with the residue field:

running_prime_dict = {} R = PolynomialRing(Rationals(), 'x')

for q in aux_primes: frak_q = K.primes_above(q)[0] residue_field = frak_q.residue_field(names='z') residue_field_card = residue_field.cardinality()

At this point we need to loop over all possible characteristic polynomials of Frobenius of elliptic curves defined over residue_field. This set of polynomi- als is contained in the set of Weil polynomials of degree 2 whose complex roots have absolute value equal to the square-root of the cardinality of residue_field. Such polynomials are implemented in Sage as weil_polynomials, and as such, obtaining this potentially larger set of polynomials is faster than looping over all elliptic curves over residue_field and computing the frobenius polynomials. The boolean flag loop_curves switches between these two sets of polynomials. running_primes = {q} if loop_curves: weil_polys = get_weil_polys(residue_field) else: weil_polys = R.weil_polynomials(2, residue_field_card) for wp in weil_polys: N = get_N(wp, residue_field_card) N = Integer(N) if N != 0: QUADRATIC ISOGENY PRIMES 17

# else we can ignore since it doesn't arise from an elliptic curve running_primes = running_primes.union(set(Integer(N).prime_divisors())) running_prime_dict[q] = running_primes

running_prime_dict[q] is then a dictionary with keys the auxiliary primes q, and values the set of primes dividing the integer D(q) defined in Equation (3.1). The computation of the integer N above then proceeds via computing the roots of the characteristic polynomial of Frobenius: def get_N(frob_poly, residue_field_card): """Helper method for computing Type 1 primes"""

if frob_poly.is_irreducible(): frob_poly_root_field = frob_poly.root_field('a') else: frob_poly_root_field = IntegerRing() roots_of_frob = frob_poly.roots(frob_poly_root_field) if len(roots_of_frob) == 1: assert roots_of_frob[0][1] == 2 beta = roots_of_frob[0][0] return 1 + residue_field_card ** 12 - 2 * beta ** 12 else: beta, beta_bar = [r for r,e in roots_of_frob] return 1 + residue_field_card ** 12 - beta ** 12 - beta_bar ** 12 The code for this section then concludes by taking the set intersection, and ap- pending the other sets of primes shown in Proposition 3.1:

output = set.intersection(*(val for val in running_prime_dict.values())) output = output.union(set(prime_range(P_2))) Delta_K = K.discriminant().abs() h_K = K.class_number() output = output.union(set(Delta_K.prime_divisors())) third_set = [1+d for d in (12*h_K).divisors()] # p : (p-1)|12h_K output = output.union(set([p for p in third_set if p.is_prime()])) output = list(output) output.sort() return output

8. PreTypeOneTwoPrimes The function which computes the pre-Type 1 or 2 primes begins similarly to get_type_1_primes. The requested number of auxiliary primes is taken, which in the imaginary quadratic case are further checked to be non-principal ideals: def get_pre_type_one_two_primes(K, aux_prime_count=3, loop_curves=False):

if K.is_totally_real(): aux_primes = K.primes_of_degree_one_list(aux_prime_count) else: it = K.primes_of_degree_one_iter() aux_primes = [] while len(aux_primes) < aux_prime_count: 18 BARINDER S. BANWAIT

aux_prime_candidate = next(it) if not aux_prime_candidate.is_principal(): aux_primes.append(aux_prime_candidate)

The possible ǫs are defined as pairs, together with a string denoting its type. Here is a snapshot:

EPSILONS_PRE_TYPE_1_2 = {

(0,12): 'quadratic', (12,0): 'quadratic',

(0,4): 'quartic', (0,8): 'quartic',

The type is used to apply the further conditions on possible isogeny primes in Lemma 2.5 and Remark 2.6:

def filter_ABC_primes(K, prime_list, eps_type):

if eps_type == 'quadratic': # no additional restrictions return prime_list

elif eps_type == 'quartic': # prime must split or ramify in K, and be congruent to 2 mod 3 output_list = []

for p in prime_list: if p%3 == 2: if not K.ideal(p).is_prime(): output_list.append(p) return output_list

elif eps_type == 'sextic': # prime must split or ramify in K, and be congruent to 3 mod 4 output_list = []

for p in prime_list: if p%4 == 3: if not K.ideal(p).is_prime(): output_list.append(p) return output_list

else: # should never happen raise ValueError("type must be quadratic, quartic, or sextic")

The main part of the function is the following block, which computes, for each auxiliary prime q, a dictionary, whose keys are the 18 ǫs, and the value for each ǫ is the set of primes dividing ABC(ǫ, q).

for q in aux_primes: # these will be dicts with keys the epsilons, values sets of primes AB_primes_dict = get_AB_primes(K,q,epsilons, h_K) C_primes_dict = get_C_primes(K, q, epsilons, h_K, loop_curves) QUADRATIC ISOGENY PRIMES 19

unified_dict = {} q_rat = Integer(q.norm()) assert q_rat.is_prime() for eps in epsilons: unified_dict[eps] = AB_primes_dict[eps].union(C_primes_dict[eps], {q_rat}) tracking_dict[q] = unified_dict

The inner methods get_AB_primes and get_C_primes then compute the support of the integers A(ǫ, q), B(ǫ, q), and C(ǫ, q). The first method is as follows:

def get_AB_primes(K,q,epsilons,h_K):

output_dict_AB = {} alphas = (q ** h_K).gens_reduced() assert len(alphas) == 1, "q^hK not principal, which is very bad" alpha = alphas[0] rat_q = ZZ(q.norm()) assert rat_q.is_prime(), "somehow the degree 1 prime is not prime" for eps, eps_type in epsilons.items(): alpha_to_eps = group_ring_exp(alpha,eps) A = (alpha_to_eps - 1).norm() B = (alpha_to_eps - (rat_q ** (12 * h_K))).norm()

possible_A_primes = ZZ(A).prime_divisors() possible_B_primes = ZZ(B).prime_divisors()

A_primes_filt = filter_ABC_primes(K, possible_A_primes, eps_type) B_primes_filt = filter_ABC_primes(K, possible_B_primes, eps_type)

output_dict_AB[eps] = set(A_primes_filt).union(B_primes_filt) return output_dict_AB

get_C_primes is similar to get_N shown in Section 7, so we will not show it in its entirety. While looping through all Weil polynomials over κ(q) (or only those that are realised by elliptic curves over κ(q) according to the boolean flag loop_curves), the possible roots β are extracted, and for each β and ǫ, the quantity ǫ 12hK NmK(β)/Q(α β ) is computed, and its prime factors stored in a dictionary with key ǫ: −

if frob_poly.is_irreducible(): frob_poly_root_field = frob_poly.root_field('a') _, K_into_KL, L_into_KL, _ = K.composite_fields(frob_poly_root_field, 'c', both_maps=True)[0] else: frob_poly_root_field = IntegerRing() roots_of_frob = frob_poly.roots(frob_poly_root_field) betas = [r for r,e in roots_of_frob]

for beta in betas: if beta in K: for eps, eps_type in epsilons.items(): N = (group_ring_exp(alpha, eps) - beta ** (12*h_K)).absolute_norm() 20 BARINDER S. BANWAIT

N = ZZ(N) if N != 0: possible_C_primes = N.prime_divisors() C_primes_filt = filter_ABC_primes(K, possible_C_primes, eps_type) else: # means no elliptic curve with this Weil poly C_primes_filt = [] output_dict_C[eps] = output_dict_C[eps].union(set(C_primes_filt)) else: for eps, eps_type in epsilons.items(): N = (K_into_KL(group_ring_exp(alpha, eps)) - L_into_KL(beta ** (12*h_K))).absolute_norm() N = ZZ(N) if N != 0: possible_C_primes = ZZ(N).prime_divisors() C_primes_filt = filter_ABC_primes(K, possible_C_primes, eps_type) else: # means no elliptic curve with this Weil poly C_primes_filt = [] output_dict_C[eps] = output_dict_C[eps].union(set(C_primes_filt))

This allows one to only compute factorisations of Weil polynomials of all elliptic curves over κ(q) once for each q, rather than every time for each ǫ. The function then ends by taking the intersection over all auxiliary primes, fol- lowed by the union over all ǫs, completing the determination of PreTypeOneTwoPrimes:

tracking_dict_inv_collapsed = {} for eps in epsilons: q_dict = {} for q in aux_primes: q_dict[q] = tracking_dict[q][eps] q_dict_collapsed = set.intersection(*(val for val in q_dict.values())) tracking_dict_inv_collapsed[eps] = q_dict_collapsed output = set.union(*(val for val in tracking_dict_inv_collapsed.values())) output = list(output) output.sort() return output

9. TypeTwoPrimes We begin by showing the Sage code which checks whether a prime p satisfies Condition CC: def satisfies_condition_CC(K,p): for q in prime_range(p/4): if (q**2 +q+ 1) % p != 0: if not K.ideal(q).is_prime(): if legendre_symbol(q,p) == 1: # i.e. not inert return False return True QUADRATIC ISOGENY PRIMES 21

We may then check all primes up to the Type 2 bound by running the following with bound=None:

def get_type_2_primes(K, bound=None): """Compute a list containing the type 2 primes"""

# First get the bound if bound is None: bound = get_type_2_bound(K) print("type_2_bound = {}".format(bound))

# We need to include all primes up to 25 # see Larson/Vaintrob's proof of Theorem 6.4 output = set(prime_range(25))

for p in pari.primes(25, bound): p_int = Integer(p) if p_int % 4 == 3: # Type 2 primes necessarily congruent to 3 mod 4 if satisfies_condition_CC(K,p_int): output.add(p_int) return output

However, on our version of Sage, executing this with bound=None quickly yields a pari memory error. The issue is precomputing very large sets of prime numbers, which a typical architecture may not be able to handle. We therefore translate the above into PARI/GP code. The following shows the code in the case of K = Q(√6); the other cases are similar.

\\memoize wrapper (for kronecker symbol) memo=Map(); memoize(f,A[..])= { my(res); if(!mapisdefined(memo, [f,A], &res), res = call(f,A); mapput(memo,[f,A],res)); res; }

D=6; \\ change this to desired value

\\check if condition CC is satisfied satisfiesCC(p) = { forprime(q = 7,p/4, if((q^2 +q+ 1) % p != 0, if(memoize(kronecker,D,q) != -1, \\ don't memoize the next call if(kronecker(q,p) == 1, return(0) ); ); ); ); return(1); 22 BARINDER S. BANWAIT

}

\\print to stdout if p satisfies condition CC print_satisfiesCC(p) = { if(satisfiesCC(p), print(p," is a type 2 prime") ); }

\\ for D=-6,-5,6,10 congruence_condition_main(p) = { if(p%24 == 19, x=p%5; if((x==2)||(x==3), return(1); return(0); ); return(0); ); } \\following on one line only, split here for readibility parforprime(p = 3, 64384567141, if(congruence_condition_main(p), print_satisfiesCC(p) ); );

D Note that here we have computed by hand the Kronecker symbol q for q = 2, 3, 5; this allows us to start the q loop at 7, and to restrict to primes in certain congruence classes modulo 24 and 54. The other cases of K are similarly optimised. We initialise PARI/GP to precompute the requisite number of primes: gp --primelimit 64384567141 --stacksize 20000000

Running this PARI/GP code revealed that 163 was the largest Type 2 prime witnessed for the 9 number fields shown in the Introduction. Remark 9.1. We actually broke the search domain into several smaller chunks; in this case of K = Q(√5), this meant 12 blocks of 5 billion. Each of these blocks was then able to run on an old laptop in a few minutes. We remark that Joe Buhler also ran a computation several decades ago for Type 2 primes for imaginary quadratic fields, checking all primes up to 32, 768, as reported by Goldfeld in the Appendix to Mazur’s paper. In the table in loc. cit., as in our case, 163 was the largest prime observed for the fields not of class number one. 10. Verification Testing In order to have some testing of the code, we require examples of isogeny primes larger than 71 over specific quadratic fields. From the survey article [15], together with one example from Box’s Section 4.7 [8], we have the six examples shown in Table 10.1 4every little helps! QUADRATIC ISOGENY PRIMES 23

Prime Is Isogeny Prime over Found by 73 Q(√ 127) Galbraith [14] − 73 Q(√ 31) Box [8] − 103 Q(√5 577) Galbraith (loc. cit.) · 137 Q(√ 31159) Galbraith (loc. cit.) − 191 Q(√61 229 145757) Elkies [13] · · 311 Q(√11 17 9011 23629) Galbraith (loc. cit.) · · · Table 10.1. Instances of isogeny primes in the literature which are rational over isogeny-finite quadratic fields.

These examples serve as the basis of a unit testing framework, which has been implemented in test_quadratic_isogeny_primes.py. Moreover, for each case, we check that IsogPrimeDeg(K) contains IsogPrimeDeg(Q). Here is a snapshot of the tests:

AUX_PRIME_COUNT = 2 class TestQuadraticIsogenyPrimes(unittest.TestCase):

def test_73(self): K = QuadraticField(-127) superset = get_isogeny_primes(K, AUX_PRIME_COUNT) self.assertTrue(set(superset).issuperset(EC_Q_ISOGENY_PRIMES)) self.assertIn(73, superset)

def test_103(self): K = QuadraticField(5 * 577) superset = get_isogeny_primes(K, AUX_PRIME_COUNT) self.assertTrue(set(superset).issuperset(EC_Q_ISOGENY_PRIMES)) self.assertIn(103, superset)

@unittest.skip("takes too long") def test_311(self): K = QuadraticField(11*17*9011*23629) superset = get_isogeny_primes(K, AUX_PRIME_COUNT) self.assertTrue(set(superset).issuperset(EC_Q_ISOGENY_PRIMES)) self.assertIn(311, superset)

At the time of writing, checking Galbraith’s 311 example on MIT’s legendre has been running for several days:

*** Warning: MPQS: factoring this number will take many hours: N = 3166047613294343833068695049562257800287439085120798280369933857186090672313 614897439613636905492793564503.

11. Weeding out the Pretenders Having now computed a superset for IsogPrimeDeg(K), one is reduced to an elaborate game of number-theoretic Whac-a-mole. We illustrate the ideas used to eliminate primes via an extended example with K = Q(√5). This will prove Theorem 1.11. The techniques will subsequently be applied to prove Theorem 1.10. This section relies heavily on Magma [7] in addition to Sage [38]. 24 BARINDER S. BANWAIT

Example 11.1 (K = Q(√5)). Running the algorithm with --aux_prime_count 8 yields a superset as follows: IsogPrimeDeg(Q(√5)) primes 71 73, 79, 163 . ⊆{ ≤ }∪{ } We know that IsogPrimeDeg(Q) IsogPrimeDeg(Q(√5)); so our task is to decide, ⊆ for each p in the following list, whether X0(p)(K) has any rational points beyond the two cusps defined over Q: 23, 29, 31, 41, 47, 53, 59, 61, 71, 73, 79 . { } Prime 23. We construct the modular curve in Magma:

> R := PolynomialRing(Rationals()); > K := NumberField(R![-1,-1, 1]); > N:=23; > X := SmallModularCurve(N,K);

We search for rational points, and find a pair of points over K:

> rats := RationalPoints(X : Bound:=10); > rats; {@(1 : 0 : 0),(1 : 1 : 0),(-3 : 23*a - 26 : 1),(-3 :-23*a - 3 : 1)@}

We can obtain the j-invariant of the corresponding non-cuspidal points:

> P := rats[3]; > PConj := rats[4]; > jInvariant(P,23); 191346871173120*a - 309605741199360 > jInvariant(PConj,23); -191346871173120*a - 118258870026240 Therefore, 23 IsogPrimeDeg(K). We call this method the Magma Point Search Method∈. Prime 29. We attempt the Magma Point Search Method, but find no new points. We increase the Bound, but still find no new points:

> N:=29; > X := SmallModularCurve(N,K); > rats := RationalPoints(X : Bound:=1000000); > rats; {@(1 : 0 : 0),(1 : 1 : 0)@}

We suspect therefore that such points do not exist, which we now seek to prove. This modular curve is one of the 18 values of N for which the quadratic points on X0(N) have been classified by Bruin and Najman [9] - these are the values for which X0(N) is hyperelliptic, as originally found by Ogg [33], but excluding the notorious 37 (which was dealt with by Box, see below). These modular curves have infinitely many quadratic points which the authors call non-exceptional: namely 1 1 those arising from preimages of P (Q) under the hyperelliptic map X0(N) P . There can only be finitely many quadratic points not of this sort; these are→ called exceptional, and these are completely determined by Bruin and Najman; they also prove that the non-exceptional quadratic points correspond to quadratic Q-curves. QUADRATIC ISOGENY PRIMES 25

We find (Table 5 of loc. cit.) that there are no exceptional points defined over K; therefore, if X0(29) has a non-cuspidal K-point, then it must arise as the pullback of a rational point under the hyperelliptic map. Furnishing X0(29) with a simplified model (of the form y2 = sextic), this means that a possible K-point (x, y) on this simplified model must have x Q, and therefore y = √5 Y for Y Q. This would ∈ · ∈ yield a Q-rational point on the 5-twist of X0(29). We check whether this twist has any Q-rational points:

> N:=29; > X := SmallModularCurve(N); > X_simp, f := SimplifiedModel(X); > X5 := QuadraticTwist(X_simp,5); > RationalPoints(X5 : Bound:=1000); {@@}

We are therefore reduced to proving that this twisted curve X5 does not have any rational points. We check the rank of the Jacobian:

> J5 := Jacobian(X5); > RankBound(J5); 0 We thus have a genus 2 curve with rank zero; so to determine the rational points we can try to use Chabauty0:

> Chabauty0(J5); {@@} This shows that X5 does not have any rational points, and that therefore 29 / IsogPrimeDeg(K). We call this method the Bruin-Najman-Twist-Chabauty0∈ method. Prime 31. We apply the Bruin-Najman-Twist-Chabauty0 method with N := 31 to see that 31 / IsogPrimeDeg(K). ∈ Prime 41. Applying the Bruin-Najman-Twist-Chabauty0 method here fails at the point of computing rank bounds:

> RankBound(J5); Runtime error: Upper bound is not obtainable. Upper bound for the rank of Pic^0(X)/2*Pic^0(X) is 1.

This suggests that the rank is 1. Since the genus of this hyperelliptic curve is 3, Chabauty’s method should still in principle work to determine the points. We present here another method. These twists of the modular curves X0(N) were studied by Ozman¨ [35], who d determined for each p whether or not X (Qp) is empty; that is, if there is a local obstruction at a given place. We show, using part (5) of Ozman’s¨ Theorem 1.1 in 5 loc. cit., that X (41)(Q5) is empty. We thus adopt the notation of Section 4 of loc. cit.. Let K denote the quadratic field Q(√5), ν the prime of K lying over p = 5, and R the ring of integers of the completion K . We take N = 41, and denote by (N) the Deligne-Rapoport ν X0 26 BARINDER S. BANWAIT model of X0(N), which is smooth and regular over Z[1/N]. Letting wN be the Atkin-Lehner involution, Ozman¨ defines the set SN to be the primes p for which there is a w -fixed, F -rational point on the special fiber of (N) , and relates N p X0 /R this to the local solubility of Xd(N) as follows. Theorem 11.2 (Ozman,¨ Theorem 4.10 in [35]). Let p be a prime ramified in Q(√d) and N a square-free integer such that p is unramified in Q(√ N). Then Xd(N)(Q ) = if and only if p is in the set S . − p 6 ∅ N Thus, for our purposes, we would like to show that 5 / S . ∈ 41 Ozman¨ gives a concrete description of the primes in SN . To state it, let us make the following definitions: M = Q(√ N) − = Z[√ N] O − j( )= j-invariant of the order O O B = Q(j( )) O H = Hilbert class field of M. Then Ozman¨ proves the following. Proposition 11.3 (Ozman,¨ Proposition 4.6 in loc. cit.). Let p be an odd prime and let be a prime of M lying over p. Then p is in SN if and only if there exists a primePν of B lying over p such that the residue degree f(ν p)=1 and totally splits in H/M. | P Although this proposition is stated as only applying for odd primes, it also holds for p = 2, as proved by Ozman¨ in a separate argument appearing between Re- mark 4.8 and Theorem 4.10 in loc. cit.. This very concrete description of SN can be implemented in Sage: def oezman_sieve(p,N): """Returns True iff p is in S_N"""

M.=QuadraticField(-N) h_M = M.class_number() H = M.hilbert_class_field('b') primes_above_p = M.primes_above(p)

primes_tot_split_in_hcf = []

for P in primes_above_p: if len(H.primes_above(P)) == h_M: primes_tot_split_in_hcf.append(P)

if not primes_tot_split_in_hcf: return False

R. = QQ[] f = R(hilbert_class_polynomial(M.discriminant())) B. = NumberField(f) assert B.degree() == h_M # from Oezman's proof QUADRATIC ISOGENY PRIMES 27

possible_nus = B.primes_above(p)

for nu in possible_nus: if nu.residue_class_degree() == 1: return True

return False

Running oezman_sieve(5,41) yields False, and hence 41 / IsogPrimeDeg(K). ∈ We call this method the Ozman¨ sieve. Remark 11.4. Although Theorem 11.2 requires the prime p to be unramified in Q(√ N), the implication − p / S = Xd(N)(Q )= ∈ N ⇒ p ∅ still holds if p ramifies in both Q(√d) and Q(√ N); this is Part (6) of Theorem 1.1 of [35]. Since we shall only ever be concerned− with showing that Xd(N)(Q ) = , p ∅ we may apply oezman_sieve(p,N) for any p that ramifies in Q(√d).

Remark 11.5. Ozman¨ already used this method in Example 4.11 of loc. cit. to show that 29 / IsogPrimeDeg(K). ∈ Prime 47. The Magma Point Search Method yields that 47 IsogPrimeDeg(K): ∈ > N:=47; > X := SmallModularCurve(N,K); > rats := RationalPoints(X : Bound:=100); > P := rats[3]; > PConj := rats[4]; > jInvariant(P,N); -368136133486354759680*a - 227520642981535580160 > jInvariant(PConj,N); 368136133486354759680*a - 595656776467890339840

Prime 53. This is the first prime that is not in the list of Bruin and Najman. Fortunately, Box [8] has determined (Section 4.2 of loc. cit.) that all quadratic points on X0(53) are non-exceptional, although in a different sense to that of Bruin and Najman; namely, that all quadratic points arise from the pullback of Q-points + + on X0 (53) via the natural quotient map ρ : X0(53) X0 (53); moreover all such points correspond to Q-curves. → We may thus apply the Ozman¨ sieve to show that 53 / IsogPrimeDeg(K). Note that this case also follows from Theorem 2.5 in [15],∈ since 53 1 (mod 4), but is not a norm of K. ≡

Prime 59. Table 17 of [9] shows that X0(59) does not contain any exceptional quadratic points. The Ozman¨ sieve then shows that 59 / IsogPrimeDeg(K). ∈

Prime 61. Section 4.3 of [8] shows that X0(61) does not contain any exceptional quadratic points. The Ozman¨ sieve then shows that 61 / IsogPrimeDeg(K). ∈ 28 BARINDER S. BANWAIT

Prime 71. Table 18 of [9] shows that X0(71) does not contain any exceptional quadratic points. The Ozman¨ sieve then shows that 71 / IsogPrimeDeg(K). One may also attempt the Bruin-Najman-Twist-Chabauty0∈ method here, but the last step of calling Chabauty0 fails, since TorsionSubgroup is (at the time of writing) only implemented for Jacobians of genus 2 curves over the rationals. However, in this case, we can show that the torsion subgroup of the Jacobian of X5(71) is trivial by computing the number of points over various reductions and showing that their greatest common divisor is 1:

> my_BadPrimes := BadPrimes(X5); > set:={}; > for p in PrimesUpTo(15) do for> if not p in my_BadPrimes then for|if> J5_red := BaseChange(J5, GF(p)); for|if> set:=set join {#J5_red}; for|if> printf "prime = %o, point size = %o\n",p, #J5_red; for|if> end if; for> end for; prime = 3, point size = 1159 prime = 7, point size = 238144 prime = 11, point size = 2721600 prime = 13, point size = 8817984 > GCD(set); 1

We are thus in the following situation:

Lemma 11.6. Let X be a hyperelliptic curve over a number field K of genus 2, none of whose Weierstrass points are rational over K. Suppose also that the≥ Mordell-Weil group of the Jacobian, Jac(X)(K), is trivial. Then X(K) is empty.

Proof. Suppose for a contradiction that P X(K). We use this as the base-point for the Abel-Jacobi embedding ι : X ֒ ∈Jac(X). Write X : y2 = f(x) for f of P −→ even degree. Choose a K, define the degree 2 rational divisor D := (a, f(a))+ ∈ (a, f(a)), and consider the degree 0 divisor D 2P . Since Jac(X)(K) is trivial, p we− have that D is linearly equivalent to 2P , so there− exists a rational function g suchp that 2P = D + div(g); thus g belongs to (D), the Riemann-Roch space of D. This is a 2-dimensional K-vector space, soO we may take the functions 1 (constant function) and 1/(x a) as a basis over K. Therefore we have that − g =(x b)/(x a), from which it follows that 2P =(b, f(b))+(b, f(b)). But since P−is K-rational,− we must have that f(b) = 0, i.e. that (b, 0) is− a K-rational Weierstrass point, contradicting our hypothesis. p p 

We are grateful to Samir Siksek who explained to us the proof of the above lemma.

Prime 73. Section 4.7 of [8] determines all 11 quadratic points on X0(73) (besides the cusps), and none are defined over K. Note that this result relies on the de- + termination of the Q-points on X0 (73), completed by Balakrishnan, Best, Bianchi, Lawrence, M¨uller, Triantafillou and Vonk (Theorem 6.3 in [2]). QUADRATIC ISOGENY PRIMES 29

Prime 79. This is dealt with in the appendix to this paper, written jointly with Derickx. Using the methods described in the above example, we may now prove The- orem 1.10 more succinctly. Proof of Theorem 1.10. Table 11.1 collects the relevant information for showing that the primes in the set 23, 29, 31, 41, 47, 53, 59, 61, 71, 73 { } do not arise as isogeny primes for Q(√7), Q(√ 10), and Q(√ 5), with the sole exception of 23, which is an isogeny prime for Q−(√ 5). The relevant− result from the tables of Bruin-Najman and Box are cited, which− show that, for each p = 23 as above, if p is an isogeny prime, then it must arise as a non-exceptional K-point;6 equivalently, arise as a quadratic Q-curve. For p = 23, the cited Table shows that there is an exceptional point for Q(√ 5). The entries in the table are then one of the following: − (1) “BNTC0” - referring to the Bruin-Najman-Twist-Chabauty0 method which deals with that case; (2) the value q at which oezman_sieve(q,p) yields False, showing that no such quadratic Q-curve exists. Note that all three of the quadratic fields we consider here admit 2 ramified primes, giving us two opportunities to apply the Ozman¨ sieve (Recall Remark 11.4); (3) Either a X or ✗, referring to the cited reference allowing us to conclude immediately. Running sage quadratic_isogeny_primes D --aux_prime_count 6, for D = 7, 10 and 5 then shows that 163 is the only isogeny prime greater than 73, and the− proof of− Theorem 1.10 is complete. 

p Reference Q(√7) Q(√ 10) Q(√ 5) 23 Table 2 of Bruin-Najman 2 2− X− 29 Table 5 of Bruin-Najman 5 BNTC0 5 31 Table 7 of Bruin-Najman BNTC0 BNTC0 BNTC0 41 Table 12 of Bruin-Najman 7 5 5 47 Table 14 of Bruin-Najman 7 2 2 53 Section 4.2 of Box 2 5 5 59 Table 17 of Bruin-Najman 7 5 5 61 Section 4.3 of Box 7 5 5 71 Table 18 of Bruin-Najman 2 5 5 73 Section 4.7 of Box ✗ ✗ ✗ Table 11.1. Deciding on possible isogeny primes. The numbers in the table correspond to primes where the Ozman¨ sieve was ap- plied. “BNTC0” refers to an application of the Bruin-Najman-Twist- Chabauty0 method, and X or ✗ means the reference cited is enough to decide on that prime. Bruin-Najman refers to [9] and Box to [8]. In all cases apart from p = 23 and Q(√ 5), this table is ruling out primes. − 30 BARINDER S. BANWAIT

Appendix A. On X0(79)(Q(√5)) by Barinder S. Banwait and Maarten Derickx In this appendix we establish the following result.

Proposition A.1. The set of Q(√5)-rational points on the modular curve X0(79) consists only of the two Q-rational cusps. We begin with setting up notation and definitions. p = prime;

J0(p) = Jacobian variety of X0(p);

wp = Atkin-Lehner involution on X0(p); J (p) = the sub-abelian variety (1 + w ) J (p); 0 + p · 0 J0(p) = the sub-abelian variety (1 wp) J0(p). − − · These latter subvarieties are referred to as the + and parts of J (p) respectively, − 0 and give a decomposition of J0(p) on which wp acts as +1, respectively 1. See Chapter 2, Section 10 of [29] for more details. − Recall that the gonality of a geometrically integral curve X over a field K is 1 the smallest possible degree of a dominant rational map X PK. Throughout this appendix we will be concerned solely with the case that the→ gonality of a curve is strictly greater than 2; equivalently, we assume throughout that X is neither hyperelliptic, nor of genus 0 or 1. Proposition A.1 will follow as a corollary of the following lemma. Lemma A.2. Let K be a number field, and p a prime such that

(1) J0(p) (Q)= J0(p) (K); − − (2) the gonality of X0(p) is strictly greater than 2. Then for all x X (p)(K), x satisfies one of the following: ∈ 0 (I) x X (p)(Q); ∈ 0 or (II) x is fixed by wp; in particular the elliptic curve corresponding to x has complex multiplication by an order of Q(√ p). − Before proving the lemma we first verify that the conditions (1) and (2) are satisfied in our situation for K = Q(√5) and p = 79.

Lemma A.3. J0(79) (Q(√5)) = J0(79) (Q) = Z/13Z. − − ∼ Proof. By considering Galois orbits of newforms of weight 2 and level Γ0(79) (which can be readily done using the L-functions and Modular Forms Database [28]), we find that J0(79)+ is the elliptic curve with Cremona label 79a1 [10], and J0(79) is the five-dimensional modular abelian variety associated to the Galois orbit of− weight 2 newform with LMFDB label 79.2.a.b, which is simple over Q. Both J0(79) and its Q(√5)-twist (corresponding to the newform with LMFDB − label 1975.2.a.k) have rank 0 over Q, so J0(79) has rank 0 over Q(√5). Addition- ally, from Theorem 1 and Theorem 3 of [29] we− know that the torsion subgroup of J0(79) (Q) is isomorphic to Z/13Z. − It remains to show that the torsion subgroup of J0(79) (Q(√5)) is isomorphic to Z/13Z as well. This can be readily checked with the following− Magma code which computes the number of Fp2 -rational points on J0(79) for p =2, 3, 5. QUADRATIC ISOGENY PRIMES 31 for p in PrimesUpTo(6) do; FF := GF(p^2); print FF; A2 := AffineSpace(FF,2); X0 := ModularCurve(A2,"Atkin",79); //time Invariants(ClassGroup(X0)); //the above gives an error because magma //does not seem to realise that a modular curve //is actually a curve, so we go trough some hassle //to actually make a curve for which we can call //the class group function X0 := ProjectiveClosure(X0); dps := DefiningPolynomials(X0); R := Parent(dps[1]); P := ProjectiveSpace(R); X0 := Curve(P,dps); time Invariants(ClassGroup(X0)); end for;

The GCD of the resulting values is 13, so the torsion subgroup of

J0(79) (Q(√5)) J0(79)(Q(√5)) − ⊆ is at most of order 13. But since J0(79) (Q)tors ∼= Z/13Z, it has order exactly 13. − 

Remark A.4. The above proof actually shows that the torsion of J0(79) does not grow when considered over an arbitrary quadratic field, so that for quadratic fields K one has J0(79) (Q) = J0(79) (K) if and only if the quadratic twist of J0(79) by K has rank 0. − − −

Proposition A.5. X0(79) has gonality 4.

Proof. Since the genus of X0(79) is 6 it is neither elliptic or rational. That it is not hyperelliptic is Theorem 2 of [34]. Thus the gonality is at least 3. + On the other hand, the gonality is at most 4, since X0 (79) := X0(79)/w79 is an elliptic curve (indeed, the same elliptic curve 79a1 identified in the proof of Lemma A.3). That the gonality is not 3 follows from Theorem 2.1 (e) of [16]. 

Having established that the conditions of Lemma A.2 are satisfied in our case of interest, it is straightforward to show that Proposition A.1 follows from Lemma A.2.

Proof of Proposition A.1. Let x X (79)(Q(√5)) be a point. From Lemma A.2 ∈ 0 we have that either x X0(79)(Q) or the elliptic curve corresponding to x has complex multiplication∈ by Q(√ 79). Since Q(√ 79) has class number 5 we know − − that none of the fixed points of wp are defined over a quadratic field, let alone over Q(√5); thus we must have x X0(79)(Q). That x must therefore be one of the two Q-rational cusps follows from∈ Theorem 1 of [30]. 

Before proving Lemma A.2, we require one final lemma. 32 BARINDER S. BANWAIT

Lemma A.6. Let p be a prime such that the gonality of X0(p) is strictly greater than 2, and let f be the map f : X (p) J (p) 0 → 0 x w (x) x. 7→ p − Then the following statements hold. (i) f is injective away from the fibre above 0; (ii) The points in the fibre above 0 are fixed points of wp and correspond to elliptic curves with complex multiplication by Q(√ p). − Proof. (i) Suppose f(x)= f(y). Then wp(x)+y is linearly equivalent to wp(y)+ x as degree 2 divisors. Since X0(p) has gonality strictly greater than 2, we get equality of the divisors, not just up to linear equivalence. This means that either x = y; or wp(x)= x and wp(y)= y, in which case f(x)= f(y) = 0. (ii) Since X0(p) is not rational the fibre above 0 consists of the fixed points of wp. It is well-known that these fixed points correspond to elliptic curves with complex multiplication by Q(√ p); see for example Section 2 of [34]. − 

We are now finally ready for the proof of Lemma A.2.

Proof of Lemma A.2. Let x X0(p)(K) be a point. If f(x) = 0 then by the above lemma we are in case (II) of∈ Lemma A.2, so from now on assume that f(x) = 0. 6 The image of f is contained in J0(p) , so the first condition of Lemma A.2 implies − that f(x) J0(p)(Q). But since f is injective away from the fibre above 0, we know that x is the∈ only element in its fibre, and thus must also be Q-rational; i.e. we are in case (I) of Lemma A.2. 

References 1. Eric Bach and Jonathan Sorenson, Explicit bounds for primes in residue classes, Mathematics of Computation 65 (1996), no. 216, 1717–1735. 2. Jennifer S Balakrishnan, Alex J Best, Francesca Bianchi, Brian Lawrence, J Steffen M¨uller, Nicholas Triantafillou, and Jan Vonk, Two recent p-adic approaches towards the (effective) Mordell conjecture, Preprint available online at https://arxiv.org/abs/1910.12755, 2019. 3. Jennifer S Balakrishnan and Netan Dogra, Quadratic Chabauty and rational points, I: p-adic heights, Duke Mathematical Journal 167 (2018), no. 11, 1981–2038, With an appendix by J. Steffen M¨uller. 4. Jennifer S Balakrishnan, Netan Dogra, J Steffen M¨uller, Jan Tuitman, and Jan Vonk, Explicit Chabauty-Kim for the split Cartan modular curve of level 13, Annals of mathematics 189 (2019), no. 3, 885–944. 5. Barinder S Banwait, Quadratic Isogeny Primes, https://github.com/barinderbanwait/ quadratic_isogeny_primes, 2021, Distributed under the GPL v3+ license. + r 6. Yuri Bilu, Pierre Parent, and Marusia Rebolledo, Rational points on X0 (p ), Ann. Inst. Fourier (Grenoble) 63 (2013), no. 3, 957–984. 7. Wieb Bosma, John Cannon, and Catherine Playoust, The Magma algebra system. I. The user language, J. Symbolic Comput. 24 (1997), no. 3-4, 235–265, Computational algebra and number theory (London, 1993). MR MR1484478 8. Josha Box, Quadratic points on modular curves with infinite Mordell–Weil group, Preprint available online at https://arxiv.org/abs/1906.05206, 2019. 9. Peter Bruin and Filip Najman, Hyperelliptic modular curves X0(n) and isogenies of elliptic curves over quadratic fields, LMS Journal of Computation and Mathematics 18 (2015), no. 1, 578–602. QUADRATIC ISOGENY PRIMES 33

10. John E Cremona, Algorithms for modular elliptic curves, Cambridge University Press, 1997. 11. Agn`es David, Caract`ere d’isog´enie et crit`eres d’irr´eductibilit´e, Preprint available online at https://arxiv.org/abs/1103.3892, 2012. 12. Maarten Derickx, Sheldon Kamienny, William Stein, and Michael Stoll, Torsion points on elliptic curves over number fields of small degree, Preprint available online at https://arxiv. org/abs/1707.00364, 2017. 13. Noam D Elkies, Elliptic and modular curves over finite fields and related computational is- sues, Computational Perspectives on Number Theory: Proceedings of a Conference in Honor of A.O.L. Atkin (Providence, R.I.) (D.A. Buell and J.T. Teitelbaum, eds.), American Math- ematical Society, 1998, pp. 21–76. + 14. Steven D. Galbraith, Rational points on X0 (p), Experiment. Math. 8 (1999), no. 4, 311–318. 15. Josep Gonz´alez, Joan-Carles Lario, and Jordi Quer, Arithmetic of Q-curves, Modular Curves and Abelian Varieties (Basel) (John E Cremona, Joan-Carles Lario, Jordi Quer, and Ken- neth A Ribet, eds.), Birkh¨auser Basel, 2004, pp. 125–139. 16. Daeyeol Jeon, Modular curves with infinitely many cubic points, Journal of Number Theory 219 (2021), 344–355. 17. Sheldon Kamienny, Torsion points on elliptic curves and q-coefficients of modular forms, Inventiones mathematicae 109 (1992), no. 1, 221–229. 18. Sheldon Kamienny and Barry Mazur, Rational torsion of prime order in elliptic curves over number fields, Ast´erisque 228 (1995), 81–100, With an appendix by . 19. M.A. Kenku, The modular curve X0(39) and rational isogeny, Mathematical Proceedings of the Cambridge Philosophical Society, vol. 85, Cambridge University Press, 1979, pp. 21–23. 20. , The modular curve X0(169) and rational isogeny, Journal of the London Mathematical Society 2 (1980), no. 2, 239–244. 21. , The modular curves X0(65) and X0(91) and rational isogeny, Mathematical Pro- ceedings of the Cambridge Philosophical Society, vol. 87, Cambridge University Press, 1980, pp. 15–20. 22. , On the modular curves X0(125), X1(25), and X1(49), Journal of the London Math- ematical Society 2 (1981), no. 3, 415–427. 23. , The motivic fundamental group of P1 0, 1, and the theorem of Siegel, Inventiones mathematicae 161 (2005), no. 3, 629–656. \{ ∞} 24. , The unipotent Albanese map and Selmer varieties for curves, Publ. Res. Inst. Math. Sci. 45 (2009), no. 1, 89–133. 25. Jeffrey C Lagarias, Hugh L Montgomery, and Andrew M Odlyzko, A bound for the least prime ideal in the Chebotarev density theorem, Inventiones mathematicae 54 (1979), no. 3, 271–296. 26. Eric Larson, Effective Chebotarev Density, MathOverflow question, 2011, https:// mathoverflow.net/q/52211 (version: 2018-06-09). 27. Eric Larson and Dmitry Vaintrob, Determinants of subquotients of Galois representations associated with abelian varieties, Journal of the Institute of Mathematics of Jussieu 13 (2014), no. 3, 517–559. 28. The LMFDB Collaboration, The L-functions and modular forms database, http://www. lmfdb.org, 2021, [Online; accessed 5 February 2021]. 29. Barry Mazur, Modular curves and the Eisenstein ideal, Publications Math´ematiques de l’Institut des Hautes Etudes´ Scientifiques 47 (1977), no. 1, 33–186, With an appendix by Barry Mazur and Michael Rapoport. 30. , Rational isogenies of prime degree, Inventiones mathematicae 44 (1978), no. 2, 129– 162, With an appendix by Dorian Goldfeld. 31. Lo¨ıcMerel, Bornes pour la torsion des courbes elliptiques sur les corps de nombres, Inventiones mathematicae 124 (1996), no. 1-3, 437–449. 32. Fumiyuki Momose, Isogenies of prime degree over number fields, Compositio Mathematica 97 (1995), no. 3, 329–348. 33. Andrew Ogg, Abelian curves of 2-power conductor, Proceedings of the Cambridge Philosoph- ical Society 62 (1966), 143–148. 34. Andrew P. Ogg, Hyperelliptic modular curves, Bulletin de la Soci´et´eMath´ematique de France 102 (1974), 449–462 (en). MR 51 #514 35. Ekin Ozman,¨ Points on quadratic twists of X0(N), Acta Arithmetica 152 (2012), 323–348. 34 BARINDER S. BANWAIT

36. Ekin Ozman¨ and Samir Siksek, Quadratic points on modular curves, Mathematics of Compu- tation 88 (2019), no. 319, 2461–2484. 37. The PARI Group, Univ. Bordeaux, PARI/GP version 2.11.4, 2018, available from http:// pari.math.u-bordeaux.fr/. 38. The Sage Developers, Sagemath, the Sage Mathematics Software System (Version 9.0), 2020, https://www.sagemath.org. 39. Guido van Rossum, Barry Warsaw, and Nick Coghlan, Style guide for Python code, PEP 8, Python Software Foundation, 2001, https://www.python.org/dev/peps/pep-0008/.

Barinder S. Banwait, Harish-Chandra Research Institute, Prayagraj, India Email address: [email protected]