Изменения

Перейти к: навигация, поиск

Участник:Shersh/Теорема о рекурсии

81 байт добавлено, 14:05, 12 января 2014
псевдокод успенского-райса
По [[Теорема о рекурсии | теореме о рекурсии]], программа может знать свой исходный код. Значит, в неё можно написать функцию <tex> \mathrm{getSrc()} </tex>, которая вернёт строку {{---}} исходный код программы. Далее будем считать, что такая функция определена в каждой программе.
== Неразрешимость универсального языка ==
{{Утверждение
<code>
p(x):
'''if''' u(pgetSrc(), x) // можем так написать, потому что по теореме о рекурсии программа может знать свой код
'''while''' ''true''
'''else'''
<tex> L_A </tex> {{---}} множество программ, удовлетворяющих св-ву <tex> A </tex>.
ДопустимТеперь допустим, что пустой язык <tex> \varnothing </tex> принадлежит семейству <tex> A </tex>. Если это не так, то мы можем перейти к рассмотрению дополнения семейства: к <tex> \overline{A} </tex>. К тому же, так как свойство <tex> A </tex> нетривиальное, то его дополнение содержит какой-то перечислимый язык. Пусть <tex> q </tex> {{---}} полуразрешитель какого-то фиксированного непустого языка из <tex> \overline{A} </tex>, то есть <tex> q \notin L_A </tex>разрешим. Тогда напишем такую программу:
<code>
propA(code):
// программа, разрешающее свойство языка <tex> A </tex>
f(x):
// такая программа <tex> f </tex>, что <tex>f \in A </tex>; существует потому что <tex> A </tex> {{---}} нетривиальное свойство
g(x):
// такая программа <tex> g </tex>, что <tex>g \notin A </tex>; существует потому что <tex> A </tex> {{---}} нетривиальное свойство
p(x):
'''if''' p <tex> \in ~ L_A </tex> // можем так написать, потому что по предположению <tex> L_A </tex> {{---}} разрешимыйpropA(getSrc()) '''return''' qg(x)
'''else'''
'''whilereturn''' ''true''f(x)
</code>
Если <tex> p </tex> не удовлетворяет свойству <tex> A </tex>, тогда будет выполняться всегда вторая ветка, и <tex> L(p \equiv \varnothing ) = L(f) </tex>. Но пустой язык программы <tex> f </tex> принадлежит <tex> A </tex>. Получили противоречие.
Если <tex> p </tex> удовлетворяет свойству <tex> A </tex>, то <tex> L(p) = L(qg) </tex>, а <tex> q g \notin A </tex>. Опять получили противоречие.
== Колмогоровская сложность ==
{{Определение

Навигация