Теорема Райса-Шапиро — различия между версиями
(доказательство леммы 2) |
|||
Строка 47: | Строка 47: | ||
}} | }} | ||
+ | {{Лемма | ||
+ | |statement= | ||
+ | Пусть <tex>A</tex> — перечислимое свойство, <tex>G \in A</tex>. Тогда существует конечное множество <tex>H \in A</tex>, которое является подмножеством <tex>G</tex>. | ||
+ | |proof= | ||
+ | Строим доказательство от противного. Пусть <tex>G \in A</tex>, и любое конечное подмножество <tex>G</tex> не удовлетворяет свойству <tex>A</tex>, <tex>K</tex> — перечислимое неразрешимое множество. Определим следующую функцию: | ||
+ | * <tex>f(x, y) = 0</tex>, если за <tex>x</tex> шагов перечисления <tex>K</tex> слово <tex>y</tex> не появилось. | ||
+ | * <tex>f(x, y) = x \in G</tex> иначе. | ||
+ | Заметим, что если <tex>y \in K</tex>, то <tex>f(x, y)</tex> распознаёт некоторое конечное подмножество <tex>G</tex> и всё множество <tex>G</tex> иначе. Эта функция тривиальным образом разрешима, построим с её помощью разрешитель <tex>K</tex>. Аналогично доказательству первой леммы, подготовим программу <tex>g</tex>: | ||
+ | |||
+ | g(x): | ||
+ | return f(x, y) | ||
+ | |||
+ | После этого параллельно запустим проверки <tex>y \in K</tex> и <tex>L(g) \in A</tex>. Аналогично, данная процедура разрешает множество <tex>K</tex>. Но <tex>K</tex> не является разрешимым, получено противоречие. | ||
+ | }} | ||
== Литература == | == Литература == | ||
* ''Верещагин Н. К., Шень A.'' Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции. {{---}} М.: МЦНМО, 1999. С. 134. ISBN 5-900916-36-7 | * ''Верещагин Н. К., Шень A.'' Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции. {{---}} М.: МЦНМО, 1999. С. 134. ISBN 5-900916-36-7 | ||
* ''Хопкрофт Д., Мотвани Р., Ульман Д.'' Введение в теорию автоматов, языков и вычислений, 2-е изд. : Пер. с англ. {{---}} М.: Издательский дом «Вильямс», 2008. {{---}} С. 528 {{---}} ISBN 978-5-8459-1347-0 (рус.) | * ''Хопкрофт Д., Мотвани Р., Ульман Д.'' Введение в теорию автоматов, языков и вычислений, 2-е изд. : Пер. с англ. {{---}} М.: Издательский дом «Вильямс», 2008. {{---}} С. 528 {{---}} ISBN 978-5-8459-1347-0 (рус.) |
Версия 19:01, 14 января 2013
Теорема Райса-Шапиро позволяет дать простое описание перечислимым свойствам языков.
Определение: |
Образцом называется конечное множество слов. |
Будем говорить, что язык удовлетворяет образцу
, если он содержит все слова . Также будем говорить, что язык удовлетворяет множеству образцов, если он удовлетворяет хотя бы одному образцу из этого множества.Заметим, что образцы являются конструктивными объектами, следовательно, можно говорить о разрешимых и перечислимых множествах образцов.
Теорема (Райса-Шапиро): |
Свойство языков перечислимо тогда и только тогда, когда существует перечислимое множество образцов , такое, что удовлетворяет тогда и только тогда, когда удовлетворяет . |
Доказательство в одну сторону тривиально: пусть
— перечислимое множество образцов. Будем обозначать за образец с номером , а за — элемент с номером образца с номером . Далее приведён код перечислителя , который принимает на вход код перечислителя и возвращает значение .A(L) for t = 1 tofor i = 1 to t ok true for j = 1 to if ok false if ok return true
Для доказательства в другую сторону понадобятся следующие леммы:
Лемма: |
Пусть — перечислимое свойство языков, . Тогда верно следствие: . |
Доказательство: |
Строим доказательство от противного. Пусть , , , — перечислимое неразрешимое множество. Построим следующую вычислимую функцию:Вычисляется эта функция следующим образом: параллельно запускаем проверки и . Если , то , следовательно, функция возвращает единицу вне зависимости от . Если , то запускаем проверку .С помощью этой функции можно разрешить множество следующим образом: для проверяемого элемента подготовим программу :g(x): return f(x, y)После этого запустим параллельно проверки и . Если , то первая проверка завершится. Иначе функция задаёт язык , который обладает свойством , следовательно, вторая проверка завершится, сигнализируя о том, что . Но не является разрешимым множеством, получено противоречие. |
Лемма: |
Пусть — перечислимое свойство, . Тогда существует конечное множество , которое является подмножеством . |
Доказательство: |
Строим доказательство от противного. Пусть , и любое конечное подмножество не удовлетворяет свойству , — перечислимое неразрешимое множество. Определим следующую функцию:
Заметим, что если , то распознаёт некоторое конечное подмножество и всё множество иначе. Эта функция тривиальным образом разрешима, построим с её помощью разрешитель . Аналогично доказательству первой леммы, подготовим программу :g(x): return f(x, y)После этого параллельно запустим проверки и . Аналогично, данная процедура разрешает множество . Но не является разрешимым, получено противоречие. |
Литература
- Верещагин Н. К., Шень A. Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции. — М.: МЦНМО, 1999. С. 134. ISBN 5-900916-36-7
- Хопкрофт Д., Мотвани Р., Ульман Д. Введение в теорию автоматов, языков и вычислений, 2-е изд. : Пер. с англ. — М.: Издательский дом «Вильямс», 2008. — С. 528 — ISBN 978-5-8459-1347-0 (рус.)