Skip to content

About

Electronic ressources for the preprint "Effective Darmon's program for the Generalised Fermat equation".

Resources

Stars

2 stars

Watchers

1 watching

Forks

Latest commit

 

History

8 Commits

Folders and files

Repository files navigation

Elimination step for Hilbert modular newforms in Darmon’s program

This repository contains Magma code implementing the elimination step in the modular method for families of generalised Fermat equations of signatures $(p,p,r)$ and $(r,r,p)$, where $r \ge 5$ is fixed.

This code is intended for researchers working on the modular method, Darmon’s program, and Diophantine equations involving Hilbert modular forms.

The implementation follows the framework developed in the paper:

Martin Azon, Effective Darmon’s program for the generalised Fermat equation.

At a high level, the code:

  • constructs the level predicted by the modular method,
  • computes the corresponding space of Hilbert newforms,
  • and eliminates Hecke constituents by comparing the Galois representations attached to Hilbert newforms with those coming from Frey hyperelliptic Jacobians.

The current implementation is designed for the computational elimination step explained in Section 6 of the paper.

⚠️ Important: This repository uses the Magma computer algebra system. All .m files are Magma code (despite GitHub might classify them as MATLAB).

What this repository does

Fix integers $A,B,C \in \mathbf{Z}\setminus{0}$ and a prime $r \ge 5$. The code studies families of equations of the form

  • signature $(p,p,r)$: $$A x^p + B y^p = C z^r,$$
  • signature $(r,r,p)$: $$A x^r + B y^r = C z^p.$$

Given the equation parameters and optional hypotheses on a putative primitive non-trivial solution $(a,b,c)$, the scripts:

  1. determine the level of the Hilbert newforms predicted by level lowering,
  2. compute the Hecke constituents of the corresponding Hilbert modular forms space,
  3. try to eliminate each constituent,
  4. return the set of prime exponents $p$ that are not ruled out by the implemented elimination criteria.

In the examples treated in the paper, this procedure is used to prove non-existence of primitive non-trivial solutions under suitable local assumptions.

Repository structure

The code is split into reusable Magma files:

  • main.m — main entry point; this is the file to edit in order to choose the equation and assumptions.
  • interface.m — definitions of the GFE and GFEAssumptions objects, input validation, and interactive reading utilities.
  • Frey_cvs.m — construction of the twisted Frey hyperelliptic curve associated with a putative solution.
  • level&irred.m — level computation and irreducibility checks.
  • elim_functions.m — elimination routines (Bounding_ps, Eliminate_g, trace comparisons, auxiliary quantities).
  • solving.m — orchestration of the full elimination process for a chosen equation.
  • spec — Magma spec file (used by AttachSpec) linking the package components.

The repository also includes sample output files illustrating the method on concrete families, such as:

  • expp5.txt for a family of signature $(p,p,5)$,
  • ex55p.txt for a family of signature $(5,5,p)$.

Requirements

  • Magma

No external dependencies are required beyond Magma and the files in this repository.

Quick start

  1. Open main.m.
  2. Set the equation parameters:
    • signature := "ppr"; for signature $(p,p,r)$,
    • signature := "rrp"; for signature $(r,r,p)$,
    • choose integers r, A, B, C.
  3. Set the optional assumptions on a putative solution.
  4. Set the irreducibility flag if you already have an independent irreducibility argument.
  5. Load main.m in Magma.

The file begins with

AttachSpec("spec");

so loading main.m automatically attaches the rest of the package.

Parameters in main.m

The main user-editable parameters are:

signature := "ppr";
r := 5;
A := 7;
B := 1;
C := 3;

with the following meaning:

  • signature must be either "ppr" or "rrp",
  • r must be a prime number greater than 3,
  • A, B, C must be non-zero, pairwise coprime, and free of r-th powers.

You may also specify assumptions on a putative primitive non-trivial solution:

DoingAssumptions := true;
ab_even := true;
c_even := false;
ab_div_r := true;
c_div_r := false;
g_irred := false;

These encode local hypotheses such as:

  • whether $ab$ is even,
  • whether $c$ is even,
  • whether $ab$ is divisible by $r$,
  • whether $c$ is divisible by $r$,
  • whether the polynomial $g_r^-$ is irreducible over $\mathbf{Q}_r$.

The input is validated, and incompatible assumptions are rejected.

Irreducibility input

The script can apply the irreducibility criterion implemented from the paper. If your case is not covered by that criterion, you may still run the elimination step by providing your own external irreducibility argument:

irred_argument := true;

You may also specify a set of prime exponents already excluded for theoretical reasons:

initially_eliminated_ps := {2, 3, r};

Running the code

The default call in main.m is:

Main(E : irreducibility_argument := irred_argument,
         init_eliminated_ps := initially_eliminated_ps);

This prints the chosen equation and assumptions, computes the space of Hilbert newforms at the predicted level, and then processes the Hecke constituents one by one.

An interactive workflow is also available through ReadGFE() and TerminalMain().

What the output means

During execution, the program reports:

  • the equation being studied,
  • the assumptions on the putative solution,
  • the factorisation of the level,
  • the dimension of the Hilbert newform space,
  • the number of Hecke constituents,
  • the progress of the elimination for each constituent,
  • the remaining prime exponents that are not yet eliminated.

A constituent may be eliminated immediately if the totally real field $$K = \mathbf{Q}(\zeta_r + \zeta_r^{-1})$$ is not contained in its coefficient field. Otherwise, the code tries to eliminate it by comparing traces of Frobenius at auxiliary primes.

At the end, the script prints the set of primes that the implemented elimination step did not rule out.

Examples included

The repository includes sample outputs for two families discussed in the paper:

  • 7x^p + y^p = 3z^5 under suitable local assumptions,
  • x^5 + 7y^5 = z^p under suitable local assumptions.

These examples illustrate the intended use of the code and the typical shape of the output.

Remarks and limitations

  • The implementation is aimed at the elimination step, not at automating every part of the modular method.
  • The cost of the computation grows quickly with the level and with the size of the coefficient fields of the newforms.
  • In difficult cases, the program may only reduce the set of possible exponents rather than eliminate every Hecke constituent completely.
  • Some cases are intentionally excluded when the conductor exponent or irreducibility input is not available from the current theory implemented in the code.

Reference

If you use this code, please cite the accompanying paper:

Martin Azon, Effective Darmon’s program for the generalised Fermat equation.

Feedback

Bug reports, corrections, and suggestions for improvements are very welcome.

About

Electronic ressources for the preprint "Effective Darmon's program for the Generalised Fermat equation".

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors