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.

Exam

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

Partition refinement

L16

June 18

Simulation and Bisimulation

T8

June 20

Solutions to Homework 3.

L17

June 23

Well-structured Transition Systems

Majumdar. Marktoberdorf 2013 lecture notes.

-

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.

Notes on STL

T10

July 4

Q & A

L20

July 7

Model checking STL

L21

July 9

Safety vs liveness

Practice exam

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

Solutions to the Practice Exam

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)

Courses/VRS (last edited 2014-07-24 13:41:45 by jkloos)