What is satisfiability?
In mathematical logic, particularly, first-order logic and propositional calculus, satisfiability and validity are elementary concepts of semantics. A formula is satisfiable if there exists a model that makes the formula true. A formula is valid if all models make the formula true. The opposites of these concepts are unsatisfiability and invalidity, that is, a formula is unsatisfiable if none of the models make the formula true, and invalid if some such models make the formula false. These four concepts are related to each other in a manner exactly analogous to Aristotle's square of opposition.
The four concepts can be raised to apply to whole theories:
- A theory is satisfiable (valid) if one (all) of the interpretations make(s) each of the axioms of the theory true
- A theory is unsatisfiable (invalid) if all (one) of the interpretations make(s) one of the axioms of the theory false.
It is also possible to consider only interpretations that make all of the axioms of a second theory true. This generalization is commonly called satisfiability modulo theories.
The question whether a sentence in propositional logic is satisfiable is a decidable problem, or a boolean satisfiability problem. In general, the question whether a sentence of first-order logic is satisfiable is not decidable. In universal algebra and equational theory, the methods of term rewriting, congruence closure and unification are used to attempt to decide satisfiability. Whether a particular theory is decidable or not depends whether the theory is variable-free or on other conditions
Which areas are satisfiability applied in?
In practice, many automated reasoning problems in Propositional Logic are first reduced to satisfiability problems and then by using a satisfiability solver. Today, SAT solvers are commonly used in hardware design, software analysis, planning, mathematics, security analysis, and many other areas.