Guide for files accompanying the article

Gaëtan Chenevier and Olivier Taïbi

19/07/2019

All PARI/gp programs are found in the directory gp/ and should be run from there. These were tested with PARI/gp 2.11.2.
All Sage programs are found in the directory sage/ and should be run from there. These were tested with Sage 9.0.

PARI/gp code and worksheets

General PARI code

Files

The general functions are defined in the following files.

Explanation of the most important functions

To test these, run gp and load two of the files above.

$ gp
? \r without_GRH.gp
? \r testfin.gp

Known representations

? pc = ex_poids_connus();

List of known elements of \(\Pi_{\mathrm{alg}}\) of motivic weight \(\leq 24\) that we use. Such an element is a vector [U,m] where U is its Archimedean component, and m the number of known \(\pi\)’s with this Archimedean component. So pc has 26 elements, corresponding to 27 elements of \(\Pi_{\mathrm{alg}}\). An Archimedean component is an element of the form \[a 1 + b \epsilon_{\mathbb{C}/\mathbb{R}} + \sum_{i=1}^r \mathrm{I}_{w_i},\] represented as the vector [a, b, w_1, ..., w_r]. For instance

This list is implemented as a function for convenience, in order to be able to use gp2c and compile to C for speed.

Main algorithm

To try to find a new mininum for several Langlands parameters \(U\)’s at once using Algorithm 2.4.5, run

? L = testfin_liste(L, l, m, S, a, b);

with

This function returns a new list of the same type, with updated l_cur_min, cur_min, cur_mask and cur_vec if a smaller minimum was found.

Worksheets proving non-existence in \(\Pi_\mathrm{alg}\)

Worksheet for illustration of Section 2.4.6

$ gp sheet_w22.gp

Worksheet for assertion (1) of Proposition 4.1

$ gp sheet_w23_mult2.gp

log for proof of Theorem 3 (text file)

In this case the computations take months, see log_w23_mult1 for the log file indicating which parameters l, a and b proved useful.

Worksheet for Lemma 4.2

$ gp sheet_w24_reg.gp

Worksheet for Proof of Theorem 4 (Section 4.3)

$ gp sheet_w23_grh.gp

Worksheet for illustration of Section 2.4.7

$ gp sheet_j2.gp

Rigorous checks in Sage using interval arithmetic (Arb library)

The most relevant files are

$ sage
sage: load("verify_illustration.sage")
sage: load("verify_j2.sage")
sage: load("verify_low_weight.sage")

Implementation of the inductive strategy of Sections 1.4 and 3

Most important files:

Computations in trace_alg_rep.sage and combi_endo.sage are done with several processes, so one may want to tweak ncpus there.

Finally, compute_from_masses.sage contains the computations explained in Section 3.3. To run these computations:

$ sage
sage: load("wrap_compute_masses.sage")
sage: compute_all()

The first command already checks (using interval arithmetic) that the sets of dominant weights contained in contradict_vect/db_reg_selfdual_mixed do satisfy property (P1’). The second command should take a few hours, depending on the particular computer used and the bound on the motivic weight for which all computations are made (see the global variable wt_bounds in compute_masses.sage). Note that this will require quite a lot of memory because of the large linear systems that the computer has to consider (e.g. for \(\mathrm{SO}_{17}\) it has 10,250,196 coefficients). To do a simpler test one can tweak the max_rk_* global variables in compute_masses.sage before running compute_all().

To produce tables of \(\mathrm{T}_\mathrm{ell}(G; \lambda)\), \(\mathrm{EP}(G; \lambda)\) and \(\mathrm{N}^\perp(w(\lambda))\) see save_comp.sage (subdirectories data/ell_tr, data/EPchar, data/new_para, data/human_new_para must be created first).

Verification of Bocherer’s criterion used in proof of Prop. 5.12

See verif_bocherer.pdf.

Automatic verification for Section 5.3.1

We implemented this twice independently, just to be sure.