Types for Programs and Proofs

Types for Programs and Proofs

DAT140/DIT232, study period 1, 2014

News

The results of the take home exam are now ready. The final grades for the course will soon be available.

Aim

The 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.

Teachers

Literature

Types and Programming Languages by Benjamin Pierce, MIT Press.

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