What is a satisfiability modulo theories solver?

Definition

A satisfiability modulo theories solver extends Boolean satisfiability solving with specialized reasoning about mathematical domains. Verification tools translate program conditions into constraints and ask the solver whether a counterexample or valid assignment exists.

Software verifiers can use these solvers to check preconditions, postconditions, invariants and assertions. The result depends on the encoded model and supported theories, so a successful check does not cover behavior omitted from the formal representation.

ELI5

A satisfiability modulo theories solver checks whether a collection of logical and mathematical constraints can all be true at the same time. It combines Boolean logic with knowledge about areas such as arithmetic, arrays, and bit patterns.

For example, a software verifier can describe a suspected bug as constraints and ask the solver to find values that trigger it. If no values exist in the encoded model, the checked condition holds there, but omitted program behavior remains unverified.

What does satisfiability modulo theories mean?

It asks whether a logical formula can be true while respecting the rules of background theories such as integers, real numbers, arrays or bit vectors.

How do software verifiers use satisfiability modulo theories solvers?

They encode program paths and required properties as constraints, then use the solver to prove conditions or find assignments that demonstrate a violation.

  1. Varun Pant beside the words Prove the Code
Definition card for satisfiability modulo theories solver: What is a satisfiability modulo theories solver?

A satisfiability modulo theories solver determines whether logical constraints are simultaneously satisfiable while reasoning about theories such as arithmetic, arrays and bit vectors.