Professor Prof. Tobias Nipkow
Time and Place Monday 16:15 ‐ 17:45 in MI Hörsaal 2
Live stream RBG Live
First Lecture
Language English
TUMonline IN2358
Moodle Course Link
Discussion Forum Zulip
Lecture Notes Lecture Notes on Lambda Calculus


None yet.

General notice


Examiner Prof. Tobias Nipkow
Date & Time 2023-02-25 10:00 ‐ 11:30
Place Hans-Fischer-Hörsaal, Chemistry building
Previous exams WS21 Exam/WS21 Solution

The exam will be a standard pen-and-paper exam. You are allowed to bring one DIN A4 sheet with hand-written notes on both sides.

Grading Scheme

Grade Min Points
1 32
1.3 29.5
1.7 27
2 24.5
2.3 22
2.7 19.5
3 17.5
3.3 15.5
3.7 13.5
4 11.5
4.3 9
4.7 6.5
5 0

Post-Exam Review

You have received a link for the online review together with the grade published on TUMonline. If you are an external student (e.g. from the LMU), you should contact the tutorial organiser to receive the link. The exam review runs until Monday morning, i.e. .


Organiser Lukas Stevens
Time and Place Thursday 10:00 ‐ 12:00 in Taurus 1, Galileo
First Tutorial

Exercise Sheets

Exercise Sheet For Digital Editing Tutorial Solution
Exercise 01 Tutorial Solutions 01
Exercise 02 Tutorial Solutions 02
Exercise 03 Tutorial Solutions 03, Homework 3.5 Solution
Exercise 04 Exercise 04 Tutorial Solution 04
Exercise 05 Exercise 05 Tutorial Solution 05
Exercise 06
Exercise 07 Exercise 07 Tutorial Solution 07
Exercise 08 Exercise 08 Tutorial Solution 08
Exercise 09, Exercise 9.2 Template Exercise 09 Tutorial Solution 09, Exercise 9.2 Solution
Exercise 10, Exercise 10.3 Template Exercise 10 Tutorial Solution 10, Exercise 10.3 Solution
Exercise 11, Exercise 11.2 Template Exercise 11 Tutorial Solution 11, Exercise 11.2 Solution
Exercise 12, Exercise 12.1 Template Exercise 12 Tutorial Solution 12, Exercise 12.1 Solution
Exercise 13 Exercise 13 Tutorial Solution 13


The \(\lambda\)-calculus is a universal model of computation, i.e. it can simulate any Turing machine, that was introduced by Alonzo Church in the 1930s. Today it forms the basis of many functional programming languages such as Haskell or Idris. Due to the Curry-Howard correspondence terms of the \(\lambda\)-calculus can not only be interpreted as programs but also as proofs. In its simplest form, the \(\lambda\)-calculus only has three rules that dictate how a term can be constructed:

Syntax Name Description
\(x\) Variable A name representing a parameter or mathematical value.
\((\lambda x.\ t)\) Abstraction Function definition where \(t\) is a \(\lambda\)-term. The variable \(x\) becomes bound in the expression.
\((f\ t)\) Application Applying the function \(f\) to the argument \(t\). Both \(f\) and \(t\) are \(\lambda\)-terms.

In order to compute with \(\lambda\)-terms we define \(\beta\)-reduction: the term \((\lambda x.\ t)\ s\) reduces to \(t[s / x]\) which means that any occurence of the variable \(x\) in \(t\) is replaced by \(s\). The above rules formalise the basic untyped \(\lambda\)-calculus. In the lecture, we will discuss the theoretical properties of both untyped and (simply) typed lambda calculus. In particular, we will investigate the correspondence of programs and proofs in the second part of the lecture:

  1. Untyped Lambda calculus

    1. Syntax: Terms, notational conventions, Currying, static binding, free and bound variables, substitution, alpha-conversion.

    2. Beta-reduction: Definition of \(\beta\)-reduction. Proof that \(\beta\)-reduction is confluent.

    3. Eta-reduction: Motivation, definition and basic properties: termination and (local) confluence.

    4. Reduction strategies: Without proof: contraction of leftmost \(\beta\)-redexes leads to a normal form if one exists.

    5. Lambda calculus as a programming language: Booleans, pairs, Church numerals, fixed-point combinators.

  2. Typed Lambda calculus

    1. Simply typed lambda calculus: Simple types. Implicitly and explicitly typed terms. Type checking rules.

    2. Type inference: Type-correct terms no longer have a unique type but still a most general type. Proof by a concrete Prolog-like interpretation of the typing rules as backward computation rules.

    3. Let-polymorphism: Universally quantified type schemas. Typing rules for “let” and for type schemas. Syntax-directed typing rules with built-in quantifier handling.

    4. Curry-Howard correspondence: Types = propositions, lambda-terms = proofs, beta-reduction = proof-reduction. Proof of the subterm property of proofs in normal form. Proof of decidability of intuitionistic propositional logic via proofs in normal form.