cs6964: Theorem Proving
Spring 2008

The goal of cs6964 in Spring 2008 is to provide an introduction to formal specification and verification techniques. The emphasis will be on semantically powerful specification languages coupled with deductive verification techniques. The primary focus of the course is obtaining experience with the construction of solid and useful formal specifications for a variety of CS artifacts (hardware, software, systems, etc.). A secondary focus is the production of formal proofs of system properties, and their automation.

Instructor   Konrad Slind  (MEB 3436) Office Hours: Tuesday after class, or by appointment
Class Time   Tu/Thu, 10:45-12:05 Class Room   MEB 3105

Important Dates

The University Academic Calendar may be consulted for further information about drop dates and other important dates in the semester.

Topics

Basic Logic Specification Toolbox Case Studies
Propositional Logic
First Order Logic
Higher Order Logic
Basic types
Sets
N and Recursive types
Recursive Functions and Inductive Relations
Dealing with Partiality
Arrays, Matrices, and Words
Block ciphers
Regular Languages
Hardware
Programming Language Semantics
Compilation
Abstract Algebra
How to write your own proof procedure

Course Materials

The course materials will be a combination of lecture notes, selected research papers, and system tutorials. Here is the current, ever-evolving lecture notes.

You will need to know how to program in SML. If you don't already know it, you will have to learn it on your own, or come to me for some catch-up exercises.

The HOL-4 system will be used to gain experience in various aspects of formalization and theorem proving. The Description, Tutorial, and Logic documents can help in this quest. There is also a SourceForge homepage for this system. The documents are in constant revision; please send me any typos, mistakes, omissions, etc.

Other material of general utility in the area of theorem proving:


Grades

Since the aim of the course is to get hands-on experience with a variety of techniques, there will be a few introductory assignments intended to get students up to speed. However, the major component of the course will be a project, to be chosen by the student and approved by the instructor.

Assignments 35%
Project 65%
Total 100%

Assignments and Projects



Mailing lists


Other Important Information


Konrad Slind