# The Mordell–Weil Group

The machinery in this section and the next section is for curves defined over a rational function field $k(t)$ whose field of constants $k$ is finite.

The Mordell–Weil group can be computed (and generators found) for a curve $y^2+a_1xy+a_3y=x^3+a_2x^2+a_4x+a_6$ where each $a_i$ is a *polynomial* in $k[t] \subset k(t)$ of degree at most $i$.

When this hypothesis is not satisfied, it may still be possible to bound the Mordell–Weil rank and find Mordell–Weil generators using the $2$-descent routines described in the next section.

## `RankBounds(E): CrvEll[FldFunG] -> RngIntElt, RngIntElt`

## `RankBound(E): CrvEll[FldFunG] -> RngIntElt`

These functions return lower and upper bounds (or just an upper bound) on the rank of the Mordell–Weil group $E(F)$ for an elliptic curve $E$ defined over a function field $F$ with finite constant field. The bound is obtained by applying all the available tools (those described in this section together with the `AnalyticInformation` obtained from the L-function).

## `MordellWeilGroup(E : parameters): CrvEll[FldFunRat] -> GrpAb, Map`

```magma
Al: MonStgElt                    Default: "Geometric"
```

This function computes the Mordell–Weil group of an elliptic curve $E$ that satisfies the hypotheses stated in the introduction immediately above. The function returns two values: an abelian group $A$ and a map $m$ from $A$ to $E$. The map $m$ provides an isomorphism between the abstract group $A$ and the Mordell–Weil group.

The algorithm used by default is the geometric method described above. However, when `Al` is set to `"Descent"` it instead uses the $2$-descent tools described in the next section; if the curve admits $2$-isogenies then it uses a separate implementation of descent by $2$-isogenies (described in [[Roberts, 2007](../../references.md#cite-roberts-phd)]). These descent methods do not always determine the full Mordell–Weil group (in which case a warning is printed); their advantages are that they do not require the degrees of the coefficients to be bounded and in many cases are very efficient.

## `MordellWeilLattice(E): CrvEll[FldFunRat] -> Lat, Map`

This function computes the Mordell–Weil lattice of an elliptic curve $E$ that satisfies the hypotheses stated in the introduction immediately above. This is the free part of the Mordell–Weil group with an inner product given by the Néron–Tate height pairing. The function returns two values: the lattice $L$ and a map $m$ from $L$ to $E$.

## `GeometricMordellWeilLattice(E): CrvEll[FldFunRat] -> Lat, Map`

This function computes the geometric Mordell–Weil lattice of an elliptic curve $E$ that satisfies the hypotheses stated in the introduction immediately above. This consists of the free part of the group of points on $E$ that are defined over the function field with a possibly extended constant field, together with the Néron–Tate pairing. The function returns two values: a lattice $L$ and a map $m$ from $L$ to $E'$, where $E'$ is a base change of $E$ over the larger field.

## `Generators(E): CrvEll[FldFunRat] -> SeqEnum`

Given an elliptic curve $E$ over a rational function field $F$ that satisfies the hypotheses stated in the introduction immediately above, this function returns a sequence of points in $E(F)$ which are generators of the Mordell–Weil group.

## `Example: rank2 (ex-ee4c8d)`

We find that the curve $y^2 = x^3 + (t^4 + 2t^2)x + t^3 + 2t$ over $F_3(t)$ has rank $2$ and has no $2$-torsion in its Tate–Shafarevich group.

```magma
> F<t> := FunctionField(GF(3));
> E := EllipticCurve([ t^4 + 2*t^2, t^3 + 2*t ]);
> S2E := TwoSelmerGroup(E);
> S2E;
Abelian Group isomorphic to Z/2 + Z/2
Defined on 2 generators
Relations:
    2*S2E.1 = 0
    2*S2E.2 = 0
> MordellWeilGroup(E);
Abelian Group isomorphic to Z + Z
Defined on 2 generators (free)
Mapping from: Abelian Group isomorphic to Z + Z
Defined on 2 generators (free) to CrvEll: E given by a rule [no inverse]

```

Furthermore, we may compute the regulator of $E$ as follows.

```magma
> Determinant(HeightPairingMatrix(Generators(E)));
12

```
