Изменения

Перейти к: навигация, поиск
Теорема Успенского-Райса: Fix html code issues
\end{cases} </tex>
<code>
'''function''' <tex>V_n</tex>(x):
'''if''' <tex>p_X</tex>(n) == 1
'''return''' <tex>p_S</tex>(x)
'''while''' ''true''
</code>
Получили, что если <tex>n \in X</tex>, то <tex>V_n \in L(\overline A)</tex>, а если <tex>n \notin X</tex>, то <tex>V_n \in L(A)</tex>. Таким образом, <tex>n \in X \iff V_n \in L(\overline A)</tex>.
Так как <tex>\overline{A}</tex> {{---}} нетривиально (как дополнение к нетривиальному множеству), то по первой части доказательства оно неразрешимо. Следовательно, <tex>A</tex> также неразрешимо.
===Альтернативное доказательство с использованием теоремы о рекурсии===
По [[Теорема о рекурсии | теореме о рекурсии]], программа может знать свой исходный код. Значит, в неё можно написать функцию <tex> \mathrm{getSrc()} </tex>, которая вернёт строку {{---}} исходный код программы.
 
<tex> A </tex> {{---}} разрешимое семейство языков.
Теперь допустим, что язык <tex> L_A </tex> разрешим. Тогда напишем такую программу:
<codetex> propA(code){:}</tex>
// программа, разрешающее свойство языка <tex> A </tex>
<tex>f(x){:}</tex>
// такая программа <tex> f </tex>, что <tex>f \in A </tex>; существует потому что <tex> A </tex> {{---}} нетривиальное свойство
<tex>g(x){:}</tex>
// такая программа <tex> g </tex>, что <tex>g \notin A </tex>; существует потому что <tex> A </tex> {{---}} нетривиальное свойство
<tex>p(x){:}</tex> '''if''' <tex>propA(\mathrm{getSrc()})</tex> '''return''' <tex>g(x)</tex>
'''else'''
'''return''' <tex>f(x)</codetex>
Если <tex> p </tex> не удовлетворяет свойству <tex> A </tex>, тогда будет выполняться всегда вторая ветка, и <tex> L(p) = L(f) </tex>. Но язык программы <tex> f </tex> принадлежит <tex> A </tex>. Получили противоречие.
Анонимный участник

Навигация