Differences between revisions 1 and 36 (spanning 35 versions)
Revision 1 as of 2014-04-29 08:54:09
Size: 28
Editor: fniksic
Comment:
Revision 36 as of 2014-06-02 05:55:02
Size: 8223
Editor: rupak
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Describe Courses/VRS here. #acl fniksic,jkloos,rupak:read,write,delete,revert,admin All:read

= Course: Verification of Reactive Systems =

'''Summer 2014'''

 * '''Instructor''':
  [[http://www.mpi-sws.org/~rupak/|Rupak Majumdar]] ([[mailto:rupak@mpi-sws.org|rupak@mpi-sws.org]])<<BR>>
  Room 414, Building 26 (MPI-SWS)
 * '''Teaching assistants''':
  [[http://www.mpi-sws.org/~jkloos/|Johannes Kloos]] ([[mailto:jkloos@mpi-sws.org|jkloos@mpi-sws.org]])<<BR>>
  [[http://www.mpi-sws.org/~fniksic/|Filip Niksic]] ([[mailto:fniksic@mpi-sws.org|fniksic@mpi-sws.org]])<<BR>>
  Room 515, Building 26 (MPI-SWS)
 * '''Lectures''':
  Monday, Wednesday 08:15-09:45<<BR>>
  Room 111, Building 26 (MPI-SWS)
 * '''Tutorial''':
  Friday 15:30-17:00<<BR>>
  Room 111, Building 26 (MPI-SWS)
 * '''Office hours''':
  Wednesday, 15:30-16:30 (Room 515, Building 26) or by appointment
 * '''Mailing list''':
  https://lists.mpi-sws.org/listinfo/vrs14
 * '''Background survey''':
  Please fill this background survey: https://de.surveymonkey.com/s/FDFGZLW

== 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!
 * '''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 Homwork:'''
  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 ==

||<: 2% rowbgcolor="#B7AFA3" style="font-weight: bold;"> # ||<: 4% style="font-weight: bold;"> Date ||<: 30% style="font-weight: bold;"> Course topic / lecture ||<20% style="font-weight: bold;"> Homework ||<35% style="font-weight: bold;"> Materials ||<9% style="font-weight: bold;"> Video ||
||<: rowbgcolor="#F5FAFA"> L1 ||<:> April 23 ||<:> Introduction to formal verification || || [[attachment:Lecture1.ppt|Lecture slides]]<<BR>>[[attachment:demillo.pdf|De Millo, Lipton, and Perlis. Social processes and proofs of programs.]] || ||
||<: rowbgcolor="#C1DAD6"> - ||<:> April 25 || || || || ||
||<: rowbgcolor="#F5FAFA"> L2 ||<:> April 28 ||<:> Preliminaries: graph algorithms, automata theory || [[attachment:hw1.pdf|Homework 1.]] Need not be turned in. || [[attachment:Lecture2.pdf|Lecture notes]] || ||
||<: rowbgcolor="#F5FAFA"> L3 ||<:> April 30 ||<:> Preliminaries: propositional logic || || [[attachment:Lecture3.pdf|Lecture notes]]<<BR>>[[http://ipsc.ksp.sk/2013/real/problems/l.html|Problem L (Labyrinth).]] [[https://github.com/fniksic/labyrinth|Solution]].<<BR>>[[http://try.ocamlpro.com|Try OCaml]], [[http://ocaml.org/learn/|Learn OCaml]], [[https://realworldocaml.org|Real World OCaml]] || ||
||<: rowbgcolor="#C1DAD6"> T1 ||<:> May 2 ||<:> Solutions to Homework 1. || || || ||
||<: rowbgcolor="#F5FAFA"> 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: <<BR>> [[attachment:CavBook-1.pdf|The Reactive modules modeling language.]]<<BR>>[[attachment:CavBook-2.pdf|Invariant verification.]]<<BR>>[[http://spinroot.com/|SPIN]] web page. || ||
||<: rowbgcolor="#F5FAFA"> L5 ||<:> May 7 ||<:> Peterson's protocol. Heuristics for enumerative invariant verification. Symbolic invariant verification. Symbolic reachability. || || [[attachment:CavBook-3.pdf|Alur and Henzinger. Symbolic graph representation.]] || [[http://www.mpi-sws.org/seminars/vrs/2014-05-07_vrs.mpg|MPG (660 MB)]] ||
||<: rowbgcolor="#C1DAD6"> T2 ||<:> May 9 ||<:> Q & A || || || ||
||<: rowbgcolor="#F5FAFA"> L6 ||<:> May 12 ||<:> Symbolic model checking with SAT || || [[attachment:Sharad Malik MOD Chapter.pdf|Malik and Weissenbacher. Boolean satisfiability solvers: Techniques and extensions.]]<<BR>>[[attachment:NieOT-JACM-06.pdf|Nieuwenhuis, Oliveras, and Tinelli. Solving SAT and SAT modulo theories: From an abstract Davis-Putnam-Logemann-Loveland procedure to DPLL(T).]] || [[http://www.mpi-sws.org/seminars/vrs/2014-05-12_vrs.mpg|MPG (678 MB)]] ||
||<: rowbgcolor="#F5FAFA"> L7 ||<:> May 14 ||<:> Implementing a SAT Solver. BDDs. || [[attachment:hw2.pdf|Homework 2.]] Due May 28, 2014. || || ||
||<: rowbgcolor="#C1DAD6"> T3 ||<:> May 16 ||<:> Q & A || || || ||
||<: rowbgcolor="#F5FAFA"> L8 ||<:> May 19 ||<:> BDDs. || || [[attachment:ieeetc86.pdf|Bryant. Graph-based algorithms for Boolean function manipulation. (The BDD paper.)]] || ||
||<: rowbgcolor="#F5FAFA"> L9 ||<:> May 21 ||<:> SMT. Timed automata and difference constraints. || || [[attachment:Projects.pdf|Project suggestions.]]<<BR>>[[attachment:Timed Automata.pdf|Alur, Parthasarathy. Decision problems for timed automata: A survey.]] || ||
||<: rowbgcolor="#C1DAD6"> T4 ||<:> May 23 ||<:> Q & A || || || ||
||<: rowbgcolor="#F5FAFA"> L10 ||<:> May 26 ||<:> Symbolic execution. || || [[attachment:cacm13.pdf|Cadar, Sen. Symbolic execution for software testing: Three decades later.]] || ||
||<: rowbgcolor="#F5FAFA"> L11 ||<:> May 28 ||<:> Inductive invariants. Abstraction. || || || ||
||<: rowbgcolor="#C1DAD6"> T5 ||<:> May 30 ||<:> Solutions to Homework 2. || || || ||
||<: rowbgcolor="#F5FAFA"> ||<:> June 2 ||<:> Predicate abstraction and CEGAR || || || ||
||<: rowbgcolor="#F5FAFA"> ||<:> June 4 ||<:> IC3 || || || ||
||<: rowbgcolor="#C1DAD6"> ||<:> June 6 || || || || ||
||<: rowbgcolor="#F5FAFA"> ||<:> June 9 || || || || ||
||<: rowbgcolor="#F5FAFA"> ||<:> June 11 || || || || ||
||<: rowbgcolor="#C1DAD6"> ||<:> June 13 || || || || ||
||<: rowbgcolor="#F5FAFA"> ||<:> June 16 || || || || ||
||<: rowbgcolor="#F5FAFA"> ||<:> June 18 || || || || ||
||<: rowbgcolor="#C1DAD6"> ||<:> June 20 || || || || ||
||<: rowbgcolor="#F5FAFA"> ||<:> June 23 || || || || ||
||<: rowbgcolor="#F5FAFA"> ||<:> June 25 || || || || ||
||<: rowbgcolor="#C1DAD6"> ||<:> June 27 || || || || ||
||<: rowbgcolor="#F5FAFA"> ||<:> June 30 || || || || ||
||<: rowbgcolor="#F5FAFA"> ||<:> July 2 || || || || ||
||<: rowbgcolor="#C1DAD6"> ||<:> July 4 || || || || ||
||<: rowbgcolor="#F5FAFA"> ||<:> July 7 || || || || ||
||<: rowbgcolor="#F5FAFA"> ||<:> July 9 || || || || ||
||<: rowbgcolor="#C1DAD6"> ||<:> July 11 || || || || ||
||<: rowbgcolor="#F5FAFA"> ||<:> July 14 || || || || ||
||<: rowbgcolor="#F5FAFA"> ||<:> July 16 || || || || ||
||<: rowbgcolor="#C1DAD6"> ||<:> July 18 || || || || ||
||<: rowbgcolor="#F5FAFA"> ||<:> July 21 || || || || ||
||<: rowbgcolor="#F5FAFA"> ||<:> July 23 || || || || ||
||<: rowbgcolor="#C1DAD6"> ||<:> July 25 || || || || ||

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!

  • 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 Homwork:

    • 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.

T3

May 16

Q & A

L8

May 19

BDDs.

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

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

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.

June 2

Predicate abstraction and CEGAR

June 4

IC3

June 6

June 9

June 11

June 13

June 16

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

July 21

July 23

July 25

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