# Genus One Models as Coverings

The curve defined by a genus one model of degree $n$ is a principal homogeneous space for some elliptic curve (namely the Jacobian of the curve). The data of the Jacobian, and the covering map of degree $n^2$, can be read from the invariants and covariants of the model.

Any two models with the same Jacobian can be added together as elements of the Weil-Châtelet group. Below are functions for adding two models of degree 3, and for “doubling” models of degree 4 or 5.

A related function for degree 3 models is `ThreeSelmerElement` (see Section [Three-Descent and Five-Descent](../EllipticCurvesOverQAndNumberFields/mordell-weil.md#three-descent)). For degree 4 models the maps can also be computed using `AssociatedEllipticCurve` and `AssociatedHyperellipticCurve` from the package on four descent (see Section [Four-Descent](../EllipticCurvesOverQAndNumberFields/mordell-weil.md#four-descent)).

## `Jacobian(model): ModelG1 -> CrvEll`

## `Jacobian(C): Crv -> CrvEll`

The Jacobian, returned as an elliptic curve, of the given genus one model, or of the curve $C$ corresponding to a genus one model.

## `nCovering(model : parameters): ModelG1 -> Crv, CrvEll, MapSch`

```magma
E: CrvEll                    Default: 
```

The covering map from the given genus one model to its Jacobian. Three values are returned: the curve $C$ of degree $n$ corresponding to the given model, its Jacobian as an elliptic curve $E$, and a map of schemes $C \to E$.

If an elliptic curve $E$ is given it must be isomorphic to the Jacobian and then this curve will be the image of the map.

## `AddCubics(cubic1, cubic2 : parameters): RngMPolElt, RngMPolElt -> RngMPolElt`

## `AddCubics(model1, model2 : parameters): ModelG1, ModelG1 -> ModelG1`

## `model1 + model2: ModelG1, ModelG1 -> ModelG1`

```magma
E         : CrvEll                     Default: 
ReturnBoth: BoolElt                    Default: false
```

Given two ternary cubic polynomials, or two genus one models of degree $3$, that both have the same invariants, returns the sum of the corresponding elements of $H^1({\mathbb{Q}},E[3])$.

An error results if the two cubics do not belong to the same elliptic curve $E$, See Section [Three-Descent and Five-Descent](../EllipticCurvesOverQAndNumberFields/mordell-weil.md#three-descent) for more information about `AddCubics`.

## `DoubleGenusOneModel(model): ModelG1 -> ModelG1`

Given a genus one model of degree 4 or 5, this function computes twice the associated element in the Weil-Châtelet group and returns this as a genus one model (which will have degree 2 or 5, respectively).

## `FourToTwoCovering(model : parameters): ModelG1 -> Crv, Crv, MapSch`

## `FourToTwoCovering(C : parameters): Crv -> Crv, Crv, MapSch`

```magma
C2: Crv                    Default: 
```

Given a genus one model of degree 4 or an associated curve, this function returns three values: the curve $C_4$ in ${\mathbb{P}}^3$ corresponding to the model, a plane quartic curve $C_2$ representing twice the model in the Weil-Châtelet group, and the map of schemes $C_4 \to C_2$. Calling `AssociatedHyperellipticCurve(Curve(model))` provides the same information.
