GCMPS 266: Formal Specification and Verification, Winter Quarter 2009
Meeting Times
Lecture: Tuesday/Thursday 11:00am-12:50pm -- CTL - Trailer 932
Instructor
Richard A. Kemmerer
2165 Engineering
Phone: 893-4232
Email: kemm@cs.ucsb.edu
Office Hours: Tuesday, Thursday 1:00pm - 2:00pm. Other times by appointment
Purpose
This course provides a general introduction
to formal specification and verification
as part of the design and implementation
of critical computer systems.
Students will be introduced to the
underlying theory and basic techniques of verifying the correctness
of algorithms with respect to specifications.
They will also be introduced to techniques for
using formal specifications as a system design notation
and proving that the formal specifications satisfy desired
properties (such as security or safety properties).
Students will get
hands-on experience with several existing specification and verification
systems.
This subject can be considered as the combination of
specification and verification techniques, programming language
semantics, and formal logic.
Prerequisites
The prerequisites for this course are some familiarity with programming
language semantics, a background in formal logic, including a
familiarity with mathematical proofs, and the courage to read
through some very difficult-to-read technical papers.
The course prerequisites are CMPSCI
130AB
or consent of the instructor.
Required Text
There are no formal textbooks for this course.
Instead you will be given articles from the literature and research papers
to read and discuss in class.
Topics
Verification Theory: program proofs, proof of correctness of data representations, temporal logic, and real time logic.
Language Issues: axiomatically defined programming languages,
abstract data types, and
verifiable exception handling.
Specification and Verification Systems:
a review of existing systems stressing their similarities
and differences.
Special Applications of Verification Technology:
secure operating systems,
safety properties, and
network protocols.
Course Requirements
There will be weekly homework assignments and a final exam.
In addition, each student will prepare a detailed synopsis and review
of two or more papers on the same (formal verification-related) subject
or a research project on a related subject.
Each student may be required to
give a presentation on their topic.
Final Exam
Thursday March 19, 2009, Noon - 3:00pm, CTL - Trailer 932