O que acontece se fizermos um programa cujo único propósito é executar a função contrária e executar esse programa tendo ele mesmo como entrada? Uma possibilidade é que a chamada para selfhalt retorne verdadeira; isto é, selfhalt afirma que o contrário irá parar quando executado sobre si mesmo. Nesse caso, o contrário entra em um loop infinito (e, portanto, não para). Por outro lado, se selfhalt retorna falso, então halt está proclamando que o contrário não para em si mesmo, e o contrário então retorna, isto é, ele para. Assim, o contrário faz o contrário daquilo que halt diz que fará.
A ação contrária é logicamente inconsistente com a suposição de que halt resolve o problema da parada corretamente. Não há outras suposições que possamos feito que possa causar essa inconsistência. Assim, por contradição, provamos que a parada não pode resolver o problema da halt corretamente e, portanto, não há programa que pode resolver o problema da parada.