The area of number theory known as "arithmetic algebraic geometry" is mainly concerned with studying algebraic varieties over a non-algebraically closed base field, especially properties that are highly sensitive to the base field. For instance, one seeks to understand the set of rational points and other rationality questions, points over local or finite fields, and associated L-functions.
Magma has extensive packages dealing with arithmetic features for several much-studied classes of curves. Many algorithms of interest for curves over global fields are implemented not only over ℚ but also over number fields or function fields. The main packages are:
Rational curves and conics
Elliptic curves
Genus one curves
Hyperelliptic curves
L-functions
Rational curves and conics in Magma are nonsingular plane curves of degree 1 and 2, respectively. The central functionality for conics concerns the existence of points over the rationals. If a point is known to exist, then a conic can be parameterized by a projective line or a rational curve. A rational curve in Magma is a linearly embedded image of the projective line, to which the full machinery of algebraic plane curves may be applied. Tools provided include the local-global theory, the existence of points on conics, efficient algorithms for finding rational points, parametrizations and isomorphisms of genus zero curves.
Computation of a conic model, for an arbitrary curve of genus zero
Diagonalization of a given conic over a general field
Over number fields, a careful diagonalization routine which avoids making the discriminant harder to factor
Routines to decide whether a conic is solvable, over ℚ, number fields and function fields; calculation of Hilbert symbols
Solution of conics over ℚ using Simon's algorithm (this involves LLL-reduction of an indefinite form, and includes Cremona-Rusin reduction as a special case)
Solution of conics over rational function fields using the algorithm of Cremona-van Hoeij
Solution of conics over number fields using an algorithm based on Lagrange's method plus other techniques
Reduction of a rational point on a conic so that its coordinates satisfy Holzer's bounds (using an algorithm due to Mordell)
Parametrization of a general conic using a known point
Simon's parametrization for conics over ℚ
Magma contains an extensive module for computing with elliptic curves. The reader should note that elliptic curves inherit from the general plane curve datatype so that all plane curve operations are applicable in addition to those listed below.
Creation of an elliptic curve over a field
Creation of an elliptic curve with given j-invariant
Creation of an elliptic curve from a general genus 1 curve
Models: Weierstrass form, integral model, minimal model, simplified model
Arithmetic with rational points, including division
Extension and lifting of curves induced by maps of base rings
Function fields, divisors, places
Invariants: b-invariants, c-invariants, j-invariant, discriminant
Division polynomials
Subgroups and subschemes of elliptic curves as separate types
Extension and lifting of maps induced by change of base ring of curves
Isomorphisms, isogenies and rational maps between curves, translation maps on a curve
Isogeny operations: degree, composition, construction with given kernel, Frobenius endomorphism
Kernel and image of an isogeny as subgroups, image and preimage of a subgroup under an isogeny
Endomorphisms
Isomorphism operations: inverses, composition
Testing for isomorphic curves over fields with root-finding
Testing for isogenous curves over finite fields via point-counting, and over the rationals via kernels (a map is returned also here)
Magma contains implementations of various methods for point-counting, each optimized for fields in a certain range. In addition, there are efficient implementations of some items of cryptographic interest, including pairings and GHS.
Characterization of ordinary and supersingular elliptic curves
Representative supersingular curve
Enumeration of all points (small fields), random point
Quadratic twist, all quadratic twist, all twists
Order of a point via baby-step–giant-step for small p
Schoof-Elkies-Atkin (SEA) algorithm for finding the order of the group of rational points
Schoof-Elkies-Atkin (SEA) algorithm with early abort facility for searching for cryptographically secure curves
Lercier's extension of the SEA algorithm
p-adic canonical lift methods for determining the number of points over finite fields of small characteristic p (p up to around 50).
p-adic deformation methods for determining the number of points over finite fields of smallish characteristic p not covered by canonical lift.
Structure of the abelian group of rational points
The zeta function of a curve
Discrete logarithm (parallel collision search version of the Pollard rho algorithm)
Weil, Tate and Eta pairings
Gaudry-Hess-Smart (GHS) descent with explicit map from the curve to divisors (or to the Jacobian of a hyperelliptic curve).
For a random curve taken over a 168-bit prime field GF(p), Magma takes an average of 47 seconds to determine the order of the group. In the case of a random curve taken over a 400-bit prime field the average runtime is 2200 seconds. In characteristic two, Magma takes around 0.03 seconds for a curve over GF(2162), where Gaussian Normal Bases are available and 0.12 seconds over GF(2160). Over GF(2268) (again with GNB) it takes around 0.06 seconds.
Invariants: conductor, regulator, periods, and period lattice
Torsion subgroup
Tate's algorithm for computing local information, Kodaira symbols and Tamagawa numbers
Twist of an elliptic curve by an integer, minimal twist
Theory of heights: local height, naive height, canonical height, height pairing
Bounds on the "height difference": Silverman, Siksek and CPS bounds
p-adic heights
Elliptic logarithm, p-adic elliptic logarithm
Elliptic exponential (℘-function) using Newton iteration
L-series, and special values of the L-series,
Analytic rank
Root numbers
Modular degree
Isogeny class, computation of isogenies
Heegner points for rank 1 curves, and general modular parametrisation
Rigorous determination of the finite set of S-integral points, for a given finite set of prime S. As an application, determination of the S-integral points on other genus 1 curves (quartic, Ljunggren and Desboves curves).
John Cremona's database of all elliptic curves over Q having conductor up to 360 000
Magma contains an unrivalled array of techniques that are used for determining the Mordell-Weil group of rational points E(ℚ) for a curve over ℚ (including the analytic tools already listed). These are applied in various combinations to obtain bounds on the Mordell-Weil rank, and to find generators.
2-descent using the "invariant method" (the algorithm that is implemented in John Cremona's program "mwrank")
2-descent using the "algebraic method"
Cassels-Tate pairing between 2-coverings (fast algorithm of Donnelly)
4-descent above a given 2-covering (algorithm of Merriman-Siksek-Smart, with refinements)
Cassels-Tate pairing to resolve 4-coverings (algorithm of Donnelly)
8-descent above a given 4-covering (algorithm of Stamminger and Fisher)
3-descent (algorithms of Cremona-Fisher-O'Neil-Simon-Stoll and Schaefer-Stoll)
6- and 12-descent as combination of 2-, 3- and 4-descent (Fisher)
Descent using 2-isogenies or 3-isogenies.
Minimisation and reduction of the covering curves in each of these cases (algorithms mainly due to Cremona, Fisher and Stoll)
Searching for rational points on the elliptic curve, and on 2-coverings, using sieving
Point-searching on 4-coverings using a dedicated implementation of Elkies p-adic method
Point-searching on other coverings using the general-purpose implementation of Elkies p-adic method
Saturation in the Mordell-Weil group
Tate's algorithm, local information and local minimal model
Conductor
Global minimal model in the case where one exists
Torsion subgroup (and torsion bounds, p-torsion subgroup)
Heights: naive and canonical height, height pairing, bounds on the height difference
Analytic rank
L-functions
Identification of the field of complex multiplication
"Elliptic curve Chabauty" methods, with Mordell-Weil sieving (algorithm of Bruin)
Computation of the integral points
Algorithm to search for elliptic curves with given conductor (and traces)
Many of the techniques for determining Mordell-Weil groups over ℚ are also implemented for number fields.
2-Selmer groups, 2-descent
2-isogeny Selmer groups
Cassels-Tate pairing between 2-coverings (algorithm of Donnelly)
4-descent, using code for "descent on a 2-covering" (Bruin, Stoll)
Searching for points on elliptic curves and 2-coverings (sieve algorithm)
Saturation in the Mordell-Weil group
Many of the same features are also implemented for elliptic curves over univariate function fields and their finite extensions. (However, many of the individual routines impose further restrictions: for instance, only allowing fields with finite base field, or odd characteristic, or only rational function fields.)
Tate's algorithm, local information and local minimal model
Conductor, global minimal model
Torsion subgroup (and torsion bounds, p-torsion subgroup)
Height machinery
L-functions
Analytic rank bounds
2-descent in odd characteristic
Cassels-Tate pairing between 2 coverings in odd characteristic
2-descent (via isogenies) for ordinary curves in characteristic 2
Computation of the Mordell-Weil group via the Neron-Severi group of the elliptic surface in cases where this is a rational surface.
This package deals "genus one normal models" of degree n = 2 (hyperelliptic curve), n = 3 (plane cubic), n = 4 (quadric intersection in P3) or n = 5 (in which case the model is given in a more complicated way). An element of order n = 2,3,4 or 5 in the Tate-Shafarevich group of an elliptic curve can be expressed as a curve in this form. The package provides a variety of routines based on the invariant theory of these objects, as well as routines for obtaining "nice" models (for models over ℚ) by minimisation and reduction.
Most of the algorithms are due to Fisher, Cremona and Stoll.
Creation of genus one models of degree 2,3,4 or 5 from various input
Extraction of defining data, equations for the curve
Standard a,b and c "invariants" of a model; the Jacobian and n-covering map
Polynomial formulas given for families of elliptic curve with the same n-torsion as a given curve.
Handling of transformations of genus one models
Minimisation (over ℚ and rational function fields)
Reduction (over ℚ for n = 2,3 and 4)
Addition of models, regarded as elements of the Weil-Chatelet group
Testing equivalence of two given models over ℚ
Local solubility testing for models over ℚ
Hyperelliptic curves in Magma are a special type of curve; they are given as nonsingular curves in a naturally weighted projective plane. They inherit all operations that are valid for general curves. In contrast, Jacobians are not implemented as a type of scheme or variety; instead they are implemented in terms of divisors on the curve. In particular, Jacobians are not defined by a set of algebraic equations, or by an embedding. They do not inherit from the general scheme datatype.
The broad aims of the package are as follows. One wants fast arithmetic on Jacobians (operations with normalized divisors) over general fields. Over finite fields, one wants methods for determining the number of points on curves and on their Jacobians, and more generally the zeta functions. Over global fields, one is mostly interested in the group of rational points on a Jacobian and the (finite) set of rational points on a curve, as well as local properties, heights and so on.
The first version of this package was developed by Michael Stoll; others who made major contributions include P. Gaudry, E. Howe, and several past and current members of the Magma group.
Standard quadratic models, simplified models
Creation of isomorphisms, automorphisms, and operations with these
Test for curves being isomorphic
Function fields, divisors, places
Invariants: degree, genus, discriminant
Igusa and related invariants
Construction of a curve given its Igusa invariants (over suitable fields)
Extension and lifting of curves induced by maps of base rings
Determination of points at infinity
Determination of whether a general algebraic curve C is hyperelliptic and, if so, computation of a Weierstrass model for C
Determination of whether a general algebraic curve C is geometrically hyperelliptic - ie, is hyperelliptic over the algebraic closure of the ground field.
Enumeration of all rational points (for small fields)
Random point
Quadratic twist, all quadratic twists
Counting points
Zeta function
Integral model, minimal Weierstrass model, p-normal model, reduced model
Reduction types and conductors of a genus 2 curve at odd primes
Local solubility testing (optimized code for the case of hyperelliptic curves)
2-descent "on the curve" giving a bound on the set of rational points, often better than 2-descent on the Jacobian (algorithm of Bruin and Stoll)
Creation of the Jacobian of a given curve as the divisor class group
Creation of points
Normal form and addition of points
Fast addition algorithm of R. Harley for genus 2 curves
Analytic model of the Jacobian: translation between the algebraic and analytic Jacobians
The Kummer surface is a certain quotient of a genus 2 Jacobian. In Magma, it is part of the data associated to the Jacobian. However, unlike the Jacobian itself, the Kummer surface is given by a defining equation.
The defining equation of the surface
Creation of points
Pseudo-addition, and duplication of points
Preimage on the Jacobian of a given point on the Kummer surface
Search for rational points having three coordinates specified
The p-adic techniques used for point counting in small characteristic p are Kedlaya's algorithm (p odd) and Mestre's canonical lift method as adapted by Lercier and Lubicz (p = 2) [implemented by M. Harrison]. The other techniques for point counting are due to P. Gaudry and R. Harley and have been implemented in Magma by P. Gaudry.
Enumeration of all rational points (small fields), random point
Order of a point via the Shanks or the Pollard-rho algorithms
Counting points: p-adic methods of Kedlaya and Mestre/Lercier/Lubicz
Counting points: p-adic deformation method.
Counting points: Shanks and Pollard methods
Counting points: An index calculus method for when the genus is large compared to the base field
Counting points: Schoof algorithm for finding the order modulo small primes in the case of a genus 2 curve
Counting points: Class group methods using the function field machinery.
Structure of the abelian group of rational points
Weil pairing of points
Some of the functions listed here apply only for Jacobians of genus 2 curves, while others also apply for higher genus hyperelliptic curves.
Order of a point
2-torsion subgroup, full torsion subgroup
Naive height and canonical height of a point, bounds on the "height difference", the height pairing matrix and regulator
Enumeration of all ℚ-rational points up to a given height bound (Elkies-Stahlke-Stoll method)
Rank of the subgroup of the Mordell-Weil group generated by a given set of points on the Jacobian
Computation of the 2-Selmer group, giving a bound on the Mordell-Weil rank
Chabauty's method combined with Mordell-Weil sieving allows determination of the set of rational points on a genus 2 curve over Q with Mordell–Weil rank 1, given a point of infinite order on the Jacobian
Saturation in the Mordell-Weil group
Analytic representation of a Jacobian; conversion of points between the representations; computation of analytic invariants
Some of this functionality is also implemented over general number fields, including the torsion routines, the height machinery, and the 2-Selmer group.
There are many arithmetic objects that can have L-functions attached to them, and the ability to compute with these then opens up a wide array of computational possibilities. For instance, one can study special values, or look at the distribution of zeros. The Magma package for L-functions is largely due to Tim Dokchitser, and contains a variety of nontrivial functionality for many objects. There is also the ability for the user to self-build L-functions, either for individual objects, or for classes of them. The main prerequisite for this is the ability to compute Euler factors.
The classical ζ-functions of Riemann and Dedekind, and their generalisations by Dirichlet and Hecke, form the first examples (these are GL(1) in some sense), with elliptic curves and modular forms giving examples on GL(2). Magma can also compute with these over number fields other than the rationals, with Artin representations being available (these are useful when the Galois closure is small), possibly through tensor products. The ability to take some tensor products and symmetric powers also exists, though the computations at bad primes are not yet fully automated, and the generality still needs to be expanded. Many examples are given in the handbook.
Riemann ζ-function
Dirichlet L-functions
The Dedekind ζ-function of a number field
Hecke L-functions (including for Grössencharacters)
L-functions of Artin representations
Hasse-Weil L-functions (associated to elliptic curves)
L-functions associated to modular forms (newforms)
"Tensor products" of L-functions
Symmetric power L-functions
Facility to construct user-defined L-functions (with coefficients determined by a given function)