/
Author: Катленд Н.
Tags: анализ математика материалы высшая математика эвм издательство мир рекурсивные функции
Year: 1983
Text
Н. Иатленд
вычислите»
введение
в теорию
рекурсивных
функций
Перевод с английского
А. А. Мучника
под редакцией
С. Ю. Маслом
Москва «Мир» 1983
ББК22.1
K29
УДК 517.11 + 681.3
Катленд Н.
К29 Вычислимость. Введение в теорию рекурсивных функ-
функций: Пер. с англ.—М.: Мир, 1983.—256 с, ил.
Книга известного английского математика, охватывающая основные вопросы
теории вычислимых функций и ее приложений: сложность вычислений и
алгоритмов, теоремы Гёделя о неполноте и Чёрча о неразрешимости, семан-
семантику языков программирования. Изложение замкнутое, методически продуман-
продуманное, имеется много упражнений.
Для математиков, специалистов по ЭВМ, желающих ознакомиться с теоре-
теоретическими основами машинной математики.
2505000000-237 ББК 22.
К 041@1)—83 23~83 51
Редакция литературы по математическим наукам
Найджел Катленд
ВЫЧИСЛИМОСТЬ. ВВЕДЕНИЕ В ТЕОРИЮ
РЕКУРСИВНЫХ ФУНКЦИЙ
Научн. ред. Л. Н. Бабынина. Мл. научн. ред. Р. И. Пяткина. Художник В. С. Голу-
Голубев Художественный редактор В. И. Шаповалов. Технический редактор Л. П Бирю-
Бирюкова. Корректор Н. В. Андреева.
ИБ 3341
Сдано в набор 29.09.82. Подписано к печати 24.01.83. Формат 60x90*/i«> Бумага
типографская N» 2. Гарнитура литературная. Печать высокая. Объем 8 бум. л.
Усл. печ. л. 16. Усл. кр.-отт 16,24. Уч.-изд. л. 14,07. Изд. № 1/2210. Тираж
10 000 экз. Зак. № 862. Цена 1 руб.
ИЗДАТЕЛЬСТВО «МИР» Москва, 1-й Рижский пер., 2.
Ордена Октябрьской Революции и ордена Трудового Красного Знамени Первая Образ-
Образцовая типография имени А. А. Жданова Союзполиграфпрома при Государственном ко-
митете СССР по делам издательств, полиграфии и книжной торговли. Москва, М-54,
Валовая, 28
© Cambridge University Press 1980
© Перевод на русский язык, «Мир», 1983
Предисловие редактора перевода
Предлагаемая читателю книга известного английского ма-
математика представляет собой элементарное введение в область,
служащую теоретической основой программирования и раз-
различных приложений теории алгоритмов в математике и ло-
логике, теории формальных языков, информационных системах
и системах управления, биологии и других науках. Книга
рассчитана на широкий круг читателей, включая старшекласс-
старшеклассников, интересующихся перечисленными областями. Формаль-
Формально для ее чтения не требуется специальной подготовки, не-
необходимые сведения из теории множеств и математической
логики приводятся во введении и основном тексте.
При небольшом объеме автор сумел охватить обширный
материал, представив в наглядном виде даже весьма нетри-
нетривиальные результаты (например, теорему Блюма об ускорении).
Наряду с собственно теорией рекурсивных функций излага-
излагаются ее основные приложения в формальной арифметике
(теорема Гёделя о неполноте) и в математической логике (тео-
(теорема Чёрча о неразрешимости узкого исчисления предикатов).
В методическом плане автор удачно выбрал в качестве
основы изложения машины с неограниченными регистрами
(МНР), известные также под названием адресных машин (RAM).
Это дает большие преимущества по сравнению с традиционным
изложением на основе машин Тьюринга или других поня-
понятий алгоритма. Однако в книге приводятся также сведения
о других алгоритмических системах, включая машины Тьюринга.
Автор исследует соотношения между различными вычислимо-
стями, подводя читателя к тезису Чёрча и его обоснованию.
Для читателей, соприкасающихся с программированием, из-
изложение на базе МНР особенно привлекательно ввиду близо-
близости этих машин к реальным ЭВМ и удобного представления
их программ в виде блок-схем.
Книга Катленда является хорошим учебником, написанным
в современном духе. Своевременность появления ее перевода
несомненна, если учесть, что книги Р. Петер и В. А. Успен-
Успенского по вычислимым функциям, написанные в 50-х годах,
несколько устарели, книга А. И. Мальцева «Алгоритмы и
рекурсивные функции» носит более специальный характер и
трудна для первоначального знакомства с предметом, а «Тео-
Предисловие редактора перевода
рия рекурсивных функций» X. Роджерса является по суще-
существу энциклопедией в рассматриваемой области. Кроме того,
эти книги стали библиографической редкостью.
Для желающих более глубоко ознакомиться с отдельными
темами в тексте даны рекомендации для дальнейшего чтения.
Часть материала вынесена в упражнения. Имеются список
специальных обозначений и указатель. Библиография допол-
дополнена рядом работ на русском языке.
С. Ю. Маслов
Предисловие
Когда свыше пятидесяти лет тому назад появилось поня-
понятие вычислимой функции, родилась новая ветвь математики;
о ее важности можно судить хотя бы по применениям в столь
разных областях, как теория машинных вычислений, филосо-
философия и основания математики, а также во многих областях
собственно математики. Настоящая книга служит введением
в круг основных идей и результатов теории вычислимости (или
теории рекурсии, как по традиции называют ее математики).
Первоначальной целью теории вычислимости было придать
строгость интуитивной идее вычислимой функции, т. е. функ-
функции, значения которой могут быть вычислены или автомати-
автоматически или каким-либо другим эффективным способом. Тогда
мы сможем достичь более ясного понимания этой интуитивной
идеи и приступить к матема1ическому исследованию понятия
вычислимости, а также связанных с ним понятий разрешимо-
разрешимости и рекурсивной перечислимости. Возникает богатая теория
как с позитивным, так и с негативным аспектами (тут мы имеем
в виду результаты о невычислимости и неразрешимости). Цель
данной книги—познакомить читателя с этой теорией.
Мы могли бы дать описание теории вычислимости с точки
зрения теории машинных вычислений, начав с вопроса: «Что
в принципе могут делать вычислительные машины (без огра-
ограничений на память, время и стоимость)?» или, иначе говоря:
«Какие теоретические ограничения им присущи?» Таким об-
образом, в данной книге речь идет не о реальных вычислитель-
вычислительных машинах и не о языках и методах программирования.
Тем не менее наша главная тема является частью теоретиче-
теоретических основ реальной вычислительной техники и должна пред-
представлять интерес для вычислителей и программистов.
Основное определение вычислимости у нас базируется на
«идеализированной вычислительной машине» или машине с ре-
регистрами: при этом мы исходим из легкости, с которой такое
изложение воспринимается лицами, изучающими предмет,
большинство из которых знакомо с идеей компьютера. (Такое
знакомство, однако, не предполагается, хотя и является по-
полезным, и еще меньше мы рассчитываем на какой бы то ни
было практический опыт обращения с компьютерами или каль-
калькуляторами.) Наш подход математически эквивалентен многим
другим ранее предложенным подходам, включая подход, осно-
основанный на машинах Тьюринга, которому часто отдается пред-
предпочтение. (Эквивалентность этих подходов мы обсудим в гл. 3.)
Предисловие
Текст книги возник на основе курса, прочитанного сту-
студентам-математикам и вычислителям в Университете г. Халла.
Книга ориентирована на студентов-математиков, не распола-
располагающих никакими знаниями предмета, или студентов-вычисли-
студентов-вычислителей, желающих дополнить свой практический опыт некото-
некоторыми теоретическими основами. Она рассчитана на студентов
второго и третьего курсов, хотя начальные элементы теории
(главы 1—7) доступны старшеклассникам. Единственное пред-
предварительное условие—знакомство с математическим языком
множеств и функций (краткий обзор его дан во введении) и
способность следить за логическими рассуждениями.
Последние главы (8—12) в большой степени независимы
друг от друга. Поэтому краткий вводный курс может состоять
из глав 1—7, дополненных по желанию материалом глав 8—12.
В этих последних главах мы хотели обратить внимание чи-
читателя на ответвления и приложения основной теории вы-
вычислимости и наметили первые шаги в сторону их углублен-
углубленного изучения. В заключительной главе дается краткий обзор
возможных направлений дальнейшего изучения и некоторые
рекомендации для последующего чтения. (Две книги можно
рассматривать как естественное продолжение нашей—это книга
М. Минского «Вычисления. Конечные и бесконечные машины»,
которая дополняет нашу книгу широким и исчерпывающим
рассмотрением понятия вычисление (в отличие от вычислимости)
и X. Роджерса «Теория рекурсивных функций и эффективная
вычислимость», которая представляет собой более глубокое
изложение рекурсивной теории.
Многие помогали мне в процессе написания этой книги.
В первую очередь я хотел бы поблагодарить Джона Клива,
у которого в 1966 г. в Бристольском университете я прослу-
прослушал курс по теории рекурсивных функций и который позна-
познакомил меня с подходом, основанным на машинах с регистрами.
Этот подход и применяется в настоящей книге. Я признателен
Стэну Вайнеру и Дэвиду Йордану за их неослабевающий ин-
интерес к книге и оказанную мне поддержку (Стэном Вайнером
были также сделаны ценные замечания по материалу глав 10
и 12). Я хочу также поблагодарить Дэвида Йордана и Дика
Эпштейна за чтение рукописи и ряд ценных примечаний и
исправлений. Я благодарен издательству Кембриджского уни-
университета за проявленный интерес и оказанное мне содейст-
содействие, в результате которого появился окончательный текст
книги. Наконец, я очень признателен моей жене Мэри за по-
постоянную поддержку на всех стадиях написания и подготовки
этой книги; во многом благодаря ее самоотверженности, чут-
чуткости книга увидела свет.
Введение
Предварительные замечания
и обозначения
Единственным предварительным условием для чтения этой
книги является знакомство с основными обозначениями мно-
множеств и функций и основными принципами математического
рассуждения. Здесь мы дадим обзор этих понятий и разъясним
обозначения и термины, которые будут использованы в даль-
дальнейшем. Все они, как правило, стандартны, поэтому для чи-
читателя, который предпочтет перейти сразу к главе 1 и воз-
возвращаться к введению лишь в случае необходимости, мы от-
отметим, что под словом «функция» везде будет подразумеваться
частичная функция. Ниже мы обсудим это более подробно.
1. Множества
Для обозначения множеств обычно будут использоваться
прописные буквы Л, 5, С... . Здесь х?А обозначает, что х
является элементом множества Л или принадлежит множеству
Л, а х(?А означает, что х не принадлежит множеству Л.
Обозначение \х\ ...х. ..}, где ...х... есть некоторое утвер-
утверждение, включающее х% означает множество всех объектов х,
для которых ...х... верно. Так, \х\х является четным на-
натуральным числом} есть множество {0,2, 4,6, ...}.
Если Л, В суть множества, то запись Л ^ В означает, что Л
содержится(какчасть) в В (или Л является подмножеством В)\
запись AczB означает, что Л^5, ноЛ=?5(т. е. А является
собственным подмножеством В). Объединение множеств Л, В
есть множество {л;|л:?Л или х?В (или сразу двум множест-
множествам Л, В)\ и обозначается A\jB\ пересечение Л, В есть мно-
множество {х|х€Л их?В\ и обозначается через Л ()В. Разность
(или относительное дополнение) множеств Л, В есть множе-
множество {х|л;?Л и х(?В) и обозначается А\В.
Пустое множество обозначается через 0. Стандартный
символ N обозначает множество натуральных чисел {0, 1, 2,
3, .^.}. Если Л—множество натуральных чисел (т.е. Ле№),
то Л обозначает дополнение к Л до N, т. е. №\Л. Через Ы+
обозначается множество положительных натуральных чисел
{1,2,3, ...}» а множество целых чисел, как обычно, обозна-
обозначается через Z.
К) Введение. Предварительные замечания и обозначения ___^
Упорядоченная пара элементов х, у обозначается (х, у)\ та-
таким образом, вообще говоря, (х, у)Ф(у9 х). Картезианским
или декартовым, произведением множеств А и В называется
множество {(х, у) |х? Л, у? В}, и обозначается оно через Ах В,
Более общо, запись (хи . ..,х„) обозначает упорядоченный
я-набор (n-ку) элементов х19 . ..,х„; часто этот n-набор обо-?
значается одной жирной буквой х. Если Аи ..., Ап суть мно-
множества, то Ахх ...хАп обозначает множество n-ок \(х19...
• • -»*/*)l*i€ Ах и х2? А2.. .хп?Ап\. Произведение А хА х ...
... хА (п раз) сокращенно обозначают как Ап\ а А1 означает
просто А.
2. Функции
Мы предполагаем, что читатель знаком с основным поня-
понятием функции и различием между функцией / и отдельным]
значением f(x) на данном х, на котором функция / опреде-'
лена 1}. Областью (определения) функции / называется мно-;
жество {x\f(x) определено} и обозначается Dom(/); мы будем
говорить, что f(x) не определено, если x(?Dom(f). Множество]
\f(x)\x€Dom(f)\ называется множеством значений, или обра-
образом (range), функции / и обозначается через Ran (/). Если А1
и В—множества, то будем говорить, что / есть функция из Л
в В, если Dom (/) ^ А и Ran (/) ^ В. Когда Dom (/)е=Л, будет
применяться обозначение /:Л —> В.
Функция называется инъективной, если из х, y?Dom(f)
и хфу следует /(х)=^=/(у). Для инъективной функции / через
f~l обозначается функция, обратная к /, т. е. такая единствен-
единственная функция g, что Dom (g)=Ran(/)Hg(/(x))=x для всех х?
? Dom (/). Функция / из А в В называется сюръективной,
если Ran (/) = ?.
Если f:A —* В и функция / инъективна (сюръективна), то /,
называется инъекцией (из А в В) (сюръекцией (из А в В)).
Функция, являющаяся одновременно инъекцией и сюръекцией,
называется биекцией.
Предположим, что / является функцией, а X—множество.
Ограничением f на X называется функция с областью опреде-|
ления XflDom(/), значение которой в каждом х ?-X П Dom (/)]
равно /(х). Ограничение / на X обозначается через f\X:
Ran(/|X) обозначается через f(X). Если Y—множество, то
прообразом Y относительно f называется множество /-1 (У)=
*> Обычно в математическах текстах функция / определяется как мно-
множество упорядоченных пар, такое, что из (*, */)?/и(*, z)?/ следует# = г
и f(x) по определению равно этому у. Мы не настаиваем на таком опре-<
делении функции, но наше изложение согласовано с ним.
2. Функщц _П
^{x\f()Y}- (Заметим, что прообраз определен даже тогда,
когда функция не инъективна.)
Если /, g—функции, то будем говорить, что g продолжает /,
если Dom (f) s Dom (g) nf(x) = g (x) для всех х ? Dom (/); в крат-
краткой записи: f = g\ Dom (/). Это отношение функций ft g запи-
записывается как f^g.
Композиция двух функций fug есть функция с областью
определения {х \ х ? Dom (g) u g(x)? Dom (/)}, значение которой,
когда она определена, есть f(g(x)). Эту функцию обозначают
через fog.
Через f0 обозначаем нигде не определенную функцию; т. е.
Dom(/0)=BRan(/0) = 0. Очевидно, что /0 = g|0 для любой
функции g.
В вычислениях нам часто будут встречаться функции или
выражения, включающие функции, которые не всюду опре-
определены. В таких случаях очень удобно следующее обозначе-
обозначение. Пусть а(х) и $(х)— выражения, включающие перемен-
переменные x = (xlf . ..,*„). Тогда запись а(лг)~Р(лг) означает, что
для каждого х выражения а(х) и р (jc) либо одновременно
определены и равны, либо оба не определены. Так, например,
для функций fug запись f(x)~g(x) означает, что f=*g\ и
для всякого числа у запись f(x)~ у означает, что f(x) опреде-
определено и равно у (поскольку у всегда определено).
Функции от натуральных чисел. В большей части этой
книги мы будем иметь дело с функциями от натуральных
чисел, т. е. с функциями из Нп в N для разных я, большей
частью для п=1 или 2.
Функция / из Нп в N называется п-местной функцией.
Значение / на n-ке (xi$ ..., х„) ? Dom (/) записывается как
/(*if • • •» хп) или /(•*)> если х представляет (хи .. .,#„). Во
многих книгах и статьях выражение частичная функция исполь-
используется для обозначения функции из Щп в N, область опреде-
определения которой не обязательно совпадает с Н". Для нас слово
функция означает частичную функцию. Тем не менее при слу-
случае мы будем писать «частичная функция», чтобы подчеркнуть
ее возможную «не всюду определенность». Тотальной функцией
из № в N мы называем функцию из Ып в N, область опреде-
определения которой есть все Nn.
Мы затушевываем различия между функциями и их зна-
значениями в различных точках, особенно в случае теоретико-
числовых функций в двух довольно стандартных и недвусмы-
недвусмысленных ситуациях. Во-первых, мы допускаем такие фразы как
«Пусть f(xlt ..•!*„)—функция ...», что означает, что / яв-
является n-местной функцией. Во-вторых, мы часто описываем
функцию в терминах ее значения, задаваемого некоторой фор-
\2 Введение, Предварительные замечания и обозначения
мулой. Например, «функция хН означает «одноместная функ-
функция /, значение которой в каждом xgN есть**»; аналогично
«функция х + (/» означает «двуместная функция», значение
которой в каждой паре (х, у)?Н* есть х + у.
Функцию, тождественно равную 0 на N, мы обозначаем
через 0, и вообще для т ? N функцию N—>N, значение кото-
которой всюду равно /л, мы обозначаем жирным символом т.
3. Отношения и предикаты
• Если А—множество, то свойство M(xi9 . ..,х„), выполня-
выполняющееся (или истинное) на некоторых n-ках из Ап и не выпол-
выполняющееся (или ложное) на всех других n-ках из Ап, называется
п-местным отношением, или предикатом на А х).
Например, свойство х<г/ есть двуместное отношение (или
предикат) на N; 2 < 3 выполняется (или истинно), тогда как
9 < 5 не выполняется (или ложно). Другой пример: каждая
n-местная функция / из Нп в N приводит к (n-f 1)-местному
предикату М (дг, у), задаваемому условием:
М (xlt ..., х„, у), если и только если /(xif ..., хп) ^ г/.
Отношения эквивалентности и порядка. (Читатель, не зна-
знакомый с этими понятиями, может при желании отложить чте-
чтение этого параграфа до тех пор, пока он не потребуется
в гл. 9.) В гл. 9 мы встретимся с двумя специальными видами
отношений на множестве Л.
(a) Бинарное отношение R на множестве А называется
отношением эквивалентности, если для всех х, у,г?А выпол-
выполняются три следующие свойства:
(i) (рефлективность) R (х, х)\
(и) (симметрия) R(x> у)=Ф(т. е. влечет) /?({/, х)\
(Hi) (транзитивность) если R(x,y) и R(y,z)> то R(xtz).
Говоря, что х, у эквивалентны (в некотором специальном
смысле), мы подразумеваем отношение R (х, у). Затем мы оп-
определяем класс эквивалентности х как множество {у\ R(x, у)},
состоящее из всех элементов, эквивалентных х.
(b) Двуместное отношение R на множестве А называется
частичным порядком, если для всех х, у, г? Л.
(i) (иррефлексивность) не R (х, х);
(И) (транзитивность) если R(xfy) и R(y,z), то /?(х, г).
1} Часто я-местное отношение, или предикат М (х) на множестве А,
отождествляется с множеством {х\х?Ап и выполняется М (х)}. Мы не
настаиваем здесь на таком отождествлении, хотя наше изложение не про-
противоречит такому подходу.
5. Ссылки 13
Частичный порядок обычно обозначается символом <, и
мы предпочитаем запись х <у записи < (х, у). Часто опреде-
определяют частичный порядок, вводя сначала предикат ^ (обозна-
(обозначающий < или =) со свойствами:
(i) x<x;
(И) если х^у и у^х, то х = у\
(Hi) отношение ^ транзитивно,
а затем определяя х < у как х^ у и хфу.
4. Логические обозначения
Мы везде употребляем стандартные логические обозначе-
обозначения. Символ s= обозначает эквивалентность по определению,
=» означает логическое следование, а фф обозначает «логически
влечет и вытекает из». Символы V, 3 используются в значе-
значении «для всех» и «существует» соответственно. Знак ? всюду
в тексте обозначает конец доказательства.
5. Ссылки
Каждая глава разделена на параграфы, и пункты в каждом
параграфе нумеруются последовательно. Так, теорема 5-1.4
означает теорему 1.4 главы 5, или 4-й пункт первого параграфа
пятой главы. При ссылках внутри главы номер главы опускается.
Упражнения включены в эту систему нумерации. Так, упраж-
упражнение 6-1.8B) означает второе упражнение пункта 1.8 («упраж-
(«упражнения») главы 6.
Ссылки на источники в библиографии делаются с указа-
указанием автора и года публикации работы, на которую мы ссы-
ссылаемся.
Глава *
Вычислимые функции
Эту главу мы откроем обсуждением основного понятия
алгоритма, или эффективной процедуры. В последующих па-
параграфах мы уточним это понятие, используя идеализирован-
идеализированную вычислительную машину некоторого вида; это составит
основу математической теории вычислимости и вычислимых
функций.
1. Алгоритмы или вычислительные процедуры
Обучаясь арифметике в начальной школе, мы познакоми-
познакомились со сложением и умножением двух чисел. Нам в явной
форме не говорили, что у любой пары чисел существуют
произведение и сумма, а указали способы или правила их
нахождения. Такие способы или правила являются примерами
алгоритмов, или вычислительных (эффективных) процедур. Их
применение не требует изобретательности или сообразитель-
сообразительности, ученику необходимо было только следовать инструк-
инструкциям учителя.
Более общо, алгоритм, или эффективная процедура,—это
механическое правило или автоматический метод, или про-
программа для выполнения некоторых математических операций.
Приведем еще несколько примеров операций, для которых
легко можно указать алгоритмы:
A.1) (а) по данному п найти п-е простое число;
(b) дифференцирование полинома;
(c) нахождение наибольшего общего делителя двух нату-
натуральных чисел (алгоритм Евклида);
(d) для двух данных чисел х, у решить, является ли х
кратным у.
Неформально и схематически алгоритм представлен на
рис. 1а. На вход подается информация или объект, подле-
подлежащий обработке (например, полином в примере A.1) (Ь),
пара натуральных чисел в примерах A.1) (с) и (d)), а выхо-
выходом является результат обработки или операции над входом
(так, для A.1) (Ь) это производная полинома, а для A.1)
(d)—ответ «да» или «нет»). Выход вырабатывается автомати-
автоматически черным ящиком—который может быть компьютером
/. Алгоритмы или вычислительные процедуры 15
или школьником, действующим по инструкции, или даже очень
умной хорошо тренированной собакой. Алгоритм есть проце-
процедура (или способ вычисления), осуществляемая черным ящи-
ящиком для получения выхода из входа.
Если алгоритм, или эффективная процедура, используется
для вычисления значений числовой функции, то эта функция
называется эффективно вычислимой, или алгоритмически вы-
вычислимой, или просто вычислимой. Например, функции ху,
Черный
ящик
Вход IHHHI Выход
Рис. 1а.
НОД(х, у) = наибольший общий делитель чисел х и у и
/(/2) = простое число вычислимы в неформальном смысле, как
уже отмечалось выше.
Рассмотрим, с другой стороны, следующую функцию:
II, если в десятичном разложении числа я найдется
ровно л идущих подряд цифр 7;
О в противном случае.
Большинство математиков считают, что g является вполне
«законной» функцией. Но вычислима ли функция g? Сущест-
Существует механическая процедура для последовательного порож-
порождения цифр в десятичном разложении я1}, поэтому напра-
напрашивается следующая «процедура» для вычисления функции g.
«При заданном п начните вычислять десятичное разложе-
разложение л по одной цифре за один такт времени и отмечайте
появление семерок. Если на каком-нибудь шаге появится от-
отрезок, состоящий ровно из п семерок, остановите процесс
вычисления и положите g(n)= 1. Если такой отрезок не будет
обнаружен, то положите g(n) = 0».
Недостатком этой «процедуры» является то обстоятельство,
что если для некоторого п не существует отрезка из п семе-
семерок, то ни на каком шаге процесса мы не можем остано-
остановиться и сделать заключение о том, что этот факт имеет
место. На каждом данном шаге мы можем ожидать, что та-
такая последовательность семерок может встретиться в еще не
исследованной бесконечной части разложения п. Таким обра-
образом, эта «процедура» будет продолжаться бесконечно долго
Д) Это будет установлено в гл. 3 (пример 7.1 C)).
16 Гл. 1. Вычислимые функции '
для всякого входа л, такого, что g(n) = 0; поэтому она не яв-
является эффективной процедурой. (Возможно, что существует
эффективная процедура для вычисления g, основанная, ве-
вероятно, на некоторых теоретических свойствах числа я. В
настоящее время, однако, такая процедура неизвестна.)
Этот пример выявляет две характерные особенности поня-
понятия эффективной процедуры, а именно что такая процедура
совершается за некоторую последовательность шагов (каждый
шаг выполняется за конечное время) и что каждый выход
появляется после конечного числа шагов.
До сих пор мы неформально описывали понятия алгорит-
алгоритма (или эффективной процедуры) и связанного с ним поня-
понятия вычислимой функции. Эти понятия нуждаются в уточне-
уточнении, прежде чем они станут основой для математической
теории вычислимости или невычислимости.
Определения будут даны в терминах простого «идеализи-
«идеализированного компьютера», который выполняет программы. Ясно,
что процедуры, которые могут быть проделаны реальным
компьютером, являются примерами эффективных процедур.
Однако каждый отдельный реальный компьютер ограничен
как величиной чисел, которые поступают на вход, так и раз-
размером доступного рабочего пространства (для запоминания
промежуточных результатов); именно в этом отношении наш
«компьютер» будет идеализированным в соответствии с нефор-
неформальной идеей алгоритма. Программы нашей вычислительной
машины будут конечными, и мы потребуем, чтобы завершае-
завершаемые вычисления выполнялись за конечное число шагов. Входы
и выходы мы ограничим натуральными числами; это не явля-
является существенным ограничением, поскольку операции, вклю-
включающие другие виды объектов, могут быть закодированы как
операции над натуральными числами. (Более подробно мы
остановимся на этом в § 5.)
2. Машина с неограниченными регистрами
Выбранный нами идеализированный компьютер называется
машиной с неограниченными регистрами (МНР); он является
легким видоизменением машины, впервые рассмотренной Ше-
пердсоном и Стерджисом A963). В этом параграфе мы опишем
МНР и ее работу, а возможности ее начнем исследовать в § 3.
МНР содержит бесконечное число регистров, обозначаемых
через Rlf R2, R3, ..., каждый из которых в любой момент
времени содержит некоторое натуральное число; число, содер-
содержащееся в Rn, мы будем обозначать через гп. Это можно
представить следующим образом:
2. Машина с неограниченными регистрами
R6 R7
r\ [ r2
Гб
МНР может изменять содержимое регистров в ответ на не-
некоторую команду, или инструкцию, которую она может вос-
воспринять. Эти команды соответствуют чрезвычайно простым
операциям над числами. Конечный список команд образует
программу. Команды бывают следующих четырех видов.
Команды обнуления. Для каждого п=1, 2, 3, ... име-
имеется команда обнуления Z(n). Команда Z(n) заставляет МНР
заменить содержимое Rn на 0, не затрагивая другие регистры.
Пример. Пусть МНР находится вначале в следующий кон-
конфигурации:
R, R2 R3 R4 Rs 5б
23
и выполняет команду обнуления Z C). Результатом будет
конфигурация
О 23
Реакция МНР на команду обнуления Z (п) обозначается через
О—* Rn или гп: = 0 (читается, как гп становится 0).
Команды прибавления единицы. Для каждого п=1,
2, 3, ... имеются команды S(n). Под действием команды S (п)
МНР увеличивает содержимое регистра R^ на 1, оставляя
без изменения содержимое других регистров.
Пример. Пусть МНР находится в указанной выше конфи-
конфигурации (*) и выполняет команду SE). Тогда новая конфи-
конфигурация будет
R2
R4 Rs
Г)
0 23 8
Действие команды прибавления единицы S (/г) обозначается
через гп+ 1 —> Rn или гп\гп+ 1 (гп становится гп+ 1).
Команды переадресации. Для каждого т=1, 2, 3, ...
и п=1, 2, 3, ... имеется команда переадресации Т(т, п).
Ответом МНР на команду Т(т, п) является замена содержи-
Гл. 1. Вычислимые функции
мого Rn числом гт1 содержащимся в Rm (т. е. перенос rm \
Rn)\ все другие регистры (включая Rя) не затрагиваются это?
командой.
Пример. Пусть МНР находится в указанной выше конфи
гурации (**) и выполняет команду ТE,1). Тогда результатоме
будет конфигурация
1x1 гч2 Кэ ж\4 *>3 Кб
23 8
Действие команды переадресации Т(т, п) на МНР обознача-г
ется через rm—+Rn или rn:=rM(rn становится гт).
Команды условного перехода. В работе неформально-
неформального алгоритма могут быть моменты, когда предписываются аль-
альтернативные возможности действия, зависящие от результата
работы алгоритма к этому моменту. В других ситуациях может
потребоваться повторить программу несколько раз. МНР мо-
может выполнять такие процедуры, используя команды условно-
условного перехода] они позволяют делать скачки вперед и назад в
списке команд. Мы будем использовать команду условного
перехода для совершения, например, следующего действия:
«Если г2 = гЛ, перейти к 10-й команде программы, в против-
противном случае перейти к следующей команде программы». Ко-
Команда, вызывающая это действие, записывается как J B, 6, 10).
Вообще, для всех т=1, 2, 3, ...; л=1, 2, 3, ... и
<7=1, 2, 3, ... имеются команды J(m, n, q). Реакция МНР
на команду J (m, n, q) состоит в следующем. Предположим,
что эта команда встретилась в программе Р. Сравнивается
содержимое регистров Rm и Rn, но оба регистра остаются не-
неизменными. Далее, если г/я = гя, то МНР переходит к выпол-
выполнению q-\\ команды программы Я; если гтфгп, то МНР пе-"
реходит к выполнению следующей команды в Р. Если услов-
условный переход невозможен ввиду того, что в Р меньше чем q
команд, то МНР прекращает работу.
Команды обнуления, прибавления единицы и переадреса-
переадресации называются арифметическими.
Действия МНР, выполняющей команды указанных четы-
четырех типов, суммированы в табл. 1.
Вычисления. Чтобы производить вычисление, МНР должна
быть снабжена программой Р и начальной конфигурацией, т. е.
последовательностью alt a9f a8, ... натуральных чисел в ре-
регистрах R,, Ra, Rs, .... Предположим, что программа Р
состоит из последовательности s команд /lf /я, ..., /,. МНР
2. Машина с неограниченными регистрами
19
Таблица 1
Тип команды
Обнуление
Прибавление единицы
Переадресация
Условный переход
Команда
Z(n)
S(n)
Т (m, n)
J (/л, tiy q)
Ответ МНР
Замена гп на 0 @ -+R,, или гп: =
0)
Прибавление 1 к rn(rn+1 -+Rn
ИЛИ Гп' — ТпЛ~ 0
Замена ги на rm (rm-*Rn или
Если гт = гПУ то перейти к ^-й
команде; в противном случае
перейти к следующей команде
начинает вычисление с команды /1э затем выполняются /2, /8
и т. д. до тех пор, пока не встретится команда вида J (m, л, q).
В этом случае МНР переходит к выполнению команды, пред-
предписанной J(m, n, q) и текущим содержанием регистров Rm и
Rn.
2.1. Пример. Рассмотрим следующую программу:
/, J(l, 2, 6)
/. SB)
/. SC)
/4 J(l, 2, 6)
/6 J(l. 1, 2)
/. TC, 1)
Рассмотрим вычисление на МНР с такой программой при
начальной конфигурации
Ri
9
Rj
7
R3
0
R4
0
Rs
0
(Мы сейчас не касаемся вопроса о том, какую функцию фак-
фактически вычисляет эта программа, а хотим лишь продемонст-
продемонстрировать, как МНР работает по программе чисто механиче-
механическим образом, не нуждаясь в понимании алгоритма, который
выполняется ею.)
Ход вычисления можно представить, записывая последо-
последовательно сверху вниз конфигурации машины вместе со сле-
следующей командой, к которой она переходит на данном шаге.
20
Гл. L Вычислимые функции
Начальная
конфигурация 9 7
Ri R2 R3 R4 R5
Следующая команда
9 7 0 0 0
1г {так как Г\ ФГг)
9 8 0 0 0
О О
8
О О
J5 {так как rtfr^}
1г {так как Г\ ¦* rz)
и т. д. (Ниже мы продолжим это вычисление.)
В общих чертах можно описать работу МНР по программе
р=1112 ... Is следующим образом. МНР начинает работу с
выполнения команды /,. Пусть в некоторый будущий момент
вычисления МНР выполняет команду /Л. Тогда после ее вы-
выполнения МНР переходит к следующей команде в вычислении,
определяемой так:
если Ik не является командой условного перехода, то сле-
следующей командой (в вычислении!) оказывается /Л+1;
если /ft = J(m, /г, g)f то следующей командой в вычислении
будет lqt если rm — rnf и /*+1 в противном случае,
где гт и гп—текущие содержимые регистров Rm и Rn соот-
соответственно.
МНР продолжает работать таким образом так долго, как
это окажется возможным; вычисление останавливается тогда
и только тогда, когда нет следующей команды, т. е. когда
МНР только что выполнила команду и «следующая команда
в вычислении есть Iv, где u>s». Это может произойти одним
из способов:
(i) если k = s (выполнена последняя команда в Р) и /,—
арифметическая команда;
(ii) если /* = J(m, n, q), rm = rn и q > s;
(iii) если /fe = J(m, n% q), гтфгп и fc = s.
Мы скажем тогда, что вычисление остановилось после выполне-
выполнения команды /Л; заключительная конфигурация есть последова-
2. Машина с неограниченными регистрами
21
льность г^ г^ г^ содержимого регистров на этом шаге.
Продолжим теперь вычисление, начатое в примере 2.1.
Пример 2.1 (продолжение)
Ri R2 R3
Заключитель-
Заключительная
конфигура-
конфигурация
9
9
9
9
2
8
9
9
9
9
1
1
2
2
2
R4
0
0
0
0
0
R5
0
0
0
0
0
Следующая команда
... h
и
I6 (так как Г\~гг)
/7: останов
Здесь вычисление прекращается, поскольку в программе
нет 7-й команды.
2.2. Упражнение. Проведите вычисление по программе при-
примера 2.1 с начальной конфигурацией 8, 4, 2, 0, 0, ....
Сущность программы и ход вычисления часто удобно опи-
описывается неформально с помощью диаграммы переходов (или
блок-схемы). Например, диаграмма переходов программы из
примера 2.1 приведена на рис. 1Ь. (В стороне справа от диа-
диаграммы переходов мы указали типичную конфигурацию ре-
регистров на различных этапах вычисления.) Примем соглаше-
соглашение о том, что условия проверки (соответствующие командам
условного перехода) помещаются в ромбах.
Перевод этой диаграммы переходов в программу из при-
примера 2.1 почти очевиден. Заметим, что переход назад по про-
программе в ответ на «нет» второго условия «гх — г%Ъ осуществля-
осуществляется по 5-й команде J A, 1, 2), которая является безусловным
переходом: rl = r2 всегда имеет место, так что эта команда
всегда вызывает переход к /а.
При написании программы, реализующей данный алгоритм,
часто в качестве промежуточного шага оказывается полезным
составление неформальной диаграммы переходов (или блок-
схемы): преобразование блок-схемы в программу затем ока-
оказывается обычно шаблонным делом.
Бывают, конечно, вычисления, которые никогда не закан-
заканчиваются: например, никогда не оканчивается никакое вычио
22
Гл. 1. Вычислимые функции
ление по простой программе S(l), J(l, I, 1). Вычисление по
этой программе представлено блок-схемой на рис. 1с. Коман-
Команда условного перехода все время заставляет МНР возвра-
Начало
Типичная конфигурация
*М &2 3
После к циклов
8 той программе
Если
\z+*\y+k z+k
Останов
Рис. lb. Блок-схема программы из примера 2.1.
щаться (т. е. делать петлю) к команде S(l). Встречаются бо-
более сложные способы, когда вычисление может продолжаться
бесконечно долго, но всегда это, по существу, обусловлено
повторением цикла при выполнении программы.
2.3. Упражнение. Покажите, что вычисление по программе
из примера 2.1 с начальной конфигурацией 2, 3, 0, 0, 0, ...
никогда не останавливается.
3. МНР-вычислимые функции 23
Позднее мы вернемся к проблеме разрешения: остановится
ли в конце концов произвольно выбранное вычисление?
Теперь нам окажутся полезными некоторые обозначения.
Пусть аХ9 а2У а3, ...— бесконечная последовательность эле-
Ментов N, а Р — программа; мы будем обо-
обозначать и записывать: Начало
A) через Р(аи а2У а8, ...) вычисление |
по программе с начальной конфигурацией
#!, #2» з» »
B) Р(а19 а2, а8, ...)! обозначает,
что вычисление Р(аи а2, а3, ...) в конце
концов останавливается;
C) Р(аи а2, а8, ...)t означает,
что вычисление Р(а1У а2, аз) никогда не рис \Сш
останавливается.
В большинстве случаев в рассматриваемых нами началь-
начальных конфигурациях все ah кроме конечного их числа, равны 0.
Поэтому удобным оказывается следующее обозначение. Пусть
а:, а2.. мп — конечная последовательность натуральных чисел;
мы записываем
D) через Р (аи а2, ..., ап) вычисление Р (аг, а2, ...
.... аПУ 0, 0...).
Следовательно,
E) P(alt aa, ..., ап)\ означает, что Р(а1У аа, ..., апч
0, 0...)|;
F) Р (alf а2, ..., ап)\ означает, что Р(alt а2,..., ая, 0,0,...)]
Часто говорят, что вычисление, которое останавливается,
сходится, а то вычисление, которое никогда не останавли-
останавливается, расходится.
3 МНР-вычислимые функции
Предположим, что /—функции из N" в N (п^1); что
означает выражение: «функция f вычислима на МНР?»
Ьстественно представлять себе ответ в терминах вычисления
значения f(alt ..., ап) по программе Р с начальной конфи-
конфигурацией а19 а2, ..., апУ 0, 0, ..., т. е. мы рассматриваем
вычисления вида Я(а,, а2, ..., ап). "Если каждое такое вы-
вычисление останавливается, нам нужно получить единственное
число, которое мы сможем рассматривать как выход или ре-
результат вычисления; можно условиться считать результатом
число г19 содержащееся в регистре Rx в конце вычисления.
Окончательное содержимое других регистров мы можем рас-
рассматривать как избыточную и ненужную информацию и не
24 Гл. L Вычислимые функции
обращать на него внимания, коль скоро мы получили тре-
требуемый результат в RL.
Так как вычисление Я(ах, ...,а„) может не завершаться,
мы должны распространить это определение вычислимости
на функции из Нп в N, область определения которых отли-
отличается от целого N", т. е. на частичные функции. Мы лишь
потребуем, чтобы осмысленные вычисления заканчивались
(и давали правильный результат!) в точности для всех входов
из области определения функции /. Таким образом мы при-
приходим к следующим определениям.
3.1. Определения
Пусть /—частичная функция из Ып в N.
(a) Предположим, что Р—программа, а аи ..., аПУ b?N.j
(i) Вычисление P(alt a2, ..., ап) сходится к Ь, если
Р (alf ..., ап)\ и в заключительной конфигурации в регистре
Rx находится Ь. Этот факт записываем как P(alt ..., an)\b\
(ii) программа Р МНР-вычисляет f, если для всех
а1э ..., а„, Ь имеет место Р(а1У ..., ап)\Ь тогда и только
тогда, когда (аи ..., an)GDomf и f(aly . ..,ая) = й. (В част-
частности, это означает, что Р(аи ..., an)i тогда и только тогда,
когда (аи ..., an)?Domf.)
(b) Функция / является МНР-вычислимой, если сущест-
существует программа, которая МНР вычисляет /.
Класс МНР-вычислимых функций обозначается через #, а
класс n-местных МНР-вычислимых функций—через #„.
С этого момента под термином вычислимое мы будем подра-
подразумевать МНР-вычислимое, за исключением гл. 3, в которой
обсуждаются другие понятия вычислимости.
Рассмотрим теперь некоторые легкие примеры вычисли-
вычислимых функций.
3.2. Примеры
(а) х + у.
Мы получим x + yt прибавляя 1 к х (используя соответ-
соответствующие команды) у раз. Программа вычисления х + у на-
начинается с начальной конфигурации х, у, 0, 0, ...; наша
программа продолжает прибавление 1 к г1У используя R8 как
счетчик числа прибавлений 1 к гг. Типичной конфигурацией
в процессе вычисления является
Rl R* R3 R4 |^5
JC + *
3. МНР-вычислимые функции
25
программа спроектирована на останов, когда k = y4 при этом
регистре Rx оказывается число х + у> что и требуется.
Процедура, которую мы хотим реализовать в нашей про-
программе, представлена блок-схемой на рис. Id. Осуществляет
работу МНР следующая программа:
h
h
h
и
JC,2,
S(l)
SC)
J(l, 1,
5) ¦"¦
I)—1
(Пунктирная стрелка, которая не является частью программы,
показывает читателю, что от заключительной команды всегда
совершается переход к первой команде.) Заметим, что оста-
останов может осуществляться командой условного перехода к /6,
Начало
Hem
Останов
Рис. Id. Блок-схема программы сложения (пример 3.2(а)).
которой у нас нет. Таким образом, функция х + у оказы-
оказывается вычислимой.
~lj если х>0'
Q> если Jt = O.
(Так как мы ограничились рассмотрением функций из N в N,
то это наилучшая аппроксимация функции х—1.)
Напишем программу, реализующую следующую процедуру.
Для данной начальной конфигурации х% 0, 0, 0,... сначала
проверить, верно ли х = 0; если да, остановиться, в против-
противном случае изменить содержимое двух счетчиков, содержащих
26
Гл. 1. Вычислимые функции
k и /г+1, начиная с k = 0. Типичной конфигурацией зде
будет
i R2
R4
Проверяем, верно ли, что х = /е+1; если да, то результата
вычисления служит k\ в противном случае увеличиваем со
держимое обоих счетчиков на единицу и проверяем снова
Начало
Нет*
/
Типичная
конфигурация
R3
Останов
Рис. le. Блок-схема для дс—1 (пример 3.2(Ь)).
Блок-схема, представляющая эту процедуру, изображена
на рис. 1е. Ниже записана сама программа этой процедуры:
3. МНР-вычислимые функции
27
h J(l,4,9)
/2 SC)
/, J(l,3,7) -
U SB)
/5 SC)
h J(l. 1,3) —'
/7 TB,l)
Таким образом функция дс—1 вычислима.
()Д) (
( не определена, если х нечетно.
В этом примере Dom/ = E (множество четных чисел), т. е. мы
должны проверить, что наша программа не останавливается
на нечетных входах.
Функция f(x) вычисляется с помощью следующего алго-
алгоритма. Изменяется содержимое двух регистров, в одном из
Начало
—•»<
6Ki ^s
Hem
Рис. П. Блок-схема для примера 3.2(с).
которых находится число k, а в другом 2k, где k пробегает
ряд значений 0, 1, 2, 3, ...; для последовательных значе-
значений k проверить, верно ли, что x = 2k\ если верно, то ответ
есть k\ в противном случае увеличить k на единицу и повто-
повторить предыдущую команду. Если х нечетно, то эта процедура,
очевидно, никогда не закончится.
28 Гл. 1. Вычислимые функции
Типичной конфигурацией будет
Ri R2 R3 R4
2k \ к О
с исходным значением 6 = 0. Блок-схема этой процедуры при
ведена на рис. If. Реализует ее следующая программа:
h
h
/3
/4
/.
/.
J
s
s
s
J
T
A.
C)
B)
B)
A.
C,
2,
1,
1)
6)
1)
Следовательно, функция / вычислима.
Замечание. Программы в приведенных примерах, конечно,
не являются единственными программами, которые вычисляют
эти функции.
Для каждой программы Р (т. е. любого конечного списка"
команд) и п^\ результатом применения программы Р к на-
начальным конфигурациям вида аи а2, ..., а,п О, 0, ... явля-
является единственная я-местная функция, вычисляемая програм-
программой Р и обозначаемая как pf}\ Из этого определения оче-
очевидно, что
(единственное 6, такое, что Р(а1У ...
.... ап)\Ьу если Р(а1% ..., ап) j ;
не определена, если Р (а1У ..., ап)\.
В последующих главах мы рассмотрим вопрос об опреде-
определении рр для любой программы Р.
Ясно, что конкретная вычислимая функция может быть
вычислима многими различными программами; например,
каждую программу можно изменить, добавив команды, ни
разу не применяемые. Менее очевидно то, что могут быть
различные неформальные методы для вычисления конкретной
функции, и после формализации они дадут различные про-
программы для одной и той же функции. В терминах введен-
введенных нами обозначений могут быть различные программы Рх
и Ра с /$| = ^> для некоторых (или всех) п. Позднее мы рас-
рассмотрим проблему, состоящую в выяснении того, вычисляют
ли две программы одну и ту же функцию.
4. Разрешимые предикаты и проблемы 29
3.3. Упражнения
1. Покажите, что следующие функции вычисляются с по-
мошью программ, составленных для этой цели.
10, если * = 0,
(b) /W-5;
| 0, если х = у.
0, если
1.если*>|г.
| 1/Зх, если дс кратно 3,
(e) 1(х, у) — ^ не 0Пределена в противном случае;
(f) f(x) = [2x/3] ([г] обозначает наибольшее целое число,
не превосходящее г).
2. Пусть Р—программа из примера 2.1. Что такое fl
3. Пусть Р—программа без команд условного перехода.
Покажите, что найдется такое число т, что либо f$(x) = m
для всех х, либо f{^(x) = x + m для всех х.
4. Покажите, что для каждой команды переадресации
T(m, /z) существует программа без команд переадресации,
которая на всякой конфигурации МНР дает тот же резуль-
результат, что и Т (m, ri). (Таким образом, команды переадресации
на самом деле избыточны в нашем определении МНР; тем не
менее представляется естественным и удобным иметь такие
команды, облегчающие построение программ.)
4. Разрешимые предикаты и проблемы
Решение вопроса о том, обладают ли числа данным свой-
свойством, является часто встречающейся задачей математики.
Например, задача из примера (l.l)(d) состоит в выяснении
Для двух произвольных чисел х, у вопроса о том, кратно ли
число х числу у. Алгоритм для этой задачи является эффек-
эффективной процедурой*, дающей для входов х, у ответ «да» или
«нет». Если мы условимся, что 1 означает «да», а 0 означает
«нет», то наша "операция сводится к вычислению функции
| 1, если х кратно у,
/ v » У)^*^ о^ если х не Кратно у
Таким образом, можно сказать, что свойство, или предикат
«* кратно (/», является алгоритмически или эффективно раз-
30 Гл. 1. Вычислимые функции
решимшг, или просто разрешимым, если эта функция /
числима.
В общем случае предположим, что М(хи лга, ..., хп)
n-местный предикат на натуральных числах. Характерисп
ческой функцией этого предиката см(х) (здесь х = (х1э..., л
называется функция
1, если М(х) истинно,
0> если M(jc) ложно
4.1. Определение. Предикат М (х) разрешим, если функш
см вычислима; М(х) неразрешим, если функция см невь
числима.
4.2. Примеры
Следующие предикаты разрешимы:
(a) «хфу»: функция / из упражнения 3.3 Aс) являете
характеристической функцией этого предиката.
(b) <а = 0»: характеристическая функция определяется так
1, если х = 0,
0, если хфО.
Функцию g вычисляет следующая простая программа:
J(l, 2, 3)
J(l. 1. 4)
SB)
ТB, 1)
(c) «л: кратно у»: можно написать программу для вычис-
вычисления характеристической функции, но это будет долгим и
сложным делом. Более просто мы установим разрешимость
этого предиката в следующей главе, где будут развиты ме-
методы порождения более сложных вычислимых функций.
Заметим, что, говоря о разрешимости (или неразрешимо-
неразрешимости), мы всюду имеем дело с вычислимостью (или невычис-
невычислимостью) тотальных (т. е. всюду определенных) функций.
В контексте разрешимости свойства или предикаты иногда
называются проблемами. Так, мы можем сказать, что проб-
проблема «хфу» разрешима. В гл. 6 мы займемся неразреши-
неразрешимыми проблемами.
5. Вычислимость на других областях 31
4 3. Упражнение. Покажите, что следующие предикаты раз-
разрешимы:
(a) «
(b) «
(c) «х четно».
5. Вычислимость на других областях
Поскольку МНР работает только с натуральными числами,
наше определение вычислимости и разрешимости применимо
только к функциям и предикатам от натуральных чисел. Эти
понятия легко распространяются на другие виды объектов
(т. е. целые числа, полиномы, матрицы и т. д.) с помощью
кодирования.
Кодированием области D объектов называется явное и
эффективное отображение a:D—> N. Мы будем говорить, что
объект d?D кодируется натуральным числом a(d). Предпо-
Предположим, что / является функцией из D в D\ тогда / естест-
естественно кодируется функцией /• из N в N, которая отображает
код каждого объекта d ? Dom (f) в код объекта / (d). В явном
виде это можно записать как /* = ao/oa.
Теперь можно распространить определение МНР-вычисли-
МНР-вычислимости на область D, полагая функцию / вычислимой, если
/¦ — вычислимая функция натуральных чисел.
5.1. Пример. Рассмотрим область Z. Явное кодирование
можно задать функцией а, где
2я, если я^О,
—2п — 1, если п < 0.
Тогда а'1 задается так:
1 / ч I -сгт> если т четно,
\ —1/2 (т+1), если т нечетно.
Теперь рассмотрим функцию х— 1 на Z; обозначая эту функ-
функцию через /, получаем /*:N—»N, задаваемую
1, *если х = 0 (т. е. х=а@)),
х—2, если дс> 0 и х четно (т. е. х = а(п),
х + 2, если х нечетно (т. е. * = а(я), п < 0).
Написание программы, которая вычисляет /•, является ру-
рутинным упражнением; итак, х—1 есть вычислимая функция
на Z.
32 Гл. 7. Вычислимые функции '
Приведенное выше определение очевидным образом pat
ширяется на n-местные вычислимые функции на области D
разрешимые предикаты на D.
5.2. Упражнения
1. Покажите, что функция 2х на Z вычислима.
2. Покажите, что предикат «х^О» на Z является разре
шимым.
Глава 2
Порождение вычислимых
функций
Как мы увидим в этой главе, различные способы комби-
комбинирования вычислимых функций приводят к другим вычис-
вычислимым функциям. Это дает нам возможность очень быстро
устанавливать вычислимость многих обычно встречающихся
функций, не прибегая всякий раз к выписыванию програм-
программы— занятию довольно трудоемкому и утомительному.
1. Основные функции
Сначала мы заметим, что некоторые особенно простые
функции вычислимы; из этих основных функций (определенных
ниже в лемме 1.1) мы построим более сложные вычислимые
функции, используя технику, развитую в следующих пара-
параграфах.
1.1. Лемма. Следующие основные функции вычислимы:
(a) нуль-функция 0@(л:) = 0 для всех х)\
(b) функция следования х+1\
(c) для каждых п^\ и 1<л<|п функция проекции UJ,
определяемая посредством Щ(хи x2t ..., хп) — х{.
Доказательство. Эти функции соответствуют арифметиче-
арифметическим командам для МНР. Конкретно их программы таковы:
(a) 0: программа Z(l);
(b) х+l: программа S(l);
(c) (/?: программа T(f, 1). ?•
2. Соединение программ
В каждом из нижеследующих § 3—5 нам понадобятся
программы, которые содержат другие программы в качестве
подпрограмм. В этом параграфе мы рассмотрим некоторые
технические средства, позволяющие строить программы из
последних параграфов наиболее прямым способом.
Простым примером построения программ может послужить
следующий. Мы располагаем программами Р и Q и хотим
написать программу для следующей процедуры: сначала де-
лай Pt а затем Q. Интуитивно хочется просто написать под
JV8 862
34 Гл. 2. Порождение вычислимых функций
командами программы Р команды программы Q. Но тут е
но рассмотреть два технических момента.
Пусть Р = 1и /2, ..., /,. Вычисление по программе
завершается, когда следующая команда в вычислении t
Iv для некоторого v > s; в этом случае в нашей состав
программе необходим переход к первой команде Q. Это и
изойдет автоматически, если v = s+l, но не в других с
чаях. Поэтому при построении составных программ нам ci
дует ограничиться рассмотрением лишь тех программ, кото|
останавливаются только тогда, когда следующей коман,
является /,+1. Говорят, что такие программы имеют спи
дартный вид. Очевидно, что нестандартную остановку мо|
вызывать лишь команды условного перехода. Так мы при,
дим к следующему определению.
2.1. Определение. Программа P = It, /2, ..., /, имеет спи
дартный вид, если для всякой команды условного перехс
J (m, п, q) в Р мы имеем q^s + 1-
Примеры. В примерах 1-3.2 программы для (а) и (с) име
стандартный вид, тогда как программа в (Ь) оказывает
нестандартного вида.
Требование стандартного вида, как мы сейчас увидим,
накладывает ограничения общности.
2.2. Лемма. Для каждой программы Р существует програщ
Р* стандартного вида, такая, что всякое вычисление по пр
рамме Р* идентично соответствующему вычислению по при
рамме Р за возможным исключением способа остановки,
частности, для любых alt ..., ап, Ь
Р(ах, ..., ап) I b тогда и только тогда, когда Р* (аи ..., ап) |
а, следовательно, № = [$1 для всех п > 0.
Доказательство. Предположим, что P = /lf /a, ..., У
Чтобы получить из Р программу P*t достаточно просто изм
нить команды условного перехода так, чтобы все останов
происходили после условных переходов к команде Is+1. П
ложим P* = /i, /J, ..., /s*, где, если Ik не является кома!
дой условного перехода, то /л = /л'» а если /* = J (m, /г, q), i
/•_ / '*» если <7<s+l,
*"l J (m, n, s+l), если q> s+1.
Тогда, очевидно, Р* удовлетворяет требованиям леммы. С
Предположим теперь, что программы Р и Q имеют ста!
дартный вид. Вторая проблема, возникающая при соедин
нии программ Р и Q, связана с командами условного пер
2. Соединение программ 35
хода в Q. Команда J (m, л, q) в Q предписывает переход к
j.fl команде в Q (если гт=*гп). Но q-я команда Q будет
(s + <7)"** командой в составной программе; таким образом
каждый переход J (m, n, q) в Q должен быть заменен на пе-
переход J (ю. n, s + ^) в составной программе, чтобы сохранить
смысл программы.
Теперь без всяких трудностей можно определить соедине-
соединение, или конкатенацию двух программ стандартного вида.
2.3. Определение. Пусть Р и Q—программы стандартного вида
длины s и t соответственно. Соединением, или конкатенацией,
р и Q (в записи: PQ или PQ) называется программа /lf ...
..., /5» /*+i» • ••» Л+t» гдеР^Л, ..., /„ а команды /,+1, ...
..•> ^+* СУТЬ команды программы Q, у которых каждый
условный переход J (m, n, 9) заменен на J(m, n, s + ?).
Очевидно, что при таком определении результат действия
PQ будет тот, который нам необходим: каждое вычисление
по программе PQ совпадает с соответствующим вычислением
по программе Р, за которым следует вычисление по програм-
программе Q, начатое в заключительной конфигурации программы Р.
Прежде чем перейти к основным задачам этой главы, рас-
рассмотрим еще два вопроса. Предположим, что мы хотим соста-
составить программу Q, содержащую данную программу Р в ка-
качестве подпрограммы. Чтобы написать Q, часто бывает важно
найти некоторые регистры, не затронутые вычислением по
программе Р. Это можно сделать следующим образом.
Поскольку программа Р конечна, найдется наименьшее
число ы, такое, что ни один регистр Rv с v > и не затронут
вычислением по программе Р, т. е. если Z(n), или S(n)t или
Т (т, я), или J (m, n, q) является командой Р, то m, n ^ и.
Очевидно, на протяжении всего вычисления по программе Р
содержимое регистра Rv с v > и остается без изменения и
не оказывает никакого воздействия на ги ...# гд. Тогда при
составлении новой программы Q можно использовать регист-
регистры Rv для v> ы, например, для запоминания информации,
без всякого воздействия на вычисление по подпрограмме Р.
Обозначим это число и через р(Р).
И наконец, введем одно обозначение, которое должно
сильно упростить основные доказательства этой главы. Пусть
Р — программа стандартного вида, вычисляющая функцию
'(*i. •••» хп). Часто, когда Р используется как подпрограм-
ма большей программы, входы хх хп, для которых нуж-
нужно найти значение f(xl9 ..., xn)t записываются в регистрах
R/,, ..., R/ , а не в Rlf ..., Rn, как требуется в програм-
МеР; выходf(xlt ..., хп), который потребуется в дальнейшем,
36
Гл. 2. Порождение вычислимых функций
можно поместить в регистр R,, а не в Rl9 как было условлено^
наконец, рабочие регистры Rlf ..., Rp(/>> для Я могут
держать разного рода нежелательную информацию. Мож
модифицировать Я, принимая во внимание все эти детали.
Начало
Перенести х из
Оштить
/(*) •+> Rt (используя Р)
Останов
Рис. 2а. Блок-схема программы Р [/lt ...,
•П.
Обозначим через Я [/ь ..., /„—>/] программу на рис. ?
транслирующую блок-схему в левой части рисунка. Пр
грамма Р [1и ..., /„—*>/] вычисляет f[rlx% ..., rt ) и помеща
результат в R,. Кроме этого, программа затрагивает толы
регистры Rlt R8, . .., Rp (р, и Rr (В определении Р[1и .
..., 1п —> /] мы предполагаем, что регистры Rlft ..., R
отличаются от Rb ..., Rn; так будет во всех случаях, ког^
мы будем применять эти обозначения. Читатель долж
суметь изменить определение в ситуациях, где это не име
места.)
3. Подстановка
Обычный способ построения новых функций из стар*
состоит в подстановке одних функций вместо аргументов
другие, известный иначе под названием композиции функци
3. Подстановка
В следующей теореме мы покажем, что* применяя подста-
подстановку к вычислимым функциям, мы получаем снова вычисли-
вычислимые функции. Иными словами, класс % замкнут относительно
оПерации подстановки.
3.1. Теорема. Пусть f(y19 ..., yk) и g,(x) gh(x), где
=z(Xi хп)> сУть вычислимые функции. Тогда и функция
f ((*). • • •. gk(х)) вычислима.
(Замечание. Функция h(x) определена тогда и только
тогда, когда все функции gx(x), ..., gk(x) определены и
(gi (х), • • •» gk(x)) 6 Dom (f); таким образом, если f и g1 (х), ...
..., gk(x) суть тотальные функции, то и Л—тотальная функ-
функция.)
Доказательство. Пусть программы F9 Glt ..., Gh стан-
стандартного вида вычисляют функции /, gu ..., gh соответст-
соответственно. Напишем программу Я, которая осуществляет следую-
следующую естественную процедуру для вычисления h. «Для дан-
данного jc, используя программы 6и ..., Gkt вычисляйте после-
последовательно gi(x)t ..., gk(x), записывая их значения в порядке
их вычисления. Затем примените программу F для вычисления
/4 ()U
Нужно принять небольшие меры предосторожности, чтобы
избежать потерь информации, которая потребуется на более
поздних шагах процедуры, а именно х и те значения ?/(*),
которые уже получены. Полагая /и = тах(л, Л, p(F), p(Gj), ...
.., p(Gk)), мы начнем с запоминания х в R«+i, ..., Rm+n;
регистры Rm+n+t, ..., Rm+/I+* будут использованы для запо-
запоминания значений g/(x), когда они будут вычислены при t=
= 1, 2, ..., к. Эти регистры совершенно не затрагиваются
вычислениями по программам F, Glt ..., Gk. Типичной кон-
конфигурацией при вычислении по программе Н будет следующая:
Регистры памяти
ф)
Неформальная- блок-схема для вычисления R дана на
рис. 2Ь. Ее легко транслировать в следующую программу Я,
которая вычисляет h\
Т(Л, /72
38_
Гл. 2, Порождение вычислимых функций
Gl[m+ltm+2t . •., т+п-+т+п+1] (Вспомните значенед
этих записей из § 2J
Gk[m+lt m + 2,
F[ + + \
Очевидно, что вычисление Н(х) будет заканчиваться тогда
и только тогда, когда заканчиваются каждое из вычислений
Начало
Запомнить х в
Останов
Рис. 2Ь. Подстановка (теорема 3.1).
Qt (x) A < I < k) и вычисление F (gx (x)t ..., gk (*)), что и
6
Новые функции можно получить перестановкой и отож-
отождествлением переменных или добавлением новых фиктивных
3. Подстановка 39
переменных; например, из функции f(ylf yt) можно получить
hx (xlt х%) ~ f (х2, хг) (перестановка),
ht(x)~f(x, x) (отождествление),
Ьъ\хи х*> *а) — /(**» хь) (добавление фиктивных
переменных)
Следующее применение теоремы 3.1 показывает, что каждая
из этих операций (или их комбинаций) преобразует вычисли-
вычислимые функции в вычислимые же функции.
3.2. Теорема, Пусть f(ylf ..., уk)—вычислимая функция и
*л» •••»*/ —последовательность из k переменных хи ..., хп
(возможно, с повторениями). Тогда функция Л, определяемая
соотношением h(xif ...f xn)~f(xiit ..., х{ ), вычислима.
Доказательство. Полагая х = (хг, ..., xn)t получаем функ-
функцию Л (х) = / (Uit (х), ..., U?k (x))t которая вычислима согласно
лемме 1.1 (с) и теореме 3.1. ?
Используя этот результат, можно убедиться в том, что
теорема 3.1 остается также справедливой, когда подставляе-
подставляемые в / функции glt ..., gh не обязательно зависят от всех
переменных х19 ..., хп% как в следующем примере.
3.3. Пример. Функция f(xlt xtt xs) = xl-\-xi+x9 вычислима;
это можно вывести из того факта, что вычислима функция
х + у (пример 1-3.2(а)), подставляя хх + х% вместо х и х9 вме-
вместо у в
Подстановка в сочетании с принципом, описываемым в сле-
следующем параграфе, дает мощный метод порождения вычис-
вычислимых функций.
3.4. Упражнения
1. Не составляя программ, покажите, что для каждого
w€N следующие функции вычислимы:
(a) т (напомним, что т(х) = т для всех х),
(b) тх.
2. Пусть функция f(x, у) вычислима и m?N. Покажите,
что функция h(x)~f(x9 m) вычислима.
3. Предположим, что g(x)—всюду определенная (или то-
тотальная) вычислимая функция. Покажите, что предикат М (х, у),
задаваемый посредством М(х, */) = (#(*) = */), разрешим.
40 Гл. 2. Порождение вычислимых функций _
4. Рекурсия
Рекурсия—это способ задания функции путем определения]
каждого из ее значений в терминах ранее определенных зна^
чений и, возможно, использования других уже определен-
определенных функций.
Для уточнения предположим, что f(x) и g(x, у, г) суть
функции (не обязательно тотальные или вычислимые). Рас-
Рассмотрим следующее «определение» новой функции h(x% у):
D.1) (i) Л (ж, О)~/(лг),
(ii) А (ж, y+l)~g{x, у, h(xty)).
На первый взгляд это может показаться несколько стран-
странным определением, потому что в (ii) Л определяется в терми-
терминах самой функции Л—порочный круг?! Однако, немного по-
подумав, мы убеждаемся в том, что это корректное определе-
определение: чтобы найти, например, значение Л(х, 3), сначала нахо-
находим Л (jc, 0) по D.1) (i); затем, зная h(x, 0), используем D.1)
(ii) для получения A(jc, 1); аналогично получаем h{x, 2) и,
наконец, h(x, 3) повторным применением D.1)(ii). Таким
образом, порочного круга в определении удается избежать
ввиду того, что, если определено одно значение h(x> y)t ос-
остальные определяются через полученные ранее.
Про функцию Л, определенную таким образом, говорят,
что она определяется рекурсией из функций / и g\ уравне-
уравнения D.1) известны под названием уравнений рекурсии. Если
хотя бы одна из функций / и g не тотальна, то и Л, опре-
определенная уравнениями D.1), может не быть тотальной, т. е.
может быть не всюду определенной; область определения А
удовлетворяет условиям: (лг, 0) ? Dom (Л) тогда и только тогда,
когда x?,Dom(f)\ (jc, t/+0€Dom(/i) тогда и только тогда,
когда (х, у) 6 Dom (Л), а (х, уъ h(xt y))?Dom(g).
Проведенное выше рассуждение мы подытожим следующей
теоремой, доказательство которой опускается.
4.2. Теорема. Пусть х — (хи ..., xn)t и предположим, что
f(x) и g(x, уу z) суть функции; тогда существует единствен-
единственная функция А(х, у), удовлетворяющая уравнениям рекурсии
А(*. 0)-/(*),
Л(дг, y+\)~g(x, (/, h(xt у)).
-¦ Замечание. Когда /2 = 0 (т. е. параметры х не представ-
представлены), уравнения рекурсии принимают вид
, где
4. Рекурсия 41
4.3. Примеры
(а) Сложение: для любых х9 у
Таким образом сложение (т. е. функция h(x9 y) = x-fy) опре-
определяется посредством рекурсии над функциями /(л;) = дг и
g{x, У, 2) = z+l.
(b) y\: на основании соглашения о том, что 01 = 1, имеем
0! = 1
Стало быть, функция у\ определена рекурсией из 1 и функ-
функция g(y9 z) = z(y+ 1).
Известны более общие виды определений по рекурсии, чем
тот, который мы рассмотрели; пример тому встретится в § 5,
а более полное обсуждение этого вопроса будет проведено
в гл. 10. В тех контекстах, где рассматриваются рекурсии
более общего вида, чрезвычайно простая рекурсия D.1) назы-
называется примитивной рекурсией.
Многие часто встречающиеся функции легко определяются
посредством (примитивной) рекурсии, поэтому для установле-
установления вычислимости чрезвычайно полезной оказывается следую-
следующая теорема. Коротко говоря, в ней доказывается, что класс
% замкнут относительно операции рекурсии.
4.4. Теорема. Пусть f(x) и g(xt yt г)—вычислимые функции,
где х = (х19 .... хп); тогда функция h(xt y)t полученная из j
и g с помощью примитивной рекурсии, вычислима.
Доказательство. Пусть F и G—программы стандартного
вида, которые вычисляют функции f(x) и g(xt yt г). Мы по-
построим программу Н для функции h(xt у), определенной ре-
рекурсивными уравнениями 4.1. При заданной начальной кон-
конфигурации xlt...9 хп> у, 0, 0, 0, ... программа Я сначала
вычисляет h(x9 0) (применяя F)\ затем если уфО9 то Я при-
применяет (многократно!) программу G для последовательного
вычисления А (х9 1), h(x, 2), ...9h(x> у) и затем останавли-
останавливается.
Пусть m = max (л + 2, p(F), p(G)); начнем с запоминания
х> у ъ регистрах Rm+1, ..., Rm+n+i; следующие два регистра
используются, чтобы запоминать текущие значения чисел А
и h(x, k) для fe = 0, 1, 2, ..., у. Обозначая сумму т + п
церез /, рассмотрим типичную конфигурацию процесса вычис-
вычисления:
42
Гл. 2. Порождение вычислимых функций
Регистры памяти
R#+a R#+3
Здесь первоначально fe = 0.
Неформальная блок-схема для этой процедуры дана на
рис. 2с. Эта блок-схема легко транслируется в следующую!
Начало .
(вначале к-0)
Запомнить х <
(Конфигурации
на том шаг*
есть (*))
Останов
Рис. 2с. Рекурсия (теорема 4.4).
программу #, которая вычисляет функцию А:
T(« + l, m+n+1)
F[l, 2 л-*<
4. Рекурсия 43
/ J(< + 2, < + 1, р)
G[m + 1, ..., т + п,
S(t + 2)
J(l, 1, Я)
I T(t + 3, 1).
Следовательно, функция Л вычислима. Q
Теперь продолжим применение теорем 3.1 и 4.4 для ком-
компиляции семейства вычислимых функций. Так как это семей-
семейство потенциально бесконечно, на наш выбор функций окажут
влияние 1) необходимость последовательного развития данной
теории и 2) стремление подтвердить тезис о том, что все функ-
функции, представляющиеся нам вычислимыми в неформальном
смысле, являются в действительности МНР-вычислимыми, По
причинам, которые станут ясными позднее, мы включим в
семейства некоторые функции, такие, как х + у и х— 1, для
которых мы уже составили ранее программы.
Снова будем использовать тот факт, что, согласно теоре-
теореме 3.2, в определении функции рекурсией D.1) вычислимые
функции f и g не обязательно должны зависеть от всех пере-
переменных, для того, чтобы функция А была вычислимой.
4.5. Теорема. Следующие функции вычислимы. (Доказатель-
(Доказательства приводятся в порядке перечисления функций.)
(a) х + у. Доказательство: В примере 4.3(а) дано опреде-
определение по рекурсии с вычислимыми функциями х и г+1.
(b) х-у. Доказательство: х-0 = 0, х*(у+ 1) = ху+х — это
определение по рекурсии с вычислимыми функциями 0(х) и
Z + X.
(c) ху. Доказательство: л;ов1, х{у+1)=*хУ'Х\ по рекурсии
и (Ь).
(d) х— 1. Доказательство. 0—1=0, (х+1)— 1=х; по
рекурсии.
х—у% если
/ у у
— у=1 (усеченное вычитание)
v 0 в противном случае.
Доказательство: х — 0 = х, х—(у+ 1) = (х — у)— 1; по ре-
рекурсии и (d).
{0, если х = 0,
(ср. с упр. 1-3.3 Aа))
1, О
если
Доказательство: sg @) = 0, sg (x + 1) = 1; по рекурсии,
_ /1, если х = 0,
(g) sg(x) = { (ср. пример 1-4.2(Ь))
I 0, если хфО.
44 Гл. 2. Порождение вычислимых функций
Доказательство: sg(x) = 1 — sg(x); подстановка, (е) и (f
(h) | х—у \. Доказательство: | х—у | = (х — у) + (у -*- х); по;
становка (а), (е).
(i) x\ Доказательство: Пример 4.3(Ь) дает определен»
по рекурсии над вычислимыми функциями.
(j) min(x, y)= наименьшее из х и у.
Доказательство: min(x, t/) = x — (х~ y)\ подстановка.
(k) тах(х, у) = наибольшее из х и у.
Доказательство: тах(л:, у) = х + (у~х)\ подстановка.
A) гт(х, у) = остаток от деления у на х (чтобы полу
нить всюду определенную функцию, условимся, что гт @, у)=*
1
оказательство: Очевидно, что
rm(x, t/)+l, если гт(х, )
o, если rm(*, y)+l=x.
Приходим к следующему рекурсивному определению!
гт(х, 0) = 0,
т{х9 у+1) = (гт(х, y)+l)Sg(\x-{Tm(xt y)+l)\).
Второе уравнение можно записать так:
rm(x, i/+l) = g(x, гт(х, у)),
где g(xf z) = (z+l)sg(\x—{z + \)\), а функция g вычислим
с помощью нескольких применении подстановки.
(m) qt(x, у) = частное от деления у на х (для тоталь
ности qt мы полагаем qt(O, y) = 0).
Доказательство: Поскольку
n\iv ,,-4-П-/чи*. У)+1> если тт(х9 (/)+1=х,
qt(x, У+Ч-\цЦх, у), если т\(х, у)+1фх,
то получается следующее рекурсивное определение с вычис
лимыми функциями:
qt(jcf 0) = 0, _
qt(x, y+l) = qt(xf y) + sg(\x-(rm(x, y)+\)\).
t v .. / ч M, ^^w x|(/ (x делит у),
(n) dw(x, (/) = ^[ Of если х^у\х ш d^
(Принимаем соглашение, что 0|0, но ОХ у, если уфО.) Сле
довательно, предикат х\у разрешим (вспомним определена
1-4.1). _
Доказательство: div(x, (/) = sg(rm(x, y))f т. е. вычислени
с подстановкой. ?
Далее идет ряд полезных следствий, включающих разре
шимые предикаты.
4. Рекурсия 45
4.6. Следствие (определение с разбором всех случаев). Пусть
U (х), •••»/* (х)суть вычислимые функции, а Мх (х)%..., Mk (дг)—
разрешимые предикаты, такие, что для каждого х в точности
один из предикатов Mt (x)f ..., Mk (x) оказывается истинным.
Тогда функция g(x), определенная посредством
ft (jr), если Mt (x) истинно,
ft(x), если М%{х) истинно,
fk(x)> если Mk(x) истинно,
является вычислимой.
Доказательство, g (х) = cMt (x) fx (х) + ... + см^ (х) fk (x) вы-
числима подстановкой с использованием сложения и умно-
умножения. П
4.7. Следствие (алгебра разрешимости). Предположим, что
М{х) и Q(x)—разрешимые предикаты; тогда разрешимы и
следующие предикаты:
(a) ле М(х)\
(b) „М(х) и Q{xr,
(c) „М{х) или Q(x)«.
Доказательство. Характеристические функции этих пре-
предикатов суть:
(a) „не М (*>": 1 — см (ж),
(b) „М{х) и Q(x): cM(x).cQ(x),
(c) ,,М{х) или Q(x)": тах(см{х)9 cQ(x)) (где „или" понима-
понимается в нестрогом или неразделительном смысле).
Каждая из функций в правой части вычислима при усло-
условии вычислимости см и cq с помощью подстановки в функ-
функции из теоремы 4.5. ?
Можно применять рекурсию, чтобы устанавливать вычис-
вычислимость функций, построенных из других функций указан-
указанными ниже способами. Сначала введем некоторые обозначения.
Предположим, что f{x, г)—произвольная функция. Огра-
Ограниченной суммой 2 f(x, z) и ограниченным произведением
п г<у
Н/(.*\ г) называются функции от х, у, задаваемые следую-
Щими рекурсивными уравнениями.
2
г<у+1
46 Гл. 2. Порождение вычислимых функций
2<0
г<у+I \г<у )
4.10. Теорема. Предположим, что f(x9 г)—тотальная вычисли
мая функция; тогда функции 2/0*» *) и П/(*» г) вычислили*
г<у г<у
Доказательство. Уравнения 4.8 и 4.9 являются рекурсш
ными определениями с вычислимыми функциями. П
Легко видеть, что если граница для г в ограниченно
сумме или произведении дается некоторой вычислимой фун!
цией, то результатом будет все еще вычислимая функция, ка
показывает следующее утверждение.
4.11. Следствие. Пусть f(xt г) и k(x9 w)—тотальные вычщ
лимые функции; тогда вычислимы и функции 2*<* (*,«*)/(#, .
и 11к*(*. «)/(•*» г) (°бе эти функции от переменных х% w).
Доказательство. Проводится с помощью подстановки k (x, и
вместо у в ограниченную сумму 2 Д*» *) и ограниченное про
г<у
изведение П f{xf z). ?
Опишем теперь другой полезный способ построения одн*
вычислимых функций из других. Запись \iz <y{...) означав
снаименьшее г, меньшее, чем у, такое, что...». Для того чтоб
сделать это выражение всюду определенным, присвоим ем
значение у, когда такого г не существует. Тогда, например
из заданной функции /(дг, г) можно построить новую фун*
ЦИЮ ?, ПОЛОЖИВ
y)Vy{f ) )
/ наименьшее г<г/, такое, что f(x, z) = 0,
= < если такое г существует;
У у, если такого г не существует.
Оператор \хг < у называется оператором ограниченной минь
мизации, или ограниченным ^-оператором.
4.12, Теорема. Пусть f(xf у)—тотальная вычислимая функ
ция; тогда и функция и2 <#(/(*¦ z)=;0 тотальна и вычис
лима.
Доказательство. Рассмотрим функцию
4. Рекурсия 47
кОторая вычислима согласно следствию 4.11. Для данных х,
у положим zo = fxz<|/(/(jc, z) = 0). Легко видеть, что
если v<z09 то h(x, и)=1;
если zo^.v<y, то h(xt v) = 0.
Таким образом z0 равно числу различных и, меньших у% и
таких, что й(дг, i>)=l, и равно 2 А С*. *>)•
Следовательно,
[iz < у (/ (х, z) - 0) = 2 (П sg (/ (ж .и)))
является вычислимой функцией согласно теореме 4.10. Q
Как и в случае ограниченной суммы и ограниченного про-
произведения, граница в ограниченной минимизации может быть
задана любой вычислимой функцией.
4.13. Следствие. Если f(xf z) и k(xt w) являются тотальными
вычислимыми функциями, то такой же является и функция
\iz<k(x, w)(f(x, z) = 0).
Доказательство. Получается в результате подстановки
k (xf w) вместо у в вычислимую функцию [iz<y{f (х, г) = 0). ?
Из теорем 4.10 и 4.12 вытекает следствие, содержащее
разрешимые предикаты.
4.14. Следствие. Пусть R(x9 у)—разрешимый предикат; тогда
(a) функция f(x, y) = \JLZ<yR(x, z) вычислима;
(b) разрешимы следующие предикаты:
(i) Мг{х9 y)^Vz<yR(x, z),
(ii) M( )R( z).
Доказательство.
И f(x9 y) = \iz<y
(Ь) (О^мЛ^. У) = Цж<ус*(х, z).
(H)Aft(jr, у)-ню (Vz<y (не R(x, г))),
который вычислим согласно (b)(i) и 4.7(а).
Замечание. Как в 4.11 и 4.13, граница на г в этом след-
ствии могла бы быть любой тотальной вычислимой функцией.
Применим теперь указанные выше способы для расшире-
Ния нашего запаса конкретных вычислимых функций и раз-
Решимых свойств.
48 Гл. 2. Порождение вычислимых функций
4.15. Теорема. Следующие функции вычислимы:
(a) D(x) = число делителей х (соглашение: D@)=l),
гм Prfirt-/ lf если х пР°стое>
\и) п \л) — ^ о, если х не простое.
(т. е. предикат их простое число» разрешим),
(c) рх = х-е простое число (принимаем, что ро = 0, тоге
рх = 2, р2 = 3 и т. д.
(d) / показатель ру в разложении х на простые мц
(х)у = I жители для х, у > О,
' 0, если х = 0 или у = 0.
Доказательство.
(a) D (х) = У<у<х div (у, х), где div определено в теорев
4.5(я).
(b) I 1, если D(x) = 2 (т. е. х > 1 и ух тoль^
Pr(x) = J два делителя: 1 их),
' 0 в противном случае
(c) Ро = 0,
рх+1 = [хг<(рх! + 1)B> рх и г—простое),
что является определением по рекурсии; предикаты «г > i
и «2 простое» разрешимы, поэтому, применяя следствие 4.1
(и следующее за ней замечание), мы докажем вычислимое
этой функции.
(d) (x)y = [xz < х (рЪ^^х). Эта функция вычислима, так ki
предикат «/;J+lf х» разрешим. ?
Замечание. Функция (х)у является необходимой в следу*
щей ситуации. Последовательность s = (alf aa, ..., ап) эл
ментов N можно закодировать единственным числом Ь*
= р + ]р?*1- • Рпп+1\ тогда длину п последовательности s
числа at можно эффективно восстановить из Ь следующи
образом:
^ = (^-1-1 ДЛЯ l<
Другие способы кодирования пар и последовательности
указаны в упражнениях 4.16 B, 5) ниже.
4.16. Упражнения
1. Покажите, что следующие функции вычислимы:
(a) каждая полиномиальная функция ао + ахх+ ... +а„#
где а0, а,,_..., ап€Ы,
(b) [Vx\
(c) НОК (х, у) = наименьшее общее кратное чисел х и
5. Минимизация 49
(d) НОД(л\ у) = наибольший общий делитель чисел х и у,
(e) /(*) = число простых делителей х,
(!) Ф (х) = число положительных целых чисел, меньших х
и взаимно простых с л: (функция Эйлера). (Натуральные
числа х, у называются взаимно простыми, если НОД (х, у) = 1.)
2. Пусть n(xf у) = 2хBу + 1)— 1. Покажите, что л —вы-
—вычислимая биекция из Na в N и что функции я1§ яа таковы,
что JtCMz), ла(г)) = г для всех г вычислимы.
3. Пусть f(x) задана уравнениями /@)=1, /A) = 2,
f(x + 2) = f(x) + f(x+ 1). ({/(*)} является последовательностью
Фибоначчи). Покажите, что / вычислима. (Указание: сначала
покажите, что функция g(x) = 2/ixl-3/{x+1) вычислима, при-
применив рекурсию.)
4. Покажите разрешимость следующих проблем:
(a) х нечетно;
(b) х является степенью простого числа;
(c) х является точным кубом.
5. Каждое числох?Щ имеет единственное разложение вида
A) х = 2*^=0 OLfif с а/ = 0 или 1 для каждого i. Следова-
Следовательно, если х > 0, существует единственное выражение для
х вида
B) х = 2** + 2ь«+...+2Ь<, где
1 и
Полагая a(i, x) = a/, как в выражении A);
как в ^' если х>0>
0 в противном случае;
&/, как в B), если х>0и 1
о в противном случае;
О;, как в C), если лс>0 и l
О
а\1> У—уО в противном случае;
покажите, что каждая из функций a, /, b, а вычислима.
(Выражение C) является способом представления х как кода
последовательности чисел (а19 ая, ..., а?) и будет использо-
использовано в гл. 5.)
5. Минимизация
В предыдущем параграфе мы видели, что вычислимость
большого числа функций может быть установлена с помощью
операций подстановки и рекурсии, а также других операций,
выводимых из первых двух. Существует третья важная опе-
операция, порождающая новые вычислимые функции, а именно
50 Гл. 2. Порождение вычислимых функций
неограниченная минимизация, или просто минимизация, кото-
которую мы теперь опишем.
Пусть f(x9 у)—функция (не обязательно тотальная), и мы
хотим определить функцию g(x)9 положив
g(x)=*наименьшее у9 такое, что f(x9 #) = 0,
таким образом, чтобы из вычислимости / следовала бы вы-
вычислимость g. Тут надо решить два вопроса. Во-первых, для
некоторого х может не найтись у9 для которого f(x9 #) = 0.
Во-вторых, предположим, что f вычислима, и рассмотрим
следующий естественный алгоритм вычисления g(x). «Вычис-
«Вычисляйте f(x9 0), f(xf 1), ... до тех пор, пока не найдете у%
такой, что f(x9 !/) = 0». Эта процедура может не завершиться,
если / не тотальна, даже если такой у существует; например,
f(x9 0) не определено, a f(x9 1) = 0.
Таким образом, мы приходим к следующему определению
оператора минимизации \к9 который дает вычислимые функ-
функции из вычислимых функций.
5.1. Определение. Для каждой функции f(xty)
наименьший у9 такой, что
(i) f(x9z) определено для всех г<уи
И#(/ (•*» #)e0)«^ (jj) j^y^Q^ если такой у существует;
не определено в противном случае.
.) читается как «наименьший у9 такой, что...» Этот
оператор называют иногда ^-оператором.
Следующая теорема показывает, что класс # замкнут
относительно минимизации.
5.2. Теорема. Пусть f{x9y) вычислима; тогда вычислима и
функция g(x) = \iy(f{x9 (/) = 0).
Доказательство. Пусть jc = (jc,, ..., хп) и F—программа
стандартного вида, вычисляющая функцию f(x9y). Пусть
т = max (п + 1, р (F)). Напишем программу G, которая реали-
реализует естественный алгоритм для g: вычисляйте f(xtk) для
ft =*0, 1,2, ... до тех пор, пока не найдете такое k% что
^(jc, ft)«sO; это значение k и будет требуемым выходом.
Значение х и текущее значение k запоминаются в регист-
регистрах Rm+i, • • •» R«+n+i Д° вычисления /(*, k)\ таким образом,
типичной конфигурацией будет
5. Минимизация
61
Регистры памяти
*/л+п+2
| "..
Здесь первоначально fc = 0. Заметим, что гт+п+% всегда есть 0.
Блок-схема для описанной выше процедуры вычисления g
Начало
(Шчам кш
Останов
Рис. 2d. Минимизация (теорема 5.2).
приведена'на рис. 2d. Она легко транслируется в программу
G Для вычисления ^:
T(lfm+1)
52 Гл. 2. Порождение вычислимых функций
/, F[m+l,m + 2
J(l 2, q)
J(l. l.P)
Iq Т(ш + м + 1, 1).
(Ip является первой командой подпрограммы F[m +
т + 2, ... —1].) П
5.3, Следствие. Предположим, что R(x9y)—разрешимый пр
дикат\ тогда функция
(наименьший у, такой, что R (х, у) истинно,
если такой у существует;
не определена в противном случае
вычислима.
Доказательство, g (x) = \iy (sg(cR (лг, у)) = 0). ?
Ввиду 41 ого следствия ц-оператор часто называется такж
оператором поиска. Для данного предиката R(x, у) функци'
g(x) ищет такой у, что выполняется (т.е. истинно) R(x,y
и, более того, находит наименьший такой у, если он сущест
вует.
ц-оператор может порождать нетотальные функции и
тотальных; например, полагая f(xty) = \x—у2\ и g(x)$
— \ьу{1(х* #) = 0)i мы обнаруживаем, что g"—нетотальна
функция
I \fx , если х есть точный квадрат;
) не определена в противном случае.
Таким образом, тривиально, используя ц-оператор вмест?
с подстановкой и рекурсией, можно построить больше фуш
ций, исходя из основных, чем только с помощью подстановк
и рекурсии (так как эти операции порождают из тотальнь
функций лишь тотальные). Существуют, однако, и тотал
ныв функции, для построения которых существенно испол!
зуется |и-оператор. Приведенный ниже пример 5.5 содерж»
такую функцию; другой пример будет представлен в гл. \
Итак, мы видим, что минимизацию в отличие от ограниче!
ной минимизации нельзя определить в терминах подстановк
и рекурсии. Тем не менее наиболее часто встречающиес
вычислимые тотальные функции можно построить из ochof
ных, используя лишь подстановку и рекурсию; такие фунй
ции называются примитивно рекурсивными, и они будут
5. Минимизация 53
смотрены в § 3 гл. 3. На практике, конечно, можно устанавливать
вычислимость с несущественным применением минимизации,
если это упрощает доказательство.
5.4. Упражнения
1. Пусть f (х)—тотальная инъективная вычислимая функ-
функция; докажите, что функция f~l вычислима.
2. Предположим, что р(х)—полином с целыми коэффи-
коэффициентами; покажите, что функция
f (а) = наименьший неотрицательный целый корень р (х)—а (а ? N)
вычислима (если такого корня нет, то f(a) не определена).
3. Покажите, что функция
х/у, если уФО и у\х9
не определена в противном случае
вычислима.
Мы завершаем эту главу примером функции, существенно
использующей (и-оператор; он показывает также, как можно
использовать этот оператор не только для поиска единствен-
единственного числа, обладающего данным свойством, но и для поиска
конечных последовательностей или множеств чисел, или дру-
других объектов, кодируемых единственным числом. Эта функ-
функция является модификацией Петер примера функции, постро-
построенной Аккерманом и носящей его имя. Эта функция сложнее
всех вычислимых функций, рассмотренных нами до сих пор.
5.5. Пример (функция Аккермана)
Функция ф(х, у), определяемая следующей системой урав-
уравнений, вычислима:
Это определение содержит некоторый вид двойной рекурсии,
которая сильнее, чем примитивная рекурсия, рассмотренная
в § 3. Для того чтобы тем не менее доказать, что эти урав-
уравнения однозначно определяют функцию \|>, заметим, что каж-
каждое значейие г|> (х, у) (х > 0) определено в терминах «более
ранних» значений ^(хиу1) с хх<х или хг=х и ^i<_/. На
самом деле ф(дс, у) можно получить, используя только конеч-
конечное число таких более ранних значений: это легко установить
индукцией по jc и j/. Следовательно, ф вычислима в нефор-
неформальном смысле. Например, легко вычислить, что A 1)
а Ч>B, 1) = 5.
54 Гл. 2. Порождение вычислимых функций
Строго доказать вычислимость функции ур довольно трудн
Мы дадим набросок доказательства, используя идею под*
дящего множества троек S. Существенное свойство подход,
щего множества S (определенного ниже) состоит в том, ч*
если (х, у, z) ? S, то
E.6). (i) z-¦(*,*),
(ii) S содержит все более ранние тройки (xl9 ylt 4>(xit ух}
которые необходимы для вычисления У(х,у).
Определение. Конечное множество троек 5 называете!
подходящим, если выполнены следующие условия:
(a) если @, t/, z)?S, то г = у+1\
(b) если (х+1,0, zNS, то (х, 1, z)?S\
(c) если (х+1, у+1, z)?St то существует такое и, чт
l )S и (х9и9 )S
Эти три условия соответствуют трем уравнениям в опрв
делении ур. Например, (а) соответствует утверждению: есл
г=8\|)@, {/), то z=s(/+l; (с) соответствует утверждению: есл
z = ty(x-\-l, у+1)9 то существует такое и, что t/ = \|)(x+ll j
и г = ^(х, и).
Определение подходящего множества 5 обеспечивает вы
полнение условий E.6). Кроме того, для каждой пары чисе
(т, п) найдется подходящее множество S, содержащее тройк,
(m, n% t|?(m, n))\ например, пусть S является множеством трое
(*! */. ^(х9 у)), используемых в вычислении я|>(/л, п).
Теперь можно закодировать тройку (дс, у% z) одним поле
жительным числом и = 2*3ж; конечное множество чисе
{ии ...,и,} можно закодировать одним числом рпхри%*< -Ри^
Следовательно, конечное множество троек можно закодира
вать одним числом, скажем а Тогда мы получим
(*• У> z)€Sv&p2*.zy.b* делит с\
так что утверждение «(х, у% г) 6 Sv» является разрешимы
предикатом от х, у, г% v, и если это так, то х, у% г < v. Отсюда
применяя методы и функции, рассмотренные в предыдущи'
параграфах, мы можем показать, что разрешим следующи
предикат: R (x% y% v) ^ «у есть кодирующее число подходя-
подходящего множества троек и 3* < v ((*, у, z) € Sv)».
Таким образом, функция / (х, у) = (it;/? (х, у, v) являете^
вычислимой функцией, порождающей код подходящего мне'
жества, содержащего (х% у, z) для некоторого z. Следовательно
^(*> У) =*№ ((х> У> г) € 5/ Ut y)), откуда следует вычислимость
5. Минимизация 55
Более сложное доказательство вычислимости г|> будет дано
в гЛ. 10 как результат применения более глубоких теорети-
теоретических результатов.
Здесь мы не доказываем невозможность получения г|) из
основных функций с помощью лишь подстановки и (прими-
(примитивной) рекурсии. Этот вопрос будет рассмотрен в § 3 сле-
следующей главы.
Глава 3.
Другие подходы к вычислимости:
тезис Чёрча
За последние пятьдесят лет было предложено много ма*
матических уточнений интуитивного понятия эффективной i
числимости. Подход, основанный на МНР, был предлож
сравнительно недавно. В этой главе, исследуя МНР-вычис/
мость, мы остановимся на двух связанных между собой d
просах.
1. Как сравнивать многие различные подходы к описан!
вычислимости друг с другом, и в частности с МНР-вычисл
мостью?
2. Насколько хорошо эти подходы (в частности, MB
вычислимость) характеризуют неформальное понятие эффе
тивной вычислимости? •
Первый вопрос будет обсуждаться в § 1—6; второй вопр
мы рассмотрим в § 7. Читатель, которого в этой книге инр.
ресует только техническая сторона этой теории, может nd
пустить § 3—6; ни одна из тем в последующих разделах кнвд
не зависит от этих параграфов.
1. Другие подходы к вычислимости
Далее перечисляются некоторые альтернативные уточи
ния, которые предлагались следующими авторами:
(a) Гёдель—Эрбран—Клини [1936]. Общерекурсивн]
функции, определенные с помощью исчисления рекурсивн!
уравнений (Клини [1952], Мендельсон [1964]).
(b) Чёрч [1936]. ^-определимые функции (Чёрч [19Э
или [1941]).
(c) Гёдель—Клини [1936]. fi-рекурсивные функции и ча
тично рекурсивные функции (§ 2 этой главы).
(d) Тьюринг [1936]. Функции, вычислимые конечными ъ
шинами, известными как машины Тьюринга (Тьюринг [193
§ 4 этой главы). д
(e) Пост [1943]. Функции, определяемые канонически!
дедуктивными системами (Пост [1943], Минский [1967]; §
дтой главы).
2. Частично рекурсивные функции (Гёдель — Клини) 57
(f) Марков [1951]. Функции, задаваемые некоторыми алго-
рИтмами (известными под названием нормальных алгоритмов)
?аД конечным алфавитом (Марков [1954], Мендельсон [1964];
& 5 этой главы).
(g) Шепердсон—Стерджис [1963]. МНР-вычислимые функ-
функции (Шепердсон—Стерджис [1963]).
Между этими подходами имеются большие различия; каж-
каждый из них имеет свои преимущества для соответствующего
описания вычислимости. Следующий замечательный результат
получен усилиями многих исследователей.
1.1. Основной результат. Каждое из вышеупомянутых уточ-
уточнений понятия эффективной вычислимости приводит к одному
и тому же классу вычислимых функций. (Этот класс обозна-
обозначается через #.)
Так мы получаем простейший возможный ответ на первый
из поставленных выше вопросов. Перед тем как обсуждать
второй вопрос, мы кратко исследуем упомянутые выше под-
подходы Гёделя—Клини, Тьюринга, Поста и Маркова и дадим
наброски доказательств эквивалентности этих подходов под-
подходу МНР. Читателю, который хотел бы подробнее ознако-
ознакомиться с этими и другими подходами и доказательствами
всех эквивалентностей основного результата, рекомендуем
обратиться к указанной в ссылках литературе.
2. Частично рекурсивные функции (Гёдель — Клини)
2.1. Определение. Классом 9L частично-рекурсивных функций
называется наименьший класс частичных функций, содержа-
содержащий базисные функции 0, х+ 1, U" (лемма 2-1.1) и замкнутый
относительно операций подстановки, рекурсии и минимизации
(эквивалентное определение: 91 есть класс частичных функ-
функций, каждую из которых можно построить из основных функ-
функций с помощью конечного числа операций подстановки, рекур-
рекурсии и минимизации).
Заметим, что в определении класса 51 не накладываются
никакие ограничения на использование fi-оператора, так что
ft содержит нетотальные функции. Гёдель и Клини перво-
первоначально ограничили свое внимание тотальными функциями;
сначала рассматривался класс 5?0 (ы-рекурсивных функций,
к°торый определяется аналогично классу 51, за исключением
того, что применение ji-оператора допускается, только если
в Результате получается тотальная функция. Итак, Э10 яв-
явится классом тотальных функций, и очевидно, что Я,0^Я.
Действительности класс Э10 содержит все функции, имею-
58 Гл. 3. Другие подходы к вычислимости: тезис Черна
щиеся в 91, хотя это не является непосредственно очевидны!
доказательство см. ниже в следствии 2.3. Следовательно,
является естественным расширением класса 310 к классу ч
стичных функций.
Термин рекурсивная функция относят часто к ц-рекурси
ным функциям. Термин обще рекурсивная функция такэ
используется для описания ц-рекурсивных функций, xoi
Клин и так называл тотальные функции, определяемые в е
подходе исчислением равенств (см. (а) в § 1). Именно Кли
доказал эквивалентность общерекурсивных функций (задава
мых исчислением равенств) и (л-рекурсивных функций.
2.2, Теорема. ^ = #.
Доказательство. Из главного результата гл. 2 (лемма 1.
теорема 3.1, 4.4, 5.2) вытекает, что Si е %.
Обратно предположим, что f(x) является МНР-вычисл
мой функцией, вычислимой по программе P=/lt .... У,. П«
шагом вычисления Р(х) мы подразумеваем выполнение однс
команды. Рассмотрим следующие функции, связанные с bi
числением по программе Р.
{содержимое Rx после / шагов в Р(х)9
если Р(х) уже не остановилось раньше;
заключительное содержимое Rlt еслиР(х)
останавливается меньше чем за / шагов.
{номер следующей команды, когда сделано
ровно / шагов вычисления Р(х), если Р(х)
не остановилось после t шагов или раньше;
О, если Р (х) остановилось после t шагов
или раньше.
Очевидно, с и / суть тотальные функции.
Если f(x) определено, то Р(х) останавливается после ров!
t0 шагов, где <0 = Н<'(/(*» 0 = °)» и тогда f(x) = c{x, t0). Есл
с другой стороны, }{х) не определено, то Р(х) не зав^
шается, и поэтому j(x9 t) никогда не равно 0. Таким образа
lit(j(xt t) = 0) не определено. Следовательно, в любом слуг
/(*) = *(*, |i/(/(*, 0 = 0)).
Чтобы доказать частичную рекурсивность /, достаток
показать, что с и /' суть рекурсивные функции. Ясно, «
эти функции вычислимы в неформальном смысле—мои
просто промоделировать вычисление Р(х) до t шагов. Дета,
ным анализом вычислений Р(х) и применением многих фув
ций из гл. 2 нетрудно, но довольно утомительно показу
рекурсивность с и /; на самом деле их можно получить
базисных функций без использования минимизации (так с
3. Отступление: примитивно рекурсивные функции 59
оНи примитивно рекурсивны—см. § 3 этой главы). (Подробное
доказательство более сильного утверждения, чем это, будет
дано в гл. 5—теорема 1.2 и приложение.) Следовательно, f
частично рекурсивна. ?
2.3. Следствие. Каждая тотальная функция в 91 принадле-
принадлежит классу 910.
Доказательство. Предположим, что f(x)—тотальная функ-
функция в Э1\ тогда f МНР-вычислима по программе Я. Пусть
с и j—функции, определенные в доказательстве теоремы 2.2;
как там отмечено, они могут быть получены без минимизации,
так что, в частности, они входят в 910. Далее, поскольку /
тотальна, Р(х) оканчфается для каждого х, то функция
И-* (/'(•*» 0 тотальна и принадлежит 5i0. Теперь f(x)=
=с(х> \it(j(xt t))t так что / также принадлежит 5i0. ?
Предикат М(х), чья характеристическая функция см ре-
рекурсивна, называется рекурсивным предикатом. В свете тео-
теоремы 2.2 рекурсивный предикат—то же самое, что разреши-
разрешимый предикат.
3. Отступление: примитивно рекурсивные функции
Естественно обратить внимание на важный подкласс класса
3?—класс примитивно рекурсивных функций, хотя они не
являются основной темой обсуждения этой главы. Эти функ-
функции были упомянуты в § 5 гл. 2.
3.1. Определение, (а) Классом 3*Э1 примитивно рекурсивных
функций является наименьший класс функций, содержащий
базисные функции 0, x+l, U? и замкнутый относительно опе-
операций подстановки и рекурсии.
(Ь) Примитивно рекурсивным предикатом называется пре-
предикат, характеристическая функция которого примитивно
рекурсивна.
Все конкретные вычислимые функции, рассмотренные
в § 1, 3, 4 гл. 2, примитивно рекурсивны, так как миними-
минимизация там не использовалась. Мы уже отмечали, что функ-
функции с и /, использованные в доказательстве теоремы 2.2, при-
примитивно рекурсивны. Далее, из теорем 2-4.10 и 2-4.12 мы
видим, что класс S*i& замкнут относительно операций огра-
ограниченного суммирования, ограниченного произведения и огра-
ограниченной минимизации. Таким образом, класс примитивно
Рекурсивных функций является достаточно обширным.
Тем не менее существуют рекурсивные функции (или, что
эквивалентно, тотальные вычислимые функции), не являющиеся
60 Гл. 3, Другие подходы к вычислимости: тезис Черна
примитивно рекурсивными функциями. Действительно, функци!
Аккермана г|? из примера 2-5.5 является примером такой фунК
ции. Подробное доказательство того, что функция Аккерман
не примитивно рекурсивна, довольно длинно, и мы отсылал!
читателя к книгам Петер [1967, гл. 9] или Мендельсона [1964
с. 250, упр. 11]. Существенно то, что ф растет быстрее, че^
любая примитивно рекурсивная функция. (Чтобы почувство"
вать, как быстро растет функция \|>, попробуйте вычислит
несколько ее начальных значений.)
В гл. 5 мы сможем дать пример тотальной вычислимо!
(т. е. рекурсивной) функции и докажем, что она не являете
примитивно рекурсивной.
Наше заключение: хотя примитивно рекурсивные функци1
образуют естественный и весьма обширный класс, они не вклю
чают все вычислимые функции и поэтому оказываются неде
статочными для описания неформального понятия вычисли
мости.
4. Тьюрингова вычислимость
Определение вычислимости, предложенное А. М. Тьюри!
гом [1936J, основано на анализе осуществления алгоритм
человеком, располагающим ручкой для письма и бумаго
Тьюринг рассматривает это как последовательность оче!
простых действий следующего вида:
(a) запись или стирание одного символа;
(b) перенесение внимания с одного участка бумаги на друго
На каждом шаге алгоритм определяет действие, котор
будет совершено на следующем шаге. Это зависит только от Ц
символа на участке бумаги, который обозревается в даннь
момент глазом (или другим рецептором) и (и) текущим С
стоянием (мысли) человека. Чтобы обеспечить возможное
реализации алгоритма, мы предполагаем, что это состоя»
полностью определяется самим алгоритмом и предысторй»
его работы. Оно может включать частичную запись того, ч
произошло до сих пор, но не зависит от настроения или сообр
зительности исполнителя алгоритма или от его самочувствй
Кроме того, существует только конечное число различим!
состояний, в которых может находиться исполнитель, так ic
он конечен в рассматриваемых аспектах. Состояние исполй
теля может, конечно, изменяться в результате действия, npd
принятого на этом шаге.
Тьюринг изобрел конечные машины, которые выполни
алгоритмы, представленные таким способом. Для кажд
4. Тьюрингова вычислимость
алгоритма существует своя, хотя и не единственная, машина.
Опишем кратко эти машины, которые стали известны как
машины Тьюринга.
4.1. Машины Тьюринга
Машина Тьюринга М—это конечное устройство, которое
производит операции на бумажной ленте. Эта лента беско-
бесконечна в обеих направлениях и разделена вдоль всей длины на
квадраты (или клетки, или ячейки). (Лента представляет собой
бумагу, которая требуется исполнителю для осуществления
алгоритма; каждый квадрат представляет собой порцию ленты,
Окошко, в котором
. указано текущее
состояние тшины
м
\ / Читающая
\*^~ головка
Лента
Обозреваемый квадрат
Рис. За. Машина Тьюринга.
обозреваемую в данный момент. В каждом конкретном завер-
завершающемся вычислении на М используется только конечная
часть ленты, хотя заранее мы не можем предвидеть, насколько
большая часть ленты может потребоваться. Тем не менее лента
бесконечна, что соответствует ситуации, в которой находится
человек, обеспеченный неограниченным запасом чистой бу-
бумаги.)
В каждый данный момент времени каждый квадрат ленты
либо пуст, либо содержит единственный символ из фиксиро-
фиксированного конечного списка символов slf s9, ..., sn алфавита М.
Содержимое^ пустой клетки мы обозначим через В и будем
считать его символом s0, принадлежащим алфавиту М.
У машины М имеется читающая головка, которая обозре-
Вает в каждый данный момент единственный квадрат ленты.
Все это можно увидеть на рис. За.
Машина М может выполнять три типа простых операций
на ленте, а именно:
62 Гл. 3. Другие подходы к вычислимости: тезис Чёрча
(a) стереть символ в обозреваемом квадрате и заменить ег
другим символом алфавита М\
(b) передвинуть читающую головку на один квадрат вправ
от обозреваемого квадрата (или, что равносильно, сдвинут!
ленту на один квадрат влево);
(c) передвинуть читающую головку на один квадрат влев
от обозначаемого квадрата (или, что равносильно, сдвинут
ленту на один квадрат вправо).
В каждый данный момент времени машина М находите
в одном из фиксированного конечного числа состояний, пред
ставленных символами qlt ..., qm. В процессе операции ее
стояние машины может измениться. Можно представлять себ
символ текущего состояния демонстрируемым в окошке w
наружной стороне М (как на рис. За) и рассматривать ef
как некоторый указатель на то, что произошло к настоящем?
моменту и что случится в будущем.
Действие, которое машина М совершает в любой текущи'
момент, зависит от текущего состояния М и символа, обозре
ваемого в данный момент. Эта зависимость описана в задании М
которое содержит конечное множество Q четверок, каждая и
которых имеет вид
Четверка qfi^qx в Q определяет действие машины М, ког/i
она находится в состоянии qt и обозревает символ Sj следук
щим образом:
1. На ленте:
(a) если a = s*, стереть Sj и написать sk в обозреваема
квадрате;
(b) если а = /?, сдвинуть читающую головку на один ква"
рат вправо;
(c) если a=»L, сдвинуть читающую головку на один ква
рат влево.
2. Перейти в состояние qv
Задание Q таково, что для каждой пары qtSj найдется 1
более одной четверки 9/SyaP; в противном случае могла
возникнуть неоднозначность в дальнейших действиях машин
Чтобы начать вычисление, машина должна быть снабжу
лентой, а читающая головка должна обозревать специальна
начальный квадрат; кроме того, М должна находиться в щ
чальном состоянии. Тогда, если М находится в состоянии-"
4. Тьюрингова вычислимость
63
и считывает символ sJ% она действует так, как описано выше
при условии, что в Q найдется четверка ?/S/z<7,. Действие
такого же рода повторяется для нового состояния и нового
обозреваемого символа и т. д. Машина М продолжает дей-
действовать подобным образом столь долго, сколь это возможно.
М прекращает работу, только попав в состояние ql и считы-
считывая символ sy, такой, что в Q нет четверки 9/s/aP» т. е. в Q
нет четверки, определяющей, что делать дальше. (Возможно,
что это никогда не произойдет.)
4.2. Пример. Пусть М—машина Тьюринга, алфавит которой
состоит из символов 0, 1 (и, конечно, пустого символа) и воз-
возможные состояния которой суть qx и q%. Задание, или про-
программа М, таково:
q2\Rqx.
Пусть лента машины М есть
I
1111111111
Обозревается квадрат, помеченный стрелкой |, и исходное
состояние есть qlt Легко видеть, что действие М состоит в пе-
передвижении по ленте слева направо и замене через один сим-
символа 1 на символ 0; М останавливается, когда она впервые
обозревает пустой квадрат, так как не существует четверки,
указывающей, что делать дальше. В результате лента примет вид
I
1о 1 о 1 о 1 о 1 о 1
где обозревается квадрат, помеченный стрелкой |, а М нахо-
находится в состоянии qx,
С другой стороны, если бы вначале у ленты машины М
в каждом квадрате были бы записаны 0 или 1, то машина
никогда бы не закончила работу.
Из этого примера явствует, что машина Тьюринга является
Устройством, реализующим алгоритм, работающий на лентах.
Детальное описание алгоритма содержится в задании Q ма-
машины М. Таким образом, для математика машина Тьюринга
°пределяется как множество задающих ее четверок. Беспо-
Бесполезно строить физическую машину Тьюринга, разве что
в иллюстративных целях.
64
Гл. 3. Другие подходы к вычислимости: тезис Черна
4.3. Функции, вычислимые по Тьюрингу
Чтобы приспособить машину Тьюринга М для вычисления
числовых функций, надо договориться о представлении чисел
на ленте. Один способ состоит в следующем: предположим для
удобства изложения, что символ s2 алфавита машины М
есть 1. Мы будем использовать 1 как «символ-бирку», и тогда
число* представляется на ленте следующим образом (на время
не будем обращать внимания на стрелку |):
I
« х +1 кбадратб >
Мы используем х + 1 бирок для представления х% чтобы отли-
отличать представление числа 0 от пустой ленты. v
Частичная функция f(x), вычисляемая машиной М, опре
деляется следующим образом. Рассмотрим вычисление, произ*
водимое машиной М на этой ленте, начинающееся в состоя*
нии <7i с первоначально обозреваемым квадратом, помеченным J,
Тогда
общее число вхождений символа I на ленте
в заключительный момент, если вычисле-
вычисление в конце концов останавливается;
не определено в противном случае.
Аналогично п-местная частичная функция f(xit ..., хп}
вычисляемая машиной М, определяется подсчетом числа ед*
ниц на заключительной ленте, если М начинает работу в ее
стоянии <7i и считывает квадрат, помеченный стрелкой I к
следующей ленте:
.1 1
1 1
JC2+1-
хбадратоб
Хп\
хбадратоЗ
Квадратов
4.4. Определение. Частичная функция называется вычислим
по Тьюрингу, если существует вычисляющая ее машина. Кла
всех вычислимых по Тьюрингу функций обозначается через ?Н
4.5. Пример. Функция х + у является вычислимой по Тьюринг
ее вычисляет машина Тьюринга, заданная следующей nfj
граммой: qx\Bqu qtBRq2t q2\Bq$f q2BRq2. Представление
ленте пары (xf у) содержит х + у+2 вхождений символа,
поэтому машина М построена так, чтобы стереть два из э^
вхождений, начиная с левого конца. Отдельные детали ле
проверяются на небольшом числе значений х, у.
5, Система обработки символов Поста и Маркова 65
4.6. Упражнения
1. Какую одноместную функцию вычисляет машина в при-
примере 4.2?
2. Постройте машины Тьюринга, которые вычисляют по
Тьюрингу функции (а) х—1 и (Ь) 2х.
В нашу цель не входит развить теорию машин Тьюринга
и функций, вычислимых по Тьюрингу; интересующийся этими
вопросами читатель может обратиться к книгам Дэвиса ? 19581
или Минского [1967], указанным в библиографии.
Фундаментальный результат, связывающий вычислимость
по Тьюрингу с частично рекурсивными функциями и МНР-
вычислимостью, состоит в следующем.
4.7. Теорема. 51 = <#"# = #.
Доказательство. Существуют различные способы установ-
установления этого результата; некоторые мы изложим в общих чертах.
Прямое доказательство того, что <jr#^5i довольно похоже
на доказательство того, что # ^ 91 (теорема 2.2). Ленточные
конфигурации и состояния машины Тьюринга в процессе вы-
вычисления могут кодироваться натуральными числами, а опе-
операции машины тогда представимы рекурсивными функциями
этих чисел.
Что же касается обратного включения 54^<?Г#, можно
показать непосредственно, что класс ?Г% содержит все базис-
базисные функции и замкнут относительно подстановки, рекурсии
и минимизации. Это было подробно проделано Дэвисом [1958].
В качестве альтернативы можно показать, что #^<?Г#, уста-
установив, что МНР эквивалентны по вычислительным возможно-
возможностям последовательности более простых машин, заканчиваю-
заканчивающихся машинами Тьюринга. Это доказательство приведено
в статье Шепердсона и Стерджиса [19631. ?
5. Системы обработки символов
Поста и Маркова
3. Пост и А. А. Марков сформулировали свои понятия
эффективности в терминах цепочек символов. Они постулируют,
что объекты (включая числа), к которым применяются эффек-
эффективные процессы, всегда можно представить в виде цепочек
символов; в действительности в таких контекстах, как симво-
символическая логика, абстрактная алгебра и анализ языков, объ-
объектами являются цепочки символов. Как Пост, так и Марков,
исходя из разных предпосылок, полагали, что эффективные
°перации на цепочках—это те, которые можно построить из
простейших действий над цепочками.
3 ^ 862
66 Гл. 3. Другие подходы к вычислимости: тезис Черна
Центральным понятием у Поста было понятие каноническо
системы, которую мы опишем ниже. Такие системы не вычис
ляют функции; они порождают множества цепочек. Причин
этого заключается в том, что Пост стремился охарактеризс
вать формальные логические системы, т. е. системы, порождаю
щие теоремы из аксиом механическим применением прави.
логики. Так, понятие эффективности вытекает из работы Пост
сначала в виде эффективно (или механически) порождаемы
множеств. Мы увидим, как отсюда можно вывести поняти
функции, вычислимой по Посту. Ниже, в § 5.17, мы поясни*
каким образом связаны подходы Маркова и Поста.
Теперь введем ряд обозначений, которые помогут нам в о
суждении. Пусть 2 = {alf ..., ak) есть конечное множеств
символов, называемое алфавитом. Цепочкой из (или над)
называется всякая последовательность ait ... ain символов из 2
Цепочки иногда называют словами по аналогии с обычным язь
ком. Для любого алфавита 2 через 2* обозначается множеств
всех цепочек символов из 2. В 2* включается и пустая ц
почка, в которой нет символов, обозначаемая через Л. Есл
a = 6j62 ... Ьт и т*=сх ... сп суть цепочки, то от обозначав
цепочку Ьх ... Ьт сг ... сп. Для пустой цепочки Л и для любо
цепочки а имеет место оА = Ао = о.
5.1. Системы Поста
В элементарной алгебре часто встречается операция замен
любого вхождения цепочки (х—у)(х + у) цепочкой х2—у2. Э*
операцию над цепочками можно обозначить записью
S, (х-у) (х + у) S2 -» S, (x2-y2) Slf
где S, и S2—произвольные цепочки.
Более общая операция над цепочкой, рассматриваемая Пост
в качестве элементарной, имеет вид
E.2) goSiqxS2 ... gm^Smgm -> bSifoStJii ... Stjiu.
гДе @ go» • • •» gm> Ло» • • •. Лл—фиксированные цепочки (мож
быть, пустые), (ii) индексы iu ...,*„ выбираются из 1, 2, ...
и не обязательно различны.
Пост называет операцию вида E.2) правилом, или прод%
цией\ она может быть применена к любой цепочке а, котор
может быть представлена как
(оi, .... от—цепочки)
и дает в результате цепочку hjo^h^^ .. . olnhn.
5. Система обработки символов Поста и Маркова 67
5.3. Пример. Пусть 2 = {а, Ь)\ рассмотрим продукцию (я):
aSxbS% —* S2aS2a. Действие (я) на ряд цепочек указано в таб-
таблице ниже:
о
aba
abba
ba
Цепочки, порожденные по правилу (я)
из b
аааа
аааа и ЬааЬаа
(л) не применимо
(Элементы во втором ряду соответствуют двум возможным
представлениям abba:
ab ba и а Л bba.)
5.4. Упражнение. Исследуйте все способы, какими про-
продукция S1bS2aaS3b—+S8abS1 может применяться к цепочке
babaabbaab.
Продукции составляют основную часть канонических систем
Поста:
5.5. Определение. (Каноническая) система Поста % состоит из
(a) конечного алфавита 2,
(b) конечного подмножества A s 2* аксиом S,
(c) конечного множества Q продукций вида E.2), фиксиро-
фиксированные цепочки которых принадлежат 2*.
Будем также называть % системой Поста над 2.
Q
Будем записывать а=>т, если цепочку т можно получить
из цепочки а конечной последовательностью применений про-
продукций из Q; далее, запись |— т будет обозначать, что суще-
Q
ствует аксиома а?Л, такая, что а=Фт. В этом случае мы
говорим, что т порождается системой Поста; множество всех
Цепочек из 2*, порожденных %% обозначается через Т*, т. е.
Т* = {а?2*|>|— а}. Множество Т* называется также множест-
множеством теорем системы S, что отражает первоначальную моти-
мотивировку Поста.
5-6. Пример. Пусть % является системой Поста с алфави-
алфавитом 2 = {а, &}, аксиомами Л, a, ft и продукциями S—+aSa и
SbSb Тогда Т* есть множество палиндромов—цепочек,
68 Гл. 3. Другие подходы к вычислимости: тезис Черна
одинаково читаемых в обоих направлениях, слева направо и
справа налево, таких, как aba, bbabb, abba.
Иногда для порождения конкретного множества цепочек
из 2* необходимо использовать в процессе порождения вспо-
вспомогательные символы. Это приводит к следующему определению
5.7. Определение. Пусть 2—алфавит, а Хд2«, Тогда X
порождаемо (или генерируемо) по Посту, если существуег
алфавит ^22 и система Поста % над Slt такие, что У
является множеством цепочек в 2*, порождаемых системой 5^
т. е. X==7f П2*.
Пост доказал замечательную теорему, утверждающую, чт
для порождения генерируемых по Посту множеств на само*'
деле достаточны очень простые продукции. Множество про-
продукций Q (и всякая система, в которой они встречаются!
называется нормальной, если все продукции имеют вил
gS -н> Sh.
5.8. Теорема (теорема Поста о нормальной форме). Всякая па
рождаемая по Посту система может быть порождена нор
мальной системой.
Превосходное доказательство этой теоремы изложен
М. Минским [1967].
Системы Поста, все продукции которых имеют вид SxgS% —
-+ SxhS^ образуют модели грамматик и языков. Они отра
жают способ, которым сложные предложения языка строятс
из некоторых основных единиц в соответствии с правилам
грамматики. Ограничения на природу g и h приводят к коь
текстным (или языкам непосредственных составляющих, Н
и контекстно-свободным (КС, или бесконтекстным) языка!
Хомского, являющимися полезными моделями языков, при
меняемых в программировании. Мы не можем здесь угл]|
бляться в эту интересную область: для получения дополн!
тельной информации читатель может обратиться к книг
Арбиба Г1969] и Манна [1974], а также Гинзбурга [1970]*
Гладкого [1973]* ".
5.9. Системы Поста и другие подходы
к вычислимости
Как мы видели, системы Поста дают описание понят
эффективно порождаемого множества. Мы можем сравни
это с соответствующим понятием, возникающим из друп
*> Ссылки на дополнительную литературу отмечены авездочкой
Прим. перев.
5. Система обработки символов Поста и Маркова 69
подходов к вычислимости. Для МНР-вычислимости (или тью-
ринговой вычислимости и т. д.) эффективно порождаемые
множества чисел называются рекурсивно перечислимыми (р. п.);
это те множества, которые являются множествами значений
МНР-вычислимых функций. (Мы будем изучать р. п. множе-
множества в гл. 7.)
Для сравнения множества цепочек с множеством чисел
мы выбираем кодирование с эффективной (в интуитивном
смысле) кодирующей функцией ": 2Ф—+Ы, при котором це-
цепочка а^2ф кодируется числом а. Удобный метод для алфа-
алфавита 2 = {ап ..., ak\ состоит в k-ичном кодировании, где
функция ": 2*—*N определена посредством А = 0; аГо...аГ|Я =
= ^o + ri*+ • • • +rm*w- Легко видеть, что л есть на самом
деле биекция, так что, обозначив обращение ~ через *": N —> 2*,
мы получаем представление каждого числа п цепочкой п.
Предположим теперь, что X является множеством цепо-
цепочек: пустьХ= {о\о?Х} есть множество чисел, кодирующих X.
Получаем результат об эквивалентности.
5.10. Теорема. X порождаемо по Посту тогда и только тогда,
когда множество чисел X рекурсивно перечислимо.
Доказательство. Дадим набросок одного доказательства
этого результата. Пусть XsH*, и предположим сначала,
что X рекурсивно перечислимо. Пусть X=Ran(/), где функ-
функция / МНР-вычислима. Применяя ранее доказанные эквива-
эквивалентности, мы можем построить машину Тьюринга М, мно-
множество символов которой содержит алфавит 2, так что в
состоянии <7i с первоначально заданной лентой
i
(V
1 1
1 1
m + l
М останавливается тогда и только тогда, когда mgDom(/)f
и делает это в конфигурации
т. е. символы на непустой части ленты образуют, как отме-
отмечено на рисунке, цепочку f(m) над алфавитом 2, а машина М
находится в специальном заключительном состоянии <7н» б
70 Гл. 3. Другие подходы к вычислимости: тезис Чёрча "
зревая квадрат, отмеченный стрелкой |. Теперь построим,
систему Поста S, моделирующую поведение машины М на ее
ленте; алфавит системы $ включает 2, символы и состояния М\.
S порождает цепочки вида sitsit.. .<fas/y • • • sim- Такие цепочки^
представляют все ситуации
которые встречаются в процессе вычисления машины М, при-
причем начальная лента имеет вид (•). Для достижения цели
¦*—т+ 1—>•
система S будет порождать все цепочки вида qx\ 11... 1 l
которые представляют такие исходные ленты. Если включить
в S продукцию qHS —* S, то цепочки из 2\ порожденные
системой $, образуют множество
r
Таким образом, Х = Т* П 2*, т. е. X порождаемо по Посту.
Обратно, если X порождаемо по Посту системой Поста S,
то отношение «л порождается системой S с применением не
более чем т раз продукций» является разрешимым; из теории^
р. п. множеств (гл. 7) следует, что множество X рекурсивно
перечислимо. ?
5.11. Вычислимость по Посту
Опишем теперь два способа вывода понятия вычислимой,
функции из систем Поста. В обоих случаях сначала опреде*.
ляется понятие функции на 2*, а затем оно расширяется
на N с помощью кодирования или представления.
Предположим, что f: 2* —> 2* есть частичная функция.
Возьмем символ *, не принадлежащий 2, и рассмотрим мно-
множество цепочек
G(/) = {a/(a)|a6Dom(/)}
из алфавита 2и{-}. Множество G(f) содержит всю информа
цию об /, и мы введем следующее определение.
Б. 12. Определение. Функция /: 2* —* 2* вычислима по Посту
если множество G (/) (т. е. график функции f) порождаемс
по Посту.
5. Система обработки символов Поста и Маркова 71
5.13. Пример. Пусть 2 = {1}, и рассмотрим функцию /:
2*—*2*f заданную посредством равенств ДЛ) = Л,
п2
Множество G(f) порождается следующей системой Поста:
Алфавит {1, •}
Аксиома -(=Л/(Л))
Продукция S1Si-^S1l- S^S^! I
Единственная продукция этой системы применяется к цепочке
вида
11... 11•111... ill
и дает цепочку вида
11...111-111...11111...1111...111.
«—п + 1—> «—п2—> «—п—> «—п—>
Следовательно, функция / вычислима по Посту.
Предположим, что G(f) порождается системой Поста S.
Чтобы убедиться в вычислимости / в неформальном смысле,
рассмотрим следующий алгоритм нахождения f(a) поданному
а ? 2*. «Порождайте некоторым систематическим способом
подряд все цепочки из Т»; исследуйте их по мере их появ-
появления, отбирая цепочки вида от с т?2\ Тогда каждая це-
цепочка такого вида будет в конце концов порождена тогда и
только тогда, когда agDom(/), и x = f(a)».
Определение E.12) распространяется обычным образом на
частичные функции: B*)п —> 2*. Вычислимость по Посту на N
определится тогда естественным образом, если применить
эффективное представление ~: N—*2\
5.14. Определение. Пусть g: Nn-+N есть частичная функция,
а g: (%•)* —> 2* есть функция, определенная посредством
g(thu пг2 ..., m;>) = g(ml mn), где mlt ...,/n^N. Тогда
Функция g вычислима по Посту, если g вычислима по Посту.
Если 3*% обозначает класс вычислимых по Посту функций
натуральных чисел, то мы имеем следующую теорему:
72 Гл. 3. Другие подходы к вычислимости: тезис Чёрча
6.15. Теорема. 5>% = %=*&% = 91. (Мы опускаем доказатель-
доказательство. После изучения гл. 6 и 7 читатель сможет убедиться,
что эта теорема следует из теоремы 5.10 и результатов
гл. 6 и 7, связывающих р. п. множества с МНР-вычислимыми
функциями.)
Другой способ вывести понятие вычислимости из систем
Поста состоит в непосредственном моделировании вычислений
машины. Это можно сделать, используя множества продук-
продукций Q, такие, что к любой данной цепочке применима самое
большее одна продукция из Q. Такие множества и системы,
в которые они входят, называются однородными (или иногда
моногенными). Однородная система действует последовательно
подобно машине. Для дальнейшего рассмотрения удобно ввести
Q Q
запись а=Ф|т, обозначающую, что а=^т, но ни одна продукция
из Q не применима к т.
Следующая теорема характеризует вычислимость по Посту.
5.16. Теорема. Пусть f: 2* —> 2* есть частичная функция,
а X, У —символы, не входящие в 2. Тогда следующие утвер-
утверждения эквивалентны:
(a) функция f вычислима по Посту\
(b) существует однородное множество продукций Q над
алфавитом S^SujX, Y}, так что для всех о ? 2* и x?2J
Q
имеет место Ха=Ф|т тогда и только тогда, когда o?Dom(f),
а т есть цепочка Yf(a).
(Замечание. Символы X и Y необходимы, чтобы отличать
«входные» цепочки от «выходных». В противном случае нужную
выходную цепочку f(a) можно было бы рассматривать как'
новую входную цепочку, к которой можно и дальше приме-
применять продукции.)
Доказательство. Импликацию (а)=Ф(Ь) можно доказать,
предварительно установив, что / вычислима машиной Тью-
Тьюринга М, а затем построив однородное множество продукций
для моделирования работы машины М. На самом деле можно
получить для нашей цели нормальное однородное множество
продукций.
Для доказательства (&)=$> (а) довольно просто показать,
что функция f: N —* N, кодирующая /, частично рекурсивна,,
я затем применить теорему 5.15. ?
Эта эквивалентность распространяется на функции fi\
B*)я—* 2* с помощью «входов» вида Xolot...an. ^
5. Система обработки символов Поста и Маркова 73
Более полное обсуждение системы Поста читатель найдет
в превосходно написанных главах книги Минского [1967],
посвященных этой теме.
5.17. Вычислимость по Маркову
Понятие вычислимости по Маркову очень похоже на по-
понятие вычислимости по Посту, полученное вторым способом
из предыдущего параграфа. Однако вместо того, чтобы огра-
ограничиться рассмотрением однородных систем, Марков приводит
правила, позволяющие однозначно определять, какую из имею-
имеющихся продукций применить следующей. Приведем вкратце
описание этих алгоритмов.
Нормальный алгоритм (или алгоритм) Маркова над алфа-
алфавитом 2 задается сйиском Q продукций (или правил) над 2
со следующими особенностями:
(i) каждая продукция в Q имеет вид SxgS% —> S^S,;
(ii) некоторые продукции в Q отмечены как заключительные.
Для данной входной цепочки а алгоритм Маркова последова-
последовательно применяет продукцию из Q в соответствии со следую-
следующими указаниями:
(a) если к цепочке о применимо больше одной продукции
из Q, то применяйте первую из них по списку в Q;
(b) если продукция 5x^Sa —> Sj/iSj применима к а более
чем одним способом, то она применяется к самому левому
вхождению g в а;
(c) процесс останавливается, давая в результате цепочку а,
либо когда применяется заключительная продукция, либо
когда никакая продукция из Q уже не применима к т.
Этими условиями полностью определяется вычислимая по
Маркову функция /: 2* —>2*. Нормальный алгоритм Маркова
может использовать для вычисления / алфавит, расширяю-
расширяющий 2.
5.18. Теорема. Пусть f: 2*—*2*. Тогда функция f вычислима
по Маркову тогда и только тогда, когда f вычислима по Посту.
Вычислимость по Маркову на N определяется обычным
образом с помощью какой-нибудь (эффективной в неформаль-
неформальном смысле) системы представления чисел и поэтому совпа-
совпадает с другими подходами к вычислимости.
6. Вычислимость на областях, отличных от N
В § б гл. 1 мы показали, как всякое понятие вычисли-*
мости на N можно распространить на другие области с помощью
кодирующего устройства. В противоположность этому в преды-
74 Гл. 3. Другие подходы к вычислимости: тезис Черна
дущем параграфе определение вычислимости по Посту на обла-
области цепочек в конечном алфавите было дано прямо в терминах
этих объектов (цепочек) и их внутренней структуры. Возможно
большое число таких прямых подходов к вычислимости на
других областях; приведем два примера.
6.1. Пример. D = Z. Понятие МНР можно расширить для
обработки целых чисел, введя следующие изменения:
(a) каждый регистр содержит целое число;
(b) имеется дополнительная команда S" (п) для каждого
я=1, 2, 3, ..., согласно которой из содержимого регистра
Rn вычитается 1.
6.2. Пример. D = 2*, где 2 = {а, Ь). Класс 91° частично ре*
курсивных функций на 2*—это наименьший класс частичных"
функций, такой, что
(a) ему принадлежат базисные функции
(i) f(*) = Af
(ii) f(o) = oa,
(iii) f(o) = ob9
(iv) функции проекции Ur}(pu ...,ал) = а/;
(b) класс 9lD замкнут относительно подстановки;
(c) класс 91° замкнут относительно примитивно рекурсивных
определений следующего вида:
h(oy Л) ~f(a),
ja)~g1(ot т, /i(a, x))f
jb)~g2(o, т, /i(a, т)),
где Л gl9 g2?9l.
(d) класс Я° замкнут относительно минимизации: если функ
ция /(а, т) принадлежит классу 91°, то и функция Л, опре
деленная отношением r^, h(a) ^ ц,т(^(а, т) = Л), где цт озн!
чает первое т в естественном упорядочении Л, а, Ь, аа, аЬу Ы
bby aaa, aab, aba (называемым лексикографическим), таюй
принадлежит классу 91°.
Для каждого из этих подходов, равно как и для друг*
подходов к вычислимости на области D, использующих в»
треннюю структуру D, мы убеждаемся, как и следовало ож
дать, что они эквивалентны подходу, основанному на перено
понятия вычислимости с N на D с помощью кодирован»
И наоборот, каждое естественное понятие вычислимости
области D индуцирует альтернативное (но эквивалентнс
понятие вычислимости на N через кодирование, как мы эк
видели в § 5 относительно вычислимости по Посту.
7. Тезис Черна 75
6.3. Упражнения
1. Докажите, что МНР-вычислимость на Z, как было
описано в общих чертах в примере 6.1, эквивалентна МНР-
вычислимости посредством кодирования (пример 1-5.1).
2. Докажите, что класс 91° частично рекурсивных функ-
функций на 2#, определенных на примере 6.2, тождествен классу
функций на !•, вычислимых по Посту.
3. Предложите естественное определение вычислимости на
областях (а) ЗхЗ-матриц, (b) Q (рациональных чисел).
4. Дайте естественное определение вычислимости по Тью-
Тьюрингу на 2#, где 2—любой конечный алфавит.
7. Тезис Чёрча
Сосредоточим теперь свое внимание на втором вопросе
введения в эту главу: насколько хорошо неформальное и ин-
интуитивное понятие эффективно вычислимой функции отражено
в различных формальных описаниях?
Чёрч, Тьюринг и Марков каждый в свете своих исследо-
исследований выдвинули утверждение или тезис о том, что класс
определенных ими функций совпадает с неформально опреде-
определенным классом эффективно вычислимых функций. В силу
основного результата A.1) эти тезисы математически эквива-
эквивалентны. Название тезис Чёрча (иногда тезис Чёрча—Тьюринга)
теперь применяется к этим и аналогичным им утверждениям.
Таким образом, в терминах МНР-подхода можно сформули-
сформулировать:
Тезис Чёрча: интуитивно и неформально определенный
класс эффективно вычислимых частичных функций совпадает
с классом % МНР-вычислимых функций.
Сразу же заметим, что этот тезис не является теоремой,
подлежащей математическому доказательству; он имеет статус
утверждения, принимаемого на веру, которое подтверждается
рядом свидетельств. Эти свидетельства в пользу тезиса Чёрча,
которые мы вкратце приводим ниже, весьма существенны.
1. Фундаментальный результат: многие независимые ва-
варианты уточнения интуитивного понятия вычислимости при-
привели к одному и тому же классу функций, который мы обо-
обозначили через~#.
2. Обширное семейство эффективно вычислимых функций,
как было показано, принадлежит классу #; конкретные функ-
функции гл. 2 образуют исходную часть такого семейства, которую
можно расширять до бесконечности методами гл. 2 и другими
более сложными методами.
76 Гл. 3. Другие подходы к вычислимости: тезис Чёрча
3. Реализация программы Р, вычисляющей функцию на
МНР, является очевидным примером алгоритма; таким обра-
образом прямо из определения класса # видно, что все функции
в # вычислимы в неформальном смысле. Как и в случае дру-
других подходов к уточнению вычислимости, сами определения
таковы, что они показывают эффективную вычислимость функ-
функций, входящих в определенный класс.
4. Никому не доводилось найти функцию, которую можно
было бы признать вычислимой в неформальном смысле, не
принадлежащую #.
Исходя из этих соображений и собственного опыта, боль-
большинство математиков приняли тезис Чёрча. Что касается нас,
то в оставшейся части книги мы будем применять тезис Чёрча
в том смысле, который разъясним в следующем абзаце.
Предположим, что мы располагаем неформально описанным
алгоритмом для вычисления значений функции /. Такой алго-
алгоритм может быть описан на естественном языке, или с помощью
диаграмм, или в полуформальных математических терминах,
или с помощью любых других средств, однозначно опреде-
определяющих, как эффективно вычислять значения / там, где онив
определены, за конечный отрезок времени. В такой ситуации^
нам может понадобиться доказательство МНР-вычислимости /„
Сделать это мы можем в общем двумя способами.
Способ 1. Написать программу, которая МНР-вычисляех
функцию f (и доказать, что она действительно это делает)
или косвенным образом доказать, что такая программа суще-
существует. Это можно сделать, например, либо применив метод*!
гл. 2, либо показав, что / принадлежит одному из многил
классов, который равен # согласно фундаментальному резуль
тату.
Полное и формальное доказательство того, что функция
МНР-вычислима, может быть долгим и технически трудны
процессом. По существу, оно должно содержать трансляций
неформально описанного алгоритма в программу или на языг
одного из иных формальных уточнений вычислимости. Вероятна
понадобятся различные блок-схемы как этапы промежуточна
трансляции.
Способ 2. Дать неформальное (хотя и строгое) доказател
ство того, что данный неформальный алгоритм действителы
вычисляет /. Затем апеллировать к тезису Чёрча и немедлен**
сделать заключение об МНР-вычислимости функции /.
Мы предлагаем воспользоваться способом 2 как строп
и надежным методом доказательства, который назовем док
зательством, основанным на тезисе Чёрча.
7. Тезис Черна ТТ
7.1. Примеры
1. Пусть Р является МНР-программой; определим функ-
функцию / следующим образом:
A, если Р(х) \ у после / или меньшего
числа шагов вычисления Р{х)\
О в противном случае.
Неформальный алгоритм вычисления / состоит в следую-
следующем: «Для заданной тройки (х, у, t) моделируйте вычисле-
вычисление Р(х) (например, на листе бумаги, как в примере 1-2.1),
выполняя / шагов Р(х), если только это вычисление не оста-
остановится раньше чем за t шагов. Если Р(х) останавливается
после t или менее шагов с числом у в регистре Rlf то
f(x9 у, t)=l. В противном случае (т. е. если Р(х) останавли-
останавливается за / или менее шагов с числом, отличающимся от у
в Rj, или если Р(х) не останавливается после / шагов),
/(*, у, 0 = 0».
Моделирование Р(х) для не более чем t шагов является,
очевидно, механической процедурой, которую можно выпол-
выполнить за конечное время. Таким образом, функция / эффек-
эффективно вычислима. Следовательно, по тезису Чёрча / МНР-
вычислима.
2. Пусть f и g—одноместные эффективно вычислимые
функции. Определим функцию А, полагая
( 1, если x?Dom(f) или x€Dom(g),
/lW=3 \ не определена в противном случае.
Алгоритмы для вычисления h можно описать в терминах алго-
алгоритмов, заданных для вычисления функции fug следующим
образом: «При заданном х запускайте алгоритмы для вычисле-
вычисления f(x) и g(x) одновременно. (Представьте себе двух испол-
исполнителей или две машины, работающие одновременно (парал-
(параллельно), или одного исполнителя, который выполняет поочередно
по одному шагу каждого алгоритма.) Если и когда хоть одно
из этих вычислений остановится, остановите вычисление в це-
целом и положите А(х)=1. В противном случае продолжайте
вычисление неограниченно долго»1).
Этот алгоритм дает h(x)=l для всякого х> такого, что f(x)
или g(x) определено; он не завершает работу, если ни f(x),
Ни g(x) не определено. Таким образом, мы получаем алгоритм
Для вычисления Л, и, согласно тезису Чёрча, функция Л МНР-
вычислима.
1] Фактически в конкретной физической ситуации до тех пор, пока не
У-чут исчерпаны ресурсы, т. е. память, отпущенное время, энергия и т. п.—
1 Рим. перев.
78 Гл. 3. Другие подходы к вычислимости: тезис Черна
3. Пусть f(ri) = n-n цифра десятичного разложения числа
я = 3,14159... (так что /@) = 3, /A)=1, /B) = 4 и т. д.).
Неформальный алгоритм вычисления f(n) можно описать так.
Рассмотрим ряд Хаттона для вычисления я:
(И1У)' /12 Пу 14 /П-
Пусть s/fe=2n-o'ln'» согласно элементарной теории бесконечны»
числовых рядов, sk < я < s*-f 1/10*.
Числа s* рациональны, так что можно эффективно вычис-
вычислить десятичное разложение sk с любой требуемой точностью.
Таким образом, мы приходим к следующему алгоритму вычис-
вычисления f(n) (при заданном п): «Найдите первое N^n + 1, такое,
что в десятичном разложении sN=a0, alf a2 ... апяя+1.. -uN ...
не все цифры ал+1, ..., aN равны 9. (Такое N существует, так
как в противном случае десятичное разложение я заканчива-
заканчивалось бы периодом из одной цифры 9 и я было бы рациональ-
рациональным и даже десятично рациональным.) Затем положите/(дг)=ап^
Чтобы убедиться в правильности значения f(n) = ant пред*
положим, что атф9 с п <m^.N. Тогда, согласно отмечен,
ному выше, sN < я < sN+ \/lON^sN+ 1/10да. Следовательно -
aot аг ... ап ... ат ... < я < а0, а, ... ап ... (ат+ 1) ..., та»
что п-я десятичная цифра в разложении я действительно есть ап
Следовательно, по тезису Чёрча функция / вычислима.
Читатель должен попробовать провести полные формальны»
доказательства (по способу 1) того, что функции в этих при*
мерах МНР-вычислимы (предполагая в примере 2, что функ^
ции fug МНР-вычислимы). В целом это довольно долго
и утомительное дело.
Заметим, что, применяя тезис Чёрча, мы не собираемо
отказываться от строгих доказательств вообще, как если б
тезис Чёрча был волшебной палочкой, которой достаточй
лишь взмахнуть. Доказательство, основанное на тезисе Чёрч|
будет всегда включать тщательно проводимую аргументаци!
иногда усложненную, хотя и неформальную. Кроме того, кая
дый, кто применяет тезис Чёрча так, как мы описали, долже
быть способен, если возникнут сомнения, провести формал!
ное доказательство. (Как бы предвидя такие сомнения, MX
дадим в приложении к гл. 5 другое формальное доказател
ство одной фундаментальной теоремы из этой главы (теор
7. Тезис Черна 79
ма 5-1.2), от которой зависит почти все последующее изложе-
изложение. Это послужит дальнейшему подтверждению тезиса Чёрча;
между прочим, простым формальным следствием является
то, что функции в приведенных выше первых двух примерах
также МНР-вычислимы.
Тезис Чёрча не только сокращает доказательства, но также
помогает выделить основную идею доказательства или построе-
построения, освобождая его от массы излишних деталей. Однако он
основан больше на вере или уверенности. Насколько можно
верить в его справедливость, зависит от свидетельств, кото-
которыми мы располагаем. Математическую сторону тезиса Чёрча
мы уже рассмотрели. Для читателя, имеющего опыт работы,
есть дополнительное свидетельство, основанное на его собст-
собственном опыте перевода неформальных алгоритмов в их фор-
формальные эквиваленты. Что же касается новичка, то его доверие
к тезису Чёрча, который мы будем применять в последующих
главах, будет зависеть от того, насколько он может довериться
опыту других там, где он еще не имеет собственного опыта.
Итак, в оставшейся части книги мы принимаем тезис Чёрча
и будем применять его в описанном выше смысле, часто без
явной ссылки на него.
7.2. Упражнения
1. Пусть f(x) и g(x)—эффективно вычислимые функции.
Докажите с помощью тезиса Чёрча, что определенная ниже
функция h МНР-вычислима:
1, если x^Dom(f)(]Dom{g)9
не определена в противном случае.
2. Пусть /—тотальная одноместная вычислимая функция.
Докажите, используя тезис Чёрча, что следующая функция А
МНР-вычислима:
lf если *
не определена в противном случае.
3. Дайте подробное доказательство с помощью тезиса Чёрча,
что функция Аккермана (пример 2-5.5) вычислима.
4. Докажите, основываясь на тезисе Чёрча, что функция g,
заданная условием g(n) = n-n цифра в десятичном разложении
числа е, вычислима (где число е—основание натуральных
логарифмов). т
Глава 4
Нумерация вычислимых функций
Вернемся теперь к изучению МНР-вычислимых функций.
В дальнейшем термин вычислимое будет означать МНР-вычис-
МНР-вычислимое, а термин программа—МНР-программу.
Основной результат, устанавливаемый в этой главе, состоит
в эффективной перечислимости множества всех программ; дру-
другими словами, существует эффективное кодирование программ
множеством всех натуральных чисел. Среди прочего отсюда
следует перечислимость класса %, что в свою очередь влечет
невычислимость многих функций. Диагональный метод Г. Кан-
Кантора, с помощью которого устанавливается этот факт, мы
обсудим в § 3.
Нумерация, или кодирование, программ, и особенно их
эффективность, играют фундаментальную роль в теории вычис-
вычислимости. Их значение нельзя переоценить. Посредством коди-
кодирования получаются коды или индексы для вычислимых функ-
функций, а их наличие наталкивает на идею эффективных опера-
операций, использующих такие коды. В § 4 мы докажем две важные
теоремы, связанные с кодами функций: так называемые s-m-n-
теоремы Клини. (Вторая теорема является основным резуль-
результатом гл. 5.)
1. Нумерация программ
Опишем сначала используемую терминологию.
1.1. Определение, (а) Множество X счетно, если существует
биекция f: X —* N.
(Замечание. Иногда используемый термин не более чем счет»
ное означает счетное бесконечное или конечное.)
(b) Перечислением, или нумерацией, множества X называется
сюръективное отображение g: N —* X; часто его представляют
следующей записью: Х=*{х0, хх, х2, ...}, где xn=*g(n). Еслн(
функция g инъективна, то говорят о перечислении или нуме*
рации без повторений. [
(c) Пусть X—множество конечных объектов (например, мно«>
жество команд или множество программ); X называется эффект
тивно счетным, если существует биекция /: X—>N, такая;
что обе функции f и /~* эффективно вычислимы.
/. Нумерация программ 81
(Замечание. Мы имеем здесь в виду неформальное понятие
эффективно вычислимого. К этому нас вынуждает то обстоя-
обстоятельство, что, вообще говоря, отсутствует формальное опре-
определение вычислимости функций, отображающих XbNX). В тех
случаях, когда применяется некоторое формальное понятие,
этому придается тот же смысл, что, например, в теореме 1.2 (а).)
Для установления основного результата этой главы нам
понадобится следующая теорема (напомним, что N+обозначает,
множество всех положительных натуральных чисел).
1.2. Теорема. Следующие множества являются эффективно счет-
счетными:
(a) NxN;
(b) N+xN+xN+;
(c) LU>oNft, множество всех конечных последовательностей
натуральных чисел.
Доказательство.
(a) Биекция я: N X N —* N определяется равенством: я (т, л)=
= 2mBn+l)—1. Из определения очевидно, что функция я
вычислима; эффективная вычислимость обратной функции видна
из того, что я* можно задать как я (х) = (л1(х), я2(х)), где
п1% я2—вычислимые функции, определяемые равенствами ях (х)=
= (*+1)ь М*)в1М(*+1)/B*<*>-1)) (см. упр. 2-4.16B)).
(b) Для явного задания биекции ?: N+ xN+ xN+ —> N исполь-
используем функцию я из (а):
?(m, n9 q) = n(n(m—l, л—1), q—\).
Тогда
Поскольку функции я, пи яа эффективно вычислимы, то эффек-
эффективно вычислимы и функции ? и ?""х.
(с) Биекция т: U*>oN*—*N задается тождеством
т (аи..., aft)=2e«+2fl«+fl«+l+2a»+fl«+fl»+9 + ...+2fll+af+ -+e*+*-1_i.
Очевидно, что функция т эффективно вычислима. Чтобы уста-
установить биективность т и вычислить т^), используем тот
факт, что у каждого натурального числа имеется ровно одно
представление в двоичной позиционной системе. Таким обра-
образом, для данного х можно эффективно и единственным образом
Указать числа k > 1 и 0 < Ьг < Ьа <... < Ьк, такие, что х + 1 =
= 2*i -f 2ba + .. .*+ 2Ьл, откуда получаем т (x) = (alt .... аЛ),
1} Казалось бы, можно сказать, что мы используем понятие вычисли-
вычислимости, основанное на некотором кодировании. Но в этом-то и состоит вся
"роблема, поскольку кодирование является эффективной (в неформальном
смысле) функцией.
82 Гл. 4. Нумерация вычислимых функций
где a,=&i, aa/+1 = b/+1— b{— 1 A</<*). (Ср. упр. 2-4.16E),
в котором доказывается вычислимость функций, тесно связан-
связанных с вычислением т.) Q
Обозначим множество всех команд МНР через <У, а мно-
множество всех программ через 5\ Каждая программа состоит
из конечного списка команд, поэтому мы далее рассмотрим
множество if.
1.3. Теорема. Множество if эффективно счетно.
Доказательство. Явно определим биекцию р.# if—>N, кото-
которая отображает команды четырех типов в натуральные числа
вида Аи, 4и+1, 4н + 2, Аи + 3 соответственно; используем
функции я и ?, определенные при доказательстве теоремы 1.2.
P(())(),
P(T(m, л) = 4я(т-1, л
P(J(m, л, <7)) = 4?(т, п,
Это явное определение показывает эффективную вычисли-
вычислимость функции р. Для вычисления р~х(*) найдем сначала такие
числа а и г, что x = 4w + r при 0<г<4. Значение г указы-
указывает тип команды Р~х(*). а ы позволяет найти конкретную
команду данного типа, а именно:
если
если
если
если
г
г
г
г
=о,
-1,
= 2,
= 3,
то
то
то
ТО |
(*-*(*)
P"XW
p-*w
p-iw
(m, n, 9), где (m, n, ^) = C-
Следовательно, функция р эффективно вычислима. ?
Докажем теперь следующую теорему.
1.4. Теорема. Множество 9* эффективно счетно.
Доказательство. Определим биекцию у: 9* —+ Н следующи
образом, используя биекции тир теорем 1.2 и 1.3: eci
Я=Л, /2, .... /„ то т(^-*(Р(Л) PC))- Так как,
и р—биекции, то и у является биекцией, а эффективная BI
числимость функций т, Р и обратных к ним функций обесг
чивает эффективную вычислимость у и у. ?
Биекция у играет важную роль в дальнейшем изложен»
Число у(Р) называется кодовым номером, или гёделевым" ном
х> Термин гёделев номер стал применяться после знаменитых р
К. Гёделя, впервые осуществившего идею кодирования нечисловых o6
тов натуральными числами (Гёдель [1931]).
/. Нумерация программ 83
ром программы Р, или просто номером Р. Положим
Рп = программа с (кодовым) номером п^у-1^)
и будем называть Рп п-и программой. По построению у нера-
неравенство тфп влечет за собой различие программ Рт и Pnf
хотя они могут вычислять одну и ту же функцию.
Для дальнейших результатов крайне важно, что функции
у и у эффективно вычислимы, т. е.
(a) По данной программе Р можно эффективно найти ее
кодовый номер у(Р).
(b) По данному номеру п можно эффективно найти про-
программу Рп = у~1(п).
Поясним это двумя простыми примерами.
1.5. Примеры
(а) Пусть Р является программой T(l,3), SD), ZF).
Вычислим (P)
Р(( 3)) = 4л@, 2) + 2 = 4B0 Bx2+1)-1) + 2= 18,
P(SD)) = l
p(ZF)) =
Следовательно, у(Р) = 21В + 2** + 2**—\ =9007203549970431.
(Ь) Пусть я = 4127, найдем P4U7. 4127 = 25 + 21а—1; сле-
следовательно, Я4127 является программой с двумя командами /lf
/2» где
= 5 = 4x1 + 1,
2)=12—5—1=6 = 4х1+2 = 4яA, 0) + 2.
Согласно определению р, /1 = SB), а /, = ТB, 1), и, зна-
Я4127 есть SB), TB, 1).
Существует, конечно, много других возможных эффектив-
эффективных биекций из 5* в N; наш выбор деталей определения у
был в достаточной мере произвольный. Снова подчеркнем, что
существенна эффективная вычислимость у и у. Отдельные
частности в определении у не столь важны. Для излагаемой
Далее теории подходит всякая другая биекция у' при усло-
условии, что у' и обратная к ней функции эффективно вычислимы.
Однако нам надо фиксировать какую-нибудь конкретную ну-
мерацию программ, и мы выбираем нумерацию, задаваемую
Функцией у. В остальной части книги нумерация у остается
неизменной, так что для каждого числа п значение Рп не
изменяется. Так, например, Я41а7 всегда означает программу
84 Гл. 4. Нумерация вычислимых функций
1.6. Упражнение. Найдите
(a) p(JC,4,2)),
(b)p-lE03),
(c) кодовый номер следующей программы: ТC, 4), SC)
),
(d) P100.
2. Нумерация вычислимых функций
Используя нашу фиксированную нумерацию программ
можно перенумеровать вычислимые функции, а также их об-
области определения и множества значений. Введем некоторые
важные обозначения, лежащие в основе последующего изло-
изложения.
2.1. Определение. Для каждого а?Н и м^1
(a) ф?> =я-местная функция, вычислимая по программе Ра
= f{p] в обозначениях § 3 гл. 1,
(b) и?{,Л) = область определения ф^ = {(*!, ..., хп)\
Ра (хи ..., хп) | }, Е{?] = множество значений функции Ф^
В последующих главах мы в основном будем иметь дела
с одноместными функциями и для удобства опустим верхний
индекс A); так, будем писать Фа вместо ф?\ Wa вместо UP?*
и Еа вместо Е{]
2.2. Пример. Пусть а = 4127; из предыдущего раздела мь
знаем, что программа Р4127 есть SB), TB, 1). Следовательно
*4ia7W=l (Для всех *)> а Ф«27(^i• ••-, хп)=*хг+1, если
/i>l. Таким образом, №4127 = N, ?4127 = {1}; U7fi>7=rNe
^7 = N + , если п> 1.
Пусть / — одноместная вычислимая функция. Тогда должн!
найтись вычисляющая / программа Я, такая, что / = Фа, гл
а = у(Р). Будем говорить, что а есть некоторый индекс /. Пс
скольку для каждой функции существует много различнь
вычисляющих ее программ, нельзя сказать, что а есть гдин
ственный индекс /; в действительности у каждой вычислимой
функции бесконечно много индексов.
Отсюда следует, что каждая одноместная вычислима^
функция представлена в перечислении Фо, Фм Фа, ... и чт4
это — перечисление с повторениями. То же относится к я-месч
ным функциям и их перечислениям.
2.3. Упражнение. Докажите, что у каждой вычислимой фун$|
ции имеется бесконечно много индексов.
2. Нумерация вычислимых функций 85
Напомним, что множество всех п-местных вычислимых
функций обозначается через %п.
2.4. Теорема. Множество %п счетно.
Доказательство. Используя перечисление Ф$\ Ф[п\ ф[п\ ...
(в котором есть повторения), построим перечисление без пов-
повторений.
Пусть
/(оно,
/A
Тогда ф}^,, Ф\%9 Ф)%, ... есть перечисление <вп без пов-
повторений. ?
Замечание. Мы не требуем, чтобы функция /, определен-
определенная в этом доказательстве, была вычислимой; на самом деле
позднее мы сможем показать, что это не имеет места. Тем не
менее можно дать более сложное построение всюду опреде-
определенной вычислимой функции ft, такой, что ф)$0)| Ф^1}, ...
окажется перечислением <ёп без повторений. Этот факт дока-
доказал Фридберг [1958]Х).
2.5. Следствие. Множество % счетно.
Доказательство. Поскольку #=Un>i#n, то счетность #
вытекает из того, что объединение счетного числа счетных
множеств есть счетное множество.
Для каждого п положим, что fn равна функции, исполь-
использованной в теореме 2.4 для перечисления %п без повторений.
Пусть я—биекция NxN—*N из теоремы 1.2. Определим
6: # —* N равенством 9(ф<Л|т)) = д(т, п—1). Очевидно, что
6 —биекция. ?
Следующая теорема показывает, что существуют невычи-
невычислимые функции. Идея доказательства столь же важна, как
и результат.
2.6. Теорема. Существует невычислимая всюду определенная
(или тотальная) функция.
Доказательство. Мы построим тотальную функцию /, одно-
одновременно отличающуюся от каждой функции в перечислении
*о> Ф1э Ф2, ... класса #х. Положим
» если значение Фп(п) определено,
0, если значение Фп (п) не определено.
}) См. также Мальцев А. И. Алгоритмы и рекурсивные функции,
гл. IV, § 7.4.—М.: Наука, 1965.— Прим. перев.
86
Гл. 4. Нумерация вычислимых функций
Заметим, что мы так определили /, что для каждого п
функция f отличается от Фп в точке п:
если Фп(п) определено, то / отличается от Фп тем, что
Т(п)ФФя(п)\
если Фп(п) не определено, то / отличается от Фп тем, чта
значение f(n) определено.
Поскольку f отличается от каждой одноместной вычисли-.!
мой функции Ф„, то / не представлена в перечислении клас-
класса <в1 и, стало быть, не является вычислимой. Очевидно, что
/—тотальная функция. ?
3. Обсуждение: диагональный метод
Метод построения функции / в теореме 2.6 является при*
мером диагональной конструкции, открытой Кантором. Многие
читатели знакомы с этим методом по его применению в до-"
казательстве несчетности множества действительных чисел*
Лежащая в его основе идея применима к огромному числу\.
ситуаций и является центральной в доказательствах многих,
результатов, относящихся к вычислимости и разрешимости.
Объясним, почему выбран термин диагональный. Для этогй
рассмотрим опять построение функции / в теореме 2.6. Пол*
ную информацию о функциях ф0, ф19 ... можно представит^
в следующей бесконечной таблице:
0 i
3
Фо
ф,
Фг
Фг
*.@)
Ф,B)
Считаем, что в том случае, когда значение ф„(т)не опре
делено, в таблице записано «не определено».
Для построения функции / отбираются диагональные эл^
менты таблицы (обведенные кружками) Ф0@), Фх A), Ф2B), ..
и систематически изменяются так, что получаются значения /@)
/A), /B), ..., такие, что для каждого п значение f(n) отлц
чается от Фп(п). Заметим, что значения f(n) можно выбират
сравнительно свободно, надо только обеспечить отличие f(m
3. Обсуждение: диагональный метод 87
ким
= /
\
от Фп(п)- Таким образом,
л) + 27я, если Фп(п) определено,
па, если Фп{п) не определено,
является другой невычислимой тотальной функцией.
Подведем итог нашему использованию диагонального ме-
метода. Пусть Хо» Xi» Xa» • • • есть перечисление объектов неко-
некоторого типа (функций или множеств натуральных чисел). Тогда
можно построить объект % того же типа, следуя правилу:
«Делать так, чтобы % и %п отличались в точке п». Интерпре-
Интерпретация слов «отличались в точке я» зависит от типа рассмат-
рассматриваемых объектов. Функции могут различаться в точке п
либо определенностью, либо своими значениями. В случае
функций мы обычно имеем возможность выбора при построе-
построении х Для того, чтобы удовлетворялись дополнительные тре-
требования, например, чтобы х была вычислимой или чтобы ее
область определения (или множество значений) отличалась от
области определения (множества значений) каждого х„.
В случае множеств вопрос состоит в том, принадлежит
ли п множеству или нет. Проиллюстрируем диагональную
конструкцию на примере множеств.
3.1. Пример. Предположим, что Ло, Аи Л8, ... есть пере-
перечисление подмножеств N. Определим новое множество В, при-
применяя диагональный принцип: п?В тогда и только тогда,
когда п(?Ап. Очевидно, 4fb ВфАп для всякого п.
Важные применения диагонального метода рассматриваются
в следующих двух главах.
3.2. Упражнения
1. Предположим, что f(x, у)—тотальная вычислимая функ-
функция. Для каждого т обозначим через gm вычислимую функ-
функцию, полагая gm(t/) = /(m, у).
Постройте тотальную вычислимую функцию А, такую, что
Ь^ёт Для каждого т.
2. Пусть /0, /„ ... есть перечисление частичных функций
из N в N. Постройте функцию g из N в N такую, что Dom (g) Ф
Ф Dom (/,) для каждого i.
3. Пусть /—частичная функция из N в N, a mgN. По-
Постройте невычислимую функцию g, такую, что g(x)~f(x)
Для всех *<т.
4(а) (Кантор). Докажите, что множество всех функций из
^ в N несчетно.
4(Ь). Покажите, что множество всех невычислимых тоталь-
тотальных функций из N в N несчетно.
Гл. 4. Нумерация вычислимых функций
4. s-m-/i-TeopeMa
В заключительном параграфе мы докажем теорему, кото-
которая имеет много важных применений, особенно в сочетай^
с основной теоремой следующей главы.
Предположим, что /(*, у)— вычислимая функция (не обя-
обязательно тотальная). Тогда для каждого фиксированного зна-
значения а переменной х функция / приводит к одноместной вы-i
числимой функции ga% где ga(y) ~ f(a, у). Поскольку ga вы
числима, то у нее есть индекс е, такой, что /(а, у)~фе(у\
Следующая теорема показывает, что индекс е можно эффею
тивно найти по а. Это является частным случаем более oft
щей теоремы, известной под названием s-m-n-теоремы, коте*
рую мы докажем ниже. (Причина такого названия будет
разъяснена после теоремы 4.3.) Для большинства целей нашей
книги достаточно теоремы в следующем виде:
4.1. Теорема (s-m-n-теорема, простая форма). Предполо*
жим, что f(x, у) —вычислимая функция. Существует то*
шальная вычислимая функция k (x), такая, что f(x, у) сх.фк (Х) (у).
Доказательство. Для каждого фиксированного а через k(df
обозначим кодовое число программы Qa, которая исходя иа
данной начальной конфигурации
О
вычисляет /(а, у).
Пусть F — программа, вычисляющая функцию /. Тогда Q*
получается из г приписыванием спереди команд, преобразуй
щих конфигурацию (*) в
Ri Ra
Таким образом, определим Qa как следующую программу:
, 2)
а раз
4. s-m-n-теорема 89
Теперь положим к (а) — кодовое число программы Qa. По-
Поскольку F фиксировано и ввиду эффективности нашей нуме-
нумерации у программ, функция к оказывается эффективно вычи-
вычислимой. Следовательно, по тезису Чёрча ft —вычислимая
функция. По построению Фк{а)(у) ^ /(а, У) Для каждого а. ?
s-m-n-теорему иногда называют теоремой параметризации,
поскольку она показывает, что индекс вычислимой функции
(такой, как ga в приведенном выше рассуждении) можно
эффективно найти по параметру (такому, как а), от которого
он эффективно зависит.
Перед тем как сформулировать полную s-m-n-теорему, да-
дадим несколько простых иллюстраций применения теоремы 4.1
в эффективной нумерации (или индексировании) некоторых
последовательностей вычислимых функций и их областей
определения или множеств значений.
4.2. Примеры
1. Пусть /(*, у) = ух. По теореме 4.1 существует тоталь-
тотальная вычислимая функция /г, такая, что Фк(х)(у)жУ*- Следо-
Следовательно, для каждого фиксированного п величина к(п) яв-
является индексом функции уп.
2. Пусть
(/, если у кратно х,
не определена в противном случае.
Тогда / вычислима, и обозначим через к вычислимую функцию,
такую что Фн(Х) (у) z*f(x, у). Тогда для каждого фиксирован-
фиксированного п значение Фк(п)(у) определено тогда и только тогда,
когда у кратно п, и тогда и только тогда, когда у принад-
принадлежит множеству значений Фл(Л>, т.е. П?л(Л) = п№ (множество
чисел, кратных п) = ?*(Л).
Таким образом, мы получили индексацию последователь-
последовательности множеств (пН) как (i) областей определения вычислимых
Функций, (и) множеств значений вычислимых функций.
Очевидный способ обобщения теоремы 4.1 состоит в замене
единственных переменных х, у на т- и n-наборы х и у соот-
соответственно. Можно также отразить то обстоятельство, что
Функция kt определенная в доказательстве теоремы 4.1, эффек-
тивно зависит от конкретной программы для исходной функ-
функции Л Таким образом, вместо рассмотрения фиксированной
^числимой функции /(*, у) мы рассмотрим вычислимую
Функцию Ф^т+Л>(дг, у) общего вида и проблему нахождения для
каждого е и х числа г, такого, что Ф?т+л)(лг, у)с~Фжп){у).
90
Гл. 4. Нумерация вычислимых функций
4.3. Теорема (s-m-я-теорема). Для всяких т, п^\ существует
тотальная вычислимая (т+1)-местная функция s?(et x), та-
такая, что
Доказательство. Обобщим доказательство теоремы 4.1.
Для каждого i^ 1 определим Q(it x) как подпрограмму
х раз
которая заменяет текущее содержимое R/ на х. Тогда для
фиксированных m, n определим s%(et x) как кодовое число
следующей программы:
Т(п,т
ТB,
ТA,
0A,
0B,
0(т
Ре
т+2)
т + 1)
х>)
хг)
,хт)
Зта часть программы преобразует любую конфигурацию
Ri Rn
Уп
6 конфигурацию
Х\
... хт
0
У»
0
R
0 ...
Из этого явного определения и эффективности у и у пол)
чаем эффективную вычислимость функции s?\ а, следовательно
по тезису Чёрча и ее вычислимость. ?
Стандартное название этого результата «s-m-/z-TeopeM
связано с обозначением s% для функций в теореме 4.3. Л
будем так называть и более простую версию, данную в ^
ореме 4.1.
Нетрудно видеть, что функция s?, определенная выи
является на самом деле примитивно рекурсивной. НемнО
поразмыслив, можно увидеть, что для каждого т нaйдet
функция sm (также примитивно рекурсивная), которая удй
летворяет теореме 4.3 для всех п. (См. упр. 4.4E) ниже.)
4. s-m-n-теорема 91
4.4. Упражнения
1. Покажите, что существует такая тотальная вычислимая
функция fc, что для каждого п значение k (n) является индек-
индексом функции [\/х\.
2. Покажите, что существует такая тотальная вычислимая
функция kt что для каждого п множество Wk (П) равно мно-
множеству точных n-х степеней натуральных чисел.
3. Пусть п ^ 1. Покажите, что существует тотальная вы-
вычислимая функция s, такая, что
4. Покажите, что функции s?, определенные в теореме 4.3,
примитивно рекурсивны.
5. Покажите, что для каждого т существует (т+ 1)-местная
вычислимая функция sm, такая, что для всех п имеет место
фш+п)(Х9 у)~Ф8т(е х)(у), где х, у суть т- и n-наборы соот-
соответственно.
(Указание. Рассмотрите определение sj?(e, x), данное в до-
доказательстве теоремы 4.3. Единственное место, где п встре-
встретилось там, было определение количества натуральных чисел
г[у г2, ..., которые заносятся в регистры Rm+1, ROT+8, ....
Теперь напомним, что действие Ре зависит только от перво-
первоначального содержимого регистров Rlf ..., Rp (я#)» где р —
функция, определенная в § 2 гл. 2; р{Ре) не зависит от п.)
Покажите далее, что существует такая примитивно рекурсив-
рекурсивная функция sm.
Глава 5
Универсальные программы
В этой главе мы установим несколько неожиданный ре-
результат, состоящий в том, что существуют универсальные про-
программы, т. е. программы, которые в некотором смысле реали-.
зуют все другие программы. Этот результат является одним
из двух основ теории вычислимости (другой является s-m-n-
теорема); оба результата опираются на нумерацию программ,
данную в гл. 4.
Одним из важных приложений универсальных программ
является построение специальных невычислимых функций и
неразрешимых предикатов, которое будет проведено в гл. 6.
Читатель получит представление о таких приложениях в § 2
этой главы; мы также воспользуемся универсальной программой,
для построения тотальной вычислимой функции, которая не
является примитивно рекурсивной, как было обещано в гл. 3.
Заключительный параграф этой главы посвящен некоторым
иллюстрациям применения s-m-л-теоремы в сочетании с уни-
универсальными программами. Это сделано для того, чтобы пока-
показать, что некоторые операции над индексами вычислимых
функций являются эффективными (эта тема будет развита
в гл. 10).
1. Универсальные функции и универсальные
программы
Рассмотрим функцию \р(х, у), заданную соотношение!
ур(х, у)~Фх(у). В этом и только в этом смысле единственна
функция if реализует все одноместные вычислимые функця!
Фо» *i» *2» • ••» так как для любого фиксированного т фут,
ция g, заданная как g(//)~ *р(т} у), является в точности фун!
цией \рт. Таким образом, мы описали \|э как универсальную
функцию для одноместных вычислимых функций. Вообще вв
дем следующее определение.
1.1. Определение. Универсальной функцией для п-местн*
вычислимых функций называется (п+ 1)-местная Ц{й\ опред
ленная соотношением
W(e, xlt ..., хя)~№(хи ..., хп)\
Вместо tyty мы будем просто писать ф^.
7. Универсальные функции и программы 93
Возникает вопрос, является ли % (и вообще ф^) вычисли-
вычислимой функцией? Если является, то любая программа Р, вычис-
вычисляющая ф{/, может вычислять все другие программы, и Р
подходит название универсальной программы. Сначала, воз-
возможно, существование универсальной программы кажется не-
неправдоподобным. Тем не менее нетрудно убедиться в том, что
функция \|>а действительно вычислима. Суть состоит в том,
что универсальная программа Р не должна обязательно содер-
содержать в себе все другие программы; Р должна только уметь
декодировать любое число е и, следовательно, имитировать
программу Ре.
1.2. Теорема. Для каждого п универсальная функция tyty вы-
вычислима.
Доказательство. Фиксируем п и предположим, что нам
даны индекс е и n-набор х. Неформальная процедура вычис-
вычисления ^(е, х) состоит в следующем: «Декодируйте число е
и напишите программу Ре. Затем имитируйте вычисление по
программе Ре шаг за шагом, на каждом шаге выписывая
содержимое регистров и команду, которую надо выполнять на
следующем шаге (как это делалось в примере 1-2.1). Если и
когда вычисление оканчивается, требуемое значение ^(е.х)
содержится в регистре Rx».
Мы можем сразу заключить (используя тезис Чёрча), что
функция ^(е, х) вычислима. Однако ввиду важности этой
теоремы мы предпочитаем дать в общих чертах начало фор-
формального доказательства и затем использовать тезис Чёрча
в меньшей степени. (Для того чтобы обеспечить полноту нашего
изложения, мы приведем остальную часть доказательства
в приложении в этой главе.)
План формального доказательства таков: вначале покажем,
как надо использовать единственное число а для кодирования
текущей ситуации в процессе вычисления, а затем покажем,
что существует вычислимая функция, выражающая зависи-
зависимость а от (а) номера программы е, (Ь) входа х и (с) числа
шагов вычисления, которое надо выполнить. Мы увидим, что
этого достаточно для доказательства теоремы.
Вернемся к вычислению Ре(х), рассмотренному выше. Как
мы видели на примерах, текущая ситуация в процессе вычис-
вычисления полностью определяется (i) текущей конфигурацией
(содержимым регистров rlf rt, га...) и (и) номером / следую-
следующей команды в вычислении. Так как может быть лишь конеч-
конечное множество чисел г,, отличных от 0, то текущая конфи-
гУрация может быть задана единственным числом
С = 2'..3'.... = [Ь,Г'.
94 Гл. 5. Универсальные программы
(Напомним, что pt есть i-е простое число.) Назовем это число
кодом конфигурации или даже просто конфигурацией, если не
возникнет неоднозначности. Заметим, что содержимое г( ре-
регистра /?, легко восстанавливается по с; в самом деле г~(сI
(используя функцию теоремы 2-4.15 (d)).
Полное описание текущей ситуации можно закодировать
теперь единственным числом а = л(с, /), которое мы назовем
текущим состоянием вычисления Р(х). (Здесь л—спариваю-
л—спаривающая функция, использованная в доказательстве теоремы 4-1.2.)
Примем соглашение, что в случае остановки вычисления / = 0
и с является заключительной конфигурацией. Заметим, что
с = л,(а), а / = л8(а), где щ и л8—вычислимые функции,
определенные в теореме 4-1.2.
Числа с, /, а изменяются в процессе вычисления; эта зави-
зависимость от номера программы е, входа х и числа / шагов
выражается следующими (л + 2)-местными функциями:
A)сп(е, х, 0 = конфигурация после того, как выполнено / шагов
вычисления Ре(х) (=заключительная конфигурация, если Ре(х)[
за t и меньше шагов).
число1), кодирующее следующую
команду для Ре(х) после / шагов
вычисления, если Ре(х) не остано-
B) ./„(*.*. О-
вилась за / или меньше шагов;
О, если Ре(х)\ за t или меньше ша-
шагов.
C) оп(е, X, /)вС0СТ0ЯНИе вычисления Ре(х) после / шагов=
= я(ся(в, лг, 0. /я(«. х, /)).
Теперь осталось показать, что ап (и, следовательно, сш
и /„)—вычислимые функции. Чтобы убедиться в достаточности
этого, предположим, что мы это уже доказали. Очевидно,
если вычисление останавливается, то оно останавливается за
р/(/„(*, х, 0 = 0) шагов; тогда заключительной конфигурацией
будет сп(е, xt [it(jn(e, x, /) = 0)), а стало быть,
№{е, х)~(сп{е9 х, \xt(jn(e, хл 0
Таким образом, если сп и \п вычислимы, то yfffp тгкЩ
вычислима (надо применить подстановку и минимизацию),
наше доказательство будет завершено.
Используем теперь тезис Чёрча, чтобы показать вычисл!
мость функций оп (а следовательно, сп и /„). У нас есть ел
дующий неформальный алгоритм эффективного нахожденИ
}) Мы подразумеваем здесь число /, такое, что следующая команда1
является /-й командой программы Ре\ мы не имеем в виду здесь кодов»
число Р(')
/. Универсальные функции и программы 95
оп(е, х, t + \) по ап(е, х, t) и е: «Декодируйте оп(е, х, t)
с тем, чтобы найти числа с = сп(е, xt t) и / = /„(е, х, t). Если
/ = 0, то оп(е, xt t+l) = on(e, x, t). В противном случае
запишите конфигурацию с кодом, скажем, с
(*) (ch (с)г
(с)п
и, декодируя е, напишите программу Рё. Найдите /-ю команду
в Ре и примените ее к конфигурации (•), переходя к новой
конфигурации с кодом, скажем, с'. Найдите также номер /"
новой следующей команды (с /' = 0, если вычисление теперь
уже завершилось)». Тогда мы получаем
оп{е, х
Это показывает неформально, что оп(е, xf t) вычислима рекур-
рекурсией по t, так как при / = 0 мы имеем
ая(*,х,0) = яB*.3'-...р*я, 1),
чтобы начать рекурсию. Следовательно, по тезису Чёрча
функция оп вычислима, и наша теорема доказана. П
Замечание. Так как эта теорема является основой даль-
дальнейшего изложения, то в приложении мы приведем полное
формальное доказательство того, что функция оп (а следова-
следовательно, и tyty) вычислима. Это будет дополнительным под-
подтверждением тезиса Чёрча. (Наше формальное доказательство
даст нам дополнительную информацию о том, что ап на самом
деле примитивно рекурсивна.)
Из доказательства теоремы вытекает
1.3. Следствие. Для всякого п^\ следующие предикаты раз-
разрешимы:
(a) Sn(c, ху (/, /) = «Р,(дгI(/ за t или меньше шагов»,
(b) Нп(е, х, *) = «Р#(дг)| за t или меньше шагов».
Доказательство.
(a) Sn(e, х, у% 0— «/Л*, ж, /НО и (сп(е, х, 0)i=i/».
(b) Ня(е%х% t)^«jn(e,x, t) = 0». D
Роль следующего следствия обсуждается в первом замеча-
замечании из тех, что последуют далее.
1.4. Следствие, (теорема Клини о нормальной форме). Суще-
Существуют тотальная вычислимая функция U (х) и для каждого
п^ 1 разрешимый предикат Тп(е, х> г) такие, что
96 Гл. 5. Универсальные программы
(a) Ф2(х) определено тогда и только тогда,'когда 3zTn(et х, г),
(b) 4>l(x)^U{\LzTn(e, x, г).
Доказательство. Чтобы выяснить, определено ли Ф(еп)(х),
и, если определено, найти его значение, нам нужно найти
такую пару у, t, что Sn(e, x, у, t). У нас есть jx-оператор,
который позволяет эффективно найти единственное число, обла-
обладающее данным свойством. Чтобы использовать это обстоя-
обстоятельство для поиска пары чисел, мы можем рассматривать
единственное число г как кодирующее пару чисел (z)i и (z)a.
Тогда, когда z пробегает N, пара ((гIэ (г)а) пробегает NxN.
Так мы определяем
Тп(е, х, z)^Sn(etx, (z)u (г),).
Для доказательства (а) предположим, что Ф{еп) (х) определено;
тогда существуют такие у, t что Sn(ef х, у, t), и, полагая
2 = 2^3', имеем Тп{еу х, г).
Обратно, если существует г, такое, что Тп(е, дт, г), то по
определению Тп имеет место Ре(хI, т. е. Ф(еп)(х) определено.
Что касается доказательства (Ь), то из определения Тп
ясно, что если Ф^(дг) определено, то для каждого г, такого,
что Тп(е, х, 2), мы имеем Ф(р)(х) = (г1). Таким образом, поло-
положив U (z) = (z)lt получаем
№{x)*LUipzTn(e%x% г)). П
Замечания
1. Из приложения к этой главе следует, что функции сп
и \п примитивно рекурсивны. Следовательно, предикаты Snf
Hnf Tn в следствиях 1.3 и 1.4 также примитивно рекурсивны.
Таким образом, в частности, теорема Клини о нормальной
форме показывает, что каждая вычислимая функция (или
частично рекурсивная функция) может быть получена из при-
примитивно рекурсивных функций не более чем одним примене-
применением |ы-оператора. Теорема дает, кроме того, стандартный
способ осуществления этого.
2. Метод поиска пар чисел путем представления пары
единственным числом г, кодирующим пару (г)и (zJ (исполь-
(использованный в доказательстве следствия 1.4), часто применяется
в теории вычислимости. Ниже мы даем упражнение, в кото-
котором используется этот метод (упр. 1.5A)).
Этот способ можно также применить при поиске последо-
последовательности чисел (xl9 x%t ..., хп) для всякого л> 1.
1.5. Упражнения
1. (i) Покажите, что существует разрешимый предикат
Q(x, y9 г), такой, что
2. Два приложения универсальной программы 97
(a) у?Ех тогда и только тогда, когда 3zQ(x, у, z)\
(b) если у?Ех и Q{x, yt г), то Фх{(гI) = у.
(ii) Выведите существование такой вычислимой функции
g(x,y), что
(a) g(x, у) определено тогда и только тогда, когда у?Ех%
(b) если у?Ех, то g(x9 y)?Wx и 4>x(g(xt y)) = y; т. е.
)Г(М)
(iii) Докажите, что если /—вычислимая инъективная функ-
функция (не обязательно тотальная или сюръективная), то функция
f'1 вычислима (ср. упр. 2-5.4A)).
2. (Ср. пример 3-7.1(Ь).) Пусть / и g—одноместные вычис-
вычислимые функции; в предположении, что разрешимость 7\ дока-
доказана формально, докажите формально, что функция h (x), опре-
определенная следующим образом:
\ — / 1» если х 6 Dom (/) или х ? Dom (g)\
~~ не определена в противном случае
вычислима.
2. Два приложения универсальной программы
Проиллюстрируем теперь, как использовать вычислимость
универсальных функций в диагональных построениях. Этот вид
приложений более обстоятельно будет разъяснен в следующей
главе.
2.1. Теорема. Проблема «Фп всюду определена» неразрешима.
Доказательство. Пусть g—характеристическая функция
этой проблемы, т. е.
1, если Фх тотальна,
О, если Фх нетотальна.
Нам надо показать, что функция g невычислима. Чтобы сде-
сделать это, применим диагональный способ построения тотальной
функции /, которая отличается от каждой вычислимой функ-
чии, однако такой функции ft которая будет вычислима, если
вычислима функция g. Явным образом зададим / посредством
Фх(х)+1, если фх тотальна,
О, если Фх нетотальна.
Очевидно, что / тотальна и отличается от каждой вычислимой
Функции фх. Теперь, применяя g и $и$ запишем / следующим
образом:
I, если g(x)=l,
если g(x) = 0.
862
98 Гл. 5. Универсальные программы
Предположим теперь, что функция g вычислима; так как \ри
вычислима, то по тезису Чёрча вычислима и функция /, что
приводит к противоречию. Следовательно, g невычислима. Q
А теперь, как было обещано в § 3 гл. 3, мы приведем еще
одно приложение универсальной программы.
2.2. Теорема. Существует тотальная вычислимая функция, не'
являющаяся примитивно рекурсивной.
Доказательство. Дадим неформальное доказательство этого.
Напомним, что примитивно рекурсивными называются функ-
функции, которые можно построить из базисных функций с помощью
конечного числа подстановок и примитивных рекурсий. Таким
образом, каждая примитивно рекурсивная функция может быть
задана схемой, в которой отмечены базисные функции и точ-
точная последовательность операций, примененных при ее по-'
строении. Для описания такой схемы удобно ввести следую-
следующие обозначения:
Sub(/; ft, g2, ..-, gm) обозначает функцию полученную
подстановкой glt ..., gm в / (в предположении, что / есть
m-местная, a gu ..., gm—я-местные функции для некото-
некоторого л);
Rec(/, g) обозначает функцию, полученную из / и g рекур-
сией (предполагая, что / есть я-местная, a g есть (м + 2)-
местная функция для некоторого п).
Обозначив функцию х+ 1 через 5, мы получаем, например,-
следующую схему для функции f(x) = x2. Используем буквы
gu - • • t #4 Для обозначения промежуточных функций.
Шаг Схема Объяснение шагов
1 ^eSub(S; US) gi(x,y,z) = Ul{x,y,z)+l=z+l
Л gl)
Таким образом, g2(x, у)-
4 g4 = Rec@, gs) j
{
Таким образом, ft(x, y) = xy
5 / - Sub (ft; Ul, U}) / (x) - ft (x, x) = x*
Таким образом схема чем-то сродни программе в том отнощ
нии, что является конечным и явным заданием функции.
3. Эффективные операции на вычислимых функциях 99
Рассмотрим сейчас схемы одноместных примитивно рекур-
рекурсивных функций. Как и программы, мы можем эффективно
перенумеровать эти схемы, и, таким образом, мы можем затем
определить дп как одноместную примитивно рекурсивную функ-
функцию, заданную схемой с номером л.
Тогда Эо, 6lf Эя, ... будет эффективной нумерацией всех
одноместных примитивно рекурсивных функций.
В гл. 2 мы убедились в том, что каждая примитивно рекур-
рекурсивная функция вычислима. Следовательно, существует тоталь-
тотальная функция р, такая что для каждого л значение р (п) является
номером программы, вычисляющей 8„, т. е. 6Л = Ф/,(П).
Теперь решающим моментом является то, что мы можем
найти такую вычислимую функцию р. Мы рассуждаем нефор-
неформально, применяя тезис Чёрча.
Вспомним доказательства теорем 2-3.1 и 2-4.4. Там мы
явно показали, как получить программу для функции Sub(/;
gi. • • •> g*)» если Даны программы для /, #,, ..., gmt а также
как получить программу для функции Rec(/, g), если даны
программы / и g. (В следующем параграфе (пример 3.1E))
мы применим s-m-n-теорему, чтобы показать в деталях, что
для всякого п существует вычислимая функция г, такая, что
для любых еи е2 индекс для Rec(<^\ Ф^+2)) равен г{еи е2)\
мы можем сделать подобную вещь и для подстановки (см.
упр. 3.2Eа)).) У нас имеются явно выписанные программы
для базисных функций. Следовательно, если дана схема для при-
примитивно рекурсивной функции /, включающая промежуточные
функции gif ..., gkt то можно эффективно найти программы
Для gi» git •••> gft и» наконец, /. Значит, существует эффек-
эффективно вычислимая функция р, такая, что 0Л = ФЯ(Л). По тезису
Чёрча функция р вычислима.
И теперь, исходя из р и универсальной функции ф^, можно
определить тотальную вычислимую функцию g, отличающуюся
от каждой примитивной рекурсивной функции 9„. Применяем
следующее диагональное построение:
Отсюда мы сразу видим, что#—тотальная функция, не являю-
являющаяся примитивно рекурсивной; но g вычислима в силу вы-
вычислимости \|?а и р. ?
3. Эффективные операции на вычислимых функциях
В этом параграфе мы покажем другое важное применение
вычислимости универсальных функций, на этот раз в сочета-
сочетали с s-m-n-теоремой.
100 Гл. 5. Универсальные программы
Рассмотрим следующие операции на вычислимых функциях
или их областях:
(a) комбинация Фх и Фу% дающая произведение ФХФ»\
(b) образование объединения WX\J Wy из множеств wx и Wy.
Нам известно много операций такого рода, обычно опреде-
определяемых явно, как и приведенные выше. Можно ли в каком-
нибудь смысле считать эти операции эффективными? Поскольку
эти операции имеют дело с бесконечными объектами (функциями
или множествами), они как будто лежат в стороне даже от
нашего неформального понятия вычислимости, которое, оче-
очевидно, применяется к конечным объектам. Тем не менее, каю
мы убедимся, индекс функции ФХФУ эффективно находится па-
индексам х и у. В следующих примерах и упражнениях мы
увидим, что многие другие операции являются эффективными,
если их рассматривать как операции над индексами затраги-'
ваемых объектов. (Мы вернемся к вопросу об эффективных
операциях над функциями в гл. 10.)
3.1. Примеры
1. Существует тотальная вычислимая функция s(xty)t такаяг-
что Ф5 (JCt у) = ФхФу Для всех х, у.
Доказательство. Пусть / (х, (/, г) ~ Фх (z) Фу (z) ~ \ри (х, z) х
X\fo/(y. *)•
Таким образом функция / вычислима, так что по s-m-n
теореме найдется тотальная вычислимая функция s(x9 у), такая,
что /(*, у, г) ~ Ф5(Xt у) B); следовательно, Ф$(х, у)=ФхФу.
2. Полагая g(x) = s(xt x)t где s берется из примера 1
имеем (ФxJ = Фg^X).
3. Существует тотальная вычислимая функция s(x, у}
такая, что WsiXty) — Wx[) Wy.
Доказательство. Пусть
( 1, если z?Wx или z?Wy\
f(x, У, *)-= \
^ ( не определена в противном случае.
Используя тезис Чёрча и вычислимость х^, получаем вь
числимость функции /, а значит, существует тотальная вь
числимая функция s{x, y)t такая, что f(x, yt z)~*,Ui y)(t
Теперь очевидно, что Ws{x% y) = Wx[iWy.
4. Эффективность операции обращения функций. Пус
g(et у)—вычислимая функция, описанная в упр. 1.5, т.
такая, что
(a) g(x> У) определено тогда и только тогда, когда у ?Е
(b) если у?Ех, то g(x, y)?Wx и Фх^(х9 у)) = у.
По s-m-n-теореме существует тотальная вычислимая функция
такая, что g(xy у)~Фк(х)(у). Тогда из (а) и (Ь) следует
3. Эффективные операции на вычислимых функциях 101
(a') Wklx}-Ex.
(b') (i) Ekix}aWx,
(ii) если у?Ех9 то Фх{Фкм{у))=*У-
Следовательно, если Фх инъективна, то Фк {х) = ф^1 и Ен {х) = Wx.
5. Эффективность рекурсии. Пусть x = (xlt .... xn)t и рас-
рассмотрим (л+ 3)-местную функцию /, определенную посредством
Не» *„ х, 0)~фМ{х).
Не» е%% х, у+1)*Ф)?ш+*Чх, у, f{elf e%% х, у)).
Теперь, используя универсальные функции yffl и ip|/+1\ пере-
перепишем выражения в правой части и получим определение
по рекурсии с вычислимыми функциями; поэтому функция /
вычислима. Кроме того, для фиксированных еи е% функция
g(x% y)cxf(eu et, х, у) получена из Ф^° и ф?+2> рекурсией.
Согласно s-m-n-теореме, существует тотальная вычислимая
функция г(еи е2)у такая, что
е„ х9 у).
Следовательно, r(elt e2) является индексом (п + 1)-местной
функции, полученной из ф^) и Ф^+а) рекурсией. В обозначе-
обозначениях теоремы 2.2
tf>. Ф{<:+%)) для всех elt et.
Следующие упражнения дают дополнительные примеры ис-
использования s-m-n-теоремы для доказательства эффективности
операций на индексах.
3.2. Упражнения
1. Покажите, что существует тотальная вычислимая функ-
функция k(e)t такая, что для каждого е, если Фе—характеристи-
Фе—характеристическая функция для разрешимого предиката М(х), то фН{в)
является характеристической функцией для предиката «не
М (*)».
2. Покажите, что существует тотальная вычислимая функ-
функция k(x), такая, что Ekix)=*Wx для каждого х.
3. Покажите, что существует тотальная вычислимая функ-
функция s(x, у), такая, что Е3{Хл у) = Ех[}Еу для всех х, у.
4. Пусть /(х) —вычислимая функция; покажите, что су-
существует тотальная вычислимая функция k(x), такая, что
Wk(x)=ri(Wx) для всех х.
5. Докажите аналоги примера 5 для подстановки и мини-
минимизации, а именно:
(а) фиксируем т, п^\\ существует тотальная вычисли-
вычислимая функция s(et el9 ..., ет), такая, что (в обозначениях
102 Гл. 5. Универсальные программы
теоремы 2.2)
Ф1г н > - sub (фГ\ ф?\ ф?\ ..., <).
(Ь) Фиксируем л^1; существует тотальная вычислимая
функция k(e), такая, что для всех е
(Можно естественным образом расширить обозначение тео-
теоремы 2.2 и записать Фьп)(е) =
Приложение. Вычислимость функции ал
В этом приложении мы дадим формальное доказательство
того, что функция а„, определенная в доказательстве тео-
теоремы 1.2, вычислима (на самом деле примитивно рекурсивна),
дополнив таким образом формальное доказательство вычисли-
вычислимости универсальной функции qfffK
Теорема. Функция оп примитивно рекурсивна.
Доказательство. Определения оп и функций сп и /„, зако-
закодированных функцией ал, приведены в теореме 1.2.
Определим две функции config и nxt, чтобы описать из-
изменения в сп и /„ в процессе вычислений. Пусть на некотором
шаге вычисления по программе Ре текущее состояние есть
а«я(с, /) и в Р, имеется ровно s команд. Действие /-й ко-
команды Р# на состояние а состоит в следующем:
(новая конфигурация после
выполнения /-й команды
программы Р., если 1</<s,
с в противном случае,
( номер следующей коман- если 1 ^ / <! s и
ды вычисления после вы- эта следующая ко-
nxt(e,
полнения /-й команды Ре манда в Ре сущест-
над конфигурацией с, вует;
0 в противном случае,
Теперь функцию ап можно получить из функций config и nxfj
с помощью уравнений рекурсии:
оп{е, х, 0)-яB*3*...р?\ 1),
оп(е, х, t +1)«я(config(eton(e, xf t)),nxt{eton(et x, t)).
Таким образом, функция ап примитивно рекурсивна, если
config и nxt примитивно рекурсивны; далее мы докажем, чтя
•то так и есть.
Приложение. Вычислимость функции оп 103
Нам нужно быть внимательными, различая кодовое число
(или код) Р(/) команды / и ее номер в той программе, в ко-
которой она встречается (т. е. такое число /, что / является
/-й командой). Мы всегда под Р(/) будем подразумевать ко-
кодовое число команды /.
Достаточно установить примитивную рекурсивность сле-
следующих четырех функций:
A) In (е) = число команд в программе Ре\
i код /-й команды в Рш% если 1</<1п(е),
( ) g \ » /)в | q B ПрОТИВНОм случае;
C) ch(c, z) = конфигурация, получающаяся в результате
применения команды с кодом г к конфигура-
конфигурации с\
номер /' следующей команды в вычисле-
вычислении, когда к конфигурации с применена
D) v(c, /, z) = \ команда с кодом г и эта команда является
/-й командой в программе, если / > О,
О в противном случае.
(«Следующая команда в вычислении» здесь понимается так,
как определено в § 2 гл. 1, т. е. /' = /+1, или если /уесть
команда перехода J(mlf ma, q)t то j' = q.
Если эти четыре функции примитивно рекурсивны, то,
вспоминая, что а = л(с, /), где с=^п1(а) и/«=л,(а), получаем
ch (nt (a), gn (e, nt (а))), если 1 <nt (а) < In (e)t
^(а) в противном случае.
(v(J4(a), я2(а), gn(^, л, (а))), если это число
меньше или равно 1п(е),
О в противном случае.
Таким образом config и nxt примитивно рекурсивны согласно
аргументации гл. 2.
Остается показать, что введенные выше функции A)—D)
примитивно рекурсивны. Для декодирования кодовых чисел
программ и команд необходимы вспомогательные функции.
Мы свободно пользуемся стандартными функциями и методами
§ 1—4 гл. 2 наряду с определенными в § 1 гл. 4 функциями
для кодирования команд и программ.
E) Функции а (г, дс), /(*), b(l9 х) и аA% х) упражнения
2-4.16E) примитивно рекурсивны.
Доказательство, (г) х = ]?Г=оа(*, хJ{\ поэтому мы полу-
получаем qtB', x)-a(f, x)+a (i+l.x) 2+.... и .следовательно,
<*(*, x)«rmBf qtB'. x)).
104 Гл. 5. Универсальные программы
A1) /(х)«*число таких if что oc(f, х)—1; значит, /(*) =
-Да(<, х).
'(lii) Если х > 0, х = 2»<*• *> + 2» <*• *> + ... + 2Ь« <*>• *>; таки\
образом, если 1 <С/< /(*), то &(/, х) является /-м индексом Л
таким, что a(kf x)=l. Значит,
. если К
( ) |
( 0 в противном случае,
(iv) По определению
a(i, x) = b(t, х) A-0, 1);
a(f+l, x) = (b(t+l, x)-b(it x))-l
Примитивную рекурсивность этих функций мы выводим и:
приведенных выше явных формул, применяя методы гл. 2.
F) Функции \п(е) и gn (e, /) примитивно рекурсивны.
Доказательство. По определению кодирующей функции
где Z и а—функции из E).
G) Существуют примитивно рекурсивные функции а, и
Ы|» vl$ v%, v9t такие, что
если z = p(Z(m)), то и (z) = m,
если 2 = P(S(m)), то и (г) = т,
если 2 = p(T(mlf та)), то ^,(г) = т^ и ut(z)=*m2,
если 2 = P(J(mlf та, G)), то с;, (г) = т,, t;8 (z) = т% и с;8(г) == с
Доказательство. Из определения р, обозначая qtD, г) ч
рез (z/4), имеем
ii(z)
и, (z)
«•(«! B/4))+I,
(8) Следующие функции примитивно рекурсивны:
(i) zero (с, m) — изменение в конфигурации с% произведи
ное командой Z (m) = qt {pmmf с).
Приложение. Вычислимость функции оп
105
ch(c, г)-
(И) sue (с, т) = изменение в конфигурации с, произведен-
произведенное командой S(m) = cpm.
(iii) transfer (с, т, п) = изменение в конфигурации с, про-
произведенное командой Т(т, л) = qt (р?)n, ср^).
(9) Функция ch(c, z) (определенная выше в C)) является
примитивно рекурсивной.
Доказательство.
zero (с, u(z))t если rmD, z) = 0 (т. е. г
является кодом команды
обнуления),
sue (с, u(z))t если гшD, г)=1 (т. е. г
является кодом команды
прибавления 1),
transfer (с, ut (г), u%(z))> если rmD, z) = 2 (т. е. г
является кодом команды
переадресации),
о в остальных случаях.
A0) Функция v(c, /, z) (определенная выше в D)) примитивно
рекурсивна.
Доказательство. Имеем
+ 1, если пиD, г)ФЗ (т. е. z является кодом
арифметической операции),
, /, г)« ¦ /+1, если (c)WlU)=^ (?:)»,(„ | если rmD, г)==3, (т. е.
> z является кодом ко-
^ v9 (г), если (c)Vl (г) = (c)r,lf) j манды перехода).
Из этого определения с разбором случаев мы видим, что
функция v примитивно рекурсивна.
Итак, мы установили, что функции A) — D) примитивно
рекурсивны, и тем самым доказательство теоремы завершено. Q
Глава 6
Разрешимость, неразрешимость
и частичная разрешимость
В предшествующих главах мы коснулись нескольких раз-
разрешимых проблем, однако до сих пор нам встретился только
один явный пример неразрешимости — проблема «функция фх
тотальна» (теорема 5-2.1). Значительный интерес представляет
задача выявления разрешимых и неразрешимых проблем; по-
последние, среди прочего, указывают на ограничения, возни-
возникающие в теории вычислимости, и тем самым демонстрируют
теоретические границы возможностей реальных вычислительных
машин.
В этой главе мы будем заниматься главным образом нераз-
неразрешимостью. В § 1 дается обзор неразрешимых проблем, воз-
возникающих в самой теории вычислимости, и обсуждаются не-
некоторые методы доказательства неразрешимости. Параграфы
2—5 посвящены ряду разрешимых и неразрешимых проблею
из других областей математики; этот материал не используется,
в последующих главах, и его можно при желании опустить,
В последнем параграфе рассматривается понятие частично1
разрешимости, которое тесно связано с понятием разрешимости*.
Напомним (см. гл. 1), что предикат М(лг) называется рац
решимым, если его характеристическая функция, задаваема!
формулой
J 1, если М(лг) истинно,
~~ \ О, если М(лг) ложно
вычислима. Это равносильно утверждению о том, что предика1
М(х) рекурсивен (см. § 2 гл. 3). Предикат М(лг) называете.
неразрешимым, если он не является разрешимым. В литер
туре используются следующие термины, эквивалентные утвер*.
дению о том, что предикат М (х) разрешим:
М (лг) рекурсивен,
М (х) имеет рекурсивную проблему разрешения,
М(х) рекурсивно разрешим,
М (лг) вычислим.
Алгоритм, вычисляющий см, называется разрешающей п
цедурой для М (х).
/. Неразрешимы* проблемы в теории вычислимости 107
1. Неразрешимые проблемы в теории вычислимости
В большинстве случаев доказательства неразрешимости
основываются на диагональном методе, как, например, в сле-
следующем важном примере.
1.1. Теорема. Проблема «x€Wx» (или, что эквивалентно, ^функ-
^функция Фх(х) определена», или «Px{x)l*t или «функция \ри(*. x)
определена*) неразрешима.
Доказательство. Характеристическая функция этой проб-
проблемы задается следующей формулой:
( 1, если x?Wx,
ДХ)~ \ 0, если x$Wx.
Предположим, что функция / вычислима, и приведем это пред-
предположение к противоречию. Именно с помощью диагонального
метода мы построим вычислимую функцию g, такую, что
Dom(g)=?Wx(= DomD>x)), при всех х, чего, очевидно, быть
не может.
Как всегда при использовании диагонального метода, мы
будем стремиться к тому, чтобы множество Dom(g) отлича-
отличалось от Wx в точке х. Будем поэтому добиваться того, чтобы
Определим теперь функцию g следующим образом:
0, если x^Wx (т. е. если
не определена, если x?Wx (т. е. если /(х)= 1).
J
Поскольку функция / вычислима, то (по тезису Чёрча) вы-
вычислима и функция g, что и дает требуемое противоречие.
(Более подробно, поскольку функция g вычислима, возьмем
такое т, что g=:Фm, тогда m?Wm&m€ Dom (g)&m(fcWn,
чего не может быть.)
Итак, мы заключаем, что функция / не является вычис-
вычислимой, и, следовательно, проблема <ax?Wx» неразрешима. ?
Заметим, что эта теорема вовсе не утверждает, что мы не
можем для любого конкретного числа а сказать, будет ли
определено значение Фа(а). Для некоторых чисел сделать это
очень просто. Например, если мы написали программу Р,
вычисляющую тотальную функцию, и Я = Рв, то мы сразу
знаем, что значение Фа{а) определено. Теорема говорит лишь,
что не существует единого общего метода решения вопроса
0 том, будет ли Фх(х) определено; другими словами, не су-
существует метода, работающего при всех х.
108 Гл. 6. Разрешимость и неразрешимость
Простое следствие этого результата состоит в следующем.
1.2. Следствие. Существует вычислимая функция Л, для кото-
которой обе проблемы «x?Dom(/i)>> и «*€Ran(/i)» неразрешимы.
Доказательство. Положим
х, если x?Wx,
не определена, если x(fcWx.
Тогда в силу тезиса Чёрча и вычислимости универсальной
функции \j?t/ функция h вычислима (более формально мы име-
имеем h(x)~x\ (\|?t/(x, x))t а эта функция вычислима как резуль-
результат подстановки). Ясно, что х € Dom (А) <Ф х € W х & х € Ran (Л),
так что обе проблемы <a€Dom(/i)» и «*€Ran(A)» неразре-
неразрешимы. ?
Из теоремы 1.1 выводится еще одна важная неразреши-
неразрешимая проблема:
1.3. Теорема (проблема остановки). Проблема «функция Фх(у)
определена» (или в эквивалентной форме «Рх(у)\*, или «y?Wx»)
неразрешима.
Доказательство. Рассуждая неформально, мы сразу видим,
что если бы проблема «функция Фх(у) определена» была бы
разрешима, то была бы разрешима и более простая проблема
«функция Фх(х) определена», что противоречит теореме 1.1.
Чтобы провести все эти рассуждения более подробно, рас-"
смотрим характеристическую функцию проблемы «функция
Фх(у) определена», которая имеет следующий вид:
| 1, если Фх(у) определена,
^ \ 0, если Фх (у) не определена.
Если бы функция g была вычислима, то вычислимой была бь
и функция f(x) = g(xt x), но / есть характеристическая функп
ция проблемы «x?Wxy> и, следовательно, не вычислима в си«
лу теоремы 1.1. Следовательно, функция g не вычислима, Ц
тем самым проблема «Фх(у) определена» неразрешима. ?
Теорему 1.3 часто интерпретируют как утверждение о не
разрешимости проблемы остановки (для МНР-программ), в ка
тором говорится о том, что не существует никакого эффектиЯ
ного общего метода установить, остановится ли некотора
конкретная программа, запущенная после введения в нее не
которого конкретного набора начальных данных. Смысл этог
утверждения для теоретического программирования очевиде!
/. Неразрешимые проблемы в теории вычислимости 109
не существует совершенно общего метода проверки программ
на наличие в них бесконечных циклов.
Рассмотренная в теореме 1.1 неразрешимая проблема
«х ? Wx» важна по нескольким причинам. Одна из них состо-
состоит в том, что неразрешимость многих проблем можно
доказать, показав, что они по крайней мере не проще, чем
эта. Именно таким путем мы без большого труда доказали,
что проблема остановки (теорема 1.3) неразрешима: этот про-
процесс называется сведением одной проблемы к другой.
Вообще рассмотрим некоторую проблему М (х). Часто уда-
удается показать, что решение общей проблемы М(х) привело
бы к решению общей проблемы <а?И?х», Тогда говорят, что
проблема «x?Wx» сводится к проблеме М(х). Другими сло-
словами, если имеется разрешающая процедура для проблемы
М (х), то мы можем дать и разрешающую процедуру для
проблемы «х ? Wx». Таким образом, из разрешимости М(х)
следует разрешимость «x?Wx»t откуда мы немедленно зак-
заключаем, что М(х) неразрешима.
Для сведения проблемы «x?Wx» к другим проблемам ча-
часто используется s-m-я-теорема, как показывает, например,
доказательство следующего результата.
1.4. Теорема. Проблема «Фх = 0» неразрешима.
Доказательство. Рассмотрим функцию /, определенную
формулой
Г 0, если xeWx,
i\x> У) j не определена, если x?Wx.
Эту функцию мы ввели для того, чтобы далее воспользо-
воспользоваться s-m-n-теоремой. Тем самым мы рассматриваем х как
параметр, и нас интересуют функции gx, такие, что gx(y)~
— /(*, у)- При этом мы выбрали / так, что gx = 0ox?fP*.
Тезис Чёрча (или подстановка с использованием 0 и \$и)
показывает, что функция / вычислима. Поэтому существует
тотальная вычислимая функция k(x)t даваемая s-m-я-теоре-
мой, такая, что /(*, у) ^Фк {х) (у)\ то есть <t>k(x) = gx. Таким
образом, по определению
Следовательно, вопрос о том, верно ли, что x?Wx, мож-
Но решить, ответив сначала на вопрос: верно ли, что Ф*(х) =
==0? Тем самым мы свели общую проблему <uc?Wx» к общей
проблеме «фх = 0»; поскольку первая из них неразрешима, то
неразрешима и вторая, что и требовалось доказать.
ПО Гл. 6. Разрешимость и неразрешимость
В связи с тем что это первый встретившийся нам пример^
подобного рода, рассмотрим последнюю часть нашего рассуж-
рассуждения более подробно. Пусть g—характеристическая функ-
функция проблемы «фх = 0», т. е.
( 1, если Фх = 0.
g(x>~\ 0, если Фхф0.
Предположим, что функция g вычислима. Тогда вычисли-
вычислимой будет и функция h{x) = g(k(x)). В тоже время соотно-
соотношение (*) дает
lf если ф*<*> = 0' т-е' X€W*>
0, если ФьмФО, т.е. x$Wx.
Тем самым в силу теоремы 1.1 функция h не является вычис-
вычислимой. Стало быть, и функция g не является вычислимой*
так что проблема «фх = 0» неразрешима. ?
Теорема 1.4 показывает, что в области проверки правиль-
правильности компьютерных программ имеются принципиальные ог-
ограничения. В ней говорится о том, что не может быть со-
совершенно общего эффективного метода осуществить проверку
того, будет ли программа вычислять нулевую функцию. Не
сколько изменив доказательство теоремы 1.4, можно убедиться
в том, что то же самое справедливо и для любой другой
конкретной вычислимой функции (см. ниже упр. 1.8 (i)).
Простое следствие теоремы 1.4 показывает, что вопрос
том, вычисляют ли две программы одну и ту же одноместнук
функцию, неразрешим. Смысл этого результата для теорети-
теоретического программирования также очевиден.
1.5. Следствие. Проблема «фх = фу» неразрешима.
Доказательство. Легко убедиться в том, что эта проблема
сложнее проблемы «фх=0». Пусть с—такое число, чтоф,=0. Есл!
/(*, у)—характеристическая функция проблемы фх = фу, тофунк
ция g{x)=*f(x9 с) есть характеристическая функция проблем!*
«Фх = 0». По теореме 1.4 функция g невычислима, так что не
вычислима и функция /. Следовательно, проблема «Фх = Фф
неразрешима. П
В следующих результатах мы вновь воспользуемся s-m-r
теоремой для сведения проблемы «х g Wx».
1.6. Теорема. Пусть с—произвольное число. Следующие про
лемы неразрешимы.
(а) (Проблема входа) «c?Wx» (или в эквивалентной фор
мулировке «Ях(с)|», или «с D())
L Неразрешимые проблемы в теории вычислимости
(Ь) (Проблема выхода) «с^Е^ь (или в эквивалентной фор-
формулировке «с? Ran (Фх)»).
Доказательство. Мы можем свести проблему «дг ? И?х» к
обеим этим проблемам одновременно. Рассмотрим функцию
f(x, у), определенную следующим образом:
)=f y* если x€Wf
IK » yj — | не определена в противном случае.
(Имея в виду использовать s-m-я-теорему, мы будем рассмат-
рассматривать функции gxt для которых gx(y)~f(x, у). Функцию /
мы выбрали таким образом, что с ? Dom (gx) &xGWx&c?
?Ran(gJ.) В силу тезиса Чёрча функция / вычислима, так
что s-m-я-теорема дает тотальную вычислимую функцию kf
такую, что /(х, у)с^Фк(х)(у). Из определения / мы видим,
что
так что с 6 Wk {х) и с g Eh (JC)f и
так что c(fcWkix) и c(fcEkix). Тем самым мы свели проблему
«х ? Wх» к каждой из проблем «с ? W j> и «с б Ех*.
Завершая доказательство пункта (а) более подробно, мы
видим, что если g—характеристическая функция проблемы
то
1, если х g Wx%
О, если х(? Wx.
Эта функция не является вычислимой (теорема 1.1), так что
функция g тоже не может быть вычислимой. Следовательно,
проблема «c?Wx» неразрешима.
Подробное доказательство пункта (Ь) проводится анало-
аналогично. ?
Мы закончим этот параграф одним очень общим резуль-
результатом о неразрешимости, из которого немедленно вытекают
теоремы 1.4 и 1.6. При этом мы снова воспользуемся для
сведения проблемы *x?Wx» s-m-м-теоремой.
1*7. Теорема (теорема Раиса). Пусть 39 ^#< и 5ВФ0Ь %и
Тогда проблема «Фх?53» неразрешима.
Доказательство. Соотношения для разрешимых множеств
Сгеорема 2-4.7) показывают, что проблема «Фх € 38» разрешима
112 Гл. 6. Разрешимость и неразрешимость
тогда и только тогда, когда разрешима проблема «фх ^\
Поэтому без потери общности мы можем считать, что нигде
не определенная функция f0 не принадлежит й (если это не
так, то утверждение можно доказать для ^t\S).
Выберем некоторую функцию g?fB. Рассмотрим функцию.
/(*» у), задаваемую следующим образом:
( g(y),
П . У) — ^ не определена, если
Пользуясь s-m-n-теоремой, мы получаем тотальную вычисли-
вычислимую функцию k(x), такую, что f(x> у) ~ фк {х) (у). Таким об-
образом, мы видим, что
№ т.е.
т.е.
Это значит, что с помощью вычислимой функции k мы свели
проблему «х б Wx» к проблеме «фх б ^». Теперь уже стандарт-
стандартным образом можно заключить, что проблема «Фх?^?» нераз-
неразрешима. ?
Теорема 1.4, например, немедленно вытекает из теоремы
Раиса, если взять S = {0}, а теорема 1.6 (а)—если взять
58 ^{g б #i: c€ Dom (g)}. Аналогично можно воспользоваться
теоремой Раиса и в следующих упражнениях.
1.8. Упражнения.
1. Покажите, что следующие проблемы неразрешимы.
(a) «х?Ех». (Указание. Воспользуйтесь диагональным ме-
методом или сведите к этой проблеме проблему «x?Wx» с по-
помощью s-m-я-теоремы.)
(b) «Wx=Wy». (Указание. Сведите к этой проблеме проб*
лему «функция Фх тотальна».)
(c) «фх(*) = (Ь.
(d) «<Ы</) = 0».
(e) «х?Еу».
(f) «функция фх тотальна и постоянна».
(g) «tt^x=0».
(h) «множество Ех бесконечно».
(i) <«i>x=:g»t где g есть любая фиксированная вычислима»
функция.
2. Покажите, что не существует тотальной вычислимо!
функции f(x, у), обладающей следующим свойством: если
программа Рх(у) останавливается, то это происходит за f (x, у
или меньше шагов (Указание. Покажите, что если бы такая
2. Проблема слов в теории групп 113
функция существовала, то проблема остановки была бы раз-
разрешима.)
Разрешимость и неразрешимость в других областях мате-
математики. Во многих областях математики возникают проблемы
общего характера, для которых имеет смысл неформальное по-
понятие разрешимости. Обычно такие проблемы касаются конеч-
конечных объектов некоторой конкретной области. В этом случае
понятию разрешимости того или иного свойства, касающегося
этих объектов, можно придать точный смысл, используя под-
подходящую кодировку натуральными числами.
Выявлению разрешимых и неразрешимых проблем в самых
разных математических ситуациях посвящены многие исследо-
исследования. Ряд полученных в этом направлении результатов мы
приведем в следующих параграфах.
2. Проблема слов в теории групп 1}
Пусть G—группа с единичным элементом 1. Предположим,
что G порождается набором элементов S = {gt, ga, g9, ...}sG.
Словом в S называется любое выражение, подобное выраже-
выражению вида g2lgtgiSl8s и включающее элементы из S и груп-
групповую операцию. Каждое слово представляет некоторый элемент
группы G, и сказать, что G порождается множеством S~,3To
то же самое, что сказать, что каждый элемент из G представ-
представляется некоторым словом в S.
Проблема слов для группы G (относительно множества S)
состоит в том, чтобы определить, для каких слов w в S
верно соотношение ш=1.
Есть много групп, для которых проблема слов разрешима:
например, любая конечная группа (относительно конечного
множества S, разумеется). В течение многих лет математики
пытались найти пример конечно-определенной*) группы, для
которой проблема слов была бы неразрешима. В конце концов
Новиков в 1955 году и Бун в 1957 году показали, что такие
группы существуют. Доказательства теоремы Новикова — Буна
выходят за рамки настоящего обзора. Читатель может озна-
ознакомиться с ними в изложении Ротмана Г19651 или Манина
[1977J. L J
1) Читатель, незнакомый с теорией групп, может пропустить этот
Раздел.
2) Группа G называется конечно-определенной, если существует конеч-
конечный набор образующих 5 и конечное множество В соотношений вида w=l
1гДе w есть некоторое слово в 5), такие, что (i) все соотношения из В
выполняются в G и (ii) все другие соотношения, выполняющиеся в G, мо-
Уч быть выведены из соотношений, содержащихся в В с использованием
Дни* лишь аксиом группы.
114 Гл.6. Разрешимость и неразрешимость
Теория групп и современная алгебра вообще изобилует
интересными разрешимыми и неразрешимыми проблемами. При'
этом многие из них касаются свойств слов и образующих,
сходных с проблемой слов.
3. Диофантовы уравнения
Пусть р (*!, x2t ..., хп)—многочлен от переменных х1% ....
..., хп с целыми коэффициентами. Тогда уравнение
p(xlt x2t ...,дО = 0,
для которого мы ищем только целые решения, называется дио-
фантовым уравнением. Диофантовы уравнения не обязательна"
имеют решение. Например, не имеет решения уравнение х2—:
-2 = 0.
Десятая проблема Гильберта, сформулированная в 1900
году, состоит в том, чтобы установить, существует ли эффек-
эффективная процедура, с помощью которой можно определить,
имеет ли решение любое наперед заданное диофантово урав
нение. В 1970 году Ю. Матиясевичем было показано, что та-
такой процедуры не существует. Его доказательство завершил
цикл работ, выполненных до этого М. Дэвисом, Дж. Робин"
соном и Г. Патнэмом.
На самом деле Матиясевич доказал несколько больше, че!
только неразрешимость десятой проблемы Гильберта. Полную
теорему Матиясевича и ее применение к десятой проблеме Гил*
берта мы рассмотрим в § 6. Более подробное изложение моя
но найти у Дэвиса [1973], Манина [1977] и Белла и Макс
вера [1977].
4. Алгоритм Штурма
Чтобы несколько восполнить недостаток внимания к во
росам разрешимости (в двух предшествующих параграфах м
делали упор на неразрешимых проблемах), мы рассмотр!
теперь теорему Штурма, которая дает некоторые положите
ные результаты о вычислимости и разрешимости в зада
связанной с нахождением нулей полиномов.
4.1. Теорема Штурма. Пусть р(х)—многочлен с действию,
ными коэффициентами, и пусть р0, /?,, ..., рг — последа
пгельность многочленов с действительными коэффициента^
определяемая следующим образом:
(a) Ро = />.
(b) /?! = /?' {производная от /?),
4. Алгоритм Штурма 115
(c) для любого О < I < г существует многочлен qh такой,
что Pt-i^Piqi—Pt+u где ри1фО и степень многочлена р{+1
меньше степени pt (тем самым многочлены qt и —р/+1 явля-
являются соответственно частным и остатком от деления мно-
многочлена р(_г на /?,),
(d) pr_x = prqr.
Для любого действительного числа с обозначим через б (с)
число перемен знака в последовательности ро(с)9 .. .,рг(с) (ну-
(нули при этом игнорируются).
Пусть а и Ь—действительные числа, которые не являются
корнями р(х), и пусть а<Ь. Тогда количество корней р(х)
в интервале [а, Ь] равно б (а)—6F) (при этом каждый ко-
корень учитывается только один раз).
Здесь не место приводить доказательство теоремы Штурма,
четкое изложение которого читатель может найти у Кона [1977]
или Ван дер Вардена [1949]. Для наших целей теорема штур-
штурма представляет интерес в связи с тем, что в ней содержится
алгоритм решения проблемы. Она дает положительный резуль-
результат о вычислимости количества корней многочлена и о разре-
разрешимости утверждений о корнях многочлена.
Для формулировки таких результатов нам надо ограни-
ограничиться рассмотрением многочленов с рациональными коэффи-
коэффициентами. Тогда объекты, с которыми мы будем иметь дело,
будут конечными. Множество рациональных чисел обознача-
обозначается через Q, и, таким образом, мы будем вести все рассуждения
в терминах вычислимости над Q (которое можно определить
в терминах вычислимости над N с помощью обычного кодирую-
кодирующего устройства). Заметим, что любой многочлен р (х) с коэф-
коэффициентами из Q есть, по сути дела, последовательность ра-
рациональных чисел.
Из теоремы Штурма вытекают, в частности, следующие
результаты.
4.2. Теорема, (а) Существует эффективная процедура вычисле-
вычисления числа действительных корней многочлена с коэффициента-
коэффициентами из Q;
(Ь) Предикат «многочлен р имеет корень на [а, Ь]» разре-
разрешим, где р есть многочлен с коэффициентами из Q и а, b?Q.
Доказательство. Для любого заданного многочлена р мно-
г°члены pQt plt ..., prt определяемые в теореме Штурма,
м°гут быть найдены эффективно с помощью стандартных правил
Дифференцирования и алгоритма деления многочленов.
Рассмотрим утверждение (а). Для любого многочлена легко
СтРоится рациональное число М > 0, такое, что все корни р
пРинадлежат интервалу ]—М, М[. В самом деле, пусть
116 Гл. 6. Разрешимость и неразрешимость
ао + а! (*)+••• +апхп. Тогда достаточно взять число
Тогда по теореме Штурма количество корней многочлена
р равно числу о(—М) — 6(М), которое вычисляется эффек
тивно.
В случае утверждения (Ь) допустим, что нам дан много-
многочлен р и рациональные числа a, b. Чтобы решить вопрос с
том, имеет ли р корень на [а, 6], вычислим сначала значения
р(а) и р(Ь). Если ни одно из этих чисел не равно нулю,
вычислим число б (а)—б(Ь) и применим теорему Штурма.
Разумеется, теорему Штурма можно использовать и для
того, чтобы показать, что многие другие вопросы, касающиеся
многочленов с коэффициентами из Q, являются вычислимым*
или разрешимыми.
4.3. Упражнение. Покажите, что существует эффективна*
процедура нахождения для заданного многочлена р и задан-]
ных рациональных чисел a, b количества корней р на отрезке
[a, b] (Не забудьте, что числа а и Ь тоже могут быть корня-
корнями р.)
5. Математическая логика
Первые исследования понятия эффективной вычислимости
были в значительной степени связаны с развитием математи
ческой логики, поскольку разрешимость считалась основньи
вопросом в деле формализации математики. Мы изложим не
которые из результатов, полученных в этой области, в общи
терминах, не требующих никакого предварительного знако\
ства с математической логикой. (Читатель, заинтересованны
в том, чтобы изучить начала этого предмета, может обре
титься к какому-нибудь из многочисленных вводных курсо
например к книге Маргариса [ 1966].I}
Простейшей логической системой, в которой находят отр
жение некоторые аспекты математического мышления, явл*
ется исчисление высказываний. В этом исчислении сложнь
утверждения строятся из некоторых основных высказывай*
с помощью символов, обозначающих логические связки «не
«и», «или» и «влечет». Довольно легко убедиться в том, чя
если исчисление высказываний определено достаточно акк*
ратно, то оно разрешимо. Это означает, что существует а
фективная процедура решения вопроса о том, является ли t
А) На русском языке см., например, Новиков [1959]*.— Прим. пер*
5. Математическая логика 117
иЛи иное утверждение этого исчисления (тождественно) истин-
истинным, т. е. справедливым во всех возможных ситуациях. Алго-
Алгоритм этого дается методом истинностных таблиц, хорошо
знакомым многим читателям.
Более широкими возможностями, чем исчисление высказы-
высказываний, обладает логическая система, которая называется ис-
исчислением предикатов (первого порядка). На языке этого ис-
исчисления можно формализовать значительную часть всей
математики. Основные утверждения в нем формируются из
символов, представляющих индивидуальные объекты (или эле-
элементы), и предикатов и функций на них. Сложные утвержде-
утверждения строятся из основных с использованием логических сим-
символов исчисления высказываний, а также символов V и 3.
Имеется точное понятие доказательства утверждения ис-
исчисления предикатов, причем утверждение доказуемо тогда и
только тогда, когда оно истинно1). В 1936 году Чёрч показал,
что доказуемость (и, следовательно, истинность) в исчислении
предикатов неразрешима в отличие от более простого пропо-
пропозиционального исчисления. (Гильберт считал этот результат
самым фундаментальным касающимся неразрешимости резуль-
результатом во всей математике.)
Простое доказательство неразрешимости проблемы истин-
истинности можно дать с использованием МНР, хотя это требует
некоторого знакомства с исчислением предикатов. Читателю,
который не знаком с началами логики предикатов, мы сове-
советуем пропустить приведенный ниже набросок доказательства.
5.1. Теорема. Проблема истинности исчисления предикатов
первого порядка неразрешима.
Доказательство. (Тем, кто не знаком с исчислением пре-
предикатов, рекомендуется пропустить.)
Пусть Р—некоторая программа в стандартном виде, со-
содержащая команды /lf ..., Ist и пусть ы = р(Я) (определение
см. § 2 гл. 2). Мы будем использовать следующие обозначе-
обозначения символов исчисления предикатов:
О—индивидный символ,
'—символ одноместной функции (значение которой на х
равно х'),
R—символ (и+ 1)-местного отношения,
xi> **, .••¦ хв, у—символы индивидных переменных.
1) В этом случае говорят, что понятие доказуемости является полным,
этот факт составляет содержание теоремы полноты Гёделя.
118
Гл. 6. Разрешимость и неразрешимость
Содержательная интерпретация этих символов заключается
в том, что 0 представляет число 0, ' представляет функци*
х+\, a R представляет все возможные состояния вычисления
Я. Таким образом, если обозначить 0' через 1, 0" через 2 и
т. д., то утверждение
R(ri» ..., гв, к),
где ги ..., га, *?N, означает, что в процессе вычисление
встречается состояние
О I О I ... ; следующая командаIk
Далее, для любой команды 1( можно записать утвержде-
утверждение исчисления предикатов т,, описывающее результат выпол-
выполнения команды //. При этом мы используем символ Л для
обозначения связки «и» и символ —> для обозначения импли-
импликации. Утверждение т/ определяется следующим образом:
(a) если // = Z(n), то \{ есть утверждение
Vx, ... Vxa:R(x1, ..., х„, ..., хд, i) —
— R(xlt ..., О, ..., хв, Г);
(b) если //:=S(n), то %t есть утверждение
Vx, ... Vxo:R(xlt ..., хпэ ..., х0, i) —
(c) если //=*Т(т, /г), то т{ есть утверждение
Vx, ... Vxa:R(xlt ..., х„, ..., хо, i)-*
(d) если // = J(m, я, (/), то т^ есть утверждение
VXj ... Vxtt:R(xlf ..., xa, i)—*((xm = xn-+
-^R(xt, ..., хй, ц))/\(хтфхп-+ R(Xl, ..., xB, I'))).
Пусть теперь для любого a?N символ aa обозначает утверж
дение
(т.Лт.Л ... AT,AR(a, 0, ..., О, 1)) —
— Эх, ... 3xttR(xlt ..., xfl, s+1),
где т0 есть утверждение VxVy ((х' = у' —* х = у) Л х' фй
(Это гарантирует нам, что при любой интерпретации i
m, n€Nnm = n следует, что m = n.)
Утверждение R(a, 0, ..., О, 1) соответствует исходнол
состоянию
; следующая команда Тх
5. Математическая логика \\9
а любое утверждение R(xlt ..., хя, s -f1) соответствует оста-
остановке (поскольку нет команды /Л+1). Мы покажем, что
(*) Р{а)\&аа истинно.
Предположим сначала, что Р(а)\ и что имеется структура,
в которой утверждения т0, ..., т, и R(a, 0, ..., О, 1) вы-
выполняются. С помощью утверждений т0, ..., ts мы получаем,
что каждое из утверждений R(rlt . .., гв, к), соответствующих
последовательным состояниям вычисления, также выполня-
выполняется. В конце концов мы приходим к тому, что для некото-
некоторых blt ..., Ьп?Ы выполняется утверждение об остановке
R(blf ..., Ьц, s + 1) и, следовательно, выполняется утверж-
утверждение 3xj ... 3xaR(xlt ..., хц, s + 1). Таким образом, утверж-
утверждение оа истинно.
Обратно, если утверждение оа истинно, то оно выполня-
выполняется, в частности, в структуре N, причем предикатный
символ R интерпретируется как предикат Ra, для которого
Ra (ai» • • • i ao» &) = На некотором этапе вычисления Р (а)
в регистрах содержатся числа аи
0S, ...v aB, 0, 09 .... а следующая
команда есть Ik.
Тогда утверждения т0, ..., т, и R(a, 0, ..., О, 1) также
выполняются в этой структуре, а следовательно, и утвержде-
утверждение Зхх ... 3xeR(x19 ...,xot s + 1). Отсюда Р(а)\.
Если в качестве Р взять программу, вычисляющую функ-
функцию три (х, х), то соотношение эквивалентности (#) сводит
проблему «х?1Рх» к проблеме «а истинно». Отсюда следует,
что последняя проблема неразрешима. Q
Математическая логика изобилует результатами, касающи-
касающимися разрешимости и неразрешимости. Обычно речь идет о
задачах, в которых необходимо установить, будет ли некото-
некоторое утверждение истинным во всех математических структу-
структурах определенного типа. Например, было показано, что про-
проблема «а есть утверждение, истинное для всех групп» явля-
является неразрешимой (а здесь есть утверждение на языке
исчисления предикатов первого порядка, соответствующего
теории групп), тогда как проблема «а есть утверждение,
истинное для всех абелевых групп» разрешима. (При этом
принято говорить, что теория групп первого порядка нераз-
неразрешима, в то время как теория абелевых групп первого по-
Рядка разрешима.) Как было показано Тарским [1951], про-
проблема «утверждение а истинно в поле действительных чисел»
является разрешимой. С другой стороны, как мы увидим в
120 Гл. б. Разрешимость и неразрешимость
гл. 8, многие проблемы, связанные с формализацией арифме-*
тики натуральных чисел, неразрешимы.
С другими примерами, а также с доказательствами многих
результатов, касающихся разрешимости и неразрешимости в
математической логике, читатель может ознакомиться в кни-
книгах Тарского, Мостовского и Робинсона [1953] или Булоса
и Джефри [1974], а также Ершова [1981]*.
6. Частично разрешимые предикаты
Хотя предикат «x?Wx» и имеет невычислимую характе-
характеристическую функцию, тем не менее следующая функция,
связанная с этой проблемой, является вычислимой:
| 1, если x?Wxt
\ не определена, если x^Wx.
Если по-прежнему считать, что символом 1 кодируется ответ
«да», то любой алгоритм, вычисляющий /\ является процеду-
процедурой, которая дает ответ «да», когда x?Wx1 но продолжает
работать бесконечно, если утверждение x?Wx не выполня-
выполняется. Такая процедура называется частичной разрешающее
процедурой для проблемы «х€й?х», и при этом говорят, что
эта проблема или этот предикат частично разрешимы.
Оказывается, что многие неразрешимые предикаты явля-
являются частично разрешимыми. Дадим общее определение.
6.1. Определение. Предикат М(х)у определенный на множе-
множестве натуральных чисел, называется частично разрешимым^
если функция /, заданная формулой
I 1, если М (х) истинен,
'* \ не определена, если М(х) ложен,
вычислима. (Эта функция называется частичной характера
стической функцией М.) Если предикат М частично разре
шим, то любой алгоритм для вычисления / называется части*
ной разрешающей процедурой для М.
Замечание. В литературе используются и другие термины
например полувычислимый и рекурсивно перечислимый. Все он
означают то же самое, что и частичная разрешимость.
6. Частично разрешимые предикаты
6.2. Примеры
1. Проблема остановки (теорема 1.3) является частично
разрешимой, поскольку ее характеристическая функция
| 1. если РХ(УI>
^ \ не определена в противном случае
вычислима в силу тезиса Чёрча (или в силу того факта, что
f(X} */)~1(гМ*. у)))-
2. Любой разрешимый предикат частично разрешим: доста-
достаточно организовать разрешающую процедуру таким образом,
чтобы она зацикливалась всякий раз, когда в результате по-
получается 0.
3. Для любой вычислимой функции g(x) проблема «х€
? Dom (g)y> является частично разрешимой, так как она имеет
вычислимую частичную характеристическую функцию l(g(x))
(ср. следствие 1.2).
4. Проблема «#(?lFx» не является частично разрешимой.
Действительно, если /—ее частичная характеристическая функ-
функция, то
х б Dom (J) & х $ Wx.
Таким образом, Dom (f) отличается от области определения
любой унарной вычислимой функции. Следовательно, функция
/ не вычислима.
Перейдем теперь к формулировке некоторых важных
свойств частично разрешимых предикатов. Прежде всего от-
отметим другое их описание, которое уже, по существу, содер-
содержится в упр. 6.2C).
6.3. Теорема. Предикат М(х) частично разрешим тогда и
только тогда, когда существует вычислимая функция g(x),
такая, что М (х) тогда и только тогда, когда D()
Доказательство. Если М (х) частично разрешим и имеет
вычислимую частичную характеристическую функцию f(x), то
по определению М (х) тогда и только тогда, когда х б Dom (/).
Обратное утверждение дается результатом упражнения
Следующее свойство частично разрешимых предикатов по-
показывает их связь с разрешимыми предикатами
Теорема. Предикат М (х) частично разрешим тогда и
тогда, когда существует разрешимый предикат R(x, у),
что М(х) тогда и только тогда, когда 3yR(x, у).
122 Гл. 6. Разрешимость и неразрешимость
Доказательство. Предположим, что R(x, у) есть разрез
шимый предикат и что М (х) выполняется тогда и толькс
тогда, когда 3yR (лг, у). В силу следствия 2-5.3 функции
g(x) ~\iyR(x, у) вычислима, и ясно, что
М (х) & х € Dom (g).
Следовательно, предикат М(х) частично разрешим по теореме
6.3.
Чтобы доказать обратное утверждение, предположим, чт
М (х) частично разрешим и что частичная разрешающая прел
цедура дается программой Р. Определим предикат R(x, у
соотношением
/?(jc, y)==:P(x)\ за у шагов.
В силу следствия 5-1.3 предикат R(x, у) разрешим. Боли
того,
M(x)&P(x)i<**yR(x, у),
что и требовалось доказать. ?
Замечание. Из дополнения к гл. 5 следует, что предико
R в этой формуле можно считать примитивно рекурсивны
(см. замечание 1 к следствию 5-1.4).
Теорема 6.4 подсказывает важный способ интерпретацн
частично разрешимых предикатов. Она говорит о том, 41
частично разрешимые процедуры всегда могут быть предста
лены в виде процедуры неограниченного поиска числа у, о
ладающего некоторым разрешимым свойством R(x, у). Такс
поиск проще всего проводить, полагая последовательно у *
= 0, 1, 2 Если и когда найдено такое у, для которой
свойство R(x, у) выполнено, то происходит остановка. В по
тивном случае поиск продолжается бесконечно долго.
С помощью теоремы 6.4 можно получить и ряд друг,
свойств частично разрешимых предикатов, которые полез
при их распознавании.
6.5. Теорема. Если предикат М (х, у) частично разреши
то частично разрешим и предикат ЗуМ (дг, у).
Доказательство. Возьмем разрешимый предикат R (дг, у,
такой, что М (ху у) выполняется тогда и только тогда, кб
3zR(x$ yt г). Тогда
3t/M(x, y)&3y3zR(x, y% z).
С помощью стандартной техники кодирования пары чисел
одним единственным числом w = 2y3z поиск пары чисел #
6. Частично разрешимые предикаты [23
для которых выполняется R(x, у, г), сводится к поиску од-
одного числа и, такого, что выполняется R(x,(u)lt (и)а), т. е.
ЗуМ{х, y)&3uR(x, (u)u (и)%).
Предикат S(x, y) = R(x, (u)u (uJ) разрешим (как результат
подстановки), и, следовательно, по теореме 6.4 предикат
ЭуМ (дг, у) является частично разрешимым. ?
О теореме 6.5 говорят, что она устанавливает замкнутость
частично разрешимых предикатов относительно квантора Су-
Существования. Последовательное применение этой теоремы дает
6.6. Следствие. Если предикат М(х, (/), где у**(у19 ...,#J,
частично разрешим, то частично разрешим и предикат Э^...
...ЗутМ(х, уи ..., ут).
Рассмотрим теперь некоторые приложения полученных
результатов.
6.7. Примеры
1. Следующие предикаты частично разрешимы.
(a) х€Е(у*} (где п фиксировано). (Проблема вывода: ср.
теорему 1.6.)
(b) №ХФ0 (Ср. упражнение 1.8 (g).)
Доказательства
(a) х^Е^&lzx.. 3znlt(Py{zx гп)\х за tшагов). Стоя-
Стоящий в скобках справа предикат разрешим, поэтому достаточно
воспользоваться следствием 6.6.
(b) №ХФ0&3УИ{РХ(УI за / шагов).
Предикат, стоящий в скобках, вновь разрешим, и, следова-
следовательно, применимо следствие 6.6.
2. В исчислении предикатов доказуемость частично раз-
разрешима (для тех, кто прочитал § 5).
Доказательство. Будем рассуждать неформально; в исчи-
слении предикатов доказательством называется некоторый
к°нечный объект (который обычно является последовательно-
последовательностью утверждений), для которого предикат Pr(d, a)ea«d яв-
является доказательством утверждения а» разрешим. Тем самым
q доказуемо » 3d Рг (d, a),
откуда утверждение «а доказуемо» является частично разр*-
124 Гл. 6. Разрешимость и неразрешимость
6.8. Диофантовы предикаты (ср. § 3)
Пусть р (xlf ...,*„,#!, • • ., ут) есть многочлен с целымр
коэффициентами. Тогда предикат М (х), задаваемый формулой
М{х)-1у1...3уя{р{х,у1, ...,{/J = 0),
называется диофантовым предикатом. (Считается, что областью
определения кванторов 3ylf ..., 3r/m является множество на-
натуральных чисел N.)
Пример. Предикат «число х есть полный квадрат» диофанг
тов, так как он эквивалентен предикату Зу(х— г/2 = 0).
Из следствия 6.6 немедленно вытекает
6.9. Теорема. Диофантовы предикаты частично разрешимы^
Доказательство. Предикат р(х, ^) = 0 разрешим, так чтх
мы можем воспользоваться следствием 6.6. ?
Ясно, что из числа частично разрешимых предикатов диа
фантовыми являются те, которые можно представить в отна
сительно простом виде, и долгое время было неизвестно, су
ществуют ли неразрешимые диофантовы предикаты. Этот ва
прос тесно связан с десятой проблемой Гильберта (§ 3), ка
мы скоро увидим. Именно поэтому замечательным достижение
явился доказанный Матиясевичем в 1970 году результат:
6.10. Теорема. Каждый частично разрешимый предикат ди
фантов.
Доказательство этого результата, данное Матиясевиче!
в очень большой степени опирается на предшествующие р
боты Дэвиса, Робинсона и Патнэма. Оно слишком громозди
для того, чтобы его приводить здесь. Полные доказательст
имеются в книгах Дэвиса [1973], Белла и Маковера [1977]
Манина [ 1977]. Основная часть доказательства состоит в устано
лении того, что диофантовы предикаты замкнуты относителы
ограниченного квантора общности, т. е. если предикат М (х,
диофантов, то диофантов и предикат Vz < уМ (лг, г). (Тот фая
что частично разрешимые предикаты замкнуты относителы
ограниченного квантора общности, является легким упраж1
нием. См. ниже упр. 6.14E).)
Можно легко показать, как из теоремы Матиясевича вы
кает отрицательное решение десятой проблемы Гильбер
Заметим прежде всего, что если поставленная Гильбер1!
проблема разрешима, то разрешимой будет и следующая пр!
лема: «установить, имеет ли общее полиномиальное уравне!
р(хх, ...,*„) = 0 (с целыми коэффициентами) решение во м
6. Частично разрешимые предикаты 126
жестве натуральных чисел». В самом деле, любое натуральное
число можно представить как сумму четырех полных квадра-
квадратов, поэтому, чтобы решить эту проблему, достаточно найти
целые решения уравнения
Возьмем теперь многочлен р(х,уи ...,ут), такой, что
(что можно сделать по теореме Матиясевича). Тогда если бы
существовала разрешающая процедура для десятой проблемы
Гильберта, то существовала бы и следующая разрешающая
процедура для проблемы «x?Wx»: чтобы проверить, верно ли,
что а ? Wa, проверьте, имеет ли уравнение q (ylt ..., ут) =»
= Р (#> #i» • • •» Ут) решение в N. Тем самым проблема «х g Wх»
сводится к проблеме Гильберта, откуда и следует, что послед-
последняя неразрешима.
Еще одно (неожиданное) следствие теоремы Матиясевича мы
приведем в следующей главе.
Мы закончим эту главу двумя важными результатами, ко-
которые устанавливают связь частично разрешимых предикатов
с разрешимыми предикатами (теорема 6.11) и вычислимыми
функциями (теорема 6.13).
6.11. Теорема. Предикат М(х) разрешим тогда и только
тогда, когда оба предиката М(х) и «не М (#)» частично раз-
разрешимы.
Доказательство. Если предикат М (х) разрешим, то раз-
разрешим и предикат «не М (#)», и, следовательно, оба они ча-
частично разрешимы.
Обратно допустим, что имеются программы F и G, которые
дают частичные разрешающие процедуры для М (х) и «не
М (х)». Тогда
F (х) | & выполняется М (х)
и
G (х) I ФФ выполняется «не М (*)».
Кроме того, для любого х выполняется либо F(x)l, либо
G(*)J, но никак не оба утверждения одновременно. Таким
°бразом, получается следующий разрешающий алгоритм для
М (х): взяв данное дг, будем проводить вычисления F (х) и G (х)
одновременно (или будем выполнять последовательно шаг од-
н°й программы, затем следующий шаг другой программы и
т- Д.) до тех пор, пока одна из программ не остановится. Если
остановилась программа F(x), то мы заключаем, что утвер-
126 Гл. 6. Разрешимость и неразрешимость
ждение М (х) истинно; если остановилась G (х), то М(х)
ложно. ?
Эта теорема дает еще одно доказательство того, что пре-;
дикат <а(? Wx» не является частично разрешимым. Аналогично
мы получаем
6.12. Следствие. Предикат «Рх(у)Ь> (проблема расходимости:
в эквивалентной формулировке «у (? Wx» или «функция Фх (у) не
определена») не является частично разрешимым.
Доказательство. Если бы эта проблема была частично раз-
разрешима, то из теоремы 6.11 и примера 6.2A) следовала бь
разрешимость проблемы остановки Рх(у)\. ?
Последний из результатов этой главы дает полезный спо-
способ доказательства вычислимости различных функций.
6.13. Теорема. Пусть f (х) —частичная функция. Тогда f вы
числима тогда и только тогда, когда предикат «f(x)~y»4O>
стично разрешим.
Доказательство. Если функция / вычислима с помощы
программы Р, то
f{x)~ y&3t(P(x) \у за t шагов).
Из теоремы 6.4 и следствия 5-1.3 следует, что предикат, сто^
щий в правой части, частично разрешим.
Обратно предположим, что предикат «f(x)~y» частичк
разрешим. Пусть R(x,y,t) — разрешимый предикат, для кг
торого f (х) ~ у & 3tR (лг, г/, /). Тогда мы получаем следующи
алгоритм для вычисления /(лг): будем искать пару чисел г/, *
для которой выполняется R (дг, г/, t). Если и когда такая пар
найдена, то f(x)~y.
Тем самым функция / вычислима. (Формальное доказател!
ство можно провести, пользуясь стандартной техникой код!
ровки пары чисел г/, t одним числом z = 2>'3'. См. ни»
упр. 6.14(8).) ?
Дальнейшие свойства частично разрешимых предикатов Щ
ются ниже в виде упражнений (см., в частности, упр. 6.14D,5,9
В следующей главе мы подробнее изучим унарные частиц
разрешимые предикаты, причем это будет делаться в терми«
рекурсивно перечислимых множеств. В частности, мы узна^
почему частично разрешимые предикаты часто называют реку
сивно перечислимыми.
6. Частично разрешимые предикаты 127
5.14. Упражнения
1. Покажите, что следующие предикаты частично разрешимы:
(a) ьЕ^ффъ (где п фиксировано),
(b) «Фх(у) есть полный квадрат»,
(c) «п является числом Ферма». (Мы говорим, что п является
числом Ферма, если существуют числа х, у, z> О, такие, что
x + y y
(d) «В десятичном разложении числа п встречается ровно х
последовательно идущих друг за другом семерок».
2. (Для тех, кто немного знаком с теорией групп.) Пока-
Покажите, что для любой конечно-определенной группы проблема
слов частично разрешима.
3. Конечный набор S ЗхЗ-матриц называется смертным,
если существует конечное произведение матриц из S, которое
равно нулевой матрице. Покажите, что предикат «S смертен»
частично разрешим. (Доказано, что разрешимой эта проблема
не является. См. Патерсон [1970].)
4. Пусть предикаты М (х) и N(x) частично разрешимы.
Докажите, что предикаты Ш(х) и N (х)» и «М (х) пли N (х)*
также частично разрешимы. Покажите, что предикат «не М (х)*
не обязательно является частично разрешимым.
5. Пусть предикат М (х, у) частично разрешим. Докажите»
что
(a) Предикат «3(/ < zM (x, у)> частично разрешим.
(b) Предикат «Vt/ < zM (x, у)ъ частично разрешим.
(Указание. Рассмотрите функцию Uy<zf(xt у), где f(x,y)
есть частичная характеристическая функция М.)
(c) Предикат «V(/M (лг, у) не обязательно является частично.
разрешимым.
6. Покажите, что следующие предикаты являются диофан-
товыми.
(a) «х четно»,
(b) «у делится на х».
7. (Это упражнение показывает, как для доказательства
того, что некоторый предикат не является частично разреши-
мЬ1м, можно пользоваться техникой редукции из § 1.)
(a) Пусть М(х)—некоторый предикат и k—тотально вычи-
вычислимая функция, такая, что х? Wх тогда и только тогда, когда
M(k(x)) ложно. Докажите, что М(х) не является частично
Разрешимым.
(b) Докажите, что проблема «функция Фх не является то-
альн°й» не является частично разрешимой.
(Указание. Рассмотрите функцию k, использованную в
ДОКаз^тельстве теоремы 1.6.)
128 Гл. 6. Разрешимость и неразрешимость
(с) С помощью функции
1, если Рх (х) не сходится за у или менее шагов1
не определена в остальных случаях
покажите, что проблема «функции фх тотальна» не являете,
частично разрешимой. (Указание. Воспользуйтесь s-m-n-теоре
мой и пунктом (а).)
8. Дайте формальное доказательство второй части теорем^
6.13. Другими словами, докажите, что если предикат €f(x)cay
частично разрешим, то функция / вычислима.
9. Пусть предикат М (хи .. .,хп) частично разрешим, 1
пусть glt ...,?„—вычислимые частичные функции. Покажите
что предикат N(y), определенный следующим образом:
частично разрешим. (При этом мы считаем, что N(y) ложне
если хотя бы одно из значений gx (у), ..., gn (у) не определено*
Глава 7
рекурсивные и рекурсивно
перечислимые множества
Рекурсивными и рекурсивно перечислимыми множествами
являются подмножества множества W, соответствующие раз-
разрешимым и частично разрешимым предикатам. Рекурсивные
множества будут вкратце рассмотрены в § 1, а затем большая
часть этой главы будет посвящена изучению рекурсивно пере-
перечислимых множеств. Сначала, в §2, мы, пользуясь результатами
предыдущей главы о частично разрешимых предикатах, дока-
докажем многие из основных свойств этих множеств. Главным но-
новым результатом § 2 будет описание рекурсивно перечислимых
множеств, которому, собственно, они и обязаны своим назва-
названием, а именно это те множества, которые могут быть пере-
перечислены с помощью рекурсивной (или вычислимой) функции.
В § 3 и 4 вводятся креативные множества и простые мно-
множества. И те и другие являются частным случаем рекурсивно
перечислимых множеств, но весьма значительно отличаются
друг от друга, указывая, таким образом, на большое разнооб-
разнообразие, существующее внутри этого класса множеств.
1. Рекурсивные множества
Между одноместными предикатами на множестве натуральных
чисел и подмножествами N имеется тесная связь: каждому
предикату М(х) соответствует множество {дс|М(д:) истинно},
которое называется множеством истинности М (и которое мо-
может, конечно, быть пустым), и, обратно, каждому множеству
Л ^ hj соответствует предикат «х ? А»г). Те множества, которые
при этом соответствии отвечают разрешимым предикатам, на-
называются рекурсивными.
1.1. Определение. Пусть А есть подмножество N. Характери-
Характеристической функцией подмножества А называется функция сЛ9
задаваемая формулой
1, если дс?Л,
О, если х(?А.
]) Как указывалось в сноске к§3 введения, предикаты часто отожде-
отождествляют с их множествами истинности. Такая точка зрения не противоречит
"ащему изложению.
5
Ь* 862
130 Гл. 7. Рекурсивные и рекурсивно перечислимые множества
Тогда множество А называется рекурсивным, если функция с,
вычислима или, что эквивалентно, если предикат «х?А» раз-
разрешим.
Замечания
1. По очевидным причинам рекурсивные множества называют"
также вычислимыми.
2. Если функция сА примитивно рекурсивна, то множество А
тоже называется примитивно рекурсивным.
3. Понятие рекурсивного множества очевидным образом обо&
щается на подмножества N" (п > 1), хотя мы здесь будем (ка
это обычно и делается) применять этот термин только к по;
множествам N. Никакой потери общности при этом не происходи!
поскольку рекурсивные подмножества Ып легко кодируютс
с помощью рекурсивных подмножеств N. Подробности этог.
см. ниже, упр. 1.4B).
1.2. Примеры
1. Следующие множества являются рекурсивными:
(a) N,
(b) E (четные числа),
(c) любое конечное множество,
(d) множество простых чисел.
2. Следующие множества не являются рекурсивными:
(a) {*|ФХ тотальна} (теорема 5-2.1),
(b) \x\x?Wx\ (теорема 6-1.1),
(c) \х\Фх = 0\ (теорема 6-1.4).
Соотношения для множеств (следствие 2-4.7) дают следуй
щие свойства рекурсивных множеств
1.3. Теорема. Если множества А и В являются рекурсивным
то рекурсивными являются и множества A, An В, А() В, А\1
Доказательство. Прямое использование следствия 2-4.7.
С дальнейшими результатами, касающимися рекурсивна
множеств, мы встретимся в § 2.
1.4. Упражнения
1. Пусть А, В—подмножества N. Определим множен
В Л®В следующим образом:
где я есть спаривающая функция я (дс, у) = 2х Bу + 1)—1
теоремы 4-1.2. Докажите, что ;
(а) Множество А ф В рекурсивно тогда и только тогда, к0
оба множества А и В рекурсивны.
2. Рекурсивно перечислимые множества
(Ь) Если А, ВФ0, то множество Л®В рекурсивно тогда
и только тогда, когда оба множества А и В рекурсивны.
2. (а) Пусть В = Мил> 1. Докажите» что если множество В
рекурсивно, то предикат М(хи ...,х„), задаваемый формулой
M(xlt ...,хп)^2*гЗ*>...рх
разрешим.
(Ь) Пусть А ^ Нп. Назовем множество А рекурсивным, если
предикат «х?Л» разрешим. Докажите, что множество А ре-
рекурсивно тогда и только тогда, когда множество {2*»3*«...
.. • Рпп I (*i, . •. ,хп) € А} рекурсивно.
2. Рекурсивно перечислимые множества
Перейдем теперь к изучению тех подмножеств множества N,
которые соответствуют частично разрешимым предикатам. Они
образуют важный класс подмножеств уже по той лишь одной
причине, что встречаются в большом числе различных ситуаций.
2.1. Определение. Пусть А — подмножество множества N. Тогда
множество А называется рекурсивно перечислимым, если функ-
функция /, задаваемая формулой
( 1, если дг?Л,
v \ не определена, если х(?А,
вычислима (или, что эквивалентно, если предикат «х^Л» ча-
частично разрешим). Слова «рекурсивно перечислимое» почти
всегда сокращенно записывают р. п.
Замечания
1. Для обозначения р. п. множеств пользуются также тер-
терминами полу рекурсивное множество и пол у вычислимое множество,
и» действительно, для приведенного выше определения больше
подходят эти названия, чем слова «рекурсивно перечислимый».
Мы будем тем не менее придерживаться стандартного наимено-
наименования, которое обязано своим происхождением тому факту, что
^и множества можно также определять, как множества, до-
пУскающие перечисление с помощью рекурсивной (или вычи-
вычислимой) функции. Это будет доказано ниже в теореме 2.7.
2. Как и в случае рекурсивных множеств, понятие р. п. мно-
T можно очевидным образом обобщить на подмножества
Мп > 1). Тем не менее можно без потери общности ограни-
ограничься (как мы это здесь и делаем) рассмотрением только р. п.
ПоДмножеств N. См. по этому поводу упр. 2.18(9).
132 Гл.7. Рекурсивные и рекурсивно перечислимые множества
2.2. Примеры
1. Пусть K=*{x\x?Wx}. Тогда К есть р. п. множество*
которое не является рекурсивным (пример 6-6.2A)). Его до*
полнение К не является р. п. (пример 6-6.2D)). 1
2. Любое рекурсивное множество является р. п. (пример
6-6.2B)).
3. Множество{х | Wхф0) является р. п. (пример 6-6.7A (Ь)))
4. Если / — вычислимая функция, то множество Ran(/) яв
ляется р. п. (пример 6-6.7 Aа); ср. ниже теорему 2.7).
Замечание. К есть стандартное обозначение для множестЕ
{л;|л;€Н?х} (см. выше пример 1), которое играет очень важну'
роль в изучении р. п. множеств.
Большинство результатов из § 6 гл. 6, касающихся ч^
стично разрешимых предикатов, немедленно переводятся i
язык р. п. множеств. Во-первых, имеет место
2.3. Теорема. Множество является р. п. тогда и только тогд$
когда оно является областью определения одноместной вычисл
мой функции.
Доказательство. Теорема 6-6.3. П
Из этой теоремы мы заключаем, что перечисление №и, W
W2y . .. является перечислением (с повторениями) всех р.
множеств. Если A = Wei то е называется индексом Л.
Из теоремы 6-6.4 вытекает следующее описание р. п. м^
жеств.
2.4. Теорема. Множество А является р. п. тогда и толь
тогда, когда существует разрешимый предикат R(xy y)y r
кой, что х?А тогда и только тогда, когда jyR (x, у). (Сог
сно замечанию к доказательству теоремы 6-6.5, этот предш
можно считать примитивно рекурсивным.)
Из теоремы 6-6.5 немедленно вытекает
2.5. Теорема. Пусть предикат M(xlt у1У ..., уп) части
разрешим. Тогда множество {х \ %уг .. . зупМ (х, ylt ..., yn)Y-
ляется р. п. множеством.
Непосредственное применение теоремы 6-6.11 устанавлий
следующую связь между р. п. множествами и рекурсивн^
множествами.
2.6. Теорема. Множество А рекурсивно тогда и только тш
когда множества А и А р. п.
». 2. Рекурсивно перечислимые множества 133
Доказательство. Хотя наше утверждение и вытекает не-
немедленно из теоремы 6-6.11, полезно, однако, дать формаль-
формальное доказательство его нетривиальной половине. Пусть R и
5 — разрешимые предикаты, такие, что
{x, у),
, у).
(Мы воспользовались теоремой 2.4.) Определим теперь функ-
функцию f(x) соотношением
f{x) = \iy(R(x, У) или S(xt у)).
Согласно результатам гл. 2, функция / вычислима. Далее,
учитывая, что всегда выполняется одно из утверждений х?А
или х?А9 мы видим, что f(x) всюду определена, и, следо-
следовательно,
Тем самым предикат «х^Л» разрешим, откуда и следует, что
множество А рекурсивно. ?
Перейдем теперь к теореме, которой р. п. множества обя-
обязаны своим названием.
2.7. Теорема. Пусть АаН. Тогда следующие утверждения эк*
бивалентны:
(a) А есть р. п. множество,
(b) Л = 0 или А является множеством значений одномест-
одноместной тотальной вычислимой функции,
(c) А есть область определения (частично) вычислимой
функции.
Доказательство. Докажем следующую цепочку импликаций:
(а)=ф(Ь) Пусть А Ф0 и Л = Оот(/), где функция / вычи-
вычисляется с помощью программы Р. Выберем некоторый эле-
элемент а?А. Тогда А является множеством значений следую-
следующей тотальной бинарной функции:
с, если Р (х) | за / шагов,
г в остальных случаях.
Ясно, что функция g вычислима. Для завершения доказа-
доказательства достаточно построить одноместную тотальную вычи-
вычислимую функцию ft, множество значений которой будет совпа-
совпасть с множеством значений g. Положим h(z) — g((z)lt (г),).
Ясно, что Ran (h) - Ran (g) = A.
(b)=>(c) очевидно.
134 Гл. 7. Рекурсивные и рекурсивно перечислимые множества
(с)=Ф(а). Пусть А = Ran (ft), где h есть п-местная вычисли*
мая функция. Тогда
Стоящий справа в скобках предикат частично разрешим (тео-
(теорема 6-6.13), поэтому, применяя теорему 2.5, мы видим, чтй
множество А является р. п. Q
(Читатель, наверное, заметил, что отдельные части это!
теоремы уже были сформулированы в более или менее явно*
виде в этой и предшествующих главах в виде примеров и уп
ражнений.)
Заметим, что именно из теоремы 2.7 (Ь) происходит терми
рекурсивно перечислимый: непустое р. п. множество—это такЫ
множество, которое можно перечислить как Л = {Л@), ЛA|
ЛB), ...}, где h есть некоторая рекурсивная (т. е. тотальна
вычислимая) функция. В самом деле, пользуясь результатам
гл. 5 (и приложения), легко видеть, что построенная при до
казательстве импликации (а)=Ф(Ь) функция h является npt
мипгивно рекурсивной. .
Отметим также, что теорема 2.7 говорит нам о том, чт*
перечисление Е0У ?\, ?2, ... множеств значений одноместны*
вычислимых функций дает еще одно перечисление (с повтс}
рениями) всех р. п. множеств. Говоря неформально, теорем
2.7 показывает, что класс рекурсивно перечислимых множес^
совпадает с классом эффективно порождаемых множеств. Мне
жество А называется эффективно порождаемым, если сущее
вует неформальная эффективная процедура составления спис!
элементов Л. Такая процедура должна время от времени (i
не обязательно через регулярные промежутки) выдавать чисщ
которое добавляется к списку. Она может работать бесконеч!
(в частности, она обязательно будет бесконечной, если мн
жество А бесконечно). Чтобы убедиться в том, что порождеа
ное таким образом множество А будет р. п., достаточно Щ
ложить
l-e число, которое процедура внесла в список,
/ (п) = (/г + 1)-е число, которое процедура внесла в список^
причем значение f(n) определено тогда и только тогда, кок
в список внесено (я+1)"е число. Ясно, что такая функция
является вычислимой, а множество A = Ran(f) является p.i
множеством.
Это можно проиллюстрировать на следующем примере..
2. Рекурсивно перечислимые множества 135
2.8. Пример. Множество чисел х, таких, что в десятичном
разложении числа л существует ровно х последовательно иду-
идущих друг за другом семерок, является р. п. множеством (ср.
упр. 6-6.14 (Id)). Это множество чисел порождается следую-
следующей неформальной процедурой: «Приведем в действие алгоритм,
вычисляющий последовательные цифры десятичного разложе-
разложения числа я. Всякий раз, когда появляется участок, состоя-
состоящий из одних семерок, сосчитаем число семерок, входящих
в него, и внесем это число в наш список».
Результат теоремы 2.7 дает прямое доказательство (с по-
помощью диагонального метода) того факта, что тотальные вы-
вычислимые функции не могут быть рекурсивно перенумерованы.
2.9. Теорема. Множество {х\Фх тотальна) не является р. п.
множеством.
Доказательство. (Ср. с указанием к упр. 6-6.14 Gс).)
Допустим противное, а именно, что существует тотальная
одноместная вычислимая функция /, которая перечисляет это
множество, т. е., иначе говоря, что Ф/(о), Ф/A>, ФуB), ... есть
список всех одноместных вычислимых функций. Тогда с по-
помощью диагонального метода легко построить тотальную вы-
вычислимую функцию g, которая будет отличаться от каждой
из функций этого списка. Поскольку основной принцип диаго-
диагонального метода гласит «добивайся того, чтобы функция g
отличалась от ф/(п) в точке л», мы положим g(x) = fy{x)(x) + 1.
Такая функция g будет тотальной и вычислимой, но ?фф/Ш)
ни для каких т. Полученное противоречие и доказывает тео-
теорему. П
В теории частично разрешимых предикатов имеется один
важный результат, который мы пока еще не перевели на язык
р. п. множеств. Он касается диофантовых предикатов. Сфор-
Сформулируем определение.
2.10. Определение. Множество А ^Н называется диофантовым,
если существует многочлен с целыми коэффициентами р(х,уи ...,
Уп), такой, что
х ? А тогда и только тогда, когда g^i ••• 3Ak(/>(*»#i» • •••
*/Л) = 0).
Ясно, что диофантовы множества являются р. п., и теорему
Матиясевича F-6.10) можно сформулировать (как это часто
и делают) в следующем виде:
2-11. Теорема (Матиясевич). Все р. п. множества являются
оиофантовыми.
Отметим теперь одно неожиданное (но простое) следствие
Матиясевича.
136 Гл. 7. Рекурсивные и рекурсивно перечислимые мноокества
2.12. Теорема. Множество является р. п. тогда и только тог*
да, когда оно является множеством неотрицательных значений,
принимаемых некоторым многочленом р(х1У ..., хп) с целыми
коэффициентами (причем х1У ...,*„ пробегают N).
Доказательство. Пусть А есть множество неотрицательных
значений, принимаемых многочленом p(xlt ..., хп). ТогдЯ
хеА&ы ... з*л(Р(*ь •••> *„) = *). откуда сразу видно;
что множество А р. п.
Обратно, если А есть р. п. множество, то по теореме Ма
тиясевича существует многочлен q(x> yu ..., ут), такой, чт
Рассмотрим теперь многочлен р(х, у), задаваемый формуло
р(х, y) = x-(x+l){q{xt y))\
Многочлен р(х> у) неотрицателен тогда и только тогда, когд
q(x, у) = 0, причем в этом случае он принимает значение %
Таким образом, А есть множество неотрицательных значений
принимаемых р(х, у), когда х, уи ..., ут пробегают мна
жество N. П
(Содержащееся в утверждении теоремы требование, чтоб!
х1% ..., хп принадлежали N, является довольно произвольный
В качестве простого упражнения читатель может убедитьс
в том, что теорема справедлива и в том случае, когда числа1
х1У ..., хп разрешается принимать любые значения из Z.) щ
Значительный интерес среди математиков вызвало одно I
приложений этого результата, а именно его применение к
множеству простых чисел. Это множество, будучи рекурсивц
перечислимым, оказалось множеством положительных значени!
принимаемых некоторым многочленом с целыми коэффицие
тами,— утверждение, которое считали очень неправдоподобнь
до тех пор, пока Матиясевич не доказал свою теорему.
Уточнение теоремы 2.12 показывает, что существует од!
универсальный многочлен, порождающий все р. п. множеств
то есть многочлен р(г, ху у1У ..., ут), обладающий тем сва
стзом, что для любого р. п. множества А существует число
такое, что
Чтобы убедиться в этом, достаточно заметить, что пробле^
остановки «x?Wz» диофантова, и взять в качестве индекса
число г.
В этом месте полезно перечислить различные имеющи
у нас теперь описания р. п. множеств. Следующие усло
на множество А натуральных чисел эквивалентны:
2. Рекурсивно перечислимые множества 137
A) Предикат «х?А» частично разрешим (именно это усло-
условие мы взяли в качестве нашего основного определения),
B) Множество А есть область определения одноместной
вычислимой функции, т. е. для некоторого е А = We (теорема 2.3),
C) Для некоторого разрешимого предиката R(x, у) имеет
место x?A<&iyR(xy у) (теорема 2.4),
D) Для некоторого частично разрешимого предиката
М (х, Уи •.. • Уп) имеет место х 6 А «Ф зЛ • • • ЗУпМ (х, &,..., уп)
(теорема 2.5),
E) Если Л^0, то А есть область значений тотальной
одноместной вычислимой функции (теорема 2.7),
F) А есть множество значений вычислимой функции (тео-
(теорема 2.7),
G) А диофантово (теорема 2.11),
(8) А является множеством неотрицательных значений, при-
принимаемых некоторым многочленом с целыми коэффициентами
(теорема 2.12). '
Естественно, что, работая с р. п. множествами, выбирают
всегда то описание, которое удобнее всего использовать в рас-
рассматриваемой задаче. Проиллюстрируем это в доказательстве
следующей теоремы.
2.13. Теорема. Если множества А и В р. п., то р. п. и мно-
множества А(]В и A U В.
Доказательство. Для А О В воспользуемся условием B).
Пусть А =¦ Dom (/) и ?=* Dom (#), где функции / и g вычислимы.
Тогда A n? = Dom(/g), а функция fg вычислима.
В случае A U В воспользуемся условием E). Если А =¦ 0
или В = 0, то доказывать нечего. Предположим поэтому, что
4 = Ran(/) и fi=*Ran(g), где f9g—[тотальные вычислимые
функции. Определим функцию h следующим образом:
Л Bх)-/(*),
hBx+l) = g(x).
Тогда h вычислима, и ясно, что Ran(/i) = A \iB. ?
(Отметим, что поучительно провести доказательства этой
теоремы, исходя из каждого из условий, характеризующих
Р- п. множества).
Следующая теорема устанавливает связь между р. п. ,мно-
и рекурсивными множествами.
^•Н. Теорема. Бесконечное множество рекурсивно тогда и
т°лько тогда, когда оно является множеством значений чгю-
138 Гл. 7. Рекурсивные и рекурсивно перечислимые множества
шальной возрастающей вычислимой функции, т. е. если его можно
рекурсивно перечислить в возрастающем порядке.
Доказательство. Пусть множество А рекурсивно и беско*
нечно. Тогда А перечисляется возрастающей функцией / зада-
задаваемой соотношением
l) = iiy(y€A и y>f(n)).
Кроме того, функция / вычислима в силу замкнутости класс;
вычислимых функций относительно операций минимизации, ре
курсии, а также рекурсивности множества А. .
Обратно, допустим, что А есть множество значений выч^'
слимой тотальной возрастающей функции /, т. е. /@)</A)<
</B)< ... ¦ Ясно, что если у = /(я), то п<у. Отсюда имев!
и предикат справа разрешим. Следовательно, множество
рекурсивно. Q
(Другой способ доказательства состоит в том, чтобы пок|
зать, что множество Л р. п.; его мы оставляем читателю в к|
честве упражнения.)
С помощью последней теоремы доказывается
2.15. Теорема. Любое бесконечное р. п. множество имеет бес%
нечное рекурсивное подмножество.
Доказательство. Пусть ;4 = Ran(/), где /—тотальная в
числимая функция. Подмножество А можно эффективно пер
числить в возрастающем порядке с помощью следующей фуй
ции g:
где x = \iy (f(y)> g (n)).
Поскольку множество i4 = Ran(/:) бесконечно, то функция;
тотальна. По построению Ran (g) ^ Ran(/) и функция g яв.
ется возрастающей. Ясно, что g вычислима (в силу замк
тости класса вычислимых функций относительно операций Ц
нимизации и рекурсии). Следовательно, по теореме 2.14 RanJ
является бесконечным рекурсивным подмножеством А. ? ;
Мы завершим этот раздел теоремой Раиса и Шапиро о р*
множествах индексов. Этот результат нам понадобится в гл. *
кроме того, ряд следствий из него мы выведем уже в з?
параграфе. Эта теорема и ее доказательство представляют
бой обобщения теоремы Раиса F-1.7). (В формулировке &
2. Рекурсивно перечислимые множества 139
теоремы мы называем конечной функцией такую функцию 9,
область определения которой конечна. Заметим, что все ко-
конечные функции вычислимы.)
2.16. Теорема (Райе—Шапиро). Пусть Л есть множество одно-
одноместных вычислимых функций, таких, что множество {х\Фх?Л}
р. я. Тогда для любой одноместной вычислимой функции f
тогда и только тогда, когда существует конечная
функция 0 ^ /, такая, что 0 €
Прежде чем доказывать этот результат, покажем, как его
можно использовать для того, чтобы давать короткие доказа-
доказательства отсутствия рекурсивной перечислимости (или непере-
неперечислимости). (Другие приложения такого рода даются в упр.
2.18 ниже.)
2.17. Следствие. Множества {х\Фх тотальна} и {х\Фх не то-
тотальна} не являются р. %п.
Доказательство. Для случая А — {х\Фх тотальна} применим
теорему Раиса—Шапиро к множеству Л = {/1 / ? #i и / тотальна}.
Ни для какой функции \?Л не существует конечной функции
0^/, такой, что в?Л. Следовательно, множество А не явля-
является р. п.
Для случая В=*{х\Фх не тотальна} рассмотрим множество
$ = {/!/€#! и / не тотальна}. Тогда, если / есть произволь-
произвольная тотальная вычислимая функция, /(?.53, но любая конечная
функция Qsf принадлежит 53. Таким образом, по теореме
Раиса—Шапиро множество В не может быть р. п. ?
(Замечание. Таким образом мы получили третье доказательство
неперечислимости индексов тотальных функций, два других
содержатся в упр. 6-6.14 Gс) и в теореме 2.9. Как мы сейчас
увидим, доказательство, предложенное в указании к упр.
6-6.14 Gс), является, по существу, ограниченным вариантом
следующего доказательства.)
Доказательство теоремы 2.16. Пусть А = {х \ Фх ? Л} и дано,
что множество А является р. п. Мы покажем, что если любая
из импликаций, содержащихся в утверждении теоремы, неверна,
то проблему «jc ? Ж» можно свести к проблеме «х ? А». (Найом-
ним, что, согласно упр. 2.2A), K = {x\x?Wx}.) Тем самым
множество 7( оказывается р. п., что и приводит к противо-
противоречию.
Допустим сначала, что /€«/?, но в$Л ни для каких ко-
коечных 0 s/. Пусть Р—программа, такая, что P(z) J тогда и
только тогда, когда г 6 /С. Определим вычислимую функцию
140 Гл.7. Рекурсивные и рекурсивно перечислимые множества
g(zy t) соотношением
(/(/), если ^(z)^ за t или менее шагов,
g(z, ) ~ <j не 0Пределена) если р B) | За t или менее шагов.
Воспользовавшись s-m-я-теоремой, мы получаем тотальную вы-
вычислимую функцию s(e), такую, что g(zt t) ^ Ф5{г) (t). Заметим,1
что по построению Ф5B) ^ / при всех z. Мы утверждаем теперь, что
(*'
{
s{z) конечна (откуда
=» Ф5B) = / (откуда ф1(ж>
В самом деле, если z ?/(, то существует /, такое, что Р (z) \ зщ
t шагов. Тогда функция ^(г, V) ~<t>s{z)(t) не определена для
V ^ /. Отсюда следует, что ф3{г) конечна. С другой стороны
если z^Ky то g(z, 0-/@ ПРИ всех /, откуда Ф„*, = /. -j
Далее, соотношения (*) означают, что z g К «Ф s (z) g Д
откуда вытекает, что множество /С является р. п. Полученног
противоречие доказывает, что должна существовать конечна*
функция 6с^ такая, что Q?A.
Для доказательства обратной импликации предположим;
что вычислимая функция / такова, что существует конечна*
функция 0?е/2, такая, что 6^/, но /(?</?. Определим вычислю
мую функцию g(z, 0 соотношением
оG t\~ если '€Dom(e) или z^/C,
s^» ч—| не определена в остальных случаях.
s-m-я-теорема дает тотальную вычислимую функцию s(z), тщ
кую, что g(z, г)~Ф${г)(г). Из определения g и того факта
что e^f, мы видим, что
) = [ (откуда Ф
) = 9 (откуда Ф3{2)?Л).
Но это означает, что z?K&s(z)?Ar что вновь приводит
противоречию, так как множество К оказывается р. п. Такк
образом, f?d, что и требовалось доказать. ?
Мы оставляем читателю в качестве упражнения проверк
того факта, что теорема Раиса—Шапиро обобщает теорел!
Раиса (см. ниже упр. 2.18A2)).
2.18. Упражнения
1. Для любого а?Ы положим aWе = {х\Фе(х) = а}. Док'
жите, что множество aWe является р. п. (для всех а). Вер!
ли, что перечислениеaWQ} aWu aW2t ... включает все р.'
множества? ;
2. Рекурсивно перечислимые множества 141
2. Покажите, что множество \х\фх не инъективна} явля-
является р. п.
3. Покажите, что существуют тотальные вычислимые функ-
функции k и /, такие, что Wx = Ek{x) и Ex=Wl{x) для любого х.
4. Пусть А—р. п. множество. Покажите, что множества
U Wx и [)ЕХ рекурсивно перечислимы. Покажите следую-
А
щим образом, что Г\х<-а№х не обязательно р. п. Для всякого /
пусть Kt = {х | Рх (хI за / шагов}. Покажите, что при каждом
/множество/С t рекурсивно; более того, К= 11/€|^*и/С= Л*€|^*-
5. Пусть f—одноместная вычислимая функция, А ^ Dom(/)
и g = f\A. Докажите, что функция g вычислима тогда и толь-
только тогда, когда множество А является р. п.
6. Пусть/—одноместная функция. Докажите, что/ вычис-
вычислима тогда и только тогда, когда множество {2*ЗНх)\х? Dom(f)}
рекурсивно перечислимо.
7. (Ср. с теоремой 2.14.) Пусть Л—бесконечное р. п. мно-
множество. Покажите, что А может быть перечислено (без повто-
повторений) с помощью тотальной вычислимой функции.
8. Какие из следующих множеств являются рекурсивными?
Какие рекурсивно перечислимыми? Какие имеют р. п. допол-
дополнение?
(a) \х х?Ех},
(b) \х х есть полный квадрат},
(c) \х Фх инъективна},
(d) \x в десятичном разложении числа я существует набор
последовательно идущих друг за другом семерок, длина кото-
которого больше либо равна х},
(e) \х\Рт(х)\) \т фиксировано).
9. (Ср. упр. 1.4B).) (а) Пусть BsN и п>1. Докажите,
что если множество В р. п., то предикат М(хи ...,*„), зада-
задаваемый формулой
частично разрешим.
(Ь) Пусть А ? Нп\ будем называть множество А рекурсивно
перечислимым, если предикат «дг?Л» частично разрешим.
Докажите, что множество А р. п. тогда и только тогда, когда
множество
Рекурсивно перечислимо.
(с) Докажите, что множество Ле№ р. п. тогда и только
тогда, когда А = 0 или существует тотальная вычислимая
Функция /: N —>N", такая, что ^ = Ran(/). (Вычислимой
Функцией / из N в N" мы называем набор из п функций / —
142 Гл. 7. Рекурсивные и рекурсивно перечислимые множества
= (/i» •••»f«)» гДе каждая из /,- есть одноместная вычислима
функция, a f(x) = (fl(x), ...,/„(*)).)
10. Пусть /—тотальная вычислимая функция, Л—рекуй
сивное множество, а В—р. п. множество. Покажите, что мнсЯ
жество f'l(A) рекурсивно и что множества /(Л), f(B) и/-1A!|
р. п., но не обязательно рекурсивны. Что еще можно сказат
об этих множествах, если / есть биекция? ,
11. С помощью теоремы Раиса—Шапиро покажите, чт
следующие проблемы не являются частично разрешимыми
(a) «Wx=0», (b) «Wx конечно», (с) «Wx бесконечно», (d) «Ф^ч
=0», (е) «фхф0».
12. Выведите из теоремы Раиса — Шапиро (теорема 2.1
теорему Раиса (теорема 6-1.7). (Указлние. Пусть проблел|
«Фх?33» разрешима. Тогда как множество 33, так и множеств
<в\33 удовлетворяют условиям Раиса — Шапиро. Рассмотрит
случаи /0^33 и /0(?i3.) -1
13. (а) Пусть /Со = {х|Фх(х) = 0} и Кх = \х\Фх(х) = 1}. П<"
кажите, что множества Ко и Ki являются р. п., а также 41
они рекурсивно неотделимы, т. е. что КОГ)КХ = 0 и что i
существует рекурсивного множества С, такого, что /Со ^ С -
Кх^С', в частности, ни одно из множеств Ко и Кх не являе"
ся рекурсивным. (Указание. Допустим, что такое множеств
С существует, и пусть т—индекс его характеристическа
функции. Рассмотрите вопрос о том, верно ли, что т?С
(b) Покажите, что два непересекающихся множества Ли]
рекурсивно неотделимы (в смысле только что приведенной
определения) тогда и только тогда, когда из того, что Л ~"
B^Wbw Waf)Wb= 0, следует, что существует число x(fcWa U 1
(Замечание. Понятие рекурсивной неотделимости для naj:
непересекающихся множеств соответствует понятию нерек^
сивности для одного множества. Пары рекурсивно неотделии
множеств, которые являются также и р. п., отвечают p.f
множествам, которые не являются рекурсивными.)
3. Продуктивные и креативные множества
В этом разделе мы рассмотрим важный подкласс р. п. мц
жеств, а именно так называемые креативные множества. Щ
те р. п. множества, дополнение которых в некотором доволь)
сильном смысле не является р. п. Поэтому мы начнем с р*
смотрения класса не р. п. множеств, которому будут принй
лежать эти дополнения. ]
Пусть Л—любое множество, которое не является р.^
Тогда если Wх есть какое-нибудь р. п. множество, содерзН
щееся в Л, то должно существовать число y?A\Wx. Сущее
3. Продуктивные и креативные множества
143
Вование такого числа говорит о том, что A=?WX. Оказывает-
Оказывается, что для некоторых не р. п. множеств такое число может
быть найдено эффективным образом. Рассмотрим, например,
не р. п. множество K = {x\x(fcWx}. Если WX^K, то не мо-
может быть, чтобы x?Wx (в противном случае х ? К и WX&K).
Отсюда x?K\Wх, и нашим числом, показывающим, что WХФК,
является само число х.
Не р. п. множества, для которых такое число может быть
всегда вычислено таким путем, носят название продуктивных.
3.1. Определение, Множество А называется продуктивным
тогда и только тогда, когда существует тотальная вычислимая
Рис. 7а. Продуктивное множество,
функция g, такая, что из WX^A следует, что g(x)?A\Wx.
Функция g называется продуктивной функцией для множест-
множества А. (См. рис. 7а.)
Пример. Множество К продуктивно, причем продуктивная
Функция есть g(x) = x.
Много примеров продуктивных множеств можно получить
с помощью следующей теоремы, доказательство которой осно-
основано на идее сводимости, обсуждавшейся в предыдущей главе.
3.2. Теорема. Пусть множества А и В таковы, что множе-
множество А продуктивно и существует тотальная вычислимая функ-
^я /, такая, что х?А тогда и только тогда, когда f (x) 6 В.
'огда множество В продуктивно.
Доказательство. Пусть g—продуктивная функция для А.
Допустим, что WX<=B. Тогда f^(Wx)^f"l(B)^A\ кроме
Ого, множество f'1(Wx) p. п., следовательно, существует чис-
144
Гл. 7. Рекурсивные и рекурсивно перечислимые множества
ло z, такое, что f'1(Wx) = Wz. Далее, Wzs Л, и, таким об-
образом, g(z)?A\W2, откуда видно, что f(g{z))?B\Wx, т. е,
элемент f{g{z)) свидетельствует о том, что WхфВ (рис. 7Ь)Г
Нам осталось научиться строить f(g(z)) no x эффективно*
Простое применение s-m-n-теоремы дает тотальную вычисли-
вычислимую функцию k(x), такую, что Wk{x) = f~l (Wx) (достаточна
Рис. 7Ь. Теорема 3.2.
применить s-m-n-теорему к функции ФхЦ(у))). Полагая тепер!
z = k(x), мы видим, что если WX^B, то f(g(k(x))) ? B\WX
Следовательно, множество В продуктивно с продуктивной фуню
цией/(?(*(*))). П
3.3. Примеры
Следующие множества продуктивны:
(a) \х\ФХФО},
(b) \x\c(?Wx} (с—фиксированное число)
(c) \х\с^Ех\ (с—фиксированное число).
(В каждом из этих случаев достаточно применить теорему З.Щ
рассмотрев множество К и функции, полученные в теорещ
6-1.4 (для (а)) и в теореме 6-1.6 (для (Ь) и (с).)
Эти и многие другие примеры продуктивных множеств могу!
быть получены из следующего общего следствия теоремы 3.U
доказательство которого практически совпадает с доказател!
ством теоремы Раиса.
3.4. Теорема. Пусть S3—множество одноместных вычислим^
функций, такоеу что f0?$) и 9$Ф%У. Тогда множест
В = {х | фх ? $} продуктивно.
Доказательство. Выберем какую-нибудь вычислимую фуш
цию g^^. Действуя так же, как при доказательстве теореИ
3. Продуктивные и креативные множества 145
райса F-1.7), получаем тотальную вычислимую функцию k (х),
такую, что
**<*)=?» если *
Фли) = /:0. если
То есть х?К тогда и только тогда, когда k(x)?B. Следо-
Следовательно, по теореме 3.2 множество В продуктивно. ?
3.5. Пример. Множество {х\фхне тотальна} не является про-
продуктивным (это вытекает немедленно из теоремы 3.4).
Продуктивные множества представляют для нас интерес
главным образом в тех случаях, когда они образуют допол-
дополнение некоторого р. п. множества.
3.6. Определение. Множество А называется креативным, если
оно является р. п. и его дополнение Л продуктивно.
Самый простой пример креативного множества дает, ко-
конечно, множество /С. На основании теоремы 2.6 мы можем
сказать, что креативным множеством является р. п. множе-
множество, которое нерекурсивно в очень сильной степени. В гл. 9
мы узнаем, что в некотором смысле креативные множества —
это те р. п. множества, которые имеют самую трудную проб-
проблему разрешения.
3.7. Примеры
Следующие множества являются креативными:
(a) {х\с?Wx}\(продуктивность дополнений к этим множе-
(b) {х\с? Ех\ \ ствам была доказана в примерах 3.3).
(c) Множество Л = {д:|Фд.(х) = 0}. Ясно, что оно р. п. Чтобы
построить продуктивную функцию для Л, можно, пользуясь
s-m-n-теоремой, построить тотальную вычислимую функцию g,
такую, что
¦*<*> (У) = ° « Фх (У) определена.
Тогда g (х) б Л е> g (х) € Wx, так что если Wx ^ Л~, то должно
вьи1олняться условие g(x)?~A\Wx. Тем самым g есть продук-
продуктивная функция для Л.
Много примеров креативных множеств дается следующим
следствием из теоремы 3.4.
3-8- Теорема. Пусть Л^%х и А = {х\Фх?<А\. Если множе-
множество а рп^ АФ0 и АфЦ, то множество А креативно,
g Доказательство. Пусть множество Лр.п. и Л=^0, N.
СЛи /и€^, то по теореме 3.4 А продуктивно, чего не может
146 Гл. 7. Рекурсивные и рекурсивно перечислимые множества
быть. Таким образом, f0?<4 и, следовательно, продуктов^
множество А (теорема 3.4), откуда множество А креативно. [
Примеры 3.7 (а), (Ь) получаются непосредственным прим
нением этой теоремы. Аналогично имеем
3.9. Пример. Множество A = {x\WХФ 0} креативно. Очевад
но, что это множество р. п. и соответствует множеству Л
С помощью теоремы 3.8 делаются и многие упражнения
конце этого параграфа.
Во всех рассмотренных нами примерах нерекурсивные р.
множества были креативными. (При желании читатель моя*
доказать это сам в тех примерах, где соответствующие ря)
суждения явно не проводились.) Возникает естественный вй
рос: верно ли, что все нерекурсивные р. п. множества крс
тивны? В пользу этой гипотезы говорит теорема 3.8, а так!
ряд приведенных ниже примеров. Тем не менее оказываете*
что такая гипотеза неверна: с помощью специальной констру
ции можно построить р. п. множества, которые не будут
рекурсивными, ни креативными. Этой задаче будет посвящ
§ 4.
Эта конструкция, которой мы займемся в следующем najj
графе, обязана своим происхождением сформулированной ни!
теореме 3.11, которая показывает, что продуктивное множес*
(а стало быть, и дополнение к креативному множеству), хо
оно само и не является р. п., содержит тем не менее бескснГ
ное р. п. подмножество. (Поэтому и секрет конструкции, дЯ
щей р. п. множество, не являющееся ни рекурсивным, ни к'
ативным, состоит в том, чтобы обеспечить, чтобы оно
обладало этим свойством.)
Доказательство теоремы будет проще, если мы выде4
сначала следующий технический результат.
3.10. Лемма. Пусть g— тотальная вычислимая функция. Та
существует тотальная вычислимая функция &, такая,
W W{)\ для всех х.
Доказательство, Воспользовавшись s-m-я-теоремой, возь|
тотальную вычислимую функцию k(x), такую, что
A, если y?Wx или y=*gti),
*U)^ \не определена в остальных случаях.
3.11. Теорема. Любое продуктивное множество содержит
конечное р. п. подмножество.
3. Продуктивные и креативные множества
147
Доказательство. Пусть А—продуктивное множество с про-
продуктивной функцией g. Идея доказательства состоит в том,
чтобы следующим образом перечислить без повторений беско-
бесконечное множество В = {у01 ylt ...} s А.
A) Возьмем е0 так, чтобы Weo=0. Так как Weo^ А, имеем
g(eo)?A. Положим yo = g(eo).
B) Пусть п ^ 0, и предположим, что даны у0, ..., уп, такие,
что {Уо, ...,yn\sA. Найдем индекс en+li такой, что {у0
Рис. 7с. Перечисление бесконечного подмножества множества А
(теорема 3. 11).
Уп\ = №еп+1 ^А. Тогда g(en+l)? A\Wen+it так что, полагая
yn+i=g(en+l), мы получаем уп+1?А и уп+1фу09 ...tyn (см.
рис. 7с).
Чтобы убедиться в том, что перечисление у0$ у1У ... яв-
является эффективным, воспользуемся леммой ЗЛО. Выше, при
подборе индекса еп+19 мы требовали, чтобы
(где функция k дается леммой ЗЛО). Таким образом, можно
по определению положить еп+л равным k(en). Тогда последо-
последовательность е0, е19 ... дается рекуррентными соотношениями
ео = некоторый индекс для 0,
и. следовательно, вычислима. Далее, поскольку yn g(n)t
последовательность у0, ylt ... тоже вычислима. Таким образом,
множество В = {у0, ylt ...}, будучи множеством значений вы-
вычислимой функции, является р. п. По построению В^А я В
Оесконечно. ?
Отметим очевидное
148
Гл. 7. Рекурсивные и рекурсивно перечислимые множества
3.12. Следствие. Если множество А креативно, то А содержи
бесконечное р. п. подмножество.
3.13. Упражнения
1. Покажите, что следующие множества продуктивны:
(a) {х
(b) {*
(c) {х
(d) {х
W х конечно},
Фх не сюръективна},
Фх инъективна},
Фх не является многочленом}.
2. Докажите, что следующие множества креативны:
(a) \х\х?Ех},
(b) {х\Е^Ф0\ (п фиксировано),
(c) {х\Фх не инъективна},
(d) {х|Ф*?Л}, где А есть непустое р. п. множество,
(e) {х\Фх(х) = {(х)}\ где /—любая тотальная вычислим^
функция. ч
3. Докажите, что если множество В р. п. и А[\В проду)
тивно, то множество А тоже продуктивно.
4. Докажите, что если множество С креативно и А ее
р. п. множество, такое, что ЛпС=0, то С[)А креативно. -
Рис. 7d. Эффективно рекурсивно неотделимые множества (упр. 3.13(9I
5. Докажите, что любое продуктивное множество содерж!
бесконечное рекурсивное подмножество.
6. Для любых множеств А и Б определим множества ЛE
и A(g)B так же, как и в упр. 1.4A). Пусть В — р. п. По^
жите, что (а) если множество А креативно, то креативны
множества ЛфВ и А(?)В (при условии, что 6=^0), (Ь) ее.
множество В рекурсивно, то верно утверждение, обратное (
7. Пусть Si — множество одноместных вычислимых функци
и пусть функция g^9i такова, что для всех конечных 9S
0(?^3. Докажите, что множество {х\фх?В продуктивно. (Уы
4. Простые множества 149
aH. Используйте первую часть доказательства теоремы Раиса—
Шапиро-)
8. С помощью результатов упр. 7 покажите, что следующие
множества продуктивны:
(a) \х\Фх тотальна},
(b) \х\Фх есть полином}.
9. (Ср. упр. 2.18A3).) Непересекающиеся множества А и В
называются эффективно рекурсивно неотделимыми, если суще-
существует тотальная вычислимая функция /, такая, что из A^Wa,
В gzWb и Wa Г) Wb= 0 следует, что/ (а, Ь) ? Wa U Wb (см. рис. 7d).
(а) Докажите, что множества /Со = {х|Фл.(а:) = О} и Кх =
= {х | Фх Iх)= 1} являются эффективно рекурсивно неотдели-
неотделимыми. (Указание. Найдите тотальную вычислимую функцию f,
такую, что из WanWb=0 следует
{ 1, если x?Wa1
Ф/ca.wWH
(не определена в остальных случаях.
(Ь) Пусть множества А и В эффективно рекурсивно неот-
неотделимы. Докажите, что
(i) если В р. п., то А продуктивно,
(ii) если как Л, так и В р. п., то они оба креативны.
(Замечание. Такое обобщение понятия эффективности на пару
рекурсивно неотделимых множеств аналогично переходу от не-
нерекурсивного множества к множеству, имеющему продуктивное
дополнение; аналогом одного креативного множества здесь будет
пара таких эффективно рекурсивно неотделимых множеств,
которые оба р. п.)
4. Простые множества
В этом разделе мы хотим показать, что существуют мно-
множества, удовлетворяющие следующему определению. Это будет
означать (в силу теоремы 4.2), что не все нерекурсивные р. п.
множества являются креативными.
4.1. Определение. Множество А называется простым, если
(a) Д рекурсивно перечислимо,
(b) А бесконечно,
(c) А не содержит бесконечного р.п. подмножества.
Смысл пунктов (Ь) и (с) этого определения состоит в том,
чгобы выделить те черты, которыми не обладают ни рекур-
слвные, ни креативные множества. Тем самым, хотя мы еще
и не располагаем примерами простых множеств, легко видеть,
что имеет место
4>2« Теорема. Простое множество не является ни рекурсивным,
ни креативным.
150 Гл. 7. Рекурсивные и рекурсивно перечислимые множества "
Доказательство. Пусть А—простое множество. В ci|
пунктов (Ь) и (с) определения множество А не является рл
так что А не является рекурсивным. Согласно теореме 3;
и пункту (с) определения, множество А не может быть кр
тивным. ?
Следующая конструкция простого множества принадлежи
Посту.
4.3. Теорема. Существует простое множество.
Доказательство. Мы определим вычислимую частично
функцию /, такую, что множество значений / содержит
крайней мере по одному элементу из каждого бесконечн
р.п. множества. При этом мы добьемся такого положения
щей, что если Фх тотальна и Ех бесконечно, то f(x)?k
Чтобы сделать множество Ran(/) простым, мы должны обес
чить, чтобы в то же самое время множество Ran (/) бьр
бесконечным. Как мы увидим, оба этих условия будут вып^
нены, если взять в качестве / функцию, которую можно I
формально определить следующим образом: ]
Чтобы вычислить /(*), будем последовательно вычисли
Фх@), ФхA), ... (при этом значение Фх(у+\) вычисляем
только при условии, что значение Фх(у) уже было noj
чено и после того, как вычисление этого значения уже про
дено); вычисления прекращаются, если и только если найд~
число г, такое, что Фх(г)>2х\ в этом случае полагаем f(xj
= Ф*(г)« (На формальном языке это означает, что f(x)
с*Фх (\*>г(Фх(г) > 2х)), откуда сразу же видно, что функци
вычислима.)
Положим A = Ran(f)\ тогда множество А является р
Проверим теперь, что множество А — простое.
Пусть В — произвольное бесконечное р.п. множество. То*
существует тотальная вычислимая функция ФЬу такая,
В = ЕЬ. Так как множество В бесконечно, наша конструк!
гарантирует, что определено значение f(b) и что f(b)?B=*>
Отсюда В ? А. _
Чтобы убедиться в том, что множество А бесконечно, i
метим, что если /(х) определена, то /(х)>2х. Таким образ
для любого п элементы множества Л, принадлежащие щ
жеству {0, 1, 2, ..., 2п}, находятся сре?и чисел /@), ¦
..., f(n—1). Это означает, что множество А содержит 66
чем п элементов, причем это верно для любого п. След<
тельно, множество А бесконечно. ?
Эта конструкция простого множества является всего л
первой и одной из самых простых из широкого класса Ц
струкций, дающих р.п. множества, обладающие многими i
4. Простые множества 151
циальными свойствами. Рассмотрение их выходит за рамки
этой книги; читателю, который интересуется этим вопросом,
стоит обратиться к книге Роджерса [1967], где он познакомится
с р.п. множествами, носящими такие названия, как гипер-
гиперпростые, гипергиперпростые, псевдокреативные и максималь-
максимальные множества. (См. также ниже упр. 4.4C), в котором рас-
рассматривается пример р.п. множества, которое не является ни
рекурсивным, ни креативным, ни простым.)
4.4. Упражнения
1. Пусть Л и В—простые множества. Покажите, что мно-
множество А © В тоже является простым. (Определение значка
ф см. в упр. 1.4.A).)
2. Пусть /-—тотальная инъективная вычислимая функция,
такая, что множество Ran(/) не является рекурсивным. (Упраж-
(Упражнение 2.18G) показывает, что таких функций очень много.)
Покажите, что множество
А = {х\1у(у>х и f(y)<f{x))\
является простым. (Указание. Чтобы доказать, что множество
бесконечно, предположите противное и покажите, что тогда
существовала бы последовательность чисел у0 < ух < у2 < ...,
таких, что / (у0) > / (у,) > / (у2) > ... . Чтобы убедиться в том,
что А не содержит никакого бесконечного рлт. множества В,
предположите противное, а именно, что В ^ Л. Покажите, что
в таком случае проблема z?Ran(f) окажется разрешимой.
А именно для любого заданного z найдите такое п?В, что
/(п)>г, а затем воспользуйтесь тем фактом, что я(?Л, для
построения конечной процедуры проверки того, верно ли, что
€R(/))X)
(/))
3. Покажите, что если множество Л-—простое, то множе-
множество /4(g)ftJ будет р.п., но ие будет ни рекурсивным, ни креа-
креативным, ни простым (см. упр.3.13F)).
4. Пусть А и В—простые множества. Докажите, что мно-
множество Л (Я) В не является простым, но что множество Л (g) В—
простое.
1> Этот пример как пример не только простого, но даже гиперпро-
стого множества впервые указал Деккер. Гиперпростым множеством на-
называется перечислимое множество с гипериммунным дополнением, а ги-
ПеРиммунным называется бесконечное множество/7, такое, что из всякого
Рекурсивно перечислимого множества попарно непересекающихся кортежей
у- е- конечных упорядоченных множеств) хотя бы один целиком содержит-
содержится в дополнении к F. Кроме того, Деккер доказал, что множества Ran/
^о имеют одну и ту же степень неразрешимости. Характеристическим
°иством гипериммунного множества является следующее: функция,
Речисляющая без повторений его элементы в порядке возрастания, не
ж°рируется никакой общерекурсивной функцией.—Прим. перев.
8. Арифметика и теорема Гёделя
о неполноте
Знаменитая теорема Гёделя о неполноте [1931] предел
ляет собой один из многих результатов о формальной арифи
тике, в котором теория вычислимости и логика тесно nepenj
таются друг с другом. Полные доказательства этих утверж
ний выходят за рамки настоящей книги. Тем не менее
сможем в общих чертах наметить ход рассуждений, пред4
женных Гёделем и другими. Особое внимание мы уделим та
роли, которую играет теория вычислимости, причем во мног
случаях это связано с результатами, касающимися свойс
продуктивных и креативных множеств.
В § 1 и 2 приводятся некоторые результаты из формал
ной арифметики, которые дают нам возможность сформулий
вать в § 3 полную теорему Гёделя о неполноте. В последш
разделе мы вновь вернемся к вопросу неразрешимости в фС
мальной арифметике, обсуждавшемуся в § 1. Все наше из4
жение в этой главе не предполагает никакого знакомей
с формальной логикой.
1. Формальная арифметика
Формализация арифметики начинается с определения фй
мального логического языка L, адекватного для формулироа
на нем утверждений обычной арифметики натуральных чис
Язык L имеет свой собственный алфавит, который сост
из символов 0, 1, +, х, =» (содержательный смысл котор
очевиден) и следующих символов, обозначающих логичеа
операции: "л («не»), Д («и»), V («или»), —> («следует»),
(«для всех»), 3 («существует»). (В этой главе мы будем по
зоваться символами V, 3 только в рамках языка L, а ел
«для всех» и «существует» будем применять, только пров<
неформальные рассуждения.) Кроме того, в языке L имею
символы х, у, z, ..., которые обозначают переменные, а та!
скобки вида (и).
Утверждениями (или формулами) языка L называ
осмысленные конечные последовательности символов из э
вита L. Например, утверждение
Зу(ухA+1) = х)
1. Формальная арифметика 153
есть формальная запись неформального утверждения «х четно».
Удобно писать сокращенно вместо 1+1 символ 2, вместо
н _}-1) + 1 —символ 3 и т. д. для всех натуральных чисел.
Тогда ложное неформальное утверждение «число 5 четно» фор-
формально выражается на языке L с помощью утверждения
Зу(ух2 = 5).
Подобным же образом на языке L выражаются и многие дру-
другие неформальные утверждения обычной арифметики. Скажем,
утверждение «х > у» принимает вид
(Утверждение —i(z = 0) часто сокращенно записывают в виде
z^O.) Вместо «х — простое число» можно написать
(х ф 0) Л (х Ф 1) Л VyVz (x = у X z -* (у = 1 V z = 1)).
Обозначим через of множество всевозможных осмысленных
утверждений языка L, Тогда of распадается на два важных
подмножества, а именно:
?г = множество всех утверждений, истинных в обычной ариф-
арифметике натуральных чисел.
? = множество всех утверждений, ложных в обычной ариф-
арифметике натуральных чисел.
Естественное желание математика—узнать как можно больше
о свойствах множества ST. Например, с точки зрения теории
вычислимости важен вопрос:
A.1)(а) Будет ли множество ST рекурсивным или даже рекур-
рекурсивно перечислимым?
Другой вопрос, существенный как с математической, так и
с философской точки зрения, состоит в следующем:
A.1) (Ь) Существует ли какое-нибудь простое подмножество
множества <?Г (система аксиом), из которого выводятся
все остальные утверждения ?Г*>
Как мы скоро увидим, ответ на оба этих вопроса оказы-
оказывает l и отрицательным.
Вопросу 1.1(а) можно дать точную формулировку с по-
помощью стандартной процедуры кодировки. Используя проце-
ДУРУ, подобную той, с помощью которой в гл. 4 были пере-
перечислены все программы, можно без труда указать способ
Эффективного перечисления (без повторений) множества <У.
Допустим, что это уже проделано, и обозначим через 9л
(п+1)-е утверждение из <У в этом перечислении, так что
^ = {в0, 9lf 92, ...}.
154 Гл. 8. Арифметика и теорема Гёделя о неполноте
Эффективность этого перечисления означает, что для кажд
заданного п можно эффективно найти и записать утверждев
8Л, и, обратно, для любого утверждения а из if можно эфф|
тивно вычислить кодирующее число я, такое, что а = ЭЛ.
Такая кодировка ставит в соответствие каждому множест
утверждений SV множество натуральных чисел Х = {п | 9„€ if
Мы будем говорить, что *
i
рекурсивно \ / рекурсивно
р.п. р.п.
SC J продуктивно \ , если X J продуктивно
1 креативно I j креативно
I и т. д. ) \ и т. д.
Тем самым вопросу 1.1 (а) придается точный смысл.
Одним из ключевых результатов, который делает теор"
вычислимости крайне полезным средством исследования ф
мальной арифметики, является следующая, принадлежа!
Гёделю, лемма, которую мы приводим без доказательства.
1.2. Лемма. Пусть М (хг, ..., хп)—любой разрешимый пре§
кат. Тогда можно построить утверждение языка L о(xlt ...,»
которое будет являться формальным аналогом предиксё
M(xlf ..., хп) в следующем смысле: для любых аи ..., ап
М(а19 ..., ап) истинно тогда и только тогда, кщ
o(at9 .... ая)€<*\
Рассмотрим теперь креативное множество /С. По теор|
7-2.4 существует разрешимый предикат R(x, у), такой, %
х? К ФФ существует такое г/, что R(x, у).
Применим к предикату R(x, у) лемму 1.2 и зафиксир}1
какой-нибудь один формальный аналог этого предиката, Ktf
рый мы обозначим через cj^(x, у). Тогда для любого п
утверждение Зуа^(п, у) будет формальным аналогом предшц
«п^^»» а утверждение —i3ya^(n, у)—формальным анало*
предиката «п^/(». Будем поэтому писать
п?К вместо 3ya^(n, у)
и
п(?К вместо "~i3ya^(n, у).
Тогда из леммы 1.2 немедленно вытекает следующий резуль!
1.3. Лемма. Для любого п?Ы
(a) п€К тогда и только тогда, когда п
(b) n(fcK тогда и только тогда, когда п
Теперь, чтобы ответить на вопрос 1.1 (а), нам понадобЦ
лишь следующая лемма.
2. Неполнота 155
1#4. Лемма. Существует тотальная вычислимая функция g,
аяУ что для любого п утверждение Qg (/I) есть п ? К.
Доказательство. Это немедленно следует из эффективности
процедуры кодировки утверждений, поскольку для любого
данного п мы можем эффективно выписать утверждение
n?K(=-i3ya/?(n, У)). ?
Перейдем теперь к ответу на вопрос 1.1(а):
1.5. Теорема. Множество ?Г не является р.п.; в действитель-
действительности множество JT продуктивно.
Доказательство. Пусть ТГ =» {я |9П ?<#"}. Беря функцию g
согласно лемме 1.4, мы имеем
(по лемме 1.3)
(по лемме 1.4).
Таким образом, поскольку множество К не является р.п., ре-
рекурсивно перечислимым не может быть и множество Т. Более
того, по теореме 7-3.2 мы видим, что множество Т продук-
продуктивно. ?
1.6. Упражнение. Покажите, что множество ? продуктивно.
2. Неполнота
Упрощенный вариант теоремы неполноты Гёделя легко
следует из теоремы 1.5. Опишем сначала постановку этой зна-
знаменитой задачи.
Рассмотрим второй вопрос, A.1(Ь)), сформулированный в § 1.
Ему можно придать точный смысл с помощью понятия фор-
формальной системы. Формальная система (А, @>) (для данного
языка L) состоит из множества A^tf (системы аксиом) и яв-
явного определения 3> понятия формального доказательства или
вывода утверждения из of из этих аксиом. При этом должны
быть выполнены следующие условия:
B-1) (а) Доказательства являются конечными объектами (и, сле-
следовательно, их можно кодировать),
(Ь) Явное определение SD понятия доказательства должно
быть таким, что если множество А рекурсивно, то отно-
отношение «р есть доказательство утверждения а из аксиом Аъ
разрешимо.
156 Гл. 8. Арифметика и теорема Гёделя о неполноте
Теперь мы можем следующим образом сформулирова;
в точном виде вопрос 1.1 (Ь): «Существует ли формальная с
стема в L, такая, что
B.2) (а) множество Л рекурсивно (так что простота набо|
аксиом понимается в довольно широком смысле).
(Ь) Множество доказуемых утверждений в точности со
падает с <&*».
Условие (Ь) ставит проблему перед философом, котор|
хотел бы определить само понятие арифметической исти!
с помощью формальной системы. Для него такое условие :
имеет смысла, и его следовало бы заменить какими-ниб)г
другими условиями, отражающими те свойства, которым долж
удовлетворять истина, например:
B.2) (Ь') Непротиворечивость: не существует утверждения
такого, что доказуемы оба утверждения о и —i а.
B.2) (Ь") Полнота: для любого утверждения а одно из утвер
дений а и -п а обязательно доказуемо.
Теорема Гёделя в ее упрощенном варианте говорит о Td
что не существует формальной системы арифметики, удовл
воряющей условиям 2.2(а) и (Ь). Этот факт легко выводи1
из теоремы 1.5 и приводится ниже. Полный вариант теоре]
Гёделя [1931], усовершенствованный Россером, показывает, *
не существует формальной системы арифметики (удовлетвори
щей некоторым минимальным условиям), удовлетворяют
условиям 2.2(а) и (b'), (b"). Другими словами, любая неп
тиворечивая формальная система арифметики с рекурсив]
системой аксиом неполна. Этот факт мы докажем в § 3.
Для доказательства упрощенной теоремы Гёделя нам
добится следующая лемма.
2.3. Лемма. В любой рекурсивно аксиоматизированной <ft
мальной системе множество доказуемых утверждений р.п.
Доказательство. Пусть 9*г — набор доказуемых утвержде!
из if. Поскольку все доказательства конечны, их можно]
фективно перечислить. Тогда из того, что множество аксисй
рекурсивно, следует, что предикат М(х, у) = «у есть но
доказательства утверждения Qx из аксиом Л» разрешим в ci
B.1)(Ь). Тогда
9Х доказуемо & существует у, такое, что М (х, у) исти!
Отсюда по теореме 7-2.4 множество 3*г является р.п.
Сформулируем теперь теорему.
2. Неполнота 157
2,4. Теорема (упрощенная теорема Гёделя о неполноте).
Пусть {Л, ЗУ)—рекурсивно аксиоматизированная формальная
система, в которой все доказуемые утверждения истинны.
Тогда существует утверждением, которое является истинным,
но недоказуемым (и> следовательно, утверждение —\о также
^доказуемо).
Доказательство. По лемме 2.3 множество 5V доказуемых
утверждений будет р.п., причем нам дано, что 5*r ?<JT. Далее,
по теореме 1.5 множество <?Г не является р.п., так что мы
немедленно получаем утверждение а ?<&~\S*r, которое и будет
истинным, но недоказуемым. Ясно, что утверждение —юг также
не является доказуемым (в противном случае —\а было бы
истинно). ?
(Пользуясь продуктивностью множества <&~ (теорема 1.5),
утверждение теоремы можно усилить и сказать, что утверж-
утверждение а может быть эффективно получено из определения
формальной системы (которое дает индекс множества 5V).)
Чтобы лучше понять доказательство полной теоремы Гёделя,
которое будет приведено в § 3, полезно рассмотреть внутрен-
внутренний механизм получения утверждения а с помощью теоремы
1.5 в только что изложенном доказательстве.
Будем говорить, что некоторое утверждение опровержимо,
если его отрицание доказуемо. Рассмотрим множество нату-
натуральных чисел Рг* и Ref*, определяемые следующим образом:
Рг* = {п | п ? К доказуемо},
* = {п | п ? К опровержимо},
= {п | п (? К доказуемо},
(где g есть вычислимая функция, даваемая леммой 1.4, кото-
которую мы использовали при доказательстве теоремы 1.5). Пред-
Предположение о том, что доказуемые утверждения истинны,
означает, в частности, что Рг*^/С и Ref*^7(. Далее, мно-
множество Ref* является р. п. (это следует из того факта, что
я 6 Ref*4^0^(n) g^Y и что множество 9*г является р. п.);
поэтому существует число т, такое, что Ref* = U^w.
В силу продуктивности множества К мы немедленно полу-
чгем, что m?/(\Ref*, т.е. что т^К и, следовательно, что
Утверждение m (? К недоказуемо. Обозначая утверждение т(?К
через а, мы видим, что а истинно, но недоказуемо (как и выше,
Л€гко видеть, что утверждение —\а тоже недоказуемо). Это
Рассуждение проиллюстрировано на рис. 8а. (Для сравнения
с Доказательством полной теоремы Гёделя, которое будет
158
Гл. 8. Арифметика и теорема Г еде ля о неполноте
приведено в следующем разделе, заметим, что недоказуемое*
—\о можно рассматривать как следствие того факта, чт
Рг#^/С: а именно т^К (как и выше), так что /л(?Рг*, т. i
утверждение т?К недоказуемо.) Тогда, применяя правил
Рис. 8а. Упрощенный вариант теоремы Гёделя о неполноте (теорема 2.
формального вывода, получаем, что утверждение ?
(т. е. m(^Wm) тоже недоказуемо.
Отметим, что таким образом становится понятным соде|
жательный смысл утверждения а: а есть формальный экв
валент утверждения т(?/С, т. е. m(?Wm. В то же время
m <? К недоказуемо
Тем самым а есть формальный аналог утверждения «а не'
казуемо», т. е., нестрого говоря, утверждение а утвержд
«я не являюсь доказуемым». Это напоминает парадокс лже!
а именно парадокс, касающийся следующего неформальнс
утверждения
Л == «я лгу»
Неформальный анализ утверждения Л приводит к следующе
парадоксальному выводу:
Л истинно тогда и только тогда, когда Л неистин
Однако если те же самые неформальные рассуждения при
нить к неформальному утверждению «я не являюсь докаф
мым», то парадокса можно избежать, если считать, что Зсй
зуемость и истинность—это разные вещи. Именно к так<?
неформальному заключению приводит нас доказательс
теоремы 2.4.
3. Теорема неполноты Гёделя 159
3. Теорема неполноты Гёделя
В этом разделе мы покажем, как можно усовершенствовать
идею доказательства теоремы 2.4 с тем, чтобы избежать любого
обращения к понятию истинности.
Фиксируем на время одну формальную систему арифме-
арифметики, называемую арифметикой Пеано. Аксиомы этой системы
образуют рекурсивное подмножество if, которое называется
аксиомами Пеано. Эти аксиомы описывают простые свойства
операции взятия следующего элемента N и рекурсивное опре-
определение сложения и умножения в терминах этой операции,
а также включают систему аксиом, описывающих принцип
индукции на N. Понятие формального доказательства берется
из исчисления предикатов первого порядка. Полное описание
арифметики Пеано (которую иногда называют формальной
теорией чисел) можно найти в любом учебнике по математи-
математической логике. Для наших целей нам необходимо знать сле-
следующий важный факт об арифметике Пеано, которому посвя-
посвящена существенная часть доказательства Гёделя.
3.1. Лемма. Пусть М(хх, ...,*„)— разрешимый предикат,
и пусть а(хп ..., хп)—утверждение в L, являющееся формаль-
формальным эквивалентом предиката М (хх, ..., хп) в смысле леммы
1.2. Тогда предикат М представим в арифметике Пеано
в следующем смысле: для любых аи ..., ап?Н
(a) если М(а1У ..., ап) истинно, то a(alt ..., ап) дока-
доказуемо,
(b) если М(аи ..., ап) ложно, то "по(а1, ..., ал) доказуемо,
(Доказательство см., например, в учебнике Мендельсона
[1964].) ?
Рассмотрим теперь утверждение п?К (т. е. Зуа^(х, у)),
которое мы взяли в § 1 в качестве формального эквивалента
утверждения п?К. Тогда из леммы 3.1 вытекает
3.2. Следствие. Для любого натурального числа п из того, что
п€К, следует, что утверждение п?К доказуемо в арифме-
арифметике Пеано.
Доказательство. Пусть п?К. Тогда существует натураль-
ное число т, такое, что R(n, m) истинно, откуда по лемме 3.1
МЬ1 получаем, что утверждение oR(nt m) доказуемо. Правила
Счисления предикатов таковы, что мы имеем возможность
Немедленно найти доказательство для Зуал(п,у); следова-
Тельно, утверждение п?К доказуемо.
160 Гл. 8. Арифметика и теорема Гёделя о неполноте
В процессе доказательства Гёделю потребовалось дополн
тельное техническое условие, которое носит название со-н
противоречивости. Формальная система называется ы-непр*
тиворечивой, если не существует утверждения т(у), такого, ч,
все следующие утверждения являются доказуемыми:
Зут(у), -нт@), -нтA), -нтB), ...
(со-непротиворечивость — более сильное условие, чем услов!
непротиворечивости B.2) (Ь')).
В предположении со-непротиворечивости из леммы 3.1 леп
вывести утверждение, обратное к следствию 3.2.
3.3. Лемма. Пусть арифметика Пеано (^-непротиворечив
Тогда для любого натурального числа п из того, что ymeepir
дение п?К доказуемо, следует, что n?f(
Доказательство. Предположим, что п (?/С. Тогда для любо|
m?N имеем R(n,m) ложно, откуда по лемме 3.1 —ia^(n,r
доказуемо. Таким образом, если доказуемо п?К, в то вреа
как п(?К, то доказуемы все следующие утверждения:
3У<МП>У)> -^яК0). —1ал(п, 1), ...
что противоречит со-непротиворечивости утверждения т(у)т'
= <Мп, У)- ?
Теперь мы можем доказать основную теорему.
3.4. Теорема (теорема Гёделя о неполноте [1931]). В языке*
существует утверждение а, такое, что
(a) если арифметика Пеано (^-непротиворечива, то о не&
казуемо,
(b) если арифметика Пеано ^-непротиворечива, то —kjjt
доказуемо.
Доказател ьство.
(а) Напомним определение множеств, введенных нами в ко!
предыдущего раздела:
Pr* = {/z:n?K доказуемо},
Ref* = {n:ngK опровержимо}.
Согласно следствию 3.2, К<= Рг*, тогда как условие непрот(
речивости дает, что Pr*nRef* = 0, откуда Ref^^A^. Бу
рассуждать так же, как и в предыдущем варианте: множен
Ref* является р. п., возьмем поэтому такое /л, что Ref*=*fl
Эта ситуация проиллюстрирована на рис. 8Ь, который поле
сравнить с рис. 8а.
3. Теорема неполноты Гёделя
161
Из продуктивности К вытекает, что mg/C\Ref*; в частно-
частности, т (? Ref*, что означает, что утверждение m (? К недоказуемо.
Рис. 8Ь. Теорема Гёделя о неполноте (теорема 3.4(а)).
Следовательно, чтобы доказать п. (а), достаточно взять в ка-
качестве а утверждение т(?К.
(Ь) Из условия (о-непротиворечивости следует (по лемме 3.3),
что Рг*^/С и, следовательно, чтоРг* = /С. Таким образом, при
условии (о-непротиворечивости ситуация рис. 8Ь преобразуется
Рис. 8с. Теорема Гёделя о неполноте (теорема 3.4(Ь)).
в ситуацию, изображенную на рис. 8с. Тот факт, что т (?/(,
означает, что /га^Рг*, т. е. что утверждение т?К недоказуемо.
Правила исчисления предикатов немедленно показывают, что
Утверждение па (т.е. —im(jfK) тоже недоказуемо. ?
Замечания
'. Построенное в теореме Гёделя утверждение а называется
г?РA3решимым или неразрешенным утверждением арифметики
eaiJo. Как мы видели в конце § 2, а имеет неформальный
Л' ЬО 2
162 Гл. 8. Арифметика и теорема Гёделя о неполноте
смысл: «я не являюсь доказуемым», и поэтому на интуитивн
уровне это утверждение истинно.
2. Ясно, что теорема Гёделя применима к любой реку
сивно аксиоматизированной формальной системе, в которой в'
разрешимые отношения представимы (в смысле леммы 3.
В частности, это верно для всех систем, более сильных, щ
арифметика Пеано. Тем самым мы не можем избавиться ¦
неполноты путем добавления новых аксиом, например аксио.
«а или —ia». Полученная формальная система будет содержа
новое неразрешимое утверждение.
3. Заметим, что неразрешимое утверждение а можно яви
образом построить из определения арифметики Пеано, посколь|
пользуясь этим определением, можно эффективно найти
деке т множества Ref\ Этот конструктивный аспект теоре
Гёделя есть следствие того факта, что множество К креатищ
Внимательно проанализировав доказательство, можно убедив
в том, что если вместо множества К взять любое нерекурс?
ное р. п. множество Л, то удастся показать лишь сущесп
вание неразрешимого утверждения.
4. Хотя это и не вполне очевидно из нашего изложе^
доказательство части (а) теоремы Гёделя является финит^
доказательством. Это означает, что оно явно показывает,
по формальному доказательству утверждения а построить
казательство для —ia (что демонстрирует его противоречивое
Этого нельзя сказать о части (Ь), поскольку понятие со-не|
тиворечивости не является финитным.
В 1936 году Дж. Б. Россер обнаружил, как можно i
виться от условия со-непротиворечивости в части (Ь) теоД
Гёделя. Этот улучшенный Россером вариант метода Г<*
заключается в использовании вместо креативного множест!
того факта, что р. п. множества
К9~{х:фх(х)-0) и *! = {*'¦¦*(*)«" U
являются эффективно рекурсивно неотделимыми (это пой
было рассмотрено в упр. 7-3.13(9), но наше дальнейшее
жение не требует знакомства с этим упражнением).
Мы начнем с описания некоторых утверждений из <У,
рые будут формальными эквивалентами утверждениям 0
и nGKi и которые записываются в несколько более ело
виде, чем использованный нами ранее формальный эквив
утверждения п?К. Выберем разрешимые предикаты R^
и /?! (х, у), такие, что
п?Кое> существует t/, такое, что RQ(n, y)%
& существует у, такое, что /?i(n,y).
3. Теорема неполноты Гёделя ЬбЗ
что КоПК1 = 0, и поэтому
(*) п?К»& существует у, такое, что (i)R0(n, у)
и (ii) /?i(n, z) ложно для всех z^y.
Диалогичное соотношение имеет место и для утверждения
п?Кх. Возьмем теперь утверждения oRo, oRi, которые, со-
согласно лемме 3.1, представляют /?0, Rt в арифметике Пеано.
Предложение Россера состояло, по сути дела, в том, что он
предложил использовать следующее утверждение (соответствую-
(соответствующее соотношению (*)):
И 3У (°R0 (n* У)ЛVz < у (-1 а^ (n, z)))
в качестве формального эквивалента утверждения п?К0 вместо
более простого утверждения Эуа^о(п, у). Будем сокращенно
записывать утверждение (**) как п?К0 и аналогично будем
писать п?К, вместо
ЕУ (<**, (п. У)Л Vz < у (-1 oRo (n, z))).
Теперь уже несложно доказать следующую ключевую лемму
(которую следует сравнить со следствием 3.2):
3.5. Лемма. В арифметике Пеано для любого натурального
числа п
(a) если п ? /@, то утверждение п ? Ко доказуемо,
(b) если п?Ки то утверждение ngl^ доказуемо,
(c) если доказуемо n?Klt то доказуемо и п(?К0.
В доказательстве этой леммы используются некоторые тех-
технические свойства арифметики Пеано, и мы его поэтому опу-
опустим. Отметим, что использование более сложных формальных
эквивалентов для утверждений п?К0 и п^Кг необходимо для
того, чтобы доказать 3.5(с). (Для тех, кто знаком с математи-
математической логикой, укажем, что лемма 3.5 легко доказывается,
если показать, что следующие утверждения доказуемы в ариф-
арифметике Пеано:
C-6) (а) Для любого m^N:
Vz<m(z = 0Vz = 1 V-.. Vz=^m),
(b) VyVz(y<zVz<y).)
Теперь уже мы можем завершить доказательство основного
Результата.
•'• Теорема (теорема Гёделя—Россера о неполноте). Сущест-
Уещ утверждение т, такое, что если арифметика Пеано
противоречива^ то утверждения тмт недоказуемы.
6%
164
Гл. Я. Арифметика и теорема Гёделя о неполноте
Доказательство. Рассмотрим множества
Рг** = {я|п?К0 доказуемо},
Ref** = {n | п ? Ко опровержимо}
= {п|п(?К0 доказуемо}.
Условие непротиворечивости означает, что Pr**flRef** = ?
Из леммы 3.5(а) мы имеем, что Ко ^ Рг**. Кроме того,
лемм 3.5 (Ь) и (с) мы получаем, что
п ? /<! =Ф п (? Ко доказуемо;
т. е. что Ki ^ Ref**. Оба множества Рг** и Ret** p. п. (при эт
используется тот факт, что 5*г р. п.), так что из рекурсиви
неотделимости множеств /(о.и /(, (упр. G-2.18A3Ь)) следу<
Рис. 86.
что существует число р ? Pr**U Ref**. Такое положение
проиллюстрировано на рис. 8d. Теперь уже видно, что р(?\
означает недоказуемость утверждения р?К0, a pgRef** д
недоказуемость р(?К0, так что для завершения доказательс
теоремы достаточно взять в качестве т утверждение р ? Ко#>
Хотя доказательство теоремы (в той форме, в какой
была сформулирована) и закончено, посмотрим еще, как моЛ
явно построить число р (а следовательно, и утверждение'
Из явного описания арифметики Пеано можно эффект!
найти индекс р, такой, что
( 1, если м?Рг**,
Фр(п)=\ 0» если n€Ref**,
{ не определена иначе.
Докажем теперь, что p(?Pr**U Ref**. Имеем
(i) если р ? Рг**, то Фр (р) = 1, так что р ? Ки откуда р € R
что противоречит условию непротиворечивости. Отсюда р (?]
4. Неразрешимость 165
(ii) если p?Ref*\ то фр(р) = 0, так что р?К0, откуда
л?Рг**, что дает еще одно противоречие. Отсюда p(?Ref*V
/Тот факт, что число р может быть получено явно, сущест-
существенным образом использует эффективную рекурсивную неотде-
лпмость множеств Kit и /(, (см. упр. 7-3.13(9).) П
Замечания
1. Утверждение —it, построенное при доказательстве этой
теоремы, соответствует неразрешимому утверждению о тео-
теоремы 3.4. Легко видеть, что —it имеет неформальный смысл:
«я не являюсь доказуемым» и тем самым интуитивно истинно.
2. Теорема Гёделя — Россера применима к любой рекур-
рекурсивно аксиоматизированной формальной системе арифметики,
в которой все разрешимые отношения представимы и для
которой может быть доказана лемма 3.5. (Лемма 3.5 всегда
выполняется для систем, в которых можно доказать утвержде-
утверждения 3.6(а), (Ь). Такие системы называются россе ровскими.) Так
что тем самым нет никакой возможности избавиться от непол-
неполноты, добавляя новые аксиомы.
3. Теорема Гёделя—Россера является полностью финитной:
ее доказательство (если его привести полностью) показывает,
как явно получить противоречие по доказательству какого-
нибудь из утверждений т или пт.
4. Неразрешимость
Как мы уже видели, множество ?Г (истинные утверждения
арифметики) не является рекурсивным (теорема 1.5). Это
свойство часто обозначают другим термином, говоря, что мно-
множество ?Г неразрешимо. И вообще, рассматривая множества
утверждений, часто говорят «разрешимое» и «неразрешимое»,
имея в виду рекурсивное и нерекурсивное.
Для любой формальной системы арифметики мы можем
задать вопрос: является ли множество 5V доказуемых утверж-
утверждении разрешимым? Ответ на него будет неизменно отрицате-
отрицателен, и убедиться в этом можно различными способами. Мы
ограничимся одним из многих результатов в этой области,
в доказательстве которого используются идеи предыдущего
Раздела.
4-1. Теорема. Пусть (Л, 3>) — ^-непротиворечивая формальная
система арифметики, в которой все разрешимые предикаты
пРсдставимы (в смысле леммы 3.1). Тогда множество доказуемых
Утверждений креативно.
Доказательство. В наших предположениях применима
Теорема Гёделя 3.4, поэтому из доказательства теоремы 3.4
166 Гл. 8. Арифметика и теорема Гёделя о неполноте
мы имеем
/( = Рг* = {л:п? К доказуемо}.
Пусть теперь Рг = {п:Э„ доказуемо}; можно найти вычислиму
функцию ft, такую, что п?К есть 0Л(П), и тогда
п € К & п е Рг*
Таким образом, по теореме 7-3.2 множество Рг креативно. [-
4.2. Следствие. Если арифметика Пеано (^-непротиворечива, п
все доказуемые утверждения образуют креативное множеств,
(Это справедливо, в частности, в том случае, если все док
зуемые утверждения истинны.)
С помощью идеи Россера можно улучшить теорему 4г
и следствие 4.2. Мы сформулируем это в виде следующе
упражнения.
4.3. Упражнение. Пусть (Л, @>) — непротиворечивая рекурсий
аксиоматизированная формальная система, для которой выпа
няются леммы 3.1 и 3.5. Пусть Рг** и Ref** — множеств
определенные при доказательстве теоремы 3.6.
(a) Покажите, что множества Рг** и Ref** эффективно
курсивно неотделимы.
(b) Пусть Рг = {аг.0„ доказуемо} и Ref = {п:"пЭп доказуе
Докажите, что множества Рг и Ref эффективно рекурс
неотделимы. (Указание. Обобщите идею теоремы 7-3.2 на п
эффективно рекурсивно неотделимых множеств.)
Изложение результатов в этой главе было в значитель^
мере взято из книг Клини [1967] и Смальяна [1961]. Да}
нейшее обсуждение вопросов неполноты и неразрешимо*
в арифметике и связанных областях см. в книгах Белл|
Маковера [1977], Булоса и Джефри [1974] и Роджерса [\Щ
Глава 9
Сводимости и степени
В предшествующих главах мы часто пользовались техни-
техникой сведения одной проблемы к другой в качестве средства
доказательства неразрешимости. Например, мы прибегали
к этому в доказательстве теоремы 6-1.4, показав, что сущест-
существует тотальная вычислимая функция &, такая, что x?Wx<&
^фли) = 0; другими словами, с помощью функции k нам
удалось свести каждый случай общей проблемы «x?Wx» к не-
некоторому случаю общей проблемы «Фх = 0». В настоящей главе
мы рассмотрим два способа придания понятию сводимости
точного смысла и в каждом из этих вариантов рассмотрим
возникающее при этом понятие степени (трудности проблемы).
Имея в виду что любая проблема представляется некото-
некоторым множеством чисел, удобнее изучать сводимость множеств,
а не самих проблем. Неформальное понятие «множество А
сводится к множеству В» можно расшифровать по-разному.
Например:
(a) «По разрешающей процедуре для проблемы «х? В» можно
построить разрешающую процедуру для проблемы «х?А».
(b) «Если нам известно все о множестве В, то мы можем
воспользоваться некоторой механической процедурой (которая
использует эту информацию о В) для решения вопросов, каса-
касающихся множества Л».
(c) «Вопросы о множестве А не сложнее вопросов о мно-
множестве В».
(d) «Степень трудности проблемы «х?А» не больше чем
степень трудности проблемы «х?В»».
Оказывается, что придать этому понятию точный смысл
можно несколькими неэквивалентными способами. Разница
между ними заключается в способе использования и объеме
информации о множестве В, которую разрешается использо-
Вать для решения вопросов о множестве Л. В § 1—3 мы изу-
изучим одно из простейших понятий сводимости, называемой
Многозначной сводимостью, которое включает ранее встречав-
встречавшиеся варианты использования этого неформального понятия.
и последних разделах мы рассмотрим более общее понятие,
Которое носит название сводимости Тьюринга.
168 Гл. 9. Сводимости и степени
1. Многозначная сводимость
1.1. Определение. Множество А называется многозначно свс
димым (сокращенно т-сводимым) ко множеству В, если сущ
ствует тотальная вычислимая функция /, такая, что для все
х х?А тогда и только тогда, когда f(x)?B. Мы будем запч
сывать это в виде A <mfi и будем писать /: Л<тВ, если неой
ходимо показать, что именно функция f является той тотал!
ной вычислимой функцией, которая показывает, что А^.т1
Замечание. Термин «многозначная» используется для тог*
чтобы отличать этот тип сводимости от смежного понят*
однозначной сводимости, в котором требуется, чтобы функцЦ
/ была инъективна.
В предшествующих главах мы уже во многих случая!
неявно пользовались понятием m-сводимости. Часто для дока
зательства многозначной сводимости требуется применен*
s-m-л-теоремы. Рассмотрим несколько примеров.
1.2. Примеры
1. В гл. 6 было показано, что множество К т-сводим
к каждому из следующих множеств:
(a) {х\Фх = 0\ (теорема 6-1.4, цитировалась выше),
(b) \x\c€Wx\ (теорема 6-1.6).
2. Взяв функцию k из доказательства теоремы 6-1.6, ч
видим, что х?К &Фк{Х) тотальна. Отсюда к. К^ш\х\фк^
тотальна}.
3. Теорема Раиса (теорема 6-1.7) была доказана после toiI
как мы показали, что К^т {х\Фх?93)у где 3S есть непустое noj|
множество #,, такое, что fo^lB.
4. \х\Фх тотальна} <т{х|ФА. = 0}.
Доказательство. С помощью s-m-n-теоремы возьмем тотал
НуЮ ВЫЧИСЛИМУЮ ФУНКЦИЮ &, Такую, ЧТО Фй(Х)авОофл. п|
всех х. Тогда k: \х\Фх тотальна} ^ m {х 10^ = 0}. ?
Следующая теорема устанавливает некоторые элементарн
свойства т-сводимости.
1.3. Теорема. Пусть А, В, С—множества.
(a) Отношение ^т рефлексивно (т.е. Л^тЛ) и траНч
тивно (т. е. если А^тВ и В^тС, то А <тС),
(b) А^тВ тогда и только тогда, когда A <mfi,
(c) если множество А рекурсивно и B^mAt то множесйИ
В рекурсивно,
(d) если множество А рекурсивно и ВФ0,Ы, то А
(?) если А р. п. и В^.тА, то В р. п.,
(f) (i) /l<mN тогда и только тогда, когда /1=N,
/. Многозначная сводимость 169
(ii) A^m0 тогда и только тогда, когда Л = 0,
(g) (i) М<тЛ тогда и только тогда, когда Аф&%
(ii) 0 <пИ тогда и только тогда, когда А ФН.
Доказательство.
(a) Рефлексивность, и А <тЛ, где i есть тождественная
функция. Транзитивность. Если f: A^mB и gs 5^mC, то
ясно, что go f: A <mC.
(b) Если gi Л<тВ, то х?Л <&j(x)?By откуда х?Л<=>
g ()€#'» следовательно, g: Л<т5.
(c) Пусть g: B^.mA. Тогда Са(*) = Сл (?(*))» так что функ-
функция св вычислима.
(d) Выберем b?B и с(^В и определим / соотношением
| bt если хб А,
i w—| с> если х^л.
Тогда функция / вычислима (поскольку множество /1 рекур-
рекурсивно), и *€Л <=>/(*)€/?, откуда /: Л<тВ.
(e) Пусть g: В<тЛ и Л = Dom (/i), где функция /г вычис-
вычислима. Тогда В =» Dom (h о g) и функция Л о g вычислима, так
что множество В р. п.
(f) (i) Согласно (a), N<mN. Обратно, предположим, что
/: Л<т^, т.е. что х?А & f(x)?N. Тогда ясно, что Л=М.
(Ь)
(ii) есть утверждение, двойственное к (i): Л<т0<=»
(Ь) _ @ _
^Л<т|^^Л = ^^Л = 0.
(g) (i) Пусть /: [^^тЛ. Тогда Л = 1?ап(/), так что Л Ф 0
(поскольку функция / тотальна). Обратно, пусть Л=т^0.
Возьмем некоторое с б Л. Тогда, полагая g(x) = c (для всех х),
мы имеем g: N <тЛ.
(ii) есть утверждение, двойственное к (i): 0^тЛФ^
I*» _ @ —
^<тЛф*Л ^0<^Л=^^. П
С помощью пункта (е) этой теоремы можно получить сле-
следующий пример несводимости:
1-4. Следствие. Множества {х \ Фх тотальна} и { х \ фх не тоталь-
н&) не являются т-сводимыми к К.
Доказательство. В силу следствия 7-2.17 ни одно из этих
множеств не является р. п., так что остается лишь применить
Теорему 1.3 (е). ?
Исключительное поведение множеств 0, N (теорема 1.3 (d),
() (g)) представляет собой часть той цены, которую прихо-
платить за простоту понятия m-сводимости. Другое не
170 Гл. 9. Сводимости и степени
вполне удовлетворительное обстоятельство состоит в том, Ч1
множества Л и Л не обязательно взаимно сводятся одно к др)
гому (что противоречит нашему интуитивному представлени
о том, что проблемы «х?Л» и «х^Аъ должны были бы име1
одинаковую степень трудности). В самом деле, имеет мес1
1.5. Следствие. Если А есть р. п. множество, которое не я
ляется рекурсивным, то А^тА и А$?.тА.
Доказательство. По теореме 1.3 (е) если А ^ЮЛ, то А р. п[
что дает противоречие. Утверждение А^тА следует из те
ремы 1.3 (Ь). ?
Следующий результат вновь показывает ключевую роли
которую играет р. п. множество /С.
1.6. Теорема. Множество А р. п. тогда и только тогда, ког(
Доказательство. Если Л<т/(, то теорема 1.3 (е) говор*
нам о том, что множество А р. п. Обратно, пусть А—люб"
р. п. множество. Определим вычислимую функцию / (я, у) сое
ношением
f 1, если x?At
TV >У) — ^ не определена, если х(?А.
s-m-n-теорема дает тотальную вычислимую функцию s(x), i
кую, что / (х, у) ^ Ф, {х) (у). Из определения функции / ЯС1
что
х g А <=> Ф5 {х) (s (х)) определена
&s(x)eK,
т. е. Л<т/С П
Можно считать, что смысл этой теоремы состоит в те
что проблема «х?К» есть самая трудная частично разре!
мая проблема.
1.7. Упражнения
1. Покажите, что множество К m-сводимо к каждому
следующих множеств:
(a) {*|ФЛ*)-0},
(b) {х\х?Ех\.
2. Покажите, что для любых множеств Л, В, где
выполняется соотношение Л ^тЛ ®В. (Напомним, что Л
{Ь) А ЬВ\
2. Степени 171
3. Покажите, что
(a) {х\Фх = 0}^т{х\Фх тотальна и постоянна},
(b) \х\Фх тотальна} <m{x|fl?x бесконечно}.
4. Покажите, что ни одно из множеств упр. 3 не является
rn-сводимым ни к какому р. п. множеству.
5. Пусть Л, В —р. п. множества, такие, что ЛиВ = |^ и
А Л В ф 0. Докажите, что А < тА П В.
2. Степени
Каждому понятию сводимости соответствует понятие экви-
эквивалентности множеств, которое является формализацией на-
нашего интуитивного представления о том, *то два множества
или две проблемы имеют одну и ту же степень сложности.
В случае m-сводимости мы имеем
2.1. Определение. Множества А и В называются многозначно
эквивалентными (сокращенно т-эквивалентными), если Л<тД
и В^тА. Этот факт записывается в виде A*nmB.
Использование в этом определении слова эквивалентный
оправдывается следующей теоремой:
2.2. Теорема. Отношение sEm является отношением эквива-
эквивалентности. (См. § 3 введения, где имеется определение.)
Доказательство. Рефлексивность и транзитивность следуют
немедленно из теоремы 1.3 (а); симметричность очевидна из
определения. ?
2.3. Примеры
1. Пусть с—произвольное число. Тогда нз примера 1.2 AЬ)
и теоремы 1.6 следует, что {х\с? Wx} = mA.
2. Для любого рекурсивного множества .4, отличного от 0
и N, из теоремы 1.3 (d) следует, что /4=тЛ. _
3. Если множество А р. п., но не рекурсивно, то АфтА
(следствие 1.5).
4. \х\Фх = 0\?Е5т{х\Фх тотальна}. В одну сторону утверж-
утверждение дается в упр. 1.2D). Чтобы получить обратное утверж-
утверждение, воспользуемся s-m-n-теоремой, которая дает тотальную
вычислимую функцию kt такую, что
( 0,
*{х) ^' ^ \ не
если 4
не определена иначе.
Тогда ясно, что Фх^Ооф* (х) тотальна.
172 Гл. 9. Сводимости и степени
Для любого множества А имеется класс множеств dm(A),
эквивалентных А относительно отношения =Ет:
Все эти множества можно считать имеющими ту же степень
сложности (относительно отношения <т), что и множество Ац
и поэтому dm(A) называют т-степенью Л.
2.4. Определение, т-степенью называется класс эквивалент-
эквивалентности множеств относительно отношения s==m, т. е. любой клас<|
множеств, имеющий вид dm(A) для некоторого множества Аг
Степени принято обозначать жирными строчными латин-
латинскими буквами а\\1\ сп. Следует четко понимать, что, хоти
мы и пользуемся строчными буквами, они обозначают множен
ства множеств. Поэтому имеет смысл запись Л?а, где а есп
степень, а А — множество, хотя на первый взгляд она и ка?
жется несколько странной. ^
Отношение ^т для множеств индуцирует отношение частич^"
ной упорядоченности (определение см. § 3 введения) для т-сте-'
пеней, которое тоже обозначается ^т и определяется следую*
щим образом:
2.5. Определение. Пусть а, Ь—т-степени.
(a) a^mft, если существуют А?а и В?Ь, такие, чт
А<тВ, ' "
(b) a<mft, если a<mft, но аФЬ.
Замечание. Из определения отношения =--т немедленно сл^'
дует, что а^тЬ тогда и только тогда, когда А^тВ дл*.
всех А?а, В?Ь.
2.6. Теорема. Отношение ^т есть отношение частично^
упорядоченности на множестве т-степеней.
Доказательство. Из теоремы A.3) (а) мы сразу получаел*
что а^та (рефлексивность) и что из a<mft, b^mc следуй
а^тс (транзитивность). Предположим теперь, что a<mft
ft<ma. Нам необходимо показать, что a = 6. Пусть А?а
В?Ь. Тогда по определению Л<тВ и В^тЛ, так чт
А^тВ, откуда a = b. D
Рекурсивной т-степенью называется любая m-степень, с€
держащая некоторое рекурсивное множество. Аналогично р. Д
т-степенью называется m-степень, содержащая некоторое р. 0
1) Хотя мы иногда и пользовались символом а для обозначения н*
бора из п чисел (aXt ..., ап), никакого недоразумения не возникнет, т^
как разница сразу видна из контекста.
2. Степени 173
множество. На этом языке отдельные пункты теоремы 1.3 и
1.6 выглядят следующим образом:
2.7. Теорема, (а) {0} и {Щ суть т-степени, которые мы бу-
будем обозначать own соответственно; own суть рекурсивные
т-степени.
(b) Существует еще одна рекурсивная т-степень, обозна-
обозначаемая через 0т, которая состоит из всех рекурсивных мно-
множеств, за исключением 0 и N. Кроме того, 0т^та для
любой т-степени а, отличной от о, п.
(c) Для любой т-степени а выполняется соотношение
о<та (при условии, что афп) и п<та (при условии, что
афо).
(d) Любая р. п. т-степень состоит только из р. п. мно-
множеств.
(e) Если а^.тЬ и Ь есть р. п. т-степень, то а есть тоже
р. п. т-степень.
(f) Существует максимальная р. п. т-степень, а именно
dm(K), которую обозначают через 0^.
Доказател ьство
(a) Следует из теоремы 1.3 (f);
(b) из теоремы 1.3 (с), (d);
(c) из теоремы 1.3 (g);
(d) из теоремы 1.3 (е);
(e) из теоремы 1.3 (е);
(f) из теоремы 1.6. ?
Структура множества m-степеней, даваемая теоремой 2.7,
изображена на рис. 9а. (На этой схеме степень а распола-
располагается ниже степени Ь, если мы хотим показать, что а^тЬ.)
Несколько ниже мы увидим, что (как и показано на рисунке)
существуют р. п. m-степени, отличные от 0т и 0^.
Структура множества m-степеней с учетом имеющегося
в нем отношения частичной упорядоченности, изучена довольно
подробно. Следующая теорема показывает, что эта структура
представляет собой то, что называют верхней полурешеткой.
2.8. Теорема. Для любой пары m-степеней а, Ь существует
но крайней мере одна верхняя грань, т. е. существует т-сте-
пень с, такая, что
(i) а^.тс и Ь^.тс (с есть верхняя грань),
(и) с<т любая другая верхняя грань а, Ь.
Доказательство. Выберем А ? а, В ? Ъ и положим С«Л ф 5,
т. е.
С={2х\х?А}[){2х+1\х€В}.
174
Гл. 9. Сводимости и степени
Тогда х?Ае>2х?Су так что Л<тС и x?B?
так что fi^mC. Таким образом, полагая c = dm(C), мы пол
чаем, что с есть верхняя грань а, Ь.
не р. п.
степени\
отличающи- \
есяотъъ,
Рис. 9а. т-степени.
Пусть теперь d есть любая m-степень, такая, что a<mj
и b^md. Выберем множество D?d и предположим, что
i4<mD и g: B<mD. Тогда мы имеем
(х четно &l-kx?A\ или (х нечетно & у(х— 1) 6^1
(
х четно
или (х нечетно
если х четно»
нечетно,
Таким образом, полагая
( f (\
|/(т-
}«(*«•-¦ О-
мы получаем ft: C^LmD, откуда г
Ясно, что для любой пары m-степеней а, ft наименьш*
верхняя грань с определена однозначно. Кроме того, лег
убедиться в том, что если a, ft р. п., то р. п. и т-степень.
(см. ниже упр. 2.9E)). >
Изучая структуру m-степеней, естественно отдельно и^
чить структуру р. п. m-степеией. (Сюда входят, разумеете
md. Q
2. Степени 176
рекурсивные m-степени Om, о, п.) Из теоремы 2.7 следуют (как
показано на рис. 9а) такие основные факты о р. п. т-степенях:
(a) если не учитывать исключительные m-степени о, п, то
существует минимальная р. п. m-степень 0т (на самом деле
0т минимальна среди всех т-степеней);
(b) р. п. m-степени образуют начальный отрезок т-степе-
т-степеней, т. е. любая степень, лежащая ниже некоторой р. п. m-сте-
m-степени, тоже р. п.
(c) существует максимальная р. п. m-степень, а именно 0^.
Кроме того, легко убедиться в том, что хотя множество всех
m-степеней несчетно, лишь счетное число их является р. п.
(упр. 2.9F) ниже).
Исследования последних двадцати пяти лет показали, что
структура р. п. m-степеней крайне сложна. В рамках этой
книги можно лишь показать, что она не является совершенно
простой, чем мы и займемся в следующем разделе.
2.9. Упражнения
1. Покажите, что следующие множества т-эквивалентны:
(a) {х\х?Ех\,
(b) {х\ФЛ*) = 0\.
2. (а) Покажите, что Л=~тЛ®^| для любого множества Л,
(Ь) пусть В—непустое рекурсивное множество. Покажите,
что Л=гтЛB)В для любого Л при условии, что Л^^!. _
3. (Ср. примеры 2.3B,3).) Верно ли, что если А=тА9
то множество А рекурсивно? (См. ниже упр. 5d).
4. Покажите, что следующие множества принадлежат одной
н той же m-степени:
(a) {х\Фх = 0\,
(b) \х\Фх тотальна и постоянна},
(c) {х | Wх бесконечно}.
5. Пусть а, Ь есть m-степени.
(a) Покажите, что наименьшая верхняя грань а, Ь опре-
определена однозначно; обозначим ее через а\}Ь.
(b) Покажите, что если a<m&, to a\Jb = b.
(c) Покажите, что если a, b р. п., то аиb тоже р. п.
(d) Пусть А?а и а* обозначает dm(A). (Проверьте, что а*
не зависит от выбора А?а.) Покажите, что (a \}a*)* = a\ja*.
6. (а) Покажите, что любая m-степень а счетна (т. е. что
существует счетный набор множеств Лба).
(b) Покажите, что система m-степеней несчетна.
(c) Покажите, что система р. п. m-степеней счетна.
176 Гл. 9. Сводимости и степени
3. m-полные р. п. множества
Как мы видели, О'т (m-степень К) максимальна среди все!
р. п. m-степеней. В этом случае говорят, что множество щ
есть т-полное р. п. множество или просто т-полное множество1**
(Соответствующее понятие имеется и для всех прочих типоц
сводимости.)
3.1. Определение. Множество является т-полным, если они
р. п. и если любое другое р. п. множество m-сводится к нему.
Из теоремы 1.6. немедленно получается
3.2. Теорема (а) Множество К является т-полным,
(b) А является т-полным тогда и только тогда, когда*
А=тК тогда и только тогда, когда А р. п. и /f <w/4,
(c) 0^ состоит в точности из всех т-полных множеств.
Применяя эту теорему, мы получаем следующие:
3.3. Примеры
Следующие множества являются т-полными.
(a) \x\c?Wx\ (пример 1.2AЬ)),
(b) любое нетривиальное р. п. множество вида \х\Фх€33},
где Зд^<ё1 (доказательства теорем 7-3.4 и 3.8 показывают,
что К^т такое множество),
(c) {х\Фх{х)-0}9
(d) {x\x?Ex\
Читатель, возможно, уже понял, что понятие т-сводимости
неявным образом присутствовало в формулировке теоремы 7-3.2,
из которой немедленно следует
3.4. Теорема. Любое т-полное множество креативно.
Доказательство. Если множество А m-полно, то /С<гаЛ,
так что К^тА, и по теореме 7-3.2 множество А продук-
продуктивно. ?
Очень приятно узнать, что утверждение, обратное к этой
теореме, тоже справедливо, что дает точное описание системы*
m-полных множеств.
3.5. Теорема (Майхилл). Креативные множества т-полны.
Доказательство ее нам придется отложить до гл. 11, где
появится вторая теорема о рекурсии, необходимая для прове-1
Х) Понятие m-полных множеств можно ввести и для классов, отлича-
отличающихся от класса р. п. множеств. В этом случае необходимо явно ука-
вывагь наличие свойства р. п.
4. Относительная вычислимость Г77
дения всех рассуждений. Заметим тем не менее, что для креа-
креативных множеств индексов этот факт уже установлен в при-
примере 3.3 (Ь).
В качестве немедленного следствия теоремы 3.4 мы можем,
пользуясь простыми множествами, показать, что 0т и 0^ не
являются единственными р. п. степенями.
3.6. Следствие (к теореме 3.4). Простые множества не явля-
являются т-полными, так что если а есть т-степень произволь-
произвольного простого множества, то 0т < т а < т 0^.
Доказательство. Простые множества были определены так,
чтобы они не были ни рекурсивными, ни креативными. Q
Это следствие оправдывает включение каких-то степеней
между 0т и 0'т на рис. 9а; но оно еще не подтверждает того
свойства этого рисунка, что существует более одной нерекур-
нерекурсивной р. п. m-степени, отличающейся от 0^. В действитель-
действительности существует бесконечно много таких степеней, но дока-
доказывать это мы здесь не будем.
Дальнейшее исследование структуры m-степеней с точки
зрения отношения их частичной упорядоченности ^т выходит
за рамки настоящей книги. Эта структура является, как уже
отмечалось, очень сложной, и многое о ней можно узнать из
результатов о сложной природе степеней Тьюринга, которые
мы рассмотрим в следующих разделах.
4. Относительная вычислимость
В § 1 мы видели, что понятие m-сводимости имеет два
довольно неестественных свойства: исключительное поведение
множеств 0 иЫ и тот факт, что не всегда выполняется соот-
соотношение Лз=тЛ. Они проистекают из ограниченной природы
ni-сводимости: А^.тВ, только если каждый вопрос «х?А?»
можно решить, ответив на некоторый единственный заранее
указанный вопрос о В заранее указанным образом. Идея сво-
сводимости Тьюринга, которую мы определим в § 5, состоит
в том, чтобы решить вопрос о <а?Л» механическим путем,
ответив на несколько вопросов, касающихся В, природа и
(конечное) число которых не обязательно известны заранее.
^той идее можно придать точный смысл в терминах понятия
относительной вычислимости, рассмотрением которого мы и
займемся в этом разделе.
Пусть х~произвольная одноместная тотальная функция.
Неформально мы говорим, что функция / вычислима относи-
относительно % или просто ^-вычислима, если функцию / можно вы-
выделить с помощью алгоритма, эффективного в обычном смысле
178
Гл. 9. Сводимости и степени
слова, за исключением того, что время от времени в ходи
вычислений нам разрешается брать значения функции %. Такощ
алгоритм называется у^алго ритмом. Х"алг°Ри™ можно пред*
ставлять себе как алгоритм, связанный с некоторым внешни»!]
источником, или оракулом, который может по запросам выдату
значения функции %. ^-алгоритм работает чисто механически*
и значение i(ri) запрашивается у оракула только согласно пред^
писаниям алгоритма.
Теперь мы можем дать точное определение понятия отно»
сительной вычислимости, пользуясь видоизмененным вариантом
нашей МНР, который называется «Машиной с неограниченными
регистрами и оракулом», или сокращенно МНРО.
4.1. Определение. МНРО подобна МНР во всех отношениях-
за исключением того, что она может исполнять пятый тщ
команд —команды О(п) для любого п^1. Команда О (я) на^
зывается командой обращения к оракулу.
Оракул
Ri R2 R-э
Полученное состояние
х(гп)
Рис. 9Ь.
Чтобы МНРО могла выполнить такие команды, она долж|
быть соединена с некоторым оракулом, который, будучи г
прошен, выдает значения некоторой заданной функции
В таком случае мы будем говорить, что МНРО имеет в сва
оракуле функцию х- При этом функция х не считается част!
самой МНРО.
По команде обращения к оракулу МНРО делает следуют!
если в оракуле имеется функция х» то гп (содержимое ре|
4. Относительная вычислимость 179
стра /?„) заменяется на х(О- На блок-схеме это обозначается
как гп :=х(О или x(rn)-+Rn.
Машину МНРО, в оракуле которой находится функция х
и которая выполняет команду О (/г), можно представлять себе
так, как она изображена на рис. 9Ь.
Как и ранее, программой называется конечная последова-
последовательность команд. Любую программу МНРО выполняет точно
так же, как и МНР, с одним единственным дополнительным
условием: после выполнения команды обращения к оракулу 1к
в Р следующей командой является команда /л+1.
Подчеркнем, что МНРО-программа Р не содержит никакой
конкретной функции х- Поэтому смысл программы Р меняется
в зависимости от того, какая функция заключена в оракуле.
Однако вычисление Р может быть проведено только в том слу-
случае, если задана некоторая конкретная функция х- В связи
г этим мы будем писать Рх для обозначения программы Я,
работающей в той ситуации, когда в оракуле заключена функ-
функция х- Таким образом, мы пишем Рх(а1, ...,а„) для обозна-
обозначения вычисления Р при условии, что в оракуле находится
функция х» а начальная конфигурация есть alt aa, .-., ап,
О, 0, .... Кроме того, Р*(аIЬ обозначает, что вычисление
Р*{а) останавливается с числом Ь в регистре Rt.
Теперь мы можем сформулировать следующие определения
(которые похожи на определение 1-3.1)
4.2. Определение. Пусть %—одноместная тотальная функция,
а /—частичная функция из N" в N.
Ы Пусть Р есть МНРО-программа. Тогда говорят, что Р
МНгО'вычисляет f относительно % (или что / %~вычисляется
с помфщью Р), если для любых a?Nn и b^N,
P*(a)lb тогда и только тогда, когда f(a)czb.
(b) Функция / называется МНРО-вычислимой относительно х
(или просто ^вычислимой), если существует МНРО-программа,
которая МНРО-вычисляет / относительно х-
Через #* мы будем обозначать класс всех Х"вычислимых
Функций.
Теперь мы уже в состоянии определить понятие сводимости
по Тьюрингу. Однако, прежде чем сделать это, мы сначала
дадим небольшой обзор ряда результатов теории относительной
вычислимости.
Большая часть результатов и технических средств обычной
теории вычислимости имеют аналогии в теории относительной
вычислимости. Поэтому в последующих теоремах мы во мно-
гих случаях даем лишь набросок доказательства или же от-
отсылаем читателя к обычному варианту соответствующей тео-
180 Гл. 9. Сводимости и степени
ремы. Всюду в этом разделе х обозначает тотальную одномест-г
ную функцию.
4.3. Теорема
(a) х€#х,
(b) % s # * ,
(c) если функция % вычислима, то # = #*,
(d) класс #х замкнут относительно операций подстановки,-
рекурсии и минимизации у
(e) если г|) есть тотальная одноместная функция, которой
является ^-вычислимой, то #^ ^ #*.
Доказательство.
(a) Рассмотрите МНРО-программу 0A).
(b) Любая МНР-программа является МНРО-программой.
(c) С учетом (Ь) нам необходимо только показать, что
#* s #. Предположим, что / ^-вычислима и чтох вычислима. Не*
формально любое значение / может быть вычислено следующим
образом: применим для / наш Х"а*лгоритм, и всякий раз, когда
запрашивается значение х» будем просто вычислять его, полы
зуясь алгоритмом для %. Эта процедура эффективна, и, еле*
довательно, согласно тезису Чёрча, функция / вычислима
(Формальное доказательство этого результата мы оставляем
читателю; см. упр. 4.10C).)
(d) Доказательства аналогичны доказательствам теоре
2-3.1, 2-4.4 и 2-5.2.
(e) Доказательство аналогично пункту (с) (который на само»,
деле является частным случаем (е)).
Другие варианты изложения теории относителъ?
ной вычислимости. Любой другой подход к теории вычис
лимости можно, несколько видоизменив его, приспособить дл
получения соответствующего понятия относительной вычисли
мости. При этом можно доказать относительный вариант фу|
даментального результата (теорема 3-1.1), что даст возможное!
сформулировать для теории относительной вычислимости тез^
Чёрча.
Здесь мы отметим лишь относительный вариант поият%
частично рекурсивной функции:
4.4. Определение. Класс Э1Х %-частично рекурсивных функцЩ
есть наименьший класс функций, удовлетворяющий следующ)!
условиям:
(а) базисные функции принадлежат 31х,
()х€,
(с) 91 замкнут относительно операций подстановки, реку|
сии и минимизации.
4. Относительная вычислимость
Вместо слов ^-частично рекурсивна» говорят также «частично
рекурсивна относительно %».
Понятия х-рекурсивной (или рекурсивной относительно %)
функции и ^-примитивно рекурсивной (или примитивно рекур-
рекурсивной относительно %) функции определяются очевидным
образом.
Теореме 3-2.2 соответствует (доказываемая точно также)
4.5. Теорема. Для любого х имеет место 5ix*=#*.
Нумерация программ и функций. МНРО-программы
можно эффективно перенумеровать или закодировать с помощью
метода, подобного использованному в гл. 4 для МНР-программ.
Предположим, что это уже проделано и что у нас имеется
некоторое фиксированное эффективное перечисление (без повто-
повторений) всех МНРО-программ1* Qo, Qu Q2, ... . Введем сле-
следующие обозначения:
ФУап есть я-местная функция, %-вычисляемая с помощью Qm,
Имеется следующий относительный аналог s-m-n-теоремы
D-4.3) с идентичным доказательством:
4.6. Теорема (относительная s-m-n-теорема). Для любых т,
п :> 1 существует тотальная вычислимая (т+ 1)-местная функ-
функция sj" (е, дг), такая, что для любой функции %
Замечание. Функция s^ здесь, конечно, отличается от функ-
функции, носящей это же название, в теореме 4-4.3. Заметим,
однако, что и здесь функция s™ является по-прежнему вычис-
вычислимой (а не просто ^-вычислимой) и не зависит от х.
Универсальные программы для относительной вы-
вычислимости. Перевод на язык теории относительной вычи-
вычислимости доказательства теоремы 5-1.2 немедленно дает сле-
следующий результат:
4.7. Теорема. Для любого п универсальная функция ч\>& п для
^-местных х-вычислимых функций, задаваемая соотношением
Щ " (?, х) ~ Ф}-п {х), является ^-вычислимой.
1) В этот список входят и все МНР-программы. В большинстве слу-
, однако, их нумерация не совпадает с нумерацией гл. 4.
182 Гл. 9. Сводимости и степени .
Замечание. Внимательное изучение полного формальног
доказательства теоремы 5-1.2 показывает, что существует щ
зависящая от % МНРО-программа QlJ\ которая х*вычисля^
ф?/ п для любого х-
%-рекурсивные и %-р. п. множества. Относительны
варианты понятий рекурсивного и р. п. множества даются слс,
дующими определениями:
4.8. Определение. Пусть А—множество.
(a) А называется х-рекурсивным (или рекурсивным относи
тельно х)» если функция сА х-вычислима,
(b) А называется Х"Р- п- (или Р- п- относительно %), есд
частичная характеристическая функция
| 1, если х?А,
'* \ не определена, если х$А
является х-вычислимой.
Следующий набор результатов о Х"РекУРсивных и Х"Р- d
множествах доказывается путем добавления значка х* в со°"
ветствующие места доказательств аналогичных результате
из гл. 7.
4.9. Теорема.
(a) Множество А %-рекурсивно тогда и только тогдъ
когда А и А %-р. п.
(b) Для любого множества А следующие условия эквиА
лентны:
(i) А %-р. п.,
(ji) A^Wfa для некоторого т,
(iii) А = Е%г для некоторого т,
(iv) А = 0 или А является множеством значений иском
рой тотальной %-вычислимой функции,
(v) для некоторого %-разрешимого предиката R (х, у)
x?A&3yR(xy у)
(/? называется %-разрешимым, если его характеристичесЩ
функция %-вычислима).
(c) Пусть Кх = {х\х? W*}. Тогда множество Кх %-р.$м
но не х-рекурсивно.
Вычислимость относительно некоторого множ.
ства. Для любого множества А вычислимость относительна
(или просто А-вычислимость) определяется как вычислимо*
относительно функции сА (характеристической функции
При этом мы пишем
Рл вместо Р°А (где Р есть МНРО-программа),
4. Относительная вычислимость 183
<вА вместо %СА9
Ф* вместо ф^1,
W* вместо №^,
?? вместо ?**,
КА вместо /СЧ
Л-рекурсивный вместо с^-рекурсивный,
Л-р. п. вместо сА-р. п.
и т. д.
В следующем разделе мы определим сводимость по Тью-
Тьюрингу в терминах вычислимости относительно некоторого мно-
множества. Коротко говоря, основные идеи, изложенные в этой
главе, можно суммировать следующим образом: Л-вычислимость
есть вычислимость для того, кому известно все о множестве Л.
Чуть более точно, это вычислимость для каждого, кто может
ответить на любой вопрос вида «х^Л?». При этом знания
«бесконечных» фактов об Л не требуется (например, не требуется
уметь отвечать на вопрос о том, имеет ли Л бесконечно много
четных элементов).
4.10. Упражнения
1. Пусть х» ^ — тотальные одноместные функции, и пусть
функция ф} тотальна. Верно ли, что функция ф^ обязательно
является тотальной?
2. Пусть Xi» Ха» •••» Хл—тотальные одноместные функции.
Обозначим через 91%хХ% х* наименьший класс функций, со-
содержащий базисные функции, функции Xi» • • •» X* и замкнутый
относительно операций подстановки, рекурсии и минимизации.
Дайте определение множества #Xl х* функций, вычислимых
относительно Xi» • • •» Хл» А™ которого %х х* = #Xl х*.
(Указание. Определите машину с k оракулами или найдите
одну одноместную функцию х» такую, что 5iXl Xfe = ^ix.)
3. Дайте полное формальное доказательство теоремы 4.3 (с):
если функция х вычислима, то # = #х.
4. Покажите, что существует тотальная вычислимая функ-
функция k (не зависящая от х)> такая, что Wl(a> г» = Н^иИ?? для
всех индексов а, Ь.
5. Докажите теорему 4.9.
6. Пусть Л — произвольное множество.
(a) Покажите, что для любого р. п. множества В сущест-
существует индекс е, такой, что B = Wf.
(b) Покажите, что если множество Л рекурсивно, то Wf
р. п. для всех е.
184 Гл. 9. Сводимости и степени
(с) Покажите, что если А рекурсивно, то КА р. п., но не;
рекурсивно.
7. Пусть Л, В, С—множества. Докажите, что
(a) если А В-рекурсивно и В С-рекурсивно, то А С-ре-<
курсивно,
(b) если А В-р. п. и В С-рекурсивно, то А С-р. п.,
(c) если А В-рекурсивно и В С-р. п., то А не обязатель-
обязательно С-р. п.
8. (Относительный вариант теоремы 1.6) Пусть Л —произ-
—произвольное множество. Покажите, что множество В является
Л-р. п.ФФВ<тАЯ
9. Покажите, что существует единственное число dt такое»
что KA = W§ для всех множеств А.
10. (а) Будем говорить, что множество А является х-простым,
если (i) А есть Х"Р-п-> 00 А бесконечно, (iii) А не содержит
бесконечных %-р. п. подмножеств. Покажите, что существует
Х-простое множество.
(Ь) Дайте определение х-креативного множества. Покажите»
что х-простое множество не является х-креативным.
5. Сводимость по Тьюрингу и степени Тьюринга
Пользуясь понятием относительной вычислимости, сформули-
сформулируем следующие определения:
5.1. Определения
(a) Множество А называется сводимым по Тьюрингу (или
просто 7'-сводимым) к множеству В, если А В-рекурсивно (или,
что эквивалентно, если функция сА В-вычислима). Это записы-
записывают в виде А ^ 1 В.
(b) Множества Л и В называются эквивалентными по Тью-
Тьюрингу (или Т-эквивалентными), если А < ТВ и В < ТЛ. (Исполь*'
зование слова «эквивалентны» будет обосновано ниже в тео-
теореме 5.2 (Ь).) Это записывается в виде А^ТВ.
Рассмотрим неформальный смысл сводимости по Тьюрингу^
Предположим, что А < ТВ и что МНРО-программа Р вычис*
ляет сА относительно В. Тогда для любого х Рв(х) сходится I
Рв(х)\\% если х? А,
Рв(х)Ю, если х?А.
В каждом завершенном вычислении Рв(х) имелось конечно^
число обращений к оракулу за значениями св(п) функции сА
согласно программе Р и ходу вычисления. Эти запросы равнси
сильны конечному числу вопросов вида «п ? В?». Тем самыя*
для любого х вопрос <а?Л?» можно решить механический
5. Сводимость по Тьюрингу и степени Тьюринга 185
путем, ответив на конечное число вопросов о множестве В.
Поэтому понятие сводимости по Тьюрингу согласуется с нефор-
неформальным представлением о сводимости, обсуждавшимся нами
в начале § 4.
Следующая теорема дает некоторые основные свойства отно-
отношений < т " =Т-
5.2. Теорема.
(a) отношение ^т рефлексивно и транзитивно,
(b) =т есть отношение эквивалентности,
(c) если Л_<тВ, то Л<ТВ,
(d) А = ТА для всех Л,
(e) если А рекурсивно, то А^ТВ для всех В,
(/) если А рекурсивно и В<ТЛ, то В рекурсивно,
(g) если А р. п., mo A ^ -,/(.
Доказательство. Пункты (а) и (Ь) немедленно следуют из
из того, что А <ТВ«=> %А s %в (по теореме 4.3 (а), (е)), откуда
Л = ТЯ» #* = «*.
(c) Пусть /: Л^тВ, и пусть Р есть МНР-программа
в стандартном виде, вычисляющая /. Тогда, как легко видеть,
МНРО-программа Я, 0A) будет В-вычислять сА.
(d) Так как cj = sgo cA9 множество Л является Л-рекурсив-
ным (как результат подстановки). Отсюда Л ^ТЛ. Аналогично
получается Л < ТА.
(e) По теореме 4.3 (Ь).
(f) По теореме D.3) (с).
(g) Следует из пункта (с) и теоремы 1.6. ?
Замечания
1. Из пунктов (d), (e) и (f) этой теоремы видно, что поня-
понятие Т-сводимости не имеет недостатков m-сводимости. Отсюда,
в частности, следует, что эти два понятия различны.
2. Пункт (g) теоремы показывает, что множество К является
Т-полным (р. п.) множеством в смысле следующего определения:
5.3. Определение. Множество Л называется Т-полным% если Л
р. п. и В^тЛ для любого р. п. множества В.
Степенью Тьюринга называется любой класс эквивалентно-
эквивалентности множеств относительно отношения ===т. Как и ранее, мы
рассматриваем степень как набор множеств одной и той же
степени сложности.
5.4. Определения
(а) Пусть Л—некоторое множество. Класс эквивалентности
186 Гл. 9. Сводимости и степени
называется степенью Тьюринга Л, что сокращенно записываю!
«7-степень Л».
(b) Любая Т-степень, содержащая рекурсивное множество^
называется рекурсивной Т-степенью.
(c) Любая Т-степень, содержащая р. п. множество, назьй
вается р. п. Т-степенью.
Понятия сводимости по Тьюрингу и степени Тьюринп
обычно считают основными среди других подобных понятий'
Поэтому для обозначения сводимости по Тьюрингу часто полы
зуются просто словом «сводимый». Аналогично степени Тьюринг
часто называют просто степенями, или степенями неразрешим
мости. В оставшейся части этой главы мы тоже будем пользо?
ваться подобной терминологией. Как и прежде, буквами а, 6,
и т. д. обозначаются степени.
Как и <т, отношение <т на множествах индуцирует отно?
шение частичной упорядоченности на степенях.
5.5. Определение. Пусть а, Ь — степени.
(a) а-^Ь, если для некоторых (или, что эквивалентно, дл!
всех) А ?а и В?Ь, А <ТВ; '
(b) а<Ь% если а^Ь и афЬ.
(Проверку того, что < является отношением частичной ynopjf
доченности на степенях, мы оставляем читателю в качестве
простого упражнения (ср. теорему 2.6).)
Теорема 5.2 может быть теперь следующим образом перв
формулирована в терминах степеней.
5.6. Теорема, (а) Существует единственная рекурсивная cm
пень, обозначаемая 0; 0 состоит из всех рекурсивных множесп
и является единственной минимальной степенью.
(b) Пусть 0' обозначает степень К; тогда 0 < 0' и 0' шя
максимальная степень среди всех р. п. степеней.
(c) Для любых множеств Л, В
О) dm(A)<=dT(A),
(и) если dm(A)^mdm(B)t то dJ(A)^d1(B).
Доказател ьст во
(a) Немедленно следует из теорем 5.2 (е) и (f).
(b) Из п. (а) вытекает, что 0<0' и 0=й=0\ так как К Hf
рекурсивно. По теореме 5.2 (g) если а — произвольная р.
степень, то а ^0'.
(c) Немедленно следует из теоремы 5.2 (с).
Имеются два фундаментальных факта, касающихся стр|
туры степеней Тьюринга относительно отношения частичне*
упорядочения.
5. Сводимость по Тьюрингу и степени Тьюринга 187
Операция скачка. Как мы видели, переход от рекурсив-
рекурсивных множеств к Т-полным множествам (таким, как К) сопро-
сопровождается определенным увеличением степени сложности, что
на языке Т-степеней записывается в виде 0<0'. Сейчас мы
покажем, что для любой степени а существует переход или
скачок к более высокой степени а', которая называется скач-
скачком а. Она определяется с помощью множества КА =¦ {х | х ? Wj)
(для любого множества A?a)t но сначала нам необходимо
сформулировать следующую теорему.
5.7. Теорема. Пусть Л, В—любые множества.
(a) (i) КА есть Л-р. п.,
(и) если В Л-р. п., то B^jKA.
(b) Если А рекурсивно, то КА = тК.
(c) А < ТКА.
(d) (i) Если А <ТВ, то КА <ТКВ,
(ii) если Ле=тВ, то КЛ зз ТКВ.
Доказательство.
(a) (i) вытекает из теоремы 4.9(с); для доказательства (ii)
заметим, что непосредственное обобщение на относительный
случай теоремы 1.6 (с помощью относительного варианта s-m-n-
теоремы) показывает, что если В является Л-р. п., то В^.тКА.
(b) Ясно, что /С^т^О4» поскольку множество К является
А-р. п. для любого Л. С другой стороны, если Л рекурсивно,
то Л-вычислимая частичная характеристическая функция КА
на самом деле вычислима (теорема 4.3 (с)), откуда КА р. п.
Таким образом, КА^~лК.
(c) Тот факт, что Л<т/Сл, следует из (a)(ii), а АфТКА
дается теоремой 4.9 (с).
(d) (i) Если Л<т#, то, поскольку КА является Л-р. п.,
оно будет и В-р. п. (см. упр. 4.10GЬ)). Отсюда КА < лКв
в силу (a) (ii).
(ii) следует немедленно из (i). ?
Пункт (а) этой теоремы говорит о том, что КА можно было
бы назвать Т-полными А-р. п. множеством. Иногда его назы-
называют пополнением Л, но обычно пользуются термином скачок А
и обозначают его через Л'.
Заметим, что для любого Л^О степень КЛ есть 0' (в силу
пункта (Ь) предыдущей теоремы). Поэтому мы можем дать сле-
следующее определение операции скачка на множестве степеней.
5.8. Определение. Для любой степени а скачком а (обозна-
(обозначается а') называют степень множества КА для любого А?а.
Замечания.
1. Теорема 5.7 (d) говорит о том, что это определение кор-
поскольку степень КА одна и та же для всех А?а.
188 Гл. 9. Сводимости и степени
2. В силу теоремы 5.7 (Ь) новое определение 0' здевь к'
скачка 0 согласуется с данным ранее определением как ст
пени К (теорема 5.6).
Немедленно выписываются следующие основные свойств!
этой операции.
5.9. Теорема. Для любых степеней а, Ь
(a) а<а\
(b) если а<й, то а'<6\
(c) 0'<а\
(d) если В?Ь, А?а и множество В является Л-р. п., т(
Ь <а\
Доказательство.
(a) По теореме 5.7 (с).
(b) По теореме 5.7 (d).
(c) По теореме 5.9(Ь), учитывая, что О^а.
(d) По теореме 5.7 (а). ?
Вторым фундаментальным фактом, касающимся структуру
степеней Тьюринга, является то обстоятельство, что они так же\
как и m-степени, образуют верхнюю полурешетку.
5.10. Теорема. Любые степени а, Ь имеют единственную на'
именьшую верхнюю грань.
Доказательство. Укажем лишь, что наименьшей верхне!
гранью а, Ь является (как и для гп-сгепеней) степень Л0|
для любых Л?а, В?Ь, и оставим подробное доказательств
читателю в качестве упражнения, поскольку все рассужденщ
аналогичны тем, которыми мы пользовались при доказательств,
теоремы 2.8. ?
Наименьшая верхняя грань степеней а, Ь обозначаете!
а[]Ь. Из построения видно, что если а, Ь р. п., то р. га
и степень аиЬ. 1
Структура степеней Тьюринга относительно имеющегося и
них отношения частичной упорядоченности и операций ' и I
изучалась весьма активно, но еще ни в коей мере не понят?
полностью. Особое внимание уделялось структуре р. п. степ$
ней (которые не образуют начального отрезка всех степенен
Тьюринга в отличие от того, что имело место для р. п. т-си
пеней; см. ниже теорему 5.18). Сейчас известно, что структур
Т-степеней и р. п. Т-степеней исключительно богата и сложна
Тем не менее длительное время оставался нерешенным следуй
щий легко формулируемый вопрос:
5.11. Проблема Поста. Существует ли р. п. степень а, такай
что 0 < а < 0'?
5. Сводимость по Тьюрингу и степени Тьюринга 189
Пост сформулировал эту проблему в 1944 году. Простые
множества, тоже изобретенные Постом, не дают ответа на вопрос
(в отличие от m-степеней, следствие 3.6). Одна из причин этого
заключена в следующем результате, принадлежащем Деккеру,
который, в частности, показывает, что 0' содержит простое
множество.
5.12. Теорема. Любая нерекурсивная р. п. степень содержит
простое множество.
Доказательство (набросок). Пусть В — любое р. п. мно-
множество, не являющееся рекурсивным, и пусть fl = Ran(/), где
/—тотальная инъективная вычислимая функция (упр. 7-2.18G)).
Зададим множество А условием
А = {х\3у(у>х и Ш </(*))}¦
В упр. 7-4.4B) имеется указание о том, как показать, что
множество А является простым. Доказательство того, что
Л = т?» мы оставляем читателю в качестве упражнения (см.
ниже упр. 5.21 F)). ?
Эта теорема подчеркивает разницу между Т-степенями и
ni-степенями, показывая, что 0' (в отличие от 0^) содержит
много р. п. множеств, которые не являются т-полными.
Серьезного достижения в деле решения проблемы Поста
удалось добиться Фридбергу и Мучнику в 1956 году, когда
они независимо друг от друга доказали следующую теорему:
5.13. Теорема. Существуют р. п. множества Л, В, такие, что
/l<gTB и В<ТЛ. Отсюда, беря в качестве а и b соответст-
соответственно dT(A) и dT(B), получаем, что а^Ь и Ь^а и, следо-
следовательно, 0 < а < 0' и 0 < Ь < 0'.
(Степени а, Ьу для которых выполняются соотношения
а^б и b^la называются несравнимыми степенями. Этот факт
записывается следующим образом: а\Ь.)
Доказательство теоремы Фридберга — Мучника, которое
существенно выходит за рамки этой книги, читатель может
найти в книгах Роджерса [1967] и Шёнфилда [1971]. Фридберг
и Мучник использовали новую технику, которая носит назва-
название метода приоритетов и которая дала возможность открыть
сложную природу структуры степеней Тьюринга.
Имеется много результатов, касающихся степеней, которые,
подобно теореме Фридберга—Мучника, легко сформулировать,
но трудно доказать. Для иллюстрации сложности системы Т-сте-
пепей приведем некоторые из них.
190 Гл. 9. Сводимости и степени
5.14. Теорема. Для любой р. п. степени а, такой, что 0'>а>0,|
существует р. п. степень ft, такая, что Ь\а.
5.15. Теорема плотности Сакса. Для любых р. п. степеней а <.№
существует р. п. степень с, для которой а < с < ft.
5.16. Теорема Сакса о разбиении. Для любой р. п. степени
а > 0 существуют р. п. степени ft, с, такие, что Ь < а, с <а
и a = b\jc (откуда Ь\с).
5.17. Теорема (Лахлан, Ейтс)
(a) Существуют р. п. степени a, ft > 0, такие, что 0 есть
наибольшая нижняя грань для а и ft.
(b) Существуют р. /г. степени a, ft, яе имеющие наиболь-
наибольшей нижней грани (ни среди всех степеней, ни среди р. п. сте*
пеней).
Обращаясь к не р. п. степеням, отметим следующий неожи-
неожиданный результат.
5.18. Теорема (Шёнфилд). Существует не р. п. степень а < 0'.
Минимальной степенью называется степень т > 0, такая,
что не существует степени а, для которой 0 < а < т. По тео--
реме плотности Сакса минимальной р. п. степени не сущест-
существует. Тем не менее Спектор доказал следующую теорему.
5.19. Теорема. Существует минимальная степень.
За доказательствами этих и других касающихся степеней-,
результатов мы вновь отсылаем читателя к книгам Роджерса
и Шёнфилда. Более поздние результаты, которые не вошли
в эти книги, имеются в очень понятном обзоре Симпсона [1977].,иА
Т-степени и т-степени. Зачастую информацию о т-сте-,
пенях можно почти немедленно получить из результатов о Т-сте*|
пенях, пользуясь при этом теоремой 5.6 (с). Например, cnpa-J
ведливо
5.20. Следствие (из теоремы 5.14). Для любой р. п. m-cmenenuji
а, такой, что 0^ > а > m0m, существует р. п. т-степень Ьщ
такая, что Ь\а.
Доказательство. Пусть А ?а; А р. п., поэтому в силу тео*
ремы 5.14 возьмем р. п. Т-степень с, такую, что с1т(Л)|с
Пусть В—какое-нибудь р. п. множество из с, и пусть ft= dm (ВЦ
Тогда если a <m ft или ft < т а, то из теоремы 5.6 (с) следует, чтф
dT(i4)<c или c^dr(y4), что противоречит Aт(Л)|с. ОтсюдЙ
а\Ь. ?
Другие понятия сводимости. Имеются и другие поня«
тия сводимости, которые лежат между ограниченным понятие^
5. Сводимость по Тьюрингу и степени Тьюринга 191
ni-сводимости и более широким понятием Т-сводимости. Подроб-
Подробное обсуждение этого вопроса имеется в книге Роджерса [1967].
5.21. Упражнения
1. Покажите, что каждое из следующих множеств является
Т-полным:
(a) {х\х?Ех\,
(b) {x\Wx=0\.
2. Попробуйте улучшить теорему 5.7 (d), показав, что А < ТВ
тогда и только тогда, когда КА^тКв, и что Л=ТВ тогда
и только тогда, когда КА^тКв.
3. Покажите, что предыдущий вопрос можно сделать эффек-
эффективным в следующем смысле: существует тотальная вычисли-
вычислимая функция /, такая, что для любых Л, В из сА = фв следует
Ф/(е): КА^тКв. {Указание. Найдите тотальные вычислимые
функции g, h, такие, что (i) из сА = Фв следует КА = WB(e),
и (П) Фнцу W?^mKB для всех е.)
4. Для произвольного множества А определим последова-
последовательность множеств А(п) следующим образом: Л@) = Л; А{п + 1) =
= КА1п\ и положим Л((й) = {л(т, п)\т?А(п)}.
(a) Покажите, что АЫ) < ТЛ((О) при всех п.
(b) Покажите, что существует тотальная вычислимая функ-
функция Л, такая, что сАкт = Ф^ при всех п.
(c) Пусть В—некоторое множество, такое, чтоЛ(Л)<тВ
при всех п в следующем сильном смысле: существует тоталь-
тотальная вычислимая функция /, такая, что сА{П) = Фв(П) при всех п.
Покажите, что Л(<0) <ТЯ.
(d) Покажите, что если A ^jB, то А{п) ^ТВ{п) при всех /г,
а также, что Л(@) ^ТВ((О). (Указание. Воспользуйтесь резуль-
результатом упр. 3, а также пунктами (Ь) и (с).)
5. Докажите теорему 5.10.
6. Закончите доказательство теоремы 5.12.
G) В качестве следствия из теоремы 5.17 (а) докажите, что
существуют р. п. m-степени, такие, что 0т является наиболь-
наибольшей нижней гранью для а и ft.
Глава 10
Эффективные операции
на множестве частичных функций
После изучения эффективно вычислимых операций на мноЦ
жестве чисел, естественно рассмотреть вопрос о том, сущесъ
вует ли понятие подобного рода и для операций над фунщ
циями. Существенная разница между функциями и числам!
(если их рассматривать как множества основных объектов
состоит в том, что первые являются, как правило, бесконеч?
ными объектами, а вторые—конечными. Имея это в виду, ми
в § 1 этой главы обсудим свойства, наличие которых было бь
разумно ожидать от эффективного оператора на частичные
функциях, и дадим определение такого оператора.
В § 2 мы узнаем, что имеется тесная связь между рекур!
сивными операторами и эффективными операциями на вычжг
лимых функциях, рассмотренными нами в § 3 гл. 5. В § i
будет доказана важная теорема о неподвижной точке для ре
курсивных операторов, которая носит название первой теорем
о рекурсии. В конце этой главы мы рассмотрим некотор!
приложения этой теоремы к теории вычислимости и теорет
ческому программированию.
1. Рекурсивные операторы
Обозначим через ?п (п^1) класс всех частичных функц*
из Нп в N. Словом оператор мы будем обозначать функц*
Ф: ?т—*<^я» причем прописные греческие буквы Ф, ?, .
в этой главе будем использовать только для обозначения ог
раторов. Мы будем рассматривать лишь тотально определе
ные операторы Ф: ? т —¦ ? пУ т. е. такие операторы Ф, облас
определения которых совпадает со всем классом ?т.
Основная проблема при попытке дать определение поняти
вычислимого (или эффективного) оператора Ф: ?х —+ ?х ее
стоит в том, что как вводимая функция /, так и выводим^
функция Ф(/) являются, скорее всего, бесконечными объекта»
и, следовательно, не могут быть заданы за конечное врем!
В то же время, согласно нашему интуитивному представлении
об эффективных процессах, мы должны в некотором смысЛ
уметь проводить их за конечное время.
Чтобы разобраться, как можно преодолеть эту трудности
рассмотрим следующие операторы из ?х в ?{.
/. Рекурсивные операторы 193
(a) Фх(Л-2/.
(b) Фа(/) = ?, где g(x) = %y<xf(y).
Эти операторы, несомненно, очень естественны и записаны
в явном виде. На интуитивном уровне их вполне можно было
бы считать эффективными. Попытаемся сейчас разобраться,
почему. Пусть /€<F,. Рассмотрим случай gl = O1 (/). Заметим,
что любое конкретное значение gx (х) (если оно определено)
может быть вычислено за конечное время по одному единст-
единственному значению f(x) функции /. В случае g2 = GJ(f) для
вычисления значения g2(x) (если оно определено) необходимо
знать конечное число значений /@), /A), ..., f(x). Тем самым
в обоих случаях любое определенное значение выводимой
функции (Фгф или Ф2(/)) может быть эффективно вычислено
за конечное время при использовании лишь конечной инфор-
информации о вводимой функции /. В этом и состоит суть приве-
приведенного ниже определения рекурсивного оператора.
Одно из следствий из этого определения будет состоять
в следующем: предположим, что Ф(/) (х) = у вычисляется с ис-
использованием только конечной части 0 функции /; тогда если g —
любая другая функция, имеющая 0 в качестве конечной части,
то должно выполняться соотношение ®(g)(x) = y.
Для того чтобы придать этому определению точный смысл,
условимся о некоторых технических деталях. Прежде всего
договоримся о том, что под «конечной частью» функции / пони-
понимается некоторая конечная функция 0, которая продолжается
до /. (Функция 0 называется конечной, если ее область опре-
определения есть конечное множество.) Для удобства условимся,
что всюду в этой главе буква 0 обозначает конечную функцию.
Из приведенных выше соображений ясно, что в определе-
определении рекурсивного оператора должны участвовать эффективные
вычисления с конечными функциями. Придадим этому точный
смысл, закодировав каждую конечную функцию 0 числом 0
и применяя обычную теорию вычислимости. Удобный для на-
пш\ целей кодирующий алгоритм определяется следующим
образом. Пусть 0€<ГЯ. Набор из п чисел х = (хи ..., хп)
кодируется числом <х> = p*i + 1p%*+1.. .p*n+1. Поэтому для дан-
данного 0 мы положим
0= П Р<{х>+1 при условии, что Dom@)^0,
jreDom (в)
0 = 0, если Dom@)=0
(причем в этом случае 0 = /0).
Имеется простая эффективная процедура, с помощью которой
можно для любого числа z определить, верно ли, что z =*9
Для некоторой конечной функции 0, и, если ответ на этот
7 >h 862
194 Гл. 10. Эффективные операции на множестве частичных функций
вопрос положителен, выяснить, принадлежит ли некоторое
заданное х множеству Dom(9), и если да, то вычислить зна*
чение 0(лг).
Сформулируем теперь наше определение.
1.1. Определение. Пусть Ф: ?т —> ?п. Тогда Ф называется.
рекурсивным оператором, если существует вычислимая функ-*
ция Ф(г, х), такая, что для всех /€<FOT и лг?№, y(zN
Ф(/)(лг) тогда и только тогда, когда существует конечная
функция 0 s/, такая, что Ф@, х)~у
(Заметим, что от функции Ф не требуется, чтобы она была то*
тальна.)
1.2. Пример. Оператор Ф(/) = 2/ является рекурсивным one
ратором. Чтобы убедиться в этом, положим
( 20 (а:), если г = 0 и *€Dom@),
\ не определена в остальных случаях.
В силу тезиса Чёрча функция ф вычислима. Далее, для лк>
бых /, х, у мы имеем
)y&x€Dom(f) и y=2f(x)
существует 0 s/, для которой x?Dom@) и y = 2Q(x)
& существует 9д/, для которой Ф@, х)~у.
Отсюда Ф—рекурсивный оператор.
Другие примеры мы приведем ниже в п. 1.6.
Важное свойство рекурсивных операторов состоит в том
что они непрерывны и монотонны в следующем смысле.
1.3. Определение. Пусть Ф: ?т—+?п — некоторый оператора
(a) Ф называется непрерывным, если для любой функцш
? и любых jc, у: Q)(f)(x)~y тогда и только тогда, когд*
существует конечная функция 0 s/, такая, что Ф@) (х) си у^
(b) Ф называется монотонным, если для любых /, g??m
таких, что /sg, выполняется условие O(f)sO(g).
Для рекурсивных операторов эти свойства легко провел
ряются, и поэтому с их помощью можно выяснять, являете
ли тот или иной оператор рекурсивным.
1.4. Теорема. Любой рекурсивный оператор является непр§
рывным и монотонным.
Доказательство. Пусть Ф: Wm -+?n — рекурсивный опер?
тор, которому, согласно определению, соответствует вычисл1
мая функция ф. Предположим, что Ф (f)(x)~ у, и пусть фут
/. Рекурсивные операторы * 196
ция Q^f такова, что Ф(9, х)~у. Учитывая, что 9^9, мы
немедленно получаем, что Ф(в)(х)~у. Обратно, если 9д/
и Ф(в)(х)~ у, то существует 9^9, такая, что <t>(Qlt х)~у,
но тогда 9j s / и тем самым Ф([) (х) ~ у. Следовательно, функ-
функция Ф непрерывна.
Монотонность следует непосредственно из непрерывности:
предположим, что / ^ g и ФA)(х)~у. Возьмем такую функ-
функцию 9^/, что Ф(в)(х) ~у. Тогда Ogj и в силу непрерыв-
непрерывности Ф^)(х)~у. ?
Неформально использование слова «непрерывный» для опи-
описания свойства 1.3(а) можно объяснить следующим образом.
Допустим, что оператор Ф: ?1—»?1 удовлетворяет свойству
1.3(а), и пусть fk?v Тогда для любых заданных чисел
А*р ..., xk, для которых определены значения Ф(/)(*/)A ^i^k)t
мы можем с помощью 1.3(а) получить конечную функцию 9 ^ /,
такую, что Ф(9)(*,) = Ф(/)(#,)( 1 <t <&). Таким образом, для
любых #^9 опять-таки с помощью 1.3(а) мы получаем, что
fI)(g)(*/)e(I)(/)(*/)(! <'<*). т- е- если Функция ^находится
«близко» от функции / (в том смысле, что они совпадают на
конечном множестве Dom(9)), то функция Ф(#) расположена
«близко» от функции Ф(/) (в том смысле, что они совпадают
на конечном множестве хи ..., xk). Таким образом, говоря
неформально, функция Ф непрерывна.
Условие непрерывности 1.3(а) требует, чтобы значение
Ф (/) (х) (если оно вообще определено) было определено конеч-
конечным объемом положительной информации о функции /. Поло-
Положительная информация — это те сведения о/, в которых утвер-
утверждается, что функция / определена в тех или иных точках
п принимает в них определенные значения. Этим она отли-
отличается от отрицательной информации о /, в которой указы-
указываются точки, в которых функция / не определена. На таком
языке термин «непрерывный» можно строго обосновать следую-
следующим образом.
Определим топологию положительной информации^ на ?т,
взяв в качестве базы открытых окрестностей множества вида
{Ун = {/|9с=/} (Q??m конечна).
Другими словами, / принадлежит Uq тогда и только тогда,
когда 9 дает правильную положительную информацию о f.
Проверка того, что непрерывность оператора относительно то-
топологии положительной информации имеет место в точности
в тех случаях, когда выполнено свойство 1.3(а), является
простым упражнением.
1} Читатель, не знакомый с топологией, ничего не потеряет, если
опустит следующий текст до п. 1.6.
7»
196 Гл. 10. Эффективные операции на множестве частичных функций
Следующая теорема дает описание рекурсивных операторе;
с помощью понятия непрерывности, которое облегчает про
верку рекурсивности различных операторов.
1.5. Теорема. Пусть Ф: ?т —+ ?п—некоторый оператор. Тогдц
Ф рекурсивен тогда и только тогда, когда
(a) Ф непрерывен,
(b) функция Ф(г, х), определяемая соотношением
при
\ф(г> х) не определена при всех прочих значениях г,
вычислима.
Доказательство. Предположим, что оператор Ф рекурс*
вен, и пусть вычислимая функция фх такова, что Фф(х)~,
тогда и только тогда, когда 30@^/ и Ф1ф$ х)с^у). Бед
теперь функцию Ф, определенную в формулировке теорем!
мы получаем
Ф@, x)~y&3Ql(Qi^Q и фх@1, х)^у).
Стоящее в правой части отношение является частично разр^
шимым, поэтому по теореме 6-6.13 функция Ф вычислима.
Обратно, допустим, что выполнены условия (а) и (Ь). Тог/
с=/ и Ф(8)(лг)~0) (из (а))
^/ и ф@, х)&у) (из (Ь)),
откуда оператор Ф рекурсивен. ?
С помощью этой теоремы легко показать, что следующ|
операторы рекурсивны:
1.6. Примеры
(a) (Оператор диагонализации) Ф (/) (х) ^ f (x, x) (f € ^
Очевидно, что оператор Ф непрерывен и что функция Ф@, х).
си 0(х, х) вычислима.
(b) l
Это второй оператор, рассмотренный нами в качестве п^
мера в начале этого раздела. Как мы видели там, оператор
непрерывен, и ясно, что функция Ф@, х) ™ 2#<*9 (У) вы^
лима.
(с) Пусть функция g?!?i вычислима. Определим опера!
Ф: ?п-+?п соотношением Ф(/) = ^о/. Очевидно, что оп€1
тор Ф непрерывен и что функция Ф@, x)~g(Q(x)) выЧ|
лила.
/.• Рекурсивные операторы 197
(d) (Оператор Аккермана). Пусть оператор Ф: JF, —> ?%
задан соотношениями
1, 0)~/(*. 1),
, y+l)^f(x9 /(*+1, у)).
Для того чтобы показать, что оператор Ф непрерывен, заме-
заметим, что Ф (/)(*,#) зависит максимум от двух конкретных
значений f. Что касается рекурсивности, то из тезиса Чёрча
немедленно вытекает, что функция Ф, задаваемая соотноше-
соотношениями
ФФ> 0, */)=//+1,
Ф@, х+1, 0)~6(*, 1),
ф@, х+1, у+1)~В{х, 0(*+1, у)),
вычислима.
(е) (ц-оператор) Рассмотрим оператор Ф: ?n+i —*Fn, за-
задаваемый соотношением Ф (/) (х) ~ \лу (/ (х, у) = 0). Сразу видно,
что этот оператор непрерывен и что функция ф, задаваемая
условием
Ф@, х)~Aу(в(х, г/) = 0),
вычислима.
Если определение 1.1 рекурсивного оператора Ф: ?т —> <Г„
распространить на случай я = 0, то мы получим определение
рекурсивного функционала. Элементами §\ являются 0-местные
функции, т. е. константы. Подобно тому как ?п(п^ 1) содер-
содержит функцию, которая нигде не определена, класс §\ содер-
содержит «неопределенную» константу, которая обозначается через со.
Таким образом, JF0 = Nll {<*>}, и оператор Ф: Wm—^?Q будет
рекурсивным функционалом, если существует вычислимая функ-
функция Ф(х), такая, что для любых f?oFm и у^Ы
Ф(/)^# тогда и только тогда, когда 30@^/ и ф(ё)~у).
Если Ф(/) не определено, то мы будем писать Ф(/:) = а). Это
подчеркивает тот факт, что Ф рассматривается как тотальный
оператор.
Следует отметить, что в некоторых работах термином час-
частично рекурсивный функционал ?т—+?п обозначают рекур-
рекурсивные операторы, включающие случай а? = 0. При этом слово
«частичный» относится, скорее, к типу объекта, на котором
действует оператор, а не к области определения операции.
Мы не будем рассматривать здесь обобщения понятий этого
раздела на частично определенные операторы (так называемые
частичные рекурсивные операторы Ф: ?т —> ?п). Изложение
чгого и смежных вопросов читатель может найти в книге Род-
Роджерса [1967|.
198 Гл. 10. Эффективные операции на множестве частичных функций
1.7. Упражнения
1. Покажите, что следующие операторы рекурсивны:
)Ф(/) р (f^)
(b) Ф(/) = ? (f??n), где g — некоторая фиксированная вы-
вычислимая функция из dFj.
(c) (b(f) = fog (/gjF,), где g есть некоторая фиксированная
вычислимая функция из ?п.
(d) Пусть h??n+y—фиксированная вычислимая функция.
Определим оператор Ф: ?п+1 —> ?п+1 соотношением
10, если h(x, y) = 0,
f(x+\, у)+\, если h(xt у) определено и Ф0,
не определена в остальных случаях.
(Смысл этого оператора станет ясен ниже.)
2. Докажите, что если Ф есть рекурсивный оператор и функ-
функция / вычислима, то вычислима и функция Ф(/).
3. Будут ли следующие операторы Ф: <F, —+ ?, (i) моно-
монотонными, (и) непрерывными, (Hi) рекурсивными.
|/(а'), если множество Dom (/) конечно,
не определена, если множество Dom (f) бес-
бесконечно.
( 0, если f(x) определена,
(Ь) Ф (/)(*)= \
\ не определена в остальных случаях.
( 0, если f(x)?K
1, если f(x)^K
не определена в остальных случаях.
не определена, если множество Dom(/) ко-
(с) Ф (/)(*) =
\&К I f еСЛИ '^ опРеделена»
(
\ ) К1)\ ) — | j^x^ если множество
конечно.
4. Пусть Ф: ?т—+?п и ?: ?п-+?р — рекурсивные опе-
операторы. Докажите, что оператор ? о Ф: ?т —> ?р рекурсивен.
5. Покажите, как можно обобщить определение рекурсив-
рекурсивного оператора на операторы Ф: ?т%х?щ2х ... x?mfi —* ?п
и докажите соответствующие обобщения теорем 1.4 и 1.5..
Докажите, что следующие операторы рекурсивны:
(a) Ф: ?хх?„-+?„, где Ф(/, g) = fog (ср. с упр. 1с).
(b) Ф: ?n+1x?n+i-+?n+u где
0, если h (x, у) = 0,
f{x+\,y)+l, если h (х, у) определено и Ф 0,
не определено иначе
(ср. с упр. Id).
2. Эффективные операции над вычислимыми функциями 199
6. (Для тех, кто немного знаком с топологией.)
(a) Докажите, что оператор непрерывен в смысле опреде-
определения 1.3(а) тогда и только тогда, когда он непрерывен в то-
топологии положительной информации.
(b) Докажите, что следующие условия эквивалентны для
(i) V открыто в топологии положительной информации,
(ii) f?V тогда и только тогда, когда 30(9^/ и 9^ V).
7. Пусть Ф: ?т—+?п и W: ?п~^?р— непрерывные опе-
операторы. Докажите, что оператор ?оФ: ? т —+ ?р непрерывен.
8. Пусть 9* (N) обозначает класс всех подмножеств N. Сфор-
Сформулируйте определение рекурсивного оператора Ф: 5*(N)—>*<5*(N),
аналогичное определению рекурсивного оператора из ?1—^?1.
Сформулируйте и докажите теоремы, соответствующие теоремам
1.4 и 1.5. (Указание. Вопрос о принадлежности х?Ф(А) должен
эффективно зависеть от конечного объема положительной ин-
информации о принадлежности х множеству Л.)
(Эффективные операторы 3* (N) —* 3* (N) называются опера-
операторами перечисления и подробно рассматриваются у Роджерса
[1967].)
2. Эффективные операции над вычислимыми
функциями
В § 3 гл. 5 мы отмечали, что некоторые операции над
вычислимыми функциями можно было бы называть эффектив-
эффективными, так как они могут быть заданы тотальными вычисли-
вычислимыми функциями, действующими на индексы. Например, в при-
примере 5-3.1B) мы видели, что существует тотальная вычислимая
функция g, такая, что при всех e?N имеем {ФеJ = Фе{е)-
В этом разделе мы убедимся в том, что любой рекурсивный
оператор Ф, будучи ограничен областью вычислимых функций,
дает на индексах эффективную операцию такого рода. В этом
заключается первая часть теоремы Майхилла и Шепердсона.
Кроме того, они доказали, что таким образом возникают все
подобные операции на вычислимых функциях.
Мы докажем обе части результата Майхилла—Шепердсона
по отдельности, начиная с более простой первой части.
2.1. Теорема (Майхилл — Шепердсон, часть I). Пусть W: ?т —+
—-> ?п есть рекурсивный оператор. Тогда существует тоталь-
тотальная вычислимая функция Л, такая, что
Доказательство. Пусть ^ — вычислимая функция, показы-
показывающая, что, согласно определению 1.1, ? является рекурсив-
200 Гл. 10. Эффективные операции на мноокестве частичных функций
ным оператором. Тогда для любого е
У(Ф(вт))(х) ^ у» 36 (в е#Г и *(в, х) ~ у).
Мы покажем, что функция g, определенная соотношением
g{e, x)^
вычислима, доказав, что отношение g(e, х)~у частично раз-
разрешимо. С этой целью рассмотрим отношение R (г, е, х, у),
задаваемое следующим образом:
/? (г, еу лг, г/) = 39(г = е и в s ФГ и яр (в. лг)~*/).
Тогда отношение /? частично разрешимо с помощью следующей
неформальной частичной разрешающей процедуры:
A) Выясним, верно ли, что при некотором 9 выполняется
соотношение г = 0. Если да, то найдем хи ..., лт^б^ и
Ух Ун* такие, что Dom@) = {jr1 xk\ и 6^) = ^
A <i<ft). Затем
B) при t=l, ..., k вычислим ФТ]{х()\ если для l^t^fe
значения Ф{ет1(Х{) определены и равны yh то
C) вычислим г|?(г, х), и в случае, если это значение опре-
определено, проверим, верно ли, что оно равняется у.
Если утверждение R(zy et x, у) истинно, то с помощью этой
механической процедуры, мы узнаем об этом за конечное время,
как и требовалось.
Поскольку отношение R(z, e, х, у) частично разрешимо, то
частично разрешимо и отношение Эг/?(г, et x% у) (по теореме
6-6.5), но
3zR(z, et x, у)^х?(Ф^)(х)са у (из определения R)
x)~y (из определения g).
Таким образом, отношение g(e, x)cx.y частично разрешимо,,
и, следовательно, по теореме 6-6.13 функция g вычислима.
Воспользуемся s-m-n-теоремой и возьмем такую тотальную
вычислимую функцию ft, что
откуда мы и получаем, что Ф{?\е, = V (ФТ])* П
Заметим, что функция /г, даваемая этой теоремой для лю-
любого рекурсивного оператора W: Srl—^SrXi является экстен-
экстенсиональной в следующем смысле.
2.2. Определение. Тотальная функция ft: N —> N называется,
экстенсиональной, если для любых а, Ъ из Фа^Фъ следует*;
Фа (а)
2. Эффективные операции над вычислимыми функциями 201
Теперь мы можем сформулировать вторую половину резуль-
результата Майхилла и Шепердсона.
2.3. Теорема (Майхилл — Шепердсон, часть II). Пусть h —
экстенсиональная тотальная вычислимая функция. Тогда су-
существует единственный рекурсивный оператор ?, такой, что
У(Фе) = Фн(е) пРи всех е-
Доказательство. Основой доказательства является исполь-
использование теоремы Раиса—Шапиро (теорема 7-2.16).
Пусть h — экстенсиональная тотальная вычислимая функция.
Тогда h определяет следующий оператор 4V <ё1 —> %х:
Так как функция h экстенсиональна, то оператор ?0 опреде-
определен корректно. Нам необходимо показать, что существует един-
единственный рекурсивный оператор W: <F, —>? 1э который является
продолжением 4V
Заметим прежде всего, что поскольку конечные функции
вычислимы, то 4^@) определен на всех конечных 0. Таким
образом, любой рекурсивный оператор ?, продолжающий Ч^,
будучи непрерывным, должен определяться соотношением
B.4) У (/) (х) ~ у « 30 (9 s / и Уо @) (х) ~ у).
Таким образом, если такой оператор ? существует, то он един-
единствен. Для доказательства теоремы необходимо теперь пока-
показать, что
(i) Условие B.4) действительно определяет оператор Y,
(iij *? является продолжением Ч^,
(Hi) Оператор ? рекурсивен.
Прежде чем убедиться в справедливости трех этих утвержде-
утверждений, покажем, используя теорему Раиса—Шапиро, что опера-
оператор Wq непрерывен в следующем смысле: для вычислимых функ-
функций /
B.5) Уо (/) (х) ~ у & 30 @ с= / и V» @) (х) ~у).
Зафиксируем *, у и положим A=-{f? %x l^ (f)(x) c^ у}. Тогда
множество A = {e\<t>e€<A) = {e\4>h{e)(х) ~у} р. п. Отсюда по
теореме Раиса — Шапиро если функция / вычислима, то
/€^^Э0@с=/ и 0?е/О,
что в точности совпадает с B.5).
Докажем теперь утверждения (i), (ii) и (iii).
(i) Пусть / — любая частичная функция. Нам необходимо
показать, что для любого х соотношение B.4) определяет
^ (/)(*) однозначно (если оно вообще определено). Допустим,
что 9lf 02Е/ и что WQ(Q1)(x)a^yi9 а ?о@а)(х)^ у%. ВозьмвМ
202 Гл. 10. Эффективные операции на множестве частичных функций
конечную функцию 0, такую, что бэ^, 92 (скажем, 9 =
= /100111(8!) U Dom@2)). Из соотношения B.5)
ух ?* ?0 (9,) (х) ~ ?0 (8) (х) - ?0 (в,) (х) ~ у%.
Тем самым условие B.4) определяет оператор Y однозначно.
(ii) Это утверждение следует непосредственно из B.5) и
определения B.4).
(Hi) Покажем, что оператор W удовлетворяет условиям
теоремы 1.5. Из определения ясно, что оператор W непреры-
непрерывен. Остается проверить выполнение условия, состоящего в том,
что функция i|), задаваемая соотношением
\|>(z, х) не определена, если z =^9,
вычислима. Теперь, пользуясь тезисом Чёрча, легко видеть, что
существует вычислимая функция с, такая, что для любой
конечной функции 9 число с (9) является индексом 9, т. е,
9 = фс(ф. Таким образом,
¦ (В, х)~Ч(Фе{§))(х)~Фь{е{Ъ))(х),
и, следовательно, из вычислимости h и с вытекает вычисли-
вычислимость i|). Отсюда W — рекурсивный оператор. ?
Замечания
1. На самом деле доказательство теоремы 2.3 показывает,
что для любой экстенсиональной вычислимой функции h суще-
существует единственный непрерывный оператор W: ?х —+?х> такой,
что у?(Фе)==Ф?1{е) ПРИ всех в» и что этот оператор рекурсивен.
2. Теорема 2.3 естественным образом обобщается на опе-
операторы из ?т —+ ?п. Доказательство почти идентично прове-
проведенному выше (необходимо использовать естественное обобще-
обобщение теоремы Раиса — Шапиро на подмножества #J (см. ниже
упр. 2.6B)).
2.6. Упражнения
1. Пусть Ф, У—рекурсивные операторы ?1—+?1. Зная,8
что оператор Ф о Y непрерывен (упр. 1.7G)), воспользуйтесь
обеими частями теоремы Майхилла — Шепердсона, а также пер-
первым из приведенных выше замечаний и покажите, что опера
тор Фо Y рекурсивен.
2. Сформулируйте и докажите общий вариант теоремы 2.^
для операторов из %т —* #„.
3. Сформулируйте и докажите обобщения обеих частей тео
ремы Майхилла—Шепердсона на операторы, определение кото
рых требовалось дать в п. (а) упр. 1.7E) и в п. (Ь) упр. 1.7 (8|
3. Первая теорема о рекурсии 203
3. Первая теорема о рекурсии
Первая теорема о рекурсии Клини представляет собой тео-
теорему о неподвижной точке для рекурсивных операторов, и ее
зачастую называют также теоремой о неподвижной точке (из
теории рекурсии). Как мы увидим ниже, это очень полезный
результат.
3.1. Первая теорема о рекурсии (Клини). Пусть Ф: ?т —* ?т
есть рекурсивный оператор. Тогда существует вычислимая функ-
функция /ф, которая является наименьшей неподвижной точкой для
Ф, т. е.
(a) Ф(/ф) = /ф,
(b) если <b(g) = gt то fo = g.
Отсюда если функция /ф тотальна, то она является единст-
единственной неподвижной точкой Ф.
Доказательство. Используя свойства непрерывности и мо-
монотонности Ф, мы следующим образом построим наименьшую
неподвижную точку /ф. Определим последовательность функ-
функций {/„} (fl^N) соотношениями
/о = /0 (функция с пустой областью определения),
Тогда fo = f0^fl и из fn^fn+l в силу монотонности следует,
что^я+1 = Ф(^ = Ф(/я+1) = /я+1. Таким образом, fn<=fn+l при
всех п. Положим теперь
/ф= U /„•
Это означает, что
1ф(х)~у& тогда и только тогда, когда
3/1 такое, что /„ (лг) ~ у.
Покажем, что /ф есть неподвижная точка Ф.
При всех п имеем /„^/ф, откуда
и, таким образом, /ф^(/
Обратно, предположим, что Ф (/Ф) (лг) ~ у\ тогда сущест-
существует конечная функция 6 s /ф, такая, что Ф (9) (лг) ~ у. Возь-
Возьмем такое п, что 8 ^/„. Тогда из непрерывности следует, что
Ф(/J (Х) ~ */, т. е. fn+l{x)czy. Отсюда [ф{х)ыу. Таким
образом, Ф(/ф)^/ф, и, значит, как и требовалось доказать,
/ф) /ф
Чтобы убедиться в том, что /ф есть наименьшая неподвиж-
неподвижная точка Ф, предположим, что Ф (#) = ?. Тогда ясно, что
204 Гл. 10. Эффективны* операции на множестве частичных функций
/0 = f0 s g, и по индукции мы получаем, что /„ s g при всех п.\
Отсюда /ф ? g, что и требовалось доказать. Кроме того, есл#
функция /ф тотальна, то /o^g, так что/ф является единствен-,
ной неподвижной точкой Ф. >
Покажем, наконец, что функция /ф вычислима. Пользуясь1
теоремой 2.1, возьмем тотальную вычислимую функцию А, такую,
что Ф(Ф^) = ФЛ(^ при всех е. Пусть е0 —индекс /0. Определим;
вычислимую функцию k соотношением
Тогда fn = <l>k(n) ПРИ всех п и» таким образом,
Соотношение в правой части частично разрешимо, откуда и
следует, что функция /Ф вычислима. ?
Замечание. В этом доказательстве рекурсивность оператора Ф
использовалась только для того, чтобы показать, что функция
/ф вычислима. Первая же часть доказательства показывает,
что любой непрерывный оператор имеет по крайней мере одну
неподвижную точку.
Следующие примеры показывают, что у рекурсивного опе-
оператора может быть много неподвижных точек и что наимень-
наименьшая неподвижная точка не обязательно будет тотальной функ-
функцией.
3.2. Примеры
1. Пусть Ф—рекурсивный оператор, задаваемый соотноше-
соотношениями
Ф(/)@)=1,
O{f)(x+l)~f(x+2).
Тогда наименьшей неподвижной точкой Ф будет
\ /ф@)=1,
\
\
\ /ф(*+1) = не определено.
Другие неподвижные точки Ф имеют вид < .
I / \Х "Г 1) =* О"
2. Напомним определение функции Аккермана \|э из при
мера 2-5.5:
1),
, у)).
3. Первая теорема о рекурсии 205
С помощью первой теоремы о рекурсии можно аккуратно до-
доказать, что эти уравнения на самом деле определяют единствен-
единственную функцию \|э и что У тотальна и вычислима. Пусть Ф —
оператор Аккермана, определенный в примере 1.6 (d). Непо-
Неподвижными точками Ф будут функции, удовлетворяющие напи-
написанным выше уравнениям. Положим 1|) = /ф; тогда \|? есть вычис-
вычислимая функция, удовлетворяющая этим уравнениям, и остается
лишь показать, что функция \|? тотальна. Ясно, что значения
ф@, у) определены при всех у. Если значения \|?(х, у) опре-
определены при всех у, то, проводя индукцию по у, мы видим,
что значения ty(x+ 1, у) тоже определены при всех у. Отсюда
у\)(х, у) определена при всех х, у и, стало быть, является
тотальной.
3. Пусть h(x, у)— некоторая фиксированная вычислимая
функция, и пусть Ф — рекурсивный оператор, определенный
в упр. 1.7(ld). Тогда наименьшей неподвижной точкой для
него будет вычислимая функция /ф, удовлетворяющая соотно-
соотношениям
10, если h(x, Д>) = 0,
/ф (х + 1, у) + 1, если h (х, у) определена и Ф 0,
не определена иначе.
Но что же представляет собой эта довольно странно выглядя-
выглядящая функция? Без большого труда мы сейчас убедимся в том,
что
!Ф(х, y)~vz(h(x + z, y) = 0).
Предположим сначала, что \iz (h(x + z, y) = 0)=*m; тогда функ-
функция h(x + z, у) определена и не равна нулю при всех z < m,
a h (x + m, y) = 0. Отсюда
, y) + z
Предположим, с другой стороны, что fq>(x, y) = m. Тогда,
согласно нашим уравнениям, это должно выполняться, по-
поскольку
m = f<t>(x, y) = fo(x+l,y) + l = ... =/ф(х + т, у) + т
и функция h(x + z, у) определена и не равна нулю при всех
г < т. Отсюда /ф(х + /п, ^) = 0и, следовательно, h(x + m,y)~0.
Таким образом, т = |яг(Л(л; + г, дО = 0).
Из последнего примера можно сделать вывод, что функция
/ф@, у) ~\iz(h(z, y)~0) вычислима. Разумеется, это вовсе не
означает, что мы получили новое и более оригинальное дока-
206 Гл. 10. Эффективные операции на множестве частичных функций
зательство замкнутости множества % относительно ц-операции,
поскольку это свойство # было неявно использовано при дока-*
зательстве первой теоремы о рекурсии. (В исчислении равенств-"
Клини (см. § 1, гл. 3), однако, первая теорема о рекурсии^
доказывается без использования (я-оператора, и в этом случае"
замкнутость множества # относительно (^-оператора может быть
получена с помощью последнего примера.)
Из приведенных примеров видно, откуда происходит на-
название «первая теорема о рекурсии». Основная идея рекурсии
состоит в том, чтобы определять функцию «в терминах ее самой».
Простым примером этого была примитивная рекурсия, рассмот-*
ренная нами в гл. 2. С более общими видами рекурсии мы
встречались в определениях функции Аккермана и функции /ф
из примера 3.2C).
В гл. 2 мы смогли довольно легко убедиться в том, что
определения, даваемые в терминах примитивной рекурсии, имеют
смысл. В случае более сложных рекурсивных определений это
не так очевидно — вполне можно представить себе, что функ-
функций, удовлетворяющих тому или иному определению, вообще
не существует. Именно здесь оказывается полезной первая
теорема о рекурсии. Рекурсивные определения весьма общего
типа могут быть представлены уравнением вида
C.3) / = Ф(/).
где Ф—некоторый рекурсивный оператор. Первая теорема
о рекурсии показывает, что такое определение имеет смысл:
всегда существует даже вычислимая функция, которая ему удов-
удовлетворяет. Поскольку в математике требуется, чтобы опреде-
определения описывали различные понятия однозначно, можно сказать,
что рекурсивное определение C.3) определяет наименьшую
неподвижную точку оператора Ф. Таким образом, согласно
первой теореме о рекурсии, класс вычислимых функций зам-
замкнут относительно рекурсивного определения очень общего
типа.
3.4. Упражнения
1. Найдите наименьшую неподвижную точку следующих
операторов:
(а) Ф(/) = / tf€ff\);
I 0, если х = 0,
-j 2*-1+/(*_1), если;с>0;
I 0 если а: = 0
4. Приложение к семантике языков программирования 207
2. (Маккарти) Покажите, что функция т(х), заданная урав-
уравнением
I 91, если х< 100,
т{х) = <
{ х— 10 иначе,
является единственной неподвижной точкой рекурсивного опе-
оператора Ф, определенного следующим образом:
1
l х- 10 иначе.
3. Пусть Ф и Y — рекурсивные операторы ?xx?i —»?t
(в смысле определения, которое требовалось сформулировать
в упр. 1.7E)). Покажите, что существует наименьшая пара
функций /, g, такая, что
и обе функции fug вычислимы.
4. Пусть Ф: ?пх?т —»?п есть рекурсивный оператор
(в смысле определения, которое требовалось сформулировать
в упр. 1.7E)). Для любой функции g??m определим опера-
оператор Ф^: ?п —> ? п соотношением Фе(П = Ф(}, g). Покажите, что
оператор «?(#) = наименьшая неподвижная точка Ф^» является
рекурсивным оператором ?т —* ?п.
4. Приложение к семантике языков
программирования.
В этом разделе мы увидим, как первая теорема о рекурсии
помогает решать проблему семантики языков программирова-
программирования, т. е. той области, которая занимается вопросом придания
смысла программам. Наше изложение будет вестись в терминах
некоторого общего, явно не описанного языка программирова-
программирования, но для того, чтобы объяснить основную идею, этого будет
достаточно.
Итак, пусть L — некоторый общий язык программирования.
Основные символы языка L выбираются, имея в виду некото-
некоторый их конкретный смысл; поэтому смысл будут иметь и более
сложные выражения, построенные из этих элементарных. Мы
можем представить себе следующую простую программу вычис-
вычисления функции. Пусть т(лг) есть некоторое выражение из L,
такое, что если всем переменным х придать некоторые кон-
конкретные значения а, то т(а) может быть однозначно вычислено
согласно правилам семантики языка L. Если теперь взять в L
символ функции /, который не входит в т, то
D.1)
208 Гл. 10. Эффективные операции на множестве частичных функций
будет простой программой для функции /т, которая имеет сле-
следующий очевидный смысл: для любых чисел а значение /т(а)
получается путем проведения операций, соответствующих вы-
выражению т(а) согласно правилам семантики языка L.
Допустим теперь, что т—такое выражение, в которое входит
символ /. Мы будем в таких случаях писать т(/, х). Тогда
программа D.1) приобретает вид
D.2) f(x) = T(f, х).
Такие программы называются рекурсивными. Во многих
случаях именно таким образом естественнее и экономнее всего
описываются функции, которые мы хотим вычислить. Тем не
менее в случае D.2) смысл слова «программа» не вполне ясен.
Основной вопрос для любой рекурсивной программы заклю-
заключается в том, как придать ей точный смысл? До тех пор пока
он не решен, ее вообще трудно называть программой.
В принципе имеются два способа ответить на этот вопрос:
(a) Вычислительный метод. В этом варианте функция, ко-
которую необходимо определить с помощью рекурсивной про-
программы, задается в терминах метода ее вычисления. В этом
подходе находит отражение тот факт, что специалисту по ЭВМ
необходимо не только знать, что означает программа, но и
как ее использовать.
(b) Метод неподвижной точки. В этом случае рекурсивной
программе придается смысл с помощью первой теоремы о ре-
рекурсии. При таком подходе решаются и некоторые проблемы
вычислительного метода, и в действительности оказывается, что
оба метода можно считать, скорее, дополняющими друг друга,
чем противоречащими один другому.
Изложим вкратце оба метода и посмотрим, как здесь рабо-
работает первая теорема о рекурсии.
Вычислительный метод. Проще всего объяснить его на
примерах. Рассмотрим рекурсивную программу
( 1, если х=*0,
D.3) /() (
2/(ж-1), если х > 0.
(Предполагается, что на языке L можно формулировать услов-
условные выражения такого типа.) С помощью уравнения D.3) можно
формально вычислить значение /C). Например, это можно сде-
сделать следующим образом:
/C)~2х/B)~2х2х/A)~2х2х2х/@)~8.
(Мы проделали формальные подстановки и вычисления, поль-
пользуясь уравнением D.3)). Отсюда если функция /т определяется
программой D.3), то должно выполняться равенство /хC)»8.
4. Приложение к семантике языков программирования 209
Для более сложных рекурсивных программ может иметься
более чем один способ использования формального уравнения
/(лг)=*т(/, х) в процессе вычислений. Рассмотрим, например,
рекурсивную программу
\ 1, если А' = 0,
D.4) 1(Х'У)=\ f(x_l9 /(JC| y))$ еслих>0.
Предположим, что мы хотим формально вычислить значение
/A, 0). Имеем
D.5) /A,0)~/@,/A,0)).
В правой части / у нас встречается дважды, и в нашей власти
выбрать, какое из мест взять для подстановки т(/, х). Если
взять левое /, то после соответствующих преобразований мы
получаем
/A, 0)~/@, /A, 0))=1 (так как х = 0).
Если же мы каждый раз будем заменять самый правый из
символов /, то уравнение D.5) дает
/A,0)~/@,/A,0))~/@,/@,/A,0)))
-/@,/@, /@, /A,0))))-...,
и в этом случае для /A, 0) не получится никакого результата.
Правилом вычисления называется правило R, указывающее,
как надо поступать, если в ходе вычислений возникла неод-
неоднозначность выбора возможных вариантов подстановки. Для
рекурсивной программы D.4) мы сформулировали два правила:
правило «крайне левого» (LM) члена и правило «крайне пра-
правого» (RM) члена. Возможны и другие правила. Для любого
правила вычислений R и рекурсивной программы f{x) = T(f, x)
определим функцию /т, я следующим образом: /т, я (а) есть зна-
значение, полученное при формальном вычислении /(а) с помощью
правила R. Если при этом не получается никакого значения,
10 /т. я (#) считается неопределенным. (Тем самым для рекур-
рекурсивной программы D.4) /т, lm A, 0)= 1, и /т, ям A, 0) не опре-
определено.)
Таким образом, каждое правило вычисления придает смысл
любой рекурсивной программе (и в то же самое время опре-
определяет метод ее использования).
Приведенный выше пример показывает, что различные пра-
правила вычисления могут придать различный смысл каждой
конкретной рекурсивной программе. Проблема, стоящая перед
специалистом по ЭВМ, избравшим вычислительный метод, со-
состоит тогда в том, чтобы решить, какое из этих правил выб-
выбрать. Кроме того, для любого правила R имеется вопрос
210 Гл. 10. Эффективные операции на множестве частичных функций
о том, в каком смысле функция fXtR удовлетворяет уравнени*
/(ЛГ)~т(/, X).
Метод неподвижной точки, в котором используется первая
теорема о рекурсии, дает возможность избежать этих вопрЫ
сов, и в действительности, как мы сейчас увидим, проливает
свет на обе эти теоремы.
Метод неподвижной точки. Выражение т(/,лг) языка/^
определяет оператор Ф: ?п —* <Г„, такой, что
O(g)(x)~T(g, х)
для любой функции g€<Fn. Кроме того, в большей части язы^
ков программирования конечный и явный характер выражения!
т(/, х) гарантирует, что оператор Ф является рекурсивнш
оператором. Тогда первая теорема о рекурсии говорит нам
о том, что Ф имеет вычислимую наименьшую неподвижную
точку, которую мы можем обозначить через /х- Таким обра*
зом, мы можем определить функцию, даваемую программой D.2]j
как /т. Это довольно разумно, так как функция /х является
вычислимой, и, кроме того, мы знаем, что fx (х) ~ т(/т, х);
а это и есть как раз то самое соотношение, выполнение котоЦ
рого было желательно для программиста.
Тут остается открытой проблема нахождения хороших пра*
ктических процедур для реализации программы D.2) в только
что определенном смысле. Можно показать, что для любого"
правила вычисления R имеет место включение fT, r ^ fr\ кроме
того, существуют правила вычисления /?, для которых fTtR=zfe
при всяком т. Любое из этих правил можно выбрать в каче-
качестве практического средства реализации рекурсивных программ/
Теперь мы можем сказать, что вычислительный метод и метод
неподвижной точки скорее взаимно дополняют друг друга
нежели противоречат один другому: подход, основанный ни
неподвижной точке, с помощью первой теоремы о рекурси!
дает теоретическое обоснование выбранного конкретного пра<
вила вычисления.
У метода неподвижной точки (или эквивалентного ему пра*
вила вычисления) есть и другие преимущества: существуем
много полезных способов доказательства по индукции корректз
ности, эквивалентности и других свойств программ с семанти-
семантикой неподвижной точки, и они могут быть строго обоснованы!
Для более полного ознакомления с этими вопросами чита
тель отсылается к книгам Берда A976) и Манна A974). Здес!
мы несколько упрощенно очертили проблематику, с которо!
имеет дело программист-теоретик; в действительности выбирав
мая им неподвижная точка tx является наименьшей в слепЦ
ином смысле (хотя все еще связанном с одним вариантом пер]
вой теоремы о рекурсии).
Глава 11
Вторая теорема о рекурсии
Первая теорема о рекурсии вместе с теоремой Майхилла —
Шепердсона из предыдущей главы показывают, что для вся-
всякой экстенсиональной тотальной вычислимой функции / най-
найдется число я, такое, что Ф/{п)=Фп.
Вторая теорема о рекурсии утверждается, что такое п суще-
существует, даже если функция / не экстенсиональна: мы докажем
это в § 1 настоящей главы.
Эта теорема (и ее доказательство) может сначала пока-
показаться несколько странной. Тем не менее она играет важную
роль в более развитой теории вычислимости. Мы используем
ее в обещанном доказательстве теоремы Майхилла (теорема 9-3.5)
и в доказательстве теоремы об ускорении в следующей главе.
В § 1 после доказательства простейшего варианта второй
теоремы о рекурсии мы опишем некоторые ее применения и
интерпретации; § 2 посвящен обсуждению идеи, лежащей в основе
доказательства этой теоремы, и других вопросов, включая
отношение между двумя теоремами о рекурсии. Более общая
версия второй теоремы о рекурсии доказывается в § 3 и исполь-
используется в доказательстве теоремы Майхилла.
1. Вторая теорема о рекурсии
Сначала докажем эту теорему, а затем посмотрим, как
можно ее понять.
1.1. Теорема (вторая теорема о рекурсии). Пусть f—тоталь-
f—тотальная одноместная вычислимая функция; тогда существует число
//, такое, ф/ш = фп.
Доказательство. По s-m-я-теореме существует тотальная
вычислимая функция s(x), такая, что для всех х
(Если Фх(х) не определено, то мы считаем, что выражение
в левой части (*) не определено; иначе говоря, левую часть (*)
можно обозначить через *|>и(/(Ф*М)» у)-)
Возьмем теперь какой-нибудь номер т функции s, т. е.
такое /и, что з = Фт\ переписывая (*), получаем
212 Гл. 11. Вторая теорема о рекурсии
Теперь, полагая х = т, а п = фт(т) (правая часть последней
равенства определена, так как функция s = <f>OT тотальна), полуЗ
чаем Ф7 (я) (у) ~ Фп ((/), что и требовалось. ?
Вопреки первому впечатлению эта теорема не является под}
линной теоремой о неподвижной точке: функция / не индуцируем
отображение Фх —*Ф/(Х) на вычислимых функциях, для кото
рого Фп можно было бы назвать неподвижной точкой. Однако
имеется индуцированное отображение программ, задаваемо^
равенством f* (Px)= Pf {х). Требование неподвижной точки дл^
f* было бы слишком сильным: это должна была быть така*
программа Р„, что f*(Pn) и Рп были бы тождественны; т. ?
f(n) = n. Но теорема 1.1 утверждает, что найдется такая прей
грамма Р„, что f(Pn) и Рп дают одинаковый эффект (в вычис*
лении одноместных функций); т. е. Ф/(„) = Ф„. Таким образоц
вторую теорему о рекурсии называют теоремой о псевдонепод.
вижной точке, а для удобства всякое число я, такое, чтЦ
ф/(п) = фпэ называется неподвижной точкой, или значением не*
подвижной точки для /.
Вторая теорема о рекурсии является утверждением об индек;
сах вычислимых функций; поэтому может возникнуть предпф
ложение, что доказательство основывается на некотором специалв^
ном свойстве выбранной нумерации программ. Однако проверку
доказательства показывает, что использовались только s-m-it
теорема и вычислимость универсальной функции; ни один из эти!
результатов существенным образом не зависит от особенности
выбранной нумерации. Более того, теорему 1.1 можно приме
нить для доказательства второй теоремы о рекурсии, соответс*
вующей любой эффективной нумерации программ; см. 1.10(9
ниже.
Имеются разные возможности обобщения теоремы 1.1, хо%
лежащая в основе доказательства идея остается прежне!
В упр. 1.10G) дается обобщение на ^-местные функции дД
k> 1; в теореме 3.1 показано, что неподвижная точка эффев
тивно вычисляется по разным связанным с / параметрам.
Этот параграф мы продолжим разбором некоторых сле^
ствий и применений второй теоремы о рекурсии.
1.2. Следствие. Если f—тотальная вычислимая функци
то существует такое число п, что W/{n) = Wn и ?/(п) = ?Э
Доказательство. Если Ф71П)=Ф„, то Wf (л)=Wn и Ef in)=En.
1.3. Следствие. Если f—тотальная вычислимая функция,
существуют сколь угодно большие числа п, такие, что ф/01)
Доказательство. Фиксируем некоторое число k\ возьми
такое число с, что Ф?ФФО9 Ф19 ..., Фк.
/. Вторая теорема о рекурсии 213
Определим функцию g следующим образом:
\ с, если x^.k\
gW = \ /W, если x>k.
Тогда функция g вычислима; пусть п является неподвижной
точкой для g. Если л<&, то Ф8(П) = ФсФФп, т. е. мы пришли
к противоречию. Следовательно, п > k, так что f(n)=^g(n) и
п является неподвижной точкой для /. ?
(В упр. 1.10(8) мы покажем, как можно модифицировать
доказательство теоремы 1.1, чтобы получить возрастающее
эффективное перечисление неподвижных точек функции /.)
Применение второй теоремы о рекурсии в сочетании с
s-m-n-теоремой резюмируется в следующем следствии.
1.4. Следствие. Пусть /(*, у)—любая вычислимая функция;
тогда существует такой индекс е> что фе(у) ~ f (е, у).
Доказательство. Применим s-m-л-теорему, чтобы получить
тотальную вычислимую функцию s, такую, что Ф5 {х) (у) с* f (х, у),
а затем применим теорему 1.1, выбрав е в качестве неподвиж-
неподвижной точки для s. ?
1.5. Примеры
(a) Существует число /г, такое, что Фп(х) = хп для всех х\
примените следствие 1.4 с /(т, х) = хт\
(b) существует такое число /г, что Wn={n}: примените
следствие 1.4 с
( 0, если у=*х\
\{х у) = {
у у' (не определена в противном случае
и найдите индекс д, такой, что Фп(у) определено тогда и только
тогда, когда # = п.
Вторая теорема о рекурсии названа так потому, что, по-
подобно первой теореме о рекурсии, она выражает очень общее
определение «по рекурсии». Рассмотрим, например, следующее
«определение» функции фе в терминах данной тотальной вычис-
вычислимой функции f\ Фе = Ф/{е). Функция фв «определена» эффек-
эффективно в терминах алгоритма для вычисления ее через саму себя
(закодированного числом е). Несмотря на то что это выглядит
как круговое определение, согласно второй теореме о рекурсии,
мы можем утверждать, что существуют вычислимые функции фв,
Удовлетворяющие такому определению.
В развитой теории вычислимости часто оказывается полез-
полезным применение даже более общего определения функции фв
«по рекурсии» вида Фe(x)~g(e, х), где g есть данная тоталь-
214 Гл. 11. Вторая теорема о рекурсии
ная вычислимая функция. Опять-таки представляем себе фущ
цию фе определенной в терминах кода своего собственно!
алгоритма. Тогда вторая теорема о рекурсии посредства
следствия 1.4 делает осмысленным также и это определен^
Этот факт мы будем использовать при доказательстве теорем
об ускорении в следующей главе.
В заключении этого параграфа приведем несколько пр*
мых, но иногда неожиданных следствий теоремы 1.1. Сначал
мы покажем, можно ли ее использовать на примере просто!
доказательства теоремы Раиса F-1.7).
1.6. Теорема. (РайеI'. Предположим, что 0с^с^, и пуст
Л = {х | ф^ € ^}• Тогда А нерекурсивно.
Доказательство. Пусть а?А, а Ь^А. Если А было 6i
рекурсивно, то функция /, заданная как
( а, если хФ А\
f(x) =
v ; \ b, если х ? А,
была бы вычислимой. Далее, / обладает свойством: х?АН
<=> / (*) (? Л для всех х.
С другой стороны, по теореме 1.1 существует число t%
такое, что Ф7 {п) = Ф„, так что / (п) ? А фф п ? А. Полученное про»
тиворечие доказывает теорему. П
Другое применение второй теоремы о рекурсии показывает*
что «естественная» нумерация вычислимых функций без повто
рений невычислима.
1.7. Теорема. Предположим, что f — тотальная возрастающей
функция, такая, что
(a) если тфп, то Ф/Ш)ФФ/{п)\
(b) f(n) является наименьшим индексом Ф/(п). Тогда функ
ция f невычислима.
Доказательство. Пусть / удовлетворяет условиям теоремы
Согласно (а), функция f(n) не может быть тождественной, та
что должно найтись число k, такое, что f(n)>n при п
а тогда, согласно (Ь), Ф/(п)ФФп при n^k. С другой сторонь
если функция / вычислима, то по следствию 1.3 существ)
такое n^k, чго Ф/(Д) = Ф„, т. е. получили противоречие.
Следующее и подобные ему применения теоремы о непо?
вижной точке можно проинтерпретировать в антропоморфна
терминах.
1) Эту теорему принято называть теоремой Раиса —Успенского—
Прим. перев.
I. Вторая теорема о рекурсии 215
Пусть Р—программа. Кодовое число, т. е. код у(Р)> можно
рассматривать как описание Р. Программу Р можно было бы
считать способной к самовоспроизведению, если для всякого
входа х вычисление Р(х) дает в результате собственное описа-
описание Л т. е. у(Р). На первый взгляд кажется трудным по-
построить самовоспроизводящуюся программу Р, так как для
построения Р нам необходимо заранее знать у(Р), а следова-
следовательно, и само Р. Тем не менее, согласно второй теореме
о рекурсии, такие программы существуют.
1.8. Теорема. Существует программа Р, такая, что Р(х){у(Р)
для всех ху т.е. программа Р является самовоспроизводящейся.
Доказательство. Если положить я=»у(Р), то, согласно
теореме, существует такое число я, что фп(х) = п для всех х.
Чтобы убедиться в этом, достаточно применить следствие 1.4
к функции /(/л, х) = т. ?
Рассмотрим теперь эту теорему под другим углом зрения.
Вспомним обозначения и терминологию гл. 5. Там мы опре-
определили тотальную вычислимую функцию а(е, х, /), которая
кодирует состояние вычисления Ре(х) после t шагов; в o(et x, t)
содержится информация о содержимом регистров и номере сле-
следующей команды, которая должна выполняться на шаге t.
Очевидно, что первые t шагов вычисления Ре(х) полностью
кодируются числом
°*(е,х, 0-Пр?Л*>0-
Назовем число o*(et х> t) кодом вычисления Ре(х) до /-го шага
(включительно). Очевидно, функция а* вычислима.
Пусть нам даны теперь тотальная вычислимая функция \|> и
программа Р. ^-анализом вычисления Р (х) мы называем код вы-
вычисления Р(х) до \|)(х)-го шага. Мы называем программу if-
интроспективной на х, если Р (х) сходится и дает на выходе
v вой собственный \|>-анализ; программу Р мы называем то-
тотально ^-интроспективной, если она ^-интроспективна при
каждом х.
1.9. Теорема. Существует тотально ^-интроспективная про-
программа Р.
Доказательство. Применим следствие 1.4 к вычислимой
Функции f(et x) = o*(et xt ip(x)) и получим такое число п, что
^W = /(«. х) = \|>анализ Рп(х). ?
Мы завершим этот параграф вымышленной историей, свя-
связанной со второй теоремой о рекурсии.
216 Гл. И. Вторая теорема о рекурсии
«Мы на войне. Готовится операция диверсии на центральна
вычислительном устройстве противника. Наши специальн
агенты смогли проникнуть сквозь линии обороны врага в чре
вычайно секретное помещение, содержащее все программы &%
Plf P2... центрального компьютера. Задание будет выполнен,
если наши агенты смогут систематически саботировать работ*
этих программ таким образом, что впоследствии ни одна ^
б
р
грамма не будет работать так, как предполагает противник
Просто уничтожить эти программы недостаточно: враг може!
вскоре обнаружить это и сумеет восстановить их. Необходим^
провести тонкое изменение каждой программы, так чтоб!
незаметно для врага компьютер давал ложные результату
Быстро и незаметно наши люди переходят к действию...
Увы, все расстраивается из-за второй теоремы о рекурсий
Какой бы систематический план для изменения программ н
был придуман, найдется эффективно вычислимая функция \
определяемая посредством /(х) = код модификации Р (х$
И тогда вступает в силу вторая теорема о рекурсии, дающа*
такое число /г, что программа Рп и ее модификация произва
дят одинаковый эффект (по крайней мере для функции одной
переменной). Операция была обречена на неудачу.
(Несколько позднее наши главные штабные стратеги ра
смотрят вопрос вербовки шимпанзе, в задачу которых в
изменение программ случайным образом...)»
1.10. Упражнения
1. Покажите, что существует номер п, такой, что фп(х)=4
2. Покажите, что существует такой номер п, что Wn = En^
- nN.
3. Покажите, что существует такой номер е, что Фв(х) = е
для всех х.
4. Существует ли такое /г, что Wn = {x\ фп(х)\}?
б. Пусть Л s #, и A = {x\xt>x?J\. Покажите, что Л^тЛ
Выведите теорему 1.6.
6. Приведите пример тотальной вычислимой функции ?
такой, что (i) если Фх тотальна, то и Ф/{х) тотальна и (ii) н|
существует неподвижной точки /г, такой, что фп тотальна.
7. Докажите вторую теорему о рекурсии для /г-местньг
вычислимых функций: если / является тотальной вычислимо^
функцией, то существует номер /г, такой, что Ф/%) = tf^-
8. Покажите, что теорему 1.1 можно усилить до следую
щей: для каждой тотальной вычислимой функции / существуй
возрастающая рекурсивная функция п (t)t такая, что для любоя
/ имеет место Фп{п = Ф/{пи))- (Указание. Исследуйте доказ?
тельство теоремы 1.1: вначале обратите внимание на то, ч*Я
2. Обсуждение 217
из нашего доказательства s-m-n-теоремы мы имеем s(x)^x для
всех х (или покажите, что, добавляя к концу программы Ps(x)
некоторые дополнительные команды, можно найти эквивалент-
эквивалентную s(x) вычислимую функцию s' (х), такую, что s' (х)^х для
всех х). Теперь видно, что для любого числа k можно указать
для s(x) индекс т ^ k. Тогда, следуя доказательству теоре-
теоремы 1.1, мы получаем, что /2 = s(m) является неподвижной точ-
точкой для / и n = s(m)^m^ k. Теперь уже нетрудно построить
требуемую функцию n(t).)
9. Докажите, что вторая теорема о рекурсии не зависит
от выбранной нами конкретной эффективной нумерации про-
программ. (Указание. Пусть б—другая эффективная нумерация
программ; пусть Qm — программа с данным кодом т в нуме-
нумерации б, а \?,Л—одноместная функция, вычисляемая програм-
программой Qm. Нам надо доказать, что для любой тотальной вычис-
вычислимой функции / найдется число п, такое, что ^/(п) = ^„. Для
этого достаточно показать, что существует вычислимая биек-
ция г, такая, что Р (x) = Qrix)\ затем достаточно доказать
существование такого /л, что Фг-чг (т) = Фт.)
10. Предположим, что в рассказанной перед этими упраж-
упражнениями истории наши агенты обнаружили, что операторы
вычислительного устройства противника стали крайне изощрен-
изощренными— у них только одна программа—универсальная програм-
программа. Могут ли наши агенты теперь полностью осуществить свою
задачу?
11. Могут ли шимпанзе преуспеть там, где специальные
агенты терпят неудачу? (Философская проблема.)
2. Обсуждение
Вторая теорема о рекурсии и ее доказательство могут на
первый взгляд показаться несколько загадочными. Однако, как
мы увидим, это доказательство является, по существу, про-
простим диагональным рассуждением, примененным к эффективным
перечислениям вычислимых функций.
Пусть h — вычислимая функция. Если Л тотальна, то пере-
перечисление ?, определенное как Е: ФЛ @), Фн A), Фн <2), ..., явля-
является эффективным перечислением вычислимых функций. Если
Л не тотальна, ее все еще можно рассматривать как перечис-
перечисление Е последовательности вычислимых функций, приняв
соглашение, что для всякого х выражение фЛ {х) обозначает
Функцию, задаваемую следующим образом:
Ф*и>(У)^Фс/(А(*). У)
/ Фнш(У)> если h(x) определено,
I не определена в противном случае.
218
Гл. П. Вторая теорема о рекурсии
Итак, если h(x) не определено, то ФН{Х) есть нигде не опр
деленная функция.
Следующая лемма показывает, что последовательность
перечисляемая функцией ft, является эффективным перечне^
нием, даже когда ft не тотальна.
2.1. Лемма. Пусть ft — вычислимая функция. Существует /f
тальная вычислимая функция ft', такая, что ft и Л' переч
ляют одну и ту же последовательность вычислимых фунщг
Доказательство, s-m-тг-теорема определяет тотальную фуя
цию ft' посредством фн> {х) (у) ~ i|^ (ft(x), */). ?
Теперь мы можем разъяснить идею, лежащую в осн?
доказательства теоремы о рекурсии. Для любого k через '
обозначим последовательность вычислимых функций, эфф
тивно перечисляемую функцией фк. Тогда список ?*0, Еи Е2,,
будет включать в себя все возможные эффективные переч|
ления вычислимых функций. Можно следующим образом д
тально рассмотреть эти перечисления (не обращая внимащ
на кружки).
Eo:
Ег:
Ек:
Ф-hw
ФфЛк)
Тогда диагональное перечисление D функций, обведенных кру?
ками в этой таблице, определяется так:
D' Ффо@)у Фф, A) • Фф%B), ••• .
Таким образом D является эффективным перечислени
заданным вычислимой функцией h(x) cz. Фх(х). Кроме того'
D имеется общий элемент с каждым эффективным переч}
лением Е\ на самом деле для любого k перечисления Он,
имеют общий (/е+1)-й элемент Ф#л<*).
Пусть теперь / — тотальная вычислимая функция. То
можно «переделать» D в перечисление
^*: Ф/(Фв@)), Ф/(ф, A)), Ф\ (Фш B)), ....
Теперь D* является эффективным перечислением вычиб
мых функций, заданных функцией f(h(x))t и, стало бь
найдется число /л, такое, что D* = Em. По лемме 2.1 мо)(
считать функцию Фт тотальной. Как отмечалось выше, у
речислений D и Ет (m+l)-Pi элемент является общим, Ti
2. Обсуждение 219
, «^) = Ф/(*я.(т». Так как Фт —тотальная функция, то число
\т) = п определено и ф„ = ф/(Л).
Это доказательство иллюстрируется следующим образом:
ффо(О)
D* = Ет:
Таким образом, п = Фт(т) является неподвижной точкой.
Замечание. Можно перефразировать это доказательство,
чтобы сделать его аналогичным стандартному диагональному
рассуждению, следующим образом. Пусть/ — такая тотальная
функция, что Ф/(П)ФФп для всех п: тогда, применяя/ к диа-
диагональному перечислению D, можно построить перечисление
D\ отличающееся от Ek на k-ы месте (выполняется требова-
требование диагонального принципа). Следовательно, D* не является
эффективным перечислением, так что функция / не может
быгь вычислимой.
Вторую теорему о рекурсии можно, таким образом, рас-
рассматривать как обобщение многих прежних диагональных
конструкций. Для иллюстрации покажем, как применить вто-
вторую теорему о рекурсии к доказательству нерекурсивности
множества /С, одному из главных диагональных доказательств.
2.2. Теорема. Множество К нерекурсивно.
Доказательство. Пусть а и Ь — такие индексы, что Wa = 0,
a Ur/b = N. Если множество К рекурсивно, то функция
{ а, если х?К,
gW==i b9 если х$К
вычислима. Заметим, что g обладает свойством Wg(x)=?Wx (по-
(поскольку x€Wgix)&Wgix} = N&g(x) = b&x$Wx). Это про-
противоречит второй теореме о рекурсии. ?
Замечание. Мы, конечно, использовали кузнечный молот,
чтобы расколоть орех. Цель этого доказательства — показать,
что всякая диагонализация скрывает в себе применение вто-
второй теоремы о рекурсии. Мы не утверждаем, что ранее про-
пройденное доказательство надо заменить этим.
Связь между двумя теоремами о рекурсии. Пусть
Ф: $'i—h*Fl является рекурсивным оператором, a h — тоталь-
ная вычислимая функция, такая, чтоФ(Фх) = Фь(х) для всех х
(как в теореме Майхилла —Шепердсона). Если п является
220 Гл. 11. Вторая теорема о рекурсии
неподвижной точкой для Л, то фН{п) = фпУ т. е. Ф(фп)=»
Таким образом, вторая теорема о рекурсии говорит нам (й
и первая теорема), что Ф имеет вычислимую неподвижн]
точку; она, однако, не говорит о том, что Ф имеет вычис!
мую наименьшую неподвижную точку. Таким образом, д|
рекурсивных операторов первая теорема о рекурсии дает н
больше информации. -
Но, с другой стороны, вторая теорема о рекурсии оди|
ково успешно применима к неэкстенсиональным вычислим!
функциям, т. е. к функциям, которые не получаются из j
курсивных операторов. Таким образом, у второй теоремь
рекурсии более широкая область применения, чем у перва
хотя в области их пересечения вторая теорема, вообще i
воря, дает меньше информации. Итак, эти две теоремы луч!
рассматривать как дополняющие друг друга, хотя Роджй
[1967] приводит аргумент в пользу того, что вторая теорё!
о рекурсии является более общей из этих двух теорем.
3. Теорема Майхилла
Теперь сформулируем и докажем обобщение теоремы U
необходимое для теоремы Майхилла. Пусть f (x, z) — TOTajf
ная вычислимая функция; теорема 1.1 показывает, что д
каждого конкретного значения параметров z существует
число /г, что фм„, *} = фл. Покажем теперь, как можно
тивно получить п из z.
3.1. Теорема (вторая теорема о рекурсии). Пусть f(x, z)&
тотальная вычислимая функция. Тогда существует тотальн
вычислимая функция п (z), такая, что ф/ {п B)i г) = фп {я)
всех г.
Доказательство. Надо просто ввести параметр в соотв
ствующие места доказательства теоремы 1.1.
Согласно s-m-tt-теореме, должна существовать тотальй!
вычислимая функция s(x, z), такая, что
(*) Ф' (Фх(х), г) = Фъ(х. г).
Теперь, снова применяя s-m-я-теорему, получаем тотальй|
ВЫЧИСЛИМУЮ фуНКЦИЮ m(z), Такую, ЧТО S(X, ?) = Фт(*)|
Переписывая (*), имеем Ф,{Фх (х), г) = ффт(х)(х). Полагая тепе
x=*m(z) и обозначая п(г) = Фпцх)(т(г)), получаем ФцП(ж),м
= фл(*), что и требовалось. ?
Теперь перейдем непосредственно к теореме Майхи/
(теорема 9-3.5).
3.2. Теорема Майхилла. Всякое креативное множество яё
ется т-полным.
3. Теорема Майхилла 221
Доказательство. Предположим, что множество А креа-
креативно, а множество В р.п.; нам надо доказать, что В^пА.
Пусть р является продуктивной функцией для А. Опре-
Определим функцию f(x, (/, z) следующим образом:
( 0, если z = p(x) и у?В,
/(*, У> z)= \
[не определена в противном случае.
Тогда / вычислима, и по s-m-я-теореме существует тотальная
вычислимая функция s(x, у), такая, что <ps {Xt y) (z) cxf{xt yt z).
Тогда, в частности,
w f {P(x)}> если у?В%
* (х, У) у 0 B ПрОТИВНОМ случае.
По второй теореме о рекурсии (теорема 3.1) существует
тотальная вычислимая функция п(у), такая, что Г
= Wn(y) для всех у. Тогда для всех у
w _ ( {Р(п(У))}> если уеВ,
nly) \ 0 в противном случае.
Теперь мы утверждаем, что
(**) У?В тогда и только тогда, когда р(п(у))$А.
(a) Предположим, что_(/?В; тогда Wn {y) = {p (п(у))}- Если
р(п(у))(^А, то Wniy)^A, так что, согласно продуктивному
свойству функций р, p(n(y))^Wn{y)t т. е. получаем проти-
противоречие, откуда р(п(у))?А.
(b) Предположим, что у^В\ тогда Wn(y) = 0gi". Со-
Согласно продуктивному свойству функции р, р(п(у))?А.
Утверждение (**) теперь установлено, так что В<ОТЛ,
поскольку функция р{п(у)) вычислима. ?
3.3. Следствие, т-степень &т содержит все креативные мно-
множества.
3.4. Упражнения
1. Докажите следующее обобщение теоремы 3.1: для каж-
каждого числа k существует тотальная вычислимая функция
n(e,z) (где z = (zlt ..., zk)) со следующим свойством: если г
таково, что <t>{ek+1)(x, z) определено для всех х, то
(Указание. Это в действительности можно вывести как след-
следствие к теореме 3.1).
2. Сформулируйте и докажите результат, усиливающий
теорему 3.1 в том же смысле, в каком упр. 1.10(8) усили-
усиливает теорему 1.1.
Глава 12
Сложность вычисления
В реальных вычислениях главный вопрос относительно
функции / состоит не в том «Вычислима ли /?», а скорей
в том «Вычислима ли / практически?». Иными словами, cyf
ществует ли программа, вычисляющая функцию / за врем^
(или в том объеме памяти), которым мы располагаем? Отве!
отчасти зависит от нашего мастерства в написании программ
и возможностей наших компьютеров; но интуитивно мы чув-
чувствуем, что имеется дополнительный фактор, который можнс
назвать «внутренней сложностью», присущей функции /,,
Обсуждать подобные вопросы позволяет теория вычислитель*
ной сложности, к рассмотрению которой мы переходим в этой
главе. Эта теория помогает в изучении более практический
аспектов вычислимости.
Применяя подход, основанный на МНР, можно измерят^
время, требуемое для вычисления каждого значения функций
по конкретной программе в предположении, что каждый шар
МНР совершается за единицу времени. Таким образом опре*
деленное время вычисления является примером меры вычисли*
тельной сложности, отражающей сложность или эффектив*
ность используемой программы. (Позднее мы рассмотрим дру|
гие меры сложности.)
После уточнения понятия сложности вычисления можн<1
исследовать задачи такого рода: «Какова внутренняя слож|
ность, присущая вычислимой функции /?» и «Можно ли найт|
«наилучшую» программу для вычисления /?».
Теория вычислительной сложности является относительна
новой областью исследования; мы представим небольшое числя
результатов, связанных с поставленными выше вопросами
В конце главы мы дадим рекомендации читателю, желающем^
подробнее изучить этот предмет.
В § 1 мы введем некоторые обозначения; после короткой
обсуждения мы покажем, что существуют произвольные слои|
ные вычислимые функции. Параграф 2 посвящен удивителц
ной и курьезной теореме об ускорении Блюма, которая,
частности, показывает, что существуют вычислимые функций
не имеющие «наилучшей» программы. В § 3 мы вводим пон||
тие классов сложности и доказываем теорему Бородина
пробелах; в заключительном параграфе мы показываем, к^
1. Сложность и меры сложности 223
можно использовать классы сложности, чтобы дать изящное
описание элементарных функций — важного подкласса прими-
примитивно рекурсивных функций.
1. Сложность и меры сложности.
Начнем с введения следующих обозначений.
1.1. Обозначения
(a) Для каждой программы Р через /(р' обозначим функцию
(число шагов, сделанное при вычислении № (х)
по программе Р, если №(х) определено;
не определена в противном случае,
= |и/(Р(лг)| за t шагов).
(b) Для каждого индекса е выражение tf] (лг) обозначает
то же, что t(pl(x). Как обычно, tp обозначает t$\ a te обо-
обозначает t{ex).
Семейства временных функций /(/° является примером меры
вычислительной сложности *). Некоторые простые, но важные
свойства этих функций даются следующей леммой.
1.2. Лемма
(a) Dom(t{en)) = Dom(<t>{en)) для всех п, е.
(b) Для каждого п предикат М (е, лг, у), определенный
посредством М(е, х, y)^t{en) (x) ~ у, разрешим.
Доказательство, (а) очевидно, (Ь) вытекает из следствия
5-1.3 (Ь). ?
Замечание. Свойство (Ь) часто используется в теории слож-
сложности; оно явно контрастирует с тем фактом, что Ф{Р](х)^у
является неразрешимым предикатом. Часто в теории сложно-
сложности рассматриваются свойства, справедливые для достаточно
больших чисел я, но не обязательно для всех п. Так мы при-
приходим к следующему определению.
1.3. Определение. Предикат М (п) выполняется для почти
всех п или почти всюду (п.в.), если М (п) выполняется для
всех, кроме конечного (включая пустое) множества, натураль-
натуральных чисел (или эквивалентно, если существует число п0, такое,
что М (п) истинно для всех п)
J) В советской литературе применяют также эквивалентный мере вы-
вычислительной сложности термин сигнализирующая функция (времени, па-
памяти и т. д.).— Прим. перев.
224 Гл. 12. Сложность вычисления
Теперь можно установить нашу первую теорему, котор?
показывает, что существуют произвольно сложные вычислимы
функции.
1.4. Теорема. Пусть b—тотальная вычислимая функция. Cj
ществует тотальная вычислимая функция /, принимающей,
только значения О, 1, такая, что если е индекс для /, т
te (л) > b (n) п. в.
Доказательство. Читатель не должен удивляться томя
что / получается с помощью диагональной конструкции. Щ
строение должно обеспечить следующее: если //(m)^ft(/n) дл,
бесконечно многих т, то / отличается от ф,- хотя бы в одно!
из этих значений. Мы определяем / рекурсией следующщ
образом.
На каждом шаге п построения / мы либо определяем индек^
/„, либо за конечный промежуток времени решаем, что in й
определено. Затем полагаем / отличающейся от ф[п (п), если |
определено. Более подробно, предполагая, что значенш
/@), ..., f(n—1) определены, полагаем
|л/[?^л и i отличается от всех ранее определенны!
значений ik и tt (n) ^.b(n)],
если такое i существует,
не определено в противном случае.
_ / 1, если in определено и Ф/л(а2) = 0,
\ 0 в противном случае.
Существует конечная процедура, которая говорит нам д4
данного t, будет ли t( (п)^.Ь(п), так как
и предикат в правой части разрешим по лемме 1.2 (Ь). След
вательно, существует эффективная процедура для решения в*
проса о том, определено ли in% и если определено, то д^
нахождения этого числа. Кроме того, если in определено, I
определено и Ф(п(п). Следовательно, / — корректно определи
ная тотальная вычислимая функция.
Пусть теперь / = Ф/, по построению e^iny если in onpj
делено. Мы покажем, что если i является таким индексом, ч
ti(m)^b(m) для бесконечно многих /п, то i = in для некот*
рого п% и, следовательно, [фе. Этого достаточно, чтобы аг
казать, что te(m)>b(m) для почти всех т.
Предположим теперь, что //(m)^ft(m) для бесконечр|
многих т. Пусть p=l +max{k\ik определено и ik < i) (n
ложим /? = 0, если нет ни одного определенного ik < i). Boaf
мем такое п, что n^i, р и 1({п)^Ь(п). Если i = ik Л
некоторого Л<п, больше доказывать нечего. Предполаг^
1. Сложность и меры сложности
225
теперь, что i?=ik Для вс^х & <п* получаем на n-м шаге:
i < п и i отличается от всех ранее определенных ik и tt {n) ^
<ft(n). Таким образом, по определению /„ величина in опре-
определена и in^i. Но поскольку п^ру то должно быть in^i.
Следовательно, in = i, как и требовалось. ?
Вообще говоря, нельзя усилить эту теорему так, чтобы
получить в заключение te(n)>b{n) для всех п\ это связано
Начало
Останов
Рис. 12а.
с тем, что для каждой функции / всегда можно написать про-
программу, быстро вычисляющую / на некотором конкретном
значении аргумента а, просто внося значение f (а) в программу.
Пусть, например, /(а)=1; пусть F—программа, вычисляю-
вычисляющая /. Тогда программа F\ основанная на блок-схеме рис. 12а,
также вычисляет функцию /\ Очевидно, что */г'(#) = Д + 3.
Таким образом, если b — такая вычислимая функция, что
Ь(х)>л:4-3 для некоторого *, то нельзя получить заключе-
заключение теоремы 1.4 с te(n)>b(n) для всех п.
8 № 862
226 Гл. 12. Сложность вычисления
-1
Используя аналогичную идею, можно написать программу,
которая быстро вычисляет / для любого данного конечного
числа значений: см. ниже упр. 1.8A). Это показывает, что
<de(n)>b(n) п.в.» является наилучшим возможным заключе-
заключением теоремы 1.4.
Другие меры вычислительной сложности. Существует
множество других естественных способов измерения сложности
вычисления; приведем несколько примеров. Для простоты
ограничим обсуждение случаем вычисления одноместных
функций.
1.5. Примеры
1.
I число переходов, сделанных1) при осуществлении
Ре(х), если Ре(х)\ч
не определена в противном случае
Эта мера тесно связана с числом петель, встречающихся при
выполнении программы Ре(х), а эта последняя мера в свою
очередь связана с временем вычисления te(x).
2.
(максимальное число, содержащееся в каком-либо ре-
регистре машины за все время вычисления Ре(х), если
не определена в противном случае.
Эта величина, очевидно, связана с объемом памяти, необхо-
необходимым для того, чтобы провести вычисление Ре{х) на реаль-
реальном компьютере.
3. С подходом, основанным на машине Тьюринга, связаны
две естественных меры сложности:
(i) число шагов в тыоринговом вычислении;
(ii) длина рабочей ленты, использованной в вычислении.
Вообще абстрактной мерой вычислительной сложности (для
одноместных функций) по определению является любое семей-
cibu функций Фе> обладающих абстрактными свойствами, при-
приведенными в лемме 1.2 для te.
1.6. Определение. Мерой вычислительной сложности называется
семейство функций Фе со следующими свойствами:
(a) Dom (Фв) = Dom (Фе).
(b) Предикат «Фе (х) ~ у» разрешим.
х) Мы полагаем здесь, что в команде перехода J (m, л, р) переход
(к команде Iр) происходит, если гт = гп\ в противном случае перехода нетй
/. Сложность и меры сложности 227
1.7. Лемма. Функции, данные выше в примерах 1.5, являются
мерами вычислительной сложности.
Доказательство. Мы дадим набросок доказательств для
примеров 1.5A) и 1.5B), оставив 1.5C) в качестве упраж-
упражнения A.8C) ниже). В каждом случае некоторого размышления
требует только пункт (Ь) определения 1.6.
A) Разрешить (т. е. выяснить истинность) предикат
«Фе(х) ~у», где Фе(х) — число переходов, сделанных при вы-
выполнении Ре(х). Предположим, что в программе Ре имеется
s команд; тогда без переходов может быть сделано самое боль-
большее s последовательных шагов вычисления Ре(х). Пусть сде-
сделано не больше \+{y+l)s шагов вычисления Ре(х). Если
Ре{х) останавливается за меньшее число шагов, то, подсчитав
число совершенных переходов, мы увидим, равно ли оно у.
В противном случае (т. е. если Ре(х) не остановилось после
\+(y+l)s шагов) в вычислении Ре(х) совершенно не менее
чем (у+\) переходов, откуда мы заключаем, что Фе(х)Фу.
B) Разрешить «Фе(х)~ у», где Фе(х) — максимальное число,
содержащееся в регистрах машины в течение вычисления Ре(х).
Положим и = р(Ре) и рассмотрим все возможные незаключи-
незаключительные состояния в программе Рес г1У ..., га^.у. Существует
s(y+l)u таких различных состояний. Запустим вычисление
Ре(х) до A +s(y+ 1)")-го шага. Если Ре(х) останавливается
после этого числа шагов или раньше, то найдем максимальное
число из содержавшихся во всех регистрах и проверим, равно
ли оно у. В противном случае (если Ре(х) не остановилось)
может иметь место одна из двух возможностей! (i) вычисление
дважды прошло через одно и то же состояние, так что Ре(х)
зацикливается и Фе(х) не определено; (ii) ни одно состояние
не повторилось, и в этом случае в некотором регистре встре-
встретилось число, большее чем у. В обоих случаях мы заключаем,
что Фе(х)Фу. ?
Заметим, что при доказательстве теоремы 1.4 мы исполь-
использовали только свойства te, данные леммой 1.2. Таким образом,
теорема 1.4 выполняется для любой меры вычислительной
сложности. Имеется много других результатов в теории вы-
вычислительной сложности, которые не зависят от какой бы то
ни было конкретной меры сложности. Такие результаты носят
название машинно-независимых. Теорема об ускорении из сле-
следующего параграфа и теорема о пробелах из § 3 являются
примерами подобных результатов.
1.8. Упражнения
1. Пусть /—тотальная вычислимая функция, принимающая
только значение 0, 1. Покажите, что для каждого т найдется
8*
228 Гл. 12. Сложность вычисления
такая программа F для вычисления /, что tF(x) ^2х + 3 для
всех х^.т. Выведите, что если Ь — вычислимая функция,
такая, что b(x)> 2x-\-3, то ограничение «для почти всех я»
в теореме 1.4 нельзя снять.
2. Пусть Фе — мера сложности, данная в примере 1.5B).
Покажите, что, когда Фе(х) определено, то Фв(л;)^тах (х, Фе(х)).
Пусть /—любая тотальная вычислимая функция, а X — ко-
конечное подмножество Doin (/). Докажите, что для / существует
программа Ре% наилучшая из возможных на множестве X
(для этой меры), т.е. Фе(х) = тах(х, Фг{х)) для х?Х.
3. Для мер сложности, данных в примере 1.5C), проверьте
лемму 1.6, выраженную в следующих терминах. Для машины
Тьюринга М обозначим через fM одноместную функцию, вычис-
вычисляемую машиной М. Покажите теперь, что
(a) Dom@A])=Dom(/A1),
(b) предикат «Фм(х)~ у» разрешим,
(i) когда
| число шагов, сделанных в вычислении fM(x)
Фм(х)=\ на машине М, если fM(x) определено;
( не определено в противном случае
(ii) когда
( длина ленты, фактически используемая 1) в вычисле-
Фм(х) = < нии fM(x) машиной М, если fM(x) определено;
( не определено в противном случае.
4. Пусть ФДл') и xVe(x) суть две абстрактные меры вычисли-
вычислительной сложности. Покажите, что Ф^ и 4fe рекурсивно связаны
в следующем смысле: существует такая рекурсивная функция г,
что для всех е
для почти всех /*, для которых A^(/г) и ^е{п) определены.
(Указание. Рассмотрим функцию г, определенную равенством
г{п, т) = max {Ф^(п), Чгв{п)\е<^п и Фе(п) = т пли Ч'Д/г) = ш}.)
Покажите, кроме того, что если Фе(п)^п и ^(п)^п
каждый раз, когда они определены, то существует рекурсивная
функция г, такая, что ^(А2)< г(Ф^(п)) и Фе (/*)< г (^
каждый раз, когда Фе(п) и Ve(A2) определены.
1) Мы говорим, что квадрат ленты используется, если его содержи-
содержимое считывается в процессе вычисления или он находится между двумя
крайними непустыми квадратами исходной ленты (включая эти крайние
квадраты).
2. Теорема об ускорении 229
2. Теорема об ускорении
Пусть Р и Q — программы для вычисления тотальной функ-
функции /, такие, что 2tQ(x)<. tp(x) для всякого х. Естественно
в этом случае говорить, что Q в два с лишним раза быстрее
или лучше, чем Р. Один пример теоремы об ускорении гово-
говорит нам, что существует тотальная функция / со следующим
свойством: если Р—любая программа для /, то найдется дру-
другая программа для /, которая в два с лишним раза лучше
на почти всех входах. Таким образом, не существует наилуч-
наилучшей программы для вычисления функции /.
Теорема об ускорении дает ускорение на любой заранее за-
заданный (вычислимый) множитель: приведенный выше пример
представляет ускорение вычисления в два раза, даваемое вы-
вычислимой функцией г (х) = 2х. Доказательство этой теоремы,
вероятно, наиболее трудное в этой книге. Сначала мы докажем
теорему о псевдоускорении, что займет большую часть вре-
времени. Затем легко выводится теорема об ускорении.
2.1. Теорема о псевдоускорении (Блюм). Пусть г—тотальная
вычислимая функция. Существует тотальная вычислимая функ-
функция f, такая, что по любой данной вычисляющей f программе Pt
можно найти программу Pj со следующими свойствами:
(a) функция <kj тотальна и Ф; = /(л:) п. в.,
(b) г (tj (х)) < tt (х) п. в.
(Замечание. Это теорема о псевдоускорении, поскольку в ней
не требуется найти <f>j(x)=*f(x) для всех х, как в случае тео-
теоремы об ускорении.)
Доказательство. Сначала надо зафиксировать конкретную
тотальную вычислимую функцию s, получаемую из s-m-/z-Teo-
ремы, такую, что Ф[Р(и, х) ~ Ф8{е% и) (х). Найдем конкретный
индекс е, такой, что функция Ф{е2) тотальна и обладает следую-
следующими свойствами (здесь мы через ga обозначаем функцию
gB{x) = 4>F(u,x)):
(a) g,, = / (функция, которую требуется найти в теореме),
(b) для каждого и имеет место ga (х) = g0(x) п. в.,
(c) если / = <?/, то для gi+l найдется индекс /, такой, что
r(tj (x)) < ti(x) п. в.; в действительности можно взять
j = s(e,i+l).
Очевидно, этого достаточно для доказательства теоремы.
На минуту представим себе е как произвольный, но фикси-
фиксированный индекс. Рассматривая и как параметр, определим
вычислимую функцию g(u,x), которая будет также явно и
эффективно зависеть от е. Для конкретного числа е, которое
мы выберем позднее, g явится определенной выше функцией ф?2).
230 Гл. 12. Сложность вычисления
Функция g определяется рекурсией по х с фиксированным
следующим образом.
При этом будут построены некоторые вспомогательны
конечные множества Cttf x вычеркнутых индексов. Будем опр$
делять значение g(u, x), считая, что значения g(u, 0), ..;
..., g(u,x—l)9 Ся§0, CBfl, ..., С„щХ_г уже определены.
Предположим, что это имеет место. Тогда множество
если ts(e% /+n определено для w<t<x;
^ не определено в противном случае.
(Конечно, если х^и} то CUiX=0 и определено.) Заметим.
что для каждого i9 если ts{eti+i)(x) определено, то можна
решить, будет ли /, (х) < r(tsiej+l) (х)) (применяя лемму 1.2(Ь);
и будет ли tt(x) определено или нет.
Теперь g(u,x) определяется таким образом:
а (и г\=1 1 + тах{Ф/(А:Iг^Си, х}» если ^и, х определено;
Ы\иУх) | Не определена в противном случае.
(Если С0| х определено, то для каждого i?CUiX должно быть
определено Ф/(л:), так что в этом случае g(u, x)t конечно,"
определено.)
По тезису Чёрча таким образом определенная функция g
является частичной вычислимой функцией, которая явно \
эффективно зависит от е. Следовательно, согласно следствию
11-1.4 из второй теоремы о рекурсии (слегка обобщенному)г
найдется индекс е9 такой, что
С этого момента положим е равным такому индексу, что вы-
выполняется (*); тогда е окажется индексом, обсуждавшимся*
в начале доказательства. Надо убедиться в том, что он обла-
обладает требуемыми свойствами.
Сначала покажем, что из (*) следует тотальность функции g*
Фиксируем х\ для и ^> х множество СН|Л.= 0, так что сразу
из определения получаем g(u, v)=l.' Для и<х покажел
обратной индукцией по и, что g(u,x) определено. Предполо*
жим, что все значения g(x,x)9 g{x—1, х), ..., g(u + 2, x)tl
g(u+l9x) определены. Тогда из (*) и определения s получаем,
что Ф*(*. х) W. 4>sie. x-i) W. • • •» Ф*(«. e+i) W определены; следо
вательно, определено и ts(e% /+1) для и^*<х. Это в свою
очередь означает, что множество Cat х определено, а следов*
тельно, определено и значение g(u> x). Таким образом g(u, x)^'
тотальная функция.
2. Теорема об ускорении 231
Теперь, обозначая функцию ga(x) = g(ut х) через ga, имеем
ga{x) = g(u*x) = 4>l2}(u*x) (из (*))
= Ф3(е,и)(х) (по определению s).
Мы должны проверить вышеуказанные свойства (а) — (с).
(a) Если положим f = gOi то функция /, конечно, всюду
определена, так как это требуется в теореме.
(b) Фиксируем число и\ нам надо показать, что g@, х)
и g(u, x) отличаются только в конечном множестве точек х.
Из построения множеств Са%х ясно, что для всякого х
СВ1Х = Св|ХП|и,и+1, ...,*—1}.
Так как все множества COf х попарно не пересекаются (по по-
построению), можно найти такое число u = max {x\COiX содержит
некоторый индекс i < и}. Тогда для х > v мы имеем COt x S
я {и, и+ 1, ..., а:—1}, а следовательно, COt х = Са% х. Это озна-
означает, что g@t x) = g(и, х) для x>v. Таким образом go(x) =
- ga (х) п. в.
(c) Пусть i является индексом для /; беря j = s(e, r+1),
получаем 4>j = <t>S(e%i+i) — gi+i (из приведенного выше), так что
/ является индексом для gi+1. Можно доказать, что г(/у(х)) =
= r(ts(e^ i+i)(x)) < tg(x) для всех х> i. Если бы это не имело
место, то i должно было быть вычеркнуто в определении g@, x)
для некоторого х > it т. е. должно было бы быть х > i с i g COt х.
Но тогда по построению g было бы g{0, х) ФФ((х), что озна-
означает противоречие. Это и завершает доказательство. ?
Заметим, что теорема о псевдоускорении эффективна: по
данной программе Р для / можно эффективно найти другую
программу, которая вычисляет / почти всюду и почти всюду
быстрее, чем Р.
Покажем теперь, как видоизменить приведенное доказатель-
доказательство для получения следующей теоремы.
2.2. Теорема об ускорении (Блюм). Пусть г—любая тоталь-
тотальная вычислимая функция. Существует тотальная вычислимая
функция /, такая, что для всякой программы Ph вычисляю-
вычисляющей /, существует другая программа Pk для вычисления /,
для которой f(tk(x)) < tt(x) п. в.
Доказательство. Без уменьшения общности можно предпо-
предположить, что функция г возрастает (или заменить г на боль-
большую, чем г, возрастающую функцию). Сначала посредством
небольшой модификации доказательства теоремы 2.1 мы полу-
получим тотальную вычислимую функцию /, такую, что для каждой
вычисляющей функцию / программы Pt найдется программа Pj9
такая, что
232
Гл. 12. Сложность вычисления
(a) Ф: тотальна и Ф, (х) = f (х) п. в.;
(b) r(tJ(x) + x)<ti(x) п. в.
Для этого просто перепишем определение Си% ХУ заменив
«... и t{ (х) < г (tsie, l+l) (л:))» на «... и t( (х) < г (ts(e[i+,) (х)+х)у>.
Мы покажем, что получаемая таким образом функция / удов-
удовлетворяет требованиям теоремы.
Теперь предположим, что / = Ф,- и / выбрано с учетом
указанных выше свойств (а), (Ь). Теперь наша задача состоит
Начало
0атано8
Рис. 12Ь. Переход от псевдоускорения к ускорению.
в изменении программы Pj так, чтобы получить программу Р/*,;
которая вычисляет / для всех х. Пусть 4>j{x) — f{x) для всех!
x>v и f(m) = bm для т<0. Изменим Яу, поместив в начало^
программы некоторые дополнительные команды, которые]
должны задать эти значения для т ^ а Конкретно, пусть Р^\
будет программой, реализующей блок-схему, представленную?
на рис. 12Ь. Очевидно, Р;* вычисляет /; кроме того, найдется]
2- Теорема об ускорении 233
число с, такое, что дополнительные команды добавляют не
более чем с шагов ко всякому вычислению; т. е. для всех х
имеет место tj* (х) ^ tj (x)-\-c.
Таким образом, мы получаем r(tr(x))^r(t/(x) + c) (по-
(поскольку функция г возрастающая) < г (tj (х) + х) (для х ^ с) <
< ti(x) п. в. Следовательно, выбрав & = /*, мы доказали теорему.
Замечания
1. Приведенные здесь доказательства теорем о псевдоуско-
псевдоускорении и ускорении взяты из работы Янга [1973]. Оба резуль-
результата доказаны для произвольных мер сложности; в случае
теоремы 2.1 ясно, что наше доказательство опирается только
на абстрактные свойства временной меры сложности //(х); в до-
доказательстве теоремы 2.2, однако, мы использовали некоторые
специальные детали МНР временной меры в определении
отношения между t^ и tr В стй*гье Янга это доказательство
носит общий характер и применимо к любой мере сложности.
2. Можно показать, что теорема об ускорении, вообще
говоря, не является эффективной.
Теорема об ускорении является серьезным препятствием,
если мы попробуем определить сложность вычислимой функ-
функции / (а не сложность конкретного алгоритма для вычисле-
вычисления / !). Мы не можем определить эту сложность как слож-
сложность наилучшего или быстрейшего алгоритма для вычисления /
просто потому, что для / может не найтись наилучшей про-
программы.
Этот параграф мы завершим забавным следствием теоремы
об ускорении. Предположим, что у нас есть МНР, которая
делает один шаг за 1 секунду, и мы заменим ее новой сверх-
сверхбыстродействующей машиной, работающей в 100 раз быстрее.
Тогда вычисление Я/(лс), требующее tt(x) секунд на старой
машине, будет выполняться за ^(x)/100 секунд на новой.
Рассмотрим теперь функцию /, определяемую теоремой об
ускорении с ускоряющим множителем 100. Предположим, что
функция / вычисляется программой Pt на новой быстрой ма-
машине. По теореме об ускорении существует программа Яу
для /, такая, что lOOtj(x)< ti(x) п. в., т.е. tj(x) </,. (х)/100.
Таким образом, для почти всех х старая машина по про-
программе Pj вычисляет / быстрее, чем новая машина по про-
программе Я/. Отсюда мы делаем вывод, что по крайней мере для
некоторых функций новая машина не имеет преимуществ перед
старой (для большинства входов)! 1)
1) Однако «большинство» реальных вычислений всякой функции при-
приходится выполнить для сравнительно небольших значений аргумента др.
Если задано распределение вероятностей (или частот), с которыми ветре-
234 Гл. 12. Сложность вычисления
2.3. Упражнения
1. Покажите, что ограничение неравенства г(tk(x)) < tt(x]
в теореме об ускорении почти всеми х> вообще говоря, нельзя
снять.
2. Почему мы должны рассматривать конец обсуждение
в предыдущем параграфе (с новой и старой МНР) скорей
в теоретическом, чем в практическом плане?
3. Классы сложности
Пусть b—любая тотальная вычислительная функция.
С точки зрения сложности естественный класс функций состав-
составляют функции, у которых имеются программы с временем
работы, не превосходящим функцию Ь. Так мы приходим
к следующему определению.
3.1. Определение. Пусть b—тотальная вычислимая функция.
Класс сложности функции b (&b определяется как
^b^i^el^e тотальна и te(x) ^b(x) п. в.}=*
= {/1/ тотальна, вычислима и имеет программу Pecte(x)^.
<ft(x) п. в.}.
Замечание. Класс 66, определенный таким образом, является
классом сложности функции b относительно временной меры
сложности te(x)\ для каждой меры сложности Фе(х) мы можем
определить класс сложности (?f очевидным образом.
Если Ь'—другая тотальная вычислимая функция с Ь'
^Ь(х) для всех х, то, конечно, (?/,, ^(?6; если b'(x)^()
для всех xt то естественно ожидать, что класс &ь, содержит»
некоторые новые функции по сравнению с (?6, особенно, если:
bf (x) намного больше, чем b (x). Следующая теорема показы-^
вает, что здесь интуиция нас подводит: можно указать такие-
b и Ь\ что br значительно больше b в любое заданное числа
раз, так что @й, = 6Ь; на самом деле эта теорема показывает,
что функции b и Ь1 можно выбрать так, что не существует
временной функции сложности вычисления (или просто времени
вычисления) te(x), которое лежит между Ь(х) и Ь' (х) для бес-
бесконечного множества разных х. Поэтому данная теорема назы-
называется теоремой о пробелах (или скачке).
3.1. Теорема о пробелах (Бородин). Пусть г —тотальная вы*
числимая функция, для которой г(х)"^х (при всех х). ТогдЩ
существует тотальная вычислимая функция Ь, такая, что
чаются разные значения х, то существует (и, может быть, эффективна
найдена!) быстрейшая программа, вычисляющая /. (См, Пэйджер [1970].)-Ч
Прим. перев.
4. Элементарные функции 235
(а) для каждого ей х > е, если te (x) определено и te(x) > b(x),
то te(x)>r(b(x))\
(b) eb=cw
Доказательство. Определим неформально b(x) следующим
образом. Определим последовательность чисел ft0 < ftx< ... <kx
посредством уравнений
Рассмотрим непересекающиеся интервалы 1} [ft/, r(k()] для 0<*<х.
Существуют (х-\-1) таких интервалов, а значит, по меньшей
мере один из них не содержит ни одного числа te (х) для е < ху
поскольку определено не более чем х таких чисел. Выберем ix
равным наименьшему i, такому, что te(x)^[kh г (ft,)] для всех
С < X, И ПОЛОЖИМ Ь (Х) = kix.
Если дано, что такое ix существует из теоретических сооб-
соображений, то существует и эффективная процедура для его на-
нахождения; нам просто надо повторно применять лемму 1.2(Ь),
проверяя te(x)?[kh г (ft/)] для разных е и i. Согласно тезису
Чёрча, можно заключить, что Ь — вычислимая функция.
Для завершения доказательства теоремы (а), предположим,
что х>е и te(x)^b(x)\ по построению Ь(х) мы имеем te(x)(?
^[fe(x), r(b(x))]. Следовательно, te(x) > r(b (x)).
Перейдем к пункту (b). Очевидно, что (?ь ^ (W, заметим, что
если / ? (?Ло/Д(?ь, то / вычисляется по программе Ре с te (x)^r(b(x))
п. в., uote(x)>b(x) для бесконечно многих х (в противном
случае /6®ь)« Это, очевидно, противоречит пункту (а). Следо-
Следовательно, (?6 = 6Лог>. П
Замечание. Это доказательство основано на варианте, изло-
изложенном Янгом [1973]. Легко видеть, что функция b в теореме
может быть выбрана большей, чем любая заранее заданная
вычислимая функция с, просто если положить kQ = c(x) вместо
&о = 0 в доказательстве. Из доказательства также видно, что
теорема о пробелах машинно-независима.
4. Элементарные функции
В этом заключительном параграфе мы введем класс эле*
ментарных функций, как пример класса вычислимых функций,
который очень просто может быть охарактеризован в терминах
классов сложности, соответствующих времени вычисления. Как
мы увидим, элементарные функции образуют естественный и
широкий подкласс примитивно рекурсивных функций. Они изу-
J> Под интервалом [с, d] мы подразумеваем множество натуральных
чисел [х\с^х < d).
236 Гл. 12. Сложность вычисления -
чены довольно глубоко и представляют интерес сами по себе;
и помимо теории сложности.
4.1. Определение
(a) Класс ? элементарных функций является наименьшим
классом, таким, что
(i) функции х + 1, Щ A ^ i ^ л)| XmLm У* Х + У> ХУ все вхо-
входят в ?,
(и) класс ? замкнут относительно суперпозиции,
(iii) класс ? замкнут относительно операций ограниченного
суммирования и ограниченного произведения (т. е. если f(x> Y
принадлежит ?, то и функции ^f{xyz) и Д/(лг, г), опре-
г<у г<у
деленные в § 4 гл. 2, принадлежат классу ?).
(b) Предикат М (х) называется элементарным, если его
характеристическая функция См элементарна.
Грубо говоря, ? является классом функций, которые можно^
получить итерацией операций обычной арифметики. Ясно, что
элементарные функции вычислимы; на самом деле они даже
примитивно рекурсивны согласно результатам § 4 гл. 2. Сле-
Следующая лемма позволяет построить некоторые примеры эле-
элементарных функций и предикатов.
4.2. Лемма
(a) Класс ? замкнут относительно ограниченной миними~<
зации.
(b) Элементарные предикаты замкнуты относительно one-*
раций «не», «т>, «или» и ограниченных кванторов «Vz < у» vk
«Зг < у».
Доказательство, (а) Пусть функция f(x,z) элементарна;
напомним из доказательства теоремы 2-4.12, что
v < у u<f
Элементарность этой функции следует из элементарности s\
а последняя вытекает из представления sg(x) = x-L- (jc— 1)
]=(х+\)-х.
(b) Оставляем доказательство читателю в качестве легког|
упражнения. П
Следующая теорема убеждает нас в том, что класс ? щ
статочно широк. .
4.3. Теорема. Функции т {для т g N) и все функции, перечшЦ
ленные в теоремах 2-4.5 и 4.15, элементарны.
Доказательство. Мы дадим наброски доказательств для рям
функций, для которых эти доказательства нетривиальны или зня
4. Элементарные функции 237
чительно отличаются от тех, что даны в гл. 2. Всюду используется
терминология гл. 2.
(i) ху, ху= Д*=П */!(*.').
Jii) qt. qt(x, #) = цг<# (х = 0 или л:
числом) = \iy < 22*(х = 2 Рг (г)) = ц# < 22VU— 2 Рг (г)
V z<u J V г<у
(iii) rm. rm (x, y) = y — xqt (x, */).
(iv) pA.. Предполагая, что доказана элементарность функции
Рг(х) (характеристическая функция предиката «х — простое чис-
число»), имеем px = iiy < 22* (х = 0 или у является х-ы простым
(Граница рх^.22Х легко доказывается по индукции, используя
неравенство px+l ^PiP2- • «P* + '•)
Предоставляем читателю в качестве упражнения доказать
элементарность других функций. ?
Покажем теперь, что класс ? замкнут относительно опера-
операции примитивной рекурсии, при условии что мы заранее знаем
элементарную границу для функции, определенной уравнением
рекурсии.
4.4. Теорема. Пусть f (х) и g(x,y,z) элементарны, и пусть
функция h определяется из f, g посредством
. , _ . y,h{x, у)).
Предположим, что существует элементарная функция Ь(х, у),
такая, что /г(лг, у)^Ь(х, у) для всех х, у. Тогда функция h
элементарна.
Доказательство. Фиксируем х, у\ тогда вычисление h (л:, у)
обычным способом требует вычисления последовательности чисел
h (х, 0), h (л:, 1), ..., h (xt */).Их можно закодировать одним чис-
числом s, где
s = 2Н{Х> 0>3Л(дг> 1}.. . ph{x\v) = ТТ/?2(Лг) ^Y\Pbz?[ г) = (скажем) с{х, у),
где с(х, у) — элементарная функция. Ключевыми свойствами s
являются (i) (s)}=h(x,0) = f(x)\ (и) для z < у (sJ+2 = A(^,
z+l)=g(x,z,(s)z + l) и (iii) h(x, y) = (s)y + 1. Таким образом,
получаем
h(x.y) = №^c{x, y)((s)l = f(x) и Vz<y({s)t
),+,
Это выражение для h показывает, что функция Л элементарна
согласно доказанным выше результатам. П
238 Гл. 12. Сложность вычисления
Описанный в этой теореме способ определения функции на-
называется ограниченной (примитивной) рекурсией. Мы увидим
позднее, что это более слабая операция, чем примитивная ре-
рекурсия. Приведенный выше результат кратко можно выразить,
сказав, что класс <? замкнут относительно ограниченной ре-
рекурсии.
4.5. Следствие. Функции состояния оп, а следовательно, и функ-
функции сп и /„, определенные в доказательстве теоремы 5-1.2
(вычислимость универсальных функций), являются элементар-
элементарными. Следовательно, и предикат Тп нормальной формы К лини
(теорема 5-1.4) элементарен.
Доказательство. Мы ссылаемся на формальное доказатель-
доказательство теоремы 5-1.2, как оно дано в гл. 5 и завершено в при-
приложении к этой главе. Наиболее рутинная работа здесь состоит
в установлении (с использованием приведенных выше резуль-
результатов) элементарности функций, использованных в построении
функции а„. Для фактического определения оп примитивной
рекурсией заметим, что для оп можно получить следующие
элементарные границы:
ся (е, х, /)< П РТЭХ ix)+t и jn (е, х, t) < In (e).
1 < i < Р (Ре)
Эти две границы являются элементарными функциями е, х,
t, поскольку мы показали, что функции р(Ре) и \п(е) элемен-
элементарны. Учитывая эти обе оценки, мы получим элементарную
границу для функции оп и можем применить теорему 4.4.
Чтобы установить элементарность оп, осталось показать, что
функции p(PJ, In (e) и все другие функции, рассмотренные
в приложении к гл. 5, элементарны. Это предоставляется сде-
сделать читателю в качестве упражнения. (Единственный общий
принцип, необходимый для этого упражнения, но не разобран-
разобранный явно, состоит в том, что класс элементарных функций
замкнут относительно определений с разбором случаев; см.
упр. 4.12 Dа) ниже.) Элементарность функций cnJ jn и Тп вы-
выясняется сразу, так как все они явно определяются подстанов-
подстановками из оп и других элементарных функций. ?
Следующее следствие часто выражают в такой форме: функ-
функции, вычислимые за элементарное время, элементарны.
4.6. Следствие, (а) Предположим, что Ь(х)—элементарная,
а Ф(еп)—тотальная функции, такие, что t{efl)(x)^b(x) п.в.г).
Тогда функция ф?п) элементарна.
(Ъ) Если b (x) элементарна, то &ъ <=:<§.
1} Здесь мы расширяем очевидным образом понятие «почти всюду» на
п-местные предикаты М (х):М (х) истинно почти всюду (п. в), если преди-
предикат М (х) истинен на всех, кроме конечного множества, /г-наборах х.
4. Элементарные функции 239
Доказательство, (Ь) является очевидной переформулировкой
(а) для одноместных функций. Для доказательства (а) предпо-
предположим, что tf](x)^b{x) п. в. Тогда функция
Л (*) = |х/< ft (*)[/'„(*,*, 0 = 0]
элементарная, и мы получаем Ф{еп)(х) = (сп(е, х, k(x))I п. в.
Как мы уже доказали, в правой части равенства стоит эле-
элементарная функция. Чтобы вывести элементарность ф{еп\ заме-
заметим, что функция, почти всюду совпадающая с какой-нибудь
элементарной, сама элементарна (см. упр. 4.12DЬ) ниже). ?
Здесь читатель может задать вопрос, не совпадают ли эле-
элементарные функции с примитивно рекурсивными. Все конк-
конкретные примеры примитивно рекурсивных функций из преды-
предыдущих глав оказались, как мы видели, элементарными. Един-
Единственное различие между этими классами состояло в том, что
для класса <? мы смогли доказать замкнутость относительно
лишь ограниченной примитивной рекурсии. Но, быть может,
это только кажущееся различие? Как мы увидим ниже, ответ
на это отрицательный. Ограниченная рекурсия как способ
определения функций действительно слабее, чем примитивная
рекурсия. Как следствие из теоремы, которая сейчас будет
доказана, мы укажем примитивно рекурсивную, но не элемен-
элементарную функцию.
Тем не менее <? является чрезвычайно большим классом и
содержит подавляющее большинство функций, встречающихся
в практической математике. Класс <? является первым естест-
естественным приближением к классу эффективно вычислимых функ-
функций, основанным на обычных операциях арифметики. И действи-
действительно, утверждение о том, что ? содержит все практически
вычислимые функции, было обосновано в ряде работ (см., на-
например, Брайнерд и Ландвебер [1974]1). В этих работах отме-
отмечается, что для всякой практически вычислимой функции f(x)
должно найтись такое натуральное число k, что f(x) можно
вычислить за время, не превосходящее
2тх(х)
/
Х) См. на русском языке статьи: Ричи Р. В. «Классы предсказуемо
вычислимых функций» и Мучника А. А. «О двух подходах к классификации
рекурсивных функций» (стр. 123—138) в сб. перев. «Проблемы математи-
математической логики».—М.: Мир, 1970.— Прим. перев.
240 Гл. 12. Сложность вычисления
шагов для почти всех х. В конце концов в практическом плане
это число шагов становится очень большим в сравнении с х
даже для малых значений k. Поскольку функция
(при фиксированном k) элементарна, это означает, что, соглас-
согласно следствию 4.6, функция / элементарна.
В оставшейся части этого параграфа мы покажем, что эле-
элементарные функции можно точно охарактеризовать как такие,
которые можно вычислять за время
2 шею (х)
для некоторого (зависящего от /) числа k. Первым шагом в
этом направлении будет доказательство теоремы, из которого
мы извлечем пример не элементарной примитивно рекурсив-
рекурсивной функции.
4.7. Теорема. Если f(x)—элементарная функция, то найдется
такое число k, что для всех х
2тах(х)
Доказательство. Обозначая число
2 к
2/
через bk(z), получаем feo(z) = z, bx(z) = 22y и вообще bk+l(z) =
= 2bk{z). (Таким образом, 22~* означает 2<2% а не Bа)* и т. д.)
Заметим, что bk+l(z)=bk(bl(z)). Дальше мы явно используем
тот факт, что bk является возрастающей функцией и что za < 222
для всех z.
Для доказательства теоремы рассмотрим каждый случай,
который обеспечивает принадлежность функции / классу <?.
Вспоминая определение 4.1, имеем:
(i) x+l<2*;
?/?(*)< max (*);
x, y)\
4. Элементарные функции 241
х + у < 2 max (*, у) < 2тах <*• у)\
ху < (max (х, у)J < 22тах <*• у)\
(И) ПустьЛ(.г)==/(я1(л:), • ..,ffm(jr))H*lf ..., *m, / таковы,
что &(*)< V (max (*)) A <i<m) и/ (y)<tbl (max (//)). Пусть
? = max(&1, ...,/?/г). Тогда мы имеем
А (*)<Мтах (&(*), ...,^(л:)))<
(max FЛ| (max (л:)), ..., bkm (max (л:)))) <
bt (bk (max (л:))) = bl+k (max (jt)).
(iii) Пусть g(x, y)= 2 /(лг, z) и /(л:, г)<6л (тах(дг, г)\
Тогда мы имеем
S (х, yX2>bk (max (ж, 2)) < ^ (max (*, у)) <
< bk ((max (jt, (/))J < 2Л(тах Ul y)) = 6Л+, (max (x, у)).
Случай, когда ^является ограниченным произведением, раз-
разбирается аналогично; оставляем его в качестве упражнения
читателю. D.12F) ниже). ?
4.8. Следствие. Функция
примитивно рекурсивна, но не элементарна.
Доказательство. Для доказательства примитивной рекур-
сивности / заметим, что f(x)=g(x, x), где g определяется
посредством
g(x, О) = аг,
(так что функция g примитивно рекурсивна).
Неэлементарность функции / обнаруживается, если заме-
заметить, что для каждого k
так что ни для какого k не выполняется одновременно для
всех х неравенство f(x)^bk(x). (Заметим, что / получается
посредством «диагонализации класса <?».) ?
Предпоследний шаг навстречу нашей цели будет сделан,
если мы покажем, что элементарные функции могут быть вы-
вычислены за элементарное время.
242
Гл. 12. Сложность вычисления
4.9. Теорема. Если функция f(x) элементарна, то существует
вычисляющая f программа Р, такая, что t{^(x) элементарна.
Доказательство. Мы должны исследовать все разные спо-
способы, какими может получаться функция из <§. Нам поможет
следующая общая лемма.
4.10. Лемма. Пусть лг = (д:1, ..., хп). Предположим, что функ-
функция h (x, у) элементарна и определяется посредством рекурсии
Начало
Запомнить х,у в
По одномушагу для каждого
к4у на этой петле
По одному шагу
для наокдого
/чу
п +1 шагов
шагоб
//о одному шагу для
каждого к«цг
о
- \ шаг
Останов
шагов для каждого к<у
Рис. 12с. Число шагов в вычислении но рекурсии.
из функций f(x) и g{x,y,z), которые можно вычислять за:
элементарное время. Тогда и h можно вычислять за элементар-
элементарное время.
Доказательство. Возьмем программы F и G в стандартной
форме, такие, что функции //?и /g элементарны. (Для удобства
обозначений мы здесь и повсюду опускаем верхние индексы Ш
t{p] для каждой программы Р каждый раз, когда их значение
ясно.) Извлечем программу Н для функции h из доказательства
4. Элементарные функции 243
теоремы 2-4.4, и покажем, что функция tH элементарна. Мы
просто вычислим tH{xyy) в соответствии с блок-схемой на
рис. 2с и явной программой Я, являющейся ее трансляцией.
Мы воспроизводим эту блок-схему на рис. 12с, отмечая рядом
с каждой ее компонентой число шагов, требующихся для ее
реализации при выполнении программы Н. Теперь просто вы-
вычисляется функция
+ 2 (
которая, очевидно, элементарна, так как tFt tG и h все эле-
элементарны. ?
Доказательство теоремы 4.9. Рассмотрим каждый случай
в определении класса ?.
(i) Функции х+\ и U1{x) можно вычислить программами
за один шаг. Для х~у, х + у, ху воспользуемся леммой 4.10.
Рассмотрим, например, х-\-у\ эта функция определяется рекур-
рекурсией из функций f(x) = x и g(x, yt z) = z-\-1, которые обе
вычислимы за элементарное время. Теперь применим лемму
4.10. Аналогично рассматриваются х — у и ху, в случае х—у
результат надо доказать сначала для х — 1, снова применяя
лемму 4.10.
(ii) Подстановка. Предположим, что h(x) = f (g^ (*), ...
. . ., gm(x)) и каждая функция /, gl9 ..., gm вычислима за эле-
элементарное время по программам F, Glf ..., Gm стандартного
вида. Пусть Н — программа, вычисляющая функцию Л, данная
в доказательстве теоремы 2-3.1. Вычисляя прямо по той прог-
программе, мы получаем
1=1
являющуюся элементарной функцией, полученной подстановкой.
(Hi) Ограниченные суммы и произведения. Результат уста-
устанавливается применением леммы 4.10. Предположим, что
g(x,y)*=* ^Eif{xyz) и / вычисляется за элементарное время.
г<у
Тогда g получается рекурсией из функций 0 и г + /(дг, у), обе
из которых вычислимы за элементарное время (из п. (i) и (ii)).
Следовательно, согласно лемме 4.10, и функция g вычислима
за элементарное время.
Доказательство для ограниченного произведения аналогично
и предоставляется читателю в качестве упражнения D.12(8)
ниже). D
244 Гл. 12. Сложность вычисления
Итак, вся тяжелая работа уже сделана! Чтобы дать
сание класса <§, к чему мы стремимся, полезно расширить по-
понятие класса сложности, включив в него n-местные функции
для всех п. Предположим, что Ь(х) — тотальная функция; по-
положим
^ = {/|/ тотальна и [ = Ф(еп) для некоторого е с
(max (*)) п. в.}.
Очевидно, 6ь = ЙьП {одноместные функции}.
Нашей заключительной теоремой является следующая.
4.11. Теорема. Тотальная функция f (х) элементарна тогда и
только тогда, когда она вычислима за время ^^(тах(лг))
для некоторого ky т. е. ? = U @? •
/г>0 k
Доказательство. Так как для каждого k функция ЬЛ(тах(дг))
является элементарной функцией, то, согласно следствию 4.6,
имеем (?* ^ <§. Следовательно, и &ь — <?•
k *>о *
Для доказательства обратного включения предположим,
что f (х) — элементарная функция. По теореме 4.9 существует
вычисляющая f программа F, такая, что функция tF элемен-
элементарна; теперь по теореме 4.7 найдется число /г, такое, чго
h{x) ^bk (тах(лг)). Тогда /?($6 , и таким образом наше
доказательство завершено.
4.12. Упражнения
1. Покажите, что включение функций х + у и ху в опреде-
определение класса & не является строго необходимым. (Указание.
Сначала получите ху как ограниченную сумму; а затем полу-
получите х-\-у из подходящих произведений, используя —).
2. Докажите лемму 4.2 (Ь).
3. Завершите доказательство теоремы 4.3.
4. (а) Покажите, что класс ? замкнут относительно опре-
определения с разбором случаев, когда функции и предикаты
в определении элементарны.
(Ь) Покажите, что если f (х) элементарна и g{x) = f(x)
п. в., то g(x) элементарна.
5. Проверьте все детали в доказательстве следствия 4.5.
6. Завершите доказательство теоремы 4.7, показав, чтоес-i
ли g(x, y)=Hf{x, z) и f(x, 2)<^(тах(дг, г)), то*
г<у
y)<bk+s(m&\(x, у)).
7. Дайте пример одноместной примитивно рекурсивной^
функции, не элементарной и отличающейся от примера в след-Л
ствии 4.8.
4. Элементарные функции 245
8. Докажите, что если f вычислима за элементарное время,
а &(•*» y) = TIz<yf (х> z)> то и g вычислима за элементарное
время.
9. Пусть Фг — мера сложности для одноместных функций,
связанная с te элементарной функцией г, т. е. для каждого е
и для почти всех х, для которых определено te(x),
Фе(х)<г(х, **{х)) и /,(*)<'(*. Фв(х)).
Для каждой тотальной функции Ь(х) через ($,? обозначим
класс сложности функции Ъ относительно меры сложности Ф,
т. е.
^ = {Фе\Фе тотальна и Фе(х)^Ь(х) п. в.}.
Докажите, что (J G?=<?\ (класс одноместных элементарных
функций).
Рекомендации для дальнейшего чтения. Более пол-
полное изложение машинно-независимой теории сложности чита-
читатель может найти в основополагающей статье Блюма [1967]
или хорошем обзоре теории сложности, принадлежащем Харт-
манису и Хопкрофту [1971]. Статья Янга [1973], которую мы
уже цитировали в предыдущих параграфах, упрощает неко-
некоторые доказательства основных теорем. В книге Брайнерда и
Ландвебера [1974] имеется хорошо написанная глава о слож-
сложности и дано также описание различных субрекурсивных клас-
классов функций (включая ?) в терминах времени вычисления.
Аналогичные описания рассматриваются также в ранних (в
истории сложностной теории) статьях Ричи [1963] и Кобхэма
[1965], использующих ленточную меру сложности (т. е. па-
память машин Тьюринга1*).
2> Можно рекомендовать также чтение двух сборников переводов на рус-
русском языке: Проблемы математической логики (М.: Мир, 1970), Сложность
вычислений и алгоритмов (М.: Мир, 1974).
Особое значение в плане практической вычислимости имеет класс
функций Р, вычислимых за время, ограниченное каким-нибудь полино-
полиномом от длины /г-ичной записи (k > 1) аргумента, т. е. объема входной ин-
информации. Хотя некоторые часто встречающиеся функции вроде экспонен-
экспоненты не принадлежат этому классу в силу своего быстрого роста, такие
функции практически вычисляются только для малых значений аргумента.
Многие важные прикладные задачи приводят к предикатам класса Л;Р,
т. е. вычислимых на недетерминированных машинах Тьюринга за полино-.
миальное (от длины входа) время, и АИР, т. е. вычислимых на альтер-
альтернирующих машинах Тьюринга за полиномиальное время. О недетермини-
недетерминированных вычислениях (одно из важнейших понятий теории алгоритмов!)
и центральной проблеме P = NP? см., например, книгу М. Гэри и Д. Джон-
Джонсона «Вычислительные машины и труднорешаемые задачи» (М.: Мир,
1982), а об альтернации—одноименные статьи, «Кибернетический сбор-
сборник», нов. сер., вып. 19 (М.: Мир, 1983).— Прим. перев.
Глава 13.
Пути дальнейшего изучения
Наш основной курс теории вычислимости был построен та-
таким образом, чтобы он мог служить трамплином более глубо-
глубокого и более подробного изучения этой науки в одном из
нескольких направлений. В этом кратком послесловии мы ука-
укажем ряд областей, с которыми желательно было бы ознако-
ознакомиться, и дадим некоторые рекомендации для дальнейшего
чтения. Предложенное ниже разделение не является жестким,
и между различными областями, которые мы назовем, сущест-
существуют многочисленные взаимосвязи.
Вычислимость. Дальнейшее изучение теоретического поня-
понятия вычислимости (отправной пункт рассмотрений этой книги)
можно продолжить в двух направлениях: (а) более подробное
исследование других эквивалентных подходов к вычислимости
(обзор которых был дан в гл. 3); (Ь) исследование более ог-
ограниченных понятий вычислимости, включая, например, ко-
конечные автоматы и аналогичные устройства.
Некоторые ссылки для (а) были даны в гл. 3. В обоих
случаях мы рекомендуем книги Минского [1967] (относительно
полное изложение), Арбиба [1969] или Энгелера [1973]1}.
Рекурсивная теория. Под этим традиционным названием
мы подразумеваем изучение более глубоких идей и понятий,
вытекающих из понятия вычислимости на N. Такое изучение
мы начали в гл. 7 и 9—11. Перечислим отдельные направления
этой теории.
Иерархии: имеются в виду разные способы расширения
последовательности, начинающиеся с «рекурсивные, рекурсив-
рекурсивно перечислимые, ...», чтобы получить иерархию множеств
разных сортов, каждый из которых характеризуется более
трудной проблемой разрешения, чем предшествующий. Наибо-
1) На русском языке можно рекомендовать обзорные статьи П. Фише-
Фишера «Многоленточные и бесконечные автоматы» (Киберн. сб., нов. сер.,
вып. 5. —М.: Мир, 1968, с. 64 — 80), Ахоу А. и Ульмана Д. «Теория язы-
языков» (Киберн. сб., нов. сер.—М.: Мир, 1969, с. 145—183), а также упо-
упомянутые выше сборники переводов «Проблемы математической логики»
(М.: Мир, 1970), «Сложность вычислений и алгоритмов» (М.: Мир, 1974) и
сб. переводов «Языки и автоматы» (М.: Мир, 1975). — Прим. перев.
Гл. 13. Пути дальнейшего изучения 247
лее важными являются арифметическая иерархия, гиперариф-
метическая иерархия и аналитическая иерархия.
Сводимости и степени: между <m и <[г лежит целый
спектр сводимостей, подлежащих исследованию. Читатель, же-
желающий глубже проникнуть в сводимость по Тьюрингу, должен
основательно ознакомиться с доказательством теоремы Фрид-
берга—Мучника, содержащей решение проблемы Поста, преж-
прежде чем перейти к дальнейшим результатам и доказательствам
в этой области, некоторые из которых упоминались в гл. 9.
Рекурсии в высших типах: в гл. 10 мы вкратце рассмот-
рассмотрели вопрос о вычислимых функциях от вычислимых функций.
Это исследование можно продолжить на вычислимость функ-
функций от функций и т. д. Здесь, естественно, также встречаются
иерархии.
Книга Роджерса [1967] является наилучшим и единствен-
единственным источником сведений в каждой из этих областей. Она яв-
является наиболее глубоким и исчерпывающим изложением тех
проблем, которые мы затронули в нашей книге. Более специ-
специальными источниками информации о степенях являются книги
Сакса [1963], Шёнфилда [1971] и Симпсона [1977].
Под заголовком «Рекурсивная теория» следует упомянуть
также такую область, как
Обобщенная теория рекурсии. Это относительно новая об-
область исследования, в которой идеи, возникшие в теории вы-
вычислимости на N, переносятся на другие структуры, которые
не являются простыми перекодированиями N. Успехи в таком
построении достигнуты для некоторых множеств, называемых
допустимыми ординалами. Статья Шора [1977] представляет
собой введение в эту область и содержит аннотированную биб-
библиографию.
Разрешимость и неразрешимость. Хороший обзор
неразрешимых проблем в целом имеется в статье Дэвиса [1977].
Некоторые книги содержат введение в математическую ло-
логику и разрешимость и неразрешимость (см. Мендельсон [1964]
или Роббин [1963]). Эти книги содержат также полное изло-
изложение теоремы Гёделя и связанных с ней результатов. Даль-
Дальнейшее изложение этих вопросов содержится в книгах Белла
и Маковера [1977] и Булоса и Джеффри [1974]. В статье Ра-
бина [1977] дается обзор методов и результатов о разреши-
разрешимости математических теорий.
Машинная математика. Изучение вопросов, объединенных
выше под заголовком «Вычислимость», особенно конечных
автоматов, связано, конечно, с машинной математикой, кото-
которую можно было бы назвать практической вычислимостью.
248 Гл. 13. Пути дальнейшего изучения
В этой сфере есть две области, которые мы слегка затронули. Это
Программы и программирование', дальнейшее изучение здесь
могло бы включать такие вопросы, как генерация языков про-
программирования, структурное программирование и семантика язы-
языков программирования (которую мы затронули в гл. 10). Эта
проблематика изложена в книгах Арбиба [1969]. Бёрда}[ 19761,
Брайнерда и Ландвебера [1979], Энгелера [1973] и Манна [1974J.
Теория сложности: в конце гл. 12 мы назвали некоторые
работы, рекомендуемые для дальнейшего чтения в этой об-
области. Представляет интерес изучение функций f(x), которые
можно вычислить за время, ограниченное некоторым многочле-
многочленом от х. Основной нерешенной проблемой здесь является так
называемая Р = ЛгР?-проблема (или проблема перебора): рас-
рассматриваются машины, которые обладают некоторой свободой
при выборе следующего шага в вычислении (такие машины
называются недетерминированными). Делая удачные догадки,
часто можно провести вычисление быстрее, чем систематически
проверяя все возможные детерминированные варианты. P = NP?-
проблема состоит в том, будет ли каждая функция, вычисли-
вычислимая за полиномиальное время на недетерминированной машине,
вычислима за полиномиальное время на обычных (детермини-
(детерминированных) машинах. Эта проблема вкратце рассматривается
Рабином [1977] и подробно обсуждается Карпом [1972] и
Куком [1971]*.
Гп
Z(n)
S(n)
Т(т,
J(m,
Р(аи
P{alt
P(alt
P(au
n)
n, q)
X
aa,.
a2. •
a2, .
a» •
••)
• •)t
СЛОВАРЬ ОБОЗНАЧЕНИЙ
Глава 1
n-й регистр
содержимое регистра Rn
команда обнуления
команда прибавления единицы
команда переадресации
команда перехода
гп становится х
вычисление по программе Р
вычисление заканчивается
вычисление никогда не заканчивается
окончательное значение Rx есть b
Й", %п классы вычислимых функций
/р) n-местная функция, вычисляемая по про-
программе Р
см характеристическая функция множества М
Глава 2
VI проектирующая функция или проекция
р
PQ или q соединение, или конкатенация, программ
р(Р) число регистров, затронутых программой Р
х — у усеченное (или допустимое) вычитание
sg(x), sg(x) сигнум функции
rm (xf у), qt(x, у) функции остатка и частного
Ц2 <#(...) наименьшее г, меньшее, чем у
рх х-е простое число
(х)у степень руу входящая в разложение х на
простые множители
я (а:, у) спаривающая функция
ИУ [/(•*> #) = 0] оператор минимизации
Глава 3
, Яо класс (частично) рекурсивных функций
5>Э1 класс примитивно рекурсивных функций
ЯГЪ класс функций, вычислимых по Тьюрингу
полученное по правилам из Q
система Поста % порождает
250
Словарь обозначений
П
G(f)
ФГ. Фа
pin) р
|U, ^и
сп(е, х, I)
/Ж х, t)
оп(е, х, t)
Тп(е, х, t)
Rec (/, g)
Sub(/, g,, ..
Q
Л, —
о, 1,.
R
х, у ,.
• » em)
At
А(
К
)В
\В
i, V
Pr»
Ref*
множество цепочек, порожденных систе-
системой %
код слова о
слово, представляющее число п
график функции /
множество функций, вычислимых по Посту
Глава 4
множество команд МНР
множество программ МНР
функция, кодирующая программы
п-я программа
функции, вычислимые по программе Ра
области определения ф]?\ Фа
множества значений Ф^}, Фа
Глава 5
универсальные функции
код конфигурации
следующая команда
функция состояния
7-предикат Клини
функция, полученная рекурсией из /, g
функция,полученная подстановкойgx,..-,gm
в /.
Глава 6
множество рациональных чисел
логические символы для «и» и «влечет»
символы в логическом языке
Глава 7
2х\х€А\Ц{2х+\\х?В}
п(х, у)\
Глава 8
логические символы для «не» и «или»
множество утверждений языка L
множества истинных, ложных утвержде-
утверждений языка L
(п+\)-е утверждение %
формула, выражающая п?К
множество доказуемых утверждений
{п формула п?К доказуема}
формула п(?К доказуема}
Словарь обозначений 251
Глава 9
А ^тВ А многозначно сводится к В
sm многозначно эквивалентно
dm (А) m-степень А
а ^тЬ частичный порядок на т-степенях
0т т-степень рекурсивных множеств
о, п т-степени 0 и N
От т-степень множества К
a\Jb наименьшая верхняя граница степеней а, Ь
О (п) команда оракула
Рх МНРО-программа Р с оракулом %
#х класс ^-вычислимых функций
Ж*- класс %-частично рекурсивных функций
Ф%п, Ф& функции, вычислимые по программе Q}n
Wfn, EJh область определения и множество значений
функции ф*
г|)^ п универсальная функция для ^-вычислимости
А сводится по Тьюрингу к В
е==т эквивалентно по Тьюрингу
dj (А) Тьюрингова степень А
а^Ь частичный порядок на Т-степенях
О Т-степень рекурсивных множеств
О' Т-степень множества К
А' множество-скачок А
а' степень-скачок степени а (короче скачок)
а | Ь степени а, Ь несравнимы
Глава 10
?п множество n-местных частичных функций
6 конечная функция
8 код конечной функции
fo наименьшая неподвижная точка для Ф
fx функция, определенная программой т
Глава 11
Ek последовательность вычислимых функций,
перечисляемых функцией Фк
D диагональное перечисление
Глава 12
/^(дг) число шагов, требующихся для вычисле-
вычисления функции fp(x) по программе Р
@д, @2 классы сложности с верхней границей
? класс элементарных функций
СПИСОК ЛИТЕРАТУРЫ
Арбиб (Arbib M. А.)
[ 1969] Theories of Abstract Automata. Prentice-Hall, Englewood Cliffs, N. J.
Барвайз (ред.) Barwise J. (ed.)
[1977] Handbook of Mathematical Logic, North-Holland, Amsterdam,
(Имеется перевод: Энциклопедия по математической логике в 4 тт. Выхо-
Выходит из печати в 1982—1983 г.).
Белл и Маковер (Bell J., Machover M.)
[1977] A Course in Mathematical Logic. North-Holland, Amst.
Берд (Bird R.)
[1976] Programs and Machines, Wiley, London —N. Y.
Блюм (Blum M.)
[1967] A machine-independent theory of the complexity of recursive functions.
J. Assoc. Comput. Machinery, 14, 322—336. (Имеется перевод: Блюм М.
Машинно-независимая теория сложности рекурсивных функций. Сб.
«Проблемы математической логики».—М.: Мир, 1970, с. 401—422.)
Брайнерд и Ландвебер (Brainerd W.S., Landweber L. H.)
[1974] Theory of computations, Wiley, New York.
Булос и Джефри (Boolos J., Jeffrey R.)
[1974] Computability and Logic, Cambridge Univ. Press.
Ван дер Варден (Van der Waerden B. L.)
[1949] Modern Algebra, vol. 1, Ungar, N. J. (Имеется перевод: Ван дер
Варден Б. Л. Алгебра.—М.: Наука, 1976.)
Гёдель (Godel К.)
[1931] Uber formal unentscheidbare Satze der Principia Mathematica und
verwandter System I. Monatshefte Math. Phys. 38, 173—198 (English
translation in Davis [1965]).
Дэвис (Davis M.)
[1958] Computabiliy and Unsolvability. McGrow-Hill, New York.
(ed.) [1965] The Undecidable, Raven, New York.
[1973] Hilbert's tenth problem is unsolvable. Am. Math. Monthly 80,
233-269.
[1977] Unsolvable problems. In Barwise [1977, p. 567—594].
Карп (Кагр R. M.)
[1972] Reducibility among combinatorical problems. Complexity of Com-
Computer Computations (eds. R. Miller, J. Thatcher), pp. 85—104. Plenum
Press, New York. (Имеется перевод: Карп Р. М. Сводимость комбина-
юрных проблем. Киберн. сб., нов. серия, 12.— М.: Мир, 1975.)
Клини (Kleene S. С.)
[1952] Introduction in Metamathematics. Van Nostrand, Princeton and
North-Holland, Amsterdam. (Имеется перевод: Клини С. К. Введение в
математику.— М.: ИЛ, 1957.)
[1967] Mathematical Logic. Wiley, London — New York. (Имеется пере-
перевод: Клини С. К. Математическая логика.— М.: Мир, 1973.J
Кобхэм (Cobham A.)
J1965] The intrinsic computational difficulty of functions. Proc. of the
1964 Intern. Congress for Logic, Method, and Phill. of Sci. (ed. J. Bar-
Hillel), pp. 24—30, North-Holland, Amsterdam.
Список литературы 253
Кон (Cohn P. M.)
[1977] Algebra, vol. 2, Wiley, London —New York.
Манин (Manin Y. I.)
[1977] A Course of Mathematical Logic (Graduate Texts in Mathematics 53).
Springer-Verlag, New York.
Манна (Manna Z.)
[1974] Mathematical Theory of Computation. McGrow-Hill, New York.
Маргарис (Margaris A.)
[1966] First Order Mathematical Logic. Blaisdell, Waltham, Mass.
Марков
[1954] Теория алгоритмов. Труды МИАН СССР, т. 42.
Мендельсон vMendelson E.)
[1964] Introduction to Mathematical Logic. Van Nostrand, Princeton.
(Имеется перевод: Мендельсон Е. Введение в математическую логику.
2-е издание.— М.: Наука, 1976.)
Минский (Minsky M. L.)
[1967] Computation: Finite and Infinite Machines. Prentice-Hall, Engle-
wood Cliffs, N. J. (Имеется перевод: Минский М. Вычисления: Конеч-
Конечные и бесконечные машины.— М.: Мир, 1971.)
Патерсон (Paterson M. S.)
[1970] Unsolvability in 3x3 matrices. Stud. Appl. Math., 49, 105—107.
Петер (Peter R.)
[1967] Recursive Functions. Academic Press, New York.
Пост (Post E.)
[J943] Formal reductions of the general combinatorical decision problem.
Am. J. Math. 65, 197—215.
Рабин (Rabin M. O.)
11977] Decidable theories. In Barwise [1977, pp. 595—629].
Ричи (Ritchie R. W.)
[19631 Classes of predictably computable functions. Trans. Am. Math. Soc.
106, 139—173. (Имеется перевод: Ричи Р. В. Классы предсказуемо вычис-
вычислимых функций. Сб. «Проблемы математической логики».— М.: Мир,
1970.)
Роббин (Robbin J. W.)
[1969] Mathematical Logic —a First Course. Benjamin, New York.
Роджерс X. (Rogers H.)
[1967] Theory of Recursive Functions and Effective Computability. McGraw-
Hill, New York. (Имеется перевод: Роджерс X. Теория рекурсивных
функций и эффективная вычислимость.— М.: Мир, 1972.)
Роджерс P. (Rogers R.)
[1971] Mathematical Logic and Formalized Theories. North-Holland. Amst.
Ротман (Rotman J. J.)
[1965] The Theory of Groups. An Introduction. Allyn and Bacon, Boston.
Сакс (Sacks G.)
[1963] Degrees of Unsolvability. Annals of Mathematical Studies 55, Prin-
Princeton.
Симпсон (Simpson S. G.)
[1977] Degrees of unsolvability: a survey of results. In Barwise [1977,
pp. 631—652].
Смальян (Smullyan R. M.)
[1961] Theory of Formal Systems. Annals of Mathematic Studies 47, Prin-
Princeton. (Имеется перевод: Смальян Р. Теория формальных систем.— М.:
Наука, 1981.)
254 Список литературы
Тарский (Tarski A.)
[1951] A Decision Method for Elementary Algebra and Geometry. The
Rand Corporation, Santa Monica, Ca.
Тарский, Мостовский, Робинсон (Tarski A., Mostowski A., Robinson R. M.)
[1953] Undecidable Theories. North-Holland, Amsterdam.
Тьюринг (Turing A. M.)
[1936] On computable numbers, with an application to the Entscheidungs-
problem. Proc. London Math. Soc. 42, 230—265; 43, 544—546. (Reprin-
(Reprinted in Davis [1965].)
Чёрч (Church A.)
[1936] An unsolvable problem of elementary number theory. Am. J. Math.
58, 345—363. (Reprinted in Davis [1965].)
[1941] The Calculi of Lambda-Conversion. Annals of Mathematics. Stu-
Studies 6, Princeton.
Шепердсон и Стерджис (Shepherdson J. С, Sturgis H. E.)
[1963] Computability of recursive functions. J. Assoc. Comput. Machinery
10, 217-255.
Шёнфилд (Shoenfield J. R.)
[1971] Degrees of Unsolvability, North-Holland, Amsterdam. (Имеется
перевод: Шенфилд Дж. Степени неразрешимости.—М.: Наука, 1977.)
Шор (Shore R. А.)
[1977] a-Recursion theory. In Barwise [1977, pp. 653—680].
Хартманис, Хопкрофт (Hartmanis J., Hopcroft J. E.)
[1971] An overview of the theory of computational complexity. J. Assoc.
Computing Machinery 18, 444—475. (Имеется перевод: Хартманис Дж.,
Хопкрофт Д. Обзор теории вычислительной сложности. Киберн. сб.,
нов. серия, 11, 1974, с. 131 — 176.)
Фридберг (Friedberg R. М.)
11958] Three Theorems on Recursive Enumeration. Jour. Symbolic Logic,
23, 309—316.
Энгелер (Engeler E.)
[1973] Introduction to the Theory of Computation. Acad. Press, New York.
Янг (Young P.)
[1973] Easy constructions in complexity theory: gap and speed-up theo-
theorems. Proc. Am. Math. Soc. 37, 555—563.
Литература, добавленная при переводе
Гинзбург С.
[1970] Математическая теория контекстно-свободных языков.—М.: Мир.
Гладкий А. В.
[1973] Формальные грамматики и языки.— М.: Наука.
Ершов Ю. Л.
[1980] Разрешимые теории и конструктивные модели.— М.: Наука.
Кук (Cook S. А.)
[1972] The complexity of theorem proving procedures. Proc. 3d Ann. ACM
Symp. on Theory of Computing, Ohio, 151—159. (Имеется перевод: Кибер-
Кибернетический сб.: нов. серия, 12.—М.: Мир, 1975, с. 5—15.)
Новиков П. С.
[1959] Элементы математической логики.— М.: Физматгиз.
Пэйджер (Pager D.)
[1970] On the efficiency of algorithms. J. Assoc. Comput. Machinery 17,
№ 4, 708—714. (Имеется перевод: Кибернетический сб.: нов. серия.
10.—М„ Мир, 1973, с. 137—147.)
ОГЛАВЛЕНИЕ
Предисловие редактора перевода « , . . 5
Предисловие , , , « . . 7
Введение. Предварительные замечания и обозначения ,,,,,., 9
1. Множества , • 9
2. Функции , , » 10
3. Отношения и предикаты 12
4. Логические обозначения ,.,,,,,,.... 13
5. Ссылки ,..,,, 13
Глава 1. Вычислимые функции ,....,... 14
1. Алгоритмы или вычислительные процедуры 14
2. Машина с неограниченными регистрами 16
3. МНР-вычислимые функции 23
4. Разрешимые предикаты и проблемы 29
5. Вычислимость на других областях . . , , , 31
Глава 2. Порождение вычислимых функций 33
1. Основные функции 33
2. Соединение программ , 33
3. Подстановка , , , . , , 36
4. Рекурсия 40
5. Минимизация 49
Глава 3. Другие подходы к вычислимости: тезис Чёрча 56
1. Другие подходы к вычислимости 56
2. Частично рекурсивные функции (Гёдель —Клини) 57
3. Отступление: примитивно рекурсивные функции 59
4. Тьюрингова вычислимость 60
5. Системы обработки символов Поста и Маркова 65
6. Вычислимость на областях, отличных от N 73
7. Тезис Чёрча ? 75
Глава 4. Нумерация вычислимых функций .,,,,...,..,, 80
1. Нумерация программ ,.,,.....,.,. 80
2. Нумерация вычислимых функций . f , f .......... 84
3. Обсуждение: диагональный метод »¦,,,,.., 86
4. s-m-n-теорема .,,,....,... 88
Глава 5. Универсальные программы , . , . 92
1. Универсальные функции и универсальные программы .... 92
2. Два приложения универсальной программы ....,,,,, 97
3. Эффективные операции на вычислимых функциях ..,.,, 99
Приложение. Вычислимость функции а„ .,.,,.,,,,,, 102
256 Оглавление
Глава 6. Разрешимость, неразрешимость и частичная разрешимость 106
1. Неразрешимые проблемы в теории вычислимости 107
2. Проблема слов в теории групп 113
3. Диофантовы уравнения 114
4. Алгоритм Штурма 114
5. Математическая логика 116
6. Частично разрешимые предикаты 120
Глава 7. Рекурсивные и рекурсивно перечислимые множества . . . 129
1. Рекурсивные множества 129
2. Рекурсивно перечислимые множества 131
3. Продуктивные и креативные множества 142
4. Простые множества 149
Глава 8. Арифметика и теорема Гёделя о неполноте 152
1. Формальная арифметика 152
2. Неполнота 155
3. Теорема неполноты Гёделя • 159
4. Неразрешимость 165
Глава 9. Сводимости и степени 167
1. Многозначная сводимость 168
2. Степени 171
3. m-полные р. п. множества 176
4. Относительная вычислимость 177
5. Сводимость по Тьюрингу и степени Тьюринга 184
Глава 10. Эффективные операции на множестве частичных функций 192
1. Рекурсивные операторы 192
2. Эффективные операции над вычислимыми функциями 199
3. Первая теорема о рекурсии 203
4. Приложение к семантике языков программирования 207
Глава 11. Вторая теорема о рекурсии 211
1. Вторая теорема о рекурсии 211
2. Обсуждение 217
3. Теорема Майхилла 220
Глава 12. Сложность вычисления 222
1. Сложность и меры сложности . 223
2. Теорема об ускорении , . 229
3. Классы сложности 234.
4. Элементарные функции f . , . 235
Глава 13. Пути дальнейшего изучения 246
Словарь обозначений 249
Список литературы ,,,.....,.,,,,,,,..,,,,, 252