CS 433 : Automated Reasoning 2022

Instructor : Ashutosh Gupta

PG students can take the course.


Timings : Monday and Thursday 19:00-20:25
Venue : CC101
TA : No TA
First session : 2022-07-28T08:30 (50 min session), FC Kohli
Quizes : Quiz Portal (Login via CSE LDAP or special accounts)
For Discussion : Join MSTeams with code: w00nhhx

The course is about the design and implementation of solvers for proving/disproving validity of statements in various logics arising in various areas such as verification of AI, software, hardware, etc. The solvers are often referred as reasoning engines, hence the course name automated reasoning. The reasoning problems are inherently hard and there are no known provably efficient algorithms for them. However, we may have efficient heuristics that may solve some interesting and important instances of the problems. In the last three decades, automated reasoning has risen to be a matured and an effective technology that can be applied to the reasoning problems arising from a wide range of fields.

The course will cover five major topics: satisfiability solvers, satisfiability modulo theories solvers, decision procedures (theories), interactive theorem provers, and first-order logic solvers. In each part, we will discuss encoding the problems of interest into the reasoning problems, the efficient heuristics, the implementation issues of the heuristics, and their theoretical understanding. The course will include programming assignments/projects.

Source material

Self-learning background material

Software

  • Please install Z3 and its python interface before second week
  • Evaluation structure

    May change later.

    Lectures

    Introduction

    2022-07-28T08:30 : Lecture 1 - Introduction (1 hour)

    2022-07-29@17:30 : Lecture 2 - Propositional logic

    2022-08-04 : Lecture 3 - First order logic

    2022-08-08 : Lecture 4 - Theory

    2022-08-11 : Lecture 5 - Encoding problems into SAT/SMT

    SAT solvers

    2022-08-18 : Lecture 6 - SAT solver

    2022-08-22 : Lecture 7 - SAT solver - Clause handling and storage

    2022-08-25 : Lecture 8 - Sat solver - run time Optimizations

    2022-08-29 : Lecture 9 - Binary decision diagrams

    2022-09-01 : Lecture 10 - Encoding problems in SAT solvers

    Satisfiability modulo theory(SMT) solvers

    2022-09-05 : Lecture 11 - Theory of equality and uninterpreted functions (EUF)

    2022-09-09 : Lecture 12 - SMT solvers

    2022-09-12 : Lecture 13 - Implementing QF_EUF

    Midterm paper presentations

    2022-09-15/19 Presentations

    2022-09-03 : Lecture 14 - Inside a solver(skipped due to presentations)

    Linear arithmetic

    2022-09-26 : Lecture 15 - Basics of linear arithmetic

    2022-09-29 : Lecture 16 - Simplex for linear rational arithmetic(LRA)

    2022-10-03 : Lecture 17 - Linear integer arithmetic(LIA)

    2022-10-06 : Lecture 18 - Solving LIA

    Other theories

    2022-10-10 : Lecture 19 - Rational/Integer difference logic (RDL/IDL)

    2022-10-13 : Lecture 20 - Theory of arrays

    2022-10-17 : Lecture 21 - Theory of bit-vectors (missed lecture; will do makeup)

    ls

    2022-10-20 : Lecture 22 - Theory combination

    Usage of SMT solvers

    2022-10-27 : Lecture 23 - Maximum satisfiability(no videos)

    2022-10-31 : Lecture 24 - Proof Generation

    Interactive theorem provers

    2022-11-03/07 : Lecture 25/26 - Interactive theorem provers

    2022-11-06 : Final presentations


    Last modified: ()