Introduction to Foundations of SAT solving 

Graduate course in the PhD program in Artificial Intelligence

News (March 23): 


Teacher: Nicola Galesi -  Sapienza Università di Roma - Departement of Computer, Control and Manegement Engineering "Antonio Ruberti" (DIAG).


Abstract: The satisfiability problem (SAT) is the problem to determine whether a given a formula in propositional logic has a satisfying assignment or not. This is a problem  of central importance to both the theory of computer science and the practice of automatic theorem proving and proof search.

For theoretical computer science, SAT is the canonical NP-complete problem. In contrast, for practical theorem proving,  SAT is the core method for encoding and solving problems. Quite surpirisingly , state-of-the-art algorithms for deciding satisfiability - so-called SAT solvers - can handle real-world instances involving hundreds of thousands or even millions of variables. SAT solvers can often run in (close to) linear time and  it is no surprise that most companies doing software or hardware verification are now using SAT solvers. Many SAT solvers are openly available from academia or the industry and can be used as a black box with a simple input/output language developed at DIMACS.

The current state-of-the art SAT solvers are based on Resolution (DPLL algorithm) and the so called conflict-driven clause learning (CDCL) extensions of DPLL.  Some solvers also incorporate elements of algebraic reasoning like  Gaussian elimination and  geometric reasoning based on integer programming. 

The course aim is to introduce the student to the the theoretical foundations of SAT-solving: (1) understanding Resolution and the core engines of modern SAT-solvers, i.e. DPLL algorithm and  CDCL heuristic; (2) understanding  the theoretical limitations of such solvers studying the interactions between SAT-solving and Proof Complexity, i.e.  the theory of the efficiency of proving theorems; (3) A brief glimpse inside other geometric heuristics to approach SAT-solving.

    

Schedule: At the moment the course is scheduled on Thurs: May 4, 11, 18, 25 from 10:00 to 14:00  both remotely and in-presence  in Room A6 at DIAG (Via Ariosto 25, 00185 Roma). 


Zoom Meeting:  Students enrolled in the course and not coming in the room are invited to write me in order to receive the Zoom link.


Prerequisites: No specific topic is required to take the course: basic (undergrad level) knowledge in Logic, Discrete Math, Combinatorial optimization and Complexity theory may be helpful but not necessary.


Evaluation: A final presentation of a research paper (or part of it, if too long) concerning the topics of the course with a final question-&-answer session.