Свойства перечислимых языков. Теорема Успенского-Райса — различия между версиями
(→Теорема Успенского-Райса) |
(→Теорема Успенского-Райса) |
||
Строка 38: | Строка 38: | ||
Предположим, что <tex>A</tex> разрешимо и нетривиально, <tex>p_A</tex> {{---}} программа, разрешающая <tex>A</tex>. | Предположим, что <tex>A</tex> разрешимо и нетривиально, <tex>p_A</tex> {{---}} программа, разрешающая <tex>A</tex>. | ||
− | Не умаляя общности, можно считать, что <tex>\varnothing \notin A</tex> (в противном случае перейдём к <tex> \mathrm {RE} \setminus A</tex>, которое также будет разрешимым и нетривиальным, так как <tex> \mathrm {RE} \setminus A</tex> != <tex>\varnothing </tex> и <tex> \mathrm {RE} \setminus A</tex> != <tex>\mathrm {RE} ) </tex>. Исключение пустого множества нам нужно чтобы различать <tex> X</tex> и пустое (при построении функции <tex>L(g_{i,x}</tex>). | + | Не умаляя общности, можно считать, что <tex>\varnothing \notin A</tex> (в противном случае перейдём к <tex> \mathrm {RE} \setminus A</tex>, которое также будет разрешимым и нетривиальным, так как <tex> \mathrm {RE} \setminus A</tex> != <tex>\varnothing </tex> и <tex> \mathrm {RE} \setminus A</tex> != <tex>\mathrm {RE} ) </tex>. Исключение пустого множества нам нужно чтобы различать <tex> X</tex> и пустое (при построении функции <tex>L(g_{i,x})</tex>). |
Поскольку <tex>A</tex> непусто, то найдётся перечислимый язык <tex>X \in A</tex>. Пусть <tex>p_X</tex> {{---}} полуразрешитель <tex>X</tex>. | Поскольку <tex>A</tex> непусто, то найдётся перечислимый язык <tex>X \in A</tex>. Пусть <tex>p_X</tex> {{---}} полуразрешитель <tex>X</tex>. |
Версия 12:24, 13 декабря 2014
Свойства языков
Рассмотрим множество всех перечислимых языков .
Определение: |
Свойством языков (англ. property of languages) называется множество | .
Пример.
Свойство языка, язык содержит слова hello.
Определение: |
Свойство называется тривиальным (англ. trivial), если | или .
Псевдокод для
p(A) return false
Псевдокод для
.p(A) return true
Определение: |
Язык свойства (англ. language of property) | — множество программ, языки которых обладают этим свойством: .
Пример. Пусть
— разрешитель некоторого языкаp() return ('hello')
Определение: |
Свойство разрешимым. | называется разрешимым (англ. recursive), если является
Теорема Успенского-Райса
Теорема: |
Язык никакого нетривиального свойства не является разрешимым. |
Доказательство: |
Приведём доказательство от противного. Предположим, что разрешимо и нетривиально, — программа, разрешающая .Не умаляя общности, можно считать, что (в противном случае перейдём к , которое также будет разрешимым и нетривиальным, так как != и != . Исключение пустого множества нам нужно чтобы различать и пустое (при построении функции ).Поскольку непусто, то найдётся перечислимый язык . Пусть — полуразрешитель .Рассмотрим вспомогательную программу: — универсальная функцияif U(i, x) == 1 //если i на входе x выдает 1 return else while true Нетрудно понять, что в разумной модели вычислений номер этой программы можно вычислить по данным и . Значит, можно рассмотреть такую программу:return Заметим, что Следовательно,— программа, разрешающая универсальное множество. Получили противоречие. |
Источники информации
- Wikipedia — Rice's theorem
- Rice, H. G. "Classes of Recursively Enumerable Sets and Their Decision Problems." Trans. Amer. Math. Soc. 74, 358-366, 1953.
- Хопкрофт Д., Мотванн Р., Ульманн Д. Введение в теорию автоматов, языков и вычислений страница 397.