Свойства перечислимых языков. Теорема Успенского-Райса — различия между версиями
Vincent (обсуждение | вклад) |
Vincent (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | + | = Определения = | |
− | Рассмотрим множество перечислимых языков <tex> RE </tex>. | + | Рассмотрим множество [[Перечислимые_языки|перечислимых]] языков <tex> RE </tex>. |
{{Определение | {{Определение | ||
|definition='''Свойством языков''' называется множество <tex> A \subset RE </tex>. | |definition='''Свойством языков''' называется множество <tex> A \subset RE </tex>. | ||
Строка 12: | Строка 12: | ||
}} | }} | ||
{{Определение | {{Определение | ||
− | |definition=Свойство <tex> A </tex> называется '''разрешимым''', если <tex>L(A) </tex> является | + | |definition=Свойство <tex> A </tex> называется '''разрешимым''', если <tex>L(A) </tex> является [[Разрешимые_(рекурсивные)_языки|разрешимым]]. |
}} | }} | ||
− | + | = Теорема Успенского-Райса= | |
{{Теорема | {{Теорема | ||
|statement= | |statement= | ||
Никакое нетривиальное свойство языков не является разрешимым. | Никакое нетривиальное свойство языков не является разрешимым. | ||
|proof= | |proof= | ||
− | + | Приведём доказательство от противного. | |
+ | |||
+ | Предположим, что <tex>A</tex> разрешимо и нетривиально, <tex>p_A</tex> {{---}} программа, разрешающая <tex>A</tex>. | ||
− | Не умаляя общности, можно считать, что <tex>\varnothing \notin A</tex> (в противном случае | + | Не умаляя общности, можно считать, что <tex>\varnothing \notin A</tex> (в противном случае перейдём к <tex>RE \setminus A</tex>, которое также будет разрешимым и нетривиальным). |
− | + | Поскольку <tex>A</tex> непусто, то найдётся перечислимый язык <tex>X \in A</tex>. Пусть <tex>p_X</tex> {{---}} полуразрешитель <tex>X</tex>. | |
Рассмотрим вспомогательную программу: | Рассмотрим вспомогательную программу: | ||
− | <tex>g_{i,x}(y)</tex> | + | <tex>g_{i,x}(y):</tex> |
if U(i, x) = 1 | if U(i, x) = 1 | ||
return <tex>p_X(y)</tex> | return <tex>p_X(y)</tex> | ||
else | else | ||
− | + | return <tex>\bot</tex> | |
Нетрудно понять, что в разумной модели вычислений номер этой программы можно вычислить по данным <tex>i,x</tex>. Значит, можно рассмотреть такую программу: | Нетрудно понять, что в разумной модели вычислений номер этой программы можно вычислить по данным <tex>i,x</tex>. Значит, можно рассмотреть такую программу: | ||
Строка 40: | Строка 42: | ||
<tex> | <tex> | ||
L(g_{i,x}) = \begin{cases} | L(g_{i,x}) = \begin{cases} | ||
− | X & U(i, x) = 1 \\ | + | X, & U(i, x) = 1 \\ |
− | \varnothing & U(i, x) \neq 1 \\ | + | \varnothing, & U(i, x) \neq 1 \\ |
\end{cases} | \end{cases} | ||
</tex> | </tex> | ||
Строка 47: | Строка 49: | ||
Следовательно, <br/> <tex> | Следовательно, <br/> <tex> | ||
US(\langle i, x \rangle ) = p_A(g_{i,x}) = \begin{cases} | US(\langle i, x \rangle ) = p_A(g_{i,x}) = \begin{cases} | ||
− | p_A(p_X) & U(i, x) = 1 \\ | + | p_A(p_X), & U(i, x) = 1 \\ |
− | p_A(p_\varnothing ) & U(i, x) \neq 1 \\ | + | p_A(p_\varnothing ), & U(i, x) \neq 1 \\ |
\end{cases} = \begin{cases} | \end{cases} = \begin{cases} | ||
− | 1 & U(i, x) = 1 \\ | + | 1, & U(i, x) = 1 \\ |
− | 0 & U(i, x) \neq 1 \\ | + | 0, & U(i, x) \neq 1 \\ |
\end{cases} | \end{cases} | ||
− | </tex> - программа, разрешающая универсальное множество. | + | </tex> {{---}} программа, разрешающая универсальное множество. Получили противоречие. |
}} | }} |
Версия 10:53, 2 января 2012
Определения
Рассмотрим множество перечислимых языков .
Определение: |
Свойством языков называется множество | .
Определение: |
Свойство называется тривиальным, если | или .
Определение: |
Язык свойства | — множество программ, языки которых обладают этим свойством: .
Определение: |
Свойство разрешимым. | называется разрешимым, если является
Теорема Успенского-Райса
Теорема: |
Никакое нетривиальное свойство языков не является разрешимым. |
Доказательство: |
Приведём доказательство от противного. Предположим, что разрешимо и нетривиально, — программа, разрешающая .Не умаляя общности, можно считать, что (в противном случае перейдём к , которое также будет разрешимым и нетривиальным).Поскольку непусто, то найдётся перечислимый язык . Пусть — полуразрешитель .Рассмотрим вспомогательную программу: if U(i, x) = 1 return else return Нетрудно понять, что в разумной модели вычислений номер этой программы можно вычислить по данным . Значит, можно рассмотреть такую программу:return Заметим, что Следовательно,— программа, разрешающая универсальное множество. Получили противоречие. |