Minimisation and Reduction

This section contains functions for obtaining a simpler model of a given genus one curve.

We use the following terminology, which has become fairly standard. Here a model will always mean a global integral model.

Minimisation refers to computing a model which is isomorphic to the original one (over its ground field) but possibly not integrally equivalent. A model is minimal if it is locally minimal at all primes; a model is locally minimal if the valuation of its discriminant is as small as possible among all integral models. For locally solvable models this minimal discriminant is equal to that of the associated elliptic curve.

Reduction refers to computing a model which is integrally equivalent to the original one (meaning there exist transformations in both directions over the ring of integers of the base field). Informally, a reduced model is one whose coefficients have small height. One approach to formulating this precisely is to attach to each model an invariant in some symmetric space: The model is then said to be reduced iff its invariant lies in some fixed fundamental domain. This idea is also the basis for algorithms used to obtain reduced models.

The algorithms used for models of degree 2, 3, and 4 over Q are described in [CFS10]. For degree 5 it is necessary to use some different techniques developed by Fisher. For models of degree 2 over number fields the algorithms use additional techniques developed by Donnelly and Fisher.

Minimise(model : parameters) : ModelG1 -> ModelG1, TransG1
    Transformation: BoolElt             Default: true
    CrossTerms: BoolElt                 Default: false
    UsePrimes: SeqEnum                  Default: []
    ClassGroupPrimes: SeqEnum           Default: []
    SetVerbose("Minimisation", n):      Maximum: 3
Given a genus one model (of degree 2, 3, 4, or 5) with coefficients in Q, this returns a minimal model in the sense described above.

It is also implemented for genus one models of degree 2 without cross terms, and returns a model that is minimal among models without cross terms when this is possible. When this is not possible (due to class group obstructions) it returns a model that is nearly minimal, in the sense that the extra factor appearing in the discriminant is chosen to have small norm. The primes dividing the extra factor may be specified via the optional argument ClassGroupPrimes.

The transformation taking the original model to the minimal model is also returned, unless the optional argument Transformation is set to false. (The syntax for transformations is explained in Section Transformations between Genus One Models).

For degree 2, when the optional argument CrossTerms is set to false then a model without cross terms is returned that is minimal among models of this kind.

The third value returned is the set of primes where the minimal model has positive level. These are the primes where the model is not soluble over Qpnr, the maximal non-ramified extension of Qp (except for p = 2 for models of degree 2 when CrossTerms is false).

The degree 5 routine is not yet proven to work in all cases.

Minimise(f) : RngMPolElt -> RngMPolElt, TransG1
Given the equation f of a nonsingular projective plane cubic curve, this returns the equation of a minimal model of the curve and a tuple specifying the transformation (as explained in Section Transformations between Genus One Models below).
pMinimise(f, p) : RngMPolElt, RngIntElt -> RngMPolElt, AlgMatElt
Given the equation f of a nonsingular projective plane cubic curve, this function returns a model of the curve which is minimal at p. Also returned is a matrix M giving the transformation; up to scaling, the minimised cubic is the original cubic evaluated at M[x, y, z]tr.
Reduce(model) : ModelG1 -> ModelG1, TransG1
Reduce(f) : RngMPolElt -> RngMPolElt, TransG1
    SetVerbose("Reduce", n):            Maximum: 3
Given a genus one model of degree 2, 3, or 4 over Q, this function computes a reduced model in the sense described above.

The model may instead be described by the appropriate polynomial f, which must be either a homogeneous polynomial that defines a genus one model of degree 2 or 3, or a univariate polynomial that defines a genus one model of degree 2 without cross terms.

The transformation taking the original model to the reduced model is also returned. (The syntax for transformations between genus one models is explained in Section Transformations between Genus One Models).

ReduceQuadrics(seq) : [RngMPolElt] -> [RngMPolElt], AlgMatElt, AlgMatElt
    SetVerbose("Reduce", n):            Maximum: 3
This function computes a reduced basis for the space spanned by the given quadrics (which should be given as a sequence of homogeneous quadratic forms in variables x1, ..., xn). This means making a linear change of the homogeneous coordinates, and also finding a new basis for the space of forms, with the aim of making the resulting coefficients small. The second and third objects returned are matrices S and T giving the transformation. The change of homogeneous coordinate variables is given by S, while T specifies the change of basis of the space of forms. The returned forms are therefore obtained by substituting [x1, ..., xn].S for [x1, ..., xn] in the original forms, and then applying T to this basis of forms (where T acts from the left).

The current implementation of this routine is not optimal; nevertheless it is useful in some situations.

V2.28, 13 July 2023