Content
Model checking is a widely used technique for automatic verification and debugging for both software and hardware, with the power to revel subtle errors that remain undiscovered using testing.
Therefore, model checking is an effective technique to expose potential design errors and improve software and hardware reliability, and it is gaining wide industrial acceptance.
Its inventors Edmund M. Clarke, E. Allen Emerson, and Joseph Sifakis have been awarded the significant Turing award in 2007.
How does model checking work, that is, what are its underlying principles?
This is the focus of this course! We will show that model checking is based on well-known paradigms from automata theory, graph algorithms, logic, and data structures. Since model checking is based on checking models, we first start by explaining what models are. Following, we introduce temporal logics (e.g., LTL and CTL) to formalize various classes of system properties such as safety, liveness and fairness, and discuss in detail model checking algorithms for these logics.
Material
The course is based on:
Model Checking
second edition
by Edmund M. Clarke Jr., Orna Grumberg, Daniel Kröning, Doron Peled, Helmut Veith
MIT Press,
ISBN-13: 978-0262038836
ISBN-10: 0262038838
Schedule
Videos can be found here:
https://seafile.iaik.tugraz.at/d/474b6fd4d1e34723ab77/. You can find the password on our discord server.
Administrative Information
Homework
There are two ways to get a grade for the exam: you do the homework or you take an exam.
If you do the homework, you will get a grade for the course. To get a passing grade, you can skip at most two homeworks. Otherwise, there are 10 points per homework, 50% is a passing grade and the grades above that are divided evenly.
If you don't want to do the homework or you get a failing grade for the homework, you can do a regular exam. Please let me know when you want the exam!
Lecture and exercises (both virtual)
IGNORE EVERYTHING BELOW THIS LINE!
Lecturers