Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алиев Курс лекций по математической логике и теории алгоритмов 2003.doc
Скачиваний:
176
Добавлен:
16.08.2013
Размер:
4.53 Mб
Скачать

Универсальные функции

Пусть F — некоторый класс функций от k переменных. Функцию U(nx1, …, xk) от k + 1 переменных называют универсальной для класса F, если выполнимы условия:

а) для всякого n  N0 выполняется

fn(x1, …, xk) = U(nx1, …, xk)  F;

б) для всякой f(x1, …, xk)  F существует n  N0 такое, что f(x1, …, xk) = U(nx1, …, xk).

Теорема 15.4. Для класса Ч1 — одноместных частично рекурсивных функций существует универсальная частично рекурсивная функция U(nx).

Доказательство. Определим U(nx) =, точнее

U(nx) =  (15.1)

Данное соотношение определяет частичную функцию. Функция U(nx) является частично рекурсивной. Действительно, для произвольных (nx) нужно найти программу Pn (эффективная процедура) и применить Pn к начальной конфигурации (x, 0, …, 0, …). Если Pn , то положить U(nx) = r1, где r1 — содержимое регистра R1 в заключительной конфигурации. Если Pn , то считать значение U(nx) неопределенным. По тезису Черча функция U(nx) частично рекурсивна. Покажем, что функция U(nx) универсальна. Поскольку U(nx) частично рекурсивна, то и fn = U(nx) для всякого n  N0 частично рекурсивна, так как fn получена подстановкой константы вместо первого аргумента. Пусть теперь f(x) — произвольная одноместная частично рекурсивная функция. Тогда по доказанному она может быть вычислена некоторой МПД-программой Р. Пусть n = (P). Следовательно, f = и значит f = U(nx), что и требовалось доказать.

Следствие 15.5. Для всякого k  1 существует частично рекурсивная функция Uk(nx1, …, xk) универсальная для всех k-местных частично рекурсивных функций.

Это делается с использованием нумерационных функций. Полагаем

и так далее.

Покажем, например, что функция удовлетворяет нужным условиям. Во-первых, функцияU2 — частично рекурсивна, так как является суперпозицией частично рекурсивных функций. Во-вторых, функция частично рекурсивна, так как получается из частично рекурсивной подстановкой константы. Пусть теперьf(x1x2) — произвольная частично рекурсивная функция. Образуем функцию g(x) = f(l(x), r(x)), где lr — нумерационные функции. Так как g(x) — частично рекурсивна, то существует n такое, что g(x) = U(nx). Теперь положим x = p(x1x2), и тогда имеем

f(x1x2) = g(p(x1x2)) = U(n, p(x1x2)) = ,

что и требовалось доказать.

Представляет интерес вопрос о существовании универсальной функции для других рассмотренных выше классов Ч0 и Чпр — общерекурсивных и примитивно рекурсивных функций соответственно.

Теорема 15.6. Не существует общерекурсивной функции Uk(nx1, …, xk), универсальной для класса Чk0 — k-местных общерекурсивных функций при любом k  1.

Доказательство. Пусть, наоборот, существует такая функция Uk(nx1, …, xk) для некоторого k. Образуем функцию f(x1, …, xk) = Uk(x1x1, …, xk) + 1. Согласно свойству универсальности существует n0 такое, что

Uk(n0x1, …, xk) = f(x1, …, xk) = Uk(x1x1, …, xk) + 1.

Поскольку данные функции всюду определены, то они определены и при x1, x1 = … = xk = n0. Тогда получаем противоречивое равенство Uk(n0, n0, …, n0) = Uk(n0, n0, …, n0) + 1. Значит, предположение о существовании универсальной функции ложно, что и требовалось доказать.

В то же время справедлива следующая теорема.

Теорема 15.7. Для каждого k  N класс всех k-местных примитивно рекурсивных функций имеет общерекурсивную универсальную функцию.

Доказательство данной теоремы приведено в [11, § 5].

Заметим, что из данной теоремы следует, что класс общерекурсивных функций шире класса примитивно рекурсивных функций, так как универсальная функция не может быть примитивно рекурсивной и является общерекурсивной.

Дадим еще одно применение универсальной функции. Пусть f:N0  N0 — частичная функция. Функцию f0 будем называть доопределением f, если f0 всюду определена и совпадает с f в ее области определения. Покажем, что рассмотрение частичных вычислимых функций вызвано существом дела, а именно — существуют частичные вычислимые функции, любое доопределение которых делает их невычислимыми.

Теорема 15.8. Существует частично рекурсивная функция f(x), которая не может быть доопределена до общерекурсивной.

Доказательство. Рассмотрим функцию f(x) = , где U — универсальная функция. Данная фунция частично рекурсивна, так как она получается суперпозицией частично рекурсивных функций. Предположим, что существует общерекурсивная функция f0(x), которая является доопределением для f(x). По свойству универсальности U существует n такое, что f0(x) = U(nx). Поскольку f0(x) всюду определена, то она определена при x = n, и тогда значение U(nn) определено, и, следовательно, определено значение . Поскольку f0(x) есть доопределение f(x), то в области определения их значения должны совпадать. Поэтому имеем U(nn) = f0(x). Однако последнее равенство дает противоречие, так как, если U(nn) = 0, то , если U(nn)  0, то . Значит, допущение о существовании рекурсивного доопределения для функции f(x) приводит к противоречию, что и требовалось доказать.

Л е к ц и я 16