Участник:Shersh/Теорема о рекурсии
Неразрешимость универсального языка
Считаем, что язык программ над тем же алфавитом, что и язык входных данных. Если это не так, то можно просто взять объединение алфавитов, это ничто не испортит.
Универсальная программа: .
Универсальный язык:
| Утверждение: | 
| Универсальный язык неразрешим | 
| Напишем такую программу:
  p(x):
   if u(p, x) // можем так написать, потому что по теореме о рекурсии программа может знать свой код
     return 0
   else
     return 1
 Если , тогда программа на входе возвращает , но по условию она должна вернуть , а следовательно, не принадлежит универсальному языку.Если же , то мы пойдём во вторую ветку условного оператора и вернём , значит, пара принадлежит универсальному языку, но , значит, пара не принадлежит. Опять получили противоречие. | 
Теорема Успенского-Райса
— разрешимое семейство языков.
— язык свойства языков. Допустим, что он разрешим. Тогда напишем такую программу
 p(x):
   if p 
     return z(x)
   else
     while true
Колмогоровская сложность
| Определение: | 
| Колмогоровской сложностью строки называется функция , которая равна минимальной длине программы . | 
Пример
Колмогоровская сложность программы, выводящей  нулей . Просто программа, в которой записано  нулей. Но можно записать и более короткую программу для больших , например вот такую:
 ():
   for i = 1..n
     print(0)
| Теорема (Невычислимость Колмогоровской сложности): | 
| Колмогоровская сложность — невычислимая функция. | 
| Доказательство: | 
| , если только или — невычислима. Допустим, что  вычислима, тогда напишем такую программу:
 p(): foreach x // перебираем слова по возрастанию длины if // теорема о рекурсии используется здесь print(x) exit Начиная с , . | 
Busy beaver
Аналог I теоремы Гёделя о неполноте
| Теорема: | 
| В любой "достаточно богатой системе" существует истинное недоказуемое утверждение. | 
| Доказательство: | 
| Можно переформулировать теорему следующим образом: невозможно доказать, что . Тогда напишем такую программу:
  p(x):
   foreach q 
     if q proves "p(x) зависает"
       exit    
 | 
Аналог II теоремы Гёделя о неполноте
Теорема о неподвижной точке
Зафиксируем главную нумерацию . Обозначим за множество слов, допускаемых программой с номером .
| Утверждение: | 
| Напишем такую программу:
  p(q):
   if p == q // сравниваем как строки; так можно сделать, потому что программа знает свой код по теореме о рекурсии
     print number(p)
   else
     while true
Программа знает свой код, что то же самое, что и знает свой номер. Как видно из её кода, она допускает только одно число — свой номер. | 
