Model Checking

Winter Semester 2015

Armin Biere, Andreas Fröhlich

News

McRaceTrack model checker published.

Schedule

Lecture: Thursday, 8:30 - 10:00, MT 226/1

Overview

This lecture is a course in the Computer Science Master.

Teaching language is English.

Slides

This is version 2015.1.

[ mcslides.pdf ]

SMT Slides

We will upate the slides during the semester and they are not considered to be complete until the end of the semester.

Exercises

Exercises start two weeks later. Organization will be announced at the end of the lecture on October 8th and/or can be found here.

Times, rooms and group assignments may be found on the KUSSS page of this course (342.236).
Details on the organization of the exercises may be found below.

Resources

A. Biere. Tutorial on Model Checking, Modelling and Verification in Computer Science.
In Proc. 3rd Intl. Conf. on Algebraic Biology (AB'08), Lecture Notes in Computer Science (LNCS), vol. 5147, Springer 2008.

V. D'Silva, D. Kröning, Daniel and G. Weissenbacher.
A Survey of Automated Techniques for Formal Software Verification.
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems (TCAD), Vol. 27, No. 7, pages 1165-1178. July 2008.

Model Checking: Algorithmic Verification and Debugging. Communications of the ACM, November 2009.

Predicate abstraction checks for simple example on the slides in SMT2 syntax: pred0.smt, pred1.smt, pred2.smt, pred3.smt, pred4.smt, pred5.smt. All should be 'sat', except for the last one pred5.smt, where we assume i != INT_MAX. The check pred2.smt actually shows, that we would need "b = *;" instead of "if (b) b = *;" if we consider bit-precise reasoning (so 32 bit 2-complement int and not integers).

Our award winning SMT solver Boolector.

Z3 SMT solver with source code.

New genbprbsrch.sh script for generating SMT2 bit-vector formulas for bit-precise reasoning about binary search.

The McRaceTrack model checker is used to explain and motivate the part on explicit state model checking.

SPIN Model Checker. The Primer and Reference Manual. G. Holzmann, Addison Wesley, 2004.

Space/time trade-offs in hash coding with allowable errors. B. Bloom, Communications of the ACM 13 (7), 1970.

Model Checking. E. Clarke, O. Grumberg, D. Peled. MIT press, 2000.

Modal and Temporal Properties of Processes. C. Stirling. Springer, 2001.

FSMCalc: Finite State Machine Calculator, Leopold Haller, JKU, 2006.

Evaluation code for various string hash functions: testhash.c. See also fast-hash.

ElSim: elevator simulation.

Boolean satisfiability. From theoretical hardness to practical success. Communications of the ACM, August 2009.

R. Brummayer, A. Biere. Local Two-Level And-Inverter Graph Minimization without Blowup. In Proc. 2nd Doctoral Workshop on Mathematical and Engineering Methods in Computer Science (MEMICS'06), Mikulov, Czechia, October 2006.

AIG implementation and visualization: aig4teaching.zip, lg-0.9.tar.gz.

BDD implementation and visualization: bdd4teaching.zip, lg-0.9.tar.gz.

C32SAT is a satisfiability checker for boolean C expressions. It can check whether they can be satisfied, are tautological, or can potentially be undefined according to the C99 standard.