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

L15

June 16

Simulation and Bisimulation

June 18

June 20

Solutions to Homework 3.

June 23

June 25

Cancelled.

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