El problema es coNP -hard; puede reducir fácilmente el problema UNSAT a este problema.
Una caracterización más precisa es que el problema es C = P -completo. De hecho, una definición de la clase C = P es que es la clase de problemas que son muchas veces polinomiales reducibles a este mismo problema (por lo general, esta definición se establece en términos de funciones GapP ). Pero como esto no dice mucho, déjame definir esta clase de otra manera.
Sea C = P la clase de problemas que son polinomiales en tiempo múltiple reducibles al siguiente problema: dado un circuito booleano φ y un entero K (en binario), decida si el número de asignaciones satisfactorias de φ es igual a K . Mediante una reducción estándar que muestra la completitud # P de # 3SAT, podemos restringir φ para que sea una fórmula 3CNF sin afectar la clase. La clase C = P contiene una clase llamada US , que contiene UP y coNP.
Con esta definición, su problema es C = P-completo. En realidad, la dureza C = P es fácil de ver a partir de la definición de la clase C = P (que usa fórmulas 3CNF).
Para probar la membresía en C = P, suponga que debemos decidir si dos fórmulas CNF φ 1 y φ 2 tienen el mismo número de asignaciones satisfactorias o no. Sin pérdida de generalidad, podemos suponer que las dos fórmulas tienen el mismo número de variables, digamos n . Construya un circuito booleano φ que tome n +1 bits como entrada para que el número de asignaciones satisfactorias de φ sea igual a c 1 + (2 n - c 2 ), donde c 1 y c 2sean los números de asignaciones satisfactorias de φ 1 y φ 2 , respectivamente. Entonces el número de asignaciones satisfactorias de φ es igual a 2 nsi y solo si c 1 = c 2 .