Розв'язувачі SAT вирішують булеву задачу задоволеності . Це "проблема визначення того, чи можна змінні заданої булевої формули призначати таким чином, щоб змусити формулу оцінювати як ІСТИЧНУ".
Прикладом є пошук присвоєння значень істинності змінним таким, що
( a ∨ b ∨ c ) ∧ ( ¬ a ∨ ¬ b ∨ c ) ∧ ( a ∨ ¬ b ∨ ¬ c ) ∧ ( ¬ a ∨ b ∨ ¬ c ) вірно. Розв'язувач SAT може повернути такий розчин, як a = t r u e ,a , b , c( a ∨ b ∨ c ) ∧ ( ¬ a ∨ ¬ b ∨ c ) ∧ ( a ∨ ¬ b ∨ ¬ c ) ∧ ( ¬ a ∨ b ∨ ¬ c )a = t r u e , c = t r u e .b = t r u ec = t r u e
Розв'язувачі SMT вирішують більш загальну проблему, а саме - теорії задоволення модулів . Це "проблема рішення для логічних формул стосовно комбінацій фонових теорій, виражених у класичній логіці першого порядку з рівністю". Ці теорії можуть включати "теорію дійсних чисел, теорію цілих чисел та теорії різних структур даних, таких як списки, масиви, бітові вектори тощо".
Наприклад, задані введені змінні і y : i n t і f : i n t → i n t , запитує, чи є наступним
f ( x + 2 ) ≠ f ( y - 1 ) ∧ x = ( y - 4 ) задовольняється. Розв'язувач SMT відповів би так, з рішенням x = - 2 , yx : i n tу:intf:int→intf(x+2)≠f(y−1)∧x=(y−4)x=−2 , f ( 0 ) = 1
і f ( 1 ) = 3 .y=2f(0)=1f(1)=3
Об'єднання - це специфічна методика, яка займає два терміни і знаходить підміну, яка зробила б умови рівними. Наприклад, з урахуванням термінів та b o o k ( D. ~ Smith , y , 2010 ) об'єднання призведе до заміни { x ↦ D. Smith , y ↦ "Fishing" } . Уніфікація, ймовірно, використовується всередині SMT-розв'язувачів.book(x,"Fishing",2010)book(D.~Smith,y,2010){x↦D. Smith,y↦"Fishing"}