Proving with Computer Assistance

2IMF15

About this course

Please note that the the lecture is not completely in slot A. The lectures are scheduled on Thursdays hours 3+4 and 5+6

  • Type systems, especially simply typed, dependently typed, polymorphically typed and higher order typed lambda calculi.
  • Type systems in programming languages: implicit/explicit typing, polymorphic types, inductive and abstract data types; the prinicipal types algorithm of Hindley-Milner.
  • The Curry-Howard isomorphism (or 'formulas-as-types' , “proofs-as-terms” interpretation).
  • Translation of logical propositions in first and higher order logic to a type system.
  • Natural Deduction proofs with the proof assistant Rocq.
  • The formalization of a problem in computer science (the correctness of an algorithm) in the proof assistant Rocq. (Project)

Learning outcomes

  • The primary goal is to understand interactive theorem provers ("proof assistants"), and to learn how to use a proof assistant to formalize a program and to verify its correctness to the currently highest possible degree.
  • The secondary goal is to understand type systems, from the point of view of (functional) programming and from the point of view of logic, following the Curry-Howard interpretation of "formulas-as-types".
    Combining these two viewpoints, type theory forms the theoretical basis for the proof assistant Rocq. The proof assistant Rocq will be studied and used for a formalization project.

Prior knowledge

2IT60 Logic and set theory (or a similar basic logic course that treats natural deduction)

Recommended: 2IPH0 - Functional Programming

Resources

  • Exercises + answers; Will appear on the webpage of the course
  • Introduction to Type Theory - pdf file available through the webpage
  • The book Type Theory and Formal Proof -- An Introduction (Rob Nederpelt and Herman Geuvers, Cambridge University Press, November 2014)
  • The slides of the course - pdf files available through the webpage

Additional information

course
5 ECTS • broadening
  • Level
    master
If anything remains unclear, please check the FAQ of TU Eindhoven.

Starting dates

  • 2 Feb 2026

    ends 5 Apr 2026

    LocationEindhoven
    LanguageEnglish
    Term *Block GS3
    Option 1: Monday 08:45 - 10:45, Thursday 13:30 - 15:30. Option 2: Tuesday 15:30 - 17:30, Thursday 10:45 - 12:45