Дійсно є такі програми. Щоб довести це, припустимо протилежне, що для кожної машини, яка не зупиняється, існує доказ, що вона не зупиняється.
Ці докази є рядками кінцевої довжини, тому ми можемо перерахувати всі докази довжини менше для деяких цілих .sss
Потім ми можемо використовувати це для вирішення проблеми зупинки наступним чином: Враховуючи машину Тюрінга та вхід , ми використовуємо такий алгоритм:хMx
s := 0
while (True)
test if machine M halts on input x in s steps
look at all proofs of length s and see if they prove M doesn't halt on input x
set s := s + 1
Якщо зупиняється на вході , то він зупиняється на деякій кінцевій кількості кроків , тому наш алгоритм припиняється.х сMxs
Якщо не зупиняється на вході , то, за нашим припущенням, існує деяка довжина доказу де є доказ того, що не зупиняється. Тож у цьому випадку наш алгоритм завжди припиняється.х с МMxsM
Таким чином, у нас є алгоритм, який вирішує проблему зупинки, яка завжди припиняється. Але ми знаємо, що це не може існувати, тому наше припущення про те, що завжди є доказ неприпинення, повинно бути помилковим.
if T is true then halt else loop forever