# Sage Days 71: Explicit p-adic methods in number theory (March 20-24, 2016)

**Organizers**: Jennifer Balakrishnan, David Roe

Location: Oxford, UK

Funding: Clay Mathematics Institute and the Beatrice Yormark Fund for Women in Mathematics

## Schedule and Participants

## Topics

We'll have morning talks on the following topics, with afternoons and evenings dedicated to related projects.

### p-adic methods for zeta functions

Beginning with Kedlaya's algorithm in 2001, *p*-adic methods have seen practical use in counting points on curves and varieties over finite fields. This information is traditionally packaged into a generating function, known as a zeta function, which satisfies a functional equation analogous to the classical zeta function. Recently, Harvey has given an algorithm to compute zeta functions of hyperelliptic curves in average polynomial time.

### Explicit computations in Iwasawa theory

In 2006, Mazur, Stein, and Tate gave an algorithm for the fast computation of *p*-adic heights on elliptic curves. This has since inspired a flurry of activity on computations related to the *p*-adic Birch and Swinnerton-Dyer Conjecture and conjectures in Iwasawa theory: in particular, on *p*-adic heights, *p*-adic regulators, *p*-adic *L*-functions, and *p*-primary components of the Shafarevich-Tate group.

### Overconvergent modular symbols and p-adic L-functions

One can situate classical modular forms in an infinite dimensional *p*-adic Banach space of overconvergent modular forms, where the classical forms' integral weights sit densely within a *p*-adic analytic weight space. Similarly, overconvergent modular symbols interpolate classical modular symbols and *p*-adic *L*-functions interpolate classical *L*-functions. Recently, Pollack and Harron have led a group working on Sage code for computing with these objects using a paper of Pollack and Stevens. The code is functional and is currently being extended to families of overconvergent modular symbols.

### Motivic integration and orbital integrals

Orbital integrals play a fundamental role in trace formulas and their applications to the Langlands program. Hales has been pursuing a program to practically compute these integrals using motivic integration. The methods used in these computations differ from the other projects in that *p* is not fixed at the beginning of the computation. Instead, the end result is motivic, and can be evaluated for a particular prime using algorithms for computing zeta functions as in the first project.

### p-adic Precision and Sage

This project will focus on implementing various core p-adic functionality in Sage, especially precision models for arithmetic with polynomials, matrices, and power series. Other goals include improving the coercion between p-adic fields and their residue fields, working on p-adic fields that are neither unramified nor totally ramified, and adding completions for number fields.

### Variations on the Chabauty-Coleman method and rational points on curves

By Faltings' Theorem, curves of genus at least 2 over number fields *K* have finitely many *K*-rational points; however, the proof is not effective and thus does not yield an algorithm. Nevertheless, under certain hypotheses on the Jacobian of the curve, the method of Chabauty-Coleman can produce these points. Recently, Kim has proposed a nonabelian analogue. In the last few years, explicit examples of Kim's program have been studied for elliptic and hyperelliptic curves, using *p*-adic Hodge theory and local *p*-adic heights.

## Getting started

## Sage Math Cloud Project

We'll be using a Sage Math Cloud project for development during the workshop. If you need access, email David.

### Setting up terminals

You should set up a terminal for using git and for using Sage. Open `~/Terms/Admin.term` and then

~$ cd ~/Terms/ ~/Terms$ ./setup_gitterm.py Your name (for git commits): <TYPE YOUR FULL NAME> Your email (for git commits): <TYPE YOUR EMAIL> Your trac username: <TYPE YOUR TRAC USERNAME> Do you want to save your trac password? [y/N] <CHOOSE Y OR N> Your trac password: <TYPE YOUR TRAC PASSWORD>

If you have it save your trac password, it will be stored in plaintext in ~/Terms/.USERNAME_git.term.init (though only accessible to people at this workshop). If not, you'll need to type your password when you open the terminal and it will be stored in a bash environment variable. If you're not happy with either option, talk to David.

You can then create a terminal for working on each project.

~/Terms$ ./join_group.py --help usage: join_group.py [-h] {Chabauty,Prec,Zeta,Iwasawa,Overconvergent,Motivic} users [users ...] Create terminals for users interested in working on a given project. They alias the correct copy of Sage. positional arguments: {Chabauty,Prec,Zeta,Iwasawa,Overconvergent,Motivic} which project to create terminals for users users to create terminals for. optional arguments: -h, --help show this help message and exit ~/Terms$ ./join_group NAME_OF_PROJECT YOUR_TRAC_USERNAME