Algebraic Curves

Introduction

An algebraic curve C in Magma is defined as a one-dimensional scheme. Practically all of the non-trivial curve functionality applies only to curves defined over a field and so we will assume that k is a field in this section. The easiest examples of curves are plane curves given by a single defining equation in two-dimensional affine or ordinary projective space. These two dimensional ambients are referred to as planes. The Fermat curves are a family of plane curves being defined by the polynomials xn+yn-zn, n ≥ 2, in the projective plane, with x,y,z as the coordinate variables.

There are a number of specialised types of curves in Magma for which there is specific extra functionality. The most general subtype is that of plane curves. There are also subtypes for conics in the ordinary projective plane (curves defined by irreducible homogeneous polynomials of degree 2 in 3 variables), elliptic curves, and hyperelliptic curves. Elliptic curves and hyperelliptic curves in Magma are defined by a non-singular two variable Weierstrass equation.

The Algebraic Function Field Associated with a Curve

Most of the specific machinery that is available only for curves (or comes in a different flavour to the corresponding functionality for general varieties) makes use of Magma's algebraic function field machinery. These are the intrinsics concerned with divisors, places, differentials, and related objects. This functionality only applies to curves C that are varieties (reduced and irreducible — integral for short) and where function fields arise, this assumption about C holds. It is possible to use the sheaf machinery in some cases to work with reducible curves. However, the function field methods for curves have a big advantage in that they do not assume the non-singularity of C. Any integral curve is birationally equivalent over k to a non-singular projective curve that is unique up to isomorphism. This curve will be referred to as the projective normalisation of C and denoted by .

Let k(C) denote the function field of C, the field of rational functions (defined over k) on C. The projective normalisation is completely determined by k(C). The function field k(C) is of transcendence degree 1 over the base field k. Such fields have many properties in common with number fields (finite extensions of ). In particular, they have places which are the analogues of places in a number field, and which in turn correspond to prime ideals in the ring of integers. Magma is able to compute the integral closures in K = k(C) given K as a finite field extension of a k(t) using an algorithm that is a variant of the round 4 algorithm used to construct the ring of integers of a number field.

An algorithm is provided for constructing an abstract algebraic function field K isomorphic to k(C) along with explicit translation maps back and forth between the elements of K and rational functions on C given as quotients of polynomials of the ambient coordinate ring. Thus K can be used to make explicit computations of Riemann–Roch spaces, divisor maps, etc., with the results being converted back to the language of points, subschemes, rational functions, and scheme maps.

Places and Divisors

In this subsection, the term divisor will be taken to refer to a divisor on which is represented internally by a divisor object on the function field K. The divisor can be decomposed into a -linear combination of places in the usual way. The list below indicates some some of the vast range of functionality available for curves, ignoring functions that apply to general schemes or varieties.

There are special functions available for non-constant maps between curves that make use of the function field K. These allow the computation of the degree of the map, the ramification divisor, and pullbacks and pushforwards of functions, divisors, and differentials. For a map f from a curve C to any affine or ordinary projective scheme and a point P in C(L), the image f(P) is computed using place computations if P does not lie in the current domain of definition of f. Effectively, the function field is used to compute images of f on its maximal domain of definition without having to use the expensive map extension function.

Automorphism Group

There is a package of functionality for automorphism groups of curves of genus ≥ 2. The full group of (birational) automorphisms over the base field can be computed, again using a function field algorithm based on Weierstrass points and unique affine models for the full curve minus a point. Note that the birational automorphisms of C are in one-to-one correspondence with the actual automorphisms (birational maps which are everywhere defined with everywhere defined inverses) of . Subgroups generated by a given set of automorphisms can be computed and also returned as a two-way isomorphic map of the automorphism group to a finite permutation group. This can be used for group-theoretic computations of normalisers, centralisers, or Sylow subgroups, for example, and is used internally for fast multiplication and powering of automorphisms. There is also a function to return the matrix representation of an automorphism group acting on the space of holomorphic differentials via pullback.

Complementing the automorphism group code, there is a function to compute the quotient of a curve by a finite group of automorphisms. This also returns a quotient map from C to the quotient curve.

Functions are provided to parametrise a rational (genus 0) curve and to test whether a curve of genus ≥ 2 is hyperelliptic and, if so, to return a Weierstrass model for it along with an isomorphic scheme map to the Weierstrass model. The extensive machinery available to compute arithmetic properties of elliptic and hyperelliptic curves is summarised in the respective sections on elliptic curves and hyperelliptic curves.

Plane Curves with Ordinary Singularities

As a partial alternative to function field methods, there is some specialised functionality for plane curves with only ordinary singularities. Along with tests for ordinariness, there are functions for quickly computing the canonical map and other adjoint maps. There are also alternative methods for parametrising ordinary plane rational curves and rational normal curves in higher dimensional projective ambients. These methods often lead to a parametrisation map with smaller-degree defining equations than the function field method. There are also functions to produce a random plane curve of specified degree and with a specified number of ordinary singularities of specified multiplicities.

The ordinary singularity code relies on the fact that ordinary singularities are resolved by a single blow-up of the plane at the point. This means that the conditions that the singularities place on polynomials to belong to the canonical or adjoint linear systems can be directly computed from the singular subscheme of C rather than having to do local computations at each singular point. There is also a module of functions to resolve general singularities of plane curves via repeated blow-ups of the ambient plane. This involves local work at each singular point and is computationally heavier than the ordinary case code, but it gives information about the resolution graph over each singular point and local blow-up equations that together allow the computation of the canonical or adjoint systems for general plane curves.