EduXchange.NL

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, dependemtly 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 typing algorithm of Hindley-Milner.
  • The Curry-Howard isomorphism (or 'formulas-as-types' interpretation).
  • Translation of logical propositions in first and higher order logic to a type system.
  • Natural Deduction proofs with the proof assistant Coq.
  • The formalization of a problem in computer science (the correctness of an algorithm) in the proof assistant Coq. (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 Coq. The proof assistant Coq will be studied and used for a formalization project.

Required prior knowledge

2IT60 Logic and set theory

Link to more information

If anything remains unclear, please check the FAQ of TU Eindhoven.

Offering(s)

  • Start date

    3 February 2025

    • Ends
      6 April 2025
    • Term *
      Block GS3
    • Location
      Eindhoven
    • Instruction language
      English
    • Register between
      15 Nov, 00:00 - 5 Jan 2025
    Enrolment starts in 195 days
These offerings are valid for students of Utrecht University