Course: Verification of Reactive Systems
Summer 2014
Instructor:
Rupak Majumdar (rupak@mpi-sws.org)
Room 414, Building 26 (MPI-SWS)
Teaching assistants:
Johannes Kloos (jkloos@mpi-sws.org)
Filip Niksic (fniksic@mpi-sws.org)
Room 515, Building 26 (MPI-SWS)
Lectures:
Monday, Wednesday 08:15-09:45
Room 111, Building 26 (MPI-SWS)
Tutorial:
Friday 15:30-17:00
Room 111, Building 26 (MPI-SWS)
Office hours:
- Monday, 15:30-16:30 (Room 515, Building 26) or by appointment
Mailing list:
Introduction
This course focuses on the theory and practice of computer-aided verification, with an emphasis on software verification.
Prerequisites:
- The course requires basic knowledge of algorithms, data structures, automata theory, computational complexity, and propositional logic. For example, you should know what it means for a formula to be satisfiable, how to determinize a finite automaton, what is depth first search, and what P and NP means. If you are not familiar with these concepts, please attend the two initial lectures on background material.
Textbook:
- Class notes and research papers will be handed out.
Grading:
- Grades will be awarded on the basis of a final exam. Permission to take the final exam will be given based on your performance in homework assignments and a project paper.
Note: The permission to take the exam is derived from this year's homework. Having taking the course before does not count!
Exam dates: July 28 and October 13, 2014
- Grades will be awarded on the basis of a final exam. Permission to take the final exam will be given based on your performance in homework assignments and a project paper.
Projects:
- Potential project topics, both theoretical and experimental, will be announced during the first few weeks of the course. Any suggestions for designing your own project according to your interests are very welcome. Every project will require a mentor. Projects will involve either surveying a field in depth, or using state of the art model checkers to verify large systems of interest, or to extend the capabilities of existing model checkers by implementing new algorithms or proving new theorems.
Teamwork:
- Students may collaborate on homeworks, but each student needs to individually write up a solution set and be prepared to present it in class on the due date. Projects must be done in groups, but each person should have a clearly identifiable responsibility.
Logistics of Homework:
- Homework exercises will be handed out every two weeks (weekday TBA). Your answers must be handed in until the day specified in the homework, at the end of the lecture. Answers can be handed in personally to any of the teaching assistants.
Exam
- The first exam will take place on July 28th, at 9:00am, in rooms 56-206 and 56-207.
- The exam is an open-book exam: You may bring any notes and literature that you like.
Schedule
# |
Date |
Course topic / lecture |
Homework |
Materials |
Video |
L1 |
April 23 |
Introduction to formal verification |
|
Lecture slides |
|
- |
April 25 |
|
|
|
|
L2 |
April 28 |
Preliminaries: graph algorithms, automata theory |
Homework 1. Need not be turned in. |
|
|
L3 |
April 30 |
Preliminaries: propositional logic |
|
Lecture notes |
|
T1 |
May 2 |
Solutions to Homework 1. |
|
|
|
L4 |
May 5 |
The invariant verification problem. Enumerative invariant verification. Depth first search. Spin. |
|
Notes from an unpublished text book by Rajeev Alur and Tom Henzinger: |
|
L5 |
May 7 |
Peterson's protocol. Heuristics for enumerative invariant verification. Symbolic invariant verification. Symbolic reachability. |
|
||
T2 |
May 9 |
Q & A |
|
|
|
L6 |
May 12 |
Symbolic model checking with SAT |
|
Malik and Weissenbacher. Boolean satisfiability solvers: Techniques and extensions. |
|
L7 |
May 14 |
Implementing a SAT Solver. BDDs. |
Homework 2. Due May 28, 2014. |
|
|
T3 |
May 16 |
Q & A |
|
|
|
L8 |
May 19 |
BDDs. |
|
Bryant. Graph-based algorithms for Boolean function manipulation. (The BDD paper.) |
|
L9 |
May 21 |
SMT. Timed automata and difference constraints. |
|
Project suggestions. |
|
T4 |
May 23 |
Q & A |
|
|
|
L10 |
May 26 |
Symbolic execution. |
|
Cadar, Sen. Symbolic execution for software testing: Three decades later. |
|
L11 |
May 28 |
Inductive invariants. Abstraction. |
|
|
|
T5 |
May 30 |
Solutions to Homework 2. |
|
|
|
L12 |
June 2 |
Predicate abstraction and CEGAR. |
|
|
|
L13 |
June 4 |
IC3. |
Homework 3. Due June 18, 2014. |
Bradley. SAT-based model checking without unrolling. (The IC3 paper.) |
|
T6 |
June 6 |
Q & A |
|
|
|
- |
June 9 |
Holiday (No lecture) |
|
|
|
L14 |
June 11 |
Interpolation-based model checking |
|
|
|
T7 |
June 13 |
Discussing projects |
|
|
|
L15 |
June 16 |
Simulation and Bisimulation |
|
|
|
L16 |
June 18 |
Simulation and Bisimulation |
|
|
|
T8 |
June 20 |
Solutions to Homework 3. |
|
|
|
L17 |
June 23 |
Well-structured Transition Systems |
|
|
|
- |
June 25 |
Cancelled. |
|
|
|
T9 |
June 27 |
Q & A |
|
|
|
L18 |
June 30 |
Example: Concurrent programs |
|
|
|
L19 |
July 2 |
Safe Temporal Logic (STL) |
Homework 4. Due July 9/July 16, 2014. |
|
|
T10 |
July 4 |
Q & A |
|
|
|
L20 |
July 7 |
Model checking STL |
|
|
|
L21 |
July 9 |
Safety vs liveness |
Safety and liveness (We did not cover all the material) |
|
|
- |
July 11 |
Cancelled |
|
|
|
L22 |
July 14 |
CTL |
|
CTL (For reading about linear time logics and automata: Automata-theoretic verification |
|
L23 |
July 16 |
Model checking CTL |
|
|
|
T11 |
July 18 |
Solutions to Homework 4. Moved to 10:00 am! |
|
|
|
- |
July 21 |
No lecture (preperation time for project presentations) |
|
|
|
L24 |
July 23 |
Project presentations |
|
|
|
T12 |
July 25 |
Preparation for exam |
Homework 5. (No due date) |
|
|
Background survey:
Please fill this background survey: https://de.surveymonkey.com/s/FDFGZLW