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:
I am interested in the way that mathematics balances the need for abstract, conceptual understanding on the one hand and pragmatic computation on the other. I have used logical methods to locate combinatorial, computational, and quantitative information that is implicit in proofs in fields like ergodic theory and dynamical systems.
I am interested in the way that formal methods from computer science can be used to support mathematical reasoning. I have contributed to the development of a proof assistant, Lean, and its libraries. (The project page is here and the Lean community web pages are here.)
I am interested in using historical and logical insights to get a better philosophical grasp of mathematics and mathematical understanding.
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
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:
- Proof theory
Introduction to Formal Philosophy, edited by Vincent F. Hendricks and Sven Ove Hansson, to appear.
- Functional interpretation and inductive
with Henry Towsner, Journal of Symbolic
Logic, 74:1100-1120, 2009. Paper:
- The computational content of classical
in Solomon Feferman and Wilfried Sieg, eds.,
Proofs, Categories, and Computations: Essays in Honor of Grigori Mints,
College Publications, 15-30, 2010.
- Forcing in proof theory
Bulletin of Symbolic Logic, 10:305-333, 2004.
Paper: doi, jstor,
bsl. Preprint: pdf.
- Eliminating definitions and Skolem functions in
ACM Transactions on Computational Logic, 4:402-415, 2003.
(Conference version: Logic in Computer Science 2001,
- Weak theories of nonstandard arithmetic and
in Stephen Simpson, editor, Reverse
A K Peters, 19-46, 2005.
- Number theory and elementary arithmetic
Philosophia Mathematica, 11:257-284, 2003. Paper: doi. Reprint: pdf.
- Interpreting classical theories in constructive
Journal of Symbolic Logic, 65:1785-1812, 2000.
- Gödel's functional ("Dialectica")
with Solomon Feferman, in S. Buss ed., The Handbook of Proof
Theory, North-Holland, 337-405, 1999.
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
- Plausibly hard combinatorial tautologies
Beame and Buss eds., Proof Complexity and Feasible
Arithmetics, American Mathematical Society, 1-12, 1997.
- Update procedures and the 1-consistency of
Mathematical Logic Quarterly, 48:3-13, 2002.
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:
- Algorithmic randomness, reverse mathematics, and the dominated
with Edward Dean and Jason Rute.
Annals of Pure and Applied Logic, 163:1854-1864, 2012.
- Fundamental notions of analysis in subsystems of
with Ksenija Simic, Annals
of Pure and Applied Logic,
139:138-184, 2006. Paper: doi. Preprint: pdf.
- An effective proof that open sets are Ramsey
Archive for Mathematical Logic, 37:235-240, 1998.
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
- Proof mining
A three-lecture tutorial.
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.
- Ultraproducts and metastability
with José Iovino, New York Journal of Mathematics, 19:713-727, 2013.
- Oscillation and the mean ergodic theorem for uniformly convex Banach spaces
with Jason Rute. Ergodic Theory and Dynamical Systems, 35(4):1009-1027, 2015.
- Uniform distribution and algorithmic randomness
Journal of Symbolic Logic, 78:334-344, 2013.
- A metastable dominated convergence theorem
with Edward Dean and Jason Rute, Journal of Logic and Analysis, 4:3:1-19, 2012.
- Uncomputably noisy ergodic limits
Notre Dame Journal of Formal Logic, 53:347-350, 2012.
- Inverting the Furstenberg correspondence
Discrete and Continuous Dynamical Systems, Series A, 32: 3421-3431, 2012.
- Metastability in the Furstenberg-Zimmer
with Henry Towsner, Fundamenta Mathematicae, 210:243-268, 2010.
- The metamathematics of ergodic theory
Annals of Pure and Applied Logic, 157:64-76, 2009.
Paper: doi. Preprint: pdf.
- Local stability of ergodic averages
Philipp Gerhardy and Henry Towsner, Transactions
of the American Mathematical Society, 362:261-288, 2010.
The following talks provide an overview of some of my interests in the area:
- Computability and uniformity in ergodic theory
- Computability, constructivity, and convergence in measure theory
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:
- The mechanization of mathematics
Notices of the AMS, 65(06):681-690, 2018. Paper: doi.
- Formally verified mathematics
with John Harrison, Communications of the ACM, 57(4):66-75, 2014. Paper: doi, pdf.
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
- A formally verified proof of the prime number
with Kevin Donnelly, David Gray, and Paul
Raff, ACM Transactions on Computational Logic, 9(1:2):1-23, 2007.
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
The following describes some the mechanisms that are used in the project to
model ordinary algebraic reasoning:
- A machine-checked proof of the Odd Order Theorem
with Georges Gonthier (first author), Andrea Asperti, Yves Bertot, Cyril Cohen, François Garillot,
Stéphane Le Roux, Assia Mahboubi, Russell O'Connor, Sidi Ould Biha, Ioana Pasca, Laurence Rideau, Alexey Solovyev, Enrico Tassi, Laurent Théry, in Sandrine Blazy, Christine Paulin-Mohring, and David Pichardie (eds.), Interactive Theorem Proving 2013, Springer, Berlin, pages 163-179.
Paper: doi. Preprint: pdf.
The following is a contribution to homotopy type theory:
- Type inference in mathematics
Bulletin of the European Association for Theoretical Computer
Science, 106:78-98, 2012. Paper: journal.
More recently, I verified the Central Limit Theorem with Johannes Hölzl and Luke Serafin:
- Homotopy limits in type theory
with Krzysztof Kapulkin and Peter LeFanu Lumsdaine. Mathematical Structures in Computer Science, 25:1040-1070, 2015. Paper: pdf.
Print: arXiv. Formal proofs: github.
I am also interested in developing tools to provide better support for interactive theorem proving:
- A formally verified proof of the Central Limit Theorem
with Johannes Hölzl and Luke Serafin. Journal of Automated Reasoning, 59(4):389-423, 2017. Paper: doi, online, preprint: arXiv.
I am currently contributing to the development of a new theorem prover, Lean.
- A heuristic prover for real inequalities
with Robert Y. Lewis and Cody Roux. Journal of Automated Reasoning, 56:367-386, 2016. (Conference version in Gerwin Klein and Ruben Gamboa, eds., Interactive Theorem Proving 2014, Springer, Heidelberg, 61-76, 2014.)
Code: github. Here is a draft of a revised, expanded version: pdf.
Floris van Doorn, Robert Lewis, and I are developing an undergraduate introduction to logic and proof, which incorprates exercises based on Lean:
- The Lean mathematical library
by The mathlib Community. Certified Proofs and Programs (CPP) 2020. Paper: doi, project page: html, repository: github.
- A metaprogramming framework for formal verification
Gabriel Ebner, Sebastian Ullrich, Jared Roesch, Jeremy Avigad, Leonardo de Moura, Proceedings of the ACM on Programming Languages, International Conference on Functional Programming, 1:34, 2017. Paper: doi.
- Theorem Proving in Lean
with Leonardo de Moura and Soonho Kong. Online: html, text: pdf.
- The Lean Reference Manual
with Leonardo de Moura, Gabriel Ebner, and Sebastian Ullrich. Online: html, text: pdf.
- Programming in Lean
with Leonardo de Moura and Jared Roesch. Online: html, text: pdf
- An Introduction to Lean
with Gabriel Ebner and Sebastian Ullrich. Online: html, text: pdf
- The Lean theorem prover (system description)
with Leonardo de Moura, Soonho Kong, Floris van Doorn, and Jakob von Raumer.
25th International Conference on Automated Deduction (CADE-25), Berlin, Germany, 2015. Paper: html.
- Logic and Proof
with Floris van Doorn and Robert Lewis. Online: pdf, text: pdf
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:
- A language for mathematical knowledge
with Steven Kieffer (first author) and
Harvey Friedman, Studies in
Logic, Grammar and Rhetoric (special issue on computer reconstruction of the
body of mathematics), 18:51-66, 2009. Paper: journal, arXiv. Associated materials: html.
- A decision procedure for linear "big O"
with Kevin Donnelly, Journal of
Automated Reasoning 38: 353-373, 2007. Paper: doi. Preprint: arXiv. Implementation: sml.
- Combining decision procedures for the reals
with Harvey Friedman, Logical Methods in Computer
Science, 2(4:4):1-42, 2006. Paper: doi, arXiv
- Quantifier elimination for the reals with a predicate
for the powers of two
with Yimu Yin,
Theoretical Computer Science, 370:48-59, 2007. Paper:
doi. Preprint: arXiv
- Formalizing O notation in Isabelle/HOL
Kevin Donnelly, in David Basin and Michaël Rusinowitch,
editors, Automated Reasoning: second international joint
conference, IJCAR 2004, Lecture Notes in Artificial
Intelligence 3097, Springer, 357-371, 2004. Paper: doi. Preprint: pdf.
The following papers develop a logical framework for verifying properties
of systems that can be modeled with computable functions over the reals:
- Delta-complete decision procedures for satisfiability over the reals
with Sicun Gao (first author) and Edmund M. Clarke, in Bernard Gramlich et al., International Joint Conference on Automated Reasoning (IJCAR), 286-300, 2012.
- Delta-decidability over the reals
with Sicun Gao (first author) and Edmund M. Clarke, in Logic in Computer Science (LICS), 315-324, 2012.
Paper: doi. Preprint: arxiv.
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
- A formal system for Euclid's
with Edward Dean and John Mumma,
Review of Symbolic Logic, 2:700-768, 2009.
Paper: doi, pdf.
Axioms and test data: smt,
Test diagram: pdf.
Notes and errata: html.
See also Ben Northrop's code: html.
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:
- The design of mathematical language
Draft: philsci archive.
- Reliability of mathematical inference
To appear in Synthese. Paper: doi, preprint: philsci archive.
An article in Aeon magazine: html
- Modularity in mathematics
Review of Symbolic Logic, 13:47-79, 2020.
Preprint: doi, philsci archive.
- Mathematics and language
To appear in Ernest Davis and Philip Davis eds., Mathematics, Substance, and Surmise:
Views on the Meaning and Ontology of Mathematics, Springer, Cham, 235-255, 2015. Paper: SpringerLink, preprint: arXiv.
- Review of Bonnie Gold and Roger A. Simons, Proof and
Other Dilemmas: Mathematics and Philosophy
Notices of the American Mathematical Society, 58(11): 1580-1584, 2011.
- Understanding, formal verification, and the philosophy of mathematics
Journal of the
Indian Council of Philosophical Research (special issue on logic and philosophy today),
- Computers in mathematical inquiry
Mancosu, editor, The Philosophy of Mathematical Practice,
Oxford University Press, 302-316, 2008. Reprint:
- Understanding proofs
in Paolo Mancosu,
editor, The Philosophy of Mathematical Practice, Oxford
University Press, 317-353, 2008. Reprint:
- Response to questionnaire
in Vincent F.
Hendricks and Hannes Leitgeb, editors, Philosophy of
Mathematics: 5 questions, Automatic / VIP Press, 2007. Book
site: html. Preprint: pdf.
- Philosophy of mathematics
Boundas, editor, The Edinburgh Companion to Twentieth-Century
Philosophies, Edinburgh University Press, 234-251, 2007, also
published as The Columbia Companion to Twentieth-Century
Columbia University Press, 2007. Preprint: pdf.
- Mathematical method and proof
Synthese 153:105-159, 2006. Paper: doi. Preprint: pdf.
Some of the methodological and philosophical issues related to the
study of visualization and diagrammatic reasoning in mathematics are
- Review of Marcus Giaquinto, Visual Thinking in
Mathematics: An Epistemological Study
Philosophia Mathematica, 17:95-108, 2009. Review: doi. Preprint: pdf.
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,
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:
- Methodology and metaphysics in the development of
Dedekind's theory of ideals
Ferreirós and Jeremy Gray, editors, The Architecture of
Modern Mathematics, Oxford University Press, 159-186, 2006.
Uncorrected proofs: pdf.
- Dedekind's 1871 version of ideal theory
translation, with an introduction; Carnegie Mellon Technical
Report CMU-PHIL-162, 2004. Paper: pdf. The original:
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,
- The concept of 'character' in Dirichlet's theorem on primes in an arithmetic progression
with Rebecca Morris. Archive for History of Exact Sciences, 68:265-326, 2104.
- Character and object
with Rebecca Morris. Review of Symbolic Logic, 9:480-510, 2016.
Published version: doi, pdf.
Expanded version: pdf.
I am also interested in the history of logic, foundations, and the
philosophy of mathematics.
- Review of Eckart Menzler-Trott, Logic's Lost Genius: The Life of Gerhard
Gentzen and Reinhard Kahle and Michael Rathjen, editors, Gentzen's Centenary:
The Quest for Consistency
Notices of the American Mathematical Society, 63(11):1288-1292, 2016.
- Review of S. Barry Cooper and Jan van Leeuwen, eds., Alan Turing: His Work and Impact
Notices of the American Mathematical Society, 61(8):886-890, 2014.
- Computability and analysis: the legacy of Alan Turing
with Vasco Brattka. In Rod Downey, editor, Turing's Legacy: Developments from Turing's Ideas in Logic, Cambridge University Press, 1-47, 2014.
- Gödel and the metamathematical
in Charles Parsons et al. eds.,
Kurt Gödel: Essays for his Centennial,
ASL Lecture Notes in Logic, Cambridge University Press, 45-60, 2010.
- Review of William Tait, The Provenance of Pure
Reason: Essays in the Philosophy of Mathematics and its
Bulletin of Symbolic Logic, 12:608-611, 2006. Review: bsl. Preprint: pdf.
- Review of Calixto Badesa, The Birth of Model Theory:
Löwenheim's Theorem in the Frame of the Theory of
The Mathematical Intelligencer, 28(4):67-71, 2006. Review:
doi, Preprint: pdf.
- Review of Dennis E. Hesseling, Gnomes in the Fog: The
Reception of Brouwer's Intuitionism in the 1920s
The Mathematical Intelligencer, 28(4):71-74, 2006. Review:
doi. Preprint: pdf.
- "Clarifying the nature of the infinite": the
development of metamathematics and proof theory
Erich H. Reck, Carnegie Mellon Technical Report CMU-PHIL-120,
2001. Paper: pdf.