Module description
Aims and Learning Outcomes
This module aims at providing an in-depth introduction to different state-of-the-art methodologies of Formal Verification and the applications of those methodologies to formally model and reason about algorithms, software, systems, and protocols.
On successful completion of this module, students will:
At the end of the course students will be able to:
- Define a range of formal models
- Formalise problems and specify properties to be verified
- Apply different methods and algorithms for verification
Syllabus
An indication of the types of topics:
- temporal logic: CTL and LTL, Buchi automata
- Explicit model checking
- BDDs and model-checking with BDDs
- symbolic model checking
- SAT and model-checking with SAT
- Security verification
- hybrid automata
- hybrid system verification
- applications of model checking to hardware, software, and protocols verification
- Modelling and functional programming in higher-order logic: recursion, algebraic data types, and high-order functions
- Interactive proofs in higher-order logic: mathematical induction, structural induction, and computation induction
- Proof automation in higher order logic
- Applications of interactive theorem proving to formal verification
Assessment details
Please note: The below assessment details for the 2024/25 academic year may be updated. The confirmed details will be available on the Student Handbook and on the module KEATS page at the beginning of the semester.
Semester 1 only study abroad students will be required to take this exam in an alternative assessment format in the January exam period.
Full year study abroad students will be required to take this exam in person in January.