CS290D - Computer Aided Verification - Fall 2002
This course will cover automated verification techniques, particularly
model checking. The list of topics that will be discussed are:
- Modeling concurrent systems
- Safety and liveness properties, temporal logics
- Symbolic verification algorithms
- Model checking using fixpoints
- Binary Decision Diagrams (BDDs)
- Symbolic verification tools:
SMV
- Arithmetic constraint representations
- Infinite-state verification tools:
Action Language Verifier
- Application of symbolic verification to
software specifications
- Explicit state verification algorithms
- Model checking using automata on infinite words
- Partial order reductions
- Explicit state verification tools:
SPIN
- Application of explicit state verification to
concurrent Java programs
- Program verification tools:
Java Path Finder (JPF)
- Verification using abstractions
- Compositional verification
Course Requirements
Students will be required to do a course project.
There will be several homeworks and one take home final exam.
Project Demonstrations
You can demonstrate your projects between
2:00PM-4:00PM in my office Tuesday, December 10th, or
Thursday, December 12th.
Software Tools Used in the Class
- SMV is installed under the following directory
- /fs/contrib/src/SMV/SMV-2.5/
There is a manual file there you should read.
The binaries are under linux, solaris, solx86 directories.
Example smv files are under /fs/contrib/src/SMV/SMV-2.5/smv-examples
- The path for the executable for the SPIN is
- /fs/contrib/src/spin/spin3417/bin/spin
This binary is for linux machines.
You can find the manuals and information about SPIN at:
SPIN
Papers that will be covered in the course
- "The Model Checker SPIN," Gerard J. Holzmann, IEEE Transactions
on Software Engineering, vol. 23, no. 5, May 1997.
- "A Deadlock Detection Tool for Concurrent Java Programs,"
Claudio DeMartini, Radu Iosif, and Riccardo Sisto,
Software-Practice and Experience, vol. 29, no. 7, pages 577-603, 1999.
- "Bandera : Extracting Finite-state Models,"
from Java Source Code, James C. Corbett, Matthew B. Dwyer, John Hatcliff,
Shawn Laubach, Corina S. Pasareanu, Robby, and Hongjun Zheng,
Proceedings of the 22nd International Conference on Software
Engineering, June 2000.
Available here.
-
"Tool-supported Program Abstraction for Finite-state Verification,"
Matthew B. Dwyer, John Hatcliff, Roby Joehanes, Shawn
Laubach, Corina S. Pasareanu, Robby, Willem Visser and Hongjun Zheng,
Proceedings of the 23rd International Conference on
Software Engineering, May 2001.
Available here.
-
"Model Checking Guided Abstraction and Analysis,"
Hassen Saïdi.
In Proceedings of the 7th International Static Analysis Symposium
(SAS 2000). Santa Barbara, CA. July 2000.
Available here.
-
"Automatically Validating Temporal Safety Properties of Interfaces,"
Thomas Ball,
Sriram K. Rajamani,
SPIN 2001, Workshop on Model Checking of Software, LNCS 2057, May 2001, pp.
103-122.
Available here.
-
"Automatic Predicate Abstraction of C Programs,"
Thomas Ball, Rupak Majumdar, Todd
Millstein, Sriram K. Rajamani,
PLDI 2001, SIGPLAN Notices 36(5), pp. 203-213.
Available here.
-
"A BDD-Based Model Checker for Recursive Programs,"
Javier Esparza, Stefan Schwoon, CAV 2001, pp. 324-336.
Available here.
Instructor:
Tevfik Bultan
bultan@cs.ucsb.edu
Office: Eng. I 2123
Office Hours: Tuesday/Thursday 1:30-2:30
Phone: x3735
Course Webpage:
http://www.cs.ucsb.edu/~bultan/courses/290-F02/
Class Times and Location:
Tuesday/Thursday 3:00-5:00, PHELP 1401
Textbook
Model Checking
E. M. Clarke, Orna Grumberg, Doron Peled
ISBN 0-262-03270-8,
2000