1632
правки
Изменения
м
== {{Определение образца =|definition='''Образцом''' (англ. ''pattern'') называется конечное множество слов, объединённое [[Свойства_перечислимых_языков._Теорема_Успенского-Райса|свойством]].}}
Пусть '''Язык <tex>\gamma=\{L</tex> удовлетворяет свойству <x_1,y_1tex>,A<x_2,y_2/tex>''',...,если <x_n,y_ntex>L \}in A</tex>.<br />Тогда ( этот язык содержится в <tex>\gammaA</tex> называется образцом).
== Свойство образца ==
Пусть '''Язык <tex>A_{\gamma}=\{p | p(x_1)=y_1 \wedge p(x_2)=y_2 \wedge ... \wedge p(x_n)=y_n\}L</tex>, где удовлетворяет образцу <tex><x_i, y_i> \in \gammaX</tex>.<br />Тогда ''', если <tex>A_{\gamma}L</tex> называется свойством образца содержит все элементы <tex>\gammaX</tex>.
== Лемма о перечислимости свойства образца == {{ЛеммаОпределение|statement definition=Свойство '''Язык <tex>A_{\gamma}L</tex> перечислимо для любого образца удовлетворяет множеству образцов <tex>\gammaGamma</tex>.|proof =Очевидно, как строится программа, которая возвращает 1''', если <tex>p \in A_{\gamma}</tex> (запускаем <tex>pL</tex> на удовлетворяет хотя бы одному образцу <tex>xX \in \Gamma</tex>-ах и проверяем, что программа вернёт соответствующие <tex>y</tex>-ки).Такой программы достаточно для доказательства перечислимости.
== Лемма о перечислимости свойства перечислимого множества образцов ==
== Теорема Райса-Шапиро ==Разрешим множество <tex>K</tex>с помощью этой функции. Для проверяемого элемента <tex>y</tex> подготовим программу <tex>g</tex>:
{{Теорема|statement = <tex>g(x):</tex>Свойство функций '''if''' <tex>Ax \in H</tex> перечислимо тогда и только тогда, когда '''return''' <tex>y \exists \Gamma: A = A_{\Gamma}in K</tex>, где '''if''' <tex>x \Gammain G</tex> - перечислимое множество образцов.|proof = '''return''' <tex>y \Leftarrownotin K</tex>
:Очевидно После этого запустим параллельно проверки <tex>y \in K</tex> и <tex>L(перебор по TLg)\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> не является разрешимым множеством, получено противоречие.}}
Рассмотрим перечислимое После этого параллельно запустим проверки <tex>y \in K</tex> и неразрешимое <tex>L(g) \in A</tex>. Аналогично, данная процедура разрешает множество <tex>K</tex> и следующую программу:. Но <tex>K</tex> не является разрешимым, получено противоречие.}}
<tex>V(n, x) =
\begin{cases}
h(x)\text{, if $n \in K$;}\\
g(x)\text{, else.}
\end{cases}</tex>
<tex>V</tex> '''Теорема Райса- вычислимая (можно параллельно запустить <tex>g(x)</tex> и проверкуШапиро''' позволяет дать простое описание перечислимым свойствам языков. Заметим, принадлежит ли <tex>n</tex> множеству <tex>K</tex> (просто перечисляя это множество); если <tex>g(x)</tex> успешно выполнитсячто вычислимо работать с произвольными языками возможности нет, то вернуть её результат)поэтому далее неявно подразумевается, что все рассматриваемые языки являются [[Перечислимые языки|перечислимыми]].
Пусть <tex>p(x)=V(nЗаметим, x)</tex>что образцы являются конструктивными объектами, следовательно, можно говорить о разрешимых и перечислимых множествах образцов.
Тогда программа, которая запускает параллельно проверку, принадлежит ли <tex>n</tex> множеству <tex>K</tex> (просто перечисляя это множество), и проверку, принадлежит ли <tex>p</tex> множеству {{Теорема|about=Райса-Шапиро|statement=Свойство языков <tex>A</tex>, является разрешающей программой для множества перечислимо <tex>K</tex> (так как если <tex>p \iff \exists\Gamma : L \in A</tex>, то <tex>n \notin K</tex> по построению <tex>V(n, x)</tex>)iff L \subseteq \Gamma.Противоречие, так как брали неразрешимое <tex>K</tex>.
{{Лемма|statement =Если : Доказательство в одну сторону тривиально: пусть <tex>A\Gamma</tex> - — перечислимое свойство функций, множество образцов. Будем обозначать за <tex>g \in AGamma_i</tex> образец с номером <tex>i</tex>, то а за <tex>\exists hGamma_{ij}</tex>, такое что — элемент с номером <tex>|Dom(h)| < +\inftyj</tex>, образца с номером <tex>gi</tex> - продолжение . Далее приведён код полуразрешителя <tex>hA</tex>, который принимает на вход код полуразрешителя <tex>h \in AL</tex>.|proof =Рассмотрим перечислимое и неразрешимое множество возвращает значение <tex>KL \in A</tex> и следующую программу:.
где условие <tex>(1)\Rightarrow</tex> следующее: через Для доказательства в другую сторону будем использовать две леммы, приведённые выше. Полуразрешитель для множества образцов, удовлетворяющих <tex>x\Gamma</tex> шагов перечисления строится следующим образом: для каждого образца <tex>K\gamma</tex> число строится текст программы f<tex>n{}_\gamma</tex> не появилось.(x): Если '''return''' x <tex>n {} \in \notin Kgamma</tex>, то :Текст программы передаётся полуразрешителю <tex>V(n, x) = g(x)A</tex>.
Если :Докажем, что данное построение корректно. Обозначим множество образцов, принимаемое построенным выше полурарешителем <tex>n \Gamma</tex>. Пусть существует <tex>\gamma \in K\Gamma</tex>такой, то что <tex>L</tex> удовлетворяет <tex>\gamma</tex>. По определению <tex>V(n\Gamma</tex>, x) = g(x)язык <tex>\gamma</tex> удовлетворяет свойству <tex>A</tex> при . Язык <tex>x = 0\ldots t-1L</tex> удовлетворяет свойству <tex>A</tex> для какого-то по первой лемме как надмножество <tex>t\gamma</tex>.
Запустим параллельно проверку:Пусть <tex>L \in A</tex>. Тогда по второй лемме найдётся образец <tex>\gamma</tex>, принадлежит ли который является подмножеством <tex>nL</tex> множеству и удовлетворяет свойству <tex>KA</tex> и проверку. Следовательно, принадлежит ли этот образец лежит в множестве <tex>V(n, x)\Gamma</tex> множетсву и язык <tex>A</tex>удовлетворяет множеству образцов <tex>\Gamma</tex>, что и требовалось доказать.
<продолжение доказательства леммы>}}== См. также==
<продолжение доказательства теоремы>== Источники информации ==* ''Верещагин Н. К., Шень A.'' Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции. {{---}} М.: МЦНМО, 1999. С. 134. ISBN 5-900916-36-7* ''Хопкрофт Д., Мотвани Р., Ульман Д.'' Введение в теорию автоматов, языков и вычислений, 2-е изд. : Пер. с англ. {{---}} М.: Издательский дом «Вильямс», 2008. {{---}} С. 528 {{---}} ISBN 978-5-8459-1347-0 (рус.)
}}[[Категория: Теория формальных языков]][[Категория: Теория вычислимости]][[Категория: Примеры неразрешимых задач]]
rollbackEdits.php mass rollback
{{Определение
|definition=
}}
{{Определение
|definition=
}}
}}
{{Лемма
|statement =Пусть <tex>\GammaA</tex> - — перечислимое множество образцовсвойство языков, <tex>A_{\Gamma} = \bigcup\limits_{\gamma G \in \Gamma}{A_{\gamma}}A</tex>.Тогда верно следствие: <tex>A_{G \subset H \Rightarrow H \Gamma}in A</tex> - перечислимо.|proof =Приведём программу, выдающую 1, если Строим доказательство от противного. Пусть <tex>p G \in A_{\Gamma}A</tex>: , <tex>q(p):G \subset H</tex> for , <tex>k = 1..+H \inftynotin A</tex> for , <tex>\gamma \in \Gamma[1..k]K</tex>— перечислимое неразрешимое множество. Построим следующую вычислимую функцию: if <tex>f(p x, y) = \begin{cases}x \in A_{H & y \in K\\x \in G & y \notin K\gamma})|_end{TL(k)cases}</tex> return 1Такой программы достаточно для доказательства перечислимости.}}
Вычисляется эта функция следующим образом: параллельно запускаем проверки <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>.
{{Лемма|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) = false</tex>, если за <tex>x</tex> шагов перечисления <tex>K</tex> появилось слово <tex>y</tex>.* <tex>f(x, y) = x \in G</tex> иначе.Заметим, что если <tex>y \Rightarrowin K</tex>, то <tex>f(x, y)</tex> распознаёт некоторое конечное подмножество <tex>G</tex> и всё множество <tex>G</tex> иначе. Эта функция тривиальным образом разрешима, построим с её помощью разрешитель <tex>K</tex>. Аналогично доказательству первой леммы, подготовим программу <tex>g</tex>:
g(x):Здесь нам потребуются две вспомогательные леммы.:{{Лемма|statement =Пусть <tex>A</tex> - перечислимое свойство функций, <tex>g \in A</tex>, <tex>h</tex> - продолжение <tex>g</tex>.Тогда <tex>h \in A</tex>.|proof =Докажем от противного.Пусть <tex>g \in A</tex>, <tex>h</tex> - продолжение <tex>g</tex> '''return''' f(x, <tex>h \notin A</tex>.y)
}}
<tex>\Leftarrow</tex>
A(L): '''for''' t = 1 '''to''' <tex>\infty</tex>V(n, x) '''for''' i = 1 '''to''' t \begin{cases} ok <tex>=</tex> ''true'' g(x)\text{, if ( '''for''' j = 1);}\'''to''' <tex>|\Gamma_i|</tex> '''if''' <tex>\perplnot L|_t (\textGamma_{, else;ij})</tex> \end{cases} ok <tex>=</tex>''false'' '''if''' ok '''return''' ''true''
* [[m-сводимость]]
* [[Примеры_неразрешимых_задач:_проблема_соответствий_Поста | Проблема соответствий Поста]]
* [[Неразрешимость исчисления предикатов первого порядка]]