# Covariants and Contravariants for Genus One Models

The functions in this section implement the invariant theory developed in [[Fisher, 2006](../../references.md#cite-fisher-hessian)].

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

We write $X_n$ for the (affine) space of genus one models of degree $n$. The module of covariants $X_n \to X_n$ is a free module of rank 2 over the ring of invariants. The generators are the identity map and a second covariant which we term the Hessian. (In the cases where $n=2$ or 3 this is the determinant of a matrix of second partial derivatives.) This function evaluates the Hessian of the given genus one model.

## `CoveringCovariants(model): ModelG1 -> [ RngMPolElt ]`

The covariants that define the covering map from the given genus one model to its Jacobian (this is the same as the defining equations of the `nCovering`).

## `Contravariants(model): ModelG1 -> ModelG1, ModelG1`

We write $X_n$ for the (affine) space of genus one models of degree $n$, and $X_n^*$ for its dual. The module of contravariants $X_n \to X_n^*$ is a free module of rank 2 over the ring of invariants. This function evaluates the generators $P$ and $Q$ at the given genus one model.

## `HesseCovariants(model, r): ModelG1, RngIntElt -> ModelG1, ModelG1`

Evaluates a pair of covariants, which depend on an integer $r$, at the genus one model of degree prime to $r$. The pencil spanned by these genus one models is a family of genus one curves invariant under the same representation of the Heisenberg group. (In other words, the universal family above a twist of $X(n)$.)

If $r \equiv 1 \pmod{n}$ then the covariants evaluated are the identity map and the Hessian. If $r \equiv -1 \pmod{n}$ then the covariants evaluated are the contravariants. If $n=5$ there are two further possibilities. We identify $X_5= \wedge^2 V \otimes W$ where $V$ and $W$ are 5-dimensional vector spaces. Then the covariants evaluated for $r \equiv 2,3 \pmod{5}$ take values in $\wedge^2 W \otimes V^*$ and $\wedge^2 W^* \otimes V$ respectively.

## `HessePolynomials({n, r, }{invariants : parameters}): RngIntElt, RngIntElt, [RngElt] -> RngElt, RngElt, RngElt`

```magma
Variables: [ RngMPolElt ]                    Default: 
```

The Hesse polynomials $D(x,y), c_4(x,y), c_6(x,y)$. These polynomials give the invariants for the pencil of genus one models computed by `HesseCovariants`. The `RubinSilverbergPolynomials` are closely related to these formulae in the case $r \equiv 1 \pmod{n}$.
