Теорема Райса-Шапиро — различия между версиями
Tsar (обсуждение | вклад) м (→Теорема Райса-Шапиро: Мешающие читать ненужные в контексте аргументы функций) |
Tsar (обсуждение | вклад) (→Теорема Райса-Шапиро: Осознал и дописал доказательство леммы 2 внутри теоремы Р-Ш. Многократное спасибо Филиппу за помощь в понимании) |
||
| Строка 77: | Строка 77: | ||
Пусть <tex>p(x)=V(n, x)</tex>. | Пусть <tex>p(x)=V(n, x)</tex>. | ||
| − | Тогда программа, которая запускает параллельно проверку (1), принадлежит ли <tex>n</tex> множеству <tex>K</tex> (просто перечисляя это множество) | + | Тогда программа, которая запускает параллельно проверку (1), принадлежит ли <tex>n</tex> множеству <tex>K</tex> (просто перечисляя это множество) и проверку (2), принадлежит ли <tex>p</tex> множеству <tex>A</tex>, является разрешающей программой для множества <tex>K</tex>, потому что: |
* если <tex>n \in K</tex>, то проверка (1) завершится, а проверка (2) зависнет (так как <tex>p</tex> ведёт себя как <tex>h</tex>, которая не содержится в <tex>A</tex>); пусть в этом случае разрешающая программа для <tex>K</tex> возвращает 1; | * если <tex>n \in K</tex>, то проверка (1) завершится, а проверка (2) зависнет (так как <tex>p</tex> ведёт себя как <tex>h</tex>, которая не содержится в <tex>A</tex>); пусть в этом случае разрешающая программа для <tex>K</tex> возвращает 1; | ||
| − | * если <tex>n \notin K</tex>, то проверка (1) зависнет, а проверка (2) завершится (так как <tex>p</tex> ведёт себя как <tex>g</tex>, которая содержится в <tex>A</tex>); пусть в этом случае разрешающая программа возвращает 0. | + | * если <tex>n \notin K</tex>, то проверка (1) зависнет, а проверка (2) завершится (так как <tex>p</tex> ведёт себя как <tex>g</tex>, которая содержится в <tex>A</tex>); пусть в этом случае разрешающая программа для <tex>K</tex> возвращает 0. |
Противоречие, так как брали неразрешимое <tex>K</tex>. | Противоречие, так как брали неразрешимое <tex>K</tex>. | ||
| Строка 89: | Строка 89: | ||
Если <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>. | Если <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 = | |proof = | ||
| + | Докажем от противного. | ||
| + | Пусть <tex>\not\exists h</tex>, удоволетворяющая условию леммы. | ||
| + | |||
Рассмотрим перечислимое и неразрешимое множество <tex>K</tex> и следующую программу: | Рассмотрим перечислимое и неразрешимое множество <tex>K</tex> и следующую программу: | ||
| Строка 99: | Строка 102: | ||
где условие <tex>(1)</tex> следующее: через <tex>x</tex> шагов перечисления <tex>K</tex> число <tex>n</tex> не появилось. | где условие <tex>(1)</tex> следующее: через <tex>x</tex> шагов перечисления <tex>K</tex> число <tex>n</tex> не появилось. | ||
| − | + | Тогда программа, которая запускает параллельно проверку (1), принадлежит ли <tex>n</tex> множеству <tex>K</tex> (просто перечисляя это множество) и проверку (2), принадлежит ли <tex>V(n, x)</tex> множеству <tex>A</tex>, является разрешающей программой для множества <tex>K</tex>, потому что: | |
| + | * если <tex>n \notin K</tex>, то <tex>V(n, x) \equiv g(x)</tex> для <tex>\forall n</tex>, поэтому проверка (2) завершится. Проверка (1) зависнет. Пусть в этом случае разрешающая программа для <tex>K</tex> возвращает 0; | ||
| + | * если <tex>n \in K</tex>, то завершится проверка (1). Также, в этом случае <tex>|Dom(V(n, x))| < +\infty</tex>, так как <tex>V(n, x) = g(x)</tex> при <tex>x = 0\ldots t-1</tex> для какого-то <tex>t</tex>. <tex>g</tex> является продолжением <tex>V(n, x)</tex>. По предположению от противного <tex>V(n, x) \notin A</tex> <tex>\Rightarrow</tex> проверка (2) зависнет. Пусть в этом случае разрешающая программа для <tex>K</tex> возвращает 1. | ||
| − | + | Противоречие, так как брали неразрешимое <tex>K</tex>. | |
| − | |||
| − | |||
| − | |||
| − | |||
}} | }} | ||
| Строка 123: | Строка 124: | ||
Такие функции перечислимы. Значит такие функции, удоволетворяющие <tex>A</tex>, тоже перечислимы. | Такие функции перечислимы. Значит такие функции, удоволетворяющие <tex>A</tex>, тоже перечислимы. | ||
| − | <tex>A_{\Gamma} \ | + | <tex>A_{\Gamma} \subseteq A</tex> по первой вспомогательной лемме. |
| − | <tex>A \ | + | <tex>A \subseteq A_{\Gamma}</tex> по второй вспомогательной лемме. |
Значит <tex>A = A_{\Gamma}</tex>. Теорема доказана. | Значит <tex>A = A_{\Gamma}</tex>. Теорема доказана. | ||
}} | }} | ||
Версия 21:37, 17 января 2012
Содержание
Определение образца
| Определение: |
| Пусть . Тогда называется образцом. |
Свойство образца
| Определение: |
| Пусть , где . Тогда называется свойством образца . |
Лемма о перечислимости свойства образца
| Лемма: |
Свойство перечислимо для любого образца . |
| Доказательство: |
|
Очевидно, как строится программа, которая возвращает 1, если (запускаем на -ах и проверяем, что программа вернёт соответствующие -ки). Такой программы достаточно для доказательства перечислимости. |
Лемма о перечислимости свойства перечислимого множества образцов
| Лемма: |
Пусть - перечислимое множество образцов, .
Тогда - перечислимо. |
| Доказательство: |
|
Приведём программу, выдающую 1, если : for for if return 1Такой программы достаточно для доказательства перечислимости. |
Теорема Райса-Шапиро
| Теорема: | ||||||||||||
Свойство функций перечислимо тогда и только тогда, когда , где - перечислимое множество образцов. | ||||||||||||
| Доказательство: | ||||||||||||
|
Очевидно (перебор по TL).
Здесь нам потребуются две вспомогательные леммы.
Функции с конечной областью определения записываются так: if return if return Такие функции перечислимы. Значит такие функции, удоволетворяющие , тоже перечислимы. по первой вспомогательной лемме. по второй вспомогательной лемме. Значит . Теорема доказана. | ||||||||||||