Type Theory and Curry-Howard Correspondence
Type theory is a formal system in which every term carries a type, and the Curry–Howard correspondence establishes a precise dictionary equating propositions with types, proofs with programs, and proof normalization with program evaluation. Key result: intuitionistic logic and the simply typed λ-calculus are two faces of the same structure; this extends to dependent types ↔ predicate logic, and to cartesian closed categories. Applies to proof assistants (Coq, Lean, Agda), functional programming, and the foundations of constructive mathematics. Originating with Curry (1934), Howard (1969), and de Bruijn, Martin-Löf, and Lawvere.
A proposition is the type of its proofs. To prove is to give a method transforming any proof of into a proof of — i.e., a function of type . Logical connectives become type constructors (, , , , ), inference rules become typing rules, and the act of running a proof corresponds to simplifying a redundant proof step. Logic, computation, and structure are unified.
Formal Statement
Types are generated from a set of base types by the function arrow:
Derivation hint: read as right-associative; means . Terms are variables, applications, and abstractions:
Derivation hint: binds in ; application associates left. A context is a finite list of variable–type pairs with distinct variables. The typing judgment is derived by:
Derivation hint: abstraction discharges a hypothesis ( introduction); application uses a function on an argument ( elimination).
The correspondence is the table of identifications between logic and type theory:
Derivation hint: each connective's introduction/elimination rules match the constructor/destructor typing rules exactly.
There is a bijection between 1. derivations of in the natural-deduction system for intuitionistic propositional logic (), and 2. (β-normal, up to renaming) terms with in λ→ (with products and sums), such that proof normalization (detour/cut elimination) corresponds to β-reduction. Formally, if a proof reduces to by removing an introduction-then-elimination detour, the associated terms satisfy .
The following three are equivalent structures:
- the term model of λ→ with products,
- the proof theory of -IPL,
- a cartesian closed category (CCC),
with the product, the terminal object , and the exponential, satisfying the adjunction:
Derivation hint: this is currying — read left-to-right as -abstraction over , right-to-left as application; the natural iso is the defining universal property of the exponential.
Why It Holds / Derivation
We define a translation from IPL natural-deduction derivations to λ-terms and show it preserves and reflects structure.
Step 1 — Hypotheses. A use of hypothesis at the leaf becomes a variable . This matches the rule [3].
Step 2 — Implication introduction. A derivation of from an extra hypothesis , discharged to conclude , becomes
Derivation hint: discharging the assumption is exactly binding the variable ; the bracketed is the discharged hypothesis.
Step 3 — Implication elimination. Modus ponens (from and infer ) becomes application , matching .
Step 4 — Detours = redexes. A detour is an introduction immediately followed by the matching elimination, e.g. I then E:
Derivation hint: removing the detour substitutes the proof of for the hypothesis — this is exactly β-reduction .
Step 5 — Conjunction. Pairing introduces , projections eliminate it, with reductions , matching detour elimination for .
Step 6 — Bijectivity. The inverse translation reads off a derivation from a typing derivation rule-by-rule. Since both are defined by structural recursion on the same set of rules, and its inverse are mutually inverse, giving the bijection. Preservation of normalization (Step 4) yields the dynamical part of the theorem.
∎The plain isomorphism is with intuitionistic logic. The law of excluded middle , double-negation elimination , and Peirce's law are not inhabited in λ→. Classical logic corresponds to λ-calculi with control operators (Griffin 1990): `call/cc` has the type of Peirce's law. This is the Curry–Howard for classical logic (Parigot's λμ-calculus).
Curry, a combinatory-logic pioneer, observed in 1934 that the types of his combinators and mirror the axioms of implicational logic ( and ). Howard, in a 1969 manuscript circulated informally and published in 1980, extended the analogy to full natural deduction and crucially identified proof reduction with term reduction, turning a static analogy into a dynamic isomorphism. Per Martin-Löf later built an entire constructive foundation (intuitionistic type theory) on this principle.
Building Intuition
Think of a proposition not as something that is merely true or false, but as a collection of evidence. The proposition "" is not a truth value — it is the set of machines that convert any piece of -evidence into a piece of -evidence. To "prove" the implication is to build such a machine. Proving means handing over both pieces of evidence (a pair). Proving means handing over one piece plus a tag saying which side it is (a tagged union) — this is why constructive disjunction is stronger than classical: you must know which disjunct holds. The empty type has no evidence, so a function (a proof of ) is a machine that, fed -evidence, manufactures the impossible — hence must itself be uninhabited.
```svg
```
Worked Examples
Given: the K-combinator proposition (weakening axiom).
Step 1. We need a term of type in the empty context.
Step 2. Introduce (intro of outer ), goal becomes .
Step 3. Introduce (intro of inner ), goal becomes .
Step 4. Context is . Use : . Done.
Step 5. Re-abstract:
Derivation hint: this is precisely Curry's combinator ; logically it is "if then ( implies )".
Boxed answer: — a valid intuitionistic proof, inhabited.
Given: the term , which proves (apply "do twice" to the identity proof).
Step 1. Outer redex: substitute into :
Derivation hint: β-reduce the outer application, replacing every .
Step 2. Inner redex :
Derivation hint: identity applied to is ; one more β-step on the remaining redex.
Boxed answer: . The "complicated" proof of normalizes to the trivial identity proof — the cut-free / normal proof. Type is preserved at every step (Subject Reduction).
Common Misconceptions
Do not conflate two presentations. In Church-style (explicit) typing, abstractions carry their domain annotation , every term has a unique type, and types are part of the syntax. In Curry-style (implicit) typing, terms are untyped λ-terms and a type assignment relation decides which types a term can have — a term may have many types (principal type via Hindley–Milner). The Curry–Howard correspondence is cleanest in the Church-style, propositions-as-types reading; Curry's original 1934 observation was, fittingly, the assignment view.
Peirce's law is a classical tautology but is not inhabited in λ→. There is no closed term
Derivation hint: try to build it — after introducing you must produce an ; the only way is to feed a function , but you have no to feed that function, so you are stuck. The deadlock is exactly the absence of a control operator. This shows the correspondence is with intuitionistic, not classical, logic — a feature, not a bug: it forces proofs to be constructive (computational).
Connections
Type theory sits at the crossroads of several fields. To Lambda Calculus it adds typing discipline guaranteeing strong normalization (every typed term halts). To Category Theory it connects via Cartesian Closed Categories, where the internal language of a CCC is λ→. To Intuitionistic Logic it provides the proofs-as-programs semantics, and to Proof Theory it identifies normalization with Gentzen's cut elimination. The dependent extension yields Martin-Löf Type Theory, whose modern reinterpretation — identity types as paths — is Homotopy Type Theory, linking to Algebraic Topology and Higher Category Theory. The polymorphic fragment System F connects to second-order logic and parametricity.
Real-World Applications
Historical Development
Subtleties & Limits
Several deep tensions remain active research. (1) Univalence and computation: the original HoTT univalence axiom breaks canonicity (some closed terms fail to compute to a value); cubical type theory (Cohen–Coquand–Huet–Mörtberg 2016) restores computational content, but a fully satisfactory, fully general computational interpretation of higher inductive types is still being refined. (2) Decidability frontiers: type checking is decidable for λ→ and Martin-Löf type theory with normalization, but adding extensional equality (reflection) makes it undecidable; locating the exact boundary of usable-yet-decidable systems is ongoing. (3) Classical realizability: giving constructive/computational meaning to genuinely classical and choice principles (Krivine's classical realizability) and reconciling them with intuitionistic foundations remains partly open. (4) Coherence: managing the infinite tower of coherence conditions for higher categories internally in type theory — the problem of semi-simplicial types and a fully synthetic -category theory — is a major unsolved challenge.
See Also
Cartesian Closed Categories · Proof Theory · Cut Elimination · Combinatory Logic · Realizability · Dependent Type Theory · Strong Normalization · Univalence Axiom