SMT-LIB is an international initiative aimed at facilitating research and development in Satisfiability Modulo Theories. Since its inception in 2003, the initiative has pursued these aims by focusing on the following concrete goals:

SMT-LIB was created with the expectation that the availability of common standards and a library of benchmarks would greatly facilitate the evaluation and the comparison of SMT systems, and advance the state of the art in the field in the same way as, for instance, the TPTP library has done for theorem proving, or the SATLIB library has done initially for SAT.

These expectations have been largely met, thanks in no small part to extensive contributions from the research community and to an annual SMT solver competition, SMT-COMP, based on benchmarks from the library. The initiative is, however, still on-going, with work on improving the usefulness and the scope of the SMT-LIB language, defining new background theories, and collecting more benchmarks.

What is SMT?

SMT is an area of automated deduction that studies methods for checking the satisfiability of first-order formulas with respect to some logical theory T of interest. It differs from general automated deduction in that the background theory T need not be finitely or even first-order axiomatizable, and specialized inference methods are used for each theory. By being theory-specific and restricting their language to certain classes of formulas (such as, typically but not exclusively, quantifier-free formulas), these specialized methods can be implemented in solvers that are more efficient in practice than general-purpose theorem provers.

While SMT techniques have been traditionally used to support deductive software verification, they are now finding applications in other areas of computer science such as, for instance, planning, model checking and automated test generation. Typical theories of interest in these applications include formalizations of arithmetic, arrays, bit vectors, algebraic datatypes, equality with uninterpreted functions, and various combinations of these.