Mathematical Logic
The mathematics of proof, types, and computation
About this series
Mathematical logic is the field that rigorously treats mathematical "reasoning" and "proof" themselves as objects of mathematics. It answers questions such as "what is a proof?", "what do we take as the foundation of trust?", and "which logical basis do we choose?" with the theory of formal systems.
This series begins at the entrance of distinguishing syntax and semantics of formal systems, then proceeds through natural deduction, soundness and completeness (proof theory), the λ-calculus and type theory, the Curry–Howard correspondence, dependent type theory, Gödel's incompleteness theorems, and on to the de Bruijn criterion, the trusted computing base (TCB), and the design of proof assistants. Ultimately it aims to trace, step by step, the path from the entrance to the current state of modern theorem provers — up to the design of a proof-checking kernel built on constructive reals.
This series is adjacent to the existing Proof series (which teaches how to write proofs), Set Theory, and Theory of Computation. Whereas the Proof series covers "how to write a proof," this series covers "what a proof is and how a machine checks it."
Learning by level
The learning flow
Main topics
Syntax and semantics
The distinction between manipulating symbols (syntax) and what they mean (semantics). The starting point for understanding a formal system.
Proof = program
The Curry–Howard correspondence. Propositions are types, proofs are terms, reduction is computation. The backbone of type-theory-based proof systems.
Soundness and completeness
When "provable" and "true" coincide. The two bridges connecting syntax and semantics.
Limits of systems
Gödel's incompleteness theorems. A sufficiently strong system cannot prove its own consistency.
Trusted computing base (TCB)
The de Bruijn criterion, a small checking kernel, and "generator → checker." What must you trust to trust a proof?
The three foundations
ZFC (set theory), HOL (higher-order logic), and type theory. The options for building mathematics and how they differ.
Why study mathematical logic
There are several reasons to study mathematical logic:
- The nature of proof: understand "what a proof is" formally, not just intuitively
- The foundation of trust: learn which axioms and rules suffice to build mathematics
- Unity with computation: through Curry–Howard, see that logic and computation are the same thing
- Proof assistants: understand the theoretical basis of Coq, Lean, Isabelle, and HOL Light
- Formal verification: learn the principles behind large-scale verifications such as seL4, CompCert, and Flyspeck
Related and applied fields
- Proof assistants: Coq, Lean, Agda, Isabelle, HOL Light
- Formal verification: OS kernels (seL4), compilers (CompCert), mathematical theorems (Flyspeck)
- Programming language theory: type systems, type safety, dependent types
- Foundations of mathematics: connections with set theory, model theory, and recursion theory
- Mathematics by computer: constructive mathematics, the design of proof-checking kernels