Satisfiability Modulo Theories (SMT) is the computational problem of determining whether a first-order logic formula is satisfiable within the context of one or more underlying mathematical background theories. It extends the Boolean Satisfiability Problem (SAT) by incorporating rich, domain-specific theories—such as linear integer arithmetic, bit-vectors, or arrays—directly into the logical reasoning process. This allows SMT solvers to efficiently handle constraints involving complex data types and relationships that are ubiquitous in software verification, program analysis, and automated planning.
