m-сводимость и свойства перечислимых множеств
Изоморфизм m-полных множеств
В этом разделе мы докажем, что все m -полные множества " устроены одинаково" и отличаются друг от друга только вычислимой перестановкой.
Теорема 41. Пусть A и B m -полные перечислимые множества. Тогда существует вычислимая перестановка (вычислимое взаимно однозначное соответствие) f : N -> N, при которой A переходит в B, то есть при всех x.
Мы будем использовать тот же прием, что и в приведенном выше доказательстве теоремы Роджерса об изоморфизме главных нумераций. Именно, мы для начала докажем такую лемму:
Лемма. Пусть A m -полное перечислимое множество. Тогда существует способ по любому натуральному числу n алгоритмически указать сколько угодно других натуральных чисел, которые принадлежат или не принадлежат A одновременно с n.
Доказательство леммы. Как и раньше, у нас будут два способа получать новые числа, которые ведут себя по отношению к A так же, как и исходное. Один из них будет гарантированно давать новое число, если , другой если . При этом мы можем применять оба, не зная, какой из случаев имеет место на самом деле (и можем так этого и не узнать).
Первый способ состоит в следующем. Пусть P перечислимое неразрешимое множество. Рассмотрим перечислимое множество пар A x P. Оно сводится к A, так как A является m -полным. (Вообще-то в определении сводимости шла речь о множествах натуральных чисел, а не пар, но, как всегда, это не играет роли пары можно вычислимо нумеровать.) Другими словами, существует вычислимая всюду определенная функция f двух натуральных аргументов с таким свойством:
В частности, при числа n и f(n,m) одновременно принадлежат или не принадлежат A. Поэтому, расположив P в вычислимую последовательность p(0),p(1), ..., мы можем вычислять числа f(n,p(0)),f(n,p(1)), ... и получать новые числа, которые принадлежат или не принадлежат A одновременно с n.
Пусть . Покажем, что множество X получаемых таким образом чисел (все они в этом случае тоже принадлежат A ) будет бесконечно. В самом деле, при (по построению X ) и при (поскольку в этом случае , а ). Таким образом, функция m -> f(n,m) сводит неразрешимое множество P к множеству X, так что X неразрешимо и потому бесконечно.
Теперь опишем другой способ, который гарантирует успех, если . Возьмем два перечислимых неотделимых множества P и Q. Рассмотрим перечислимое множество пар . Пусть функция f сводит его к A. Это означает, что тогда и только тогда, когда или . Как и прежде, при числа n и f(n,m) одновременно принадлежат или не принадлежат A, так что мы можем снова рассмотреть последовательность f(n,p(0)),f(n,p(1)),...; осталось лишь показать, что (если ) в этой последовательности бесконечно много различных членов.
Пусть это не так и множество X всех членов этой последовательности конечно. По нашему предположению X не пересекается с A. Заметим, что при (по построению) и при (так как в этом случае принадлежит нашему перечислимому множеству пар и f(n,m) принадлежит A ). Таким образом, прообраз множества X при отображении m -> f(n,m) отделяет P от Q. Но этот прообраз разрешим ( X разрешимо, ибо конечно, а указанное отображение всюду определено и вычислимо). А по нашему предположению множества P и Q нельзя отделить разрешимым множеством.
Итак, мы привели два способа получать новые элементы, которые принадлежат или не принадлежат A одновременно с исходным. Применяя их параллельно, мы наверняка добьемся результата. Лемма доказана.
Пусть теперь A и B два m -полных перечислимых множества. Докажем, что они отличаются лишь вычислимой перестановкой натурального ряда. Будем строить эту перестановку по шагам. На k -ом шаге мы имеем взаимно однозначное соответствие
при котором при всех i. На четных шагах мы берем минимальное число, не входящее в левую часть этого соответствия. Используя факт m -сводимости A к B, мы находим ему компаньона. При этом доказанная нами лемма позволяет выбрать компаньона, не встречающегося среди уже имеющихся справа элементов. На нечетных шагах мы делаем то же самое, только справа налево.
В пределе этот процесс дает искомую вычислимую перестановку, связывающую A и B.
С точки зрения теории алгоритмов два множества, отличающиеся лишь вычислимой перестановкой, обладают одинаковыми свойствами. Поэтому доказанная теорема показывает, что по существу имеется лишь одно m -полное перечислимое множество (или, что то же, лишь одно перечислимое множество с эффективно неперечислимым дополнением).
Продуктивные множества
В этом разделе мы используем теорему о неподвижной точке для получения такого (неожиданного на первый взгляд) результата: определение эффективной неперечислимости множества A не изменится, если мы ограничимся лишь (перечислимыми) подмножествами множества A.
Зафиксируем некоторую главную нумерацию перечислимых множеств (множество с номером n мы обозначаем Wn ). Говорят, что множество A является продуктивным, если существует вычислимая (не обязательно всюду определенная) функция f с таким свойством: она применима к любому номеру n любого подмножества Wn множества A и дает элемент в их разности:
49. Докажите, что продуктивное множество не может быть иммунным.
Ясно, что требования в определении продуктивности лишь часть требований из определения эффективно неперечислимого множества, так что любое эффективно неперечислимое множество продуктивно. Удивительным образом оказывается, что верно и обратное.
Теорема 42. Пусть A продуктивное множество, K произвольное перечислимое множество. Тогда дополнение к K m -сводится к A.
(Из этого следует, что A является эффективно неперечислимым, см. выше.)
Пусть f функция, которая существует по определению продуктивности (и дает элемент вне подмножества с указанным номером).
Мы построим всюду определенную вычислимую функцию s с такими свойствами:
- .
(второе свойство подразумевает, что f(s(x)) определено при ). Прежде чем делать это с помощью теоремы о неподвижной точке, заметим, что в первом случае f(s(x)) определено и принадлежит A: поскольку множество с номером s(x) пусто и является подмножеством A, число f(s(x)) должно быть элементом A. Напротив, во втором случае f(s(x)) не принадлежит A. В самом деле, если бы это было не так, то множество Ws(x) было бы подмножеством A, и потому число f(s(x)) должно было бы быть элементом A, не входящим в это подмножество а оно входит.
Поэтому если нам удастся построить такую функцию s, то функция x -> f(s(x)) будет m -сводить дополнение множества K к множеству A, как мы и обещали. Как же ее строить?
Если бы во втором свойстве (для ) стояло не f(s(x)), а, скажем, просто f(x), никакой проблемы бы не было. Как обычно, мы рассмотрели бы перечислимое множество пар
сечения этого множества имели бы требуемый вид и осталось бы только воспользоваться тем, что нумерация главная. Но в нашем случае, когда в правой части второго свойства стоит f(s(x)), так просто поступить нельзя: как в истории о курице и яйце, для построения V нам надо иметь s(x), а для построения s(x) надо иметь V.
Именно такого рода трудности позволяет преодолевать теорема о неподвижной точке. Построим всюду определенную вычислимую функцию двух аргументов h с такими свойствами:
- .
(Подобные вещи мы делали многократно последний раз в предыдущем абзаце. Отметим, что f(t) может быть и не определено, тогда под {f(t)} мы понимаем пустое множество.) По теореме о неподвижной точке (для перечислимых множеств) при каждом x функция имеет неподвижную точку, и, как мы говорили в разделе о неподвижной точке с параметром, эту неподвижную точку можно выбрать вычислимо зависящей от x. Таким образом, существует всюду определенная вычислимая функция s, для которой
Ws(x)=Wh(x,s(x))
при всех x. Это равенство можно продолжить:
- это ровно то, чего мы и хотели. Заметим, что значение f(s(x)) определено при всех x (иначе , и f(s(x)) должно быть определено). Тем самым, теорема о неподвижной точке позволяет отыскать взаимно согласованные яйцо и курицу и завершает доказательство.