I am a mathematical logician and philosopher of mathematics, working in the tradition of David Hilbert's Beweistheorie, or "proof theory." I am specifically interested in applying logical methods to mathematics, computer science, and philosophy.

The work described below represents a range of interests, but is generally based on a resolutely syntactic approach to making sense of mathematical method and proof. The list of publications is not exhaustive; for a complete list, see either my CV or Publications and Reviews. Slide presentations of some of this material can be found under Talks.

My research has generally fallen into three categories:

Some my work to date is described in the sections that follow. These days, I spend most of my time on the second of these categories.

Metamathematics and proof theory

A good deal of twentieth-century work in proof theory involved finding formal "reductions" of one axiomatic theory to another, showing how, for example, infinitary or nonconstructive axioms can be interpreted in finitary or computational terms. To that end, I have used and extended many of the standard tools, including cut elimination, normalization, realizability and functional interpretation, semantic interpretations, double-negation translations, ordinal analysis, and forcing arguments. See, for example:

One of my favorite results is something of a curiosity, namely, a characterization of classical propositional logic using one connective, one axiom, and one rule: Many years ago (initially with Rick Sommer), I worked on developing a more semantic, combinatorial approach to ordinal analysis. This did not work out as well as I would have liked, but I am still fond of the following approach the ordinal analysis of classical first-order arithmetic:

The following papers can be seen as contributions to the field of reverse mathematics, where the goal is to calibrate the axiomatic strength required to carry out common mathematical arguments:

Proof mining and computational mathematics

The reductions described in the previous section are reductions "in principle." For example, such a result may tell us that if a certain type of theorem can be proved in a formal axiomatic system, X, that has nonconstructive axioms, then it, or perhaps some related statement, can be proved in a corresponding constructive system, Y. But now suppose one has an ordinary mathematical theorem, proved using methods that are "nonconstructive" in the informal sense. Can proof-theoretic methods be used to provide any useful information?

Georg Kreisel proposed such a program of "unwinding" classical proofs in the 1950's and 1960's, but the idea has only recently begun to bear fruit. In particular, Ulrich Kohlenbach and his students have had impressive success in extracting useful results from nonconstructive proofs in functional analysis. Following a suggestion by Dana Scott, Kohlenbach has adopted the term "proof mining" to describe this type of research. Although it is somewhat dated, the following overview may be helpful:

I am particularly interested in understanding ergodic theory and dynamical systems in more explicit terms, including the applications of those theories to combinatorics and number theory. The following papers deal with this topic.

The following talks provide an overview of some of my interests in the area:

I am also interested in finding ways in which proof-theoretic insights can be used to support computational aspects of mathematics.

Formal verification and automated reasoning

Since the early twentieth century, it has been commonly understood that ordinary mathematical arguments can be formalized in axiomatic theories like Zermelo-Fraenkel set theory. But once again, this was the case only "in principle"; even the most elementary mathematical arguments quickly grow unwieldy when reduced to axiomatic terms.

Within the last few decades, the advent of computational proof assistants has made it possible to formalize significant mathematical proofs in practice. Such proof assistants provide supporting infrastructure, keeping track of axioms, definitions, and theorems; carrying out calculations; and filling in some of the details of a proof. One can find a survey of the field in the December 2008 issue of the Notices of the AMS, as well as here:

In the fall of 2004, with the help of some students at Carnegie Mellon, I completed a formally verified proof of the Hadamard / de la Vallée Poussin prime number theorem. The formalization is described here:

The proof scripts are still available on an otherwise outdated web page.

I spent 2009-2010 academic year visiting the INRIA / Microsoft Research Joint Centre in Orsay, working on George Gonthier's project to verify the Feit-Thompson theorem. You can read about the end result here:

The following describes some the mechanisms that are used in the project to model ordinary algebraic reasoning:

The following is a contribution to homotopy type theory: More recently, I verified the Central Limit Theorem with Johannes Hölzl and Luke Serafin: I am also interested in developing tools to provide better support for interactive theorem proving: I am currently contributing to the development of a new theorem prover, Lean. Floris van Doorn, Robert Lewis, and I are developing an undergraduate introduction to logic and proof, which incorprates exercises based on Lean:

I am, more broadly, interested in seeing what a traditional, proof-theoretical understanding can contribute to interactive theorem proving. Here is some of the work I have done along these lines:

The following papers develop a logical framework for verifying properties of systems that can be modeled with computable functions over the reals:

Ed Dean, John Mumma, and I have undertaken a detailed analysis of the use of diagrammatic reasoning in Euclid's Elements, which can be used to support the formal verification of such proofs as well:

See also the papers "Mathematical method and proof," "Understanding proofs," and my review of Marcus Giaquinto's book on visualization and diagrammatic reasoning, discussed in the next section.

Philosophy and history of mathematics

The philosophy of mathematics has long focused on questions as to the appropriate justification for mathematical knowledge, the sense in which mathematical statements are true, and the sense in which in which mathematical inferences are correct. But everyday mathematical discourse uses a much richer system of evaluatory assessments: theorems can be interesting, questions can be natural, definitions can be fruitful, concepts can be powerful, proofs can be elegant, and so on. A broader epistemology of mathematics should help clarify these value judgments as well.

I have made the case for such an expansion in a number of places; in addition to "Number theory and elementary arithmetic," listed above, see also:

Some of the methodological and philosophical issues related to the study of visualization and diagrammatic reasoning in mathematics are discussed here:

The history of mathematics can provide valuable guidance towards uncovering what really matters to mathematics. Supported by an Andrew W. Mellon Foundation "New Directions" grant in 2003-2004, I was able to study seminal nineteenth century developments in mathematics. See, for example:

Rebecca Morris and I have written two papers on the history Dirichlet's theorem on primes in an arithmetic progression, and what that history has to tell us about the methods of mathematics: The first adopts a more mathematical and historical perspective, while the second focuses on how these history informs the philosophy of mathematics, and our understanding of Frege's work in the foundations of mathematics. See also the following talks: pdf, pdf.

I am also interested in the history of logic, foundations, and the philosophy of mathematics.