![]() |
|
Proofs and Types [Girard] - Printable Version +- MKLab (https://mklab.gr) +-- Forum: [INDEX] (https://mklab.gr/forumdisplay.php?fid=1) +--- Forum: MATHEMATICS (https://mklab.gr/forumdisplay.php?fid=3) +---- Forum: BOOKS (https://mklab.gr/forumdisplay.php?fid=6) +----- Forum: FREE EBOOKS (https://mklab.gr/forumdisplay.php?fid=117) +------ Forum: Foundations of Mathematics (https://mklab.gr/forumdisplay.php?fid=118) +------ Thread: Proofs and Types [Girard] (/showthread.php?tid=2293) |
Proofs and Types [Girard] - mklabgr - 09-29-2026 Proofs and Types by Jean-Yves Girard, translated and supplemented by Paul Taylor and Yves Lafont, is a foundational introduction to the relationship between logic, proof theory, type theory, and computer science. Originally developed from graduate lectures on typed $\lambda$-calculus, the book develops the idea that a logical proposition can be viewed as a type, while a proof can be regarded as a program or term inhabiting that type. This perspective is the basis of the Curry–Howard correspondence, which connects mathematical proofs with computation. The book begins by distinguishing syntax and proofs from semantics and denotation, and then develops natural deduction from a constructive viewpoint. Under this interpretation, logical connectives acquire computational meanings: a proof of $A \land B$ contains proofs of both $A$ and $B$, a proof of $A \Rightarrow B$ is a function transforming proofs of $A$ into proofs of $B$, and existential and universal quantifiers receive analogous computational interpretations. This leads naturally to the $\lambda$-calculus, where propositions become types and proofs become typed terms. For example, a function of type $A \to B$ represents a constructive method for transforming an object of type $A$ into one of type $B$. A central theme is normalization and computation. Logical deductions can be transformed by eliminating unnecessary intermediate steps, while $\lambda$-terms can be reduced through computational rules. Thus, proof normalization and program evaluation are closely related processes. The book then extends the basic typed $\lambda$-calculus to more expressive systems, including Gödel's System T, with natural numbers, recursion, and booleans, and System F, which introduces polymorphism and second-order types. These systems demonstrate how increasingly sophisticated mathematical constructions can be represented computationally. The later chapters move toward sequent calculus, cut elimination, second-order logic, polymorphism, semantics, and linear logic. Girard's linear logic changes the treatment of assumptions by making the use of resources explicit: propositions are not simply reusable indefinitely, which gives the logic a strong connection with resource-sensitive computation. The appendices further discuss semantics of System F, coherence spaces, domains, and the interpretation of types and terms. Overall, the book presents a unified view in which logic can be understood computationally: proving a proposition, constructing a typed program, and performing a computation are different manifestations of closely related structures. Key takeaways
BOOK [PDF] |