CSC 2108F, Fall 2005

Automated Verification


General Information:

Instructor:
Marsha Chechik
E-mail:
chechik@cs.toronto.edu
Office Hours: 
after class and by appointment
Office: 
BA 5236, X3820 
Lectures: 
Tuesdays 12-3, Nursing Building, room 104.
TA 
Arie Gurfinkel
TA e-mail 
arie@cs.toronto.edu
Class Homepage: 
http://www.cs.toronto.edu/~chechik/courses05/csc2108

Course Description:

Temporal logic model checking allows us to decide whether a property stated in a temporal logic holds in a model. With its emphasis on partial verification using fully automated techniques, model checking has become a practical tool for reasoning about hardware and software.

This course is aimed to serve as an introduction to the state of the art model checking algorithms and technology. Topics include symbolic, automata-theoretic, bounded and game-theoretic approaches to model checking; query-checking; abstraction and refinement; techniques for model checking software. The course will also give students hands-on experience with current model-checking tools.

The course will use the textbook 'Model Checking', by Clarke, Grumberg, Peled, 1999, MIT Press, supplemented by readings from recent research papers.

Coursework

There are no exams in this class.

There will be five assignments. Some of these will be paper and pencil and some will be very small modeling exercises to get exposure to some current model-checking technology. The goal of paper and pencil assignments is to give you practice with underlying formalisms: temporal logics, automata, etc.

You are also expected to read the assigned readings and present parts of the assignments and/or course material.

All students registered for the course have to do a project. Such projects may range from purely theoretical to applied verification (i.e., abstract and verify the following system) to comparisons between different approaches to implementations of some algorithms in the context of our local model-checkers. Other projects will also be considered. Projects can be done in groups of two, and need to be written up and presented in class.

Marking Scheme:

Assignments 35% 
Class participation 25% 
Research project 40% 

Prerequisites:

Graduate standing or permission of instructor. Experience with model-checking and other formal methods, although helpful, is not necessary. However, the course assumes familiarity with basic computer science concepts: relations and functions; boolean and first-order logic (from undergrad discrete-math course), and finite-state machines. You are also expected to have basic knowledge of concurrency. The course includes a number of theoretical and engineering aspects.

Marsha Chechik

Last modified August 26, 2005