
- •Предисловие
- •Вычислимые функции
- •Разрешимые множества
- •Перечислимые множества
- •Перечислимые и разрешимые множества
- •Перечислимость и вычислимость
- •Универсальные функции и неразрешимость
- •Универсальные функции
- •Диагональная конструкция
- •Перечислимое неразрешимое множество
- •Перечислимые неотделимые множества
- •Простые множества: конструкция Поста
- •Нумерации и операции
- •Главные универсальные функции
- •Вычислимые последовательности функций
- •Главные универсальные множества
- •Свойства главных нумераций
- •Множества номеров
- •Новые номера старых функций
- •Изоморфизм главных нумераций
- •Перечислимые свойства функций
- •Теорема о неподвижной точке
- •Неподвижная точка и отношения эквивалентности
- •Программа, печатающая свой текст
- •Системный трюк: ещё одно доказательство
- •Несколько замечаний
- •m-сводимость и свойства перечислимых множеств
- •m-сводимость
- •m-полные множества
- •m-полнота и эффективная неперечислимость
- •Изоморфизм m-полных множеств
- •Продуктивные множества
- •Пары неотделимых множеств
- •Вычисления с оракулом
- •Машины с оракулом
- •Эквивалентное описание
- •Релятивизация
- •Несравнимые множества
- •Арифметическая иерархия
- •Операция скачка
- •Классификация множеств в иерархии
- •Машины Тьюринга
- •Зачем нужны простые вычислительные модели?
- •Машины Тьюринга: определение
- •Машины Тьюринга: обсуждение
- •Ассоциативные исчисления
- •Моделирование машин Тьюринга
- •Двусторонние исчисления
- •Полугруппы, образующие и соотношения
- •Арифметичность вычислимых функций
- •Программы с конечным числом переменных
- •Машины Тьюринга и программы
- •Арифметичность вычислимых функций
- •Теоремы Тарского и Гёделя
- •Прямое доказательство теорем Тарского и Гёделя
- •Рекурсивные функции
- •Примитивно рекурсивные функции
- •Примеры примитивно рекурсивных функций
- •Примитивно рекурсивные множества
- •Другие виды рекурсии
- •Машины Тьюринга и рекурсивные функции
- •Частично рекурсивные функции
- •Вычислимость с оракулом
- •Оценки скорости роста. Функция Аккермана
- •Литература
- •Предметный указатель
- •Указатель имён
[п. 2] |
Вычислимые последовательности функций |
31 |
номер их композиции, то функция U является главной. (Указание: покажите, что по k можно алгоритмически получать U-номер функции x 7→[k; x].)
Естественный вопрос: существуют ли вычислимые универсальные функции, не являющиеся главными? Мы увидим дальше, что существуют.
29.Изменим определение главной универсальной функции
ибудем требовать существования «транслятора» s лишь для универсальных вычислимых функций V (а не для любых, как раньше). Покажите, что новое определение эквивалентно старому. (Указание: любую функцию можно искусственно переделать в универсальную, «растворив» в ней любую другую универсальную функцию.)
30.Пусть U | главная универсальная функция. Докажите, что для любой вычислимой функции V (m; n; x) существует
такая всюду определённая вычислимая функция s(m; n), что V (m; n; x) = U(s(m; n); x) при всех m, n и x. (Указание: объединить m и n в пару.)
3.2.Вычислимые последовательности вычислимых функций
Пусть дана некоторая последовательность f0; f1; : : :
вычислимых функций одного аргумента. Мы хотим придать смысл выражению «последовательность i 7→fi вы-
числима». Это можно сделать двумя способами:
•можно называть эту последовательность вычисли-
мой, если функция F двух аргументов, заданная формулой F (i; n) = fi(n), является вычислимой.
•можно называть эту последовательность вычисли-
мой, если существует вычислимая последователь-
ность чисел c0; c1; : : : , для которой ci является одним из номеров функции fi.
Второе определение (в отличие от первого) зависит от выбора нумерации.
Теорема 17. Если нумерация является вычислимой (то есть соответствующая универсальная функция вычисли-
32 |
Нумерации и операции |
[гл. 3] |
ма), то из второго определения следует первое. Если нумерация является к тому же главной, то из первого определения следует второе.
(Впредь, говоря о вычислимой последовательности вычислимых функций, мы будем всегда предполагать, что нумерация является главной, так что можно пользоваться любым из двух определений.)
Если U | вычислимая универсальная функция,
апоследовательность i 7→ci вычислима, то функция F : hi; xi 7→fi(x) = U(ci; x) вычислима как результат
подстановки одной вычислимой функции в другую. Напротив, если функция F вычислима, а универсаль-
ная функция U является главной, то функция-трансля- тор, существующая по определению главной универсальной функции, как раз и даёт по i один из номеров функ-
ции fi.
31. Пусть фиксирована главная универсальная функция для класса вычислимых функций одного аргумента. Тогда возникает нумерация вычислимых действительных чисел в соответствии с определением на с. 17: номером числа является любой номер любой функции, которая по рациональному " > 0 даёт "-приближение к .
(а) Покажите, что существует алгоритм, который по любым двум номерам двух вычислимых действительных чисел даёт (некоторый) номер их суммы.
(б) Покажите, что не существует алгоритма, который по любому номеру любого вычислимого действительного числа отвечает на вопрос, равно ли это число нулю.
(в) Как мы видели в задаче 14, всякое вычислимое действительное число имеет вычислимое десятичное разложение. Покажите, что тем не менее нет алгоритма, который по любому номеру любого вычислимого действительного числа даёт номер вычислимой функции, задающей его десятичное разложение.
3.3. Главные универсальные множества
По аналогии с функциями, перечислимое множество W N × N называется главным универсальным пере-
числимым множеством (для класса всех перечислимых
[п. 3] |
Главные универсальные множества |
33 |
подмножеств N), если для любого другого перечислимого множества V N×N найдётся такая всюду определённая вычислимая функция s: N → N, что
hn; xi V hs(n); xi W
для всех n и x. (Очевидно, что из этого свойства следует универсальность.)
Как и для функций, можно перейти к нумерациям. Каждое множество U N×N задаёт нумерацию некоторого
семейства подмножеств натурального ряда: число n является номером n-го сечения Un = {x | hn; xi U}. Перечи-
слимое подмножество множества N×N задаёт нумерацию
некоторого семейства перечислимых подмножеств натурального ряда; такие нумерации называют вычислимыми. Перечислимое множество W N × N универсально,
если и только если всякое перечислимое подмножество натурального ряда имеет W -номер; оно является главным тогда и только тогда, когда любая вычислимая нумерация V (любого семейства перечислимых множеств) вычислимо сводится к W -нумерации в том смысле, что Vn = Ws(n) для некоторой вычислимой функции s и для всех n.
Теорема 18. Существует главное универсальное перечислимое множество W N × N.
Эта теорема является очевидным следствием тако-
го утверждения:
Лемма. Область определения главной универсальной функции для класса вычислимых функций одного аргумента является главным универсальным множеством для класса перечислимых подмножеств N.
Доказательство леммы. Пусть U | главная универсальная функция, а W | область её определения. Пусть V N × N | произвольное перечислимое мно-
жество. Рассмотрим вычислимую функцию G с областью определения V . Поскольку функция U является главной, найдётся всюду определённая вычислимая функция s: N → N, для которой Gn = Us(n) при всех n. Тогда
34 |
Нумерации и операции |
[гл. 3] |
равны и области определения функций Gn и Us(n), то
есть Vn = Ws(n).
32. Постройте главное универсальное множество непосредственно, используя универсальное подмножество N3 (по
аналогии с выше приведённым построением главной универсальной функции).
Как и для функций, мы теперь можем доказывать, что различным операциям над множествами соответствуют вычислимые преобразования номеров. Вот лишь один пример такого рода:
Теорема 19. Пусть W N × N | главное универ-
сальное перечислимое множество. Тогда по W -номерам двух перечислимых множеств можно алгоритмически получить номер их пересечения: существует такая вычислимая всюду определённая функция двух аргументов s, что
Ws(m;n) = Wm ∩ Wn
для любых двух m и n.
Рассмотрим множество V N × N, определённое
так:
h[m; n]; xi V x (Wm ∩ Wn)
(здесь квадратные скобки обозначают номер пары) и применим к нему определение главного универсального множества.
Как и для функций, понятие вычислимости последовательности перечислимых множеств может быть определено двояко: можно считать вычислимой последовательность V0; V1; : : : сечений произвольного перечислимого множества V , а можно требовать, чтобы по i можно было алгоритмически указать один из номеров i-го члена последовательности в главной нумерации. Эти определения равносильны (доказательство полностью аналогично рассуждению для функций).