1.1 An introduction to the crisis of the foundations of mathematics, Frege’s abstraction principle for generalised functions and to why the lambda calculus was conceived and how it influenced programming languages and proof checkers.
2.1 The syntax and semantics of the language of the computable the lambda calculus and its implementation. Grafting versus substitution, reduction, evaluation.
3.1 Reduction strategies, confluence, termination, normalisation, standardisation, and other properties
4.1 Different languages de Bruijn syntax, combinators, item notation, explicit syntax, etc. and translations between them as well as implementation
5.1 Defining the computable inside the lambda calculus, including number arithmetic, propositional logic, lists, fixed points and recursion.
6.1 Undecidability and showing the limit of computation. The undefinability of the non-computable. The undefinability of “termination”. The undefinability of the “halting problem”
By the end of the course, students should be able to do the following:
Curriculum explorer: Click here
SCQF Level: 9
Credits: 15