Редактирование: Свойства перечислимых языков. Теорема Успенского-Райса
Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 11: | Строка 11: | ||
|definition='''Язык свойства''' (англ. ''language of property'') <tex> A </tex> {{---}} множество программ, языки которых обладают этим свойством: <tex>L(A) \overset{\underset{\mathrm{def}}{}}{=} \lbrace p \mid L(p) \in A \rbrace </tex>. | |definition='''Язык свойства''' (англ. ''language of property'') <tex> A </tex> {{---}} множество программ, языки которых обладают этим свойством: <tex>L(A) \overset{\underset{\mathrm{def}}{}}{=} \lbrace p \mid L(p) \in A \rbrace </tex>. | ||
}} | }} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{Определение | {{Определение | ||
|definition=Свойство <tex> A </tex> называется '''разрешимым''' (англ. ''recursive''), если <tex>L(A) </tex> является [[Разрешимые_(рекурсивные)_языки|разрешимым]]. | |definition=Свойство <tex> A </tex> называется '''разрешимым''' (англ. ''recursive''), если <tex>L(A) </tex> является [[Разрешимые_(рекурсивные)_языки|разрешимым]]. | ||
Строка 31: | Строка 25: | ||
Псевдокод для программы в общем случае, то есть для проверки того, что язык удовлетворяет свойству : | Псевдокод для программы в общем случае, то есть для проверки того, что язык удовлетворяет свойству : | ||
<tex>p_A(p_X)</tex> | <tex>p_A(p_X)</tex> | ||
− | '''return''' <tex>p_X \in | + | '''return''' <tex>L(p_X) \in A</tex> |
Псевдокод полуразрешителя для языка свойства из первого примера: | Псевдокод полуразрешителя для языка свойства из первого примера: | ||
Строка 41: | Строка 35: | ||
|statement= | |statement= | ||
Язык никакого нетривиального свойства <tex>A</tex> не является разрешимым. | Язык никакого нетривиального свойства <tex>A</tex> не является разрешимым. | ||
− | + | |proof= | |
− | + | Приведём доказательство от противного. | |
− | + | ||
− | + | Предположим, что <tex>A</tex> разрешимо. | |
− | |||
− | |||
− | Приведём доказательство от противного. Предположим, что <tex>A</tex> разрешимо. | ||
− | + | Пусть <tex>p_\infty</tex> {{---}} всегда зацикливающийся алгоритм. Для упрощения предположим, что <tex>p_\infty \in A</tex>. В противном случае доказательство аналогично. | |
− | Рассмотрим также произвольное перечислимое неразрешимое множество <tex>X</tex>. Пусть <tex>p_X(n)</tex> | + | Рассмотрим <tex>p_a</tex> {{---}} программу, такую что <tex>a \in \overline A</tex> (такое <tex>a</tex> существует, т.к. А - нетривиально). Рассмотрим также произвольное перечислимое неразрешимое множество <tex>X</tex>. Пусть <tex>p_X(n)</tex> - полуразрешитель <tex>X</tex>. |
Зафиксируем произвольное <tex>n \in \mathbb{N}</tex> и построим следующую функцию | Зафиксируем произвольное <tex>n \in \mathbb{N}</tex> и построим следующую функцию | ||
− | <tex> | + | <tex>Vn(x) = \begin{cases} |
− | + | a(x), n \in X; \\ | |
− | p_\infty(x), n \notin X \\ | + | p_\infty(x), n \notin X; \\ |
\end{cases} </tex> | \end{cases} </tex> | ||
<code> | <code> | ||
'''function''' <tex>V_n</tex>(x): | '''function''' <tex>V_n</tex>(x): | ||
− | '''if''' <tex>p_X</tex>(n) | + | '''if''' <tex>p_X</tex>(n) |
− | '''return''' <tex> | + | '''return''' <tex>p_a</tex>(x) |
'''while''' ''true'' | '''while''' ''true'' | ||
</code> | </code> | ||
− | Получили, что если <tex>n \in X</tex>, то <tex> | + | Получили, что если <tex>n \in X</tex>, то <tex>Vn(x) \in L(\overline S)</tex>, а если <tex>n \notin X</tex>, то <tex>Vn(x) \in L(S)</tex>. Таким образом, <tex>n \in X \iff V_n(x) \in L(\overline S)</tex>. |
− | Так как <tex>\overline | + | Так как <tex>\overline S</tex> - разрешимо, то можно проверить для любого <tex>a</tex>, лежит ли оно в <tex>\overline{S}</tex>. Но это тоже самое, что и проверка <tex>n \in X</tex>. Тогда можно для каждого <tex>n</tex> проверить лежит ли оно в <tex>X</tex>, а следовательно и построить разрешитель для <tex>X</tex>. Так как <tex>X</tex> - неразрешимо, получили противоречие. |
− | |||
− | + | }} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== См. также == | == См. также == | ||
Строка 106: | Строка 70: | ||
== Источники информации == | == Источники информации == | ||
* [https://en.wikipedia.org/wiki/Rice%27s_theorem Wikipedia — Rice's theorem] | * [https://en.wikipedia.org/wiki/Rice%27s_theorem Wikipedia — Rice's theorem] | ||
− | * Rice, H. G. | + | * Rice, H. G. "Classes of Recursively Enumerable Sets and Their Decision Problems." Trans. Amer. Math. Soc. 74, 358-366, 1953. |
− | * Хопкрофт Д., Мотванн Р., Ульманн Д. | + | * Хопкрофт Д., Мотванн Р., Ульманн Д. Введение в теорию автоматов, языков и вычислений страница 397. |
+ | [[Категория: Теория вычислимости]] | ||
[[Категория: Теория формальных языков]] | [[Категория: Теория формальных языков]] | ||
− | |||
− |