Lecture notes and slides for a short course on lambda calculus and simple type theories. Each session is designed as a three-hour lecture with in-class exercises. The fourth session is an optional advanced session.
- Untyped lambda calculus, Part I: syntax, alpha-equivalence, substitution, beta-reduction, and beta-equality.
- Untyped lambda calculus, Part II: Church encodings, recursion, evaluation strategies, normalisation, and confluence.
- Simply typed lambda calculus: typing, typed programming, type safety, and strong normalisation.
- Advanced optional session: polymorphic lambda calculus, System F encodings, logical relations, parametricity, and free theorems.
- XeLaTeX
- latexmk
- pdfjam, for combined note handouts
- Fira Sans Font, optional
To compile the regular sessions, run
makeTo compile a specific regular session, run for example
make lecture1To compile note handouts for the regular sessions, run
make noteGenerated PDFs are copied to pdf/.