Differences between revisions 64 and 65
Revision 64 as of 2014-07-10 14:14:11
Size: 9595
Editor: rupak
Comment:
Revision 65 as of 2014-07-11 06:20:03
Size: 9621
Editor: rupak
Comment:
Deletions are marked like this. Additions are marked like this.
Line 82: Line 82:
||<: rowbgcolor="#F5FAFA"> L18 ||<:> June 30 ||<:> ? || || || || ||<: rowbgcolor="#F5FAFA"> L18 ||<:> June 30 ||<:> Example: Concurrent programs || || || ||
Line 85: Line 85:
||<: rowbgcolor="#F5FAFA"> ||<:> July 7 || <:>Model checking STL || || || ||
||<: rowbgcolor="#F5FAFA"> ||<:> July 9 || <:> Safety vs liveness || [[attachment:Endterm.pdf|Practice exam]] || || ||
||<: rowbgcolor="#F5FAFA"> ||<:> July 7 ||<:> Model checking STL || || || ||
||<: rowbgcolor="#F5FAFA"> ||<:> July 9 ||<:> Safety vs liveness || [[attachment:Endterm.pdf|Practice exam]] || || ||

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.

  • Prerequisites:

    • The course requires basic knowledge of algorithms, data structures, automata theory, computational complexity, and propositional logic. For example, you should know what it means for a formula to be satisfiable, how to determinize a finite automaton, what is depth first search, and what P and NP means. If you are not familiar with these concepts, please attend the two initial lectures on background material.
  • Textbook:

    • Class notes and research papers will be handed out.
  • Grading:

    • Grades will be awarded on the basis of a final exam. Permission to take the final exam will be given based on your performance in homework assignments and a project paper.

      Note: The permission to take the exam is derived from this year's homework. Having taking the course before does not count!

      Exam dates: July 28 and October 13, 2014

  • Projects:

    • Potential project topics, both theoretical and experimental, will be announced during the first few weeks of the course. Any suggestions for designing your own project according to your interests are very welcome. Every project will require a mentor. Projects will involve either surveying a field in depth, or using state of the art model checkers to verify large systems of interest, or to extend the capabilities of existing model checkers by implementing new algorithms or proving new theorems.
  • Teamwork:

    • Students may collaborate on homeworks, but each student needs to individually write up a solution set and be prepared to present it in class on the due date. Projects must be done in groups, but each person should have a clearly identifiable responsibility.
  • Logistics of Homework:

    • Homework exercises will be handed out every two weeks (weekday TBA). Your answers must be handed in until the day specified in the homework, at the end of the lecture. Answers can be handed in personally to any of the teaching assistants.

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

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.

July 4

July 7

Model checking STL

July 9

Safety vs liveness

Practice exam

July 11

July 14

July 16

July 18

Probably no tutorial

July 21

No lecture (preperation time for project presentations)

July 23

July 25

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