Диагональный метод — различия между версиями
м (rollbackEdits.php mass rollback) |
|||
| (не показаны 4 промежуточные версии 2 участников) | |||
| Строка 2: | Строка 2: | ||
|definition = Функция <tex>U : N \times N \rightarrow N \cup \lbrace \bot \rbrace</tex> называется '''универсальной (universal function)''' для класса [[Вычислимые функции|вычислимых функций]] одного аргумента, если <tex>\forall n \in N</tex> <tex>U_n(x) = U(n, x)</tex> является вычислимой функцией и <tex>\forall</tex> вычислимой функции <tex>f</tex> <tex>\exists n \in N : f(x) = U(n, x)</tex> | |definition = Функция <tex>U : N \times N \rightarrow N \cup \lbrace \bot \rbrace</tex> называется '''универсальной (universal function)''' для класса [[Вычислимые функции|вычислимых функций]] одного аргумента, если <tex>\forall n \in N</tex> <tex>U_n(x) = U(n, x)</tex> является вычислимой функцией и <tex>\forall</tex> вычислимой функции <tex>f</tex> <tex>\exists n \in N : f(x) = U(n, x)</tex> | ||
}} | }} | ||
| + | Менее формально, для универсальной функции должно выполняться следующее: "сечение" функции <tex> U_n </tex> является вычислимой функцией и все вычислимые функции одного аргумента встречаются среди <tex>U_n</tex> (отсюда универсальность). Универсальная функция нужна, например, для того, чтобы показать, что существует перечислимое неразрешимое множество (на самом деле это множество таких <tex> n </tex>, для которых <tex> U(n, n) </tex> определено). | ||
| + | |||
Аналогично определяется универсальная функция для класса всюду определенных вычислимых функций одного аргумента. | Аналогично определяется универсальная функция для класса всюду определенных вычислимых функций одного аргумента. | ||
{{Теорема | {{Теорема | ||
| Строка 11: | Строка 13: | ||
|proof = От противного. Пусть <tex>U(n, x)</tex> — всюду определенная вычислимая универсальная функция для класса всюду определенных вычислимых функций одного аргумента. Воспользуемся теперь диагональным методом. Рассмотрим всюду определенную вычислимую функцию одного аргумента <tex>d(x) = U(x, x) + 1</tex>. <tex>\exists n \in N : d(x) = U(n, x)</tex> в силу того, что <tex>U(n, x)</tex> — универсальная для соответствующего класса функций. Так как <tex>d(x)</tex> всюду определена, то она не зависает на аргументе <tex>n</tex>. Значит <tex>d(n) = U(n, n)</tex>, но в то же время <tex>d(n) = U(n, n) + 1</tex>. Противоречие. | |proof = От противного. Пусть <tex>U(n, x)</tex> — всюду определенная вычислимая универсальная функция для класса всюду определенных вычислимых функций одного аргумента. Воспользуемся теперь диагональным методом. Рассмотрим всюду определенную вычислимую функцию одного аргумента <tex>d(x) = U(x, x) + 1</tex>. <tex>\exists n \in N : d(x) = U(n, x)</tex> в силу того, что <tex>U(n, x)</tex> — универсальная для соответствующего класса функций. Так как <tex>d(x)</tex> всюду определена, то она не зависает на аргументе <tex>n</tex>. Значит <tex>d(n) = U(n, n)</tex>, но в то же время <tex>d(n) = U(n, n) + 1</tex>. Противоречие. | ||
}} | }} | ||
| − | Отметим, что функция <tex>u(n) = U(n, n)</tex> называется диагональной | + | Отметим, что функция <tex>u(n) = U(n, n)</tex> называется диагональной (отсюда и пошло название метода). |
== Литература == | == Литература == | ||
[http://www.mccme.ru/free-books/shen/shen-logic-part3-2.pdf ''Н. К. Верещагин, А. Шень.'' '''Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции.''' — М.: МЦНМО, 1999, с. 16] | [http://www.mccme.ru/free-books/shen/shen-logic-part3-2.pdf ''Н. К. Верещагин, А. Шень.'' '''Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции.''' — М.: МЦНМО, 1999, с. 16] | ||
''В. А. Успенский'' '''Лекции о вычислимых функциях''' — М.: ГИФМЛ, 1960, с. 203 | ''В. А. Успенский'' '''Лекции о вычислимых функциях''' — М.: ГИФМЛ, 1960, с. 203 | ||
| − | |||
| − | |||
| − | |||
Текущая версия на 19:19, 4 сентября 2022
| Определение: |
| Функция называется универсальной (universal function) для класса вычислимых функций одного аргумента, если является вычислимой функцией и вычислимой функции |
Менее формально, для универсальной функции должно выполняться следующее: "сечение" функции является вычислимой функцией и все вычислимые функции одного аргумента встречаются среди (отсюда универсальность). Универсальная функция нужна, например, для того, чтобы показать, что существует перечислимое неразрешимое множество (на самом деле это множество таких , для которых определено).
Аналогично определяется универсальная функция для класса всюду определенных вычислимых функций одного аргумента.
| Теорема: |
Для класса вычислимых функций одного аргумента существует вычислимая универсальная функция. |
| Доказательство: |
| Занумеруем программы нашего языка натуральными числами. Рассмотрим функцию , где — -ая программа в указанной нумерации. вычислимой функции . , очевидно, является вычислимой функцией. Значит — универсальная функция для класса вычислимых функций одного аргумента. Очевидно, что вычислима. Действительно, для того, чтобы вычислить , достаточно вернуть вывод программы на входе . |
| Теорема: |
Для класса всюду определенных вычислимых функций одного аргумента не существует всюду определенной вычислимой универсальной функции. |
| Доказательство: |
| От противного. Пусть — всюду определенная вычислимая универсальная функция для класса всюду определенных вычислимых функций одного аргумента. Воспользуемся теперь диагональным методом. Рассмотрим всюду определенную вычислимую функцию одного аргумента . в силу того, что — универсальная для соответствующего класса функций. Так как всюду определена, то она не зависает на аргументе . Значит , но в то же время . Противоречие. |
Отметим, что функция называется диагональной (отсюда и пошло название метода).
Литература
В. А. Успенский Лекции о вычислимых функциях — М.: ГИФМЛ, 1960, с. 203