ALR Spring 2019

    Welcome to the home page for
    Automated Logical Reasoning!

Logistical Information:

Instructor: Işıl Dillig
Time: Tuesday, Thursday 3:30pm - 5 pm
Place: GDC 4.304
Instructor e-mail:
Instructor office hours: Thursday 5-6:30pm in GDC 5.726
TA #1: Kostas Ferles
TA #1 e-mail:
TA #1 office hours: Wednesday 1-2:30 pm in GDC 5.710B
TA #2: Rushi Shah
TA #2 e-mail:
TA #2 office hours: Mondays 4-5 pm in GDC 5.710B
Reference books (optional): The Calculus of Computation by Aaron Bradley and Zohar Manna;  
Decision Procedures: An Algorithmic Point of View by Daniel Kroening and Ofer Strichman
Course Webpage:

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. We will also look at applications of logic in program analysis and verification.

Requirements and Grading:

  • Regular class attendance is required. Please email instructor if you will not be able to attend class on a particular day.
  • The course will have two in-class exams. The exams are closed-book and closed-notes.
  • The homework assignments collectively count for 35% of your final grade, and each exam will count for 30% of final grade. The remaining 5% will be based on class attendance and participation.


  • Our first class will meet on Tuesday, Jan 22.
  • Here is the Piazza page for the class. Please post ANY questions on Piazza -- do not email the instructor or TA unless it is a personal question.
  • The first problem set is due in class on Janurary 31 at 3:30pm.
  • The second problem set is available here . It's due February 12 in class.
  • The third problem set is available here . It's due February 21 in class.
  • Problem set 4 is available here and is due Tuesday, March 26 in class.
  • Problem set 5 is available here and is due Tuesday, April 9 in class.
  • Problem set 6 is available here and is due Tuesday, April 25 in class.


    In the Reading section of the syllabus below, COC refers to the Bradley & Manna Calculus of Computation book, while DP refers to the "Decision Procedures: An Algorithmic Point of Book" by Kroening & Strichman.

    Date Lecture topics Notes Reference
    01/22 Introduction and basics Lecture 1 COC 1.1-1.5
    01/24 Normal forms and DPLL Lecture 2 COC 1.6-1.7
    01/29 CDCL-based SAT Solvers Lecture 3 DP 2.2
    CDCL SAT solvers
    01/31 Practical applications of boolean satisfiability Lecture 4 N/A
    02/05 Binary decision diagrams Lecture 5 Notes on BDDs
    DP 2.3
    02/07 Semantics of First Order Logic Lecture 6 COC 2.1-2.4, COC 2.7
    02/12 Proof rules for first order logic
    Properties of FOL
    Lecture 7 COC 2.6
    02/14 No class    
    02/19 Unification Lecture 8
    3-up version
    02/21 First-order Theorem Proving Lecture 9
    3-up version
    02/26 Review   N/A
    02/28 Exam   N/A
    03/05 Go over exam    
    03/07 Overview of First-Order Theories Lecture 10 COC Chapter 3
    03/12 Theory of Equality
    Lecture 11 COC Chapter 9
    03/14 Linear Arithmetic over Rationals Lecture 12 CLRS Chapter 29
    03/19 Spring break    
    03/21 Spring break    
    03/26 Linear Arithmetic over Integers Lecture 13  
    03/28 Nelson-Oppen Lecture 14 COC Chapter 10
    04/02 DPLL(T) Framework Lecture 15  
    04/09 Hoare Logic Lecture 16  
    04/11 Verification conditions Lecture 17  
    04/16 VCs with functions and pointers Lecture 18  
    04/18 Play with Dafny    
    04/23 Invariant Inference I Lecture 19  
    04/25 Invariant Inference II Lecture 20 Houdini
    04/30 ALR Taboo Game    
    05/02 Exam    
    05/07 Go over exam