Basta pegar um problema cujo grau de Turing esteja acima de , que é o grau do Oracle Halting. Em termos da hierarquia aritmética, você deseja problemas acima de . Exemplos de tais problemas (onde é a ésima função computável parcial e é o - conjunto enumerável computacionalmente):0′Σ01ϕnnWn={k∈N∣ϕn(k) is defined}n
- {n∈N∣φn terminates for finitely many inputs} está -completo.Σ02
- {n∈N∣φn is a total function} tem completo.Π02
- {n∈N∣Wn is a computable set} tem .Σ03
Nada disso pode ser resolvido, mesmo se você tiver um Oracle Halting. Por exemplo, considere o segundo exemplo, "is total?" Dado como o Halting Oracle nos ajudaria a decidir se a máquina de Turing codificada por pára em cada entrada? n nφnnn
[Adicionado em 06/06/2014] Para um aspecto "prático" de tudo isso, considere o problema: um programador escreveu uma função void charge_credit_card(int card_number, int amount)
e gostaríamos de saber se a função termina em todas as entradas. É impossível escrever um compilador que possa verificar isso automaticamente em geral. Além disso, mesmo se permitirmos que o compilador nos faça perguntas do formulário " charge_credit_card
termina quando recebida entrada (k,m)
?", Ainda é impossível.