Os solucionadores de SAT resolvem o problema de satisfação booleana . Este é "o problema de determinar se as variáveis de uma determinada fórmula booleana podem ser atribuídas de forma a fazer com que a fórmula seja avaliada como VERDADEIRA".
Um exemplo é encontrar uma atribuição de valores de verdade para as variáveis modo que
é verdadeiro. Um solucionador SAT pode retornar uma solução como , , .a,b,c(a∨b∨c)∧(¬a∨¬b∨c)∧(a∨¬b∨¬c)∧(¬a∨b∨¬c)a=trueb=truec=true
Os solucionadores SMT resolvem um problema mais geral, a saber, as Teorias do Módulo de Satisfação . Este é "um problema de decisão para fórmulas lógicas no que diz respeito a combinações de teorias de fundo expressas na lógica clássica de primeira ordem com igualdade". Essas teorias podem incluir "a teoria dos números reais, a teoria dos números inteiros e as teorias de várias estruturas de dados, como listas, matrizes, vetores de bits e assim por diante".
Um exemplo, dados variáveis digitadas e e , pergunta se o seguinte é
satisfatível . Um solucionador SMT responderia sim, com solução , ,
e .x:inty:intf:int→intf(x+2)≠f(y−1)∧x=(y−4)x=−2y=2f(0)=1f(1)=3
A unificação é uma técnica específica que usa dois termos e encontra uma substituição que tornaria os termos iguais. Por exemplo, dados os termos e , a unificação produziria substituição . Provavelmente, a unificação é usada nos solucionadores SMT.book(x,"Fishing",2010)book(D.~Smith,y,2010){x↦D. Smith,y↦"Fishing"}