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