Two Descent

In odd characteristic the 2-Selmer group can be computed and its elements can be represented as minimised 2-coverings. A search for points on these 2-coverings can be made.

In characteristic 2 descent by 2-isogeny can be performed for an ordinary curve E using the isogenies E to Efrob to E. The Selmer groups for both isogenies are computed; if these have ranks s1 and s2 then the rank of E is at most s1 + s2 - 1.

TwoSelmerGroup(E) : CrvEll[FldFunG] -> GrpAb, MapSch
This function computes the 2-Selmer group of an elliptic curve E defined over a rational function field Fq(t) of odd characteristic. This is returned as an abstract group together with a map from the group to the relevant algebra.

The algorithm is standard (similar to the one used for elliptic curves over number fields).

TwoDescent(E) : CrvEll[FldFunG] -> SeqEnum[CrvHyp], List[MapSch]
This represents the nontrivial elements of the 2-Selmer group of E as hyperelliptic curves C : y2 = f(x) of degree 4, and returns a sequence containing the curves together with a list containing the corresponding covering maps C to E. The elliptic curve should be defined over a rational function field Fq(t) of odd characteristic.

The curves returned have polynomial coefficients and are minimised at all finite places. The conic parametrisation step uses the algorithm by Cremona and van Hoeij.

QuarticMinimize(f) : RngMPolElt[FldFunRat] -> RngMPolElt[FldFunRat]
This is the routine used by TwoDescent to minimise two-coverings. The function takes a homogeneous quartic in two variables with coefficients in a rational univariate function field and returns a minimal quartic equivalent to f together with the appropriate transformation matrix.
Points(C : parameters) : CrvHyp -> [Pt]
    Bound: RngIntElt                    Default: 
This finds all rational points with height up to the given Bound on the hyperelliptic curve C, which must be defined over a rational function field Fq(t). The parameter Bound is not optional, and it refers to the x-coordinate (logarithmic) height of the points: In other words, the routine finds all projective points (X:Y:Z) where X and Z are polynomials in t of degree less than or equal to Bound.
PointsQI(C, H) : Crv, RngIntElt -> [Pt]
    OnlyOne: BoolElt                    Default: false
    ExactBound: BoolElt                 Default: false
This is an optimised routine for finding rational points on a curve given as an intersection of two quadrics defined over a rational function field Fq(t). It searches for projective points whose coordinates are polynomials in t of degree up to H. To guarantee finding all such points the parameter ExactBound must be set to true.

The algorithm uses a lattice reduction method described in [Rob07].

TwoIsogenySelmerGroups(E) : CrvEll[FldFunG] -> GrpAb, GrpAb, MapSch, MapSch
This performs descent by 2-isogenies for a non-supersingular elliptic curve E defined over a rational function field k(t) where k is finite of characteristic 2. The isogenies used are the Frobenius map E to Efrob : (x, y) |-> (x2, y2) and the dual isogeny Efrob to E (which is separable). The function returns four objects: the Selmer group Ssep of the separable isogeny (as an abstract group), followed by the Selmer group SFrob of the Frobenius isogeny, followed by maps Ssep to k(t)/Φ(k(t)) and SFrob to k(t) * /(k(t) * )2. Here Φ denotes the Artin--Schreier map a |-> a2 + a.

Notes describing the algorithm will be made available (on request). The theoretical background is presented in [Kra77].

V2.28, 13 July 2023