Вычислимость, разрешимость и перечислимость
Перечислимые и разрешимые множества
Теорема 2. Всякое разрешимое множество натуральных чисел перечислимо. Если множество A и его дополнение (до множества всех натуральных чисел) перечислимы, то A разрешимо.
Если принадлежность числа к множеству A можно проверить некоторым алгоритмом, то A и его дополнение перечислимы: надо по очереди проверять принадлежность чисел 0,1,2,... и печатать те из них, которые принадлежат A (или те, которые не принадлежат A ).
В другую сторону: если у нас есть алгоритм, перечисляющий A, а также другой алгоритм, перечисляющий дополнение к A, то для выяснения принадлежности заданного числа n к A надо запустить оба эти алгоритма и ждать, пока один из них напечатает n (мы знаем, что рано или поздно ровно один из них это сделает). Посмотрев, какой алгоритм это сделал, мы узнаем, лежит ли n в A.
Этот факт называют теоремой Поста
Она говорит, что разрешимые множества это перечислимые множества с перечислимыми дополнениями. Напротив, перечислимые множества можно определить через разрешимые:
Теорема 3. Множество P натуральных чисел перечислимо тогда и только тогда, когда оно является проекцией некоторого разрешимого множества Q пар натуральных чисел. (Проекция получается, если от пар оставить их первые компоненты: .)
Проекция любого перечислимого множества перечислима (перечисляющий алгоритм должен лишь удалять вторые члены пар), так что проекция разрешимого множества тем более перечислима.
Напротив, если P перечислимое множество, перечисляемое алгоритмом A, то оно есть проекция разрешимого множества Q, состоящего из всех таких пар , что x появляется в течении первых n шагов работы алгоритма A. (Это свойство, очевидно, разрешимо.)
Перечислимость и вычислимость
Мы видели, что перечислимое множество можно определить в терминах вычислимых функций (например, как область определения вычислимой функции). Можно сделать и наоборот:
Теорема 4. Функция f с натуральными аргументами и значениями вычислима тогда и только тогда, когда ее график

является перечислимым множеством пар натуральных чисел.
Пусть f вычислима. Тогда существует алгоритм, перечисляющий ее область определения, то есть печатающий все x, на которых f определена. Если теперь для каждого из таких x вычислять еще и значение f(x), получим алгоритм, перечисляющий множество F.
Напротив, если имеется алгоритм, перечисляющий F, то функция f вычисляется таким алгоритмом: имея на входе n, ждем появления в F пары, первый член которой равен n ; как только такая пара появилась, печатаем ее второй член и кончаем работу.
Пусть f частичная функция с натуральными аргументами и значениями. Образ множества A при f определяется как множество всех чисел f(n), для которых и f(n) определено. Прообраз множества A при f определяется как множество всех тех n, при которых f(n) определено и принадлежит A.
Теорема 5. Прообраз и образ перечислимого множества при вычислимой функции перечислимы.
В самом деле, прообраз перечислимого множества A при вычислимой функции f можно получить так: взять график f, пересечь его с перечислимым множеством N x A и спроектировать на первую координату. Рассуждение для образов аналогично, только координаты меняются местами.
7. Пусть F перечислимое множество пар натуральных чисел. Докажите. что существует вычислимая функция f, определенная на тех и только тех x, для которых найдется y, при котором , причем значение f(x) является одним из таких y. (Это утверждение называют иногда теоремой об униформизации.)
8. Даны два пересекающихся перечислимых множества X и Y. Докажите, что найдутся непересекающиеся перечислимые множества и
, для которых
.
9. Диофантовым называется уравнение, имеющее вид P(x1,...,xn)=0, где P многочлен с целыми коэффициентами. Докажите, что множество диофантовых уравнений, имеющих целые решения, перечислимо. (Оно неразрешимо: в этом состоит известный результат Ю.В.Матиясевича, явившийся решением знаменитой " 10-й проблемы Гильберта".)
10. Не ссылаясь на доказательство теоремы Ферма, покажите, что множество всех показателей n, для которых существует решение уравнения xn + yn = zn в целых положительных числах, перечислимо. (Как теперь известно, это множество содержит лишь числа 1 и 2.)
11. Покажите, что всякое бесконечное перечислимое множество можно записать в виде {a(0), a(1), a(2),...}, где a вычислимая функция, все значения которой различны. (Указание: в ходе перечисления удаляем повторения.)
12. Покажите, что всякое бесконечное перечислимое множество содержит бесконечное разрешимое подмножество. (Указание: воспользуемся предыдущей задачей и выберем возрастающую подпоследовательность.)
13. Покажите, что для всякой вычислимой функции f существует вычислимая функция, являющаяся " псевдообратной " к f в следующем смысле: область определения g совпадает с областью значений f, и при этом f(g(f(x)))=f(x) для всех x, при которых f(x) определено.
14. Действительное число называется вычислимым, если существует вычислимая функция a, которая по любому рациональному
дает рациональное приближение к
с ошибкой не более
т.е.
для любого рационального
. (Рациональное число является конструктивным объектом, так что понятие вычислимости не требует специального уточнения.)
- Докажите, что число
вычислимо тогда и только тогда, когда множество рациональных чисел, меньших
разрешимо.
- Докажите, что число
вычислимо тогда и только тогда, когда последовательность знаков представляющей его десятичной (или двоичной) дроби вычислима.
- Докажите, что число
вычислимо тогда и только тогда, когда существует вычислимая последовательность рациональных чисел, вычислимо сходящаяся к
(последнее означает, что можно алгоритмически указать N по
в стандартном
- N -определении сходимости.)
- Покажите, что сумма, произведение, разность и частное вычислимых действительных чисел вычислимы. Покажите, что корень многочлена с вычислимыми коэффициентами вычислим.
- Сформулируйте и докажите утверждение о том, что предел вычислимо сходящейся последовательности вычислимых действительных чисел вычислим.
- Действительное число
называют перечислимым снизу, если множество всех рациональных чисел, меньших
перечислимо. (Перечислимость сверху определяется аналогично.) Докажите, что число
перечислимо снизу тогда и только тогда, когда оно является пределом некоторой вычислимой возрастающей последовательности рациональных чисел.
- Докажите, что действительное число вычислимо тогда и только тогда, когда оно перечислимо снизу и сверху.
Дальнейшие свойства вычислимых действительных чисел см. в задаче 23.