Curves over Number Fields#
The functions in this section are for elliptic curves defined over number fields. For the most part, the functionality is a subset of that available for curves over \({\mathbb{Q}}\), with functions having similar names and arguments.
Note that functions related to Mordell–Weil groups and descent are in Section Mordell–Weil Groups and Descent Methods rather than this section.
Local Invariants#
The routines listed here, when nontrivial, are based on an implementation of Tate’s algorithm.
- Conductor(E): CrvEll -> RngOrdIdl#
The conductor is part of the data computed by
LocalInformation(described below).
- BadPlaces(E): CrvEll -> SeqEnum#
Given an elliptic curve \(E\) defined over a number field \(K\), returns the places of \(K\) of bad reduction for \(E\). i.e., the places dividing the discriminant of \(E\).
- BadPlaces(E, L): CrvEll, FldNum -> SeqEnum#
Given an elliptic curve \(E\) defined over a number field \(K\) and a number field \(L\), such that \(K\) is a subfield of \(L\), returns the places of \(L\) of bad reduction for \(E\).
- LocalInformation(E, P): CrvEll, RngOrdIdl -> Tup, CrvEll#
UseGeneratorAsUniformiser: BoolElt Default: false
Implements Tate’s algorithm for the elliptic curve \(E\) over a number field. This intrinsic computes local reduction data at the prime ideal \(P\), and a local minimal model. The model is not required to be integral on input. Output is \(\langle P, v_p(d), f_p, c_p, K, s \rangle\) and \(E_{min}\) where \(P\) is the prime ideal, \(v_p(d)\) is the valuation of the local minimal discriminant, \(f_p\) is the valuation of the conductor, \(c_p\) is the Tamagawa number, \(K\) is the Kodaira Symbol, and \(s\) is
falseif the curve has non-split multiplicative reduction at \(P\) andtrueotherwise. \(E_{min}\) is a model of \(E\) (integral and) minimal at \(P\).When the optional parameter
UseGeneratorAsUniformiseris settrue, the computation checks whether \(P\) is principal, and if so, uses generator of \(P\) as the uniformiser. This means that at primes other that \(P\), the returned model will still be integral or minimal if the given curve was.
- LocalInformation(E): CrvEll -> [ Tup ]#
Return a sequence of the tuples returned by
LocalInformation(E, P)for all prime ideals \(P\) in the decomposition of the discriminant of \(E\) in the maximal order of the number field the elliptic curve \(E\) is over.
- Reduction(E, p): CrvEll, RngOrdIdl -> CrvEll, Map#
Given an elliptic curve \(E\) over a number field given by a model which is integral at \(p\) and has good reduction at \(p\), returns an elliptic curve over the residue field of \(p\) which represents the reduction of \(E\) at \(p\). The reduction map is also returned.
Complex Multiplication#
- HasComplexMultiplication(E): CrvEll -> BoolElt, RngIntElt#
Given an elliptic curve \(E\) over a number field, the function determines whether the curve has complex multiplication and, if so, also returns the discriminant of the CM quadratic order. The algorithm uses fairly straightforward analytic methods, which are not suited to very high degree j-invariants with CM by orders with discriminants more than a few thousand.
Heights#
- NaiveHeight(P): PtEll -> FldPrElt#
Given a point \(P\) on an elliptic curve over a number field \(K\), the function returns the naive height of \(P\); i.e., the absolute logarithmic height of the \(x\)-coordinate.
- Height(P : parameters): PtEll -> FldPrElt#
Precision: RngIntElt Default: 27 Extra : RngIntElt Default: 8
Given a point \(P\) on an elliptic curve defined over a number field \(K\), returns the Néron-Tate height \(\hat{h}(P)\). (This is based on the absolute logarithmic height of the \(x\)-coordinate.) The parameter
Precisionmay be used to specify the desired precision of the output. The parameterExtrais used in the cases when one of the points \(2^n P\) gets too close to the point at infinity, in which case there is a huge loss in precision in the archimedean height and increasingExtraremedies that problem.
- HeightPairingMatrix(P : parameters): [PtEll] -> AlgMatElt#
Compute the height pairing matrix for an array of points. Same parameters as above.
- LocalHeight(P, Pl : parameters): PtEll, PlcNumElt -> FldPrElt#
Precision: RngIntElt Default: 0 Extra : RngIntElt Default: 8
Given a point \(P\) on an elliptic curve defined over a number field \(K\), and a place \(Pl\) (finite or infinite) of \(K\), returns the local height \(\lambda_{Pl}(P)\) of \(P\) at \({Pl}\). The parameter
Precisionsets the precision of the output. A value of 0 takes the default precision.When \(Pl\) is an infinite place, the parameter
Extracan be used to remedy the huge loss in precision when one of the points \(2^n P\) gets too close to the point at infinity.
- HeightDifferenceBounds(E): CrvEll -> FldReElt, FldReElt#
- HeightDifferenceLowerBound(E): CrvEll -> FldReElt#
- HeightDifferenceUpperBound(E): CrvEll -> FldReElt#
These functions return bounds for the difference between the naive and canonical heights on the elliptic curve \(E\). Here all heights are absolute logarithmic heights with respect to the \(x\)-coordinate on \(E\). The functions return real numbers \(l\) and \(u\) such that \(l \le\)
NaiveHeight(P) - Height(P)\(\le u\) for all points \(P \in E(K),\) where \(K\) is the base field of \(E\). Note that the lower bound \(l\) is negative.The bounds are the strongest available, choosing between the Cremona–Prickett–Siksek bounds and the Silverman bounds.
- CPSHeightBounds(E): CrvEll -> FldReElt, FldReElt#
The Cremona–Prickett–Siksek bounds for the height difference.
- SilvermanHeightBounds(E): CrvEll -> FldReElt, FldReElt#
The Silverman bounds for the height difference.
Integral Points#
- IntegralPoints(E): CrvEll[FldNum] -> [ PtEll ]#
FBasis : [ PtEll ] Default: SafetyFactor: RngIntElt Default: 2
Given an elliptic curve \(E\) over a number field which is a direct extension of the rational field, this intrinsic returns a sequence containing all integral points on the given model of \(E\), up to sign (only one of \(P\) and \(-P\) is listed).
The parameters
FBasisandSafetyFactorhave exactly the same meaning as in the functionIntegralPointsfor curves over \({\mathbb{Q}}\).Currently,
FBasismust be specified: it must be a (nonempty) sequence of points in the Mordell–Weil group of \(E\). The routine finds all integral points in the group generated by the given points.The base field of \(E\) must also current be totally real and \(E\) must have nontrivial torsion.
Elliptic Curve Chabauty#
This refers to a method for finding the rational points on a curve, if the curve admits a suitable map to an elliptic curve over some extension field. The method was developed by Nils Bruin (see [Bruin, 2003] or [Bruin, n.d.]). The first intrinsic follows a Mordell–Weil sieve based strategy, similar to that used in Chabauty for genus \(2\) curves (see [Bruin and Stoll, 2010]).
- Chabauty(MWmap, Ecov): Map, MapSch -> SetEnum, RngIntElt#
InertiaDegreeBound: RngIntElt Default: 20 SmoothBound : RngIntElt Default: 50 PrimeBound : RngIntElt Default: 30 IndexBound : RngIntElt Default: InitialPrimes : RngIntElt Default: 50 verbose : EllChab Default: Verbose : 3
Let \(E\) be an elliptic curve defined over a number field \(K\). This function attempts to determine the subset of \(E(K)\) consisting of those points that have a \({\mathbb{Q}}\)-rational image under a given map \(E \rightarrow {\bf P}^1\).
The arguments are:
a map
MWmap: \(A \rightarrow E\) from an abstract abelian group into \(E(K)\),a map
Ecov: \(E \rightarrow {\bf P}^1\) defined over \(K\).
The returned values are a finite subset \(V\) of \(A\) and an integer \(R\). The set \(V\) consists of all the points in the image of \(A\) in \(E(K)\) that have a \({\mathbb{Q}}\)-rational image under the given map
Ecov. If the index of \(A\) in \(E(K)\) is finite and coprime to \(R\) then \(V\) consists of all points in \(E(K)\) with \({\mathbb{Q}}\)-rational image. Changing the various optional parameters can change the performance of this routine considerably. In general, it is not proven that this routine will return at all.The parameter
InertiaDegreeBounddetermines the maximum inertia degree of primes at which local information is obtained.Only places for which the group order of the rational points on the reduction of \(E\) is smooth relative to
SmoothBoundare used.The Mordell–Weil sieving process only uses information from \(E(K)/ B E(K)\), where \(B\) is smooth relative to
PrimeBound.If
IndexBoundis specified, then the returned value \(R\) will only contain prime divisors fromIndexBound. Setting this parameter may make it impossible for the routine to terminate.
- Chabauty(MWmap, Ecov, p): Map, MapSch, RngIntElt -> RngIntElt, SetEnum, RngIntElt, Tup#
Cosets : Tup Default: Aux : SetEnum Default: Precision: RngIntElt Default: Bound : RngIntElt Default: verbose : EllChab Default: Verbose : 3
Let \(E\) be an elliptic curve defined over a number field \(K\). This function bounds the set of points in \(E(K)\) whose images under a given map \(E \rightarrow {\bf P}^1\) are \({\mathbb{Q}}\)-rational.
The arguments are as follows:
a map
MWmap: \(A \rightarrow E\) from an abstract group into \(E(K)\) (as returned byMordellWeilGroup),a map of varieties
Ecov: \(E\rightarrow{\bf P}^1\) defined over \(K\), anda rational prime \(p\), such that \(E\) and the map
Ecovhave good reduction at primes above \(p\).
The returned values are \(N\), \(V\), \(R\) and \(L\) as follows. Let \(G\) denote the image of \(A\) in \(E(K)\).
\(N\) is an upper bound for the number of points \(P \in G\) such that \({\tt Ecov}(P) \in {\bf P}^1({\mathbb{Q}})\) (note that \(N\) can be \(\infty\)).
\(V\) is a set of elements of \(A\) found by the program that have images in \({\bf P}^1({\mathbb{Q}})\),
\(R\) is a number with the following property: if \([E(K) : G]\) is finite and coprime to \(R\), then \(N\) is also an upper bound for the number of points \(P \in E(K)\) such that \({\tt Ecov}(P) \in {\bf P}^1({\mathbb{Q}})\), and
\(L\) is a collection of cosets in \(A\) such that \((\bigcup L)\cup V\) contains all elements of \(A\) that have images in \({\bf P}^1({\mathbb{Q}})\).
If
Cosets(\(<C_j>\)) are supplied (a coset collection of \(A\)), then the bounds and results are computed for \(A \cap (\bigcup C_j)\).If
Auxis supplied (a set of rational primes), then the information at \(p\) is combined with the information at the other primes supplied.If
Precisionis supplied, this is the \(p\)-adic precision used in the computations. If not, a generally safe default is used.If
Boundis supplied, this determines a search bound for finding \(V\).The algorithm used is based on [Bruin, 2003] and [Bruin, 2002].
Further examples and discussion can be found in [Bruin, n.d.].
- Example: E Cchabauty (ex-73eaae)#
This example is motivated and explained in detail in [Bruin, n.d.] (Section 7). Let \(E\) be the elliptic curve
\[y^2 = x^3 + (-3\zeta^3-\zeta+1)dx^2 + (-\zeta^2-\zeta-1)d^2x, \ \ d = 2\zeta^3-2\zeta^2-2\]over \(K := {\mathbb{Q}}(\zeta)\) where \(\zeta\) is a primitive \(10\)th root of unity.
> _<z> := PolynomialRing(Rationals()); > K<zeta> := NumberField(z^4-z^3+z^2-z+1); > OK := IntegerRing(K); > d := 2*zeta^3-2*zeta^2-2; > E<X,Y,Z> := EllipticCurve( > [ 0, (-3*zeta^3-zeta+1)*d, 0, (-zeta^2-zeta-1)*d^2, 0 ]);
Next we determine as much as possible of \(E(K)\), allowing Magma to choose the method.
> success, G, GtoEK := PseudoMordellWeilGroup(E); > G; Abelian Group isomorphic to Z/2 + Z/2 + Z + Z Defined on 4 generators Relations: 2*G.1 = 0 2*G.2 = 0 > success; true
Here \(G\) is an abstract group and
GtoEKinjects it into \(E(K)\). Since the flag istrue, this is a subgroup of finite, odd index in \(E(K)\). Next, we determine the points \((X:Y:Z)\) in this subgroup for which the function\[u : E \rightarrow {\bf P}^1 : (X:Y:Z) \rightarrow d (-X + (\zeta^3 - 1) Z : X+d (-\zeta^3-\zeta) Z)\]takes values in \({\bf P}^1({\mathbb{Q}})\).
> P1 := ProjectiveSpace(Rationals(),1); > u := map< E->P1 | [-X + (zeta^3 - 1)*d*Z, X+(-zeta^3-zeta)*d*Z] >; > V, R := Chabauty( GtoEK, u); > V; { 0, G.3 - G.4, -G.3 + G.4, G.3 + G.4, -G.3 - G.4 } > R; 320
We see that the routine assumed that the image of
GtoEKis \(2\)- and \(5\)-saturated in \(E(K)\). We can ask it to not assume anything outside 2.> V2, R := Chabauty( GtoEK, u: IndexBound:= 2); > V eq V2; true > R; 16
This means that we have found all points in \(E(K)\) that have a rational image under \(u\). If one wants to find the images of these points then it is necessary in this example to first extend \(u\) (by finding alternative defining equations for it) so that it is defined on all the points.
> u := Extend(u); > [ u( GtoEK(P) ) : P in V ]; [ (-1 : 1), (-1/3 : 1), (-1/3 : 1), (-3 : 1), (-3 : 1) ]
Alternatively, we can apply Chabauty’s method without Mordell–Weil sieving.
> N, V, R, C := Chabauty( GtoEK, u, 3); > N; 5 > V; { 0, G.3 - G.4, -G.3 + G.4, G.3 + G.4, -G.3 - G.4 } > R; 4
The
Chabautycalculations prove that there are at most \(N\) elements in \(G\) whose image under \(u\) is \({\mathbb{Q}}\)-rational. Also, \(V\) is a set of elements with this property. Since here \(N = 5 = \#V\), these are the only such elements. Moreover, the calculations prove that if \([E(K) : G]\) is coprime to \(R\), then \(N\) is actually an upper bound on the number of elements in \(E(K)\) whose image under \(u\) is \({\mathbb{Q}}\)-rational. We know from thePseudoMordellWeilGroupcomputation that \([E(K) : G]\) is odd. Therefore we have solved our problem for \(E(K)\), not just for \(G\).
Auxiliary Functions for Etale Algebras#
This section contains machinery for number fields (and more generally “etale algebras”, i.e. algebras of the form \({\mathbb{Q}}[x]/p(x)\)), intended to perform the number field calculations that are involved in computing Selmer groups of geometric objects.
It has become conventional to refer to “the \(p\)-Selmer group” of a number field \(K\) (or, more generally, of an etale algebra) relative to a finite set \(S\) of \(K\)-primes. It means the finite subgroup \(K(S,p)\) of \(K^*/(K^*)^p\), consisting of those elements whose valuation at every prime outside \(S\) is a multiple of \(p\).
- AbsoluteAlgebra(A): RngUPolRes -> SetCart, Map#
Fields : SetEnum Default: { } verbose: EtaleAlg Default: Verbose : 1
Given a separable commutative algebra over \({\mathbb{Q}}\), an absolute number field or a finite field, the function returns the isomorphic direct sum of absolute fields as a cartesian product and the isomorphisms to and from this product. The optional parameter
Fieldsenables the user to suggest representations of the absolute fields. If this function finds it needs a field isomorphic to one occurring in the supplied list, then it will use the given field. Otherwise it will construct a field itself. The isomorphism is returned as a second argument. If called twice on the same algebra, it will recompute if the Fields argument is given. Otherwise it will return the result computed the first time.
- pSelmerGroup(A, p, S): RngUPolRes, RngIntElt, SetEnum[RngOrdIdl] -> GrpAb, Map#
verbose: EtaleAlg Default: Verbose : 1
Returns the \(p\)-Selmer group of a semi-simple algebra \(A\). The set \(S\) of ideals should be prime ideals of the underlying number field. The group returned is the direct sum of the \(p\)-Selmer groups of the irreducible summands of \(A\) and the map is the obvious embedding in the multiplicative group of \(A\). An implied restriction is that
BaseRing(A)be of typeFldNum. See alsopSelmerGroup. If an algebra over the rationals is required, create a degree \(1\) extension byRationalsAsNumberField();
- LocalTwoSelmerMap(P): RngOrdIdl -> Map#
Let \(K\) be the number field associated with the prime ideal \(P\). The map returned is \(K^* \rightarrow K_P^* / K_P^{*2}\), where \(K_P\) is the completion of \(K\) at \(P\). The codomain is represented as a finite abelian group.
- LocalTwoSelmerMap(A, P): RngUPolRes, RngOrdIdl -> Map, SeqEnum#
Let \(K\) be the base field of the commutative algebra \(A\) and let \(P\) be a prime ideal in \(K\). Then this function returns a map \(A^*\rightarrow A^*/A^{*2}\otimes K_P\), where \(K_P\) is the completion of \(K\) at \(P\). The codomain is represented as a finite abelian group.
This map is computed by using
LocalTwoSelmerMap(Q)for the various extensions \(Q\) of \(P\) to the fields making upAbsoluteAlgebra(A). The map returned is essentially the direct sum of all these maps. For technical purposes, one may also wish to use the components of the map coming from each number field; these are given by the second return value, which is a sequence of records (ordered in the same way as the results are concatenated in the returned map). Each record contains itemsi, p, map and vmap. Hereiis an index indicating which number field inAbsoluteAlgebra(A)the record corresponds to,pis an extension of \(P\) to a prime in that number field,mapisLocalTwoSelmerMap(p), andvmapis the valuation map at \(p\) on that number field.
- Example: Selmer Etale (ex-bd3f0b)#
> P<x> := PolynomialRing(Rationals()); > A := quo<P | x^3 - 1>; > AA := AbsoluteAlgebra(A); > AA; Cartesian Product <Number Field with defining polynomial x - 1 over the Rational Field, Number Field with defining polynomial x^2 + x + 1 over the Rational Field>
Analytic Information#
- RootNumber(E, P): CrvEll, RngOrdIdl -> RngIntElt#
The local root number of the elliptic curve \(E\) (defined over a number field) at the prime ideal \(P\). The formulae are due to Rohrlich, Halberstadt, Kobayashi and the Dokchitser brothers.
- RootNumber(E): CrvEll -> RngIntElt#
Calculates the global root number of an elliptic curve \(E\) defined over a number field \(K\). This is the product of local root numbers over all places of \(K\) (\(-1\) from each infinite place), and is the (conjectural) sign in the functional equation relating \(L(E/K,s)\) to \(L(E/K,2-s)\).
- AnalyticRank(E): CrvEll -> RngIntElt, FldReElt#
Precision: RngIntElt Default: 6
Determine the analytic rank of the elliptic curve \(E\), which is defined over a number field \(K\). The algorithm used is heuristic, computing derivatives of the \(L\)-function \(L(E/K,s)\) at \(s=1\) until one appears to be nonzero; it also assumes the analytic continuation and the functional equation for the \(L\)-function. The function returns the first nonzero derivative \(L^{(r)}(1)/r!\) as a second argument. The precision is optional, and is taken to be \(6\) digits if omitted.
- ConjecturalRegulator(E): CrvEll -> FldReElt, RngIntElt#
Precision: RngIntElt Default: 10
Using the
AnalyticRankfunction, this function calculates an approximation, assuming that the Birch–Swinnerton-Dyer conjecture holds, to the product of the regulator of the elliptic curve \(E\) and the order of the Tate–Shafarevich group. The (assumed) analytic rank is returned as a second value.
- ConjecturalSha(E, Pts): CrvEll, SeqEnum[PtEll] -> FldReElt#
Precision: RngIntElt Default: 6
For an elliptic curve \(E\) defined over a number field \(K\) and a sequence of points in \(E(K)\) which purportedly form its basis modulo torsion, computes the conjectural order of the Tate–Shafarevich group \(\rm III\hskip-10.2pt{\vrule width9.5pt depth0pt height0.3pt}\hskip 2pt(E/K)\). This function computes the product of the regulator and \(\rm III\hskip-10.2pt{\vrule width9.5pt depth0pt height0.3pt}\hskip 2pt\) from the Birch–Swinnerton-Dyer conjecture (using
ConjecturalRegulator) and divides by the determinant of the height pairing matrix for the points supplied inPts. It returns 0 if the points are linearly dependent or they generate a group of rank less than the analytic rank. If the points generated a subgroup of index \(n>1\), it returns \(n^2\cdot|\rm III\hskip-10.2pt{\vrule width9.5pt depth0pt height0.3pt}\hskip 2pt|\).
Elliptic Curves of Given Conductor#
This section describes search routines for finding elliptic curves with given conductor, or with good reduction outside a given set of primes. The aim is not to provably find all such curves; in most cases, this would be a very difficult task using current algorithms. Rather the aim is to efficiently search for these curves, using a variety of techniques, taking advantage of all available information, and taking advantage of all the tools available in Magma which can be applied to the problem.
The routine is very much more effective when some traces of Frobenius are known for the desired curve. The principal application of this is for finding elliptic curves that match known modular forms.
These functions are effective for finding elliptic curves over \({\mathbb{Q}}\), as well as over number fields. For this, one must create \({\mathbb{Q}}\) using RationalsAsNumberField().
- EllipticCurveSearch(N, Effort): RngOrdIdl, RngIntElt -> SeqEnum#
- EllipticCurveWithGoodReductionSearch(S, Effort): Set, RngIntElt -> SeqEnum#
- EllipticCurveWithGoodReductionSearch(N, Effort): RngOrdIdl, RngIntElt -> SeqEnum#
Full : BoolElt Default: false Max : RngIntElt Default: Primes : SeqEnum Default: Traces : SeqEnum Default: verbose: ECSearch Default: Verbose : 2
These functions perform a search for elliptic curves with specified conductor(s). The first function finds curves with conductor equal to the given ideal \(N\). The “good reduction” functions find curves with conductors divisible only by primes that belong to the given set \(S\) or that divide the given ideal \(N\). The functions aim to find as many distinct isogeny classes as possible (or
Maxclasses, ifMaxis specified). A sequence is returned containing all curves found that have the specified conductor(s). It will not return more than one curve in the same isomorphism class. It may return several curves in the same isogeny class, although no attempt is made to find all isogenous curves.The second argument,
Effort, is an integer which controls how much effort is used before returning; the running time depends on this variable in a roughly linear way, except with significant step-ups at values where an additional technique begins to be used. Currently,Effort := 400is the smallest value where all available techniques are used. (This may be changed in the future.)There are two ways to specify an early stopping condition:
- (i)
If the optional argument
Maxis set to some positive integer, the routine terminates as soon asMaxnon-isogenous curves are found.- (ii)
The optional arguments
PrimesandTracesmay be used together to specify some traces of Frobenius of the desired curve(s). HerePrimesis a sequence of prime ideals coprime to the conductor(s), andTracesis a sequence of integers of the form \([\ a_P : P \in \rm{Primes}\ ]\). Alternatively,Tracesmay be a sequence of sequences of that form. The routine aims to find curves whose traces match the specified sequences, and terminates as soon as one curve of each kind has been found. The algorithm uses the trace information to cut down the search by a large factor.
Warning: ALL curves found during the search are returned (possibly including curves whose traces do not match the specified data).
If an early stopping condition has been specified, the routine initially tries with lower effort, so that it will succeed quickly for easier input. The effort is incremented exponentially up to the specified
Effort. (This is a breadth-first search strategy. The algorithm involves doing a large number of independent searches, and each elliptic curve can be found in only one of these searches, so it is necessary to alternate between them. There is no way to reliably predict how much effort will be needed, but the search usually takes far longer when the effort is larger than necessary.) To override this behaviour and begin with the full specifiedEffort, the optionFullshould be used. (This is intended for the case where the same search has already been done with a lowerEffort).If
SetVerbose("ECSearch", 1)is used, information about the search is printed during computation. In particular, curves with the desired conductor are printed when they are found, so that they can be obtained without waiting for the routine to finish.