Диагональный метод
Версия от 05:07, 14 декабря 2011; 192.168.0.2 (обсуждение) (Новая страница: «{{Определение |definition = Функция <tex>U : N \times N \rightarrow N \cup \lbrace \bot \rbrace</tex> называется '''универсаль...»)
Определение: |
Функция | называется универсальной для класса вычислимых функций одного аргумента, если является вычислимой функцией и вычислимой функции
Аналогично определяется универсальная функция для класса всюду определенных вычислимых функций одного аргумента.
Теорема: |
Для класса вычислимых функций одного аргумента существует вычислимая универсальная функция. |
Доказательство: |
Занумеруем программы нашего языка натуральными числами. Рассмотрим функцию | , где — -ая программа в указанной нумерации. вычислимой функции . , очевидно, является вычислимой функцией. Значит — универсальная функция для класса вычислимых функций одного аргумента. Очевидно, что вычислима. Действительно, для того, чтобы вычислить достаточно вернуть вывод программы на входе .
Теорема: |
Для класса всюду определенных вычислимых функций одного аргумента не существует всюду определенной вычислимой универсальной функции. |
Доказательство: |
От противного. Пусть | — всюду определенная вычислимая универсальная функция для класса всюду определенных вычислимых функций одного аргумента. Воспользуемся теперь диагональным методом. Рассмотрим всюду определенную вычислимую функцию одного аргумента . в силу того, что — универсальная для соответствующего класса функций. Так как всюду определена, то она не зависает на аргументе . Значит , но в то же время . Противоречие.