Nós não sabemos todos os problemas em NP. Cada problema no NP é dado por uma máquina de Turing não determinística em execução em tempo polinomial. Steve Cook (e, independentemente, Leonid Levin) provou que o SAT é NP-completo , codificando a declaração "A máquina aceita dada opções não determinísticas " como uma fórmula lógica para toda máquina de Turing não determinística; para uma máquina rodando no tempo e no espaço , a codificação tem tamanho aproximadamente ; portanto, quando é tempo polinomial, a codificação tem comprimento polinomial. A fórmula SAT correspondente afirma que "para alguns , a máquinaMxyTSO ( TS)MyMaceita dado opções não determinísticas ". Esta fórmula é satisfatória se aceita .xyMx
Tendo provado que um problema é NP-completo, não há necessidade de fazer essa codificação novamente. Para provar que algum outro problema é NP-hard, é suficiente para reduzir SAT para . Todos os problemas em NP é redutível a sab, e através da redução auxiliar, para . É assim que os resultados da dureza NP são comprovados hoje em dia, reduzindo-se de algum problema de dureza NP.eueueu