Course Exams Lecture Notes Problem Sets

Verification

Core course (offered in block form after lecture period)
Summer term 2013 (September 2013. Receive updates on our mailing list.)

People: Bernd Finkbeiner, Martin Zimmermann, Peter Faymonville, Leander Tentrup
Lecture Room: E1 3, HS001
Lecture Period: September 9th – October 9th
Office Hours: Bernd Finkbeiner: Wednesdays 15:00-16:00 E 1 3 / 506
Martin Zimmermann: E 1 3 / 533
Peter Faymonville: E 1 3 / 533
Leander Tentrup: E 1 3 / 532
Contact: verification at react.uni-saarland.de

News

Structure

This course is held in block form after the lecture period. Except for wednesdays, we’re going to meet every weekday for two sessions, a morning session (from 9:00am to 11:30am) and an afternoon session (from 2:00pm to 4:30pm). On wednesday there is only the morning session. Each session starts with a 60min lecture, followed by roughly an hour of group working time on the assignments. At the end of the session you’re going to discuss your groups’ solutions with your tutor. We’ll grade you on the performance in these meetings.

Syllabus

How can one ensure that computer programs actually do what they are intended to do? Simply running a program repeatedly with various inputs is inadequate, because one cannot tell which inputs might cause the program to fail. It is possible to tailor a tester to test a given program, but present-day programs are so complex that they cannot be adequately checked through conventional testing, which can leave significant bugs undetected. Program verification uses mathematical and logical methods to prove that a program is correct. This approach was pioneered by, among others, Dijkstra, Floyd, Gries, Hoare, Lamport, Manna, Owicki and Pnueli. Today, we have powerful decision procedures that can, completely automatically, answer basic questions about the data types typically used by programmers. Model Checking is a “push-button” technology that can analyze finite-state abstractions of programs with as many as 1020 states. This course takes an up-to-date look at the theory and practice of program verification.

Main Textbooks

Recommended Reading