Изменения

Перейти к: навигация, поиск

Теорема Райса-Шапиро

7021 байт добавлено, 19:31, 4 сентября 2022
м
rollbackEdits.php mass rollback
== {{Определение образца =|definition='''Образцом''' (англ. ''pattern'') называется конечное множество слов, объединённое [[Свойства_перечислимых_языков._Теорема_Успенского-Райса|свойством]].}}
{{Определение
|definition=
Пусть '''Язык <tex>\gamma=\{L</tex> удовлетворяет свойству <x_1,y_1tex>,A<x_2,y_2/tex>''',...,если <x_n,y_ntex>L \}in A</tex>.Тогда ( этот язык содержится в <tex>\gammaA</tex> называется образцом).
}}
== Свойство образца ==
 
{{Определение
|definition=
Пусть '''Язык <tex>A_L</tex> удовлетворяет образцу <tex>X</tex>''', если <tex>L</tex> содержит все элементы <tex>X</tex>.}}{\gamma}=\{p Определение| p(x_1)definition=y_1 \wedge p(x_2)=y_2 \wedge ... \wedge p(x_n)=y_n'''Язык <tex>L</tex> удовлетворяет множеству образцов <tex>\}Gamma</tex>.Тогда ''', если <tex>A_{\gamma}L</tex> называется свойством образца удовлетворяет хотя бы одному образцу <tex>X \in \gammaGamma</tex>.
}}
== Лемма о перечислимости свойства образца ==
{{Лемма
|statement =Свойство Пусть <tex>A_{A</tex> — перечислимое свойство языков, <tex>G \gamma}in A</tex> перечислимо для любого образца . Тогда верно следствие: <tex>G \subset H \Rightarrow H \gammain A</tex>.|proof =ОчевидноСтроим доказательство от противного. Пусть <tex>G \in A</tex>, <tex>G \subset H</tex>, <tex>H \notin A</tex>, <tex>K</tex> — перечислимое неразрешимое множество. Построим следующую вычислимую функцию:<tex>f(x, y) = \begin{cases}x \in H & y \in K\\x \in G & y \notin K\end{cases}</tex> Вычисляется эта функция следующим образом: параллельно запускаем проверки <tex>x \in G</tex> и <tex>y \in K</tex>. Если <tex>x \in G</tex>, то <tex>x \in H</tex>, следовательно, функция возвращает единицу вне зависимости от <tex>y</tex>. Если <tex>y \in K</tex>, то запускаем проверку <tex>x \in H</tex>. Разрешим множество <tex>K</tex>с помощью этой функции. Для проверяемого элемента <tex>y</tex> подготовим программу <tex>g</tex>:  <tex>g(x):</tex> '''if''' <tex>x \in H</tex> '''return''' <tex>y \in K</tex> '''if''' <tex>x \in G</tex> '''return''' <tex>y \notin K</tex> После этого запустим параллельно проверки <tex>y \in K</tex> и <tex>L(g) \in A</tex>. Если <tex>y \in K</tex>, то первая проверка завершится. Иначе функция <tex>g</tex> задаёт язык <tex>G</tex>, который обладает свойством <tex>A</tex>, следовательно, вторая проверка завершится, сигнализируя о том, что <tex>y \notin K</tex>. Но <tex>K</tex> не является разрешимым множеством, получено противоречие.
}}
== Лемма о перечеслимости свойства перечислимого множества образцов ==
{{Лемма
|statement =Пусть <tex>\GammaA</tex> - перечислимое множество образцовсвойство, <tex>A_{\Gamma} = \bigcup\limits_{\gamma G \in \Gamma}{A_{\gamma}}A</tex>.Тогда существует конечное множество <tex>A_{H \Gamma}in A</tex>, которое является подмножеством <tex>G</tex> - перечислимо.|proof =Приведём программуСтроим доказательство от противного. Пусть <tex>G \in A</tex>, выдающую 1и любое конечное подмножество <tex>G</tex> не удовлетворяет свойству <tex>A</tex>, если <tex>p \in A_{\Gamma}K</tex>— перечислимое неразрешимое множество. Определим следующую функцию: * <tex>qf(px, y):= false</tex>, если за <tex>x</tex> шагов перечисления <tex>K</tex> появилось слово <tex>y</tex>. for * <tex>k f(x, y) = 1..+x \inftyin G</tex>иначе. for Заметим, что если <tex>\gamma y \in \Gamma[1K</tex>, то <tex>f(x, y)</tex> распознаёт некоторое конечное подмножество <tex>G</tex> и всё множество <tex>G</tex> иначе.Эта функция тривиальным образом разрешима, построим с её помощью разрешитель <tex>K</tex>.k]Аналогично доказательству первой леммы, подготовим программу <tex>g</tex>:  g(x): '''return''' f(x, y)  if После этого параллельно запустим проверки <tex>(p y \in A_{\gamma})|_{TLK</tex> и <tex>L(kg)}\in A</tex> return 1Этого достаточно для доказательства перечислимости. Аналогично, данная процедура разрешает множество <tex>K</tex>. Но <tex>K</tex> не является разрешимым, получено противоречие.
}}
== '''Теорема Райса-Шапиро ==''' позволяет дать простое описание перечислимым свойствам языков. Заметим, что вычислимо работать с произвольными языками возможности нет, поэтому далее неявно подразумевается, что все рассматриваемые языки являются [[Перечислимые языки|перечислимыми]]. Заметим, что образцы являются конструктивными объектами, следовательно, можно говорить о разрешимых и перечислимых множествах образцов.
{{Теорема
|about=Райса-Шапиро|statement =Свойство функций языков <tex>A</tex> перечислимо тогда и только тогда, когда <tex>\iff \exists \Gamma: L \in A = A_{\Gamma}</tex>, где <tex>iff L \subseteq \Gamma.</tex> - перечислимое множество образцов.|proof =}} 
<tex>\Leftarrow</tex>
:Очевидно (перебор по TL)Доказательство в одну сторону тривиально: пусть <tex>\Gamma</tex> — перечислимое множество образцов. Будем обозначать за <tex>\Gamma_i</tex> образец с номером <tex>i</tex>, а за <tex>\Gamma_{ij}</tex> — элемент с номером <tex>j</tex> образца с номером <tex>i</tex>. Далее приведён код полуразрешителя <tex>A</tex>, который принимает на вход код полуразрешителя <tex>L</tex> и возвращает значение <tex>L \in A</tex>.
A(L):
'''for''' t = 1 '''to''' <tex>\infty</tex>
'''for''' i = 1 '''to''' t
ok <tex>=</tex> ''true''
'''for''' j = 1 '''to''' <tex>|\Gamma_i|</tex>
'''if''' <tex>\lnot L|_t (\Gamma_{ij})</tex>
ok <tex>=</tex> ''false''
'''if''' ok
'''return''' ''true''
<tex>\Rightarrow</tex>
:Для доказательства в другую сторону будем использовать две леммы, приведённые выше. Полуразрешитель для множества образцов, удовлетворяющих <tex>\Gamma</tex> строится следующим образом: для каждого образца <tex>\gamma</tex> строится текст программы
f<tex>{}_\gamma</tex>(x):
'''return''' x <tex>{} \in \gamma</tex>
:Текст программы передаётся полуразрешителю <tex>A</tex>.
:Здесь нам потребуются две вспомогательные леммыДокажем, что данное построение корректно.:{{Лемма|statement =Пусть Обозначим множество образцов, принимаемое построенным выше полурарешителем <tex>A\Gamma</tex> - перечислимое свойство функций, . Пусть существует <tex>g \gamma \in A\Gamma</tex>такой, что <tex>hL</tex> - продолжение удовлетворяет <tex>g\gamma</tex>.Тогда По определению <tex>\Gamma</tex>, язык <tex>h \in gamma</tex> удовлетворяет свойству <tex>A</tex>.|proof =Язык <доказательствоtex>}}L</tex> удовлетворяет свойству <tex>A</tex> по первой лемме как надмножество <tex>\gamma</tex>.
:Пусть <tex>L \in A</tex>. Тогда по второй лемме найдётся образец <tex>\gamma</tex>, который является подмножеством <tex>L</tex> и удовлетворяет свойству <tex>A</tex>. Следовательно, этот образец лежит в множестве <tex>\Gamma</tex> и язык <tex>A</tex> удовлетворяет множеству образцов <tex>\Gamma</tex>, что и требовалось доказать.
{{Лемма|statement =Если <tex>A</tex> - перечислимое свойство функций, <tex>g \in A</tex>, то <tex>\exists h</tex>, такое что <tex>|Dom(h)| < +\infty</tex>, <tex>g</tex> - продолжение <tex>h</tex>, <tex>h \in A</tex>= См.|proof также==<доказательство>}}
* [[m-сводимость]]
* [[Примеры_неразрешимых_задач:_проблема_соответствий_Поста | Проблема соответствий Поста]]
* [[Неразрешимость исчисления предикатов первого порядка]]
<продолжение доказательства теоремы>== Источники информации ==* ''Верещагин Н. К., Шень A.'' Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции. {{---}} М.: МЦНМО, 1999. С. 134. ISBN 5-900916-36-7* ''Хопкрофт Д., Мотвани Р., Ульман Д.'' Введение в теорию автоматов, языков и вычислений, 2-е изд. : Пер. с англ. {{---}} М.: Издательский дом «Вильямс», 2008. {{---}} С. 528 {{---}} ISBN 978-5-8459-1347-0 (рус.)
}}[[Категория: Теория формальных языков]][[Категория: Теория вычислимости]][[Категория: Примеры неразрешимых задач]]
1632
правки

Навигация