The algebraic geometry module includes both machinery for studying general algebraic varieties and facilities for working with more restricted varieties suach as algebraic curves and surfaces. The major categories include:
Schemes and their maps
Coherent sheaves
Algebraic curves
Algebraic surfaces
Toric varieties
Graded rings and geometric databases
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
Searching for points (over the rationals).
Listing of all points oevr a finite field.
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
Alternative map type for ordinary projective schemes defined by the "graph" of the map in the product scheme.
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 and algebraic curves.
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
Automorphism groups of algebraic curves of genus at least 2 (see below).
Computation of the tangent and secant varieties of schemes
Faster tests for whether a specified point lies in the tangent or the secant varieties of a scheme.
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
Machinery for operations related to coherent sheaves on projective schemes. Currently it is only available for ordinary projective schemes. There is functionality to obtain some important sheaves, like the canonical sheaf, and perform some basic constructions, like tensor powers or duals. The initial emphasis has been on invertible sheaves and their associated maps into projective space. The map of such a sheaf and its image may be computed. The invertible sheaf associated to an effective Cartier divisor D, given as a subscheme of the base scheme, can be computed and a Riemann-Roch space for D can be returned in explicit form. The dimension of cohomology groups of arbitrary sheaves can be computed. The maximal representing graded module of the sheaf - the full module of global sections of all twists - can also be computed, which is key to much of the functionality. There are various tests for properties like local-freeness. The package was developed in Sydney and the algorithms rely on a number of computational commutative algebra tricks well-known to the experts in the field.
Definition of a general sheaf via a graded module over the coordinate ring of the ambient scheme.
Computation of some special sheaves like the structure sheaf and the canonical sheaf of a locally Cohen-Macaulay equidimensional scheme.
Serre twists of a sheaf.
Computation of the maximal (saturated) module representing a sheaf.
Tensor products and powers, direct sums, duals and Homs.
Homomorphisms between sheaves on the same base scheme. Kernels, images and cokernels.
Test for local-freeness.
Test for a sheaf being arithmetically Cohen-Macaulay.
Test for and construction of isomorphisms between sheaves on the same base scheme.
The associated "divisor" map into projective space of an invertible sheaf and its image. Includes, for example, canonical, anticanonical and adjunction maps.
The Riemann-Roch space of an effective Cartier divisor D and an invertible sheaf isomorphic to O([D]).
Dimension over the base field of cohomology groups of twists of a sheaf, using the Decker-Eisenbud-Floystad-Schreyer algorithm based on the BGG correspondence. This can be used to get various standard invariants of a scheme.
Intersection pairing of the divisor classes represented by two invertible sheaves on a non-singular projective surface.
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)
Random curves by genus over the rationals or finite fields for all genera up to 13.
Index calculus for discrete logs on the Jacobians of plane curves.
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 of functions, differentials or divisors along maps between curves.
Explicit computation of the map into ordinary projective space associated to a divisor (class) - in particular the canonical map. Optimised computation of canonical images.
Computation of the full automorphism group (over the base field) of an (integral) algebraic curve of genus at least 2.
Structures for defining and working with groups of automorphisms of such curves. In particular, efficient arithmetic of automorphisms (products, powers, etc.) and subgroup definition.
Abstract realisation of an automorphism group as a permutation group with 2-way correspondence. This allows the full range of abstract group constructions (eg p-Sylow subgroups) to be applied.
Computation of the quotient of a curve by a group of automorphisms as a new curve with an explicit quotient scheme map.
Tests for isomorphism and construction of explicit isomorphisms as scheme maps.
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
Tests for only ordinary or only nodal singularities of plane curves.
Special computation of the canonical or more general adjoint maps for an ordinary plane curve.
Random nodal curves of specified degree and number of singularities.
Random ordinary curves of specified degree and with specified number of ordinary singularities of given multiplicities.
Special parametrization routines for ordinary rational plane curves and rational normal 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)
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.
Magma now contains special functionality for general projective hypersurfaces in ℙ3 and other specific types of algebraic surface like anticanonically-embedded Del Pezzo surfaces. The general hypersurface package was developed in Linz by Josef Schicho and Tobias Beck. It's main aim is the formal desingularisation of 2-dimensional hypersurfaces. This allows the computation of invariants like the geometric plurigenera and more generally gives explicit adjoint linear systems that represent the canonical, anticanonical or adjunction mappings amongst others. The package also contains a function to classify rational hypersurfaces and map them to terminal types. This combines with the other main component of the current surface functionality, which is specific code to parametrize terminal rational surfaces. The major part of this is packages for parametrizing Del Pezzo surfaces, which were developed in joint work by Schicho's group and the Magma group and use the Lie algebra method for the high degree Del Pezzos. The sheaf module also provides some useful general functionality that may be applied to locally Cohen-Macaulay schemes in ordinary projective space representing surfaces (see above).
Formal resolution of singularities of hypersurfaces in 3-D projective space over a field of characteristic zero, following the Hirzebruch-Jung method.
Result given using algebraic power series for the formal completions of components over the singular locus.
Geometric genus, arithmetic genus and higher plurigenera of (any) desingularisation.
General KXn(m) adjoint linear systems.
Tests for a hypersurface being rational or (birationally) ruled.
Classification of rational surfaces by terminal type. Construction of birational map to terminal model following Schicho's algorithm.
Test for the parametrizability over the rational numbers of a rational hypersurface in 3-D projective space and construction of an explicit parametrization.
Routines for the direct parametrization of singular or non-singular anticanonically embedded Del Pezzo surfaces of degree at least 5 over the rationals. Uses the Lie algebra method for degree greater than 5.
General routine for direct parametrization of any degree Del Pezzo (singular or non-singular) in its standard weighted anticanonical ample embedding by blowing down lines to reduce to degree at least 5.
Routines for the direct parametrization of quadric hypersurfaces, rational pencils and conic bundles.
There are many points of view on toric geometry and many different uses. The applications motivating this implementation come from low dimensional birational geometry and mirror symmetry; it is capable of doing substantial algebraic geometry, as well as the usual array of combinatorial routines associated to polytopes, cones and fans. In particular the construction of any general toric variety is possible; you are not limited to the standard subclasses such as smooth or ℚ-factorial examples. Toric varieties can also be used as ambient spaces for other more complicated varieties (in the same way as affine and projective spaces).
One often begins to study toric geometry by considering a lattice L = ℤn and discussing polygons or cones in its overlying rational vector space Lℚ = L⊗ℚ. In Magma we bind these two spaces together in a single object, a toric lattice. Although these spaces lie underneath all the combinatorics, it is seldom necessary to be explicit about them; they often remain invisible. Magma supports many operations for constructing and manipulating toric lattices, including:
Creation of a toric lattice and its dual;
Construction of direct sums, sublattice, and (torsion free) quotient lattices;
The sublattice fixed under a group action;
Maps between toric lattices;
Standard operations on points in a toric lattice.
A cone (in a toric lattice L) is the convex hull of finitely many rays. A (rational) polytope is the convex hull of finitely many points of L. More generally a (rational) polyhedron is given by the Minkowski sum of a polytope and a cone. There exist dual definitions in terms of the intersection of finitely many half-spaces. There is no requirement that polyhedra are of maximum dimension in the ambient toric lattice. Important operations include:
Standard constructions of cones, half-spaces, cross polytopes, cyclic polytopes, etc.;
Creation of cones and polyhedrons via a system of inequalities;
The defining inequalities of a cone or polyhedron;
The dual cone or polyhedron;
Taking the (affine) linear space spanned by, or contained in, a polyhedron;
Standard properties such as dimension, volume, and boundary volume;
Triangulations of a polytope and of its boundary;
Information on whether a polyhedron is simplicial, reflexive, terminal, etc.;
Construction of the cone in L×ℤ spanned by a polyhedron P in L;
The polyhedron defined by taking the convex hull of P∩ℤn for any polyhedron P;
The infinite and compact parts of a polyhedron;
Calculation of intersections, Minkowski sums, translations, etc.;
Taking hyperplane slices;
The minimum ℚ-generators and ℤ-generators of a cone;
Point membership;
Point counting and enumeration of lattice points;
The Ehrhart series, Ehrhart polynomial, and δ-vector of a polytope;
Faces of a cone or polyhedron, the f-vector and h-vector;
Construction of the face-poset;
The group of lattice automorphisms fixing a polytope.
A fan F (in a toric lattice L) is a collection of cones in L satisfying the usual conditions of a cell decomposition. Magma allows for the construction of any fan; it will check that the cones intersect correctly, and will add the lower-dimensional cones as necessary. There are also several constructors for well-known fans, and standard methods for modifying existing fans.
Creation of a fan from a collection of cones;
Constructions for the fan of affine space, projective space, and weighted projective space;
Construction of the product of two (or more) fans;
The dual fan and spanning fan generated by a polyhedron;
The normal fan to a cone C, given by the quotient of L by the span of C;
Support and point membership;
Extraction of the rays, one-skeleton, singular cones, maximum dimensional cones, and so forth;
The blowup of F at a point in L;
Answers to questions such as whether F is projective, or nonsingular, or ℚ-factorial;
The simplicial subdivision of a fan;
A refinement of F such that the resulting fan is nonsingular;
Maps between fans.
There exist many standard constructors for toric varieties. They can also be defined directly from a fan, or in terms of a Cox ring. However one constructs a toric variety, the corresponding fan can always be recovered, although this is seldom necessary. Once you have constructed your toric variety you can treat it as a purely geometric object, as you would any scheme in Magma. Operations include:
Standard constructions for affine, projective, and weighted projective space;
Construction of scrolls, or of any toric variety specified by a collection of gradings;
The toric variety given by the product X×Y;
Recovery of a fan from any toric variety, and of the toric variety associated to any fan;
The variety corresponding to a Cox ring can be constructed, and the Cox ring of any toric variety recovered;
Extract the i-th affine patch of a toric variety X, along with the inclusion map;
A resolution, ℚ-factorialisation, terminalisation, etc., along with the corresponding maps;
Extract the one parameter subgroup lattice, monomial lattice, Cox monomial lattice, or divisor class lattice;
Is the variety complete? Is it projective? Is it Fano?
Determine whether the toric variety is nonsingular, Gorenstein, ℚ-factorial, terminal, or canonical.
Magma supports the creation of very general maps between toric varieties. These can be derived from maps between the associated toric lattices, or presented in terms of the variables of the Cox ring. More generally one can define all maps between toric varieties using an appropriate notion of 'rational radical function' defined in terms of the polynomial Cox coordinates. Common questions Magma can answer include:
Are two toric varieties naturally isomorphic?
Is a given map regular?
The indeterminancy locus of a map.
Divisors on toric varieties work in the same way as on other varieties, except that within each linear equivalence class it is possible to choose torus invariant representatives. Divisors on a toric variety have a single divisor group as their parent; divisors can be constructed by coercing the appropriate data into this group, or via several standard constructions. Once you have constructed your divisor, Magma supports all the operations you would expect. Examples are:
Construction of the zero divisor and canonical divisor;
Construction of a "nice" representative of an element in the Picard latice or divisor class lattice, chosen to be as effective as possible;
The combinatorial data defining a Weil or Cartier divisor;
Is a given divisor principal or ℚ-principal? Is it linearly equivalent to a Cartier divisor?
Are two divisors linearly equivalent?
Answers to questions such as whether a divisor D is Cartier, ℚ-Cartier, Weil, ample, very ample, nef, or big;
The Picard class or movable part of a divisor D;
Proj of the ring of sections of D;
The relative (sheaf) Proj of sections of the divisor D;
The Riemann-Roch polytope associated to a divisor;
The basis of the associated Riemann-Roch space;
The graded cone of sections of multiples of D;
The Hilbert series and Hilbert polynomial of (X,D).
The Mori cone and nef cone of a toric variety can be computed, extremal rays calculated, and so on. Magma can answer questions such as whether a given extremal ray corresponds to a Mori fibre space, is a divisorial contraction, or gives a small contraction. Standard constructions and operations are also supported:
The images of extremal contractions of rays in the nef cone;
A description of the extremal contractions;
The (generalised) flip of the morphism given by the ℚ-Cartier divisor;
The weights of the Gm action whose variation would give the flip;
An implementation of the Minimal Model Programme.
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