This course gives an introduction to formal methods, focusing in particular on logic, verification and transformation of functional programs, and state-based formal specification using Z. The course aims to cover:
  • Propositional logic
  • Predicate logic
  • Sets, relations and functions
  • Simple functional programming
  • Elementary program verification
  • State and operation specification in Z