15-312 Foundations of Programming Languages
Lecture 23: The Curry-Howard Isomorphism

In this lecture we explore an interesting connection between logic and programming languages. In brief, logical proofs embody certain constructions which may be interpreted as programs. Under this interpretation, propositions become types. It was first observed by the logicians Haskell Curry [1960] and William Howard [1969] in different contexts that this is in fact an isomorphism: in a certain fragment of logic, every proof describes a program and every program describes a proof.

We will make the same observation here, using the methodology of judgments that we have used to far in the course, applied to the development of principles of logical reasoning. This formulation is due to Per Martin-Löf [1983].

[ Home | Schedule | Assignments | Software | Resources ]

Frank Pfenning