The algebraic geometry module includes machinery for studying general algebraic varieties and families of special curves (e.g. elliptic curves). The major categories include:
Schemes and maps of schemes
Rational scrolls
Zero-dimensional schemes
Algebraic curves
Function fields and differentials of curves
Divisor groups and places of curves
Resolution graphs and splice diagrams
Graded rings and geometric databases
Plane conic curves and general rational curves
Elliptic curves
Hyperelliptic curves
Module of supersingular points
Modular forms
Modular symbols
Brandt modules
Modular curves
Modular Abelian Varieties
This module comprises general tools for working with schemes defined by polynomial equations in affine or projective space. Such tools include Gröbner basis computation, dimension and image of maps, and linear algebra calculations formalised as linear systems on projective space. Maps between spaces may also be constructed and studied.
A scheme is contained in some ambient space, either an affine space or one of a small number of standard projective spaces. A characteristic of these spaces is that they have some kind of polynomial ring as their coordinate ring.
Affine and projective spaces including weighted projective space
Ruled surfaces
Rational scrolls
Direct products of ambient spaces
Points of schemes with coefficients in k-algebras
Creation of schemes by equations or implicit methods
Saturation of the defining ideal of a scheme in the projective cases
Changing the base ring
Point set operations
Projective closure and affine patches
Global properties: Dimension, reducibility, singularity
Prime components, primary components
Local geometric analysis: singularities, tangent spaces
Zero-dimensional schemes
Determining whether a scheme over a number field is locally solvable
Construction of maps between spaces
Coordinate manipulation functions, including birational transformations of the projective plane
Calculation of pullbacks of schemes by maps
Tools to enable the calculation of images of schemes by maps
A large number of specialised types of schemes, especially curves, have additional map functionality
Availability of maps with multiple definitions
Automorphisms of schemes defined over a field may be constructed. The main cases where there is significant functionality is for automorphisms of affine and projective spaces.
Construction of general automorphisms of affine space in terms of functions or matrices
Construction of special automorphisms of affine space: translation, permutation automorphisms, Nagata automorphism, projectivities
Construction of general automorphisms of projective space in terms of polynomials or matrices
Construction of special automorphisms of projective space: translation, quadratic transformation
Automorphism group of a projective space defined over a finite field
Computation of the tangent and secant varieties of schemes
Isomorphic projection of projective schemes to smaller dimensional ambient spaces
Birational embedding of plane curves as non-singular projective space curves in 3-dimensional space
The complete linear system on P of degree d is the collection of all homogeneous polynomials of degree d on P, or equivalently, the degree d hypersurfaces thereby defined. A general linear system corresponds to some vector subspace of the coefficient space of a complete linear system.
Creation of a linear system explicitly
Creation of a linear system satisfying geometric conditions
Properties: Sections, degree, dimension, base scheme
Properties: Base component, base points, generic multiplicity at a point
Complement with respect to a subsystem or scheme
Intersection
Maps of a linear system
Magma includes a general package for working with algebraic curves. These are schemes of dimension 1, a particular case being plane curves that are defined by the vanishing of a single polynomial in 2-dimensional affine or projective space. The main features of interest are for integral (reduced and irreducible) curves. For these Magma computes explicit representations of the curve's field of rational functions allowing computations with places, divisors and differentials, calculation of the geometric genus, computation of Riemann-Roch spaces and more. This relies on the underlying function field machinery, but the results are available purely in the context of curve structures.
Creation of affine and projective curves together with the ambient spaces
Basic manoeuvres between affine and projective curves: projective closure, affine patches and so on
Basic scheme-type functions: e.g., irreducibility
Specialised data types for distinct classes of curves such as elliptic curves
Linear systems of curves in the projective plane with assigned basepoints
Implicitization of parametric curves
Parametrization of rational curves
Point searches on plane curves using a p-adic method of Elkies
Global invariants of curves, such as genus and dimension
Function field and divisor computations (see below)
Creation of the basic automorphisms of the affine plane (translation, flip, automorphism) and general maps between curves.
Evaluation of the image of a point under a rational map as a power series expansion
Ramification divisor of a non-constant dominant map
Pullbacks and pushforwards along maps between curves.
Calculation of tangent spaces and cones for plane curves
Identification of all singularities of a curve, together with the basic analysis
Blowups, including weighted blowups, of points on plane curves
Local intersections on plane curves
The following functions apply to integral curves in general.
Construction of the function field of a curve
Function field arithmetic
Exact constant field
Enumeration of places of degree m (over a finite field)
Residue class field
Class number
Divisor class group of a curve defined over a finite field
Group of global units of the function field of a curve
The following functions apply to integral curves in general.
Creation of places and divisors and their arithmetic
Compute the divisor of a function on a curve and other constructors
Determine whether a divisor is principal and if so find a function with the given divisor
Ramification divisor
Riemann–Roch space of a divisor
Computation of Weierstrass places on a curve
The following functions apply to integral curves in general.
Arithmetic and various, related operations
Valuation of a differential at a place
Divisor of a differential
Differential spaces for given divisors (e.g. holomorphic differentials)
Higher differentiations
Residue of a differential at a place of degree one
Cartier operator and representation matrix of the Cartier operator (curves over finite fields)
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 parametrized 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.
Diagonalized Legendre model for a conic defined over the rationals
Simon's algorithm for finding a point on a rational conic; this involves LLL-reduction of an indefinite form, and includes the Cremona-Rusin reduction as a special case
Variant of Simon's algorithm for parametrisation of a rational conic.
Reduction of a rational point on a conic so that its coordinates satisfy Holzer's bounds; the algorithm used is due to Mordell
Isomorphisms with standard models
A parametrisation algorithm for rational curves given a rational point
A canonical parametrisation algorithm reducing rational curves to conics irrespective of the existence of a point
Isomorphism of rational curves and conics
Automorphism groups of rational curves and conics
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)
Standard models and conversions
Construction from plane curves
Invariants: conductor, regulator, periods, and period lattice
Tamagawa numbers
Tate's algorithm for computing local information, Kodaira symbols
Twist of an elliptic curve by an integer, minimal twist
Heights: local height, naive height, canonical height, height pairing
Heights: Silverman bound, Siksek bound
Elliptic logarithm, p-adic elliptic logarithm
Elliptic exponential (℘-function) using Newton iteration
Mordell-Weil rank, bounds on Mordell-Weil rank
Mordell-Weil group and torsion subgroup
Analytic rank, special values of the L-series, root numbers
Isogeny class (and isogenies), modular degree
Heegner points for rank 1 curves, and general modular parametrisation
Algebraic two-descent to complement Cremona's invariant method
Four-descent, with point-searching via the Elkies ANTS-IV p-adic method
S-integral points: determination of the finite set of affine points with denominator generated over the finite set of primes S.
S-integral points: quartic, Ljunggren and Desboves points
John Cremona's database of all elliptic curves over Q having conductor up to 40 000
Standard models are provided together with heights and invariants. For curves over Q invariants such as conductor, regulator, and local information (Tate's algorithm) are available. The Mordell-Weil rank and group are computed using code following algorithms developed by John Cremona and implemented in his MWRANK program. Magma takes 10.06 seconds to determine the full group of the rank 4 curve
Enumeration of rational points
Reduction at a prime, local and global minimal models
Torsion bound, p-torsion, torsion subgroup
Bounds on the Mordell-Weil rank
Mordell-Weil group for suitably "small" curves
2-Selmer groups
2-isogeny Selmer groups
Representation of elements of the Selmer group as elements of an etale algebra
Chabauty methods
Local solubility
In the case of elliptic curves defined over a finite field, specialised functions are provided for the construction and analysis of maps. The major algorithms for such curves are the SEA and canonical lift algorithms for point counting.
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 and p-adic canonical lift methods for finite fields of characteristic two
Structure of the abelian group of rational points
Zeta function of a curve
Discrete logarithm (parallel collision search version of the Pollard rho algorithm)
Weil pairing
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.04 seconds for a curve over GF(2162), where Gaussian Normal Bases are available and 0.27 seconds over GF(2160). Over GF(2268) (again with GNB) it takes around 0.17 seconds.
Magma contains a package for computing with hyperelliptic curves and their Jacobians. The development of this package was undertaken by Michael Stoll (Düsseldorf), with contributions from P. Gaudry, E. Howe and the Magma group.
The reader should note that hyperelliptic curves inherit from the general plane curve datatype so that all plane curve operations are applicable in addition to those listed below.
Standard quadratic models, simplified models
Integral model, minimal Weierstrass model, p-normal model, reduced model
Function fields, divisors, places
Invariants: degree, genus, discriminant
Igusa and related invariants
Construction of a curve given its Igusa invariants
Extension and lifting of curves induced by maps of base rings
Reduction types and conductors of a genus 2 curve at odd primes
Determination of points at infinity
Special optimized algorithm for determining local solubility
Determination of whether a genaral 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.
Creation of isomorphisms, automorphisms
Arithmetic with isomorphisms: composition, inversion, evaluation
Test for curves being GL2 equivalent, isomorphic
Automorphism group
Enumeration of all rational points (small fields)
Random point
Quadratic twist, all quadratic twists
Zeta function of a curve
Enumeration of all rational points
Selmer groups
Creation of the Jacobian of a given curve as the divisor class group
The Jacobian as a curve with defining equation
Creation of points
Normal form and addition of points
Fast addition algorithm of R. Harley for genus 2 curves
Kummer surface of the Jacobian of a genus 2 curve
Analytic model of the Jacobian: translation between the algebraic and analytic Jacobians
Most of the functions listed here apply only in the case of Jacobians of genus 2 curves.
Order of a point
Height constant, canonical heights, naive height
Height pairing matrix and regulator
Enumeration of all ℚ-rational points up to a given height bound (Elkies-Stahlke-Stoll method)
2-Selmer rank (via 2-descent)
2-torsion subgroup, full torsion subgroup
Rank of the subgroup of the Mordell-Weil group generated by a given set of points on the Jacobian
Chabauty's method for determining rational points on a curve over Q with Mordell–Weil rank at most 1
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: 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
Construction from the Jacobian of a genus 2 curve
The defining equation of the surface
Creation of points
Pseudo addition, and duplication of points
Naive height and canonical height
Search for rational points having three coordinates specified
Preimage on the Jacobian of a given point on the Kummer surface
Magma V2.8 includes packages developed by William Stein and David Kohel as part of a major new initiative in modular forms and modular curves computation. The central object in each package is a finite-rank module equipped with the action of a ring of Hecke operators. The space of modular forms is perhaps the most familiar example of such a Hecke module. Other examples include the space of modular symbols and the group of divisors generated by the supersingular points on the reduction of certain modular curves. This latter module can be computed in some cases using the method of Mestre and Oesterlé [Mest86] and in general using quaternion ideal theory [Eich72, Piz80], which has deep connections with the theory of Shimura curves [Koh99].
Machinery for computing with the Hecke module of divisors on the supersingular points on X0(N) in characteristic p is now included. This module is the free abelian group on the supersingular elliptic curves in characteristic p enhanced with level N structure. We compute this module using the Method of Graphs of Mestre and Oesterlé and the Brandt modules algorithm.
Computation of Hecke operators and Atkin-Lehner involution.
Decomposition into invariant subspaces.
The monodromy pairing.
The modular forms package provides the following features:
Computation of a basis of modular forms on Γ1(N) of any integer weight greater than one
Computation of all newforms of given level, all of their reductions modulo a prime, and their embeddings in the complex and p-adic fields
Arithmetic with modular forms
Characteristic polynomials of Hecke operators
Decomposition into Eisenstein, cuspidal, and new subspaces
Dimension formulas
Computation of Atkin-Lehner operators
A program for computing with modular symbols was developed by William Stein as part of his Ph.D. thesis, and redesigned and made part of Magma during a visit to the Magma group in 1999. Algorithmic details, research applications, and references can be found in the Stein's thesis [WAS00] and subsequent work (see http://modular.fas.harvard.edu/papers).
Construction of spaces of modular symbols of any character, level, and weight
Computation of Hecke operators
Decomposition into invariant subspaces
Computation of certain invariants of the modular abelian varieties
The intersection pairing on the integral homology of modular curves
Special values of L-functions and computation of complex period lattices
Brandt modules provide a representation in terms of quaternion ideals of certain cohomology subgroups associated to Shimura curves XD0(N) which generalize the classical modular curves X0(N). The Brandt module datatype is that of a Hecke module – a free module of finite rank with the action of a ring of Hecke operators – which is equipped with a canonical basis (identified with left quaternion ideal classes) and an inner product which is adjoint with respect to the Hecke operators.
Features:
Construction of a Brandt module on the left ideal class of a definite order in a quaternion algebra over ℚ.
Arithmetic operations with module elements.
Inner product of elements with respect to the canonical pairing on their parent.
Elementary invariants of a Brandt module: Level, discriminant, conductor etc.
Decomposition of a Brandt module under the action of Atkin–Lehner and Hecke operators.
Eisenstein subspace, cuspidal subspace.
Operations on subspaces: Orthogonal complement, intersection.
Properties of subspaces: Eisenstein, cuspidal, decomposable.
Construction of Hecke and Atkin Lehner operators.
q-expansions associated with a pair of elements of a Brandt module.
Determination of the dimension of a Brandt module of given level obtained using standard formulae.
The Dirichlet characters package provides support for computing with the group of homomorphism (ℤ/Nℤ)*→R*, where R is a ring.
Dirichlet group over a field K as the set of rational characters from (ℤ/Nℤ)* to K*.
Computation of group generators, enumeration of elements, and representatives of Galois-conjugacy classes of characters.
Construction and evaluation of Dirichlet characters.
Invariants of characters, such as their conductor, modulus, and order.
Dirichlet characters have been developed in support of the new Hecke module types. Future applications to exponential sums will also be developed.
The standard collection of modular forms can be created as modular forms.
Dedekind η-function
Eisenstein series
Theta series
Evaluation of modular forms on binary quadratic forms
Evaluation of Weber's f-function, Weber's f2-function, j-invariant, on binary quadratic forms
Hilbert class polynomial and Weber class polynomial
A package for computing with modular curves has been developed by David Kohel. Modular curves in Magma are a special type of plane curve. A modular curve X is defined in terms of standard affine modular equations which are stored in precomputed databases. Those modular curves presently available are defined by modular equations—a bivariate polynomial relation between the j-invariant and one of several standard functions on X0(N). These give singular, affine models for X0(N) designed for computing isogenies of elliptic curves.
Features:
Creation of a modular curve of specified level rom a database. Possible model types are Atkin, Canonical and Classical.
Database of modular equations: Atkin, Canonical and Classical.
Parametrization of the isogenies of an elliptic curve by points on some X0(N).
j-invariant of a modular curve over a field.
Base curve of a modular curve.
Automorphisms: Atkin–Lehner involution.
Hilbert and Weber class polynomials.
This package offers some nontrivial functionality for modular abelian varieties, which we view as explicitly given quotients or subvarieties of modular Jacobians. No explicit algebraic defining equations are used in these algorithms, so computations with abelian varieties of large dimension are feasible.
Construction of quite general modular abelian varieties, in the sense that arbitrary finite direct sums and quotients may be formed.
Explicit computation of the group Hom(A,B) or the ring End(A), as a subgroup of homology, for modular abelian varieties A, B over ℚ.
Computation of kernels, cokernels, and images of homomorphisms of abelian varieties.
Intersections of subvarieties.
Computation of discriminants of subgroups of endomorphism rings, such as Hecke algebras.
A divisor and a multiple of the order of the K-rational torsion subgroup of A.
The determination of whether or not two modular abelian varieties are isomorphic (in some cases).
Characteristic polynomial of Frobenius.
Tamagawa numbers and component group orders (in some cases).
Computation of all inner and CM twists (not provably correct).
Computation with torsion points as elements of rational homology.
The computation of generic families of K3 surfaces embedded in weighted projective spaces of small dimension is a project that has been running since the mid-1970s. Until two years ago, a main result was a collection of about 400 families of K3 surfaces (which had been recorded as a database in Magma). Magma now contains a database of 24,099 K3 surfaces (including correcting half a dozen mistakes in codimension 4) that, in a well-defined sense, contains a sketch of all possible examples.
One main point is that these results are a major step on the way to understanding Fano 3-folds and their birational automorphisms. These are the 3-dimensional analogues of rational curves or Del Pezzo surfaces and are a very exciting research frontier. It is possible that the final classification of Fano 3-folds (expected to contain a few thousand families) will almost be contained in the K3 database.
The methods applied to K3 surfaces work in many other contexts. Currently Magma contains the calculations for: subcanonical curves, K3 surfaces, Fano 3-folds and Calabi–Yau 3-folds; other cases are in progress. The basic method is to assemble a lot of data that should occur on these varieties, feed it into the Riemann–Roch formula to get a Hilbert series, and then attempting to describe a plausible variety embedded in weighted projective space that has that Hilbert series. The ideas are described in the paper [ABR02], while improved handling of high codimension possibilities using projection/unprojection theorems is described in [Bro02]. Other cases are covered by the papers [BuSz], [SuRe].
Notice that these routines do not describe explicit graded rings: they do not explain how to write the equations, but only say which weighted variables should be used in the equations. (The Hilbert series does include more information, but still much less than would dictate explicit equations, in general.) The process of recovering equations through projections is called 'unprojection', and that is still some way off being implemented as a method in commutative algebra.
These families exhibit large Gorenstein rings with as yet unknown structure. The search for structure theorems for Gorenstein rings occupied much of the 1970s after the Buchsbaum–Eisenbud structure theorem in codimension 3. However no substantial new cases were discovered. These examples, not available in the 1970s, are a major motivation for a renewed assault on this problem.
Functions that create subcanonical curves, K3 surfaces, Fano 3-folds and Calabi–Yau 3-folds from data associated to the Riemann–Roch formula in each case
A K3 database containing 24,099 candidates for polarised K3 surfaces. There are also smaller databases of Fano 3-folds as a first step in the final classification
Functions for interrogating databases, including functions that can add new entries or rewrite existing entries
Creation of resolution graphs and their vertices, either implicitly using resolution routines or Newton Polygons, or explicitly by listing the required data
Calculation of numerical data associated to blowups, e.g., the canonical class of certain rational surfaces
The Cartan matrix of a graph and associated calculations such as the contribution to the genus of a plane curve of a singularity having a given graph as its resolution
Surgery on resolution graphs such as cutting an edge of a graph
Creation of splice diagrams implicitly and explicitly
Edge determinants and linking numbers of splice diagrams
Test for regularity of splice diagrams
Translation between resolution graphs and splice diagrams
These decorated graphs encode data generated by the resolution machinery. At present they are only attached to resolutions of plane curve singularities, but in due course they may be extended to resolutions of linear systems, surface singularities, special fibres in curve fibrations or other geometrical contexts. The package includes a resolution function for curves adapted to present its output in resolution graph format. This does not supersede other resolution machinery such as Puiseux expansions or genus calculations, but is intended as a complementary tool for those users with this kind of geometric background.