Course: Verification of Reactive Systems

Summer 2014

Introduction

This course focuses on the theory and practice of computer-aided verification, with an emphasis on software verification.

Schedule

#

Date

Course topic / lecture

Homework

Materials

Video

L1

April 23

Introduction to formal verification

Lecture slides
De Millo, Lipton, and Perlis. Social processes and proofs of programs.

-

April 25

L2

April 28

Preliminaries: graph algorithms, automata theory

Homework 1. Need not be turned in.

Lecture notes

L3

April 30

Preliminaries: propositional logic

Lecture notes
Problem L (Labyrinth). Solution.
Try OCaml, Learn OCaml, Real World OCaml

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:
The Reactive modules modeling language.
Invariant verification.
SPIN web page.

L5

May 7

Peterson's protocol. Heuristics for enumerative invariant verification. Symbolic invariant verification. Symbolic reachability.

Alur and Henzinger. Symbolic graph representation.

MPG (660 MB)

T2

May 9

Q & A

L6

May 12

Symbolic model checking with SAT

Malik and Weissenbacher. Boolean satisfiability solvers: Techniques and extensions.
Nieuwenhuis, Oliveras, and Tinelli. Solving SAT and SAT modulo theories: From an abstract Davis-Putnam-Logemann-Loveland procedure to DPLL(T).

MPG (678 MB)

L7

May 14

Implementing a SAT Solver. BDDs.

Homework 2. Due May 28, 2014.

MP4 (529 MB)

T3

May 16

Q & A

L8

May 19

BDDs.

Bryant. Graph-based algorithms for Boolean function manipulation. (The BDD paper.)

MP4 (434 MB)

L9

May 21

SMT. Timed automata and difference constraints.

Project suggestions.
Alur, Parthasarathy. Decision problems for timed automata: A survey.

T4

May 23

Q & A

MP4 (313 MB)

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.

Survey on software model checking.

L13

June 4

IC3.

Homework 3. Due June 18, 2014.

Bradley. SAT-based model checking without unrolling. (The IC3 paper.)
Somenzi, Bradley. IC3: Where monolithic and incremental meet. (The IC3 tutorial.)

T6

June 6

Q & A

-

June 9

Holiday (No lecture)

L14

June 11

Interpolation-based model checking

McMillan. Interpolation and SAT-based model checking.

T7

June 13

Discussing projects

June 16

<:>Simulation and Bisimulation

June 18

June 20

June 23

June 25

June 27

June 30

July 2

July 4

July 7

July 9

July 11

July 14

July 16

July 18

<:> Probably no tutorial

July 21

<:> No lecture (preperation time for project presentations)

July 23

July 25