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