CS780-02 Spring 2012

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


Işıl Dillig

E-mail: idillig@cs.wm.edu
Office: McGlothin-Street Hall 111
Office Hours: Tuesday, Thursday after class

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.

Work Load and Requirements:

  • This class will not have a midterm or final.
  • Students will need to complete approximately one homework assignment every two weeks.
  • Each student is required to complete a final project. The final project can be either a 10-15 page survey paper on a topic relevant to the course, or a programming project involving the implementation of decision procedures covered in the course. Possible topics for the survey paper include, but are not limited to: Craig interpolation, linear temporal logic, computation tree logic, linear logic, separation logic, higher-order logics, set constraints, and automated static analysis techniques such as abstract interpretation, predicate abstraction, counterexample-guided abstraction refinement, etc. Possible ideas for a programming project include implementing a performant SAT solver, a first-order theorem prover, linear inequalities over integers, and an SMT solver incorporating two or more decision procedures.
  • In addition, students will give a 30-40 minute presentation on the topic of their survey paper or programming project during the last few lectures of the course. Students who choose to write a survey paper should give a presentation on their chosen topic. On the other hand, students who choose the programming project option should give a demo of their tool, talk about the high-level design and algorithmic aspects of their implementation, how their algorithm compares to techniques discussed in the course, and performance results on a set of interesting benchmarks.


    Homework assignments: 40%
    Final project: 25%
    Final presentation: 25%
    Class participation: 10%


  • Each assignment is due at the beginning of class on the indicated date.
  • Assignments should be done individually.
  • Every student is given three free "late days" for the semester. To avoid ambiguity, a late day is a 24-hour period. If you exhaust your late days and turn in an assignment late, you will not receive any credit for that assignment unless you have an emergency and talk to me before the due date.
  • You may not use any late days for the survey paper.
  • All students are expected to abide by the William & Mary Honor Code


  • This class will meet every Tuesday and Thursday 3:30-4:50 PM.
  • The first class of the semester will meet in Morton Hall 001 (01/19), but all classes after that will meet in McGlothin-Street Hall 002.
  • Since Isil is away at a conference on 01/24, class is canceled Tuesday January 24.


    The syllabus is subject to change.

    Date Lecture topics Slides Reading Assigned Due
    01/19 Introduction
    Review of Propositional Logic
    Lecture 1      
    01/24 No class (instructor out of town)        
    01/26 Normal forms
    Tseitin's transformation
    Lecture 2   Assignment 1  
    01/31 Modern SAT Solvers Lecture 3 GRASP paper
    Chaff paper
    02/02 Practical applications of boolean satisfiability Lecture 4 Applications of SAT   Assignment 1
    02/07 Binary Decision Diagrams Lecture 5 Original Bryant paper Assignment 2
    .tex file
    02/09 Semantics of First Order Logic Lecture 6      
    02/14 Proof rules for first order logic
    Properties of first order logic
    Lecture 7     Assignment 2
    02/16 Unification, clausal form Lecture 8      
    02/21 First-Order Theorem Proving Lecture 9   Assignment 3
    .tex file
    02/23 Overview of First-Order Theories Lecture 10      
    02/28 Theory of Equality
    Congruence Closure Algorithm
    Lecture 11      
    03/01 Linear Arithmetic over Rationals
    Lecture 12     Assignment 3
    03/06 SPRING BREAK        
    03/08 SPRING BREAK        
    03/13 Linear Arithmetic over Integers I
    Omega Test
    Lecture 13 Omega Test paper Project proposal  
    03/15 Linear Arithmetic over Integers II
    Branch-and-Bound, Cuts-from-Proofs
    Lecture 14
    Lecture 14 w/o animation
    Cuts from Proofs paper Assignment 4
    .tex file
    03/20 Quantifier Elimination for Presburger Arithmetic
    Cooper's method
    Lecture 15 Cooper paper   Project proposal
    03/22 Combining Theories
    Lecture 16 Survey of Nelson-Oppen    
    03/27 DPLL(T) Framework Lecture 17 DPLL(T) paper   Assignment 4
    03/29 Constraint Simplification Lecture 18 Simplification paper    
    04/03 Intuitionistic Logic
    Curry-Howard Isomorphism
    Lecture 19     Final project status update
    04/05 Class cancelled: instructor out of town        
    04/10 Project Presentations:
    Shannon Hughes, Jianing Zhao
    Fuzzy Logic
    04/12 Project Presentations:
    Qing Yang, Ethan Roday
    Linear Logic and Glue Semantics
    Craig Interpolation in Model Checking
    04/17 Hoare Logic Lecture 20      
    04/19 Project Presentations:
    Michael Chrsitensen, Matthew Pirocchi
    Decision Heuristics in SAT Solvers     Survey papers
    04/24 Project Presentations:
    Boyang Li, Harry Schwartz
    04/26 Project Presentation: Nic Van Balen