Tenho certeza de que não sou o primeiro a aceitar a idéia que vou apresentar. No entanto, seria útil encontrar alguma literatura relacionada à idéia.
A idéia é construir uma Máquina de Turing M com a propriedade de que, se P = NP, M resolverá o 3-SAT em tempo polinomial. (A escolha do 3-SAT é arbitrária. Poderia ser realmente qualquer problema no NP).
Só para ficar claro, isso não é uma afirmação de que P = NP. Na verdade, acredito no contrário. Apenas afirmo que, se P = NP, M fornecerá uma solução em tempo polinomial. Se você está procurando uma solução eficiente, devo avisar que isso está longe de ser eficiente.
M é construído da seguinte maneira: primeiro, assuma uma codificação canônica para todas as máquinas de Turing e aplique uma numeração a essas máquinas. Portanto, existe uma máquina de Turing número 1, um número 2, etc. A ideia de uma máquina de Turing universal que pode ler o formato de uma máquina fornecida e simular a máquina em funcionamento em uma entrada separada é bem conhecida. M empregará uma Máquina Universal de Turing para construir e simular cada uma delas.
Primeiro, simula o funcionamento da Máquina de Turing 1 para uma única etapa.
Em seguida, ele analisa a saída da Turing Machine 1.
Simula o funcionamento da Turing Machine 1 por duas etapas e analisa a saída e, em seguida, procede à simulação da Turing Machine 2 por 2 etapas. Ele continua e faz um loop dessa maneira, executando a Máquina de Turing 1 para k etapas e depois 2 para k etapas ... e, finalmente, usina k para k etapas.
Após cada execução da simulação, ele examina a saída da execução. Se a saída for uma designação de variáveis que satisfaçam a instância do problema 3-SAT, M parará no estado de aceitação. Se, por outro lado, a saída for uma string de prova em alguma linguagem de prova verificável, com o resultado comprovado de que a instância do problema não é satisfatória, M pára no estado de rejeição. (Para uma linguagem de prova, poderíamos, por exemplo, usar os axiomas de Peano com lógica de segunda ordem e os axiomas lógicos básicos de Hilbert. Deixo como um exercício para o leitor descobrir que, se P = NP, um válido existe uma linguagem de prova e é verificável em tempo polinomial).
Afirmo aqui que M resolverá o 3-SAT em tempo polinomial se e somente se P = NP. Eventualmente, o algoritmo encontrará uma Máquina de Turing mágica com o número K, que, por acaso, é um solucionador eficiente para o problema 3-SAT, e é capaz de fornecer uma prova de seus resultados, tanto para o sucesso quanto para o fracasso. O K será simulado executando etapas de poli (strlen (entrada)) para algum polinômio. O polinômio para M é aproximadamente o quadrado do polinômio para k no fator maior, mas com algumas constantes terríveis no polinômio.
Para reiterar minha pergunta aqui: quero saber se existe uma fonte de literatura que emprega essa ideia. Estou um pouco menos interessado em discutir a ideia em si.