Types for Programs and ProofsDAT140/DIT232, study period 1, 2014NewsThe results of the take home exam are now ready. The final grades for the course will soon be available.AimThe development of powerful type systems is an important aspect of modern programming language design. The aim of this course is to provide a solid and broad foundation in type systems for programming languages. The student will be exposed to applications of type-based technology in computer science and learn to use an interactive programming and proof system using dependent types. |
![]() |
Bonus points will also be given for good presentations (max 5 pts) and
for attendance at the presentations (max 4 x 1 pts).
Course notes on dependent types:
Course notes on PCF:
Prerequisites
Functional programming (essential). Some knowledge of logic and programming languages.
Lectures
Agda supervision (GM)
Plan
Date
Chapters
Topics
Homework
Th 4 Sep
1-3
Introduction. Arithmetic expressions (TC)
Homework due 15 Sep 13.15
Mo 8 Sep
Haskell-like programming in Agda. (PD)
Code:
Booleans,
Natural numbers,
Lambda notation,
Th 11 Sep
Dependent types. Propositions as sets. (PD)
Code:
Lists,
Pairs,
Vectors,
Propositional logic.
Homework due 22 Sep 13.15
Mo 15 Sep
Predicate logic. Proving in Agda (PD)
Code: Predicate logic,
Identity,
Proofs about booleans,
Proofs about natural
numbers.
Th 18 Sep
3-4
Proving in Agda. Boolean expressions and untyped
lambda expressions in Agda (PD)
Code:
Boolean expressions,
Products as records,
Counters as records,
Finite sets,
Untyped lambda expressions
Typed lambda expressions
Homework due 29 Sep 13.15
Mo 22 Sep
Dependently typed programming. (UN)
Code: An evaluator for typed lambda terms.
Th 25 Sep
5-10
Simply typed lambda calculus. Type soundness. (TC) Description of
simply typed lambda-calculus with de Bruijn
notations and closures.
Homework due 6 Oct 13.15
Mo 29 Sep
11-12
Polymorphism and system F. Abstract data types and
existential types. Normalization. (TC)
Th 2 Oct
23-25
Introduction to univalent foundations. (TC)
Mo 6 Oct
Student presentations.
Th 9 Oct
Student presentations.
Mo 13 Oct
Student presentations.
Th 16 Oct
Student presentations.
Mo 20 Oct
Student presentations.
Examination
Note that both homework and take home exam should be done individually. If we find
out that people have helped each other or copied solutions, we will
fail the whole course both for the helper and the helped.
Links
Course evaluators
Registration
For GU-students admitted to the course.
This semester you have to register online in LPW at the Student
portal. The registration is compulsory and you need to register
the same day as the first lecture otherwise
you will lose your place in the course.
Further information about registration and how to activate your
student account