CSC 2108F, Fall 2001
Automated Verification
General Information:
Instructor:
|
Marsha Chechik
|
Email:
|
chechik@cs.toronto.edu
|
Office Hours:
|
after class and by appointment
|
Office:
|
D.L. Pratt 384, X3820
|
Lectures:
|
Tuesdays 2-4 in UC256
|
Class Homepage:
|
http://www.cs.toronto.edu/~chechik/courses01/csc2108
|
Course Description:
Several notations and methods have been developed to help the designer
specify clear and unambiguous system requirements, verify that the requirements
are consistent and correct, and verify that the refined design meets its
specification. However, these methods are time-consuming and error-prone,
and can be applied more effectively if there are tools to check their correctness.
The goal of the course is to emphasize formal notations and methods
that have tool support. We will cover just the very basis of underlying
theory for the tools. Discussed techniques include but not limited to
-
branching-time model-checking (SMV)
-
linear-time model-checking (SPIN)
-
process algebras (Concurrency Workbench)
-
theorem proving (Larch and PVS)
-
analyzing real-time systems (TTM, ??)
-
other specification techniques (COSPAN, Z, TLA, ??)
Coursework
There are no exams in this class.
To encourage hands-on experience, there will be 4 verification and specification
assignments involving prototype-quality verification CASE tools. These
assignments are mandatory for students taking this course for credit and
auditors. In addition, each student registered for this class will have
to complete a research project to specify and verify a larger example using
one of the tools we studied or one of his/her choice. Reports on the projects
will be written up, and results will be presented in class. The following
is possible topics of assignments. In these assignments you are asked
to model a simple concurrent system and analyze its correctness
using the tools that appear in parentheses.
-
Assignment 1 - use of a symbolic model-checker (SMV)
-
Assignment 2 - use of a linear-time model-checker (SPIN)
-
Assignment 3 - use of Concurrency Workbench (CWB)
-
Assignment 4 - use of a theorem prover (Larch)
The topics of the assignments are tentative and may be changed if there
is enough interest.
Marking Scheme:
Assignment 1 |
10% |
Assignment 2 |
10% |
Assignment 3 |
10% |
Assignment 4 |
10% |
Class participation |
20% |
Research project |
40% |
Class participation includes presentations of assignments.
Prerequisites:
Graduate standing or permission of instructor. Experience with 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.
Marsha Chechik