Satisfiability Checking

Satisfiability checking (Erfüllbarkeitsüberprüfung)

Satisfiability is a metalinguistical predicate in logic and mathematics for the property of predicates and Boolean-valued
formulae, that they can be true.  With other words, a formula is satisfiable, iff there exists an assignment (assigning values to the formula's variables), such that the value of the formula becomes true.The problem of determining if a formula is satisfiable is called the satisfiability problem.

In this lecture we deal with the automatic check of satisfiability for different logics. Formulae of predicate logic can be checked for satisfiability using SAT-solvers (SAT=''satisfiability'') and QBF-solvers (QBF=''quantified Boolean formula''). Extending the logic with different theories leads us to SMT-solvers (SMT=''satisfiability modulo theories''). We will discuss the basic methods of theorem proving. To show up practical relevance, we employ the above methods in the context of bounded model checking.

 

Content:

  • Propositional logic, the satisfiability problem, adding background theories

  • Satisfiability checking for propositional logic without quantification: SAT-solving algorithms

  • First-order propositional logic: QBF-solving (Quantified Boolean Formula)

  • Satisfiability checking modulo theories: SMT-solving

  • Some theorem proving basics

  • Application: Bounded model checking (introducing some transition system classes, expressing their bounded reachability,

expressing safety and lifeness properties)

 

Prerequisites:

  • Mathematical Logic

  • Algorithms and Data Structures

 

Literature:

Script and slides of the lecture and for example the following books: