Satisfiability Modulo Theories: An Appetizer [chapter]

Leonardo de Moura, Nikolaj Bjørner
2009 Lecture Notes in Computer Science  
Satisfiability Modulo Theories (SMT) is about checking the satisfiability of logical formulas over one or more theories. The problem draws on a combination of some of the most fundamental areas in computer science. It combines the problem of Boolean satisfiability with domains, such as, those studied in convex optimization and termmanipulating symbolic systems. It also draws on the most prolific problems in the past century of symbolic logic: the decision problem, completeness and
more » ... of logical theories, and finally complexity theory. The problem of modularly combining special purpose algorithms for each domain is as deep and intriguing as finding new algorithms that work particularly well in the context of a combination. SMT also enjoys a very useful role in software engineering. Modern software, hardware analysis and model-based tools are increasingly complex and multi-faceted software systems. However, at their core is invariably a component using symbolic logic for describing states and transformations between them. A well tuned SMT solver that takes into account the state-of-the-art breakthroughs usually scales orders of magnitude beyond custom ad-hoc solvers.
doi:10.1007/978-3-642-10452-7_3 fatcat:wabzhnbstbcgphtptloaywgfxy