This is a Jupyter notebook (Magma needed). To play along at home you can clone
https://github.com/SamFrengley/quintic-covers-lleida.git
(It is also linked on my webpage.)
Quintic fields¶
An example of a quintic field¶
Suppose I have some degree $5$ polynomials with coefficients in $\mathbb{Q}$, say
ZZ := Integers();
P<x> := PolynomialRing(ZZ);
f := x^5 + 3*x^3 + 2*x + 1;
g := 537824*x^5 + 806736*x^4 + 5306896*x^3 - 7141064*x^2
+ 4296558*x - 358787;
disc(f) = (59)^(1) * (83)^(1) disc(g) = (2)^(40) * (7)^(20) * (59)^(1) * (71)^(2) * (83)^(1) * (167)^(2) * (2463473)^(2)
If we know them in advance, we can check they define the same field
K := NumberField(f); // The field ℚ[x]/f(x)
L := NumberField(g); // The field ℚ[x]/g(x)
flag, _ := IsIsomorphic(K, L);
These fields are isomorphic: flag = true
But what if I just start with the horrible polynomial $g(x)$, how do we find the "very nice" polynomial $f(x)$?
First try: Mobius transformations¶
We could try Mobius transformations by setting $x = \tfrac{ay + b}{cy + d}$. This is implemented in Magma: the very best we can do this way is:
// Apply Mobius maps until g is "as nice as possible"
g_2 := MinRedBinaryForm(g);
g_2 = x^5 - 23*x^4 + 651*x^3 + 378*x^2 + 6327*x - 16339
But that's nowhere near as nice as $f(x) = x^5 + 3x^3 + 2x + 1$.
Better try: Maximal orders¶
A better way would be to compute the maximal order in $L$, and then take a short basis vector:
O_L := MaximalOrder(L); // The ring of integers
B := Basis(LLL(O_L)); // A short basis for O_L
new_g := MinimalPolynomial(B[2]);
Our original polynomial x^5 + 3*x^3 + 2*x + 1 Our new polynomial x^5 - x^4 - x^3 + x^2 + 1 disc(f) = disc(new_g) = (59)^(1) * (83)^(1)
// This is essentially what goes on inside (e.g.)
Lprime := OptimisedRepresentation(L);
Lprime = ℚ[x] / (x^5 - x^4 - x^3 + x^2 + 1)
Important takeaway: Polynomials which define the same field need not be related by Mobius tranformations!
The geometric analogue¶
How to write down a degree $5$ cover?¶
From now on we will write $$ \mathbf{e} = (e_1, e_2, e_3, e_4) \qquad \text{and} \qquad \mathbf{f} = (f_1, f_2, f_3, f_4, f_5) $$ where $$ 1 \leq e_1 \leq \dots \leq e_4 \qquad \text{and} \qquad 1 \leq f_1 \leq \dots \leq f_5$$
Recall that an $(n \times n)$-matrix $A$ (away from characteristic 2) is called alternating if $A^t = -A$.
Theorem: (Casnati--Ekhedal, Bhargava) Let $\pi \colon C \to \mathbb{P}^1$ be a cover of degree $5$. Then there exists $\mathbf{e} \in \mathbb{Z}^4$ and $\mathbf{f} \in \mathbb{Z}^5$ and alternating matrices $A_1, A_2, A_3, A_4 \in \mathrm{Mat}_{5 \times 5}(F[s,t])$ such that \begin{align*} C \cong \{ ([s : t], [x_1 : x_2 : x_3 : x_4]) : \mathrm{rank}(\mathcal{A}) \leq 2 \} \subset \mathbb{P}( \mathcal{E} )\end{align*} where $$ \mathcal{A} = x_1 A_1 + x_2 A_2 + x_3 A_3 + x_4 A_4, $$ and if $A_k = (a_{ij}^{(k)} )_{1 \leq i,j \leq 5}$ then $$ \deg(a_{ij}^{(k)}) = f_i + f_j + e_k - (g + 4)$$ and $g = \sum_{i=1}^4 e_i - 4$ is the (arithmetic) genus of $C$.
A worked example¶
Consider the polynomial in $\mathbb{F}_{17}[x,y]$
\begin{align*} f(x, y) =&\; t^2 (x^5 - 5 x y^4 + 4 y^5) + 4 s t (x - y) y^4 - s^2 y (x^4 + y^4) \\ \end{align*}
This defines a curve $C \subset \mathbb{P}^1 \times \mathbb{P}^1$ and the resulting map $$ \pi \colon C \to \mathbb{P}^1 $$ (given by projection onto $[s:t]$) has degree $5$.
The Casnati--Ekhedahl / Bhargava construction embeds $$ C \hookrightarrow \mathbb{P}^1 \times \mathbb{P}^1 \hookrightarrow \mathbb{P}^1 \times \mathbb{P}^3 = \mathbb{P}(\mathcal{E})$$ as the twisted cubic on the second $\mathbb{P}^1$.
// Setup
FF := FiniteField(17);
R<s,t> := PolynomialRing(FF, 2); K<S,T> := FieldOfFractions(R);
// The polynomial ring 𝔽_{17}[s,t][x]
P<x> := PolynomialRing(R);
// The polynomial f(x)
f := t^2*(x^5 - 5*x + 4) + 4*s*t*(x - 1) - s^2*(x^4 + 1);
disc(f) = (s)^(2) * (s + 4*t)^(2) * (s + 14*t)^(1) * (...)^(1)
// Command which initialises the curve C as the vanishing of
// the Pfaffians of four 5x5 alternating matrices
A := FiniteFlatCover(f : ProjectiveBase:=true, Twisted:=false);
A_1 = A_2 = [ 0 0 0 0 0 ] [ 0 0 0 0 1 ] [ 0 0 0 16 ] [ 0 0 1 0 ] [ 0 16*s^2 + 13*s*t + 4*t^2 4*s*t + 12*t^2 ] [ 0 0 0 ] [ 0 0 ] [ 0 0 ] [ 0 ] [ 0 ] A_3 = A_4 = [ 0 0 0 16 0 ] [ 0 0 1 0 0 ] [ 0 16 0 0 ] [ 0 0 0 0 ] [ 0 0 0 ] [ 0 0 0 ] [ 0 16*s^2 ] [ 0 t^2 ] [ 0 ] [ 0 ]
Legal transformations¶
We want to act on the set of 4-tuples of alternating matrices $(A_1, A_2, A_3, A_4)$ with $$ \deg(a_{ij}^{(k)}) = d_{ij}^{(k)} = f_i + f_j + e_k - (g + 4)$$ while preserving the locus $\mathrm{rank}(\mathcal{A}) \leq 2$ up to isomorphism (where $\mathcal{A} = x_1 A_1 + x_2 A_2 + x_3 A_3 + x_4 A_4$)
Transformation 1¶
Add 'left' matrices to 'right' matrices e.g., $$ A_4 \leftarrow A_4 + (\text{polynomial of degree $e_4 - e_1$}) \cdot A_1 $$
This action is captured by (block) lower triangular $4 \times 4$-matrices $$ \mathrm{GL}(\mathcal{E}) = \left\{ U = (u_{ij}) \in \mathrm{Mat}_{4\times 4}(k[s,t]) : \det(U) \neq 0 \text{ and } \deg(u_{ij}) = e_j - e_i \right\}$$ via multiplication $U \cdot (A_1, \cdots, A_4)$
Transformation 2¶
Add 'left' rows/columns to 'right' rows/columns e.g., $$ a_{5j}^{(k)} \leftarrow a_{5j}^{(k)} + (\text{polynomial of degree $f_5 - f_1$}) \cdot a_{1j}^{(k)} $$
This action is captured by (block) lower triangular $5 \times 5$-matrices $$ \mathrm{GL}(\mathcal{F}) = \left\{ V = (v_{ij}) \in \mathrm{Mat}_{5\times 5}(k[s,t]) : \det(V) \neq 0 \text{ and } \deg(v_{ij}) = f_j - f_i \right\}$$ via $V^t A_k V$
The algorithm¶
There are 2 steps:
Move the matrices into a "good shape" via legal moves
Apply a "desingularisation operation"
The conditions on singular fibres¶
Theorem: (Bhargava, F.--Vemulapalli) Let $p \in F[s,t]$ be a linear polynomial. There exists a singular point of $C$ in the fibre of $\pi \colon C \to \mathbb{P}^1$ above $\{p = 0\}$ if and only if $\mathcal{A}$ can be put in one of the following two shapes (algorithmically) via only legal moves:
Case 1: $A_4 = 0 \pmod{p}$
Case 2: $$ A_1, A_2, A_3 = \begin{pmatrix} 0 & * & * & * & * \\ & 0 & * & * & * \\ && 0 & * & * \\ &&& 0 & * \, p \\ &&&& 0 \end{pmatrix} \quad A_4 = \begin{pmatrix} 0 & * & * & * \, p & * \, p \\ & 0 & * & * \, p & * \, p \\ && 0 & * \, p & * \, p \\ &&& 0 & * \, p^2 \\ &&&& 0 \end{pmatrix} $$
Desingularisation operation¶
Case 1:
$$ A_4 \leftarrow A_4 / p $$
Case 2:
The $\mathrm{GL}(\mathcal{E})$ transformation (multiply the first 3 matrices by $p$): $$ g_4 = \mathrm{diag}(p, \; p, \; p, \; 1) $$
The $\mathrm{GL}(\mathcal{F})$ transformation (divide the last 2 rows by $p$): $$ g_5 = \mathrm{diag}(1, \; 1, \; 1, \; 1/p, \; 1/p) $$
Back to the example¶
The curve $C \subset \mathbb{P}^1 \times \mathbb{P}^1$ has a singular point where $s = 0$. Its image under $C \hookrightarrow \mathbb{P}^1 \times \mathbb{P}^3$ is the singular point $$ ([s:t], [x_1 : x_2 : x_3 : x_4]) = ([0:1], [-1:-1:-1:1]) $$
C := UnderlyingScheme(A);
sing := ReducedSubscheme(SingularSubscheme(C));
The singular subscheme of C is cut out by the polynomials [ s, X[1] + 16*X[4], X[2] + 16*X[4], X[3] + 16*X[4] ]
p := s;
// Move the singular point to [0:0:0:1]
g4 := Matrix(K, 4, 4,
[
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[1, 1, 1, 1]
]);
// 5x5 matrix transformation to put things in
// the correct format
g5 := Matrix(K, 5, 5,
[
[ 1, 0, 0, 0, 0],
[ 1, 1, 0, 0, 0],
[16*t^2, 0, 0, 0, 1],
[ t^2, 2*t^2, 0, 1, 1],
[ 2*t^2, 14*t^2, 1, 0, 16]
]);
B := A^<g5,g4>;
After making the transformations we get a model with: A_1 = A_2 = [ 0 0 0 0 0 ] [ 0 0 16 16 1 ] [ 0 1 1 16 ] [ 0 16 15 1 ] [ 0 15*t^2 4*s*t + 15*t^2 ] [ 0 2*t^2 t^2 ] [ 0 16*s^2 ] [ 0 0 ] [ 0 ] [ 0 ] A_3 = A_4 = [ 0 0 0 1 0 ] [ 0 0 16 0 0 ] [ 0 0 1 1 ] [ 0 0 0 0 ] [ 0 16*s^2 + 16*t^2 0 ] [ 0 16*s^2 4*s*t ] [ 0 16*s^2 ] [ 0 15*s^2 ] [ 0 ] [ 0 ]
// Desingularisation operation
g4 := DiagonalMatrix(K, [p, p, p, 1]);
g5 := DiagonalMatrix(K, [1, 1, 1, 1/p, 1/p]);
new_A := B^<g5,g4>;
assert not IsDivisibleBy(Discriminant(new_A), s);
The new curve is non-singular in the fibre above s=0 since s does not divide the discriminant The desingularised curve has equations [ 16*s^2*X[2]*X[4] + s^2*X[3]^2 + s^2*X[4]^2 + 9*s*t*X[2]*X[4] + 4*s*t*X[3]*X[4] + 4*s*t*X[4]^2 + 16*s*X[1]*X[2] + s*X[1]*X[3] + s*X[1]*X[4] + 13*t^2*X[2]^2 + 9*t^2*X[2]*X[4] + t^2*X[3]^2 + 16*t^2*X[3]*X[4] + 13*t^2*X[4]^2 + 9*t*X[1]*X[2] + 4*t*X[1]*X[3] + 4*t*X[1]*X[4], s*X[2]^2 + 16*s*X[3]*X[4] + 2*X[1]*X[2] + 16*X[1]*X[3] + 16*X[1]*X[4], s^2*X[2]*X[4] + 4*s*t*X[2]*X[4] + 13*s*t*X[3]*X[4] + s*X[1]*X[2] + s*X[1]*X[3] + s*X[1]*X[4] + 3*t^2*X[2]^2 + 15*t^2*X[2]*X[3] + 13*t^2*X[2]*X[4] + 2*t^2*X[3]*X[4] + 4*t*X[1]*X[2] + 13*t*X[1]*X[3] + 2*X[1]^2, X[2]^2 + 16*X[2]*X[3] + X[3]^2 + 16*X[3]*X[4], s*X[2]*X[3] + X[1]*X[2] + X[1]*X[3] + 16*X[1]*X[4] ] inside ℙ(O(1) ⊕ O(2)^3)
Applications¶
Tchirnhausen realisation in degree 5¶
Theorem: (F.-Vemulapalli) There exists an (explicit) finite union of polytopes $\mathcal{P} \subset \mathbb{R}^4 \times \mathbb{R}^5$ such that $(\mathbf{e}, \mathbf{f}) \in \mathcal{P} \cap (\mathbb{Z}^4 \times \mathbb{Z}^5)$ if and only if there exists a smooth degree 5 cover $C \to \mathbb{P}^1$ with $$ \deg(a_{ij}^{(k)}) = d_{ij}^{(k)} = f_i + f_j + e_k - (g + 4)$$
Real multiplication by $\mathbb{Q}(\sqrt{13})$ and level 2 structure¶
Recall there exists a "Hilbert modular surface" $Y_{13}$ which "parametrises genus 2 curves with real multiplication" $$Y_{13}(k) \leftrightarrow \{ (C, \iota) \}$$ where $C/k$ has genus 2 and $\iota \colon \mathbb{Z}[\tfrac{1 + \sqrt{13}}{2}] \hookrightarrow \mathrm{End}_k(\mathrm{Jac}(C))$ $\qquad$ (+ condition on polarisation)
And one can ask for $\mathrm{Jac}(C)[2](k) = (\mathbb{Z}/2\mathbb{Z})^4$ in which case we get $$ Y_{13}[2](k) \leftrightarrow \{(C, \iota, \phi) \} $$ where $\phi \colon (\mathbb{Z}/2\mathbb{Z})^4 \cong \mathrm{Jac}(C)[2](k)$ $\qquad$ (+ condition on polarisation)
Theorem: (F.) The surface $Y_{13}[2]$ is birational over $\mathbb{Q}$ to the surface $$ \xi(u,v;w) = 0 \qquad \text{and} \qquad z^2 = \mathrm{disc}_w \; \xi(u,v;w) $$ in $\mathbb{A}^4$, where \begin{align*} \xi(u,v; w) =\,& (u + v + 1) w^3 - (v + 1) (u + v + 1) w^2 \\ &\hspace{1cm}- (u + v + 1) (uv + u - v) w + u (v + 1) (uv + u + v^2 + 1). \end{align*} The generic genus $2$ curve can be written down on A4 paper.
Theorem: (Elkies--Kumar) There is an isomorphism of function fields $\mathbb{Q}(Y_{13}) \cong K = \mathbb{Q}(g,h)$ together with explicit (invariants of the) generic genus $2$ curve $\mathcal{C}/\mathbb{Q}(Y_{13})$.
Theorem: (Gruenewald) The field $K(\mathrm{Jac}(\mathcal{C}))[2]$ is isomorphic to the splitting field of an explicit degree $5$ polynomial $f(x) \in K[x]$.
// Gruenewald's polynomial
K<g,h> := FunctionField(Rationals(), 2);
P<x> := PolynomialRing(K);
f := x^5 + (-4*g + 2)*x^4 + (-8*g^2 + 288*g*h + 8*g - 2)*x^3 + (64*g^3 +
432*g^2*h^2 - 432*g^2*h - 96*g^2 + 48*g - 8)*x^2 + (-112*g^4 -
1728*g^3*h^2 - 1728*g^3*h + 224*g^3 + 21600*g^2*h^2 + 2592*g^2*h -
168*g^2 - 864*g*h + 56*g - 7)*x + 64*g^5 - 13824*g^4*h^2 + 2880*g^4*h -
160*g^4 + 62208*g^3*h^3 + 19008*g^3*h^2 - 5184*g^3*h + 160*g^3 -
41040*g^2*h^2 + 3024*g^2*h - 80*g^2 - 576*g*h + 20*g - 2;
// This cuts out a surface, but I can't spot how to parametrise it...
Idea of proof: Start with Gruenewald's polynomial $f(x) \in K[x]$ and apply the minimisation algorithm (now with base $\mathbb{P}_{\mathbb{Z}}^2\;$). Then the splitting field of $f(x)$ is isomorphic to the splitting field of $$ 2x^5 - (2g - 1)x^4 + 2gh x^3 + 2ghx^2 + g^2h^2 $$ Now parametrise this surface in $\mathbb{A}^3$ (coordinates $(g,h,x)$)... repeat with quartic factor...
f_new := 2*x^5 + (-2*g + 1)*x^4 + 2*g*h*x^3 + 2*g*h*x^2 + g^2*h^2;
L := quo<P | f_new>;
assert #Roots(f, L) eq 1;
Thus Gruenewald's polynomial f has a root in ℚ[x]/f_new(x)
Bonus theorem¶
By apply an analagous algorithm to the resolvent sextic algebra of the quintic polynomial $$ 2x^5 - (2g - 1)x^4 + 2gh x^3 + 2ghx^2 + g^2h^2 $$ one can parametrise the surface parametrising genus $2$ curves with RM by $\mathbb{Q}(\sqrt{13})$ and a rational Weierstrass point.
Theorem: (F.) The generic genus 2 curve with a rational Weierstrass point and RM by $\mathbb{Q}(\sqrt{13})$ is:
c0 := 2*(b^2 + 2*b + 2);
c1 := a^3 + (-2*b^2 + 5*b + 8)*a^2 + (-8*b^3 - 22*b^2 - 10*b - 18)*a + 16*b^4 +
20*b^3 + 6*b^2 - 46*b - 48;
c2 := -4*(a^4 + (-2*b^2 + 8*b + 12)*a^3 + (-18*b^3 - 22*b^2 + 28*b + 16)*a^2 + (8*b^5
+ 16*b^4 - 24*b^3 - 12*b^2 - 16*b - 40)*a - 8*b^6 + 8*b^5 + 30*b^4 +
40*b^3 - 24*b^2 - 128*b - 92);
c3 := 2*(3*a^5 + (-6*b^2 + 33*b + 48)*a^4 + (-84*b^3 - 50*b^2 + 248*b + 176)*a^3 +
(48*b^5 - 52*b^4 - 430*b^3 - 8*b^2 + 496*b + 176)*a^2 + (48*b^6 +
272*b^5 - 44*b^4 - 420*b^3 - 232*b^2 - 360*b - 364)*a - 96*b^7 - 112*b^6
+ 152*b^5 + 524*b^4 + 632*b^3 - 256*b^2 - 1076*b - 672);
c4 := -2*(2*a^6 + (-4*b^2 + 28*b + 40)*a^5 + (-76*b^3 - 7*b^2 + 318*b + 230)*a^4 +
(48*b^5 - 168*b^4 - 628*b^3 + 264*b^2 + 1256*b + 608)*a^3 + (144*b^6 +
304*b^5 - 996*b^4 - 1580*b^3 + 740*b^2 + 1824*b + 624)*a^2 + (544*b^6 +
512*b^5 - 1176*b^4 - 1368*b^3 - 208*b^2 - 128*b - 352)*a - 192*b^8 -
384*b^7 + 288*b^6 + 1504*b^5 + 1908*b^4 + 144*b^3 - 2964*b^2 - 3704*b -
1672);
c5 := (a^3 + (-2*b^2 + 5*b + 8)*a^2 + (-8*b^3 - 2*b^2 + 30*b + 22)*a - 8*b^4 -
16*b^3 + 14*b^2 + 42*b + 16)*
(a^4 + (12*b + 16)*a^3 + (-16*b^3 - 8*b^2 + 52*b + 36)*a^2 + (-16*b^4 -
72*b^3 + 24*b^2 + 120*b + 96)*a + 32*b^5 + 16*b^4 - 40*b^3 - 84*b^2 -
56*b - 12);
f := c0*x^5 + c1*x^4 + c2*x^3 + c3*x^2 + c4*x + c5;