Un teorema de dicotomía (grueso) establece que en una cierta clase de problemas, cada problema está en P o NP-duro. Por ejemplo, el teorema de dicotomía de Schaefer se refiere a la clase de problemas de la formaS A T (S). aquíS es una colección de relaciones booleanas, y S A T (S) es el problema de decidir la satisfacción de las proposiciones que son conjunciones de relaciones de S. Esto se explica mejor con un ejemplo. El problema 2SAT esS A T (S2) con S2 que consta de los siguientes tres predicados:
(x,y)↦x∨y,(x,y)↦x∨¬y,(x,y)↦¬x∨¬y.
Es decir, cada instancia de 2SAT es una conjunción de cláusulas de una de estas tres formas, donde puede sustituir cualquier variable que desee
x,y. Como otro ejemplo,
HORNSAT es
SAT(SH) dónde
SH es la siguiente colección infinita:
x↦x,x↦¬x,(x,y)↦x∨¬y,(x,y)↦¬x∨¬y,(x,y,z)↦x∨¬y∨¬z,(x,y,z)↦¬x∨¬y∨¬z,(x,y,z,w)↦x∨¬y∨¬z∨¬w,(x,y,z,w)↦¬x∨¬y∨¬z∨¬w,…
El teorema de dicotomía de Schaefer establece que para cada
finito S, el problema
SAT(S)está en P o NP-completo (esto es una
dicotomía ya que solo hay dos posibilidades). Por ejemplo, 2SAT y
k-HORNSAT están en P por cada
k, mientras que 3SAT es NP-completo. Esto es sorprendente ya que si creemos que P
≠NP, entonces el teorema de Ladner muestra que hay problemas intermedios, problemas que no están ni en P ni en NP completos. El teorema de Schaefer muestra que estos problemas no pueden ser de la forma
SAT(S).
Una versión más refinada del teorema de Schaefer establece que SAT(S) está en co-NLOGTIME, L-complete, NL-complete, ⊕L-completo, P-completo o NP-completo. En los últimos años, se han probado o conjeturado innumerables generalizaciones del teorema de Schaefer, incluidos los resultados sobre el conteo de soluciones y la aproximación del número máximo de cláusulas satisfactorias, así como los resultados sobre dominios no booleanos. La conjetura principal es la conjetura de la dicotomía de Feder-Vardi que establece que el teorema de Schaefer es válido para las relaciones en dominios arbitrarios de tamaño finito. Para el estado del teorema original de Schaefer en el caso dondeSes infinito, mira esta pregunta .