CS G379 Decision Procedures for Verification
Fall 2007

Syllabus

Instructor:

Pete Manolios

Office:
Office hours:
Email:
Phone:
WVH 332
by appointment
pete@ccs
617-373-3694

Class Information

Course number:
Web page:
Locations:
 
 
CS G379
http://www.ccs.neu.edu/~pete/courses/Decision-Procedures/2007-Fall/
Wednesday 4:30PM-6:00PM in 366 West Village Bldg H
Exceptions: On 10/3, 10/17, 10/24, and 11/7 we will meet in Room 166 (same building)
Friday 3:25PM-5:05PM in 270 West Village Bldg F

Course Description

This is a course on the state of the art in practical decision procedures for various fragments of logic arising in software and hardware verification. We will cover decision procedures for logics ranging from propositional logic to temporal logic to logics that include arithmetic, uninterpreted functions, equality, arrays, etc. We will also discuss abstraction, refinement, how to combine decision procedures, and the ACL2 theorem proving system.

Teaching Philosophy

My goal is to help you develop into critical, independent-thinking, and creative scientists. In this course, I will try to do this by giving you opportunities to grapple with and gain technical mastery of recent results in decision procedures. You gain technical mastery by doing and, for the most part, this occurs outside of the class. My role is to create the opportunity for learning; it is only with your active participation that learning truly takes place.

During lectures I try to explain, clarify, emphasize, summarize, encourage, and motivate. I can also answer questions, lead discussions, and ask questions. In class you have an opportunity to test your understanding, so things work best if you come to class prepared. We can then focus on the interesting issues, rather than on covering material that you could just as easily find in the readings.

Textbooks

We will use the following textbook later in the semester.

The following books may be of interest, but are not required. Before buying any of these books, I suggest that you evaluate them carefully first.

Grading

Your grade will be based on the following.

Homework:
Grading:
2 Exams:
Projects:
30%
10%
40%
20%

Notes

  1. Various homework problems will be given, at the approximate rate of one assignment per every two weeks. Late homeworks will not be accepted.

  2. Each problem will be graded in a timely fasion by a class member, who is also responsible for handing out solutions. I will review the grading and the solutions you prepare and will assign a grade based on both the quality and timeliness of your work. If you grade an assignment, you do not have to do it and automatically get an A on it, but I expect you to fully understand it and the solutions you distribute.

    Part of the reason I am asking you to do this is that I expect you will learn a great deal in the process, e.g., students often choose to grade homeworks that are giving them difficulty. In this way, the impact on their grade is minimized and they get a chance to really learn the material.

  3. You are expected to do the homework assignments on your own without consulting other students or sources other than those used in class, unless I state otherwise. You can talk to one another about high-level ideas and you can consult sources such as the Web about high-level ideas, but any significant insights into assignments gained from any source should be cited.

    The reason I give you homework is to help you understand the material and yourself. Sometimes things that seemed obvious in class turn out to be more subtle than you expected. Homework gives you the opportunity to show, yourself primarily and me secondarily, that you understand the concepts and their implications. Sometimes I also ask that you read and develop some of the concepts on your own. The material we covered in class should act as the foundation that makes this possible.

    I will also give you opportunities to work in teams. Some of the homeworks and the project will allow you to work with other students. I encourage you, but do not require you, to do this.

  4. I will give you the exams after class and you will have until the next day at 5PM to return them to me. I will try to give you exams that take about 2 hours to complete. This assumes that you prepared well for them and have internalized all the main concepts. Please do not expect to learn what you need while taking the exam; past experience indicates that this is a bad idea. The reason I am giving you about a day to complete the exam is that I do not want you to stess over time constraints. (I feel compelled to say that as a graduate student I found taking tough exams under time constraints a useful experience.)

    Here are the rules for the take-home exams. I trust you to abide by them. Do not consult outside sources when working on exams. You can use the class textbooks and handouts that I gave you, but you cannot use any other source without explicit permission from me. A corollary is that there should be absolutely no discussion about any of the exam questions, with anyone other than me.

  5. The projects can be group projects and can consists of 1, 2, or 3 people. They have to be cleared by me. During class, I will toss out project ideas, but feel free to suggest projects based on your interests.

    Projects will be presented during class and a single project report is required. In the past, several of these reports have been turned into papers, so try to write it like a conference paper.

    Every member of the team will evaluate the contributions of the other team members.

  6. You are expected to do the reading before class.

    In class you have an opportunity to test your understanding, so things work best if you come to class prepared. We can then focus on the interesting issues, rather than on covering material that you could just as easily find in the readings.

Tentative Syllabus

Here is an overview of the material that I would like to cover. Topics that start with "Tour" mean we will cover them at a high-level. I reserve the right to make modifications based on the interests of the class and/or time constraints.
  1. Boolean Satisfiability
  2. Reductions to SAT
  3. Decision Procedures
  4. Tour of FOL First-Order Logic
  5. ACL2 (A Computational Logic for Applicative Common Lisp)
  6. Tour of Model Checking
  7. Tour of Refinement & Abstraction

Last modified: Fri Sep 7 10:34:49 EDT 2007