Свойства перечислимых языков. Теорема Успенского-Райса — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 1: Строка 1:
== Определения ==
+
= Определения =
  
Рассмотрим множество перечислимых языков <tex> RE </tex>.
+
Рассмотрим множество [[Перечислимые_языки|перечислимых]] языков <tex> RE </tex>.
 
{{Определение
 
{{Определение
 
|definition='''Свойством языков''' называется множество <tex> A \subset RE </tex>.
 
|definition='''Свойством языков''' называется множество <tex> A \subset RE </tex>.
Строка 12: Строка 12:
 
}}
 
}}
 
{{Определение
 
{{Определение
|definition=Свойство <tex> A </tex> называется '''разрешимым''', если <tex>L(A) </tex> является разрешимым (перечислимо).
+
|definition=Свойство <tex> A </tex> называется '''разрешимым''', если <tex>L(A) </tex> является [[Разрешимые_(рекурсивные)_языки|разрешимым]].
 
}}
 
}}
  
== Теорема ==
+
= Теорема Успенского-Райса=
 
{{Теорема
 
{{Теорема
 
|statement=
 
|statement=
 
Никакое нетривиальное свойство языков не является разрешимым.
 
Никакое нетривиальное свойство языков не является разрешимым.
 
|proof=
 
|proof=
От противного. Предположим, что <tex>A</tex> разрешимо и нетривиально, <tex>p_A</tex> - программа, разрешающая <tex>A</tex>.
+
Приведём доказательство от противного.
 +
 +
Предположим, что <tex>A</tex> разрешимо и нетривиально, <tex>p_A</tex> {{---}} программа, разрешающая <tex>A</tex>.
  
Не умаляя общности, можно считать, что <tex>\varnothing \notin A</tex> (в противном случае перейдем к <tex>RE \setminus A</tex>, которое также будет разрешимым и нетривиальным).  
+
Не умаляя общности, можно считать, что <tex>\varnothing \notin A</tex> (в противном случае перейдём к <tex>RE \setminus A</tex>, которое также будет разрешимым и нетривиальным).  
  
В то же время, поскольку <tex>A</tex> непусто, найдется перечислимый язык <tex>X \in A</tex>. Пусть <tex>p_X</tex> - полуразрешитель <tex>X</tex>.
+
Поскольку <tex>A</tex> непусто, то найдётся перечислимый язык <tex>X \in A</tex>. Пусть <tex>p_X</tex> {{---}} полуразрешитель <tex>X</tex>.
  
 
Рассмотрим вспомогательную программу:
 
Рассмотрим вспомогательную программу:
  <tex>g_{i,x}(y)</tex>
+
  <tex>g_{i,x}(y):</tex>
 
   if U(i, x) = 1
 
   if U(i, x) = 1
 
     return <tex>p_X(y)</tex>
 
     return <tex>p_X(y)</tex>
 
   else
 
   else
     зависнуть
+
     return <tex>\bot</tex>
  
 
Нетрудно понять, что в разумной модели вычислений номер этой программы можно вычислить по данным <tex>i,x</tex>. Значит, можно рассмотреть такую программу:
 
Нетрудно понять, что в разумной модели вычислений номер этой программы можно вычислить по данным <tex>i,x</tex>. Значит, можно рассмотреть такую программу:
Строка 40: Строка 42:
 
<tex>
 
<tex>
 
L(g_{i,x}) = \begin{cases}
 
L(g_{i,x}) = \begin{cases}
   X & U(i, x) = 1 \\
+
   X, & U(i, x) = 1 \\
   \varnothing & U(i, x) \neq 1 \\
+
   \varnothing, & U(i, x) \neq 1 \\
 
\end{cases}
 
\end{cases}
 
</tex>
 
</tex>
Строка 47: Строка 49:
 
Следовательно, <br/> <tex>  
 
Следовательно, <br/> <tex>  
 
US(\langle i, x \rangle ) = p_A(g_{i,x}) = \begin{cases}
 
US(\langle i, x \rangle ) = p_A(g_{i,x}) = \begin{cases}
   p_A(p_X) & U(i, x) = 1 \\
+
   p_A(p_X), & U(i, x) = 1 \\
   p_A(p_\varnothing ) & U(i, x) \neq 1 \\
+
   p_A(p_\varnothing ), & U(i, x) \neq 1 \\
 
\end{cases} = \begin{cases}
 
\end{cases} = \begin{cases}
   1 & U(i, x) = 1 \\
+
   1, & U(i, x) = 1 \\
   0 & U(i, x) \neq 1 \\
+
   0, & U(i, x) \neq 1 \\
 
\end{cases}
 
\end{cases}
</tex> - программа, разрешающая универсальное множество. Противоречие.
+
</tex> {{---}} программа, разрешающая универсальное множество. Получили противоречие.
 
}}
 
}}

Версия 10:53, 2 января 2012

Определения

Рассмотрим множество перечислимых языков [math] RE [/math].

Определение:
Свойством языков называется множество [math] A \subset RE [/math].


Определение:
Свойство называется тривиальным, если [math] A = \varnothing [/math] или [math] A = RE [/math].


Определение:
Язык свойства [math] A [/math] — множество программ, языки которых обладают этим свойством: [math]L(A) \overset{\underset{\mathrm{def}}{}}{=} \lbrace p | L(p) \in A \rbrace [/math].


Определение:
Свойство [math] A [/math] называется разрешимым, если [math]L(A) [/math] является разрешимым.


Теорема Успенского-Райса

Теорема:
Никакое нетривиальное свойство языков не является разрешимым.
Доказательство:
[math]\triangleright[/math]

Приведём доказательство от противного.

Предположим, что [math]A[/math] разрешимо и нетривиально, [math]p_A[/math] — программа, разрешающая [math]A[/math].

Не умаляя общности, можно считать, что [math]\varnothing \notin A[/math] (в противном случае перейдём к [math]RE \setminus A[/math], которое также будет разрешимым и нетривиальным).

Поскольку [math]A[/math] непусто, то найдётся перечислимый язык [math]X \in A[/math]. Пусть [math]p_X[/math] — полуразрешитель [math]X[/math].

Рассмотрим вспомогательную программу:

[math]g_{i,x}(y):[/math]
 if U(i, x) = 1
    return [math]p_X(y)[/math]
 else
    return [math]\bot[/math]

Нетрудно понять, что в разумной модели вычислений номер этой программы можно вычислить по данным [math]i,x[/math]. Значит, можно рассмотреть такую программу:

[math]US(\langle i, x \rangle )[/math]
    return [math]p_A ( g_{i,x} ) [/math]

Заметим, что [math] L(g_{i,x}) = \begin{cases} X, & U(i, x) = 1 \\ \varnothing, & U(i, x) \neq 1 \\ \end{cases} [/math]

Следовательно,
[math] US(\langle i, x \rangle ) = p_A(g_{i,x}) = \begin{cases} p_A(p_X), & U(i, x) = 1 \\ p_A(p_\varnothing ), & U(i, x) \neq 1 \\ \end{cases} = \begin{cases} 1, & U(i, x) = 1 \\ 0, & U(i, x) \neq 1 \\ \end{cases} [/math] — программа, разрешающая универсальное множество. Получили противоречие.
[math]\triangleleft[/math]