Last time, we posed the following question:

Question: Let $k$ be a perfect field of odd characteristic, and let $C$ be a hyperelliptic curve over $k$. Can we write down the action of the Frobenius (and the Verschiebung) on $H^1_{dR}(C)$ — equivalently, can we write down the Dieudonne module of $C$ modulo $p$?

$\newcommand{\co}{\mathcal{O}}$ The goal of this post is to answer this question. This is joint work with John Halliday, advised by David Zureick-Brown.

# A basis for $H^1_{dR}$

Let $C$ be a hyperelliptic curve defined by an equation $y^2 = f(x)$ over a perfect field $k$ of odd characteristic $p$, where $f(x)$ is a separable polynomial of degree $2g+1$. The arguments presented below work equally well for a polynomial of even degree (although there will be two points at $\infty$); to this end, we’ll use the letter $d$ to denote the degree of $f$. In order to perform this computation, we make one simplifying assumption: the polynomial $f(x)$ has no constant term, i.e., $C$ has two rational points — these points can, without loss of generality, be assumed to be at $0$ and $\infty$ (denoted $P_0$ and $P_\infty$, respectively). (This assumption can also be relaxed — even to assuming that $C$ has no $k$-rational points — but we’ll assume this for now to simplify the description of the computation of a basis for $H^1_{dR}(C)$.) We then have a Cech cover of $C$, given by $U = C-0$ and $V = C-\infty$.

As $f(x)$ has no constant term, it follows that

where the points $P_0,\cdots,P_{d-1}$ denote the points on $C$ corresponding to the roots of $f(x)$. The $1$-form $dx/y$ is everywhere holomorphic, and its valuation at $\infty$ is $2g-2$. Since the degree of a canonical divisor is $2g-2 = d-3$, we learn that $(dx/y) = (d-3)P_\infty$. This means that

Having done this, recall that a canonical basis for $H^0(C,\Omega^1_C)$ is given by the $1$-forms $\tau_{i-1} = x^{i-1} dx/y$ for $i$ ranging between $1$ and $g$. Since $H^0(C,\Omega^1_C)$ is Serre dual to $H^1(C,\co)$, we can use this to find a basis of the latter vector space.

Lemma: The functions $\eta_i=y/x^i$, as $i$ ranges from $1$ to $g$, form a basis for $H^1(C,\co)$.

The proof is similar to that of Lemma 3.2 in this paper.

$\newcommand{\wt}[1]{\widetilde{#1}}$ We can now extend the bases of $H^0(C,\Omega^1_C)$ and $H^1(C,\co)$ to a basis of $H^1_{dR}(C)$. We kick off by noting that the basis of $H^1(C,\co)$ can be easily extended by defining

as $i$ ranges from $0$ to $g-1$.

To extend the basis of the Lemma, we will write out the polynomial for $f(x)$ as

We can then compute:

Motivated by this, define differential forms (for $j$ ranging between $1$ and $g$)

We know that $\omega^{(j)}_1$ has a pole only at $0$, as $dx/y$ has a zero of order $2g-2$ at $P_\infty$ (and has no zeroes or poles anywhere else), and $\omega_1^{(j)}$ is the product of a polynomial in $1/x$ and $\frac{dx}{y}$. Similarly, $\omega_2$ has a pole only at $\infty$. The following result is now immediate from the Lemma.

Proposition: The elements $(\omega^{(j)}_1,\omega^{(j)}_2,yx^{-j})=\wt{\eta}_i$ for $1\leq j\leq g$, along with the elements $\wt{\tau}_i$ for $0\leq i\leq g-1$, form a basis for $H^1_{dR}(C)$

This is true even when $C$ has no $k$-rational points — the argument is almost exactly the same.

Let $j\leq 0$. Then $y/x^j$ is a polynomial in $x$ and $y$, and the above computation shows that $d(y/x^j)$ is regular everywhere on $V$, and has a pole only at $\infty$. Define

Note that $\omega_2^{(j)}$ will only have positive terms of $x$ as in the case of $1 \leq j \leq g$.

For $j \geq g+1$, consider the differential form

This differential form is defined differently from the other $\omega_1^{(j)}$ because the sum ranges from $1$ to $d$. This means that if $% $, there will be some positive terms of $x$ in the sum. But we know that the largest power of $x$ is $x^{d-j-1}$ (which has order $-2d+2+2j$ at $\infty$), and $dx/y$ has a zero of order $2g-2$. Thus

Since $j \geq g+1$, this is regular at $P_\infty$; hence ${\omega^\prime}^{(j)}$ is a well-defined element of $\Omega(U)$.

Using the basis determined here, we can compute the action of Verschiebung and Frobenius on $H^1_{dR}(C)$.

# The Verschiebung action

We kick off by noting that the Verschiebung is trivial on $H^1(C,\mathcal{O})$, simply because of Serre duality (the Frobenius is trivial on $H^0(C,\Omega)$). Thus we only have to compute the Verschiebung action on $\omega_1^{(j)}$ and $\omega_2^{(j)}$, for $j=1,\cdots,g$. Note that the Verschiebung takes exact forms to zero, and hence $V(\omega_1^{(j)}) = -V(\omega_2^{(j)})$; it therefore suffices to compute $V(\omega_1^{(j)})$. This can be written down explicitly:

At this point, the computation is exactly that done in the Lemma in the previous post: we can write

In the basis $(\wt{\eta}_1,\cdots,\wt{\eta}_g,\wt{\tau}_0,\cdots,\wt{\tau}_{g-1})$, the matrix of Verschiebung is therefore determined by the following facts:

• the coefficient of $\wt{\eta}_i$ in $V(\wt{\eta}_j)$ is zero
• the coefficient of $\wt{\tau}_i$ in $V(\eta_j)$ is $\sum^j_{k=1}{(k-2j)}a_k^{1/p}c^{1/p}_{(i+1)p-k+j}$
• the coefficient of $\wt{\eta}_i$ in $V(\wt{\tau}_j)$ is zero
• the coefficient of $\wt{\tau}_i$ in $V(\wt{\tau}_j)$ is given by $c^{1/p}_{(i+1)p-j}$

We can now graduate to a harder computation.

# The Frobenius computation

To ease notation, let us redefine

as $i$ ranges from $1$ through $g$. Because $d(x^p) = px^{p-1} dx = 0$, we have that $F(\wt{\tau}_i) = 0$. Similarly, $F(\omega_1^{(j)}, \omega_2^{(j)}, y/x^j) = (0, 0, y^p x^{-pj})$. Write $f(x)^{\frac{p-1}{2}} = \sum_{k=0}^N c_k x^k$, where $N = d(p-1)/2$, so that

If we let $i = pj-k$, then

For all $i \in \{1, \ldots, g\}$, we subtract $c_{pj-i} \wt{\eta}_i$ from the sum to we get an element of the form

Note that a priori, we should be looking at $i \geq \max\{pj-N, 1\}$. But if $pj-N >i$, then $pj-i >N$; so if we set $c_k = 0$ for $k>N$, we can just subtract $c_{pj-i}\wt{\eta}_i$ for $i = 1, \ldots, g$.

All of the remaining $i$ in the sum are either less than $1$ or greater than $g$, so we know that $(0, \omega_2^{(i)}, y/x_i)$ is a coboundary for $i \leq 0$, and that $({\omega'}^{(i)}, 0, y/x_i)$ is a coboundary for $i \geq g+1$. Modulo coboundaries, we therefore have

Since this is an element of $H^1_{dR}(C)$, the difference of the differential forms in the first and second slot must be equal to the third slot. Thus the difference of the two sides is identically $0$, and so the two forms patch up to a globally defined holomorphic differential form. (Note that this implies that all of the negative powers of $x$ and the powers greater than $g$ cancel). This means that we can write

As both sides of the above equation are holomorphic differential forms, this is an actual equality of two functions. However, all of the $\omega_1^{(i)}$ are defined such that they have no positive powers of $x$: the only positive powers of $x$ can come from the ${\omega'}^{(i)}$. We write

where we set $k' = k-i$. For a fixed $k' \in \{0, \ldots, g-1\}$, we therefore have $i \geq \max\{g+1, -k\}$ and $i \leq d-k'$. (Some remarks: if $i \geq (j-1)p$, then $% $; so $c_{pj-i} = 0$. Also, since $a_{i+k'} = 0$ for $i >d-k'$, the last condition is irrelevant.) It follows that the coefficient of $x^{k'-1}\frac{dx}{2y}$ is $-\sum_{i = g+1}^{d-k'} c_{pj-i}a_{k'+i}(k'-i)$.

Thus, in the basis $(\wt{\eta}_1, \ldots, \wt{\eta}_g, \wt{\tau}_1, \ldots, \wt{\tau}_g)$, the matrix of Frobenius is completely determined by the following facts:

• the $\wt{\eta}_i$ coefficient of $F(\wt{\eta}_j)$ is $c_{pj-i}$
• the $\wt{\tau}_i$ coefficient of $F(\wt{\eta}_j)$ is $\sum_{k = g+1}^{d-i} (k-i)c_{pj-k}a_{k+i}$
• the $\wt{\eta}_i$ coefficient of $F(\wt{\tau}_j)$ is zero
• the $\wt{\tau}_i$ coefficient of $F(\wt{\tau}_j)$ is zero

# Some Magma code

We’ve written up some Magma code that provides the matrices for $F$ and $V$ on the de Rham cohomology of a specified hyperelliptic curve $C$.

The last two invariants that the code below prints are the $p$-rank and $a$-number; these are invariants of abelian varieties that measure whether they’re “ordinary” or “superspecial”. More precisely, the $p$-rank of an abelian variety $A$ of dimension $g$ is $f = \dim_{\mathbf{F}_p}\mathrm{Hom}(\mu_p,A[p])$, and the $a$-number of $A$ is $a = \dim_k \mathrm{Hom}(\alpha_p,A[p])$. One reason to care is that the $p$-rank counts the number of $k$-rational $p$-torsion points: $\# A[p](k) = p^{p\text{-rank}}$. Moreover, there are bounds $0\leq f \leq g$ and $0\leq f+a \leq g$.

An abelian variety is ordinary if the $p$-rank of $A$ is $g$, and is superspecial if the $a$-number of $A$ is $g$. It’s easy to see that if $A$ is an elliptic curve (so that $g=1$), then $A$ is superspecial if and only if it’s supersingular.

Here’s the code:

/* User input here */

d := 5;
/* This is the degree of the polynomial f(x) */
p := 5;
/* This is the prime which you are working at */

R := GF(p);

a := [];
for i := 1 to d do
a := Append(a,Random(10));
end for;
/* You can modify this to enter the coefficients of the polynomial f(x) */

/* Do not modify below this line! */

S<x> := PolynomialRing(R);
f := &+[x^(i)*a[i]: i in [1..d]];
print "The curve C is y^2 =",f,"at the prime",p;

b := IntegerRing()!((p-1)/2);
g := 1;
for i := 1 to b do
g := g*f;
end for;
e := Degree(g);

c := [];
for i := 1 to e do
c := Append(c,Coefficient(g,i));
end for;

g := IntegerRing()!((d-1)/2);

F := [];
for i := 1 to g do
for j := 1 to g do
o := p*j - i;
m := #c;
if o le m and o ge 1 then
F := Append(F,c[p*j-i]);
else
F := Append(F,0);
end if;
end for;
for j := 1 to g do
F := Append(F,0);
end for;
end for;
for i := 1 to g do
for j := 1 to g do
l := d-i;
h := 0;
for k := g+1 to l do
o := p*j-k;
m := #c;
if o le m and o ge 1 then
h := h + (k-i)*a[k+i]*c[p*j-k];
else
h := h + 0;
end if;
end for;
F := Append(F,h);
end for;
for j := 1 to g do
F := Append(F,0);
end for;
end for;
F := Matrix(2*g,2*g,F);

V := [];
for i := 1 to g do
for j := 1 to g do
V := Append(V,0);
end for;
for j := 1 to g do
V := Append(V,0);
end for;
end for;
for i := 1 to g do
for j := 1 to g do
h := 0;
for k := 1 to j do
o := p*(i)-k+j;
m := #c;
if o le m and o ge 1 then
y := (k-2*j);
h := h + y*a[k]*c[o];
else
h := h + 0;
end if;
end for;
V := Append(V,h);
end for;
for j := 1 to g do
o := i*p-j;
m := #c;
if o le m and o ge 1 then
h := c[o];
V := Append(V,h);
else
V := Append(V,0);
end if;
end for;
end for;
V := Matrix(2*g,2*g,V);

print "The matrix of Frobenius is",F;
print "The matrix of Verschiebung is",V;
print "The p-rank is",Dimension(Image(V^g));
print "The a-number is",g-Dimension(Image(V^2));


Some examples are in order.

d=3, p=3:

The curve C is y^2 = 2*x^3 + 2*x^2 + x
at the prime 3
The matrix of Frobenius is
[2 0]
[2 0]
The matrix of Verschiebung is
[0 0]
[1 2]
The p-rank is 1
The a-number is 0

----------

d=11, p=7:

The curve C is y^2 = x^11 + 3*x^10 + 6*x^9 + 6*x^7 + 6*x^5 + 2*x^4 + 3*x^3 + 6*x^2 + 6*x
at the prime 7
The matrix of Frobenius is
[2 5 4 3 0 0 0 0 0 0]
[6 2 5 6 1 0 0 0 0 0]
[4 2 5 3 2 0 0 0 0 0]
[6 3 6 1 3 0 0 0 0 0]
[0 5 0 6 2 0 0 0 0 0]
[0 5 0 3 5 0 0 0 0 0]
[0 4 0 3 1 0 0 0 0 0]
[0 0 4 3 2 0 0 0 0 0]
[0 1 3 2 0 0 0 0 0 0]
[0 0 2 3 1 0 0 0 0 0]
The matrix of Verschiebung is
[0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0]
[5 3 1 4 4 2 6 4 6 0]
[4 0 0 1 5 5 2 2 3 5]
[4 3 6 1 5 4 5 5 6 0]
[5 6 4 6 6 3 6 3 1 6]
[0 0 0 0 0 0 1 2 3 2]
The p-rank is 5
The a-number is 0