top of page
Discrete Torus.png

The Reciprocity Project

Tutorials in Computational Number Theory

Tutorials

Tutorial No. 1

Topics: Elliptic curves, Hecke operators and Hecke eigenforms, q-expansions, Eichler-Shimura congruence relation

Modular Form Disk.png

Tutorial No. 2

Topics: Completions, Cauchy sequences, Ostrowski's theorem, p-adic distance and valuation, Euclidean models

5-Adic.png

Tutorial No. 3

Topics: Riemann zeta-function, distribution of primes, elliptic curve solutions mod p, motives, Hasse-Weil zeta-function, Eisenstein series, cusp forms, adeles, automorphic L-functions

Many Riemann 2.png

Tutorial No. 4

Topics: Quadratic reciprocity, Dirichlet L-functions, Dedekind ζ-functions, Artin Reciprocity

Zeta17 B.png

Bonus Exposition

Topics: abc conjecture, Hodge theaters, labels, non-scheme-theoretic mappings, multiplicative and additive structures of schemes

Teichmuller Mapping.png

The Importance of Computational Examples

I started the Reciprocity Project after asking myself the question, "what is happening to computational mathematics?" I was trained to do computational and experimental mathematics in a certain way during my time at Wolfram Research, which by now might be considered by some to be a tad old-school. This approach to computational mathematics is oriented towards functional and symbolic programming. The key advantage of functional/symbolic programming over pen-and-paper mathematics is that one is able to take mathematical functions and objects that are represented in notation and study them as dynamic functions/objects that one can evaluate numerically or algebraically, as well as visualize. Why is this useful? Well, it allows one to readily 'look inside' a given function or object, see how it actually behaves, and study its dynamics. Instead of just being theoretical (i.e., restricted to notation) a function or object can be seen in terms of its mathematical phenomena. (For example, I don't think one can just look at the Dirichlet series of the Riemannζ-function and know how it will behave!) This leads to research areas like experimental mathematics.

​

I am of the view that experimental mathematics and functional/symbolic programming compliment human mathematical labor nicely, because they allow one to efficiently perform all kinds of calculations pertaining to mathematical phenomena that would otherwise be difficult or laborious, giving one a quick feedback loop between notation and phenomena. This kind of dynamic evaluation is rather different from formalizing mathematical statements in Lean. In the case of Lean, you are proving statements to be true based on other statements already proven to be true. In my view, these are statements about mathematical phenomena, and are essentially meta-mathematical. It is useful to know if general statements are true, but they only represent mathematical phenomena in some compact form.​ As contemporary mathematics becomes increasingly abstract and Bourbaki-like, it's important to be able to relate the notation back to actual calculations and pheomena (at least in my opinion).

 

I worry, a little bit, about a future where we have a plethora of theorems but insufficient computational resources for working with the functions/objects involved experimentally. Even now, I see a widening gap between the functions/objects at the frontier of pen-and-paper mathematics and mathematics software. (There are no shtukas or Fargues-Fontaine curves in Mathematica, for instance, and the technical debt required for getting them in Mathematica is nontrivial!) 

​​​

Because of my symbolic/functional approach, I place great value on examples. Every example is, in a sense, an experiment; we're testing to see if specific or general dynamics are present or if specific or general structural relationships hold. In fact, philosophically speaking, I view theorems and proofs as less important than concrete experiments and examples; a theorem is just a kind of guarantee that the behavior you see in concrete examples holds in general, but the actual mathematics, or mathematical phenomena, are only seen in the examples themselves. Theorems are like the currency of mathematics, but their value is measured in the amount of real mathematical phenomena they capture. ​

 

I learned computational mathematics whilst working at companies and research centers. I've decided to write up some educational tutorials in number theory that reflect the approach that I've learned. They explore popular topics, linking high-level and conceptual overviews with concrete calculations and visualizations. This is how I like to do mathematics.

The Reciprocity Project is created by James Douglas Boyd. James was formerly the CEO of the Wolfram Institute, a computational mathematics research center he cofounded with Stephen Wolfram, and was previously a project manager and Stephen Wolfram's research assistant at Wolfram Research. Since leaving the Institute, he has spent time at the Instituto Nacional de Matemática Pura e Aplicada (IMPA) in Rio de Janeiro; the Research Institute for Mathematical Sciences (RIMS) in Kyoto; the Nesin Matematik Köyü in Åžirince; the Rotman Institute for Philosophy in Ontario; and the Astera Institute in Berkeley.

​

© James Douglas Boyd, 2026, All Rights Reserved​​

bottom of page