<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=84.39.244.23&amp;*</id>
		<title>Викиконспекты - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=84.39.244.23&amp;*"/>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/84.39.244.23"/>
		<updated>2026-04-23T08:37:54Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%A0%D0%B0%D0%B9%D1%81%D0%B0-%D0%A8%D0%B0%D0%BF%D0%B8%D1%80%D0%BE&amp;diff=74443</id>
		<title>Теорема Райса-Шапиро</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%A0%D0%B0%D0%B9%D1%81%D0%B0-%D0%A8%D0%B0%D0%BF%D0%B8%D1%80%D0%BE&amp;diff=74443"/>
				<updated>2020-06-09T11:54:12Z</updated>
		
		<summary type="html">&lt;p&gt;84.39.244.23: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
'''Образцом''' (англ. ''pattern'') называется конечное множество слов, объединённое [[Свойства_перечислимых_языков._Теорема_Успенского-Райса|свойством]].&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
'''Язык &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; удовлетворяет свойству &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;''', если &amp;lt;tex&amp;gt;L \in A&amp;lt;/tex&amp;gt; ( этот язык содержится в &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;).&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
'''Язык &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; удовлетворяет образцу &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt;''', если &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; содержит все элементы &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
'''Язык &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; удовлетворяет множеству образцов &amp;lt;tex&amp;gt;\Gamma&amp;lt;/tex&amp;gt;''', если &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; удовлетворяет хотя бы одному образцу &amp;lt;tex&amp;gt;X \in \Gamma&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|statement=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt; — перечислимое свойство языков, &amp;lt;tex&amp;gt;G \in A&amp;lt;/tex&amp;gt;. Тогда верно следствие: &amp;lt;tex&amp;gt;G \subset H \Rightarrow H \in A&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
Строим доказательство от противного. Пусть &amp;lt;tex&amp;gt;G \in A&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;G \subset H&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;H \notin A&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;K&amp;lt;/tex&amp;gt; — перечислимое неразрешимое множество. Построим следующую вычислимую функцию:&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x, y) = \begin{cases}&lt;br /&gt;
x \in H &amp;amp; y \in K\\&lt;br /&gt;
x \in G &amp;amp; y \notin K&lt;br /&gt;
\end{cases}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вычисляется эта функция следующим образом: параллельно запускаем проверки &amp;lt;tex&amp;gt;x \in G&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;y \in K&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;x \in G&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;x \in H&amp;lt;/tex&amp;gt;, следовательно, функция возвращает единицу вне зависимости от &amp;lt;tex&amp;gt;y&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;y \in K&amp;lt;/tex&amp;gt;, то запускаем проверку &amp;lt;tex&amp;gt;x \in H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Разрешим множество &amp;lt;tex&amp;gt;K&amp;lt;/tex&amp;gt;с помощью этой функции. Для проверяемого элемента &amp;lt;tex&amp;gt;y&amp;lt;/tex&amp;gt; подготовим программу &amp;lt;tex&amp;gt;g&amp;lt;/tex&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tex&amp;gt;g(x):&amp;lt;/tex&amp;gt;&lt;br /&gt;
    '''if''' &amp;lt;tex&amp;gt;x \in H&amp;lt;/tex&amp;gt;&lt;br /&gt;
      '''return''' &amp;lt;tex&amp;gt;y \in K&amp;lt;/tex&amp;gt;&lt;br /&gt;
    '''if''' &amp;lt;tex&amp;gt;x \in G&amp;lt;/tex&amp;gt;&lt;br /&gt;
      '''return''' &amp;lt;tex&amp;gt;y \notin K&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого запустим параллельно проверки &amp;lt;tex&amp;gt;y \in K&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;L(g) \in A&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;y \in K&amp;lt;/tex&amp;gt;, то первая проверка завершится. Иначе функция &amp;lt;tex&amp;gt;g&amp;lt;/tex&amp;gt; задаёт язык &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, который обладает свойством &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;, следовательно, вторая проверка завершится, сигнализируя о том, что &amp;lt;tex&amp;gt;y \notin K&amp;lt;/tex&amp;gt;. Но &amp;lt;tex&amp;gt;K&amp;lt;/tex&amp;gt; не является разрешимым множеством, получено противоречие.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|statement=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt; — перечислимое свойство, &amp;lt;tex&amp;gt;G \in A&amp;lt;/tex&amp;gt;. Тогда существует конечное множество &amp;lt;tex&amp;gt;H \in A&amp;lt;/tex&amp;gt;, которое является подмножеством &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
Строим доказательство от противного. Пусть &amp;lt;tex&amp;gt;G \in A&amp;lt;/tex&amp;gt;, и любое конечное подмножество &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; не удовлетворяет свойству &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;K&amp;lt;/tex&amp;gt; — перечислимое неразрешимое множество. Определим следующую функцию:&lt;br /&gt;
* &amp;lt;tex&amp;gt;f(x, y) = false&amp;lt;/tex&amp;gt;, если за &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; шагов перечисления &amp;lt;tex&amp;gt;K&amp;lt;/tex&amp;gt; появилось слово &amp;lt;tex&amp;gt;y&amp;lt;/tex&amp;gt;.&lt;br /&gt;
* &amp;lt;tex&amp;gt;f(x, y) = x \in G&amp;lt;/tex&amp;gt; иначе.&lt;br /&gt;
Заметим, что если &amp;lt;tex&amp;gt;y \in K&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;f(x, y)&amp;lt;/tex&amp;gt; распознаёт некоторое конечное подмножество &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и всё множество &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; иначе. Эта функция тривиальным образом разрешима, построим с её помощью разрешитель &amp;lt;tex&amp;gt;K&amp;lt;/tex&amp;gt;. Аналогично доказательству первой леммы, подготовим программу &amp;lt;tex&amp;gt;g&amp;lt;/tex&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
  g(x):&lt;br /&gt;
    '''return''' f(x, y)&lt;br /&gt;
&lt;br /&gt;
После этого параллельно запустим проверки &amp;lt;tex&amp;gt;y \in K&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;L(g) \in A&amp;lt;/tex&amp;gt;. Аналогично, данная процедура разрешает множество &amp;lt;tex&amp;gt;K&amp;lt;/tex&amp;gt;. Но &amp;lt;tex&amp;gt;K&amp;lt;/tex&amp;gt; не является разрешимым, получено противоречие.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Теорема Райса-Шапиро''' позволяет дать простое описание перечислимым свойствам языков. Заметим, что вычислимо работать с произвольными языками возможности нет, поэтому далее неявно подразумевается, что все рассматриваемые языки являются [[Перечислимые языки|перечислимыми]].&lt;br /&gt;
&lt;br /&gt;
Заметим, что образцы являются конструктивными объектами, следовательно, можно говорить о разрешимых и перечислимых множествах образцов.&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|about=&lt;br /&gt;
Райса-Шапиро&lt;br /&gt;
|statement=&lt;br /&gt;
Свойство языков &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt; перечислимо &amp;lt;tex&amp;gt;\iff \exists\Gamma : L \in A \iff L \subseteq \Gamma.&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\Leftarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: Доказательство в одну сторону тривиально: пусть &amp;lt;tex&amp;gt;\Gamma&amp;lt;/tex&amp;gt; — перечислимое множество образцов. Будем обозначать за &amp;lt;tex&amp;gt;\Gamma_i&amp;lt;/tex&amp;gt; образец с номером &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;, а за &amp;lt;tex&amp;gt;\Gamma_{ij}&amp;lt;/tex&amp;gt; — элемент с номером &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt; образца с номером &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;. Далее приведён код полуразрешителя &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;, который принимает на вход код полуразрешителя &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; и возвращает значение &amp;lt;tex&amp;gt;L \in A&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  A(L):&lt;br /&gt;
    '''for''' t = 1 '''to''' &amp;lt;tex&amp;gt;\infty&amp;lt;/tex&amp;gt;&lt;br /&gt;
      '''for''' i = 1 '''to''' t&lt;br /&gt;
        ok &amp;lt;tex&amp;gt;=&amp;lt;/tex&amp;gt; ''true''&lt;br /&gt;
      '''for''' j = 1 '''to''' &amp;lt;tex&amp;gt;|\Gamma_i|&amp;lt;/tex&amp;gt;&lt;br /&gt;
        '''if''' &amp;lt;tex&amp;gt;\lnot L|_t (\Gamma_{ij})&amp;lt;/tex&amp;gt;&lt;br /&gt;
          ok &amp;lt;tex&amp;gt;=&amp;lt;/tex&amp;gt; ''false''&lt;br /&gt;
        '''if''' ok&lt;br /&gt;
          '''return''' ''true''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\Rightarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
:Для доказательства в другую сторону будем использовать две леммы, приведённые выше. Полуразрешитель для множества образцов, удовлетворяющих &amp;lt;tex&amp;gt;\Gamma&amp;lt;/tex&amp;gt; строится следующим образом: для каждого образца &amp;lt;tex&amp;gt;\gamma&amp;lt;/tex&amp;gt; строится текст программы&lt;br /&gt;
  f&amp;lt;tex&amp;gt;{}_\gamma&amp;lt;/tex&amp;gt;(x):&lt;br /&gt;
    '''return''' x &amp;lt;tex&amp;gt;{} \in \gamma&amp;lt;/tex&amp;gt;&lt;br /&gt;
:Текст программы передаётся полуразрешителю &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:Докажем, что данное построение корректно. Обозначим множество образцов, принимаемое построенным выше полурарешителем &amp;lt;tex&amp;gt;\Gamma&amp;lt;/tex&amp;gt;. Пусть существует &amp;lt;tex&amp;gt;\gamma \in \Gamma&amp;lt;/tex&amp;gt; такой, что &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; удовлетворяет &amp;lt;tex&amp;gt;\gamma&amp;lt;/tex&amp;gt;. По определению &amp;lt;tex&amp;gt;\Gamma&amp;lt;/tex&amp;gt;, язык &amp;lt;tex&amp;gt;\gamma&amp;lt;/tex&amp;gt; удовлетворяет свойству &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;. Язык &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; удовлетворяет свойству &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt; по первой лемме как надмножество &amp;lt;tex&amp;gt;\gamma&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:Пусть &amp;lt;tex&amp;gt;L \in A&amp;lt;/tex&amp;gt;. Тогда по второй лемме найдётся образец &amp;lt;tex&amp;gt;\gamma&amp;lt;/tex&amp;gt;, который является подмножеством &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; и удовлетворяет свойству &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;. Следовательно, этот образец лежит в множестве &amp;lt;tex&amp;gt;\Gamma&amp;lt;/tex&amp;gt; и язык &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt; удовлетворяет множеству образцов &amp;lt;tex&amp;gt;\Gamma&amp;lt;/tex&amp;gt;, что и требовалось доказать.&lt;br /&gt;
&lt;br /&gt;
== См. также==&lt;br /&gt;
&lt;br /&gt;
* [[m-сводимость]]&lt;br /&gt;
* [[Примеры_неразрешимых_задач:_проблема_соответствий_Поста | Проблема соответствий Поста]]&lt;br /&gt;
* [[Неразрешимость исчисления предикатов первого порядка]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* ''Верещагин Н. К., Шень A.'' Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции. {{---}} М.: МЦНМО, 1999. С. 134. ISBN 5-900916-36-7&lt;br /&gt;
* ''Хопкрофт Д., Мотвани Р., Ульман Д.'' Введение в теорию автоматов, языков и вычислений, 2-е изд. : Пер. с англ. {{---}} М.: Издательский дом «Вильямс», 2008. {{---}} С. 528 {{---}} ISBN 978-5-8459-1347-0 (рус.)&lt;br /&gt;
&lt;br /&gt;
[[Категория: Теория формальных языков]]&lt;br /&gt;
[[Категория: Теория вычислимости]]&lt;br /&gt;
[[Категория: Примеры неразрешимых задач]]&lt;/div&gt;</summary>
		<author><name>84.39.244.23</name></author>	</entry>

	</feed>