CS643 Spring 2013

    Welcome to the home page for
    Computer Science 643 -
    Automated Logical Reasoning!

Logistical Information:

Instructor: Işıl Dillig
Time: Tuesday, Thursday 3:30 pm - 4:50 pm
Place: McGlothlin-Street (MCGL) Hall 002
Instructor e-mail: idillig@cs.wm.edu
Instructor office hours: Thursday 4:50 pm-6:50 pm in MCGL 111
TA: Qing Yang
TA e-mail: qyang@email.wm.edu
Prerequisite: Undergraduate-level courses in algorithms and theory of computation
Required Textbook: The Calculus of Computation by Aaron Bradley and Zohar Manna
Optional Reference: Decision Procedures: An Algorithmic Point of View by Daniel Kroening and Ofer Strichman
Course Webpage: http://www.cs.wm.edu/~idillig/cs643/

Course Description:

Automated logical reasoning has enabled substantial progress in many fields of computer science, including software and hardware verification, theorem proving, program analysis, and artifical intelligence. In this course, we will study widely-used logical theories and decision procedures for answering whether formulas in these theories are satisfiable. In particular, we will consider automated reasoning techniques for propositional logic, first-order logic, linear arithmetic over reals and integers, theory of uninterpreted functions, and combinations of these theories. This course will examine automated logical reasoning both from a theoretical and practical perspective, giving interested students a hands-on experience building useful tools, such as SAT solvers. While this is a graduate level course, undergraduate students who have completed courses in algorithms and theory of computation are also encouraged to take the course.

Requirements and Grading:

  • This course has two in-class midterms. Each midterm will be an in-class closed-book, closed-notes exam. Each midterm counts for 20% of your final grade. However,
  • The course has a closed-book, closed-notes final exam. The final exam counts for 40% of your grade.
  • During the midterms and the final, you are allowed to bring three sheets of notes prepared by you. These notes must be typed or written by you and may not be copies of lecture slides or pages from the textbook.
  • There will be weekly written homework assignments. These assignments do not involve any programming, and will help you better understand the material taught in the class as well as prepare you for the midterm and final exams. The homework assignments, together with class attendance and participation, collectively count for 20% of your final grade.
  • There may be a curve of the final grades, although the lower bounds of the standard scale are guaranteed, i.e., you will get an A- or A if your grade is 90 or above, a B(-/+) if it is 80-89, etc.

    Homework Policies:

  • Each assignment is due at the beginning of class on the indicated date.
  • Each homework should be done in accordance with the Honor Code .
  • The lowest homework score will be dropped when calculating final grades.

    Honor Code:

  • For the homework assignments, you may talk about the problem with fellow students and the instructor, but the write-up must be yours. In your homework write-ups, you should also give credit to your collaborators for each problem. Finally, you may neither consult students that have taken the course previously, nor their completed work.
  • For the written assignments, you are allowed to consult other books, papers, or published material. The Web is also considered a publication media. However, you MUST reference all the sources that helped you in the assignment.
  • You should not plagiarize. This means your homework write-up must be in your own words, even if the solutions exist in a publication that you reference.
  • You may not consult any textbooks, notes, or the web during the midterm exams and the final (except for three pages of notes prepared by you).


  • The first lecture of CS643 will take place January 17 at 3:30 pm in MCGL 002.
  • Here are the auxiliary files you need to compile the source Latex file for the problem sets: mymargins.tex and handout.sty
  • The pdf file for the BDD from Question 5 of Homework 2 is available here .


    In the Reading section of the syllabus below, BM refers to the Bradley & Manna Calculus of Computation book, while KS refers to the "Decision Procedures: An Algorithmic Point of Book" by Kroening & Strichman. Readings from the KS book are optional.

    Date Lecture topics Slides Reading Assigned Due
    01/17 Introduction
    Review of Propositional Logic
    Lecture 1 BM 1.1-1.5    
    01/22 Normal forms
    Tseitin's transformation
    Lecture 2 BM 1.6-1.7 Problem set 1
    Latex source
    01/24 Modern SAT Solvers Lecture 3 Grasp SAT solver    
    01/29 Practical applications of boolean satisfiability Lecture 4     Problem set 1
    02/05 Binary Decision Diagrams Lecture 5 (handout)
    Bryant paper Problem set 2
    Latex source
    02/07 Semantics of First Order Logic Lecture 6 (handout)
    BM 2.1-2.3    
    02/12 Proof rules for first order logic Lecture 7 (handout)
    BM 2.4-2.7 Problem set 3
    Latex source
    Problem set 2
    02/14 Properties of FOL, unification Lecture 8 (handout)
    02/19 First-Order Theorem Proving Lecture 9 (handout)
        Problem set 3
    02/21 Midterm 1        
    02/26 Class cancelled        
    02/28 First-order resolution (continued) Same slides from lecture 9   Problem set 4
    Latex source
    03/05 SPRING BREAK        
    03/07 SPRING BREAK        
    03/12 Overview of First-Order Theories Lecture 10 (handout)
    BM Chapter 3    
    03/14 Theory of Equality
    Congruence Closure Algorithm
    Lecture 11 (handout)
    BM Chapter 9   Problem set 4
    03/19 Linear Arithmetic over Rationals
    Lecture 12 (handout)
    BM Chapter 8 Problem set 5
    Latex source
    03/21 Linear Arithmetic over Integers I
    Omega Test
    Lecture 13 (handout) Omega Test    
    03/26 Linear Arithmetic over Integers II
    Branch-and-Bound, Cuts-from-Proofs
    Lecture 14 (handout)      
    03/28 Quantifier Elimination for Presburger Arithmetic
    Cooper's method
    Lecture 15 (slides)     Problem set 5
    04/02 Midterm 2        
    04/04 Go over midterm 2        
    04/09 Combining Theories
    Lecture 16 (slides)      
    04/11 DPLL(T) Framework Lecture 17 (slides)      
    04/16 Constraint Simplification        
    04/18 Hoare Logic        
    04/23 Intuitionistic Logic
    Curry-Howard Isomorphism
    04/25 Final Exam Review        
    05/01 Final Exam (2-5 PM)