2IMF35  Algorithms for Model Checking
"Given a model of a system, exhaustively and automatically check whether this model meets a given specification. Typically, one has hardware or software systems in mind, whereas the specification contains safety requirements such as the absence of deadlocks and similar critical states that can cause the system to crash. Model checking is a technique for automatically verifying correctness properties of finitestate systems." (source: Wikipedia).
Model checking has applications in a diversity of areas such as software and hardware verification (as expected), but also in planning, scheduling, mechanical engineering, business process mining and biology. To understand the limitations of model checking, we study the mucalculus, CTL* and some of its subsets such as LTL and CTL, from a computational viewpoint in these lectures. Among others, we treat the symbolic (fixed point based) algorithms for CTL, and fair CTL. The mucalculus is discussed and its complexity is analysed. Transformations of the mucalculus model checking problem to the frameworks of Boolean equation systems and Parity Games are addressed, combined with advanced algorithms for solving the latter artefacts.
After
taking this course, students are expected
to
 be capable of explaining the computational complexity of the model checking algorithms for (fair) CTL and the modal mucalculus
 be capable of transforming (fair) CTL formulae to the modal mucalculus
 be able to explain the role of OBDDs in symbolic model checking
 be capable of simplifying Parity Games and parameterised Boolean equation systems
 be able to reason about Parity Games
 be capable of explaining the computational complexity of the algorithms for solving Parity Games
 have the skills to manually execute the
algorithms for model checking (fair) CTL and the
modal mucalculus
 be able to transform the problem of model checking to the modal mucalculus to the problem of solving Boolean equation systems
 be able to transform the problem of solving Boolean equation systems to the problem of computing the winners in a Parity Game, and vice versa
 have the skills to manually solve (parameterised) Boolean equation systems and Parity Games using the algorithms presented in the course.
Assessment
The assessment consists of two assignments and a written examination. The weighting of the assignments and the examination are 30% and 70%, respectively. Students can successfully pass the course iff a minimal score of 5.5 for the written examination is obtained and the average of both assignments is at least 5.5. In that case, the grade is determined by the weighting of the assignments and the examination. In case the minimal score is less than 5.5 for either the examination or the assignment, the minimal score of these determines the final grade.
Important Notes
 Lectures are Monday afternoon (quarter 3) 15.30  17.15 in Vertigo 7.08, and Wednesday morning (quarter 3) 10.45  12.30 in Vertigo 7.08; quite comfortable hours...
 Note: first lecture is Monday 4 February. There are no lectures on 4 March and 6 March. Last lecture is Wednesday 20 March.
 Office hours for
discussing the course: on Wednesday from 13.3014.00. Be sure to drop me a mail if you wish to ensure I'm in my
office.
 The exam is on Saturday 13 April, 9.0012.00. There is a resit on Friday 5 July, 18.0021.00 (but I
strongly suggest you pass the first exam).
 The exam is open book, i.e., the book, handouts and slides may be used for consulting during the examination. Laptops, grannies and other auxiliaries are not allowed.
 The 2012 lectures of this course have been recorded and can be viewed online (you do need to log in for this and be with an institute that struck the right kind of deal with the TU/e for this; the recordings seem to leave some room for improvement).
 Look for previous incarnations of this course (then assigned the number 2IW55) for some exams with solutions (see teaching/past courses; e.g. the exams from 2016 and 2010 can be found online, as well as a 2009 version)
 Last year's student questionnaire can be downloaded here
Course material

Additional reading (not mandatory, roughly
covers the first 4 lectures): Model Checking. Edmund M. Clarke, Jr.,
Orna Grumberg, and Doron A.
Peled. MIT Press, ISBN 0262032708. There seems to be a second edition but I haven't yet seen that one.
 More
additional reading (not mandatory either, roughly covers the first 3
lectures, but offers a very nice read otherwise): Principles of Model
Checking. Christel Baier and JoostPieter Katoen. MIT Press, ISBN
9780262026499.
 Handouts, which will be made available for download below (updated regularly).
 Assignments.
Yes, these too, two of'em, will be made available for download below.
Assignments will be briefly introduced/explained during the lectures.
Caution: the assignments involve some programming and take
time. Plan carefully. Assignments can be made in small groups (3
students max and preferred).
 Research.
If (you think) you enjoy doing research (individually or in a small
group) in the intersection of algorithms, logics, game theory or their
application, feel free to contact me (or approach me during the
lectures): I might have some topics that interest you. Of course, you
can also propose your own
topics.
Topics and Course notes
Part I: 04 Feb  13 Feb. Exercises (to exercise your skills; not mandatory) can be downloaded from here
 04 Feb: Domestic Announcements (slides) and the temporal logics CTL*, CTL and LTL (slides)
 07 Feb: Symbolic model checking for CTL (slides)
 11 Feb: Symbolic model checking: Fairness and Counterexamples (slides)
 13 Feb: The modal mucalculus (slides)
 group assignment I (slides of the announcement and the actual assignment description itself); contact me if you have are still a singleton group...
 original EmersonLei paper
 alternative assignment for those that did last year's assignment