Boolean satisfiability problem
The Boolean satisfiability problem is a kind of problem. It is from math based logic. In propositional logic, a formula is satisfiable if the variables it uses can be given values so that it becomes true. It is important to know if no number exists for a given formula to be true. In other words, the formula will always be false no matter what values its variables have. The formula is called "satisfiable" in the first case. It is called "unsatisfiable" in the second case.
The problem is also known as Boolean or propositional satisfiability. Computer scientists usually call it SAT. Complexity theory believes that the formula is in a special form. The form is known as conjunctive normal form. A formula that is in this form has clauses. Formulae are joined by a "logical and". Each clause has several literals. They are joined by a "logical or". A literal and its complement cannot appear in the same clause. The problem may also have other names. The names depend on what the logical formula looks like. The names also depend on how many variables are used per clause.
At the beginning of the 1970s, Stephen Cook and Leonid Levin showed that the problem is NP-complete. This is known as the Cook–Levin theorem.
The problem 3SAT uses three variables per clause. It is one of the 21 NP-complete problems. They were defined by Richard Karp in 1972.