Formal Methods Foundation

Course Description

This is an advanced graduate course on formal method foundations. The primary goal of this course is to provide students with an understanding of the basic concepts of formal methods, and their applications in computer science. Potential topics include:

  • Functional programming: the connection with logic via Curry-Howard isomorphism
  • Constructive logic: propositional, first-order, and second order
  • Type theory: theory and its applications
  • Program semantics: operational one and type systems
  • Proof theory: including (semi-)automatic theorem proving and practical proof engineering

Prerequisite: basic discrete mathmatics. Some familarity with functional programming is better, but not required.