Estou tentando encontrar uma maneira de explicar a idéia da prova do problema da parada da maneira mais acessível possível (para alunos de graduação em ciências da computação). O argumento mais simples que encontrei é esse ; esse é precisamente o estilo de tratamento que estou buscando. No entanto, a auto-referência (em particular, verificar se um programa pára em si mesmo) não é a mais didática.
O que estou me perguntando, como um esboço de prova, é por que não conseguimos simplificar ainda mais e dizer: se assumirmos um programa H(P,I)
para o Problema de Parada que pára com verdadeiro se P(I)
parar e com falso caso contrário, poderíamos criar um programa do formulário:
def Q(J):
if H(Q,J) then loop forever
else halt
... que é um programa válido se e somente se o Problema de Parada for um programa válido. Podemos então perguntar: para que deve H(Q,J)
retornar qualquer valor arbitrário J
? Vemos uma contradição em ambas as possibilidades e concluímos que, como a existência de H
nos permite construir o programa contraditório Q
, um programa da forma H
não pode existir.
Ainda existe alguma auto-referência aqui, pois o programa Q
verifica se ele pára ou não na entrada atual (e faz o oposto), mas, para mim, isso parece muito mais intuitivo do que configurar uma situação em que precisamos de uma chamada do formar P(P)
ou H(P,P)
, etc. No entanto, eu não vi esse argumento simples utilizado, e eu acho que teria sido se fosse válido. Portanto, minhas perguntas são:
- O argumento acima é suficiente como prova (esboço) do problema de parada?
- Se sim, por que tantos argumentos seguem uma etapa confusa do formulário
P(P)
ouH(P,P)
? (É apenas para remover a "entrada" sem importância da equação?) - Se não, o que está faltando?
- Se sim, por que tantos argumentos seguem uma etapa confusa do formulário
Há várias perguntas relacionadas a este tópico, como:
- Parando o problema sem auto-referência
- Existe uma prova mais intuitiva da indecidibilidade do problema de parada do que a diagonalização?
Também achei menção à prova baseada no paradoxo de Berry, que é bastante atraente. Ainda assim, ainda não consegui me convencer se o argumento específico acima funciona ou não (mesmo que seja apenas para meu próprio entendimento; sinto que talvez esteja perdendo algo estúpido e gostaria de saber o que é).