Satisfiability
This article may be too technical for most readers to understand. Please help improve it to make it understandable to nonexperts, without removing the technical details. (March 2016) (Learn how and when to remove this template message)

In mathematical logic, satisfiability and validity are elementary concepts of semantics. A formula is satisfiable if it is possible to find an interpretation (model) that makes the formula true.^{[1]} A formula is valid if all interpretations make the formula true. The opposites of these concepts are unsatisfiability and invalidity, that is, a formula is unsatisfiable if none of the interpretations make the formula true, and invalid if some such interpretation makes 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, and a theory is unsatisfiable (invalid) if all (one) of the interpretations make(s) each 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. In general, the question whether sentences in firstorder logic are 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 variablefree or on other conditions.^{[2]}
Contents
Reduction of validity to satisfiability
For classical logics, it is generally possible to reexpress the question of the validity of a formula to one involving satisfiability, because of the relationships between the concepts expressed in the above square of opposition. In particular φ is valid if and only if ¬φ is unsatisfiable, which is to say it is not true that ¬φ is satisfiable. Put another way, φ is satisfiable if and only if ¬φ is invalid.
For logics without negation, such as the positive propositional calculus, the questions of validity and satisfiability may be unrelated. In the case of the positive propositional calculus, the satisfiability problem is trivial, as every formula is satisfiable, while the validity problem is coNP complete.
Propositional satisfiability
In the case of classical propositional logic, satisfiability is decidable for propositional formulae. In particular, satisfiability is an NPcomplete problem, and is one of the most intensively studied problems in computational complexity theory.
Satisfiability in firstorder logic
Satisfiability is undecidable and indeed it isn't even a semidecidable property of formulae in firstorder logic (FOL).^{[3]} This fact has to do with the undecidability of the validity problem for FOL. The question of the status of the validity problem was posed firstly by David Hilbert, as the socalled Entscheidungsproblem. The universal validity of a formula is a semidecidable problem. If satisfiability were also a semidecidable problem, then the problem of the existence of countermodels would be too (a formula has countermodels iff its negation is satisfiable). So the problem of logical validity would be decidable, which contradicts the ChurchTuring theorem, a result stating the negative answer for the Entscheidungsproblem.
Satisfiability in model theory
In model theory, an atomic formula is satisfiable if there is a collection of elements of a structure that render the formula true.^{[4]} If A is a structure, φ is a formula, and a is a collection of elements, taken from the structure, that satisfy φ, then it is commonly written that
 A ⊧ φ [a]
If φ has no variables, that is, if φ is an atomic sentence, and it is satisfied by A, then one writes
 A ⊧ φ
In this case, one may also say that A is a model for φ, or that φ is true in A. If T is a collection of atomic sentences (a theory) satisfied by A, one writes
 A ⊧ T
Finite satisfiability
A problem related to satisfiability is that of finite satisfiability, which is the question of determining whether a formula admits a finite model that makes it true. For a logic that has the finite model property, the problems of satisfiability and finite satisfiability coincide, as a formula of that logic has a model if and only if it has a finite model. This question is important in the mathematical field of finite model theory.
Nevertheless, finite satisfiability and satisfiability need not coincide in general. For instance, consider the firstorder logic formula obtained as the conjunction of the following sentences, where and are constants:
The resulting formula has the infinite model , but it can be shown that it has no finite model (starting at the fact and following the chain of atoms that must exist by the third axiom, the finiteness of a model would require the existence of a loop, which would violate the fourth axiom, whether it loops back on or on a different element).
The computational complexity of deciding satisfiability for an input formula in a given logic may differ from that of deciding finite satisfiability; in fact, for some logics, only one of them is decidable.
Numerical constraints
Numerical constraints often appear in the field of mathematical optimization, where one usually wants to maximize (or minimize) an objective function subject to some constraints. However, leaving aside the objective function, the basic issue of simply deciding whether the constraints are satisfiable can be challenging or undecidable in some settings. The following table summarizes the main cases.
Constraints  over reals  over integers 

Linear  PTIME (see linear programming)  NPcomplete (see integer programming) 
Nonlinear  decidable  undecidable (Hilbert's tenth problem) 
Table source: Bockmayr and Weispfenning.^{[5]}^{:754}
For linear constraints, a fuller picture is provided by the following table.
Constraints over:  rationals  integers  natural numbers 

Linear equations  PTIME  PTIME  NPcomplete 
Linear inequalities  PTIME  NPcomplete  NPcomplete 
Table source: Bockmayr and Weispfenning.^{[5]}^{:755}
See also
 2satisfiability
 Boolean satisfiability problem
 Circuit satisfiability
 Karp's 21 NPcomplete problems
 Validity
 Constraint satisfaction
 Satisficing
Notes
 ^ See, for example, Boolos and Jeffrey, 1974, chapter 11.
 ^ Franz Baader; Tobias Nipkow (1998). Term Rewriting and All That. Cambridge University Press. pp. 58–92. ISBN 0521779200.
 ^ Baier, Christel (2012). "Chapter 1.3 Undecidability of FOL" (PDF). Lecture Notes — Advanced Logics. Technische Universität Dresden — Institute for Technical Computer Science. pp. 28–32. Retrieved 21 July 2012. ^{[dead link]}
 ^ Wilifrid Hodges (1997). A Shorter Model Theory. Cambridge University Press. p. 12. ISBN 0521587131.
 ^ ^{a} ^{b} Alexander Bockmayr; Volker Weispfenning (2001). "Solving Numerical Constraints". In John Alan Robinson; Andrei Voronkov. Handbook of Automated Reasoning Volume I. Elsevier and MIT Press. ISBN 0444829490 (Elsevier) ISBN 0262182211 (MIT Press).
References
 Boolos and Jeffrey, 1974. Computability and Logic. Cambridge University Press.
Further reading
 Daniel Kroening; Ofer Strichman (2008). Decision Procedures: An Algorithmic Point of View. Springer Science & Business Media. ISBN 9783540741046.
 A. Biere; M. Heule; H. van Maaren; T. Walsh, eds. (2009). Handbook of Satisfiability. IOS Press. ISBN 9781607503767.