Свойства перечислимых языков. Теорема Успенского-Райса — различия между версиями
 (→Свойства языков)  | 
				|||
| Строка 11: | Строка 11: | ||
|definition=Свойство называется '''тривиальным''' (англ. ''trivial''), если <tex> A = \varnothing </tex> или <tex> A = \mathrm {RE} </tex>.  | |definition=Свойство называется '''тривиальным''' (англ. ''trivial''), если <tex> A = \varnothing </tex> или <tex> A = \mathrm {RE} </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> является [[Разрешимые_(рекурсивные)_языки|разрешимым]].  | ||
| + | }}  | ||
| + | |||
| + | == Примеры ==  | ||
| + | Псевдокод перечислителя для языка свойства языка из первого примера :  | ||
| + |  <tex>p_A(p_X)</tex>  | ||
| + |    '''return''' <tex>p_X</tex>('hello')  | ||
| + | |||
Псевдокод для  разрешителя <tex>L(A)</tex>, где <tex>A = \mathrm {RE}: </tex>  | Псевдокод для  разрешителя <tex>L(A)</tex>, где <tex>A = \mathrm {RE}: </tex>  | ||
  <tex>p_A(p_X)</tex> <font color="green"> // <tex>p_X</tex> {{---}} перечислитель некоторого языка</font>  |   <tex>p_A(p_X)</tex> <font color="green"> // <tex>p_X</tex> {{---}} перечислитель некоторого языка</font>  | ||
| Строка 18: | Строка 30: | ||
  <tex>p_A(p_X)</tex>  |   <tex>p_A(p_X)</tex>  | ||
    '''return''' <tex>L(p_X) \in A</tex>  |     '''return''' <tex>L(p_X) \in A</tex>  | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
== Теорема Успенского-Райса ==  | == Теорема Успенского-Райса ==  | ||
Версия 21:06, 17 декабря 2014
Содержание
Свойства языков
Рассмотрим множество всех перечислимых языков .
| Определение: | 
| Свойством языков (англ. property of languages) называется множество . | 
Примеры свойств:
- Язык должен содержать слово hello.
 - Язык должен содержать хотя бы одно простое число.
 
| Определение: | 
| Свойство называется тривиальным (англ. trivial), если или . | 
| Определение: | 
| Язык свойства (англ. language of property) — множество программ, языки которых обладают этим свойством: . | 
| Определение: | 
| Свойство называется разрешимым (англ. recursive), если является разрешимым. | 
Примеры
Псевдокод перечислителя для языка свойства языка из первого примера :
return ('hello')
Псевдокод для разрешителя , где
// — перечислитель некоторого языка return true
Псевдокод для программы в общем случае, то есть для проверки того, что язык удовлетворяет свойству :
return
Теорема Успенского-Райса
| Теорема: | 
Язык никакого нетривиального свойства не является разрешимым.  | 
| Доказательство: | 
| 
 Приведём доказательство от противного. Предположим, что разрешимо и нетривиально, — программа, разрешающая . Не умаляя общности, можно считать, что (в противном случае перейдём к , которое также будет разрешимым и нетривиальным, так как и . Поскольку непусто, то найдётся перечислимый язык . Пусть — полуразрешитель . Рассмотрим вспомогательную программу: — универсальная функция Тогда для произвольных и можем написать такую программу. if == 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.