Boolean satisfiability problem
The Boolean satisfiability problem is a problem from mathematical logic. In propositional logic, a formula is satisfiable if the variables it uses can be assigned values so that the formula becomes true. It is also important to know that for a given formula, no such assignment exists, in other words the formula will always evaluate to false, no matter what values its variables have. In the first case, the formula is satisfiable, in the second case, it is called unsatisfiable.
The problem is also known as Boolean or propositional satisfiability. Computer scientists usually refer to it as SAT. Depending on what the logical formula looks like. Complexity theory usually assumes that the formula is in conjunctive normal form, that is that is contains several clauses, which are joined by logical and, and that each clause has several literals, joined by "logical or". A literal and its complement cannot appear in the same clause.
At the beginning of the 1970s, Stephen Cook and Leonid Levin showed independently that the problem is NP complete. This has become known as the Cook–Levin theorem.
The problem 3SAT, which uses three variables per clause, is one of the 21 NP complete problems defined by Richard Karp in 1972.