Книга
Книга
Введение Предварительные замечания и обозначения
Единственным предварительным условием для чтения этой книги является знакомство с основными обозначениями множеств и функций и основными принципами математического рассуждения. Здесь мы дадим обзор этих понятий и разъясним обозначения и термины, которые будут использованы в дальнейшем. Все они, как правило, стандартны, поэтому для читателя, который предпочтет перейти сразу к главе 1 и возвращаться к введению лишь в случае необходимости, мы отметим, что под словом «функция» везде будет подразумеваться частичная функция. Ниже мы обсудим это более подробно.
Множества
Для обозначения множеств обычно будут использоваться прописные буквы Л, В, С... . Здесь х^А обозначает, что х является элементом множества Л или принадлежит множеству Л, а х^А означает, что х не принадлежит множеству 4 Обозначение {х|...х...}, где ...х... есть некоторое утверждение, включающее %, означает множество всех объектов х, для которых ...%・.. верно. Так, {х\х является четным натуральным числом} есть множество {0,2, 4,6, ...}.
Если Л, В суть множества, то запись Л ^ В означает, что 4 содержится (как часть) в В (или Л является подмножеством В); запись 4и方 означает, что 4三 8, но Л =#В (т. е. Д является собственным подмножеством В). Объединение множеств Д, В есть множество {х\х^А или хС В (или сразу двум множествам Л, В)| и обозначается Д U В; пересечение Л, В есть множество {х\х^А и х С В} и обозначается через 4 nB. Разность (или относительное дополнение) множеств Д, В есть множество {х\х^А и х^В} и обозначается А\В.
Пустое множество обозначается через 0. Стандартный символ N обозначает множество натуральных чисел {0, I, 2, 3,.二.}. Если Л—множество натуральных чисел (т. е. 4 三 N), то 4 обозначает дополнение к 4 до N, т. е. N\ Л. Через М+ обозначается множество положительных натуральных чисел {1, 2, 3, ...}, а множество целых чисел, как обычно, обозначается через Z.
Упорядоченная пара элементов х, у обозначается (х, у); таким образом, вообще говоря, (%, f/j =/= (у, х). Картезианским или декартовым, произведением множеств Я и В называется множество {(х, у)\х^А9 у^В}, и обозначается оно через 4x8
Более общо, запись (хп ..., хл) обозначает упорядоченный п-набор (n-ку) элементов хп ..., хя; часто этот n-набор обо^ значается одной жирной буквой х. Если Дп ..., Лл суть множества, то Агх •. .хАп обозначает множество n-ок {(хп .. е ・• •,%/1 & € 4 и х2С Л2.. .хп^А^. Произведение Л х Д х ... ...X Д (п раз) сокращенно обозначают как 4〃; а Д1 означает просто Л.
Функции
Мы предполагаем, что читатель знаком с основным понятием функции и различием между функцией f и отдельным значением f (х) на данном х, на котором функция f опрене」 лена 1). Областью (определения) функции f называется мн о-: жество {х I / (х) определено} и обозначается Dom (/); мы будем, говорить, что /(х) не определено, если % 任 Dom(f). Множеств^ {/(х)|х€ Dom (/)} называется множеством значений, или о6ра・ зом (range), функции f и обозначается через Ran (/). Если Д' и В—множества, то будем говорить, что / есть функция из Л в В, если Dom (/)三 4 и Ran (力三 В. Когда Dom будет применяться обозначение f:Л —► В.
Функция называется инъективной, если из %, у W Dom (f) м х 展 у следует f(x)^=f (у). Для инъективной функции f через /-】обозначается функция, обратная к /, т. е. такая единственная функция g, что Dom (g)=Ran (/) и g (/(%))=% для всех %W € Dom (/). Функция f из А в В называется сюръективной. если Ran (f) = B.
Если f\ A —> В и функция / инъективна (сюръективна), то /, называется инъекцией (из Л в В) (сюръекцией (из А в В)). Функция, являющаяся одновременно инъекцией и сюръекцией,, называется биекцией. (
Предположим, что f является функцией, а X—множество. Ограничением / на X называется функция с областью опреде: ления X П Dom (/), значение которой в каждом х € ^ П Dom (f)1 равно f (%). Ограничение f на X обозначается через f\X: Ran(f|X) обозначается через f (X). Если У—множество, то прообразом У относительно f называется множество /■】(V)=
1)Обычно в математическах текстах функция / определяется как мна: жество упорядоченных пар, такое, что из (%, у)€/н(х, z)€/ следует= г' и / (%) по определению равно этому у. Мы не настаиваем на таком опре-^ делении функции, но наше изложение согласовано с ним.
I/(%)€/}• (Заметим, что прообраз определен даже тогда, ^гда функция не инъективна.)
Если 厶 g—функции, то будем говорить, что g продолжает /, если Dom ⑺三 Dom (g) н f (x) = g (x) для всех x € Dom (力;в краткой записи: f = g|Dom(/)・ Это отношение функций /, g записывается как f 三 g.
Композиция двух функций fug есть функция с областью определения {х\х^ Dom (g) н g (%) W Dom (f)}, значение которой, когда она определена, есть f(g(%))・ Эту функцию обозначают через fog.
Через f0 обозначаем нигде не определенную функцию; т. е. Dom (/0) н Ran (f0) == 0. Очевидно, что % = g | 0 для любой функции g・
В вычислениях нам часто будут встречаться функции или выражения, включающие функции, которые не всюду определены. В таких случаях очень удобно следующее обозначение. Пусть а(х) и Р(х) —выражения, включающие переменные x = (%i, ・・.,%J. Тогда запись а (л:) ^ Р (лг) означает, что для каждого х выражения а(х) и §(х) либо одновременно определены и равны, либо оба не определены. Так, например, для функций fug запись f(x)a^g (х) означает, что f = g; и для всякого числа у запись f(x)c^ у означает, что / (х) определено и равно у (поскольку у всегда определено).
Функции от натуральных чисел. В большей части этой книги мы будем иметь дело с функциями от натуральных чисел, т. е. с функциями из N" в N для разных п, большей частью для 九=1 или 2.
Функция f из N" в N называется п-местной функцией. Значение f на n-ке (х^,・・・,х〃) € Dom ⑺ записывается как /(%,•••,%〃) или /(х), если х представляет (хп ..., х„). Во многих книгах и статьях выражение частичная функция используется для обозначения функции из N" в N, область определения которой не обязательно совпадает с N". Для нас слово функция означает частичную функцию. Тем не менее при случае мы будем писать «частичная функция», чтобы подчеркнуть ее возможную «не всюду определенность». Тотальной функцией из № в N мн называем функцию из № в N, область определения которой есть все
Мы затушевываем различия между функциями и их значениями в различных точках, особенно в случае теоретикочисловых функций в двух довольно стандартных и недвусмысленных ситуациях. Во-первых, мы допускаем такие фразы как «Пусть /(%】, •••,%〃) —функция ・・•», что означает, что / является n-местной функцией. Во-вторых, мы часто описываем Функцию в терминах ее значения, задаваемого некоторой фор-
мулой. Например,《функция ха» означает «одноместная функция 厶 значение которой в каждом %WN естьх1»; аналогично 《функция % + * означает «двуместная функция», значение которой в каждой паре (%,处崑№ есть
Функцию, тождественно равную 0 на N, мы обозначаем через 0, и вообще для 加 W N функцию Nf N, значение которой всюду равно т, мы обозначаем жирным символом т.
Отношения и предикаты
• Если 4—множество, то свойство М(Xi, ..., хя), выполняющееся (или истинное) на некоторых n-ках из Ап и не выполняющееся (или ложное) на всех других n-ках из 4〃, называется n-местным отношением9 или предикатом на А 好・
Например, свойство %<у есть двуместное отношение (или предикат) на N; 2 < 3 выполняется (или истинно), тогда как 9 < 5 не выполняется (или ложно). Другой пример: каждая n-местная функция f нз N〃 в N приводит к (п+ 1)-местному предикату М (х,办 задаваемому условием:
М (%i,・・•, %〃, у), если и только если /(%【, ・・.,%〃) 4 y.
Отношения эквивалентности и порядка. (Читатель, не знакомый с этими понятиями, может при желании отложить чтение этого параграфа до тех пор, пока он не потребуется в гл. 9.) В гл. 9 мы встретимся с двумя специальными видами отношений на множестве Д.
Бинарное отношение R на множестве А называется отношением эквивалентности, если для всех х, yt z^A выполняются три следующие свойства:
(рефлективность) R (х, %);
(симметрия) R(%, у)今(т. е. влечет) R (у, х);
(транзитивность) если /?(%, у) и R (у. г), то R(%, z).
Говоря, что х, у эквивалентны (в некотором специальном смысле), мы подразумеваем отношение R (х, у). Затем мы определяем класс эквивалентности х как множество {у\ R(xt у)}, состоящее из всех элементов, эквивалентных %.
Двуместное отношение R на множестве А называется частичным порядком, если для всех %, у, z£ А.
(иррефлексивность) не R (х, %);
(транзитивность) если R(%, у) и R (у, г), то R (%,%).
】)Часто л-местное отношение, или предикат М (*) на множестве 4, отождествляется с множеством {х \х^Ап и выполняется М (*)}. Мы не настаиваем здесь на таком отождествлении, хотя наше изложение не противоречит такому подходу.
Частичный порядок обычно обозначается символом <, и мь】предпочитаем запись х < у записи < (х, у). Часто определяЮТ частичный порядок, вводя сначала предикат & (обозна- чаюший < или =) со свойствами:
х<х;
если х&у и у《%, то х = у;
отношение & транзитивно, а затем определяя х < у как х《у и х 耍 у.
Логические обозначения
Мы везде употребляем стандартные логические обозначения. Символ 三 обозначает эквивалентность по определению, 今 означает логическое следование, а о обозначает «логически влечет и вытекает из». Символы V, 3 используются в значении «для всех» и «существует» соответственно. Знак □ всюду в тексте обозначает конец доказательства.
Ссылки
Каждая глава разделена на параграфы, и пункты в каждом параграфе нумеруются последовательно. Так, теорема 5-1,4 означает теорему 1.4 главы 5, или 4-й пункт первого параграфа пятой главы. При ссылках внутри главы номер главы опускается. Упражнения включены в эту систему нумерации. Так, упражнение 6-1.8(2) означает второе упражнение пункта 1.8 («упражнения») главы 6.
Ссылки на источники в библиографии делаются с указанием автора и года публикации работы, на которую мы ссылаемся.
Глава 1 Вычислимые функции
Эту главу мы откроем обсуждением основного понятия алгоритма, или эффективной процедуры. В последующих параграфах мы уточним это понятие, используя идеализированную вычислительную машину некоторого вида; это составит основу математической теории вычислимости и вычислимых функций.
Алгоритмы или вычислительные процедуры
Обучаясь арифметике в начальной школе, мы познакомились со сложением и умножением двух чисел. Нам в явной форме не говорили, что у любой пары чисел существуют произведение и сумма, а указали способы или правила их нахождения. Такие способы или правила являются примерами алгоритмов, или вычислительных (эффективных) процедур. Их применение не требует изобретательности или сообразительности, ученику необходимо было только следовать инструкциям учителя.
Более общо, алгоритм, или эффективная процедура,—это механическое правило или автоматический метод, или программа для выполнения некоторых математических операций. Приведем еще несколько примеров операций, для которых легко можно указать алгоритмы:
(а) по данному и найти n-е простое число;
дифференцирование полинома;
нахождение наибольшего общего делителя двух натуральных чисел (алгоритм Евклида);
для двух данных чисел х, у решить, является ли % кратным у.
Неформально и схематически алгоритм представлен на рис. 1а. На вход подается информация или объект, подлежащий обработке (например, полином в примере (1.1) (Ь), пара натуральных чисел в примерах (1.1) (с) и (d)), а выходом является результат обработки или операции над входом (так, для (1.1) (Ь) это производная полинома, а для (1.1) (d)—ответ «да» или «нет»). Выход вырабатывается автоматически черным ящиком—который может быть компьютером
и/н школьником, действующим по инструкции, или даже очень умно订 хорошо тренированной собакой. Алгоритм есть процедура (или способ вычисления), осуществляемая черным ящи- К0М для получения выхода из входа.
Если алгоритм, или эффективная процедура, используется ДЛя вычисления значений числовой функции, то эта функция называется эффективно вычислимой, или алгоритмически вы・ числимой, или просто вычислимой. Например, функции ху.
Черный ящик
Рис. 1а.
НОД (х, £/) = наибольший общий делитель чисел % н у и / (/2)= простое число вычислимы в неформальном смысле, как уже отмечалось выше.
Рассмотрим, с другой стороны, следующую функцию:
'1, если в десятичном разложении числа л найдется &(〃)= ровно и идущих подряд цифр 7;
О в противном случае.
Большинство математиков считают, что g является вполне «законной» функцией. Но вычислима ли функция g? Существует механическая процедура для последовательного порождения цифр в десятичном разложении 冗】>,поэтому напрашивается следующая «процедура» для вычисления функции g.
«При заданном п начните вычислять десятичное разложение л по одной цифре за один такт времени и отмечайте появление семерок. Если на каком-нибудь шаге появится отрезок, состоящий ровно из п семерок, остановите процесс вычисления и положите g(〃)= 1. Если такой отрезок не будет обнаружен, то положите g(几) = 0》.
Недостатком этой «процедуры» является то обстоятельство, что если для некоторого п не существует отрезка из п семерок, то ни на каком шаге процесса мы не можем остановиться и сделать заключение о том, что этот факт имеет место. На каждом данном шаге мы можем ожидать, что такая последовательность семерок может встретиться в еще не исследованной бесконечной части разложения л. Таким образом, эта «процедура» будет продолжаться бесконечно долго
1) Это будет установлено в гл. 3 (пример 7.1 (3)).
для всякого входа и, такого, что g(n) = 0; поэтому она не является эффективной процедурой. (Возможно, что существует эффективная процедура для вычисления g, основанная, вероятно, на некоторых теоретических свойствах числа л. В настоящее время, однако, такая процедура неизвестна.)
Этот пример выявляет две характерные особенности понятия эффективной процедуры, а именно что такая процедура совершается за некоторую последовательность шагов (каждый шаг выполняется за конечное время) и что каждый выход появляется после конечного числа шагов.
До сих пор мы неформально описывали понятия алгоритма (или эффективной процедуры) и связанного с ним понятия вычислимой функции. Эти понятия нуждаются в уточнении, прежде чем они станут основой для математической теории вычислимости или невычислимости.
Определения будут даны в терминах простого «идеализированного компьютера», который выполняет программы. Ясно, что процедуры, которые могут быть проделаны реальным компьютером, являются примерами эффективных процедур. Однако каждый отдельный реальный компьютер ограничен как величиной чисел, которые поступают на вход, так и размером доступного рабочего пространства (для запоминания промежуточных результатов); именно в этом отношении наш «компьютер» будет идеализированным в соответствии с неформальной идеей алгоритма. Программы нашей вычислительной машины будут конечными, и мы потребуем, чтобы завершаемые вычисления выполнялись за конечное число шагов. Входы и выходы мы ограничим натуральными числами; это не является существенным ограничением, поскольку операции, включающие другие виды объектов, могут быть закодированы как операции над натуральными числами. (Более подробно мы остановимся на этом в § 5.)
Машина с неограниченными регистрами
Выбранный нами идеализированный компьютер называется машиной с неограниченными регистрами (МНР); он является легким видоизменением машины, впервые рассмотренной Ше- пердсоном и Стерджисом (1963). В этом параграфе мы опишем МНР и ее работу, а возможности ее начнем исследовать в § 3.
МНР содержит бесконечное число регистров, обозначаемых через R” R8, R3, ..., каждый из которых в любой момент времени содержит некоторое натуральное число; число, содержащееся в Кя, мы будем обозначать через гп. Это можно представить следующим образом:
■ RiR2R3R,R$RgR7
Л10「3%Гз『6「7
МНР может изменять содержимое регистров в ответ на некоторую команду, или инструкцию, которую она может воспринять. Эти команды соответствуют чрезвычайно простым операциям над числами. Конечный список команд образует программу. Команды бывают следующих четырех видов.
Команды обнуления. Для каждого n= I, 2, 3, ... имеется команда обнуления Z (п). Команда Z (п) заставляет МНР заменить содержимое R〃 на 0, не затрагивая другие регистры.
Пример. Пусть МНР находится вначале в следующий конфигурации:
RiR?R3R4Rs5б
9652370
и выполняет команду обнуления Z (3). Результатом будет конфигурация
960237 О
Реакция МНР на команду обнуления Z (п) обозначается через 0—/?〃 или 厂〃:=0 (читается, как гп становится 0).
Команды прибавления единицы. Для каждого n= 1, 2, 3, ... имеются команды S (и). Под действием команды S (;i) МНР увеличивает содержимое регистра R〃 на 1, оставляя без изменения содержимое других регистров.
Пример. Пусть МНР находится в указанной выше конфигурации (*) н выполняет команду S (5). Тогда новая конфигурация будет
Ri R? R3 R4 R, Rs
(**) Г 9 I 6 I 0 I 23 I 8 I 0 I .
Действие команды прибавления единицы S(n) обозначается через гл+ 1 —► Rn или r„:rn+ 1 (г„ становится %+ 1)・
Команды переадресации. Для каждого т= 1, 2, 3,... и и= 1, 2, 3, ... имеется команда переадресации Т(т, п). Ответом МНР на команду Т (/и, и) является замена содержи-
мого R〃 числом rmt содержащимся в R^ (т. е. перенос гт в R〃); все другие регистры (включая R^) не затрагиваются это£ командой.
Пример. Пусть МНР находится в указанной выше конфи гурации (**) и выполняет команду Т (5,1). Тогда результатом будет конфигурация
Ri Rj R3 R4 Rs Re
8 6 0 23 8 0 ...
Действие команды переадресации Т (/и, п) на МНР обознача-г ется через rm—^ Rw или гп: = гм (г„ становится 厂切).
Команды условного перехода. В работе неформального алгоритма могут быть моменты, когда предписываются альтернативные возможности действия, зависящие от результата работы алгоритма к этому моменту. В других ситуациях может потребоваться повторить программу несколько раз. МНР может выполнять такие процедуры, используя команды условного перехода^ они позволяют делать скачки вперед и назад в списке команд. Мы будем использовать команду условного перехода для совершения, например, следующего действия: «Если % = J, перейти к Ю-й команде программы, в противном случае перейти к следующей команде программы». Команда, вызывающая это действие, записывается как J (2, 6, 10).
Вообще, для всех т=1, 2, 3, ...; л = 1, 2, 3, ... и д=1, 2, 3, ... имеются команды J (/п, % д). Реакция МНР на команду J (m, n, д) состоит в следующем. Предположим, что эта команда встретилась в программе Р. Сравнивается содержимое регистров R^ и R^, но оба регистра остаются неизменными. Далее, если гт = гп, то МНР переходит к выполнению д・й команды программы 尸;если гт =# гп, то МНР переходит к выполнению следующей команды в Р. Если условный переход невозможен ввиду того, что в Р меньше чем q команд, то МНР прекращает работу.
Команды обнуления, прибавления единицы и переадресации называются арифметическими.
Действия МНР, выполняющей команды указанных четырех типов, суммированы в табл. I.
Вычисления. Чтобы производить вычисление, МНР должна быть снабжена программой Р и начальной конфигурацией, т. е. последовательностью alt а?, а8, ... натуральных чисел в регистрах R】, Re, Rs,・•・・ Предположим, что программа Р состоит из последовательности s команд /п /,,・・・,/$. МНР
Таблица 1
—-
Тип команды
Команда
Ответ МНР
Обнуление
z®
Замена гп на 0 (0 f R〃 или гп:= 0)
Прибавление 1 к гп (гп+ 1 -* R„
Прибавление единицы
S®
Переадресация
Т (т,力
или rrt: = rn+l)
Замена гп на гт (гт -► R„ или
Условный переход
J (加,九,g)
гп' =「т)
Если гт = гп, то перейти к д・й
команде; в противном случае перейти к следующей команде
начинает вычисление с команды /п затем выполняются /2, /8 и т. д. до тех пор, пока не встретится команда вида J (т, л, 9). В этом случае МНР переходит к выполнению команды, предписанной J (/и, и, q) и текущим содержанием регистров Rm и
Пример. Рассмотрим следующую программу:
2, 6)
2, 6)1,2)
1)
Рассмотрим вычисление на МНР с такой программой при начальной конфигурации
Ri R2 R3 R4 Rg
9
7
0
0
0
(Мы сейчас не касаемся вопроса о том, какую функцию фактически вычисляет эта программа, а хотим лишь продемонстрировать, как МНР работает по программе чисто механическим образом, не нуждаясь в понимании алгоритма, который выполняется ею.)
Ход вычисления можно представить, записывая последовательно сверху вниз конфигурации машины вместе со следующей командой, к которой она переходит на данном шаге.
Р = 13 ••• /$ следующим образом. МНР начинает работу с выполнения команды 人.Пусть в некоторый будущий момент вычисления МНР выполняет команду /Л. Тогда после ее выполнения МНР переходит к следующей команде в вычислении определяемой так:
если /Л не является командой условного перехода, то следующей командой (в вычислении!) оказывается /&+〔;
если 4 = J(m, 〃, g), то следующей командой в вычислении будет /^, если rm = r„t и /Л+1 в противном случае,
где гт и гп—текущие содержимые регистров Rm и R„ соответственно.
МНР продолжает работать таким образом так долго, как это окажется возможным; вычисление останавливается тогда и только тогда, когда нет следующей команды, т. е. когда МНР только что выполнила команду и «следующая команда в вычислении есть /&, где v > s». Это может произойти одним из способов:
если 々=s (выполнена последняя команда в Р) и /,—— арифметическая команда;
если 〃 = J(m, n, g), гт^гп и g > s;
если 〃 = J (加,n. g), гтфгп и * = s.
Мы скажем тогда, что вычисление остановилось после выполнения команды /Л; заключительная конфигурация есть пос ледова-
тельность rn % r3t ... содержимого регистров на этом шаге.
Продолжим теперь вычисление, начатое в примере 2.1.
Пример 2.1 (продолжение}
Здесь вычисление прекращается, поскольку в программе нет 7-й команды.
2・2・ Упражнение. Проведите вычисление по программе примера 2.1 с начальной конфигурацией 8, 4, 2, 0, 0,....
Сущность программы и ход вычисления часто удобно описывается неформально с помощью диаграммы переходов (или блок-схемы}. Например, диаграмма переходов программы из примера 2.1 приведена на рис. 1Ь. (В стороне справа от диаграммы переходов мы указали типичную конфигурацию регистров на различных этапах вычисления.) Примем соглашение о том, что условия проверки (соответствующие командам условного перехода) помещаются в ромбах.
Перевод этой диаграммы переходов в программу из примера 2.1 почти очевиден. Заметим, что переход назад по программе в ответ на «нет» второго условия ^гх = га?» осуществляется по 5-й команде J (1, 1, 2), которая является безусловным переходом: гг — г2 всегда имеет место, так что эта команда всегда вызывает переход к /в.
При написании программы, реализующей данный алгоритм, часто в качестве промежуточного шага оказывается полезным составление неформальной диаграммы переходов (или блок- схемы): преобразование блок-схемы в программу затем оказывается обычно шаблонным делом.
Бывают, конечно, вычисления, которые никогда не заканчиваются: например, никогда не оканчивается никакое вычис-
ление по простой программе S(l), J (1, 1, 1). Вычисление по этой программе представлено блок-схемой на рис. 1с. Команда условного перехода все время заставляет МНР возвра-
曲"〃0
Останов
Рис. lb.
Типичная конфигурация
z
Поем 彳 циклов в зтай программе
I胃配加+"|
если g工〃+4;
z+4 夕+A z+彳
Блок-схема программы из примера 2.1.
щаться (т. е. делать петлю) к команде S(l). Встречаются более сложные способы, когда вычисление может продолжаться бесконечно долго, но всегда это, по существу, обусловлено повторением цикла при выполнении программы.
2.3. Упражнение. Покажите, что вычисление по программе из примера 2.1 с начальной конфигурацией 2, 3, 0, 0, 0,.., никогда не останавливается.
Позднее мы вернемся к проблеме разрешения: остановится
лИ в конце концов произвольно выбранное вычисление?
Теперь нам окажутся полезными некоторые обозначения. Пусть 〃i,а?,а®,...——бесконечная последовательность элеМентов а Р — программа; мы будем обозначать и записывать:
через 尸(%, а?, 〃8, …)вычисление по программе с начальной конфигурацией
〃1, 〃2,@3,...;
Р(ап а?, @8, • • )1 обозначает, что вычисление Р(%, аа, а§, ...) в конце концов останавливается;
戶(%, &, %,・・・)t означает,
что вычисление P(al9 а^ aj никогда не
останавливается.
В большинстве случаев в рассматриваемых нами началь* ных конфигурациях все ah кроме конечного их числа, равны 0. Поэтому удобным оказывается следующее обозначение. Пусть о】,а2.. .ап — конечная последовательность натуральных чисел; мы записываем
через Р (ап а2,・・・,@〃) вычисление Р(а「 а2,... • • •' “〃,0,0・・・).
Следовательно,
尸(а° “2,・•・,QJI означает, что Р (ап %,•・・,Q〃, 0, O..・)J;
(6)P(alfa2t ...»а肃 означает, что Р(а^ а2,..., ал, 0,0,...)]
Часто говорят, что вычисление, которое останавливается, сходится, а то вычисление, которое никогда не останавливается, расходится.
МНР-вычислимые функции
Предположим, что f—функции мз № в К (n> 1); что означает выражение: «функция f вычислима на МНР?» Естественно представлять себе ответ в терминах вычисления значения /(а» ..., ал) по программе Р с начальной конфигурацией @и аа, ..., а〃, 0, 0, ..., т. е. мы рассматриваем вычисления вида Р(а“ а2) ..., а〃). "Если каждое такое вычисление останавливается, нам нужно получить единственное число, которое мы сможем рассматривать как выход или результат вычисления; можно условиться считать результатом число rn содержащееся в регистре R】в конце вычисления. Окончательное содержимое других регистров мы можем рассматривать как избыточную и ненужную информацию и не
обращать на него внимания, коль скоро мы получили требуемый результат в 氐.
Так как вычисление Р (ап ..., ал) может не завершаться, мы должны распространить это определение вычислимости на функции из N" в N, область определения которых отличается от целого К〃, т. е. на частичные функции. Мы лишь потребуем, чтобы осмысленные вычисления заканчивались (и давали правильный результат!) в точности для всех входов из области определения функции /. Таким образом мы приходим к следующим определениям.
Определения
Пусть f——частичная функция из N〃 в N・
Предположим, что Р—программа, а %, ..., а„, ЬС N.J
Вычисление P(q“ а2, ..., а〃) сходится к 方,если Р (ап ..., а^ и в заключительной конфигурации в регистре Ri находится Ь. Этот факт записываем как P(alt ..., a^b;
программа Р МНР-вычисляет /, если для всех а】,...,q〃, b имеет место 戶(&, ..., a^\b тогда и только тогда, когда (%, ..., ajWDomf и 『(%, .... ап} = Ь, (В частности, это означает, что Р(аи ..., q〃)J тогда и только тогда, когда (%, ..., а„) С Dom /.)
Функция / является МНР-вычислимой, если существует программа, которая МНР вычисляет Д
Класс МНР-вычислимых функций обозначается через €, а класс п-местных МНР-вычислимых функций—через g〃. С этого момента под термином вычислимое мы будем подразумевать МНР-вычислимое, за исключением гл. 3, в которой обсуждаются другие понятия вычислимости.
Рассмотрим теперь некоторые легкие примеры вычислимых функций.
Примеры
(а) х + у.
Мы получим х + у, прибавляя 1 к х (используя соответствующие команды) у раз. Программа вычисления % + у начинается с начальной конфигурации х, у, 0, 0, ...; наша программа продолжает прибавление 1 к г。 используя R3 как счетчик числа прибавлений 1 к ^. Типичной конфигурацией в процессе вычисления является
х + к
У
О
0
программа спроектирована на останов, когда k = yt при этом в регистре К оказывается число % + у, что и требуется.
Процедура, которую мы хотим реализовать в нашей программе, представлена блок-схемой на рис. Id. Осуществляет работу МНР следующая программа:
Л J(3,2,5) — 厶 S(l) /з s(3) h J(l,l,l)—
(Пунктирная стрелка, которая не является частью программы, показывает читателю, что от заключительной команды всегда совершается переход к первой команде.) Заметим, что останов может осуществляться командой условного перехода к /6>
НачалоНачалоОстановОстанов
Начало
Начало
Останов
Останов
Рис. Id. Блок-схема программы сложения (пример 3.2(a)).
которой у нас нет. Таким образом, функция % +“ оказывается вычислимой.
(b)"l = j 0, если х = 0.
(Так как мы ограничились рассмотрением функций из N в N, то это наилучшая аппроксимация функции %—1.)
Напишем программу, реализующую следующую процедуру. Для данной начальной конфигурации %, 0, 0, 0,... сначала проверить, верно ли % = 0; если да, остановиться, в противном случае изменить содержимое двух счетчиков, содержащих
Л и fe+1, начиная с Л = 0. Типичной конфигурацией зде будет
Ri Rz R3 R4
Проверяем, верно ли, что % =々+1; если да, то результата вычисления служит 论;в противном случае увеличиваем са держимое обоих счетчиков на единицу и проверяем снова
НачалоТипичная
Рис. 1е. Блок-схема для х二 1 (пример 3.2(b)).
Блок-схема, представляющая эту процедуру, изображена на рис. 1е. Ниже записана сама программа этой процедуры:
Л J(l,4,9)
厶 S(3)
厶 J(l,3,7) "一
厶 S(2)
/5 S(3)
厶 J(l, 1,3)
Л T(2,l)
Таким образом функция х— 1 вычислима.
/、-、/ 4•修 если 力 четно, (c)f(%) = J 2
{ не определена, если х нечетно.
В этом примере Domf = E (множество четных чисел), т. е. мы должны проверить, что наша программа не останавливается на нечетных входах.
Функция /(х) вычисляется с помощью следующего алгоритма. Изменяется содержимое двух регистров, в одном из
Начало
«:=%+1(仗1凸+1)
2%=2% + 2伉F+2入
Рис. И. Блок-схема для примера 3.2(c).
которых находится число 左,а в другом 2左,где 也 пробегает РЯД значений 0, 1,2, 3, ...; для последов а те льных значений 也 проверить, верно ли9 что % = 2论;если верно, то ответ есть 々;в противном случае увеличить k на единицу и повторить предыдущую команду. Если х нечетно, то эта процедура, очевидно, никогда не закончится.
Типичной конфигурацией будет
1 Ri R2 R3 R4
I J 2k к 0 …
с исходным значением 也=0. Блок-схема этой процедуры приведена на рис. If. Реализует ее следующая программа:
3⑹⑵⑵3(3 J s s s J т3⑹⑵⑵3(3 J s s s J т2, 6)
3⑹⑵⑵3(3 J s s s J т
3⑹⑵⑵3(3 J s s s J т
1
Следовательно, функция / вычислима.
Замечание. Программы в приведенных примерах, конечно, не являются единственными программами, которые вычисляют эти функции.
Для каждой программы Р (т. е. любого конечного списка команд) н 〃》1 результатом применения программы Р к начальным конфигурациям вида а。а?, •・.,а〃, 0, °, •・・ является единственная м-местная функция, вычисляемая программой Р и обозначаемая как 脂).Из этого определения очевидно, что
(
единственное &, такое, что Р (ах, ...
• • •,^п)^» если Р(@[, . .., а〃)J ; не определена, если Р (ап ..., a〃)f.
В последующих главах мы рассмотрим вопрос об определении 产歹 для любой программы 尸.
Ясно, что конкретная вычислимая функция может быть вычислима многими различными программами; например, каждую программу можно изменить, добавив команды, ни разу не применяемые. Менее очевидно то, что могут быть различные неформальные методы для вычисления конкретной функции, и после формализации они дадут различные программы для одной и той же функции. В терминах введенных нами обозначений могут быть различные программы Рх н Pg с 卩做=卩禺 для некоторых (или всех) п. Позднее мы рассмотрим проблему, состоящую в выяснении того, вычисляют ли две программы одну и ту же функцию.
Упражнения
1. Покажите, что следующие функции вычисляются с по- моЕ;10 программ, составленных для этой цели.
(а) /(%)={:
f (%) = 5;
/(%, 4)= {
если х = 0, если х =#0;
0, если x = yt 1, если х=#у;
(d) /(х, у) = { (е) /(, {/) = {
0, если
1, если х〉у;
1/Зх, если х кратно 3, не определена в противном случае;
(f) / (х) = [2х/3] ([г] обозначает наибольшее целое число, не превосходящее г).
Пусть Р—программа из примера 2.1. Что такое 解?
Пусть Р—программа без команд условного перехода. Покажите, что найдется такое число т. что либо /$)(%) =加 для всех х, либо /У} (х) = х + т для всех х.
Покажите, что для каждой команды переадресации Т (/% п) существует программа без команд переадресации, которая на всякой конфигурации МНР дает тот же результат, что и Т (хи, п). (Таким образом, команды переадресации на самом деле избыточны в нашем определении МНР; тем не менее представляется естественным и удобным иметь такие команды, облегчающие построение программ.)
Разрешимые предикаты и проблемы
Решение вопроса о том, обладают ли числа данным свойством, является часто встречающейся задачей математики. Например, задача из примера (1.l)(d) состоит в выяснении Д«яя двух произвольных чисел %, у вопроса о том, кратно ли инсло х числу у. Алгоритм для этой задачи является эффективной процедурой^ дающей для входов х, у ответ «да» или «нет». Если мы условимся, что 1 означает «да», а 0 означает «нет》,то наша^операция сводится к вычислению функции
(1, если % кратно
' 勿 I 0, если х не кратно у.
Таким образом, можно сказать, что свойство, или предикат «% кратно д》,является алгоритмически или эффективно раз・
решимым, или просто разрешимым, если эта функция / числима.
В общем случае предположим, что М (хп ха, ..., хп) п-местный предикат на натуральных числах. Характерисп ческой функцией этого предиката см (х) (здесь х = (хп..., а называется функция
I 1, если М (х) истинно,'м(х) —1 °, если М (х) ложно.
4Л. Определение. Предикат М (х) раз реилим, если функш см вычислима; М (дг) неразрешим, если функция см невь числима.
Примеры
Следующие предикаты разрешимы:
«х=#г/»: функция f из упражнения 3.3 (1с) являете характеристической функцией этого предиката.
«х = 0»: характеристическая функция определяется так
J 1, если х = 0,j 0, если х=#0.
Функцию g вычисляет следующая простая программа:
3〜2,l d3(1.⑵⑵J J S т3〜2,l d3(1.⑵⑵J J S т
3〜
2,l d3(1.⑵⑵
J J S т
3〜
2,l d3(1.⑵⑵
J J S т
«х кратно 驴:можно написать программу для вычисления характеристической функции, но это будет долгим и сложным делом. Более просто мы установим разрешимость этого предиката в следующей главе, где будут развиты методы порождения более сложных вычислимых функций.
Заметим, что, говоря о разрешимости (или неразрешимости), мы всюду имеем дело с вычислимостью (или невычис- лимостью) тотальных (т. е. всюду определенных} функций.
В контексте разрешимости свойства или предикаты иногда называются проблемами. Так, мы можем сказать, что проблема «%*驴 разрешима. В гл. 6 мы займемся неразрешимыми проблемами.
4 3. Упражнение. Покажите, что следующие предикаты раз-
(а)《х<驴, (b) «х#=3», (с) «х четно».
5 Вычислимость на других областях
Поскольку МНР работает только с натуральными числами, наше определение вычислимости и разрешимости применимо только к функциям и предикатам от натуральных чисел. Эти понятия легко распространяются на другие виды объектов (т. е. целые числа, полиномы, матрицы и т. д.) с помощью кодирования.
Кодированием области D объектов называется явное и эффективное отображение a:D —► N. Мы будем говорить, что объект d£D кодируется натуральным числом a(d). Предположим, что f является функцией из D в D; тогда f естественно кодируется функцией 尸 нз N в N, которая отображает код каждого объекта d € Dom (力 в код объекта / (d). В явном виде это можно записать как f* = a о / о а*1.
Теперь можно распространить определение МНР-вычисли- мости на область D, полагая функцию f вычислимой, если /♦ — вычислимая функция натуральных чисел.
Пример. Рассмотрим область Z. Явное кодирование можно задать функцией а, где
J 2п, если п>0,
(—2п—1, если и < 0.
если т четно,если т четно,Тогда а"1 задается так:
если т четно,
если т четно,
(加彳加'
I —1/2 (加+1), если т нечетно.
Теперь рассмотрим функцию х— 1 на Z; обозначая эту функцию через /, получаем f*:N —► N, задаваемую
1, если % = 0 (т. е. %=а(0)),
尸(%) = <尸(%) = <х—2, если х〉0 м % четно (т. е. % = а(м),
尸(%) = <
尸(%) = <
п> 0),
% + 2, если * нечетно (т. е. % = a(〃),п < 0).
Написание программы, которая вычисляет f*9 является рутинным упражнением; итак, х—1 есть вычислимая функция на Z.
Приведенное выше определение очевидным образом pat ширяется на n-местные вычислимые функции на области D разрешимые предикаты на D
Упражнения
Покажите, что функция 2х на Z вычислима.
Покажите, что предикат «х^ 0» на Z является разре шимым.
вычислимыхвычислимыхГлава 2 Порождение функций
вычислимых
вычислимых
Как мы увидим в этой главе, различные способы комбинирования вычислимых функций приводят к другим ВЫЧИСЛИМЫМ функциям. Это дает нам возможность очень быстро устанавливать вычислимость многих обычно встречающихся функций, не прибегая всякий раз к выписыванию программы—занятию довольно трудоемкому и утомительному.
Основные функции
Сначала мы заметим, что некоторые особенно простые функции вычислимы; из этих основных функций (определенных ниже в лемме 1.1) мы построим более сложные вычислимые функции, используя технику, развитую в следующих параграфах.
Лемма. Следующие основные функции вычислимы:
нуль-функция 0 (0 (х) = 0 для всех %);
функция следования 无+1;
для каждых 〃》1 〃 l《i《〃 функция проекции U% определяемая посредством U1 (хп 厶,...,х^^х^
Доказательство. Эти функции соответствуют арифметическим командам для МНР. Конкретно их программы таковы:
0: программа Z (1);
%+i: программа S (1);
(/?: программа Т (i, 1). □・
Соединение программ
В каждом из нижеследующих § 3—5 нам понадобятся программы, которые содержат другие программы в качестве подпрограмм, В этом параграфе мы рассмотрим некоторые технические средства, позволяющие строить программы из последних параграфов наиболее прямым способом.
Простым примером построения программ может послужить следующий. Мы располагаем программами 尸 и Q и хотим написать программу для следующей процедуры: сначала де- JaR р, а затем Q. Интуитивно хочется просто написать под
командами программы Р команды программы Q. Но тут i но рассмотреть два технических момента. •
Пусть Р = /п /2, ..., /$. Вычисление по программе завершается, когда следующая команда в вычислении е /& для некоторого и〉s; в этом случае в нашей состав программе необходим переход к первой команде Q. Это п изойдет автоматически, если у = s+ 1, но не в других с чаях. Поэтому при построении составных программ нам d дует ограничиться рассмотрением лишь тех программ, kotoj останавливаются только тогда, когда следующей коман. является /$+1・ Говорят, что такие программы имеют спй дартный вид. Очевидно, что нестандартную остановку мо| вызывать лишь команды условного перехода. Так мы прю дим к следующему определению.
Определение. Программа Р = 1Ъ /纟,・•・,/$ имеет спи дартный вид. если для всякой команды условного перехс J (тп, п, q) в Р мы имеем g&s+ 1.
Примеры. В примерах 1-3.2 программы для (а) и (с) име стандартный вид, тогда как программа в (Ь) оказывает нестандартного вида.
Требование стандартного вида, как мы сейчас увидим, накладывает ограничения общности.
Лемма. Для каждой программы Р существует программ Р* стандартного вида, такая, что всякое вычисление по пр рамме Р* идентично соответствующем у вычислению по пре рамме Р за возможным исключением способа остановки, частности, для любых а” ..., а„, Ь
Р(ап ..., а^\Ь тогда и только тогда, когда Р* (а「・・・,%)《 а, следовательно, /%)=朋? для всех п > 0.
Доказательство. Предположим, что 尸=人, 厶,...,/ Чтобы получить из Р программу 尸*, достаточно просто изм нить команды условного перехода так, чтобы все останов происходили после условных переходов к команде /$+「 П ложим Р* = /;, /;, ..., /;, где, если /л не является комаи дой условного перехода, то 八=I疝 а если /后=J (团,〃,g), 1
/.= J 〃,если g《s+L
I J (m, n, s+ 1), если g〉s + 1.
Тогда, очевидно, P* удовлетворяет требованиям леммы.匚
Предположим теперь, что программы Р и Q имеют ста± дартный вид. Вторая проблема, возникающая при соедин нии программ Р и Q, связана с командами условного пер
хода в Q・ Команда J (тп, 〃, д) в Q предписывает переход к -й команде в Q (если гт ^ г„). Но д・я команда Q будет % + «)・й командой в составной программе; таким образом каждый переход J (т,九,д) в Q должен быть заменен на переход J (团,九,s + g) в составной программе, чтобы сохранить смысл программы.
Теперь без всяких трудностей можно определить соедине- н〃е, или конкатенацию двух программ стандартного вида.
Определение. Пусть 尸 и Q—программы стандартного вида длины s и / соответственно. Соединением, или конкатенацией, 尸 м Q (в записи: PQ или PQ) называется программа /п ... .一,/$,/$+1,••・,/$+»,「де Р== А, ••・,/$, а комэнды /$+],••• ...,ls+t суть команды программы Q, у которых каждый условный переход J (m, n, q) заменен на J (/и, n, s + g)・
Очевидно, что при таком определении результат действия PQ будет тот, который нам необходим: каждое вычисление по программе PQ совпадает с соответствующим вычислением по программе Р, за которым следует вычисление по программе Q, начатое в заключительной конфигурации программы Р.
Прежде чем перейти к основным задачам этой главы, рассмотрим еще два вопроса. Предположим, что мы хотим составить программу Q, содержащую данную программу Р в качестве подпрограммы. Чтобы написать Q, часто бывает важно найти некоторые регистры, не затронутые вычислением по программе Р. Это можно сделать следующим образом.
Поскольку программа Р конечна, найдется наименьшее число “,такое, что ни один регистр & с и〉〃 не затронут вычислением по программе Р, т. е. если Z(n), или S (п), или Т (加,и), или J (тп, п, д) является командой Р, то m, п ^ 〃. Очевидно, на протяжении всего вычисления по программе Р содержимое регистра R^ с и〉〃 остается без изменения и не оказывает никакого воздействия на q,・••, га. Тогда при составлении новой программы Q можно использовать регистры Rp для и〉〃,например, для запоминания информации, без всякого воздействия на вычисление по подпрограмме Р. Обозначим это число и через р (Р).
И наконец, введем одно обозначение, которое должно сильно упростить основные доказательства этой главы. Пусть Р — программа стандартного вида, вычисляющая функцию /Ui, ..., хЛ). Часто, когда Р используется как подпрограмма большей программы, входы jqхл, для которых нужно найти значение /(хп ..., %〃), записываются в регистрах R小...,R/^, а не в Rn ..R„, как требуется в программеР; выход/(хп ..., х„), который потребуется в дальнейшем,
можно поместить в регистр R” а не в R” как было условлено^ наконец, рабочие регистры R】,...,Rp(Р) для Р могут держать разного рода нежелательную информацию. Мож модифицировать Р, принимая во внимание все эти детали.
fZ(rtH-l)
1 zd(p))
НачалоНачалоT(LOT(LOОстанов
Начало
Начало
T(LO
T(LO
Рис. 2а. Блок-схема программы 戶[厶,••・,/〃—► 〃•
Обозначим через Р[1и ・・・,/л —► /] программу на рис. 2 транслирующую блок-схему в левой части рисунка. Пр грамма Р [/п ..., /л —> /] вычисляет f(rle ・・・,、)и помета результат в R/. Кроме этого, программа затрагивает толы регистры R】,Rv . Rp(勺 и R『(В определении Р[/п . ・・・,/л ~* /] мы предполагаем, что регистры R^, ..., R отличаются от R” ..., R〃; так будет во всех случаях, ког/ мы будем применять эти обозначения. Читатель долж суметь изменить определение в ситуациях, где это не име места.)
Подстановка
Обычный способ построения новых функций из старь состоит в подстановке одних функций вместо аргументов другие, известный иначе под названием композиции функци
В следующей теореме мы покажем, что# применяя подста^ новку к вычислимым функциям, мы получаем снова вычисли- мне функции. Иными словами, класс 皆 замкнут относительно операции подстановки.
Теорема. Пусть /(%, ・•・,%) “ gjx)g*(*),е°е # = (%iх„), суть вычислимые функции. Тогда и функция
九(х)亠 f 怎(%),・•・,gk (*)) вычислима.
(Замечание. Функция h(x) определена тогда и только тогда, когда все функции ^(х), .・・,g尼(м) определены и (gi (%),・・•, g*(*)) € Dom (f); таким образом, если / и ^ (х),... ,..,g%(x) суть тотальные функции, то и А—тотальная функция.)
Доказательство, Пусть программы 尸,Gi, ••., Gk стандартного вида вычисляют функции /, g「 ..., gk соответственно. Напишем программу ", которая осуществляет следующую естественную процедуру для вычисления h. «Для данного х, используя программы Gn ..., СЛ, вычисляйте последовательно ^ (х), ..., §Л (х), записывая их значения в порядке их вычисления. Затем примените программу F для вычисления f(g】(*),••・,gM%))・》
Нужно принять небольшие меры предосторожности, чтобы избежать потерь информации, которая потребуется на более поздних шагах процедуры, а именно х и те значения g/(*), которые уже получены. Полагая /п = тах(〃, Л, p(F), p(GJ,・・・
• p(GQ), мы начнем с запоминания * в Rm+1, ..., Rw+„; регистры Rm+/x+1, ・・・, Rm+〃+* будут использованы для запоминания значений gz (х), когда они будут вычислены при /= =1, 2, ..., Л. Эти регистры совершенно не затрагиваются вычислениями по программам 尸,Glt ..., G%. Типичной конфигурацией при вычислении по программе Н будет следующая:
Регистры памяти/-一人-. _ 、
R1 ・♦・ Re R/n+1 • • • R-m + л R/п fn-H R/n+n+2 • • • R/n +n+f
[< * •a 0 何)%(") • • •夕旬。。• • •
Неформальная* блок-схема для вычисления R дана на рис. 2Ь. Ее легко транслировать в следующую программу Я, которая вычисляет А:
Т(1, т+1)
Т(п, т^п)
Gx [m+L ^+2, ・・・, /и+〃 —/и+〃+1] (Вспомните значенвд этих записей из § 2|
Gk[m+\t加+ 2,・・・,m+几一加+九+月]
F[m + n + \t ..., m + n + k—^ 1]
Очевидно, что вычисление Н (х) будет заканчиваться тогда и только тогда, когда заканчиваются каждое из вычислен и!
Начало
Рис. 2Ь. Подстановка (теорема 3.1).
О/(х) (1 < /<Л) и вычисление 尸(^(х), ...» g&(*)), что и ♦ребуется. □
Новые функции можно получить перестановкой и отождествлением переменных или добавлением новых фиктивных
переменных; например, из функции f(yu %) можно получить
儿 的,厶)—f(^ %J (перестановка), 九a (x) 4 / (x, x)(отождествление),
Л8 (хх, xt> %8)4/(%a, x8) (добавление фиктивных переменных)
Следующее применение теоремы 3.1 показывает, что каждая из этих операций (или их комбинаций) преобразует вычислимые функции в вычислимые же функции.
Теорема. Пусть f(yu ・・・,у^——вычислимая функция и 々с •••,%/ ——последовательность из Л переменных хх, •・・,хп (возможно, с повторениями}. Тогда функция Л, определяемая соотноигением 九(々,・・・,%J 4 f (%八,・• •,勺丿,вычислима.
Доказательство. Полагая * = (%, ..., х„), получаем функцию h(x) = f(Uit (*),・・・,67% (*)),которая вычислима согласно лемме 1.1(c) и теореме 3.1. □
Используя этот результат, можно убедиться в том, что теорема 3.1 остается также справедливой, когда подставляемые в f функции gi,・・・,gk не обязательно зависят от всех переменных хи ・・・,х„, как в следующем примере.
Пример. Функция f(xlt %分,%8)= %i+Xg+%8 вычислима; это можно вывести из того факта, что вычислима функция х + у (пример 1-3.2(a)), подставляя ^ + ^ вместо х и х8 вместо у в % + у・
Подстановка в сочетании с принципом, описываемым в следующем параграфе, дает мощный метод порождения вычислимых функций.
Упражнения
Не составляя программ, покажите, что для каждого m£N следующие функции вычислимы:
(Q)т (напомним, что m (х) = /и для всех х), (Ь) тх.
Пусть функция f(%, у) вычислима и /и£М Покажите, что функция Л (х) ^ / (х, т) вычислима.
Предположим, что g(%)—всюду определенная (или тотальная) вычислимая функция. Покажите, что предикат М (х, у), задаваемый посредством М(х, у)三(g (%) = //), разрешим.
Рекурсия
Рекурсия——это способ задания функции путем определения] каждого из ее значений в терминах ранее определенных з* чений и, возможно, использования других уже определен* ных функций.
Для уточнения предположим, что /(*) и g(x, g, z) суть функции (не обязательно тотальные или вычислимые). Рассмотрим следующее «определение» новой функции А (ж, у): (4.1)(i) Л(х, 0)-/(х),
(ii) Л(х, y+l)4g(x, у. Л(х, у)).
На первый взгляд это может показаться несколько странным определением, потому что в (ii) Л определяется в терми* нах самой функции Л—порочный круг?! Однако, немного по-, думав, мы убеждаемся в том, что это корректное определение: чтобы найти, например, значение 力(*, 3), сначала находим h(x, 0) по (4.1) (i); затем, зная Л (х, 0), используем (4.1) (ii) для получения Л(х, 1); аналогично получаем h(xt 2) и, наконец, h(x, 3) повторным применением (4.1)(ii). Таким образом, порочного круга в определении удается избежать ввиду того, что, если определено одно значение Л(х, у), остальные определяются через полученные ранее.
Про функцию Л, определенную таким образом, говорят, что она определяется рекурсией из функций fug; уравнения (4.1) известны под названием уравнений рекурсии. Если хотя бы одна из функций / и g не тотальна, то и Л, определенная уравнениями (4.1), может не быть тотальной, т. е. может быть не всюду определенной; область определения h удовлетворяет условиям: (х, 0) € Dom (Л) тогда и только тогда, когда *£Dom(f); (х, t/+ 0 € Dom (Л) тогда и только тогда, когда (%, у) € Dom (Л), а (х, у. Л(х, g))£Dom(g).
Проведенное выше рассуждение мы подытожим следующей теоремой, доказательство которой опускается.
Теорема. Пусть лг = (хп ..., &), и предположим, что f(*) “ gg 9, z) суть функции; тогда существует единственная функция Л(х, у), удовлетворяющая уравнениям рекурсии /1(%, 0)4/(%), Л(х, y+l)4g(x,弘九(#, д))・
:Замечание. Когда 〃 = 0 (т. е. параметры * не представлены), уравнения рекурсии принимают вид
力(0) = а,
Л(1/+1) = ^(!/, А (у)), где а^^
Примеры
Сложение: для любых х, у
% + 0 = х,
х + (У+1) = (% + !/)+1.
Таким образом сложение (т. е. функция Л(х, у) = х-^у) определяется посредством рекурсии над функциями /(;5 = х и g(x,弘 z) = z+ 1.
у\\ на основании соглашения о том, что 0! = 1, имеем 0! = 1
匂+1)!=贝®+D・
Стало быть, функция у\ определена рекурсией из 1 и функция g®, z) = z®+ 1).
Известны более общие виды определений по рекурсии, чем тот, который мы рассмотрели; пример тому встретится в § 5, а более полное обсуждение этого вопроса будет проведено в гл. 10. В тех контекстах, где рассматриваются рекурсии более общего вида, чрезвычайно простая рекурсия (4.1) называется примитивной рекурсией.
Многие часто встречающиеся функции легко определяются посредством (примитивной) рекурсии, поэтому для установления вычислимости чрезвычайно полезной оказывается следующая теорема. Коротко говоря, в ней доказывается, что класс g замкнут относительно операции рекурсии.
Теорема. Пусть /(*) u g(x, у, z)—вычислимые функции, где х = (хп ..., х„); тогда функция h(xt g), полученная из / 〃 g с помощью примитивной рекурсии, вычислима.
Доказательство. Пусть 尸 и G—программы стандартного вида, которые вычисляют функции /(*) и g(xt у, г). Мы построим программу Н для функции Л(х, д), определенной рекурсивными уравнениями 4.1. При заданной начальной конфигурации jq, K・・f %〃, у, 0, 0, 0, ... программа Я сначала вычисляет Л(х, 0) (применяя 尸);затем если у 耍0, то " применяет (мносократно!) программу G для последовательного вычисления Л (х, 1), Л(х, 2), ...» Л(х, у) и затем останавливается.
Пусть m = max (n + 2, p(F), р (G)); начнем с запоминания ",у в регистрах Rm+1, ...» Rm+n+1; следующие два регистра используются, чтобы запоминать текущие значения чисел А н h(xt %) для fe = 0, I, 2, ..., у Обозначая сумму т + п иерез /, рассмотрим типичную конфигурацию процесса вычисления:
Регистры памяти
R1 • • «Rm R/n+i • • • Re Re+1R什2R,+3
(*) 厂… I II % I方(吃A) ]7:
Здесь первоначально 々 = 0.
Неформальная блок-схема для этой процедуры дана на рис. 2с. Эта блок-схема легко транслируется в следующую!
Нача/to .
Рис. 2с. Рекурсия (теорема 4.4).
программу ”,которая вычисляет функцию ft: Т(1, т+1)
T“+L m + %+1) 尸 j 1, 2, • • •, zi ~► f + 3]
/ J(2 + 2, / + 1, р)
Gi/и + 明》+ 2, f + 3—~► /-f-3]
S" + 2)
J3 i, g)
/. T(f+3, i).
Следовательно, функция й вычислима. □
Теперь продолжим применение теорем 3.1 и 4.4 для компиляции семейства вычислимых функций. Так как это семейство потенциально бесконечно, на наш выбор функций окажут влияние 1) необходимость последовательного развития данной теории и 2) стремление подтвердить тезис о том, что все функции, представляющиеся нам вычислимыми в неформальном смысле, являются в действительности МНР-вычислимыми, По причинам, которые станут ясными позднее, мы включим в семейства некоторые функции, такие, как х + у и х 亠 1, для которых мы уже составили ранее программы.
Снова будем использовать тот факт, что, согласно теореме 3.2, в определении функции рекурсией (4.1) вычислимые функции f н g не обязательно должны зависеть от всех переменных, для того, чтобы функция й была вычислимой.
Теорема. Следующие функции вычислимы. (Доказательства приводятся в порядке перечисления функций.)
х + у. Доказательство*. В примере 4.3(a) дано определение по рекурсии с вычислимыми функциями х и г+ 1.
%・у. Доказательство: %・0 = 0, %・®+1) = ху+*—это определение по рекурсии с вычислимыми функциями 0(х) и z + x.
ху. Доказательство: х°« I, 乂f х“; по рекурсии и (Ь).
х— 1. Доказательство. 0—1=0, (х+ 1)— 1 =х; по рекурсии.
(х—у. если х》у,
(е)х — у=<(усеченное вычитание)
V 0 в противном случае.
Доказательство: % 亠 0 = %, х^(у+ 1) = (х 亠 у)亠 1; по рекурсии и (d).
{
* 0, если % = 0»
(ср. с упр. 1—3.3 (1а))
1, если х=#0.
Доказательство: sg (0) = 0, sg (% + 1) = 1; по рекурсии.
{
1, если х = 0,
(ср. пример 1-4.2(b))
0, если х 力 0.
Доказательство: sg(x) = 1 — sg(x); подстановка, (е) и (f
\х—у\. Доказательство*. |%—贝=任亠у) + 3亠力;口加 становка (а), (е).
х! Доказательство: Пример 4.3(b) дает определен» по рекурсии над вычислимыми функциями.
min (х, у)= наименьшее из х и у.
Доказательство: min (%, у) = х — (х -^-(/); подстановка.
max (%, у) = наибольшее из х и у.
Доказательство: max (%, //) = % +匂亠 %); подстановка.
пп(х, у) = остаток от деления у на х (чтобы пол^ чить всюду определенную функцию, условимся^ что rm (0, у)=
Доказательство: Очевидно, что
rm (%,если пп(х, у)+1=х.
Приходим к следующему рекурсивному определению!
гт (х, 0) = 0,
гт(х, у+ 1) = (гт(х, f/)+ l)sg(|x—(гт(х,(/)+ 1)|).
Второе уравнение можно записать так:
пп(х, у+ l) = g(x, пп(х, у)),
где g(xt z) = (z+l)sg(|x—(z +1)|), а функция g вычислим с помощью нескольких применении подстановки.
qt (х, у) = частное от деления у на х (для тоталь ности qt мы полагаем qt (0, д) = 0).
Доказательство: Поскольку
「“у 八一Jqta,У)+Ь если гт(х,加+1=招
qt(x, у + — ( qt (х,血 если гт(х, i/)+ 1 片%, то получается следующее рекурсивное определение с вычис лимыми функциями:
qt (х, 0) = 0,—
qt(x, //+l) = qt(x, у) + 玩(I%—(rm(%, у)+1)|)・
/、」• /、 / 1, если x\y (* делит
div(x, i/) = ^o, если x\у (x не делит у).
(Принимаем соглашение, что 0|0, но 0 ,〃,если д*0・)С“ довательно, предикат х\у разрешим (вспомним определена
/・4./)・一
Доказательство: div (%,(/) = sg (гт (х, д)), т. е. вычислени с подстановкой. О
Далее идет ряд полезных следствий, включающих разре шимые предикаты.
Следствие (определение с разбором всех случаев). Пусть fi (х),.. .,fk(x)cymb вычислимые функции, а Мг (ж),• •・,М*(*)— разрешимые предикаты, такие, что для каждого * в точности один из предикатов Mt (ж), ・・・,Mk (ж) оказывается истинным. Тогда функция g(x), определенная посредством
Д(х), если Mt(x) истинно, ft (х), если Mt (ж) истинно, g(#)=<:
&(*), если Mk(x) истинно, является вычислимой.
Доказательство, g (*) = cMi (х)府(х) + ・・• + см^ (х) fk(x) вычислима подстановкой с использованием сложения и умножения. □
Следствие (алгебра разрешимости). Предположим. что М (х) и Q (х)—разрешимые предикаты^ тогда разрешимы и следующие предикаты:
(а)必 М(*)“,
”М(х) и Q(*)“,
„Л4 (х) или Q (*)“・
Доказательство. Характеристические функции этих предикатов суть:
„не М (х)叱 1 亠 см (х),
„Л4 (х) и Q(x): см (x)-cq(x),
„Л4 (х) или Q(*)“: тах(см(х), “(*)) (где „или° понимается в нестрогом или неразделительном смысле).
Каждая из функций в правой части вычислима при условии вычислимости см ^ cq с помощью подстановки в функции из теоремы 4.5, О
Можно применять рекурсию, чтобы устанавливать вычислимость функций, построенных из других функций указан* ными ниже способами. Сначала введем некоторые обозначения.
Предположим, что f(x, z)—произвольная функция. Ограниченной суммой S f(x, z) и ограниченным произведением 门y
/(дг, z) называются функции от х,弘 задаваемые следую- ^ими рекурсивными уравнениями.
А8)£f(*,z) = O,
.У。
2 f(X,Z)= £ 〃*, Z)+/(*, у)・
(4・9) П /(х, z)=l,
П 〃名 z)=(H f(x9 z)Vf(xty). 2<v+ 1/
Теорема. Предположим, что f(xtz)—тотальная вычисм мая функция; тогда функции 2/(х, z) н Ц/(*, z}вычислим г<уг<у
Доказательство. Уравнения 4.8 и 4.9 являются рекурсш ными определениями с вычислимыми функциями. □
Легко видеть, что если граница для z в ограниченно сумме или произведении дается некоторой вычислимой функ цией, то результатом будет все еще вычислимая функция, ка показывает следующее утверждение.
Следствие. Пусть f (ж, г) и k(x9 段)一тотальные вычщ лимые функции; тогда вычислимы и функции 2«<*(*. «)f (^» - и IIzv&(*,B)f(4, z) (обе эти функции от переменных *‘ w).
Доказательство. Проводится с помощью подстановки А (х,窃 вместо у в ограниченную сумму 2 f («^» г)и ограниченное про
У" изведение 口 f(x, z). □
Опишем теперь другой полезный способ построения однг вычислимых функций из других. Запись jiz V у (•・・)ознадае «наименьшее г, меньшее, чем у, такое, что..Для того чтоб сделать это выражение всюду определенным, присвоим ем значение у, когда такого z не существует. Тогда, например из заданной функции /(*, z) можно построить новую фуш цию g, положив
g(*, y)^^<y(f(xt z) = 0) =
I наименьшее г < у, такое, что /(*, z) = 0, =< если такое z существует;
I у, если такого z не существует.
Оператор ^z < у называется оператором ограниченной мим мизации, или ограниченным ^-оператором.
Теорема. Пусть /(*, у)—тотальная вычислимая функ ция\ тогда и функция 卩z Vy(f(*, z)=sO тотальна и вычиа лима.
Доказательство. Рассмотрим функцию
力(/ ^)=П sg(H*, 〃)),*0
кОторая вычислима согласно следствию 4.11. Для данных *, У положим г0 = р.г <y(f(x9 z) = 0). Легко видеть, что
если V < z0, то h(x. и)=1; если Zq《u <у, то й(х, и) = 0.
Таким образом z0 равно числу различных и, меньших 弘 и таких, что 力(*, v)= 1, и равно 2力(#, и)・
о<У
Следовательно,
М <у(/(4, z) = 0) = £(nsg(f(x, 〃)))у”
является вычислимой функцией согласно теореме 4.10. О
Как и в случае ограниченной суммы и ограниченного произведения, граница в ограниченной минимизации может быть задана любой вычислимой функцией.
Следствие. Если / (х, z) и &(*, w) являются тотальными вычислимыми функциями, то такой же является и функция 卩z<^(x, w)(f(x, г) = 0).
Доказательство. Получается в результате подстановки
А(х, ш) вместо у в вычислимую функцию 1Az < у(/(*, г) = 0). □
Из теорем 4.10 и 4.12 вытекает следствие, содержащее разрешимые предикаты.
Следствие. Пусть R(x9 у)—разрешимый предикату тогда
функция /(*, y) =(AZ < yR (х, z) вычислима;
разрешимы следующие предикаты】
MJ*, y)^yz<yR(х, z),
(ж,加 0 mze yR(*, z).
Доказательство. —
〃*, y) = NZ<g (或(%(#, г)) = 0),
(i)CM,(*, S = ILcCr(*,z)・
(ii)M(x, У)^м (YzVy (не R(/ z))), который вычислим согласно (b) (i) и 4.7(a).
Замечание. Как в 4.11 и 4.13, граница на z в этом след・ ствнн могла бы быть любой тотальной вычислимой функцией.
Применим теперь указанные выше способы для расшире- "ня нашего запаса конкретных вычислимых функций и разрешимых свойств.
Теорема. Следующие функции вычислимы'.
(a) D (х) = число делителей х (соглашение: D(0)= 1),
心 п / 1» если х простое.
8)Pra)= $0, esu х не простое,
(т. е. предикат, «% простое числом разрешим},
рх = х-е простое число (принимаем, что ро = О, тоге % = 2, р^ = 3 и т. д.
г показатель ру в разложении % на простые мп (х)у = { жители для %, у > О,
I 0, если % = 0 или у = 0.
Доказательство.
D (х) = £ j div (у, х), где div определено в теорев 4.5(〃).
J 1, если D (х) = 2 (т. е. х > 1 и у % тольк
Рг(х) = | два делителя: 1 и х),
]_0 в противном случае
= ^(|D(%)-2|),
(С) Ри = °‘
Px+i = kz《(pl + l)(z〉P# и г—простое),
что является определением по рекурсии; предикаты «г > i и 《z простое» разрешимы, поэтому, применяя следствие 4.1 (и следующее за ней замечание), мы докажем вычислимое этой функции.
(d) (х)у = jxz < х (pj+1 \х). Эта функция вычислима, так кг предикат «/)J+1 \ х» разрешим. □
Замечание. Функция (%% является необходимой в следу! щей ситуации. Последовательность s = (at, а^, ..., ап) эл ментов N можно закодировать единственным числом S = р;‘”诡+' • /戢+i; тогда длину п последовательности s числа at можно эффективно восстановить из b следующи образом:
〃=严 <力((Ь)з*1 =。), а{ = (b){ — 1 для 1 ^ / ^ n.
Другие способы кодирования пар и последовательности указаны в упражнениях 4.16 (2, 5) ниже.
4.16. Упражнения
Покажите, что следующие функции вычислимы:
каждая полиномиальная функция а0 + а^ + ... + а^ где а” …,4&N,
[Кх],
НОК(х, {/) = наименьшее общее кратное чисел х и
НОД (%, у) = наибольший общий делитель чисел х н 〃, (е) /(х) = число простых делителей х,
ф (х) = число положительных целых чисел, меньших х и взаимно простых с х (функция Эйлера). (Натуральные числа х, у называются взаимно простыми, если НОД (х, у) = 1.)
Пусть л (х, у) = 2* (2у+1)—1. Покажите, что л —вычислимая биекция нз N” в N н что функции лп ла таковы, что л (nx(z), %(z)) = z для всех z вычислимы.
Пусть f(х) задана уравнениями f (0) = 1,,⑴=2, f(x + 2)=^f (x} + f (x+ 1). ({/(%)} является последовательностью Фибоначчи). Покажите, что f вычислима. (Указание: сначала покажите, что функция g(x) = 2zu>-3zu+1) вычислима, применив рекурсию.)
Покажите разрешимость следующих проблем:
% нечетно;
х является степенью простого числа;
% является точным кубом.
Каждое число % W N имеет единственное разложение вида
% = £之0%2' с az = 0 или 1 для каждого i. Следовательно, если х > 0, существует единственное выражение для х вида
% = 2瓦 + 2% + • • • + 2% где 0 &&<"<•••< 仇 и /》1 и
Х = 25 + 24+а,+】+ • •・ + 吸+a,+・・・ + a『AT.
Полагая a(i, %) = %, как в выражении (1);
〃、_//, как в (2), если х > 0,
[0в противном случае;
(&/, как в (2), если % > 0 и 1 & i & /, в противном случае;
J 的,как в (3), если х > 0 и 1《у 论,
*)= [ 0в противном случае;
покажите, что каждая из функций a, /, Ь, а вычислима. (Выражение (3) является способом представления х как кода пос л едовательности чисел (an a&,・・・,a“) и будет использовано в гл, 5.)
5. Минимизация
В предыдущем параграфе мы видели, что вычислимость большого числа функций может быть установлена с помощью операций подстановки и рекурсии, а также других операций, выводимых из первых двух. Существует третья важная операция, порождающая новые вычислимые функции, а именно
неограниченная минимизация, или просто минимизация, которую мы теперь опишем.
Пусть / (х, у)—функция (не обязательно тотальная), и мы хотим определить функцию g(x), положив
g(х) =я наименьшее у, такое, что /(*, у) = 0,
таким образом, чтобы из вычислимости / следовала бы вы。 числимость g・ Тут надо решить два вопроса. Во-первых, для некоторого * может не найтись у, для которого /(#,力=0・ Во-вторых, предположим, что / вычислима, и рассмотрим следующий естественный алгоритм вычисления g(x). «Вычисляйте f (х, 0), /(х, 1), ... до тех пор, пока не найдете у, такой, что /(*, gj = O》・ Эта процедура может не завершиться, если / не тотальна, даже если такой у существует; например, f (х, 0) не определено, а /(*, 1) = 0.
Таким образом, мы приходим к следующему определению оператора минимизации 卩,который дает вычислимые функции из вычислимых функций.
5・1. Определение. Для каждой функции f (дг, у)
наименьший у, такой, что
W/(/(*, 1/) = 0) = <W/(/(*, 1/) = 0) = <(i) f (х, z) определено для всех z&y и (ii) /(*, у) = 0, если такой у существует; не определено в противном случае.
W/(/(*, 1/) = 0) = <
W/(/(*, 1/) = 0) = <
(ху(・・・) читается как «наименьший у, такой, что...» Этот оператор называют иногда ^-оператором.
Следующая теорема показывает, что класс € замкнут относительно минимизации.
Теорема. Пусть /(*, у) вычислима; тогда вычиеяима “ функция g(*) = 3(f(X, //) = 0).
Доказательство. Пусть * = (х”・ ・・,%〃)и F—программа стандартного вида, вычисляющая функцию /(*,//)・ Пусть т = max (n + 1, р (F)). Напишем программу G, которая реализует естественный алгоритм для g: вычисляйте /(*,》) для 々 = 0, 1,2,・・• до тех пор, пока не найдете такое 財 что /(#, %)= 0; это значение k и будет требуемым выходом.
Значение * и текущее значение k запоминаются в регистрах Rm*f, ..., Rm+〃+i до вычисления /(*, А); таким образом, типичной конфигурацией будет
Pesacmpbi памяти
R,・・・ Rm Rm+1 • • • Rm +n R/n+c*l R/n+c+Z
Здесь первоначально 左=0. Заметим, что гж+п+1 всегда есть 0. Блок-схема для описанной выше процедуры вычисления g
Качало
Рис. 2d. Минимизация (теорема 5.2).
приведена*на рис. 2d. Она легко транслируется в программу G для вычисления g:
T(l,m+1)
T(%团+几)
/,尸[m+1, т + 2,・・・,m + ;i+1 —► 1] jjl,加+ 〃 + 2, g)
S(/n + 〃+l)
J(l, 1")
厶 T (m + 〃 +1, 1).
(/尸 является первой командой подпрограммы 尸[m + /и + 2, ... —► 1].) П
5・3・ Следствие. Предположим, что R (х9 у}—разрешимый пр дикат\ тогда функция
g(*) = MR(x,加=
наименьший yt такой, что R (х, у) истинно.
= если такой у существует} не определена 6 противном случае
вычислима.
Доказательство, g (х)=卩“(sg (。卩(х, у)) = 0). □
Ввиду этого следствия 卩-оператор часто называется такж оператором поиска. Для данного предиката R (х, у) функци* g(x) ищет такой у, что выполняется (т. е. истинно) R(x, д' и, более того, находит наименьший такой у, если он сутест вует.
(1-оператор может порождать нетотальные функции и тотальных; например, полагая /(%, у) = |%—у^\ и g(x)u 4 1b4/(/(%, У) =。), мы обнаруживаем, что g—нетотальна функция
I Кх , если 尤 есть точный квадрат; 丿―1 не определена в противном случае.
Таким образом, тривиально, используя ji-оператор вмес/ с подстановкой и рекурсией, можно построить больше фуш ций, исходя из основных, чем только с помощью подстановк и рекурсии (так как эти операции порождают из тотальнь функций лишь тотальные). Существуют, однако, и тотал ные функции, для построения которых существенно испол! зуется ^-оператор. Приведенный ниже пример 5.5 содерж» такую функцию; другой пример будет представлен в гл. t Итак, мы видим, что минимизацию в отличие от ограниче> ной минимизации нельзя определить в терминах подстановк и рекурсии. Тем не менее наиболее часто встречающиес вычислимые тотальные функции можно построить из ochof ных, используя лишь подстановку и рекурсию; такие фун>1 ции называются примитивно рекурсивными, и они будут рас
смотрены в § 3 гл. 3. На практике, конечно, можно устанавливать вычислимость с несущественным применением минимизации» если это упрощает доказательство.
Упражнения
Пусть f (х)—тотальная инъективная вычислимая функция; докажите, что функция /一】вычислима.
Предположим, что р(х)—полином с целыми коэффи« циентами; покажите, что функция
/ (а)=наименьший неотрицательный целый корень р (х)—а (а € N) вычислима (если такого корня нет, то f (а) не определена).
Покажите, что функция
/ х/у, если y^Q и y\xt
'' " I не определена в противном случае вычислима.
Мы завершаем эту главу примером функции, существенно использующей ц-оператор; он показывает также, как можно использовать этот оператор не только для поиска единственного числа, обладающего данным свойством, но и для поиска конечных последовательностей или множеств чисел, или других объектов, кодируемых единственным числом. Эта функция является модификацией Петер примера функции, построенной Аккерманом и носящей его имя. Эта функция сложнее всех вычислимых функций, рассмотренных нами до сих пор.
Пример (функция Аккермана)
Функция ф(х,(/), определяемая следующей системой уравнений, вычислима:
屮(°, у) — у+ 1,
wa+i, о)»а, 1),
W(%+ L у+1) 4屮(招 wa+ L y))・
Это определение содержит некоторый вид двойной рекурсии, которая сильнее, чем примитивная рекурсия, рассмотренная в § 3. Для того чтобы тем не менее доказать, что эти уравнения однозначно определяют функцию 屮,заметим, что каждое значейие i|)(х, у) (х > 0) определено в терминах «более ранних» значений ip(xr, yj с xt < х или %i=% и ^ < у. На самом деле ф(х, у) можно получить, используя только конечное число таких более ранних значений: это легко установить индукцией по х и у. Следовательно,屮 вычислима в неформальном смысле. Например, легко вычислить, что 屮(1, 1)=3, а 屮(2, 1) = 5.
Строго доказать вычислимость функции 屮 довольно труди Мы дадим набросок доказательства, используя идею подл дящего множества троек S. Существенное свойство подход, щего множества S (определенного ниже) состоит в том,屮 если (х, у, z) € S, то
(5.6)•⑴ z = *a,力
S содержит все более ранние тройки (占,%,屮(勺,%) которые необходимы для вычисления (х, у).
Определение. Конечное множество троек S называет^ подходящим, если выполнены следующие условия:
если (0, у, z)£S, то г = у+ 1;
если (х+ 1, 0, z)^St то (х, l,z)WS;
если (%} 1, у+1, z) WS, то существует такое и, чт (%+L yt и) ^S и (х, 〃,z)WS.
Эти три условия соответствуют трем уравнениям в опре делении 屮. Например, (а) соответствует утверждению: есл 2 =屮(0,卅 то z = y$l; (с) соответствует утверждению: есл z = M%+l,y+l), то существует такое “,что 〃 =屮(%+1, г и z = “(%,〃)・*'
Определение подходящего множества S обеспечивает вы полнение условий (5.6). Кроме того, для каждой пары чисе (т, м) найдется подходящее множество S, содержащее тройк (т, п, ^(гп% 〃)); например, пусть S является множеством трое (х, у, -ф(х, у)), используемых в вычислении 屮(加,几).
Теперь можно закодировать тройку (х, у, z) одним поле жительным числом 〃==2*3'5*; конечное множество чисе {〃1, ..., uj можно закодировать одним числом 卩口"…р“* Следовательно, конечное множество троек можно закодира вать одним числом, скажем。・ Тогда мы получим
(%, У, z)CSQp23•戸 делит и,
так что утверждение «(х, g, z) е S/ является разрешимы предикатом от х, у9 z, и, и если это так, то х9 у, z <v. Отсюда применяя методы и функции, рассмотренные в предыдущи* параграфах, мы можем показать, что разрешим следующи предикат: R (х, у, 0 в «у есть кодирующее число подходя щего множества троек н ^z V и ((х, у, z) W S^.
Таким образом, функция f (х, gj = fwR (х, у, и) являете! вычислимой функцией, порождающей код подходящего мно жества, содержащего (х, у, z) для некоторого z. Следовательно 屮(修 勿^陷〃%, у、z)€S/<%./, откуда следует вычислимость 屮
Более сложное доказательство вычислимости 屮 будет дано в「〃. 10 как результат применения более глубоких теоретических результатов.
Здесь мы не доказываем невозможность получения 屮 из основных функций с помощью лишь подстановки и (примитивной) рекурсии. Этот вопрос будет рассмотрен в § 3 сле・ дуЮЩ^И ГЛЗВЫ.
Глава 3.
Другие подходы к вычислимости: тезис Чёрча
За последние пятьдесят лет было предложено много ма* матических уточнений интуитивного понятия эффективной i числимости. Подход, основанный на МНР, был предлож сравнительно недавно. В этой главе, исследуя МНР-вычис/ мость, мы остановимся на двух связанных между собой fl просах.
Как сравнивать многие различные подходы к описан! вычислимости друг с другом, и в частности с МНР-вычисл мостью?
Насколько хорошо эти подходы (в частности, МН вычислимость) характеризуют неформальное понятие эффе тивной вычислимости? '
Первый вопрос будет обсуждаться в § 1—6; второй вопр мы рассмотрим в § 7. Читатель, которого в этой книге нн〔 ресует только техническая сторона этой теории, может nd пустить § 3—6; ни одна из тем в последующих разделах кни! не зависит от этих параграфов.
Другие подходы к вычислимости ,
Далее перечисляются некоторые альтернативные уточн ния, которые предлагались следующими авторами:
Гёдель—Эрбран—Клини [1936]. Общерекурсивн] функции, определенные с помощью исчисления рекурсивнв уравнений (Клини [1952], Мендельсон [1964]).
Чёрч [1936]. Х-определимые функции (Чёрч [193 или [1941]).
Гёдель—Клини [1936J. ^-рекурсивные функции и ча тично рекурсивные функции (§ 2 этой главы). &
Тьюринг [1936]. Функции, вычислимые конечными n шинами, известными как машины Тьюринга (Тьюринг [193 § 4 этой главы). в
Пост [1943]. Функции, определяемые канонически! дедуктивными системами (Пост [1943], Минский [1967]; § этой главы).
Марков [1951]. Функции, задаваемые некоторыми алгорИтмами (известными под названием нормальных алгоритмов) £ад конечным алфавитом (Марков [1954], Мендельсон [1964]; § 5 этой главы).
Шепердсон—Стерджис [1963]. МНР-вычислимые функции (Шепердсон—Стерджис [1963]).
Между этими подходами имеются большие различия; каждый из них имеет свои преимущества для соответствующего описания вычислимости. Следующий замечательный результат получен усилиями многих исследователей.
. Основной результат. Каждое из вышеупомянутых уточнений понятия эффективной вычислимости приводит к одному и тому же классу вычислимых функций. (Этот класс обозначается через €•)
Так мы получаем простейший возможный ответ на первый из поставленных выше вопросов. Перед тем как обсуждать второй вопрос, мы кратко исследуем упомянутые выше подходы Гёделя—Клини, Тьюринга, Поста и Маркова и дадим наброски доказательств эквивалентности этих подходов подходу МНР. Читателю, который хотел бы подробнее ознакомиться с этими и другими подходами и доказательствами всех эквивалентностей основного результата, рекомендуем обратиться к указанной в ссылках литературе.
Частично рекурсивные функции (Гёдель — Клини)
Определение. Классом 51 частично-рекурсивных функций называется наименьший класс частичных функций, содержащий базисные функции 0, %+ 1, U; (лемма 2-1.1) и замкнутый относительно операций подстановки, рекурсии и минимизации (эквивалентное определение: 31 есть класс частичных функций, каждую из которых можно построить из основных функций с помощью конечного числа операций подстановки, рекур- енн и минимизации).
Заметим, что в определении класса 例 не накладываются никакие ограничения на использование (x-оператора, так что 翫 содержит нетотальные функции. Гёдель и Клини первоначально ограничили свое внимание тотальными функциями; Начала рассматривался класс 5?0 |ы-рекурсивных функций, который определяется аналогично классу 51, за исключением Того* что применение(i-оператора допускается, только если в результате получается тотальная функция. Итак,炙° яв・ "етс? классом тотальных функций, и очевидно, что 契° 三例.
Действительности класс 310 содержит все функции, имею-
щиеся в 例,хотя это не является непосредственно очевидны] доказательство см. ниже в следствии 2.3. Следовательно, является естественным расширением класса 5i0 к классу ч стичных функций.
Термин рекурсивная функция относят часто к (1-рекурси ным функциям. Термин общерекурсивная функция так】 используется для описания fx-рекурсивных функций, xoi Клини так называл тотальные функции, определяемые в е подходе исчислением равенств (см. (а) в § 1). Именно Кли доказал эквивалентность общерекурсивных функций (задава мых исчислением равенств) и 屮рекурсивных функций.
Теорема.例=€・
Доказательство. Из главного результата гл. 2 (лемма 1. теорема 3.1, 4.4, 5.2) вытекает, что 例 三 €・
Обратно предположим, что f (х) является МНР-вычисл мой функцией, вычислимой по программе Р= /п ・・.,/,. П« шагом вычисления Р(х) мы подразумеваем выполнение одне команды. Рассмотрим следующие функции, связанные с bi числением по программе Р.
С(Х, /)=С(Х, /)=,содержимое & после t шагов в Р(х), если Р(х) уже не остановилось раньше;
С(Х, /)=
С(Х, /)=
< заключительное содержимое /?п если Р(х) 、останавливается меньше чем за t шагов. 'номер следующей команды, когда сделано ровно / шагов вычисления Р(х), если Р(х) < не остановилось после t шагов или раньше;
0, если Р (х) остановилось после f шагов 、или раньше.
Очевидно, си/ суть тотальные функции.
Если f(x) определено, то Р(х) останавливается после ров1 4 шагов, где % = М0(х, /) = 0), и тогда f(x) = c(x, /0). Есл с другой стороны, 〃х) не определено, то Р(х) не зав《 шается, и поэтому / (х, /) никогда не равно 0. Таким образа 卩/(/(力,/) = 0) не определено. Следовательно, в любом слуг
〃#) = с(х, “(/(*, /) = 0)).
Чтобы доказать частичную рекурсивность /, достаточ; показать, что си/ суть рекурсивные функции. Ясно,工 эти функции вычислимы в неформальном смысле—мох просто промоделировать вычисление Р(х) до t шагов. Дета, ным анализом вычислений Р(х) и применением многих фус ций из гл. 2 нетрудно, но довольно утомительно показу рекурсивность с н /; на самом деле их можно получить базисных функций без использования минимизации (так «
он” примитивно рекурсивны—см. § 3 этой главы). (Подробное доказательство более сильного утверждения, чем это, будет дано в гл. 5—теорема 1.2 и приложение.) Следовательно, f частично рекурсивна. □
Следствие. Каждая тотальная функция 6 Я принадлежит классу %。.
Доказательство. Предположим, что f(x)—тотальная функция в 况;тогда f МНР-вычислима по программе 尸.Пусть с и /—функции, определенные в доказательстве теоремы 2.2; как там отмечено, они могут быть получены без минимизации, так что, в частности, они входят в 例°. Далее, поскольку / тотальна, Р(х) оканч#Ьается для каждого х, то функция 卩 / (/(*,£) тотальна и принадлежит 例°. Теперь f (х)= =с(х, W(j (招 0)» так что / также принадлежит Si0. □
Предикат М(х), чья характеристическая функция см рекурсивна, называется рекурсивным предикатом. В свете теоремы 2.2 рекурсивный предикат—то же самое, что разрешимый предикат.
Отступление: примитивно рекурсивные функции
Естественно обратить внимание на важный подкласс класса 笈一класс примитивно рекурсивных функций, хотя они не являются основной темой обсуждения этой главы. Эти функции были упомянуты в § 5 гл. 2.
Определение, (а) Классом 夕例 примитивно рекурсивных функций является наименьший класс функций, содержащий базисные функции 0, %+1, U? н замкнутый относительно операций подстановки и рекурсии.
(Ь) Примитивно рекурсивным предикатом называется предикат, характеристическая функция которого примитивно рекурсивна.
Все конкретные вычислимые функции, рассмотренные в § 1, 3, 4 гл. 2, примитивно рекурсивны, так как миними- занял там не использовалась. Мы уже отмечали, что функ・ инн си/, использованные в доказательстве теоремы 2.2, при- митивно рекурсивны. Далее, из теорем 2-4.10 и 2-4,12 мы внднм, что класс >况 замкнут относительно операций ограниченного суммирования, ограниченного произведения и ограниченной минимизации. Таким образом, класс примитивно 一 Рекурсивных функций является достаточно обширным.
Тем не менее существуют рекурсивные функции (или, что эквивалентно, тотальные вычислимые функции), не являющиеся
примитивно рекурсивными функциями. Действительно, функций Аккермана “ из примера 2-5.5 является примером такой фунК ции. Подробное доказательство того, что функция Аккерман не примитивно рекурсивна, довольно длинно, и мы отсылал! читателя к книгам Петер [1967, гл. 9] или Мендельсона [1964 с. 250, упр. 11]. Существенно то, что 2 растет быстрее, 吟 любая примитивно рекурсивная функция. (Чтобы почувствс вать, как быстро растет функция 屮,попробуйте вычислит несколько ее начальных значений.)
В гл. 5 мы сможем дать пример тотальной вычислимо! (т. е. рекурсивной) функции и докажем, что она не являете примитивно рекурсивной. -
Наше заключение: хотя примитивно рекурсивные функнн' образуют естественный и весьма обширный класс, они не вклю чают все вычислимые функции и поэтому оказываются неде статочными для описания неформального понятия вычисли мости.
Тьюрингова вычислимость
Определение вычислимости, предложенное А. М. Тьюриь гом [ 1936], основано на анализе осуществления алгоритм человеком, располагающим ручкой для письма и бумаго Тьюринг рассматривает это как последовательность оче> простых действий следующего вида:
запись или стирание одного символа;
перенесение внимания с одного участка бумаги на друга
На каждом шаге алгоритм определяет действие, котор будет совершено на следующем шаге. Это зависит только от ( символа на участке бумаги, который обозревается в даннь момент глазом (или другим рецептором) и (ii) текущим С стоянием (мысли) человека. Чтобы обеспечить возможное реализации алгоритма, мы предполагаем, что это состоя» полностью определяется самим алгоритмом и предыстори его работы. Оно может включать частичную запись того, q произошло до сих пор, но не зависит от настроения или сообр зительности исполнителя алгоритма или от его самойувствй Кроме того, существует только конечное число различим! состояний, в которых может находиться исполнитель, так к он конечен в рассматриваемых аспектах. Состояние исполй теля может, конечно, изменяться в результате действия, npd принятого на этом шаге.
Тьюринг изобрел конечные машины, которые выполня алгоритмы, представленные таким способом. Для кажд
алгоритма существует своя, хотя и не единственная, машина. Опишем кратко эти машины, которые стали известны как машины Тьюринга.
Машины Тьюринга
Машина Тьюринга М—это конечное устройство, которое производит операции на бумажной ленте. Эта лента бесконечна в обеих направлениях и разделена вдоль всей длины на квадраты (или клетки, или ячейки). (Лента представляет собой бумагу, которая требуется исполнителю для осуществления алгоритма; каждый квадрат представляет собой порцию ленты,
Рис. За. Машина Тьюринга.
обозреваемую в данный момент. В каждом конкретном завершающемся вычислении на М используется только конечная часть ленты, хотя заранее мы не можем предвидеть, насколько большая часть ленты может потребоваться. Тем не менее лента бесконечна, что соответствует ситуации, в которой находится человек, обеспеченный неограниченным запасом чистой бумаги.)
В каждый данный момент времени каждый квадрат ленты либо пуст, либо содержит единственный символ из фиксированного конечного списка символов s】,sa, ..., s„ алфавита М. Содержимое^ пустой клетки мы обозначим через 8 и будем считать его символом s0, принадлежащим алфавиту М.
У машины М имеется читающая головка, которая обозре- ^т в каждый данный момент единственный квадрат ленты. Все это можно увидеть на рис. За.
Машина М может выполнять три типа простых операций на ленте, а именно:
стереть символ в обозреваемом квадрате и заменить ег другим символом алфавита 〃;
передвинуть читающую головку на один квадрат вправ от обозреваемого квадрата (или, что равносильно, сдвинут! ленту на один квадрат влево);
передвинуть читающую головку на один квадрат влев от обозначаемого квадрата (или, что равносильно, сдвинут ленту на один квадрат вправо).
В каждый данный момент времени машина М находите в одном из фиксированного конечного числа состояний, пред ставленных символами qu ..., qm. В процессе операции сс стояние машины может измениться. Можно представлять сей символ текущего состояния демонстрируемым в окошке » наружной стороне М (как на рис. За) и рассматривать ег как некоторый указатель на то, что произошло к настоящем? моменту и что случится в будущем.
Действие, которое машина М совершает в любой текущи* момент, зависит от текущего состояния М и символа, обозре ваемого в данный момент. Эта зависимость описана в задании М которое содержит конечное множество Q четверок, каждая и которых имеет вид
《厶l^m\qiS/Rqi 论 & J
q RjLq I
Четверка qt“aq】в Q определяет действие машины M, когл она находится в состоянии qt и обозревает символ s, следук щим образом:
На ленте:
если a = s&, стереть s, и написать sk в обозреваема квадрате;'
если a = R, сдвинуть читающую головку на один ква рат вправо;
если a = L, сдвинуть читающую головку на один ква рат влево.
Перейти в состояние g厂
Задание Q таково, что для каждой пары q^j найдется 1 более одной четверки д^,аВ; в противном случае могла возникнуть неоднозначность в дальнейших действиях машин
Чтобы начать вычисление, машина должна быть снабжу лентой, а читающая головка должна обозревать специальн! начальный квадрат; кроме того, М должна находиться в ц ча льном состоянии. Тогда, если М находится в состоянии-'
и считывает символ s〃 она действует так, как описано выше при условии, что в Q найдется четверка g/S/z^p Действие такого же рода повторяется для нового состояния и нового обозреваемого символа и т. д. Машина М продолжает действовать подобным образом столь долго, сколь это возможно. М прекращает работу, только попав в состояние д/ и считывая символ ", такой, что в Q нет четверки «内丿仪口, т. е. в Q нет четверки, определяющей, что делать дальше. (Возможно, что это никогда не произойдет.)
Пример. Пусть М—машина Тьюринга, алфавит которой состоит из символов 0, 1 (и, конечно, пустого символа) и возможные состояния которой суть q» и д* Задание, или программа М. таково:
gQR%, qjo%,仇0^依,%1R%・
Пусть лента машины М есть
Обозревается квадрат, помеченный стрелкой ;, и исходное состояние есть 力・ Легко видеть, что действие М состоит в передвижении по ленте слева направо и замене через один символа 1 на символ 0; М останавливается, когда она впервые обозревает пустой квадрат, так как не существует четверки, указывающей, что делать дальше. В результате лента примет вид
…回1。1"屮1山1屮11丨丨丨丨I…
где обозревается квадрат, помеченный стрелкой |, а Л! находится в состоянии 力.
С другой стороны, если бы вначале у ленты машины М в каждом квадрате были бы записаны 0 или 1, то машина никогда бы не закончила работу.
Из этого примера явствует, что машина Тьюринга является Устройством, реализующим алгоритм, работающий на лентах. Детальное описание алгоритма содержится в задании Q ма・ 山ннн М. Таким образом, для математика машина Тьюринга определяете凡 как множество задающих ее четверок. Беспо- 口езно строить физическую машину Тьюринга, разве что в иллюстративных целях. .
Функции, вычислимые по Тьюрингу
Чтобы приспособить машину Тьюринга М для вычисления числовых функций, надо договориться о представлении чисел на ленте. Один способ состоит в следующем: предположим для удобства изложения, что символ & алфавита машины М есть 1. Мы будем использовать 1 как «символ-бирку», и тогда число х представляется на ленте следующим образом (на время не будем обращать внимания на стрелку J):
…I ii卜I中I…I"屮I|…
.,• % +1 кбадрапоИ ■»
Мы используем х + 1 бирок для представления %, чтобы отпн・・ чать представление числа 0 от пустой ленты. v
Частичная функция f(x), вычисляемая машиной М. опре деляется следующим образом. Рассмотрим вычисление, производимое машиной М на этой ленте, начинающееся в состоя* нии 仇 с первоначально обозреваемым квадратом, помеченным J. Тогда
'общее число вхождений символа 1 на ленте ,в заключительный момент, если вычисле-
] ние в конце концов останавливается;
、не определено в противном случае.
Аналогично п-местная частичная функция f(xn .・・,%〃» вычисляемая машиной М, определяется подсчетом числа ед】 ниц на заключительной ленте, если М начинает работу в се стоянии 力 и считывает квадрат, помеченный стрелкой J н следующей ленте:
-11屮卜•,仙I比卜・・1中I
4Х1 + 1► <*2 + [' .— '»^%“ + ]►
^Задротовабадратоб/cMpctmoS
Определение. Частичная функция называется вычислим^ по Тьюрингу, если существует вычисляющая ее машина. К ла* всех вычислимых по Тьюрингу функций обозначается через 歹
Пример. Функция х + у является вычислимой по Тьюринг ее вычисляет машина Тьюринга, заданная следующей п^ граммой: qJB%, q^Rqa,q/Bq^ q$BRq$. Представление ленте пары (х, у) содержит х + у+2 вхождений символа, поэтому машина М построена так, чтобы стереть два из 強 вхождений, начиная с левого конца. Отдельные детали ле проверяются на небольшом числе значений %, у.
Упражнения
Какую одноместную функцию вычисляет машина в примере 4.2?
Постройте машины Тьюринга, которые вычисляют по Тьюрингу функции (а) %—1 и (Ь) 2х.
В нашу цель не входит развить теорию машин Тьюринга и функций, вычислимых по Тьюрингу; интересующийся этими вопросами читатель может обратиться к книгам Дэвиса [1958J или Минского [ 1967], указанным в библиографии.
Фундаментальный результат, связывающий вычислимость по Тьюрингу с частично рекурсивными функциями и МНР- вычислимостью, состоит в следующем.
Теорема.例=歹g = €.
Доказательство. Существуют различные способы установления этого результата; некоторые мы изложим в общих чертах.
Прямое доказательство того, что 歹伤 三例 довольно похоже на доказательство того, что 后三例 (теорема 2.2). Ленточные конфигурации и состояния машины Тьюринга в процессе вычисления могут кодироваться натуральными числами, а операции машины тогда представимы рекурсивными функциями этих чисел.
Что же касается обратного включения 51 三歹侈,можно показать непосредственно, что класс 歹g содержит все базисные функции и замкнут относительно подстановки, рекурсии и минимизации. Это было подробно проделано Дэвисом [1958]. В качестве альтернативы можно показать, что 由三歹結 установив, что МНР эквивалентны по вычислительным возможностям последовательности более простых машин, заканчивающихся машинами Тьюринга. Это доказательство приведено в статье Шепердсона и Стерджиса [1963]. □
. Системы обработки символов
Поста и Маркова
Э. Пост и А. А. Марков сформулировали свои понятия эффективности в терминах цепочек символов. Они постулируют, Что объекты (включая числа), к которым применяются эффекТивные процессы, всегда можно представить в виде цепочек символов; в действительности в таких контекстах, как символическая логика, абстрактная алгебра и анализ языков, объ- ектамн являются цепочки символов. Как Пост, так и Марков, "сходя из разных предпосылок, полагали, что эффективные операции на цепочках—это те, которые можно построить из пРостейших действий над цепочками.
№ 862
Центральным понятием у Поста было понятие каноническо системы, которую мы опишем ниже. Такие системы не вычис ляют функции; они порождают множества цепочек. Причии этого заключается в том, что Пост стремился охарактеризс вать формальные логические системы, т. е. системы, порождаю щие теоремы из аксиом механическим применением прави. логики. Так, понятие эффективности вытекает из работы Пост сначала в виде эффективно (или механически) порождаемы множеств. Мы увидим, как отсюда можно вывести поняти функции, вычислимой по Посту. Ниже, в § 5.17, мы пояснив каким образом связаны подходы Маркова и Поста.
Теперь введем ряд обозначений, которые помогут нам в о суждении. Пусть 2 = {ai, ..., а&} есть конечное множеств символов, называемое алфавитом. Цепочкой из (или над)' называется всякая последовательность а^ ... a1n символов из X Цепочки иногда называют словами по аналогии с обычным язь ком. Для любого алфавита 2 через Е* обозначается множеств всех цепочек символов из 2. В £• включается и пустая ц почка, в которой нет символов, обозначаемая через А. Есл и = Ь我2 …6加 и т = сх ... ся суть цепочки, то от обозначав цепочку bi …Ьт % ... с„. Для пустой цепочки А и для любо цепочки о имеет место аЛ = Ао = а.
Системы Поста
В элементарной алгебре часто встречается операция замен любого вхождения цепочки (х—“)(% + у) цепочкой 尤窑一у* э* операцию над цепочками можно обозначить записью
S】(%—у) (^ + у) S8 —* S](炉一ya) Sat
где 5, и Sa—произвольные цепочки.
Более общая операция над цепочкой, рассматриваемая Пост в качестве элементарной, имеет вид
(5⑵ goSiq^Sa • . . Sm^l^mSm九qS厶"Sj九...S1nhM
где (i) gg •・・,gm,Ло, •・・,Лл—фиксированные цепочки (мож быть, пустые), (ii) индексы &,・・•,,〃 выбираются из 1, 2,... и не обязательно различны.
Пост называет операцию вида (5.2) правилом, или прод§ цией; она может быть применена к любой цепочке и, котор может быть представлена как
。=8。5修% ・・・ Gmg加 9i, • • am—цепочки)
и дает в результате цепочку /i^/i^^,.. . 5〃力〃・
Пример. Пусть S = {a, 6}; рассмотрим продукцию (л): aS^S^ 一 S2as2a. Действие (л) на ряд цепочек указано в таблице ниже:
aba abba baaba abba baЦепочки, порожденные по правилу (л)из b
aba abba ba
aba abba ba
aaaa и baabaa(л) не применимо
(Элементы во втором ряду соответствуют двум возможным представлениям abba:
ab Ьа и аЛ ЬЪа.)S] Sa Sj Sa
Упражнение. Исследуйте все способы, какими продукция S^S^aaS^ —> S8abS1 может применяться к цепочке babaabbaab.
Продукции составляют основную часть канонических систем Поста:
Определение. (Каноническая) система Поста 乡 состоит из
конечного алфавита 2,
конечного подмножества 4 三 £• аксиом 乡,
конечного множества Q продукций вида (5.2), фиксированные цепочки которых принадлежат £•・
Будем также называть 乡 системой Поста над 2.
Q
Будем записывать и=>% если цепочку т можно получить из цепочки и конечной последовательностью применений продукций из Q; далее, запись |— т будет обозначать, что суще
ствует аксиома 。€厶,такая, что опт. В этом случае мы говорим, что т порождается системой Поста; множество всех Цепочек из £•, порожденных У, обозначается через 7., т. е. 7$ = {о € Е•卜[—о}. Множество Т. называется также множеством теорем системы 9, что отражает первоначальную мотивировку Поста.
5・6・ Пример. Пусть 9 является системой Поста с алфавитам Е = {а, Ь}, аксиомами Л, а, & и продукциями 5 —> аЗа и S f bSb. Тогда 7. есть множество палиндромов—цепочек,
одинаково читаемых в обоих направлениях, слева направо н справа налево, таких, как 曲a, bbabbt abba.
Иногда для порождения конкретного множества цепочек из £• необходимо использовать в процессе порождения вспо могательные символы. Это приводит к следующему определению
Определение. Пусть £—алфавит, а X 三 2・.Тогда X порождаемо (или генерируемо) по Посту, если существуег алфавит 2^2 и система Поста 9 над Zn такие, что А является множеством цепочек в 2е, порождаемых системой 疹 т. е. X = 7*# П 2е.
Пост доказал замечательную теорему, утверждающую, чт для порождения генерируемых по Посту множеств на самоь' деле достаточны очень простые продукции. Множество про дукций Q (и всякая система, в которой они встречаются! называется нормальной, если все продукции имеют ви| gS —► Sh.
Теорема (теорема Поста о нормальной форме). Всякая 几а рождаемая по Посту система может быть порождена «од мальной системой.
Превосходное доказательство этой теоремы изложен М. Минским [1967].
Системы Поста, все продукции которых имеют вид S^S,— 一 S\hS» образуют модели грамматик и языков. Они отра жают способ, которым сложные предложения языка строятс' из некоторых основных единиц в соответствии с правилам грамматики. Ограничения на природу g н 无 приводят к ко” текстным (или языкам непосредственных составляющих, Н и контекстно-свободным (КС, или бесконтекстным) языка] Хомского, являющимися полезными моделями языков, при меняемых в программировании. Мы не можем здесь угл^ бляться в эту интересную область: для получения дополн! тельной информации читатель может обратиться к книг Арбиба [1969] и Манна [L974], а также Гинзбурга [1970]・ Гладкого [1973]*1).
Системы Поста и другие подходы к вычислимости
Как мы видели, системы Поста дают описание понят эффективно порождаемого множества. Мы можем сравни это с соответствующим понятием, возникающим из друп 1)Ссылки на дополнительную литературу отмечены авездочкой Прим, мерее.
подходов к вычислимости. Для МНР-вычислимости (или ТЬЮ- ринговой вычислимости и т. д.) эффективно порождаемые множества чисел называются рекурсивно перечислимыми (р. п.); это те множества, которые являются множествами значений МНР-вычислимых функций. (Мы будем изучать р. п. множества в гл. 7.)
Для сравнения множества цепочек с множеством чисел мы выбираем кодирование с эффективной (в интуитивном смысле) кодирующей функцией \ 2е —> N, при котором цепочка 。€工* кодируется числом &. Удобный метод для алфавита £ = {/, ..., а*} состоит в k-ичном кодировании、где функция £• —N определена посредством Л = 0; аге-.аГт^ =^о + ri^ + • • • + гт^т* Легко видеть, что ° есть на самом деле биекция, так что, обозначив обращение " через ~: N —► », мы получаем представление каждого числа п цепочкой п.
Предположим теперь, что X является множеством цепочек: пусть X = {GI и W X} есть множество чисел, кодирующих X. Получаем результат об эквивалентности.
5Л0. Теорема. X порождаемо по Посту тогда и только тогда, когда множество чисел X рекурсивно перечислимо.
Доказательство. Дадим набросок одного доказательства этого результата. Пусть X 三 X*, и предположим сначала, что X рекурсивно перечислимо. Пусть Х= Ran (f), где функция f МНР-вычислима. Применяя ранее доказанные эквивалентности, мы можем построить машину Тьюринга М, множество символов которой содержит алфавит Е, так что в состоянии q* с первоначально заданной лентой
П 11...11
<m + 1 ►
М останавливается тогда и только тогда, когда mWDom 仍, и делает это в конфигурации
「е. символы на непустой части ленты образуют, как отмечено на рисунке, цепочку 7^6 над алфавитом 2, а машина М находится в специальном заключительном состоянии «н, обо-
зревая квадрат, отмеченный стрелкой J. Теперь построим систему Поста《,моделирующую поведение машины М на “ ленте; алфавит системы У включает S, символы и состояния М; У порождает цепочки вида s^s^.. ^q^s^ ...引加.Такие цепочки^ представляют все ситуации
FI I I
которые встречаются в процессе вычисления машины Л1, причем начальная лента имеет вид (•). Для достижения цели
◄—т+ 1―►
система 9 будет порождать все цепочки вида qjll…11,、 которые представляют такие исходные ленты. Если включить в 9 продукцию 0hS f S, то цепочки из 2е, порожденные системой $, образуют множество
{77^ 丨团 € Dom (/)} = {% | 几 W Ran (/)} = 口 |几 W N} = X.
Таким образом, Х = Т, Г) 2*, т. е. X порождаемо по Посту.
Обратно, если X порождаемо по Посту системой Поста g, то отношение «п порождается системой 纟 с применением не более чем т раз продукций» является разрешимым; из теории^ р. п. множеств (гл. 7) следует, что множество X рекурсивна перечислимо. □
Вычислимость по Посту
Опишем теперь два способа вывода понятия вычислимое, функции из систем Поста. В обоих случаях сначала опреде弋 ляется понятие функции на 2е, а затем оно расширяется на N с помощью кодирования или представления.
Предположим, что f: S* —► S* есть частичная функция. Возьмем символ •, не принадлежащий Е, и рассмотрим множество цепочек*
G(f) = {u・f9)|uWDom (川
из алфавита S U {• }• Множество G(f) содержит всю информа цию об f, и мы введем следующее определение.
Определение. Функция f: £・一工・ вычислима по Пасту если множество G (/) (т. е. график функции f) порождаемс по Посту.
Пример. Пусть 2 = р}, и рассмотрим функцию /; Z,f », заданную посредством равенств /(Л) = Л,
/(11...11) = 1111...1111.
Множество G(/) порождается следующей системой Поста:
Алфавит {1, •}
Аксиома •(= Л/(A))
/7родукция S] • S& — SJ • SgS^SJ
Единственная продукция этой системы применяется к цепочке вида
И...И-111...111
<Л► ^Zl 2»
и дает цепочку вида
11. ..111111... 11111...1111...111.
<-〃 + 1 ^——л2—►<—л—►◄—л—►
Следовательно, функция f вычислима по Посту.
Предположим, что G(f) порождается системой Поста У. Чтобы убедиться в вычислимости f в неформальном смысле, рассмотрим следующий алгоритм нахождения /(о) по данному о £». «Порождайте некоторым систематическим способом подряд все цепочки из 7,; исследуйте их по мере их появления, отбирая цепочки вида а т с тС S*. Тогда каждая цепочка такого вида будет в конце концов порождена тогда и только тогда, когда о ^ Dom (f), и т = f (а)».
Определение (5.12) распространяется обычным образом на частичные функции: (»尸一► Е・.Вычислимость по Посту на N определится тогда естественным образом, если применить эффективное представление ~: N —* 2е.
5・14・ Определение. Пусть g:図“一 N есть частичная функция, a g: (£•)" f Е* есть функция, определенная посредством
g(/Hi,加2 ・・・,/nj = g(mimJ где 严...,/пя€N. Тогда Функция g вычислима по Посту, если g вычислима по Посту,
Если 伊伤 обозначает класс вычислимых по Посту функций натуральных чисел, то мы имеем следующую теорему:
Теорема.俨侈=8 =歹侈=况.(Мы опускаем доказательство. После изучения гл. 6 и 7 читатель сможет убедиться, что рта теорема следует из теоремы 5.10 и результатов гл. 6 и 7, связывающих р. п. множества с МНР-вычислимыми функциями.)
Другой способ вывести понятие вычислимости из систем Поста состоит в непосредственном моделировании вычислений машины. Это можно сделать, используя множества продукций Q, такие, что к любой данной цепочке применима самое большее одна продукция из Q. Такие множества и системы, в которые они входят, называются однородными (или иногда моногенными). Однородная система действует последовательно подобно машине. Для дальнейшего рассмотрения удобно ввести
запись а=»|т, обозначающую, что а=Фт, но ни одна продукция из Q не применима к т.
Следующая теорема характеризует вычислимость по Посту.
Теорема. Пусть f: S* —> S* есть частичная функция, а X, У——символы, не входящие в S. Тогда следующие утверждения эквивалентны'.
функция / вычислима по Посту\
существует однородное множество продукций Q над алфавитом 2t з 2 U {X, У}, так что для всех о£Е* и т£Е: Q
имеет место Хо=ф|т тогда и только тогда, когда а € Dom (f), а т есть цепочка Yf (а).
(Замечание, Символы X н У необходимы, чтобы отличать «входные» цепочки от «выходных». В противном случае нужную выходную цепочку f(u) можно было бы рассматривать как' новую входную цепочку, к которой можно и дальше применять продукции.)
Докаэательство. Импликацию (а) =Ф(Ь) можно доказать, предварительно установив, что f вычислима машиной Тьюринга М, а затем построив однородное множество продукций для моделирования работы машины М. На самом деле можно получить для нашей цели нормальное однородное множество продукций.
Для доказательства (Ь) =$> (а) довольно просто показать, что функция f: N ~ N, кодирующая 厶 частично рекурсивна,, л затем применить теорему 5.15. □
Эта эквивалентность распространяется на функции /:? (»)"—* Е・ с помощью «входов» вида X%q・.・・・u〃・:
Более полное обсуждение системы Поста читатель найдет в превосходно написанных главах книги Минского [1967], посвященных этой теме.
Вычислимость по Маркову
Понятие вычислимости по Маркову очень похоже на понятие вычислимости по Посту, полученное вторым способом из предыдущего параграфа. Однако вместо того, чтобы ограничиться рассмотрением однородных систем, Марков приводит правила, позволяющие однозначно определять, какую из имеющихся продукций применить следующей. Приведем вкратце описание этих алгоритмов.
Нормальный алгоритм (или алгоритм) Маркова над алфавитом £ задается сйиском Q продукций (или правил) над £ со следующими особенностями:
каждая продукция в Q имеет вид S^gS, f S^S^
) некоторые продукции в Q отмечены как заключительные. Для данной входной цепочки о алгоритм Маркова последовательно применяет продукцию из Q в соответствии со следующими указаниями:
если к цепочке о применимо больше одной продукции из Q, то применяйте первую из них по списку в Q;
если продукция S^gS2fs州乞 применима к с более чем одним способом, то она применяется к самому левому вхождению g в о;
процесс останавливается, давая в результате цепочку а, либо когда применяется заключительная продукция, либо когда никакая продукция из Q уже не применима к т.
Этими условиями полностью определяется вычислимая по Маркову функция /: Ее —► Z*. Нормальный алгоритм Маркова может использовать для вычисления f алфавит, расширяющий 2.
Теорема. Пусть /: £• — £•. Тогда функция / вычислима по Маркову тогда и только тогда, коеда / вычислима по Посту.
Вычислимость по Маркову на N определяется обычным образом с помощью какой-нибудь (эффективной в неформальном смысле) системы представления чисел и поэтому совпадает с другими подходами к вычислимости.
Вычислимость на областях, отличных от N
В § В гл. 1 мы показали, как всякое понятие вычисли*» мости на N можно распространить на другие области с помощью кодирующего устройства. В противоположность этому в преды-
дущем параграфе определение вычислимости по Посту на области цепочек в конечном алфавите было дано прямо в терминах этих объектов (цепочек) и их внутренней структуры. Возможно большое число таких прямых подходов к вычислимости на других областях; приведем два примера.
1. Пример. D = Z. Понятие МНР можно расширить для обработки целых чисел, введя следующие изменения:
каждый регистр содержит целое число;
имеется дополнительная команда S" (п) для каждого и= 1, 2, 3, ..., согласно которой из содержимого регистра R„ вычитается 1.
2. Пример. D = S*, где,= {% Ь}. Класс 9lD частично рекурсивных функций на S*——это наименьший класс частичных" функций, такой, что
ему принадлежат базисные функции
⑴ f(S = A,
f(a) = aa,
f(o) = ob,
функции проекции U* p*、..., aj = az;
класс 笈。замкнут относительно подстановки;
класс 51° замкнут относительно примитивно рекурсивных определений следующего вида:
Л (о, Л) ^ f(a),
Л (a, m) 4 g/ст, т, Л (а, т)),九(。,Tb)4gJ。,т, Л (а, т)),
где f, &, g?W跣d.
класс 况° замкнут относительно минимизации*, если функ ция f(。,т) принадлежит классу 5iD, то и функция Л, опре деленная отношением a, ft (а) ^ цт(/ (а, т) = Л), где цт озш чает первое т в естественном упорядочении Л, a, b, аа, ab, th bb, аа% aab, aba (называемым лексикографическим), так州 принадлежит классу 笈°.
Для каждого из этих подходов, равно как и для друг* подходов к вычислимости на области D, использующих в№ треннюю структуру D, мы убеждаемся, как и следовало ож дать, что они эквивалентны подходу, основанному на перено понятия вычислимости с N на D с помощью кодирован» И наоборот, каждое естественное понятие вычислимости области D индуцирует альтернативное (но эквивалентне понятие вычислимости на N через кодирование, как мы q видели в § 5 относительно вычислимости по Посту.
3. Упражнения
Докажите, что МНР-вычислимость на Z, как было описано в общих чертах в примере 6.1, эквивалентна МНР- вычислимости посредством кодирования (пример 1-5.1).
Докажите, что класс 9lD частично рекурсивных функций на Е* определенных на примере 6.2, тождествен классу функций на S*, вычислимых по Посту.
Предложите естественное определение вычислимости на областях (а) Зх3-матриц, (b) Q (рациональных чисел).
Дайте естественное определение вычислимости по Тьюрингу на 2е, где 2—любой конечный алфавит.
Тезис Чёрча
Сосредоточим теперь свое внимание на втором вопросе введения в эту главу: насколько хорошо неформальное и интуитивное понятие эффективно вычислимой функции отражено в различных формальных описаниях?
Чёрч, Тьюринг и Марков каждый в свете своих исследований выдвинули утверждение или тезис о том, что класс определенных ими функций совпадает с неформально определенным классом эффективно вычислимых функций. В силу основного результата (1.1) эти тезисы математически эквивалентны. Название тезис Чёрча (иногда тезис Чёрча——Тьюринга) теперь применяется к этим и аналогичным им утверждениям. Таким образом, в терминах МНР-подхода можно сформулировать:
Тезис Чёрча: интуитивно и неформально определенный класс эффективно вычислимых частичных функций совпадает с классом & МHP -вычислимых функций.
Сразу же заметим, что этот тезис не является теоремой, подлежащей математическому доказательству; он имеет статус утверждения, принимаемого на веру, которое подтверждается рядом свидетельств. Эти свидетельства в пользу тезиса Чёрча, которые мы вкратце приводим ниже, весьма существенны.
Фундаментальный результат: многие независимые варианты уточнения интуитивного понятия вычислимости пришли к одному и тому же классу функций, который мы сбо- знаиилн дерез'€・
Обширное семейство эффективно вычислимых функций, как было показано, принадлежит классу 伤;конкретные функ- Uhh гл. 2 образуют исходную часть такого семейства, которую можно расширять до бесконечности методами гл. 2 и другими 6о/ее сложными методами.
Реализация программы Р, вычисляющей функцию на МНР, является очевидным примером алгоритма; таким образом прямо из определения класса g видно, что все функции в € вычислимы в неформальном смысле. Как и в случае других подходов к уточнению вычислимости, сами определения таковы, что они показывают эффективную вычислимость функций, входящих в определенный класс.
Никому не доводилось найти функцию, которую можно было бы признать вычислимой в неформальном смысле, не принадлежащую €・
Исходя из этих соображений и собственного опыта, большинство математиков приняли тезис Чёрча. Что касается нас» то в оставшейся части книги мы будем применять тезис Чёрча^ в том смысле, который разъясним в следующем абзаце.
Предположим, что мы располагаем неформально описанным алгоритмом для вычисления значений функции f. Такой алгоритм может быть описан на естественном языке, или с помощью диаграмм, или в полуформальных математических терминах, или с помощью любых других средств, однозначно определяющих, как эффективно вычислять значения f там, где они определены, за конечный отрезок времени. В такой ситуации^ нам может понадобиться доказательство МНР-вычислимости f* Сделать это мы можем в общем двумя способами. -
Способ 1. Написать программу, которая МНР-вычисляет функцию f (и доказать, что она действительно это делает) или косвенным образом доказать, что такая программа существует. Это можно сделать, например, либо применив методй гл. 2, либо показав, что f принадлежит одному из многн】 классов, который равен ^ согласно фундаментальному резуль тату. •
Полное и формальное доказательство того, что функция МНР-вычислима, может быть долгим и технически трудны процессом. По существу, оно должно содержать трансляции неформально описанного алгоритма в программу или на язьг одного из иных формальных уточнений вычислимости. Вероятна понадобятся различные блок-схемы как этапы промежуточна трансляции.
Способ 2, Дать неформальное (хотя и строгое) доказател ство того, что данный неформальный алгоритм действителы вычисляет f. Затем апеллировать к тезису Чёрча и немедлен^ сделать заключение об МНР-вычислимости функции f.
Мы предлагаем воспользоваться способом 2 как строп и надежным методом доказательства, который назовем док зательством, основанным на тезисе Чёрча.
Примеры
Пусть Р является МНР-программой; определим функцию / следующим образом:
(
1, если Р(х} \ у после / или меньшего числа шагов вычисления Р(%);
О в противном случае.
Неформальный алгоритм вычисления f состоит в следующем: «Для заданной тройки (х, у, f) моделируйте вычисле* ние Р(х) (например, на листе бумаги, как в примере 1-2.1), выполняя ? шагов Р(х), если только это вычисление не остановится раньше чем за t шагов. Если Р(х) останавливается после t или менее шагов с числом у в регистре R1# то /(х, у, /)=1. В противном случае (т. е. если Р (х) останавливается за / или менее шагов с числом, отличающимся от у в Ri, или если Р(х) не останавливается после f шагов), /(х, у, f) = 0》・
Моделирование Р(х) для не более чем / шагов является, очевидно, механической процедурой, которую можно выпол* нить за конечное время. Таким образом, функция f эффективно вычислима. Следовательно, по тезису Чёрча f МНР- вычислима.
Пусть f и g—одноместные эффективно вычислимые функции. Определим функцию Л, полагая
力(%) = {力(%) = {1, если xWDom(f) или %WDom(g), не определена в противном случае.
力(%) = {
力(%) = {
Алгоритаы для вычисления Л можно описать в терминах алгоритмов, заданных для вычисления функции f и g следующим образом: «При заданном х запускайте алгоритмы для вычисле* ния /(х) и g(x) одновременно. (Представьте себе двух исполнителей или две машины, работающие одновременно (парал* лельно), или одного исполнителя, который выполняет поочередно по одному шагу каждого алгоритма.) Если и когда хоть одно из этих вычислений остановится, остановите вычисление в це- /ом и положите Л (х) = 1. В противном случае продолжайте вычисление неограниченно долго»1).
Этот алгоритм дает Л (х) = 1 для всякого х, такого, что / (%) н/н g(x) определено; он не завершает работу, если ни f(x), нн g(x) не определено. Таким образом, мы получаем алгоритм 4/я вычисления Л, и, согласно тезису Чёрча, функция Л МНР- внчнслнма.
и Фактически в конкретной физической ситуации до тех пор, пока не 【Ут исчерпаны ресурсы, т. е. память, отпущенное время, энергия и т. п,— Рим. перев.
Пусть f (п) = и-я цифра десятичного разложения числа л = 3,14159... (так что f(0) = 3, f (1)= 1, /(2) = 4 и т. д.). Неформальный алгори™ вычисления / (п) можно описать так. Рассмотрим ряд Хаттона для вычисления л:
"=m +^傷)+後(肝+ +
4爲修阖”+%>£ %
Пусть 5л=2«.о Л„; согласно элементарной теории бесконечных числовых рядов, sft < л < sA+ 1/10*. •
Числа s& рациональны, так что можно эффективно вычислить десятичное разложение sk с любой требуемой точностью. Таким образом, мы приходим к следующему алгоритму вычис* ления f(n) (при заданном 几):«Найдите первое N ^п + 1, такое, что в десятичном разложении sN=aQ9 ап а2 ... anan+l.. .aN ... не все цифры ал+1, ..., aN равны 9. (Такое N существует, так как в противном случае десятичное разложение л заканчивалось бы периодом из одной цифры 9 и л было бы рациона ль* ным и даже десятично рациональным.) Затем положите / (п)=а„>^
Чтобы убедиться в правильности значения f(n) = ant пред, положим, что аот =/= 9 с п <m《N. Тогда, согласно отмечен, ному выше, s# 之兀 V s%+1/10*《Sn+i/l(X Следовательно^ &, % •.. “〃 • •.。巾• • • < 冗 < а。, а】• • • а〃 • • • (°m + 1) • • •» таи что и-я десятичная цифра в разложении л действительно есть ап Следовательно, по тезису Чёрча функция / вычислима.
Читатель должен попробовать провести полные формальны* доказательства (по способу 1) того, что функции в этих пр» мерах МНР-вычислимы (предполагая в примере 2, что функ^ ции fug МНР-вычислимы). В целом это довольно долго и утомительное дело. “
Заметим, что, применяя тезис Чёрча, мы не собираемо отказываться от строгих доказательств вообще, как если б тезис Чёрча был волшебной палочкой, которой достаточй лишь взмахнуть. Доказательство, основанное на тезисе 口印明 будет всегда включать тщательно проводимую аргументации иногда усложненную, хотя и неформальную. Кроме того, кая дый, кто применяет тезис Чёрча так, как мы описали, долже быть способен, если возникнут сомнения, провести формал! ное доказательство. (Как бы предвидя такие сомнения,闻 дадим в приложении к гл. 5 другое формальное доказател ство одной фундаментальной теоремы из этой главы (теор
ма 5-1.2), от которой зависит почти все последующее изложение. Это послужит дальнейшему подтверждению тезиса Чёрча; между прочим, простым формальным следствием является то, что функции в приведенных выше первых двух примерах также МНР-вычислимы.
Тезис Чёрча не только сокращает доказательства, но также помогает выделить основную идею доказательства или построения, освобождая его от массы излишних деталей. Однако он основан больше на вере или уверенности. Насколько можно верить в его справедливость, зависит от свидетельств, которыми мы располагаем. Математическую сторону тезиса Чёрча мы уже рассмотрели. Для читателя, имеющего опыт работы, есть дополнительное свидетельство, основанное на его собственном опыте перевода неформальных алгоритмов в их формальные эквиваленты. Что же касается новичка, то его доверие к тезису Чёрча, который мы будем применять в последующих главах, будет зависеть от того, насколько он может довериться опыту других там, где он еще не имеет собственного опыта.
Итак, в оставшейся части книги мы принимаем тезис Чёрча и будем применять его в описанном выше смысле, часто без явной ссылки на него. 、
Упражнения
Пусть / (х) и g (х)—эффективно вычислимые функции. Докажите с помощью тезиса Чёрча, что определенная ниже функция Л МНР-вычислима:
.z ч f 1, если х € Dom (f) П Dom (g), "1*丿一\ не определена в противном случае.
Пусть /—тотальная одноместная вычислимая функция. Докажите, используя тезис Чёрча, что следующая функция А МНР-вычислима:
1,если x^Ran (f),
I 丿—1 не определена в противном случае.
Дайте подробное доказательство с помощью тезиса Чёрча, что функция Аккермана (пример 2-5.5) вычислима.
Докажите, основываясь на тезисе Чёрча, что функция g, заданная условием g(几) = 〃・я цифра в десятичном разложении □нсла е, вычислима (где число е—основание натуральных логарифмов).
Глава 4
Нумерация вычислимых функций
Вернемся теперь к изучению МНР-вычислимых функций. В дальнейшем термин вычислимое будет означать МНР-вычис- лимое, а термин программа—МНР-программу.
Основной результат, устанавливаемый в этой главе, состоит в эффективной перечислимости множества всех программ; другими словами, существует эффективное кодирование программ множеством всех натуральных чисел. Среди прочего отсюда следует перечислимость класса 抬,что в свою очередь влечет невычислимость многих функций. Диагональный метод Г. Кантора, с помощью которого устанавливается этот факт, мы обсудим в § 3.
Нумерация, или кодирование, программ, и особенно их эффективность, играют фундаментальную роль в теории вычислимости. Их значение нельзя переоценить. Посредством кодирования получаются коды или индексы для вычислимых функций, а их наличие наталкивает на идею эффективных операций, использующих такие коды. В § 4 мы докажем две важные теоремы, связанные с кодами функций: так называемые s-m-n- теоремы Клини. (Вторая теорема является основным результатом гл. 5.)
Нумерация программ
Опишем сначала используемую терминологию.
Определение, (а) Множество X счетно, если существует биекция f: X —* М
(Замечание. Иногда используемый термин не более чем счетное означает счетное бесконечное или конечное.)
Перечислением, или нумерацией, множества X называется сюръективное отображение g: N X; часто его представляют следующей записью: Х«{х0, xlt ха,・••}, где /==g(〃)・ Еслй функция g инъективна, то говорят о перечислении или нуме, рации без повторений. ;
Пусть X—множество конечных объектов (например, мно^ жество команд или множество программ); X называется эффек^ тивно счетным, если существует биекция /: X —N, такая; что обе функции f и 尸 эффективно вычислимы. .
(Замечание. Мы имеем здесь в виду неформальное понятие эффективно вычислимого. К этому нас вынуждает то обстоятельство, что, вообще говоря, отсутствует формальное определение вычислимости функций, отображающих X в N、. В тех случаях, когда применяется некоторое формальное понятие, этому придается тот же смысл, что, например, в теореме 1.2 (а).)
Для установления основного результата этой главы нам понадобится следующая теорема (напомним, что N+ обозначает множество всех положительных натуральных чисел).
Теорема. Следующие множества являются эффективно счетными:
NxN;
N+xN+xN+;
lift > о Nft, множество всех конечных последовательностей натуральных чисел.
Доказательство t
Биекция n: N X N — N определяется равенством: л (/и, п)= =2勿(2几+1)—1. Из определения очевидно, что функция л вычислима; эффективная вычислимость обратной функции видна из того, что 冗-i можно задать как L (%) = (%(%), л2 (х)), где 冗1,冗2—вычислимые функции, определяемые равенствами л】 (х)= = “+1)1, п2(х) = 1/2((х+1)/(2^*(^)-1)) (см. упр. 2-4.16(2)).
Для явного задания биекции £ N+ xN+ xN+ f N используем функцию л из (а):
С(т, и, д) = л(л(加一1, 〃一1), g—1).
Тогда
gT (%) = (%(%(%))+】,%(%(%))+1, %(%)+])•
Поскольку функции л, nn ла эффективно вычислимы, то эффективно вычислимы и функции 工 и「.
Биекция т: Ua>oN*t N задается тождеством "%,•・・,4)=2%+25+内+1+2%+/+%+2+ …+2°-%+ ••+%+包T_1. Очевидно, что функция т эффективно вычислима. Чтобы установить биективность т и вычислить т'1 (х), используем тот факт, что у каждого натурального числа имеется ровно одно представление В двоичной позиционной системе. Таким обра* з°м, для данного х можно эффективно и единственным образом Указать числа й> 1 и 0^Ьх < Ьа <...< &д, такие, что х + 1 = =2& + 2% + ..「+ 2%, откуда получаем「"%) = (%,.…,,), ^
"Казалось бы, можно сказать, что мы используем понятие вычисли* :остц, основанное на некотором кодировании. Но в этом-то и состоит вся Р°6лема, поскольку кодирование является эффективной (в неформальном смысле) функцией.
где %=&, a az+1 = b/+1—b/—1 (1<х <Л). (Ср. упр. 2-4.16(5),, в котором доказывается вычислимость функций, тесно связанных с вычислением L.) □
Обозначим множество всех команд МНР через 夕,а множество всех программ через 夕.Каждая программа состоит из конечного списка команд, поэтому мы далее рассмотрим множество 夕.
Теорема. Множество 夕 эффективно счетно.
Доказательство. Явно определим биекцию р:夕 一 N, которая отображает команды четырех типов в натуральные числа вида 4〃,4〃+1, 4〃+ 2, 4〃*3 соответственно; используем функции л и j, определенные при доказательстве теоремы 1.2.
0(Z (九))=4 (几一1),
p(S(n)) = 4(n-l)+l,
Р(Т (m, n) = 4л (/и—1, п—1) + 2, P(J(m, n, ?)) = 4$(m9 明 g) + 3・
Это явное определение показывает эффективную вычислимость функции р. Для вычисления р"1 (х) найдем сначала такие числа и и г, что % = 4〃 +, при 0 ^ г < 4. Значение г указы* вает тип команды В■工(%), а и позволяет найти конкретную команду данного типа, а именно:
если г и 0, то l(%) = 2(〃+1);
если г= I, то ^1(x)^=S(u+ 1);
если г = 2, то Р"х(х) = Т (лх (и)4- 1; л, (и)+ 1);
если г = 3, то BTa)= J(m, & g), где (m, п, д) = Ь】(%
Следовательно, функция р"1 эффективно вычислима. □ Докажем теперь следующую теорему.
Теорема. Множество 尸 эффективно счетно.
Доказательство. Определим биекцию у:尸—N следующи образом, используя биекции тир теорем 1.2 и 1.3: ecd 戶=/[, /2, ...» 厶,то y(P) = k(B(/J,…,Р(/$))・ Так как, и 0—биекции, то и у является биекцией, а эффективная Bi числимость функций т, Р и обратных к ним функций обесг чивает эффективную вычислимость у и у"1. □
Биекция у играет важную роль в дальнейшем изложен» Число у (Р) называется кодовым номером, млн еёделевым" но*
1)Термин гёделев номер стал применяться после знаменитых К. Гёделя, впервые осуществившего идею кодирования нечисловых тов натуральными числами (Гёдель [1931]).
ром программы Р, или просто номером Р. Положим
Р„ = программа с (кодовым) номером 〃 = ?т(〃)
и будем называть Рп n-й программой. По построению у неравенство т^п влечет за собой различие программ Рт и Рл, хотя они могут вычислять одну и ту же функцию.
Для дальнейших результатов крайне важно, что функции Y и у-】 эффективно вычислимы, т. е.
По данной программе Р можно эффективно найти ее кодовый номер у (Р).
По данному номеру 九 можно эффективно найти программу =
Поясним это двумя простыми примерами.
Примеры
Пусть Р является программой Т (1, 3), S (4), Z(6). Вычислим у (Р).
Р(?(1, 3)) = 4h(0, 2) + 2 = 4(2。(2x2+1)一1) + 2=18,
p(S(4)) = 4x3+l = 13,
P(Z(6)) = 4x5 = 20.
Следовательно, у (Р) = 218 + 2за + 253 — 1 = 9007203549970431.
Пусть и = 4127, найдем Р4П7. 4127 = 2Б + 21Я—1; следовательно, Р4127 является программой с двумя командами 厶, 厶,где
Р(Л) = 5 = 4х1 + 1,
Р(Л)= 12—5—1=6 = 4Х 1+2 = 4л(1, 0) + 2.
Согласно определению р, ^ = 5 (2), а /, = Т (2, 1), и, значит, Р4127 есть S(2), Т(2, 1).
Существует, конечно, много других возможных эффективных биекций из 尸 в N; наш выбор деталей определения у был в достаточной мере произвольный. Снова подчеркнем, что существенна эффективная вычислимость у и у-1. Отдельные частности в определении у не столь важны. Для излагаемой Далее теории подходит всякая другая биекция у' при усло- вн% что ?' и обратная к ней функции эффективно вычислимы. Однако нам надо фиксировать какую-нибудь конкретную ну- мерацню программ, и мы выбираем нумерацию, задаваемую Функцией у. 6 остальной части книги нумерация у остается неизменной, так что для каждого числа 九 значение Рп не ^^еняется. Так, например, Р41а7 всегда означает программу S(2), Т(2, 1).
Упражнение. Найдите
0(J(3,4,2)),
(b)尸(503),
кодовый номер следующей программы: Т (3, 4), S (3) Z(l),
"ioo・
Нумерация вычислимых функций
Используя нашу фиксированную нумерацию программ можно перенумеровать вычислимые функции, а также их области определения и множества значений. Введем некоторые важные обозначения, лежащие в основе последующего изложения.
Определение. Для каждого a£N и 九》1
ф^} =п-местная функция, вычислимая по программе Ра = в обозначениях § 3 гл. 1,
W^} = область определения е* = {(%1, х„)| 尸《 (%i, • • •, х〃)3 }, Е『=множество значений функции Ф^}
В последующих главах мы в основном будем иметь дела с одноместными функциями и для удобства опустим верхний индекс (1); так, будем писать Фа вместо 第),Wa вместо 呼涉 и Еа вместо 以".
2・2・ Пример. Пусть а = 4127; из предыдущего раздела мь знаем, что программа Р4127 есть S (2), Т(2, 1). Следовательно б】”(%)=1 (ДЛЯ всех 6,а 抬% (&, хп) = х2 + 1, если 几〉1. Таким образом, ^4127 = ^, £*4127 = {1}; W^21 = Мя Д127 = М + , если 几〉1.
Пусть / ——одноместная вычислимая функция. Тогда дол*н@ найтись вычисляющая / программа Р, такая, что / = 0。,гдд u = Y(P). Будем говорить, что а есть некоторый индекс f. Пси скольку для каждой функции существует много различны! вычисляющих ее программ, нельзя сказать, “то а есть 。3〃浦 сшвенный индекс /; в действительности у каждой вычислимой функции бесконечно много индексов.
Отсюда следует, что каждая одноместная вычислима# функция представлена в перечислении Фо, Фи «&, ... и чт4 это — перечисление с повторениями. То же относится к п-месч ным функциям и их перечислениям.
Упражнение. Докажите, что у каждой вычислимой 巾ун用 ции имеется бесконечно много индексов.
Напомним, что множество всех n-местных вычислимых функций обозначается через М“・
Теорема. Множество &〃 счетно.
Доказательство. Используя перечисление 6Й°, 6仪,力「,... (в котором есть повторения), построим перечисление без повторений.
Пусть
/(0) = 0, f(m+\^^z^^^ .... /%)).
Тогда “*, 6%, Ф/%), ... есть перечисление ^п без повторений. □
Замечание. Мы не требуем, чтобы функция /, определенная в этом доказательстве, была вычислимой; на самом деле позднее мы сможем показать, что это не имеет места. Тем не менее можно дать более сложное построение всюду определенной вычислимой функции 九,такой, что 6席), 掰厶),... окажется перечислением ^п без повторений. Этот факт доказал Фридберг [1958]п.
Следствие. Множество & счетно.
Доказательство. Поскольку ^ = ия> i^n, то счетность ^ вытекает из того, что объединение счетного числа счетных множеств есть счетное множество.
Для каждого 九 положим, что fn равна функции, использованной в теореме 2.4 для перечисления ^п без повторений. Пусть л—биекция NxN —N из теоремы 1.2. Определим 8: g—>N равенством 8(6"向)=几(加,九—1)・ Очевидно, что 0 —биекция. □
Следующая теорема показывает, что существуют невычислимые функции. Идея доказательства столь же важна, как и результат.
Теорема. Существует невычислимая всюду определенная (или тотальная} функция.
Доказательство. Мы построим тотальную функцию f, одновременно отличающуюся от каждой функции в перечислении 6’ 外,Ф2» ••• класса 伤厂 Положим
f (〃)=f (〃)=Ф„ (и)+1, если значение Ф„ (п) определено, 0, если значение фп (и) не определено.
f (〃)=
f (〃)=
” См. также Мальцев А. И. Алгоритмы и рекурсивные функции, 「〃 IV, § 7.4. —М.: Наука, 1965.—〃р〃лг перев.
Заметим, что мы так определили /, что для каждого % функция f отличается от Фп в точке п:
если Ф„ (и) определено, то f отличается от Ф„ тем, что Кп)^=Фп (и);
если Фл (п) не определено, то / отличается от Фп тем, 4Tb значение /(п) определено.
Поскольку f отличается от каждой одноместной вычисли-J мой функции Ф„, то / не представлена в перечислении класса 留1 и, стало быть, не является вычислимой. Очевидно, что f—тотальная функция. □
Обсуждение: диагональный метод
Метод построения функции / в теореме 2.6 является при* мером диагональной конструкции, открытой Кантором. Многие читатели знакомы с этим методом по его применению в до-* казательстве несчетности множества действительных чисел» Лежащая в его основе идея применима к огромному числу^ ситуаций и является центральной в доказательствах многих, результатов, относящихся к вычислимости и разрешимости.
Объясним, почему выбран термин диагональный. Для этого рассмотрим опять построение функции / в теореме 2.6. Пол* ную информацию о функциях Фо, Фп ... можно представит!^ в следующей бесконечной таблице:
0 :12
34
加 ⑯) ФМ “⑵ 办 *i(0) @J) 屯⑵ 力 5(0) Ml) @j) 九 阴(0) 也⑴ 也⑵
九⑶…
如⑶…
力⑶...
Считаем, что в том случае, когда значение фя (т) не опрб делено, в таблице записано «не определено».
Для построения функции / отбираются диагональные эл§ менты таблицы (обведенные кружками) Фо (0), Ф£ (1), Фа(2),.. и систематически изменяются так, что получаются значения f (0) /(1), /(2), •・., такие, что для каждого п значение /(м) отл州 чается от Фп (и). Заметим, что значения / (п) можно выбират сравнительно свободно, надо только обеспечить отличие f (壊
оТ фп (п). Таким образом,
&М)= (丸(九)+ 27", если Фп (п) определено, ] па,если ф„(п) не определено,
является другой невычислимой тотальной функцией.
Подведем итог нашему использованию диагонального метода. Пусть х0, у】,%2, • • • есть перечисление объектов некоторого типа (функций или множеств натуральных чисел). Тогда можно построить объект % того же типа, следуя правилу: «Делать так, чтобы % и х„ отличались в точке м». Интерпретация слов «отличались в точке п» зависит от типа рассматриваемых объектов. Функции могут различаться в точке 九 либо определенностью, либо своими значениями. В случае функций мы обычно имеем возможность выбора при построении х для того, чтобы удовлетворялись дополнительные требования, например, чтобы % была вычислимой или чтобы ее область определения (или множество значений) отличалась от области определения (множества значений) каждого хя.
В случае множеств вопрос состоит в том, принадлежит ли и множеству или нет. Проиллюстрируем диагональную конструкцию на примере множеств.
Пример. Предположим, что До, 4n 4S,・・・ есть перечисление подмножеств N. Определим новое множество В, применяя диагональный принцип: п^В тогда и только тогда, когда п^Ап. Очевидно, qfb В ^Ап для всякого п.
Важные применения диагонального метода рассматриваются в следующих двух главах.
Упражнения
Предположим, что f (%, у)—тотальная вычислимая функция. Для каждого т обозначим через gm вычислимую $унк・ нню, полагая gm (y)^f(m9 у).
Постройте тотальную вычислимую функцию Л, такую, что 九 К gm Для каждого /и.
Пусть /0,厶,.・・ есть перечисление частичных функций из N в N. Постройте функцию & из N в N такую, что Dom (g) #= ,Dom 色)для каждого i.
Пусть f—частичная функция из N в N, a mWM Постройте невычислимую функцию g, такую, что g(x)<^f (х) пая всех %&加.
4(a) (Кантор). Докажите, что множество всех функций из N в N несчетно.
4(b). Покажите, что множество всех невычислимых тоталь- нмх функций из N в N несчетно.
s-m-n-теорема
В заключительном параграфе мы докажем теорему, которая имеет много важных применений, особенно в сочетание с основной теоремой следующей главы.
Предположим, что /(х, у) — вычислимая функция (не обя* зательно тотальная). Тогда для каждого фиксированного значения а переменной 无 функция f приводит к одноместной выТ ЧИСЛИМОЙ функции gc「^ Sa (f/) ~ / (а» 办 ПОСКОЛЬКУ ga Bbh числима, то у нее есть индекс % такой, что / (а, у)4>(р}
Следующая теорема показывает, что индекс е можно зффе/6 тивно найти по а. Это является частным случаем более о& щей теоремы, известной под названием 5-/и-и-теоремы, кото^ рую мы докажем ниже. (Причина такого названия будет разъяснена после теоремы 4.3.) Для большинства целей наше] книги достаточно теоремы в следующем виде:
Теорема (s-m-n-теорема, простая форма)• Предполу жим, что f(%, у) —вычислимая функция. Существует /по шальная вычислимая функция k (х), такая, что / (%, у)亠 6*(*)&)*
Доказательство. Для каждого фиксированного а через 々⑷ обозначим кодовое число программы Q。,которая исходя 毗 данной начальной конфигурации
Ri
(*) I у I О I О I О I ...
вычисляет /(% у).
Пусть F —программа, вычисляющая функцию /. Тогда Q1 получается из г приписыванием спереди команд, преобразуй щих конфигурацию (*) в
Таким обравом, определим Qe как следующую программу:
Т(1, 2) Z(l)
S(l)
S(l)
Теперь положим Л (а)«кодовое число программы Q@. Поскольку 尸 фиксировано и ввиду эффективности нашей нумерации 丫 программ, функция k оказывается эффективно вычислимой. Следовательно, по тезису Чёрча ^ — вычислимая функция. По построению 6色(°)(у) 4/(а, у) для каждого а. □
s-m-л-теорему иногда называют теоремой параметризации, поскольку она показывает, что индекс вычислимой функции (такой, как ga в приведенном выше рассуждении) можно эффективно найти по параметру (такому, как а), от которого он эффективно зависит.
Перед тем как сформулировать полную s-m-n-теорему, дадим несколько простых иллюстраций применения теоремы 4.1 в эффективной нумерации (или индексировании) некоторых последовательностей вычислимых функций и их областей определения или множеств значений.
Примеры
Пусть /(%, у) = у*. По теореме 4.1 существует тотальная вычислимая функция 々,такая, что Фк ⑺(у)■夕.Следовательно, для каждого фиксированного п величина Л (и) является индексом функции уп,
Пусть
/a,公Н{/a,公Н{у, если у кратно х, не определена в противном случае.
/a,公Н{
/a,公Н{
Тогда f вычислима, и обозначим через 也 вычислимую функцию, такую что «а(X)(у) 4/(%, у). Тогда для каждого фиксированного и значение 队⑷⑼ определено тогда и только тогда, когда у кратно и, и тогда и только тогда, когда у принадлежит множеству значений <^(编,т. е. Wk(h)= ^N (множество чисел, кратных 九)=&向・
Таким образом, мы получили индексацию последовательности множеств (mN) как (i) областей определения вычислимых Функций, (ii) множеств значений вычислимых функций.
Очевидный способ обобщения теоремы 4.1 состоит в замене единственных переменных х, у на т・ н n-наборы хну соответственно. Можно также отразить то обстоятельство, что Функция определенная в доказательстве теоремы 4.1, эффек- тнвно зависит от конкретной программы для исходной функ- 既 f, Таким образом, вместо рассмотрения фиксированной ычислимой функции /(х, у) мы рассмотрим вычислимую Функцию ф^п)(х, у) общего вида и проблему нахождения для аждого ей* числа z, такого, что ф^п} (х, у) ^ Ф^ (у).
Теорема (s-zn-n-теорема). Для всяких т,九》1 существует тотальная вычислимая (т+ \ )-местная функция s^(e, х), та・ кая, что
6"〃)(*,驴4 6好(% "б
Доказательство. Обобщим доказательство теоремы 4.1. Для каждого i》l определим Q (i, х) как подпрограмму
Z(i)
х раз
S(i)丿
которая заменяет текущее содержимое R, на %. Тогда для фиксированных т, и определим s*(e, х) как кодовое число следующей программы:
Зта часть программы преобразует любую конфигурациюЗта часть программы преобразует любую конфигурациюТ(〃, m +〃)
Зта часть программы преобразует любую конфигурацию
Зта часть программы преобразует любую конфигурацию
T(2,m + 2)
T(l,m + 1) Q(l,x】)
0(2, X2)
Q(m, Xm)
Из этого явного определения и эффективности у и у"1 пол) чаем эффективную вычислимость функции 0, а, следовательно по тезису Чёрча и ее вычислимость. □
Стандартное название этого результата «$-/и-/г-теорем связано с обозначением 隨 для функций в теореме 4.3. Л будем так называть и более простую версию, данную в % ореме 4.1.
Нетрудно видеть, что функция 歹,определенная выц является на самом деле примитивно рекурсивной. Немнб поразмыслив, можно увидеть, что для каждого /и найдем функция s^ (также примитивно рекурсивная), которая уд® летворяет теореме 4.3 для всех и. (См. упр. 4.4(5) ниже.)
Упражнения
Покажите, что существует такая тотальная вычислимая функция 生 что для каждого п значение k(n) является индексом функции [{/ х].
Покажите, что существует такая тотальная вычислимая функция R что для каждого 九 множество Wk(〃)равно множеству точных п-х степеней натуральных чисел.
Пусть 九 > 1 ・ Покажите, что существует тотальная вычислимая функция s, такая, что
呼州О n {(f/l,• • . , %) I У1 + % + • • • + % N %}•
Покажите, что функции % определенные в теореме 4.3, примитивно рекурсивны.
Покажите, что для каждого т существует (т+ 1)-местная вычислимая функция sm, такая, что для всех 九 имеет место 0y"+〃)(*, У) * 力卩(% *)(У),те х, у суть т・ и n-наборы соответственно.
(Указание. Рассмотрите определение s? (е, *), данное в доказательстве теоремы 4.3. Единственное место, где и встретилось там, было определение количества натуральных чисел г{,厂2, •♦•, которые заносятся в регистры Rm+1, R^+z,.... Теперь напомним, что действие Ре зависит только от первоначального содержимого регистров Rlt ..., Rp (Р,), где р — функция, определенная в § 2 гл. 2; p(PJ не зависит от п.) Покажите далее, что существует такая примитивно рекурсивная функция sm.
Глава 5
Универсальные программы
В этой главе мы установим несколько неожиданный результат, состоящий в том, что существуют универсальные про- е граммы, т. е. программы, которые в некотором смысле реали- _ зуют все другие программы. Этот результат является одним из двух основ теории вычислимости (другой является s-m-n- теорема); оба результата опираются на нумерацию программ, 一 данную в гл. 4.
Одним из важных приложений универсальных программ является построение специальных невычислимых функций и неразрешимых предикатов, которое будет проведено в гл. 6. Читатель получит представление о таких приложениях в § 2 этой главы; мы также воспользуемся универсальной программой- для построения тотальной вычислимой функции, которая не является примитивно рекурсивной, как было обещано в гл. 3.
Заключительный параграф этой главы посвящен некоторым иллюстрациям применения s-zn-n-теоремы в сочетании с универсальными программами. Это сделано для того, чтобы показать, что некоторые операции над индексами вычислимых функций являются эффективными (эта тема будет развита в гл. 10).
Универсальные функции и универсальные программы
Рассмотрим функцию 屮(х, у), заданную соотношение! 屮(х, у) ~ Фх (у). В этом и только в этом смысле единственна' функция 屮 реализует все одноместные вычислимые функци! Фо, фп %, ..., так как для любого фиксированного т фуш. ция g, заданная как g(y)i 屮(加,у), является в точности фунв цией 屮小.Таким образом, мы описали 屮 как универсальна функцию для одноместных вычислимых функций. Вообще вв дем следующее определение.
Определение. Универсальной функцией для п-местм вычислимых функций называется (п+ 1)-местная 屮沙,опред ленная соотношением
屮呪(% %1,• • • , Х/1) 4 ф^ (%[,..., %п); Вместо 屮伊 мы будем просто писать %.
Возникает вопрос, является ли 中。(и вообще 屮^)) вычислимой функцией? Если является, то любая программа Р, вычисляющая яр。, может вычислять все другие программы, и Р подходит название универсальной программы. Сначала, возможно, существование универсальной программы кажется неправдоподобным. Тем не менее нетрудно убедиться в том, что функция *и действительно вычислима. Суть состоит в том, что универсальная программа Р не должна обязательно содержать в себе все другие программы; Р должна только уметь декодировать любое число е и, следовательно, имитировать программу 匕.
Теорема. Для каждого л универсальная функция 2%> е~・ числима.
Доказательство. Фиксируем п и предположим, что нам даны индекс е и и-набор %. Неформальная процедура вычисления WU)(% *) состоит в следующем: «Декодируйте число е и напишите программу 匕.Затем имитируйте вычисление по программе Ре шаг за шагом, на каждом шаге выписывая содержимое регистров и команду, которую надо выполнять на следующем шаге (как это делалось в примере 1-2.1). Если и когда вычисление оканчивается, требуемое значение ^ (е, ж) содержится в регистре R/.
Мы можем сразу заключить (используя тезис Чёрча), что функция 屮沙(% х) вычислима. Однако ввиду важности этой теоремы мы предпочитаем дать в общих чертах начало формального доказательства и затем использовать тезис Чёрча в меньшей степени. (Для того чтобы обеспечить полноту нашего изложения, мы приведем остальную часть доказательства в приложении в этой главе.)
План формального доказательства таков: вначале покажем, как надо использовать единственное число о для кодирования текущей ситуации в процессе вычисления, а затем покажем, что существует вычислимая функция, выражающая зависимость о от (а) номера программы е, (Ь) входа * и (с) числа шагов вычисления, которое надо выполнить. Мы увидим, что атого достаточно для доказательства теоремы.
Вернемся к вычислению Р.(х), рассмотренному выше. Как мы видели на примерах, текущая ситуация в процессе вычис- 』ения полностью определяется (i) текущей конфигурацией (содержимым регистров rn а, △•・•) и (ii) номером / следую- Зей команды в вычислении. Так как может быть лишь конеч- ное множество чисел ть отличных от 0, то текущая конфи- гУрация может быть задана единственным числом
0 = 2大3人..• = ^Пр?-
(Напомним, что pz есть i-e простое число.) Назовем это число кодом конфигурации или даже просто конфигурацией, если не возникнет неоднозначности. Заметим, что содержимое 勺 регистра R/ легко восстанавливается по с; в самом деле rz=(c)z (используя функцию теоремы 2-4.15 (d)).
Полное описание текущей ситуации можно закодировать - теперь единственным числом о = л(с, /), которое мы назовем текущим состоянием вычисления Р(*)・ (Здесь л—спаривающая функция, использованная в доказательстве теоремы 4-1.2.) Примем соглашение, что в случае остановки вычисления / = 0 и с является заключительной конфигурацией. Заметим, что с = Л1(о), а / = л8(а), где л】и л8—вычислимые функции, определенные в теореме 4-1.2.
Числа с, /, о изменяются в процессе вычисления; эта зависимость от номера программы % входа х и числа f шагов выражается следующими (и +2)-местными функциями:
(1)с〃(е, х, /) = конфигурация после того, как выполнено t шагов вычисления Ре(х) (=заключительная конфигурация, если Р^(х)| за / и меньше шагов).
⑵(3)⑵(3)in (^» £ 0 =in (^» £ 0 =числох), кодирующее следующую команду для Ре (х) после / шагов вычисления, если Ре (х) не остановилась за / или меньше шагов;
⑵
(3)
⑵
(3)
in (^» £ 0 =
in (^» £ 0 =
0, если Ре (х)| за t или меньше шагов.
% (% #, /)«= состояние вычисления Ре (х) после t шагов= = л(%(% X, /),九® х, /))・
Теперь осталось показать, что о〃 (и, следовательно, сл и /„)—вычислимые функции. Чтобы убедиться в достаточностя этого, предположим, что мы это уже доказали. Очевидно, если вычисление останавливается, то оно останавливается за |ы/ (/„ (е, х, /) = 0) шагов; тогда заключительной конфигурацией будет сп (е, х, ц/ (/„ (е, х, /) = 0)), а стало быть,
屮勿(е, *)*(%(% ж, М(/〃(е, х, f) = 0)))i・
Таким образом, если сп и /„ вычислимы, то 屮盼 так岡 вычислима (надо применить подстановку и минимизацию), наше доказательство будет завершено..
Используем теперь тезис Чёрча, чтобы показать вычисли мость функций о〃 (а следовательно, с„ и /я). У нас есть ел дующий неформальный алгоритм эффективного нахожденИ
】)Мы подразумеваем здесь число /, такое, что следующая команда1 является рй командой программы Р.; мы не имеем в виду здесь кодов» число ₽(/)..
% (% х, /4-1) по %(е, х, 0 и е: «Декодируйте %(е, ж, f) с тем, чтобы найти числа с = сп (е, х, /) и / = /л (е, х, f). Если / = 0, то %(е, ж, f+l) = %(% х, f). В противном случае запишите конфигурацию с кодом, скажем, с
(*) (哈(办 ®з ... (с)т 00
и, декодируя % напишите программу Р,. Найдите /-ю команду в Ре и примените ее к конфигурации (•), переходя к новой конфигурации с кодом, скажем, с'. Найдите также номер 广 новой следующей команды (с /' = 0, если вычисление теперь уже завершилось)». Тогда мы получаем
% (% х, /+ 1)=冗С,『)•
Это показывает неформально, что о〃(е, х, /) вычислима рекурсией по 九 так как при / = 0 мы имеем
%(%~0)=n(2/3也...区*1),
чтобы начать рекурсию. Следовательно, по тезису Чёрча функция о〃 вычислима, и наша теорема доказана. □
Замечание. Так как эта теорема является основой дальнейшего изложения, то в приложении мы приведем полное формальное доказательство того, что функция о〃 (а следовательно, и 屮%)) вычислима. Это будет дополнительным подтверждением тезиса Чёрча. (Наше формальное доказательство даст нам дополнительную информацию о том, что о〃 на самом деле примитивно рекурсивна.)
Из доказательства теоремы вытекает
Следствие. Для всякого 九》1 следующие предикаты разрешимы:
S〃(% х, у. /) = «Ре (х)[у за t или меныие тагов》,
"〃(% х, /) = «РГ (х)| за t или меныие тагов».
Доказательство.
Sn (е, X, у, f)E«j〃(e, х, /) = 0 и (以(е, х, /))】=#•
"〃(% х, f) = «/“(% х, f) = 0》・□
Роль следующего следствия обсуждается в первом замеча- ннн из тех, что последуют далее.
1・4・ Следствие, (теорема Клини о нормальной форме). Суще- cm8yHm тотальная вычислимая функция £/(%) и для каждого 〃 > 1 разрешимый предикат Тп (% х, z) такие, что
(а) Ф?(х) определено тогда и только тогда'когда BzTn(et х, г), (Ь)些(%) a U (нгТ„ (е, %, г).
Доказательство. Чтобы выяснить, определено ли ф^ (х), и, если определено, найти его значение, нам нужно найти такую пару у,九 что S〃(e, х, у, f). У нас есть ц-оператор, который позволяет эффективно найти единственное число, обладающее данным свойством. Чтобы использовать это обстоятельство для поиска пары чисел, мы можем рассматривать единственное число z как кодирующее пару чисел (z)r и (z%. Тогда, когда z пробегает N, пара ((z)n (z%) пробегает NxN. Так мы определяем
7〃(% %,2)=: Sn (б, х, (z)[, (z)2).
Для доказательства (а) предположим, что Ф^ (х) определено; тогда существуют такие у, / что Sn (е, х, у, /), и, полагая z = 2^3', имеем 7\(% *, z).
Обратно, если существует z, такое, что Тп (е, х, z), то по определению Тп имеет место Ре (х)|, т. е. ^ (х) определено.
Что касается доказательства (Ь), то из определения Тп ясно, что если 6,")(%) определено, то для каждого z, такого, что 窘(% х, 2), мы имеем 0P(x) = (zj. Таким образом, положив 沙(z) = (z)i,получаем
魏⑴(%) a U ((xzTn (е, х, z))・ 口
Замечания
Из приложения к этой главе следует, что функции сп и /„ примитивно рекурсивны. Следовательно, предикаты Sn9 Нм Тп в следствиях 1.3 и 1.4 также примитивно рекурсивны. Таким образом, в частности, теорема Клини о нормальной форме показывает, что каждая вычислимая функция (или частично рекурсивная функция) может быть получена из примитивно рекурсивных функций не более чем одним применением ^-оператора. Теорема дает, кроме того, стандартный способ осуществления этого.
Метод поиска пар чисел путем представления пары единственным числом г, кодирующим пару (г)о (叫 (использованный в доказательстве следствия 1.4), часто применяется в теории вычислимости. Ниже мы даем упражнение, в котором используется этот метод (упр. 1.5(1)).
Этот способ можно также применить при поиске последовательности чисел (力и %а, ..., *“) для всякого п > 1.
1.5. Упражнения
(i) Покажите, что существует разрешимый предикат Q(%, У, * такой, что
у^Ех тогда и только тогда, когда 3zQ(х, у, z);
если у^Ех и Q(x,弘 z), то 九((z)J = y.
Выведите существование такой вычислимой функции g(M/ что
g(x9 у) определено тогда и только тогда, когда у^Ех.
если у^Ех. то g(x, y}^Wx и 丸(g(%, у)) = у; т. е. g (九 seer &/})・
Докажите, что если f—вычислимая инъективная функция (не обязательно тотальная или сюръективная), то функция f-i вычислима (ср. упр. 2-5.4(1)).
2. (Ср. пример 3-7.1(b).) Пусть / и g—одноместные вычислимые функции; в предположении, что разрешимость 7\ доказана формально, докажите формально, что функция й (х), определенная следующим образом:
/ к I 1, если х ^ Dom (/) или %WDom(g);
< 丿一 I не определена в противном случае вычислима.
Два приложения универсальной программы
Проиллюстрируем теперь, как использовать вычислимость универсальных функций в диагональных построениях. Этот вид приложений более обстоятельно будет разъяснен в следующей главе.
Теорема. Проблема《Ф^ всюду определена^ неразрешима.
Доказательство. Пусть g—характеристическая функция этой проблемы, т. е.
z ч = ( 1, если Фх тотальна,[ 0, если Фх нетотальна.
Нам надо показать, что функция g невычислима. Чтобы сделать это, применим диагональный способ построения тотальной функции /, которая отличается от каждой вычислимой функции, однако такой функции 厶 которая будет вычислима, если вычислима функция g. Явным образом зададим / посредством
°x(%)+L если Фх тотальна,\ 0, если Фх нетотальна.
Очевидно, что / тотальна и отличается от каждой вычислимой Функции фх. Теперь, применяя g и 屮〃,запишем f следующим образом:
丿 Wu(/ *)+L если gа)n1,八0,если g(х) = 0.
Предположим теперь, что функция g вычислима; так как 屮〃 вычислима, то по тезису Чёрча вычислима и функция Д что приводит к противоречию. Следовательно, g невычислима. □
А теперь, как было обещано в § 3 гл. 3, мы приведем еще одно приложение универсальной программы.
Теорема. Существует тотальная вычислимая функция, не / являющаяся примитивно рекурсивной.
Доказательство. Дадим неформальное доказательство этого. Напомним, что примитивно рекурсивными называются функции, которые можно построить из базисных функций с помощью конечного числа подстановок и примитивных рекурсий. Таким, образом, каждая примитивно рекурсивная функция может быть задана схемой, в которой отмечены базисные функции и точная последовательность операций, примененных при ее по-' строении. Для описания такой схемы удобно ввести следующие обозначения:
Sub(/; gi, g2,…,gQ обозначает функцию полученную подстановкой g” g^ в f (в предположении, что / есть m-местная, a glt ..., g^—n-местные функции для некоторого п);
Rec (/, g) обозначает функцию, полученную из / н g рекурсией (предполагая, что f есть п-местная, a g есть (и + 2)- местная функция для некоторого и). .
Обозначив функцию %+ 1 через S, мы получаем, напримерt- следующую схему для функции /(х) = %2. Используем буквы gi,…,g« для обозначения промежуточных функций.
Шаг
1
Схема
% = Sub(S; U?)
Объяснение tuaeoe gi(x, y, z) = U;a,y, z)+l=z+l
2
gz = Rec(U;, gj
'g2(x, 0) = U}(x) = x, gN% f/+】)= gi(招弘 gz(%, y)) =
3
g8 = Sub(g2; U;,U;)
=gs (%, У)+ 1
Таким образом, gz(x, У)= % + У ga(x,У,Z)=g2(X, z) = % + z
4
gr4 = Rec(0, g8)
'g4 (x, 0) = 0, gjx,У+ 1) = Яз(^. У, gj%, У》・
5
『Sub(禽;U;, U})
、=x + gjx, У)
Таким образом, gjx, у) = ху f(x) = gjx, %)=炉
Таким образом схема чем-то сродни программе в том отнощ нии, что является конечным и явным заданием функции. '
Рассмотрим сейчас схемы одноместных примитивно рекурсивных функций. Как и программы, мы можем эффективно перенумеровать эти схемы, и, таким образом, мы можем затем определить 0„ как одноместную примитивно рекурсивную функцию, заданную схемой с номером п.
Тогда 0О, 0П 0Я,・・• будет эффективной нумерацией всех одноместных примитивно рекурсивных функций.
В гл. 2 мы убедились в том, что каждая примитивно рекурсивная функция вычислима. Следовательно, существует тотальная функция р, такая что для каждого п значение р (и) является номером программы, вычисляющей 0П1 т. е. 8〃 =。夕5).
Теперь решающим моментом является то, что мы можем найти такую вычислимую функцию р. Мы рассуждаем неформально, применяя тезис Чёрча.
Вспомним доказательства теорем 2-3.1 и 2-4.4. Там мы явно показали, как получить программу для функции Sub (/; g】,…,gm),если даны программы для g】,...,g^, а также как получить программу для функции Rec (Л g), если даны программы f н g. (В следующем параграфе (пример 3.1(5)) мы применим s-m-n-теорему, чтобы показать в деталях, что для всякого п существует вычислимая функция г, такая, что для любых %, % индекс для Rec(。*,幽+幻)равен г®, %); мы можем сделать подобную вещь и для подстановки (см. упр. 3.2(5а)).) У нас имеются явно выписанные программы для базисных функций. Следовательно, если дана схема для примитивно рекурсивной функции f, включающая промежуточные функции gi9 ..., g&, то можно эффективно найти программы для gi, gi9 •••, g& и, наконец, f. Значит, существует эффективно вычислимая функция р, такая, что дп = фр(п}. По тезису Чёрча функция р вычислима.
И теперь, исходя из р и универсальной функции 2и,можно определить тотальную вычислимую функцию g, отличающуюся от каждой примитивной рекурсивной функции 0„. Применяем следующее диагональное построение:
Я W = 0Х (х) + 1 = Фр (х) (х) + 1 = ^ (р (х), х)+1・
Отсюда мы сразу видим, чтоg—тотальная функция, не являющаяся примитивно рекурсивной; но g вычислима в силу вычислимости и р. □
Эффективные операции на вычислимых функциях
В этом параграфе мы покажем другое важное применение вычислимости универсальных функций, на этот раз в сочетаНии с s-m-n-теоремой.
4*
Рассмотрим следующие операции на вычислимых функциях или их областях:
комбинация Фх и Ф^ дающая произведение ФхФу\
образование объединения WX(J Wy из множеств wх и Wy.
Нам известно много операций такого рода, обычно опреде-- ляемых явно, как и приведенные выше. Можно ли в каком- нибудь смысле считать эти операции эффективными? Поскольку эти операции имеют дело с бесконечными объектами (функциями или множествами), они как будто лежат в стороне даже от нашего неформального понятия вычислимости, которое, очевидно, применяется к конечным объектам. Тем не менее, каю мы убедимся, индекс функции Ф* эффективно находится по индексам х и у. В следующих примерах и упражнениях мы увидим, что многие другие операции являются эффективными, если их рассматривать как операции над индексами затрагн» ваемых объектов. (Мы вернемся к вопросу об эффективных операциях над функциями в гл. 10.)
Примеры
Существует тотальная вычислимая функция s(%,g), такая* что Ф5 (Xt = ФхФу для всех х, у.
Доказательство. Пусть / (х, у, z)亠 Фх ⑵ Фу (z) 4 屮〃(%, z) x Х^(У,г).
Таким образом функция f вычислима, так что по s-m-n теореме найдется тотальная вычислимая функция s(x, y)t такая, что /(х, у, z) 4 外㈠…)⑶;следовательно, Ф,(Х1 屮=丸办.
Полагая g(%) = s(%, х), где s берется из примера 1 имеем 3J = e《g・
Существует тотальная вычислимая функция s(x, g) такая, что取=取为U呼1r
Доказательство, Пусть
I 1, если z^Wx или '(не определена в противном случае.
Используя тезис Чёрча и вычислимость 屮〃,получаем Bt числимость функции /, а значит, существует тотальная bi числимая функция s(x, у), такая, что f(х, у,少("
Теперь очевидно, что Ws{Xt v)= Wx\jWy.'
Эффективность операции обращения функций. Пус g(e, у)——вычислимая функция, описанная в упр. 1.5, т. такая, что
g(x, у) определено тогда и только тогда, когда {/££
если f/W J, то g(x, y)eWx н Фх(ё^, у))^у.
По s-m-n-теореме существует тотальная вычислимая функция такая, что g(%, у) ^ Фл {х} (у). Тогда из (а) и (Ь) следует
(У)⑴ Ek(x}^Wxt
если y^Ext то 外@⑺(//)) =,
Следовательно, если Фх инъективна, то Ф^(*)= eq〔 и £*(*)= Wx.
Эффективность рекурсии. Пусть * = (%, …,х„), и рассмотрим (и + 3)-местную функцию f, определенную посредством
f(G,G,*, 0)^Ф^ (х).
А%,%, х, д+1)4 外:4)(*,弘 /(々,%, х, д))・ Теперь, используя универсальные функции 屮夕 и 屮它+", перепишем выражения в правой части и получим определение по рекурсии с вычислимыми функциями; поэтому функция f вычислима. Кроме того, для фиксированных е〔, е& функция g(x, у)4〃/, %, х, у) получена из 计? и 计:”)рекурсией. Согласно s-m-n-теореме, существует тотальная вычислимая функция г(е° %), такая, что
ФА (еЬ ^t) (*^> f/)4八4,G,*, f/).
Следовательно, г (elt %) является индексом (п + 1)-местной функции, полученной из 6?)и ф^+а) рекурсией. В обозначениях теоремы 2.2
心矗厶0 Rec (嚣厶 Фе/Я)) для всех &, &・
Следующие упражнения дают дополнительные примеры использования s-m-n-теоремы для доказательства эффективности операций на индексах.
Упражнения
Покажите, что существует тотальная вычислимая функция 论(е), такая, что для каждого е, если Ф,—характеристическая функция для разрешимого предиката М (х), то фЛ(<) является характеристической функцией для предиката <не М (%».
Покажите, что существует тотальная вычислимая функция 々(х), такая, что Ek{x)^Wх для каждого х.
Покажите, что существует тотальная вычислимая функция s(%, у), такая, что Es{x> 廿)=E*U Е^ для всех х, у.
Пусть f (х) —вычислимая функция; покажите, что существует тотальная вычислимая функция 论(%), такая, что ^(^)=/-1(^) Для всех х.
Докажите аналоги примера 5 для подстановки и минимизации, а именно:
фиксируем т,九》1; существует тотальная вычислимая функция s(% &, ..., %), такая, что (в обозначениях
теоремы 2.2)
62,〃Sub他严,成),成),・・・,礎).
Фиксируем 九》1; существует тотальная вычислимая функция 论(е), такая, что для всех е
川% (х) a |iy (О"D (%, У) = 0)・
(Можно естественным образом расширить обозначение теоремы 2.2 и записать 批% = Min (蹲+叫.)
Приложение. Вычислимость функции ал
В этом приложении мы дадим формальное доказательство того, что функция и〃, определенная в доказательстве теоремы 1.2, вычислима (на самом деле примитивно рекурсивна), дополнив таким образом формальное доказательство вычислимости универсальной функции 屮优
Теорема. Функция ая примитивно рекурсивна.
Доказательство. Определения ал и функций с„ и /„, закодированных функцией ал, приведены в теореме 1.2.
Определим две функции config и nxt, чтобы описать изменения в сп н jn в процессе вычислений. Пусть на некотором шаге вычисления по программе Ре текущее состояние есть а»л(с, /) и в Ре имеется ровно s команд. Действие /-й команды Р. на состояние и состоит в следующем:
config(% а)=config(% а)=nxt(% о)=nxt(% о)='новая конфигурация после выполнения /-й команды программы Р«,(номер следующей команды вычисления после выполнения /-й команды Р, над конфигурацией % 0'новая конфигурация после выполнения /-й команды программы Р«,(номер следующей команды вычисления после выполнения /-й команды Р, над конфигурацией % 0если 1 & / & s, в противном случае, если 1 & j & s и эта следующая команда в Ре существует;в противном случае.если 1 & / & s, в противном случае, если 1 & j & s и эта следующая команда в Ре существует;в противном случае.
config(% а)=
config(% а)=
nxt(% о)=
nxt(% о)=
'новая конфигурация после выполнения /-й команды программы Р«,
(номер следующей команды вычисления после выполнения /-й команды Р, над конфигурацией % 0
'новая конфигурация после выполнения /-й команды программы Р«,
(номер следующей команды вычисления после выполнения /-й команды Р, над конфигурацией % 0
если 1 & / & s, в противном случае, если 1 & j & s и эта следующая команда в Ре существует;
в противном случае.
если 1 & / & s, в противном случае, если 1 & j & s и эта следующая команда в Ре существует;
в противном случае.
Теперь функцию ап можно получить из функций config и nxg с помощью уравнений рекурсии:
%(e, ж, 0)=л(2修3厶...解П,1),
% (% ж, / 4-1) «л (config (е,ал(е, х, f)),nxt(%%(% х, /))•
Таким образом, функция ая примитивно рекурсивна, еслй config и nxt примитивно рекурсивны; далее мы докажем, чта •то так и есть.
Нам нужно быть внимательными, различая кодовое число (или код) р(/) команды Z и ее номер в той программе, в которой она встречается (т. е. такое число /, что / является j-й командой). Мы всегда под р(/) будем подразумевать кодовое число команды I,
Достаточно установить примитивную рекурсивность следующих четырех функций:
In (е) = число команд в программе Р/
(код /-й команды в Ре, если 1《/《1п(е), (2) gn(e, /)==〈 с
I 0 в противном случае;
ch (с, z) = конфигурация, получающаяся в результате применения команды с кодом z к конфигура
ции с;
'номер『следующей команды в вычислении, когда к конфигурации с применена
(4) v(c, j, z)=(4) v(c, j, z)=команда с кодом z и эта команда является /-й командой в программе, если j > О, О в противном случае.
(4) v(c, j, z)=
(4) v(c, j, z)=
(«Следующая команда в вычислении» здесь понимается так, как определено в § 2 гл. 1, т. е. /' = /+1, или если /у есть команда перехода J(m“ ma, д), то 『 = д.
Если эти четыре функции примитивно рекурсивны, то, вспоминая, что о = л(с, /), где「=兀1(。) и / = л, (а), получаем j ch(%(o), gn(% л, (о))), если 1 < л, (а) < In (е), configie, а)= </、
I % 9) в противном случае.
Г (% (о), л2 (о), gn(% % (и))), если это число nxt(% а)= меньше или равно In (е), (0 в противном случае.
Таким образом config и nxt примитивно рекурсивны согласно аргументации гл. 2.
Остается показать, что введенные выше функции (1)—(4) примитивно рекурсивны. Для декодирования кодовых чисел программ и команд необходимы вспомогательные функции. Мы свободно пользуемся стандартными функциями и методами § 1—4 гл. 2 наряду с определенными в § 1 гл. 4 функциями для кодирования команд и программ.
Функции а(,,х), /(х), b(i, х) и а", х) упражнения 2-4.16(5) примитивно рекурсивны.
Доказательство, (i) % = 丫之()《(厶 %)・2‘; поэтому мы получаем qt ⑵,x)6a(f, х)+а (i + 1» ^) 2 + • • •» и, следовательно, a(i, x) = rm(2, qt (2Z, x)).
Г л. 5. Универсальные программы
Z(x)«* число таких /, что а(/, х)= 1; значит, / (х)= ■Z/", %).
Если х > 0, х = 2°(】• *)+ 2° "• *)+••・+ 2°"(*)• *); такт образом, если 1 & i & / (%), то b(i, %) является 厶м индексом Л таким, что а (Л, х)=1. Значит,
(
ру < х f 2 а 伏,%)=八,если 1 ^ i ^ / (х) и x>0f
О в противном случае.
По определению
a (i, x) = b(i, %) (i = 0, 1);
a(i+l, %) = (&(/+1, x)^b(it х))-1 (f>l).
Примитивную рекурсивность этих функций мы выводим и: приведенных выше явных формул, применяя методы гл. 2.
Функции 1п(е) и gn (% /) примитивно рекурсивны.
Доказательство, По определению кодирующей функции
ln(e)=/(e+ 1), gn(% /) = а(/, е+1),
где / и а—функции из (5).
〃■,к 4,S,такие, что если z = B(Z(m)), то если z = P (S (m)), то если z = p(T (ml9 /nJ),〃■,к 4,S,такие, что если z = B(Z(m)), то если z = P (S (m)), то если z = p(T (ml9 /nJ),Существуют примитивно рекурсивные функции “,и
〃■,к 4,S,такие, что если z = B(Z(m)), то если z = P (S (m)), то если z = p(T (ml9 /nJ),
〃■,к 4,S,такие, что если z = B(Z(m)), то если z = P (S (m)), то если z = p(T (ml9 /nJ),
ТОТОесли z = p (J (加и m&, g)), тоесли z = p (J (加и m&, g)), то〃(z) = m, и "1"j=叫 и %传)=m2,
ТО
ТО
если z = p (J (加и m&, g)), то
если z = p (J (加и m&, g)), то
vx (z) = /и】,% (z) = ms и %(z) = c
Доказательство. Из определения p, обозначая qt(4, z) ч рез (z/4), имеем
〃 (z) = (z/4) + 1,
%(z) = % (z/4)+l,
«1 (z) = ns (z/4)+l, 力(z) = %(%(z/4))+l, 4(z) = %(%(z/4))+l, % (z)=小(z/4) + 1.
Следующие функции примитивно рекурсивны:
zero (% /п) — изменение в конфигурации % произведи ное командой Z (加)=qt (咸)加,с).
sue (с, m) = изменение в конфигурации с, произведенное командой S (ги) = срт.
transfer (с, m, n) = изменение в конфигурации % произведенное командой Т(ги,几)=4“"炉,ср„}т).
Функция ch (% z) (определенная выше в (3)) является примитивно рекурсивной.
Доказательство.
zero (с, 〃(z)),
если rm (4, г) = 0 (т. в. “ является кодом команды
sue (% 〃(z)),
обнуления), если гт (4, z)= 1 (т. е. z
ch (& z)n •
является кодом команды прибавления 1),
transfer (c, % (;
z), %(z)), если гт (4, z) = 2 (т. е. z
0
является кодом команды переадресации), в остальных случаях.
(10) Функция v(c, /, z) (определенная выше в (4)) примитивно рекурсивна.
Доказательство. Имеем
,/+ 1, если гт (4, z) =#3 (т. е. z является кодом арифметической операции),
”,/, z)=”,/, z)=/+1, если (с)к2)#=(с)%⑶ если гт (4, г)=3, (т. е.
”,/, z)=
”,/, z)=
z является кодом ко-
Лз (* если (ch(Z)= (с)%⑺ манды перехода).
Из этого определения с разбором случаев мы видим, что функция V примитивно рекурсивна.
Итак, мы установили, что функции (1) — (4) примитивно рекурсивны, и тем самым доказательство теоремы завершено. □
Глава 6
Разрешимость, неразрешимость и частичная разрешимость
В предшествующих главах мы коснулись нескольких разрешимых проблем, однако до сих пор нам встретился только один явный пример неразрешимости ——проблема «функция Ф* тотальна» (теорема 5-2.1). Значительный интерес представляет задача выявления разрешимых и неразрешимых проблем; последние, среди прочего, указывают на ограничения, возникающие в теории вычислимости, и тем самым демонстрируют теоретические границы возможностей реальных вычислительных машин.
В этой главе мы будем заниматься главным образом неразрешимостью. В § 1 дается обзор неразрешимых проблем, возникающих в самой теории вычислимости, и обсуждаются некоторые методы доказательства неразрешимости. Параграфы 2—5 посвящены ряду разрешимых и неразрешимых проблем: из других областей математики; этот материал не используется в последующих главах, и его можно при желании опустить, В последнем параграфе рассматривается понятие частично1 разрешимости, которое тесно связано с понятием разрешимостях
Напомним (см. гл. 1), что предикат М (х) называется р叫 petuuMbiM, если его характеристическая функция, задаваема! формулой
J 1, если М (х) истинно,'м(х)— j °, если М (х) ложно
вычислима. Это равносильно утверждению о том, что предика1 М (ж) рекурсивен (см. § 2 гл. 3). Предикат М (х) называете. неразрешимым, если он не является разрешимым. В литер туре используются следующие термины, эквивалентные утвер丄 дению о том, что предикат М (х) разрешим:
М (х) рекурсивен,
М (х) имеет рекурсивную проблему разрешения, М(х) рекурсивно разрешим,
М (х) вычислим.
Алгоритм, вычисляющий fM, называется разрешающей % цедурой для М (х).
Неразрешимые проблемы в теории вычислимости
В большинстве случаев доказательства неразрешимости основываются на диагональном методе, как, например, в следующем важном примере.
Теорема. Проблема «х ^ W^ (〃,〃, что эквивалентно, ^функция фх(х) определена», или «Рх(х)|», или ^функция "и(%, %) определена^) неразрешима.
Доказательство, Характеристическая функция этой проблемы задается следующей формулой:
〃I Г если 吟,八%)— I о, если x^Wx.
Предположим, что функция f вычислима, и приведем это предположение к противоречию. Именно с помощью диагонального метода мы построим вычислимую функцию g, такую, что Dom(g)=#I^*(= Dom(ej), при всех х, чего, очевидно, быть не может.
Как всегда при использовании диагонального метода, мы будем стремиться к тому, чтобы множество Dom(g) отличалось от Wх в точке %. Будем поэтому добиваться того, чтобы
х С Dom (g) О % 在 Wx.
Определим теперь функцию g следующим образом:
g(%)= {g(%)= {0,если x^Wx (т. е. если 〃%) = 0),
g(%)= {
g(%)= {
не определена, если x^Wx (т. е. если f(х)= 1).
Поскольку функция f вычислима, то (по тезису Чёрча) вычислима и функция g, что и дает требуемое противоречие. (Более подробно, поскольку функция g вычислима, возьмем такое 加,что g = %,тогда /и£К加om£Dom(g)o加«好加, чего не может быть.)
Итак, мы заключаем, что функция / не является вычислимой, % следовательно, проблема «х € W^ неразрешима. □
Заметим, что эта теорема вовсе не утверждает, что мы не можем для любого конкретного числа а сказать, будет ли определено значение Фа(с^. Для некоторых чисел сделать это °чень просто. Например, если мы написали программу Р, вычисляющую тотальную функцию, и Р = Р@, то мы сразу знаем, что значение фв (а) определено. Теорема говорит лишь, что не существует единого общего метода решения вопроса 0 том, будет ли фх(х) определено; другими словами, не существует метода, работающего при всех х.
Простое следствие этого результата состоит в следующем.
Следствие. Существует вычислимая функция h, для которой обе проблемы «х ^ Dom (h)» и «%€ Ran(h)» неразрешимы.
Доказательствоt Положим
(х,если х € 叭,
h (х)«<>
、(не определена, если x^WM.
Тогда в силу тезиса Чёрча и вычислимости универсальной функции “и функция h вычислима (более формально мы имеем 力(%)4%1 (“и(х, %)), а эта функция вычислима как результат подстановки). Ясно, что % € Dom (h)^x^Wx^x^ Ran (九), так что обе проблемы «х € Dom (Л)» и «%€ Ran (Л)» неразрешимы. □
Из теоремы 1.1 выводится еще одна важная неразрешимая проблема:
Теорема (проблема остановки). Проблема «функция Фх (у) определена^ (или в эквивалентной форме «Рх (//)!», 〃力〃 неразрешима.
Доказательство. Рассуждая неформально, мы сразу видим, что если бы проблема «функция Фх(у) определена» была бы разрешима, то была бы разрешима и более простая проблема <функция Фх (х) определена», что противоречит теореме 1.1.
Чтобы провести все эти рассуждения более подробно, рас-* смотрим характеристическую функцию проблемы «функция 6* (у) определена», которая имеет следующий вид:
J 1, если Фх (у) определена,&"' ^~\ 0, если Фх (у) не определена.
Если бы функция g была вычислима, то вычислимой была бь н функция / (x) = g(x, х), но / есть характеристическая функп ция проблемы «*€吼》и, следовательно, не вычислима в си・ лу теоремы 1.1. Следовательно, функция g не вычислима, И тем самым проблема «Фх («/) определена» неразрешима. □.
Теорему 1.3 часто интерпретируют как утверждение о не разрешимости проблемы остановки (для МНР-программ), в к» тором говорится о том, что не существует никакого эффекти® ного общего метода установить, остановится ли некотора конкретная программа, запущенная после введения в нее н€ которого конкретного набора начальных данных. Смысл этог утверждения для теоретического программирования очевиде1
не существует совершенно общего метода проверки программ на наличие в них бесконечных циклов.
Рассмотренная в теореме 1.1 неразрешимая проблема 《% W Wx» важна по нескольким причинам. Одна из них состоит в том, что неразрешимость многих проблем можно доказать, показав, что они по крайней мере не проще, чем эта. Именно таким путем мы без большого труда доказали, что проблема остановки (теорема 1.3) неразрешима: этот процесс называется сведением одной проблемы к другой.
Вообще рассмотрим некоторую проблему М (х). Часто удается показать, что решение общей проблемы М (х) привело бы к решению общей проблемы «х^ ^х»> Тогда говорят, что проблема «х € 1ГХ» сводится к проблеме М (*). Другими словами, если имеется разрешающая процедура для проблемы М (х), то мы можем дать и разрешающую процедуру для проблемы《%€ №\》・ Таким образом, из разрешимости М (х) следует разрешимость《%€取*》,откуда мы немедленно заключаем, что М (х) неразрешима.
Для сведения проблемы 《%€№*》к другим проблемам часто используется s-m-n-теорема, как показывает, например, доказательство следующего результата.
Теорема. Проблема «Фх = 0» неразрешима.
Доказательство. Рассмотрим функцию f, определенную формулой
(0,если x^Wx9
f(xt*
v [ не определена, если x^Wxt
Эту функцию мы ввели для того, чтобы далее воспользоваться s-m-n-теоремой. Тем самым мы рассматриваем х как параметр, и нас интересуют функции g*, такие, что g#(g)d 4f (叫 у)- При этом мы выбрали / так, что g* = 0ox€吼.
Тезис Чёрча (или подстановка с использованием 0 и 加 показывает, что функция / вычислима. Поэтому существует тотальная вычислимая функция Л(х), даваемая s-m-n-теоре- мой, такая, что /(х, у) ^ фЛ (х) ((/); то есть 以(幻=8*・ Таким образом, по определению
(*)%€ 步#О九⑺=0.
Следовательно, вопрос о том, верно ли, что х£ 弘,можно решить, ответив сначала на вопрос: верно ли, что =0? Тем самым мы свели общую проблему «х € W^ к общей проблеме «仇= 0»; поскольку первая из них неразрешима, то неразрешима и вторая, что и требовалось доказать.
В связи с тем что это первый встретившийся нам пример] подобного рода, рассмотрим последнюю часть нашего рассуждения более подробно. Пусть g—характеристическая функция проблемы «фх = 0», т. е.
(1, если 0* = 0・g(')— I 0, если фх #=0.
Предположим, что функция g вычислима. Тогда вычисли* мой будет и функция h(x) = g(k(x)). В то же время соотношение (*) дает
.,J 1, если ФЛ(х) = 0, т. е. x^Wxt0, если %(*)*0, т・ е. x^Wx.
Тем самым в силу теоремы 1.1 функция Л не является вычислимой. Стало быть, и функция g не является вычислимой», так что проблема «фх = 0» неразрешима. □
Теорема 1.4 показывает, что в области проверки правиль-. ности компьютерных программ имеются принципиальные ограничения. В ней говорится о том, что не может быть совершенно общего эффективного метода осуществить проверку того, будет ли программа вычислять нулевую функцию. Не сколько изменив доказательство теоремы 1.4, можно убедиться в том, что то же самое справедливо и для любой друго! конкретной вычислимой функции (см. ниже упр. 1.8 (i)).
Простое следствие теоремы 1.4 показывает, что вопрос том, вычисляют ли две программы одну и ту же одноместную функцию, неразрешим. Смысл этого результата для теоретического программирования также очевиден.
Следствие. Проблема «Фж = фу» неразрешима.
Доказательство. Легко убедиться в том, что эта проблема сложнее проблемы «фх=0». Пусть с—такое число, что <^^=0. Есл! / (х, у)—характеристическая функция проблемы 包=$1r то функ ция g(%) = /(x, с) есть характеристическая функция проблем!' «Фх = 0». По теореме 1.4 функция g невычислима, так что не вычислима и функция /. Следовательно, проблема 《Ф* = Фу неразрешима. О
В следующих результатах мы вновь воспользуемся s-m-r теоремой для сведения проблемы «х £ 取力》.
Теорема. Пусть с—произвольное число. Следующие про лемы неразрешимы.
(Проблема входа) «с£ 叭》(или в эквивалентной фо/t мулировке «Р*(с)Т》,или «с € Dom (Фх)»);
(Проблема выхода) ^с^Е^ (или 8 эквивалентной формулировке «с€ Ran (Фх)»).
Доказательство, Мы можем свести проблему «х € №#» к обеим этим проблемам одновременно. Рассмотрим функцию / (х, у), определенную следующим образом:
/(%,У) = {/(%,У) = {у, если % W Wх.
/(%,У) = {
/(%,У) = {
не определена в противном случае.
(Имея в виду использовать s-m-n-теорему, мы будем рассматривать функции g*, для которых g*(y)4f(x, у). Функцию / мы выбрали таким образом, что с U Dom (gj о % £ 叭 0 с £ WRan(gJ.) В силу тезиса Чёрча функция / вычислима, так что s-m-n-теорема дает тотальную вычислимую функцию 机 такую, что / (х, у) ±:г ФЛ (х) (у). Из определения / мы видим, что
% € 取* п 听片(х> = £%(х)= N,
так что ceWk (х) и с££;в,и
Х在吟0叭g =品⑺=0,
так что c^Wk(x) и c^Ek(x}. Тем самым мы свели проблему «%€®\» к каждой из проблем «сСМун «с € £х».
Завершая доказательство пункта (а) более подробно, мы видим, что если g—характеристическая функция проблемы «с W叭八то
f 1, если % € 吟,
0, если "
Эта функция не является вычислимой (теорема 1.1), так что функция g тоже не может быть вычислимой. Следовательно, проблема /€ 叭》неразрешима.
Подробное доказательство пункта (Ь) проводится аналогично. □
Мы закончим этот параграф одним очень общим результатом о неразрешимости, из которого немедленно вытекают теоремы 1.4 и 1.6. При этом мы снова воспользуемся для сведения проблемы «%€ 呼*》s-m-n-теоремой.
L7. Теорема (теорема Райса). Пусть 毋三% u ^Э=#0, %• Тогда проблема 《6* £59» неразрешима.
Доказательство. Соотношения для разрешимых множеств (теорема 2-4.7) показывают, что проблема «Фж g Ж» разрешима
тогда и только тогда, когда разрешима проблема ^x^^j\5B^. Поэтому без потери общности мы можем считать, что нигде не определенная функция f0 не принадлежит 毋(если это не так, то утверждение можно доказать для %i\W).
Выберем некоторую функцию g£ 毋.Рассмотрим функцию. / (xt у), задаваемую следующим образом:
『 I g®),если х£ 叭,
\ не определена, если x^Wx.
Пользуясь s-m-n-теоремой, мы получаем тотальную вычислимую функцию k (х), такую, что / (х, у) фЛ (х) (у). Таким образом, мы видим, что
х £ 呼力=> 6KX)== g, т. е. Ф&(х)€声’х^«7х=ФфЛ(х> = /0, т. е.介⑺艺毋.
Это значит, что с помощью вычислимой функции Л мы свели проблему 《X W W^ к проблеме «фх W 毋》.Теперь уже стандартным образом можно заключить, что проблема «Фх С ^» неразрешима. □
Теорема 1.4, например, немедленно вытекает из теоремы Райса, если взять 毋= {6}, а теорема 1.6 (а)——если взять 毋3■ {g W £ с £ Dom (g)}. Аналогично можно воспользоваться теоремой Райса и в следующих упражнениях.
Упражнения.
Покажите, что следующие проблемы неразрешимы.
«х£Е*》. (Указание. Воспользуйтесь диагональным методом или сведите к этой проблеме проблему 《%£ 呼*》с помощью s-zn-n-теоремы.)
«外=%》• (Указание. Сведите к этой проблеме проб* лему «функция Фх тотальна».)
«Фх (х) = 0».
(d)《<МУ)= 0》・
«х£Е产
«функция ф* тотальна и постоянна».
(8)«叭=0九
«множество Ех бесконечно».
«Фх = ^», где g есть любая фиксированная вычислимая функция.
Покажите, что не существует тотальной вычислимо! функции / (х, у), обладающей следующим свойством: есл» программа P*(yj останавливается, то это происходит за f (х, j или меньше шагов (Указание. Покажите, что если бы такая
функция существовала, то проблема остановки была бы раз- решимз.)
Разрешимость и неразрешимость в других областях мате- магпики. Во многих областях математики возникают проблемы общего характера, для которых имеет смысл неформальное понятие разрешимости. Обычно такие проблемы касаются конечных объектов некоторой конкретной области. В этом случае понятию разрешимости того или иного свойства, касающегося этих объектов, можно придать точный смысл, используя подходящую кодировку натуральными числами.
Выявлению разрешимых и неразрешимых проблем в самых разных математических ситуациях посвящены многие исследования. Ряд полученных в этом направлении результатов мы приведем в следующих параграфах.
Проблема слов в теории групп °
Пусть G—группа с единичным элементом 1. Предположим, что G порождается набором элементов S = {gu ga, g8, ... }sG. Cao80M в S называется любое выражение, подобное выражению вида gf〔g:gig;g8 и включающее элементы из S и групповую операцию. Каждое слово представляет некоторый элемент группы G, и сказать, что G порождается множеством S", это то же самое, что сказать, что каждый элемент из G представляется некоторым словом в S.
Проблема слов для группы G (относительно множества 义 состоит в том, чтобы определить, для каких слов ui в о верно соотношение д=1.
Есть много групп, для которых проблема слов разрешима: например, любая конечная группа (относительно конечного множества S, разумеется). В течение многих лет математики пытались найти пример конечно-определеннойа) группы, для которой проблема слов была бы неразрешима. В конце концов Новиков в 1955 году и Бун в 1957 году показали, что такие группы существуют. Доказательства теоремы Новикова — Буна выходят за рамки настоящего обзора. Читатель может ознакомиться с ними в изложении Ротмана [1965] или Манина [1977].
Читатель, незнакомый с теорией групп, может пропустить этот Раздел.
Группа G называется конечно-определеннойt если существует конеч- 胃А набор образующих S и конечное множество А соотношений вида з==1 ,口е w есть некоторое слово в S), такие, что (I) все соотношения из 8 ыполняются в G н (ii) все другие соотношения, выполняющиеся в G, мо- Ут быть выведены из соотношений, содержащихся в В с использованием "н“х лишь аксиом группы.
Теория групп и современная алгебра вообще изобилует интересными разрешимыми и неразрешимыми проблемами. При этом многие из них касаются свойств слов и образующих, сходных с проблемой слов.
Диофантовы уравнения
Пусть р (%i, х2, ..., хп)—многочлен от переменных %i, •・・, ...,х„ с целыми коэффициентами. Тогда уравнение
Р (%1,^2» • • • » %〃)==。,
для которого мы ищем только целые решения, называется 0〃о- фантовым уравнением. Диофантовы уравнения не обязательна имеют решение. Например, не имеет решения уравнение 炉一- -2 = 0.;
Десятая проблема Гильберта, сформулированная в 1900 году, состоит в том, чтобы установить, существует ли эффективная процедура, с помощью которой можно определить, имеет ли решение любое наперед заданное диофантово урав некие. В 1970 году Ю. Матиясевичем было показано, что такой процедуры не существует. Его доказательство завершил цикл работ, выполненных до этого М. Дэвисом, Дж. Робин' соном и Г. Патнэмом.
На самом деле Матиясевич доказал несколько больше, че> только неразрешимость десятой проблемы Гильберта. Полную теорему Матиясевича и ее применение к десятой проблеме「нл* берта мы рассмотрим в § 6. Более подробное изложение моя но найти у Дэвиса [1973], Манина [1977] и Белла и Макс вера [1977].
Алгоритм Штурма
Чтобы несколько восполнить недостаток внимания к во росам разрешимости (в двух предшествующих параграфах м делали упор на неразрешимых проблемах), мы рассмотр! теперь теорему Штурма, которая дает некоторые положите ные результаты о вычислимости и разрешимости в зада связанной с нахождением нулей полиномов.
Теорема Штурма. Пусть р(х)—многочлен с действит ными коэффициентами, и пусть р。, рн ..., рг — последа тельность многочленов с действительными коэффициента^ определяемая следующим образом:
Pq = p、
〃==// (производная от р),
для любого 0 < / < г существует многочлен %, такой, что 〃・! = "/%—Р/+” ede P/+i?° “ степень многочлена р/+1 меньше степени pt (тем самым многочлены % и —р/+1 являются соответственно частным и остатком от деления многочлена 〃т на р)
Ргт = р/「
Для любого действительного числа с обозначим через 6(c) число перемен знака в последовательности р0(с), ». .9рг(с) (нули при этом игнорируются}.
Пусть а и &——действительные числа, которые не являются корнями "(%),以 пусть а <Ь. Тогда количество корней р (х) 8 интервале [а, Ь] равно 6 (а)—6(b) (при этом каждый корень учитывается только один раз).
Здесь не место приводить доказательство теоремы Штурма, четкое изложение которого читатель может найти у Кона [1977] или Ван дер Вардена [1949]. Для наших целей теорема штурма представляет интерес в связи с тем, что в ней содержится алгоритм решения проблемы. Она дает положительный результат о вычислимости количества корней многочлена и о разрешимости утверждений о корнях многочлена.
Для формулировки таких результатов нам надо ограничиться рассмотрением многочленов с рациональными коэффициентами. Тогда объекты, с которыми мы будем иметь дело, будут конечными. Множество рациональных чисел обозначается через Q, и, таким образом, мы будем вести все рассуждения в терминах вычислимости над Q (которое можно определить в терминах вычислимости над N с помощью обычного кодирующего устройства). Заметим, что любой многочлен р (х) с коэффициентами из Q есть, по сути дела, последовательность рациональных чисел.
Из теоремы Штурма вытекают, в частности, следующие результаты.
4 2. Теорема, (а) Существует эффективная процедура вычисле- 咒〃兄 числа действительных корней многочлена с коэффициента^ ми из Q;
(Ь) Предикат «многочлен р имеет корень на [а,可》разре・ 以〃加,где р есть многочлен с коэффициентами из Q и а, b^Q.
Доказательство. Для любого заданного многочлена р многочлены р0, рп .・•, "〃 определяемые в теореме Штурма, могут быть найдены эффективно с помощью стандартных правил Дифференцирования и алгоритма деления многочленов.
Рассмотрим утверждение (а). Для любого многочлена легко строится рациональное число М > 0, такое, что все корни р пРинадлежат интервалу ]—М, М[. В самом деле, пусть
р(х)= а°+。1 (%)+... +а〃%〃. Тогда достаточно взять число
м 匸 1 +т^у( I ао I + • • • +14+11).
Тогда по теореме Штурма количество корней многочлена р равно числу о (——М)——6(Л4), которое вычисляется эффек тивно.
В случае утверждения (Ь) допустим, что нам дан многа член р и рациональные числа а, Ь. Чтобы решить вопрос с том, имеет ли р корень на [а, д], вычислим сначала значения р (а) и р(Ь). Если ни одно из этих чисел не равно нулю, вычислим число 6(a)—6(b) и применим теорему Штурма.
Разумеется, теорему Штурма можно использовать и для того, чтобы показать, что многие другие вопросы, касающиеся многочленов с коэффициентами из Q, являются вычислимым! или разрешимыми.
4.3. Упражнение. Покажите, что существует эффективная процедура нахождения для заданного многочлена р и задан*] ных рациональных чисел а, b количества корней р на отрезке [а, Ь] (Не забудьте, что числа а и b тоже могут быть корнями р.)
Математическая логика
Первые исследования понятия эффективной вычислимости были в значительной степени связаны с развитием математи ческой логики, поскольку разрешимость считалась основны! вопросом в деле формализации математики. Мы изложим не которые из результатов, полученных в этой области, в общи терминах, не требующих никакого предварительного знаков ства с математической логикой. (Читатель, заинтересованны в том, чтобы изучить начала этого предмета, может 06Pz титься к какому-нибудь из многочисленных вводных курсо например к книге Маргариса [1966].) п
Простейшей логической системой, в которой находят отр жение некоторые аспекты математического мышления, явле ется исчисление высказываний. В этом исчислении сложнь утверждения строятся из некоторых основных высказыванр с помощью символов, обозначающих логические связки «не、 «и», «или» и «влечет». Довольно легко убедиться в том, чя если исчисление высказываний определено достаточно акк、 ратно, то оно разрешимо. Это означает, что существует а фективная процедура решения вопроса о том, является ли т
" На русском языке см., например, Новиков [ 1959]*.— Прим, пер*
иЛи иное утверждение этого исчисления {тождественно) истин- “ь/м, т. е. справедливым во всех возможных ситуациях. Алгоритм этого дается методом истинностных таблиц, хорошо знакомым многим читателям.
Более широкими возможностями, чем исчисление высказываний, обладает логическая система, которая называется 必・ числением предикатов (первого порядка). На языке этого исчисления можно формализовать значительную часть всей математики. Основные утверждения в нем формируются из символов, представляющих индивидуальные объекты (или элементы), и предикатов и функций на них. Сложные утверждения строятся из основных с использованием логических символов исчисления высказываний, а также символов V и Э.
Имеется точное понятие доказательства утверждения исчисления предикатов, причем утверждение доказуемо тогда и только тогда, когда оно истинно п. В 1936 году Чёрч показал, что доказуемость (н, следовательно, истинность) в исчислении предикатов неразрешима в отличие от более простого пропозиционального исчисления. (Гильберт считал этот результат самым фундаментальным касающимся неразрешимости результатом во всей математике.)
Простое доказательство неразрешимости проблемы истинности можно дать с использованием МНР, хотя это требует некоторого знакомства с исчислением предикатов. Читателю, который не знаком с началами логики предикатов, мы советуем пропустить приведенный ниже набросок доказательства.
Теорема. Проблема истинности исчисления предикатов первого порядка неразрешима.
Доказательство. (Тем, кто не знаком с исчислением предикатов, рекомендуется пропустить.)
Пусть Р—некоторая программа в стандартном виде, содержащая команды 九 ..., 忆 и пусть w = р (Р) (определение см. § 2 гл. 2). Мы будем использовать следующие обозначения символов исчисления предикатов:
О—индивидный символ,
'—символ одноместной функции (значение которой на х равно хх),
R—символ (и+ 1)-местного отношения,
Xi, х2У …,хв, у—символы индивидных переменных.
以 ° В этом случае говорят, что понятие доказуемости является полным. Нменно этот факт составляет содержание теоремы полноты Гёделя.
Содержательная интерпретация этих символов заключается в том, что 0 представляет число 0, ' представляет функции %+1, a R представляет все возможные состояния вычисления Р. Таким образом, если обозначить О' через 1, 0" через 2 и т. д., то утверждение
R (г“ ・• •,г”,к),
где 「1, ..., га,々WN, означает, что в процессе вычисления встречается состояние
О 0…;следующая номанда1к
Далее, для любой команды Ц можно записать утверждение исчисления предикатов то описывающее результат выпол* нения команды /z. При этом мы используем символ 八 для обозначения связки «и» и символ —► для обозначения импликации. Утверждение tz определяется следующим образом:
если 4 = Z(〃),то т; есть утверждение
Vxj . .. VXq:R(X], ..., x〃,••・,x“,I) ►R(X]., • • •,。,• • •,x(p I )»
если Zz = S (и), to tz есть утверждение
VXi ... Yx0:R(xlt ..., хя> ...» x0, i)—►
R (*1,• • •, x〃,•・•,Хц, I );
если /Z^T (m, n), to tz есть утверждение
VX] ... Vx°:R(Xi, x〃,・..,Xo, I) ►► R “I, • • •» Xq • • •» x°, I );
если 4 = J(/n, n, g), to tz есть утверждение
VX] •・• Vxtt:R(xlf xa, i) 一 ((Xm = X〃 —
► R(X[, • • •, *a,q))八(xm,х〃 ► R (x” ...,xo, i ))).
Пусть теперь для любого q£N символ аа обозначает утверж дение
(т0 Л ^! А • • А Ь Л R(a, 0, ..о, 1))—>
—* Sxj ... Эхц R (хп ..., xfl, s+ 1),
где т0 есть утверждение VxVy ((x' = yz —> х = у) Д xz ^01 (Это гарантирует нам, что при любой интерпретации г tn. ngN и m = n следует, что m = n.)
Утверждение R(a, 0, ..., 0, 1) соответствует исходнок состоянию
а 00... ; следующая команда /}
а любое утверждение R (хп ..., хя, s +1) соответствует остановке (поскольку нет команды %+J. Мы покажем, что
(*)Р (а) 1 О ав истинно.
Предположим сначала, что Р(а)Т и что имеется структура, в которой утверждения т0, ..., т, и R(a, 0, ..., 0, 1) выполняются. С помощью утверждений т0, ..., т, мы получаем, что каждое из утверждений R(rn . .., гв, к), соответствующих п ос ледовательным состояниям вычисления, также выполняется. В конце концов мы приходим к тому, что для некоторых Ь» b〃€N выполняется утверждение об остановке R(b“ ..., b„, s +1) н, следовательно, выполняется утверждение Sxj ... 3xaR(xn ..., х„, s + 1). Таким образом, утверждение % истинно.
Обратно, если утверждение о@ истинно, то оно выполняется, в частности, в структуре N, причем предикатный символ R интерпретируется как предикат Rat для которого Ra (а「..., ао, й) = На некотором этапе вычисления Р (а) в регистрах содержатся числа alf a2t ..., аи, 0, 0,・・•, а следующая команда есть 厶.
Тогда утверждения т0, ..., тЛ и R (а, 0, ...» О, 1) также выполняются в этой структуре, а следовательно, и утверждение Эхх … SxjjRfXi, ..., хо> s +1). Отсюда Р(а)|.
Если в качестве Р взять программу, вычисляющую функцию Wu (х, х), то соотношение эквивалентности (#) сводит проблему «х € W^ к проблеме «а истинно». Отсюда следует, что последняя проблема неразрешима. □
Математическая логика изобилует результатами, касающимися разрешимости и неразрешимости. Обычно речь идет о задачах, в которых необходимо установить, будет ли некоторое утверждение истинным во всех математических структурах определенного типа. Например, было показано, что проблема «а есть утверждение, истинное для всех групп» является неразрешимой (а здесь есть утверждение на языке исчисления предикатов первого порядка, соответствующего теории групп), тогда как проблема «а есть утверждение, истинное для всех абелевых групп» разрешима. (При этом принято говорить, что теория групп первого порядка нераз・ Рушима, в то время как теория абелевых групп первого порядка разрешима.) Как было показано Тарским [1951], проблема «утверждение и истинно в поле действительных чисел» является разрешимой. С другой стороны, как мы увидим в
гл. 8, многие проблемы, связанные с формализацией арнфме- тики натуральных чисел, неразрешимы.
С другими примерами, а также с доказательствами многих результатов, касающихся разрешимости и неразрешимости в математической логике, читатель может ознакомиться в книгах Тарского, Мостовского и Робинсона [1953] или Булоса и Джефри [1974], а также Ершова [1981]*.
Частично разрешимые предикаты
Хотя предикат «х g W^ и имеет невычислимую характеристическую функцию, тем не менее следующая функция, связанная с этой проблемой, является вычислимой:'
I 1,если %£ 呼幻
八 не определена, если x^Wx.
Если по-прежнему считать, что символом 1 кодируется ответ* «да》,то любой алгоритм, вычисляющий f, является процедурой, которая дает ответ «да», когда %£呼*, но продолжает работать бесконечно, если утверждение x^Wx не выполняется. Такая процедура называется частичной разрешающее процедурой для проблемы «х£ 呼%》,и при этом говорят, что эта проблема или этот предикат частично разрешимы.
Оказывается, что многие неразрешимые предикаты являются частично разрешимыми. Дадим общее определение.
Определение. Предикат М (х), определенный на множестве натуральных чисел, называется частично разрешимым、 если функция f, заданная формулой
J 1,если М (*) истинен,
'⑺ Г не определена, если М (х) ложен, вычислима. (Эта функция называется частичной характера стической функцией М.) Если предикат М частично разре шим» то любой алгоритм для вычисления / называется частив ной разрешающей процедурой для М.
Замечание. В литературе используются и другие термины например полувычислимый и рекурсивно перечислимый. Все он означают то же самое, что и частичная разрешимость.
Примеры
Проблема остановки (теорема 1.3) является частично разрешимой, поскольку ее характеристическая функция
/a,勿=/a,勿=J 1, если
/a,勿=
/a,勿=
I не определена в противном случае
вычислима в силу тезиса Чёрча (или в силу того факта, что 勿亠 1 伸и (м f/))).
Любой разрешимый предикат частично разрешим: достаточно организовать разрешающую процедуру таким образом, чтобы она зацикливалась всякий раз, когда в результате получается 0.
Для любой вычислимой функции g(*) проблема 《*£ € Dom (g)》является частично разрешимой, так как она имеет вычислимую частичную характеристическую функцию 1 (g(ж)) (ср. следствие 1.2).
Проблема «х 艺呼%» не является частично разрешимой. Действительно, если f—ее частичная характеристическая функция, то
х € Dom (f) 6 % 在 Wx.
Таким образом, Dom (f) отличается от области определения любой унарной вычислимой функции. Следовательно, функция f не вычислима.
Перейдем теперь к формулировке некоторых важных свойств частично разрешимых предикатов. Прежде всего отметим другое их описание, которое уже, по существу, содержится в упр. 6.2(3).
Теорема. Предикат М (х) частично разрешим тогда и только тогдакогда существует вычислимая функция g(x), такая, что М (х) тогда и только тогда, когда х € Dom (g).
Доказательство. Если М (х) частично разрешим и имеет вычислимую частичную характеристическую функцию f (*), то п。определению М (ж) тогда и только тогда, когда * £ Dom (f). Обратное утверждение дается результатом упражнения 6・2(3)・□
Следующее свойство частично разрешимых предикатов показывает их связь с разрешимыми предикатами
64 Теорема. Предикат М (х) частично разрешим тогда “ только тогда, когда существует разрешимый предикат R(xf у), так。厶 что М (х) тогда и только тогда, когда 3yR (х, у).
Доказательство. Предположим, что R(x, у) есть разре? шимый предикат и что М (х) выполняется тогда и толькс тогда, когда ByR (х, д). В силу следствия 2-5.3 фyнкци^> g(x) ^ [iyR (х, у) вычислима, и ясно, что
М (х) О * £ Dom (g).
Следовательно, предикат М (х) частично разрешим по теореме 6.3.
Чтобы доказать обратное утверждение, предположим, чт М (х) частично разрешим и что частичная разрешающая про цедура дается программой Р. Определим предикат R(xt у соотношением
R(x, у)三 Р(%)| за у шагов.
В силу следствия 5-1.3 предикат R(xt у) разрешим. Вол& того,
М(х)^Р (х) I 今办 R (х, у),
что и требовалось доказать. □
Замечание. Из дополнения к гл. 5 следует, что предике R в этой формуле можно считать примитивно рекурсивны (см. замечание 1 к следствию 5-1.4).
Теорема 6.4 подсказывает важный способ интерпретаци частично разрешимых предикатов. Она говорит о том, 41 частично разрешимые процедуры всегда могут быть пре дета лены в виде процедуры неограниченного поиска числа у, о ладающего некоторым разрешимым свойством R(%, у). Такс поиск проще всего проводить, полагая последовательно у、 =0, 1, 2Если и когда найдено такое у, для которой свойство R(x, у) выполнено, то происходит остановка. В 口冃 тивном случае поиск продолжается бесконечно долго.
С помощью теоремы 6.4 можно получить и ряд друг свойств частично разрешимых предикатов, которые полез при их распознавании.
Теорема. Если предикат М (*, у) частично разрешу то частично разрешим и предикат ЗуМ. (х, у).
Доказательство. Возьмем разрешимый предикат R (х, у, такой, что М (х, у) выполняется тогда и только тогда, кб 5lzR(*,弘 * Тогда
ЗуМ (х, у) О 3y3zR (х, у, z).
С помощью стандартной техники кодирования пары чисел одним единственным числом u = 2^3Z поиск пары чисел 跋
для которых выполняется R(*, g, Z), сводится к поиску ОДНОГО числа “, такого, что выполняется R (ж, (u)n (〃)л), т. е.
ЗуМ (лг, y)^3uR(x. (%, (〃)J
Предикат S(%, у)三 R (х,(〃卜,(〃%) разрешим (как результат подстановки), и, следовательно, по теореме 6.4 предикат jyM (х, у) является частично разрешимым. □
О теореме 6.5 говорят, что она устанавливает замкнутость частично разрешимых предикатов относительно квантора dg・ ществования. Последовательное применение этой теоремы дает
Следствие. Если предикат М (х. у), где Уж(у19 ..., y^t частично разрешим, то частично разрешим и предикат 3^...
•・ЗУтМ (* t У и • • • > Ут) •
Рассмотрим теперь некоторые приложения полученных результатов.
6・7. Примеры
Следующие предикаты частично разрешимы.
%£Е俨(где п фиксировано). (Проблема вывода: ср. теорему 1.6.)
Wx^0 (Ср. упражнение 1.8 (g).)
Д оказател ьства
%€EQomzi・・・mz〃.(Py(Zi,・・.,z0T% за / шагов). Стоящий в скобках справа предикат разрешим, поэтому достаточно воспользоваться следствием 6.6.
Wx^=0 ^ 3y3t (Рх (у) 1 за / шагов).
Предикат, стоящий в скобках, вновь разрешим, и, следовательно, применимо следствие 6.6.
В исчислении предикатов доказуемость частично разрешима (для тех, кто прочитал § 5).
Доказательство. Будем рассуждать неформально; в исчи- с〃енни предикатов доказательством называется некоторый к°нечный объект (который обычно является последовательностью утверждений), для которого предикат Pr(d, а) = «d яв- "хется доказательством утверждения а» разрешим. Тем самым
д доказуемо » 3d Pr (d, а),
°ТкУда утверждение «и доказуемо» является частично разре- Знмым.
Диофантовы предикаты (ср. § 3)
Пусть p(xlt . • ^ хп, ylt .. ^у^ есть многочлен с целым! коэффициентами. Тогда предикат М (х), задаваемый формулой
М (х)^3у^, Зут (р (х,弘,• • •,у^ = 0),
называется диофантовым предикатом. (Считается, что областью определения кванторов 3^, ..., Зут является множество натуральных чисел N.)
Пример. Предикат «число % есть полный квадрат» днофанг тов, так как он эквивалентен предикату Эу(х — z/2 = 0).
Из следствия 6.6 немедленно вытекает
Теорема. Диофантовы предикаты частично разрешимы^
Доказательство, Предикат р(х, j) = 0 разрешим, так чтс мы можем воспользоваться следствием 6.6. □
Ясно, что из числа частично разрешимых предикатов диа фантовыми являются те, которые можно представить в отна сительно простом виде, и долгое время было неизвестно, су шествуют ли неразрешимые диофантовы предикаты. Этот ва прос тесно связан с десятой проблемой Гильберта (§ 3), ка мы скоро увидим. Именно поэтому замечательным достижение явился доказанный Матиясевичем в 1970 году результат:
Теорема. Каждый частично разрешимый предикат ди фантов.
Доказательство этого результата, данное Матиясевиче! в очень большой степени опирается на предшествующие р боты Дэвиса, Робинсона и Патнэма. Оно слишком громозд! для того, чтобы его приводить здесь. Полные доказательст имеются в книгах Дэвиса [1973], Белла и Маковера [1977] Манина [ 1977]. Основная часть доказательства состоит в устано лении того, что диофантовы предикаты замкнуты относителы ограниченного квантора общности, т. е. если предикат М (х, диофантов, то диофантов и предикат Vz < уМ (х, z). (Тот фае что частично разрешимые предикаты замкнуты относител^ ограниченного квантора общности, является легким упраж1 нием. См. ниже упр. 6.14(5).)
Можно легко показать, как из теоремы Матиясевича вы кает отрицательное решение десятой проблемы Гильбер Заметим прежде всего, что если поставленная Гильбер1 проблема разрешима, то разрешимой будет и следующая пр1 лема: «установить, имеет ли общее полиномиальное уравне| р(%1, •••,%〃) = 0 (с целыми коэффициентами) решение во м
я<естве натуральных чисел». В самом деле, любое натуральное число можно представить как сумму четырех полных квадра* тов, поэтому, чтобы решить эту проблему, достаточно найти целые решения уравнения
Р⑸+ <; + 〃; +哈••・,si +* + % + %)R。.
Возьмем теперь многочлен р(х,协,…,yQ, такой, что
% € ^х О ^У1 • • • ^Ут(Р (%, f/1,• • • , Уш) = 0)
(что можно сделать по теореме Матиясевича). Тогда если бы существовала разрешающая процедура для десятой проблемы Гильберта, то существовала бы и следующая разрешающая процедура для проблемы «%WIT%》: чтобы проверить, верно ли, что а € Wa. проверьте, имеет ли уравнение q®,у】=
=Р(〃,弘,• • •,yQ решение в N. Тем самым проблема «х^ сводится к проблеме Гильберта, откуда и следует, что последняя неразрешима.
Еще одно (неожиданное) следствие теоремы Матиясевича мы приведем в следующей главе.
Мы закончим эту главу двумя важными результатами, которые устанавливают связь частично разрешимых предикатов с разрешимыми предикатами (теорема 6.11) и вычислимыми функциями (теорема 6.13).
Теорема. Предикат М (*) разрешим тогда и только тогда, когда оба предиката Л4 (*) и «не М (#)» частично разрешимы.
Доказательство. Если предикат М (х) разрешим, то разрешим и предикат «не М (х)», и, следовательно, оба они частично разрешимы.
Обратно допустим, что имеются программы F и G, которые дают частичные разрешающие процедуры для М (дг) и «не М (х)». Тогда
尸(*) 3 О выполняется М (х) и
G (*) Т о выполняется «не М (#)».
Кроме того, для любого * выполняется либо 尸(*)3, либо G(x)3, но никак не оба утверждения одновременно. Таким ?6разом, получается следующий разрешающий алгоритм для М (х): взяв данное х, будем проводить вычисления F (х) п G (*) ^повременно (или будем выполнять последовательно шаг од- н。* программы, затем следующий шаг другой программы и Т・ Д.) до тех пор, пока одна из программ не остановится. Если Становилась программа F(x), то мы заключаем, что утвер-
ждение М (х) истинно; если остановилась G (х), то М (*) ложно. □
Эта теорема дает еще одно доказательство того, что пре-: дикат «%® 羽力》не является частично разрешимым. Аналогично мы получаем
Следствие. Предикат 《尸*(y)t》 (проблема расходимости: в эквивалентной формулировке «у 在 W7%》или《функция Фх (у) не определена^ не является частично разрешимым.
Доказательство. Если бы эта проблема была частично разрешима, то из теоремы 6.11 и примера 6.2(1) следовала бь разрешимость проблемы остановки Рх (у)\. □
Последний из результатов этой главы дает полезный способ доказательства вычислимости различных функций.
Теорема. Пусть f(x)——частичная функция. Тогда / 8* числима тогда и только тогда, когда предикат. «/ (дг) ^ р> ча стично разрешим.
Доказательство, Если функция / вычислима с помощы программы Р, то
f(x)c^ у^Bt (Р(х)1 у за / шагов).
Из теоремы 6.4 и следствия 5-1.3 следует, что предикат, сто^ щий в правой части, частично разрешим.
Обратно предположим, что предикат《/(*)亠驴> частичн разрешим. Пусть R (х, у, /) — разрешимый предикат, для КС торого / (х) 4 у о m/R (х, у, /). Тогда мы получаем следующи алгоритм для вычисления f(x): будем искать пару чисел у.' для которой выполняется R (х, у, /). Если и когда такая naR найдена, то f(x)亠 у.
Тем самым функция / вычислима. (Формальное док азател! ство можно провести, пользуясь стандартной техникой код! ровки пары чисел у, / одним числом z = 〃3‘. См. ним упр. 6.14 (8).) □
Дальнейшие свойства частично разрешимых предикатов д^ ются ниже в виде упражнений (см., в частности, упр. 6.14(4,5,9
В следующей главе мы подробнее изучим унарные частич разрешимые предикаты, причем это будет делаться в термине рекурсивно перечислимых множеств. В частности, мы узна《 почему частично разрешимые предикаты часто называют реку сивно перечислимыми.
Упражнения
Покажите, что следующие предикаты частично разрешимы: (а) «£^}=/= 0» (где п фиксировано),
(Ь)《Фх (у) есть полный квадрат»,
«и является числом Ферма». (Мы говорим, что 九 является числом Ферма, если существуют числа %, у, z > 0, такие, что xn^yn = zny
«В десятичном разложении числа л встречается ровно х последовательно идущих друг за другом семерок».
(Для тех, кто немного знаком с теорией групп.) Покажите, что для любой конечно-определенной группы проблема слов частично разрешима.
Конечный набор S Зх 3-матриц называется смертным, если существует конечное произведение матриц из S, которое равно нулевой матрице. Покажите, что предикат «S смертен> частично разрешим. (Доказано, что разрешимой эта проблема не является. См. Патерсон [1970].)
Пусть предикаты М (х) и N (х) частично разрешимы. Докажите, что предикаты 疝(*) и N (х)^ и «Л4 (лг) или N (х)> также частично разрешимы. Покажите, что предикат «не М (х)> не обязательно является частично разрешимым.
Пусть предикат М (*, у) частично разрешим. Докажите, что
Предикат «Эу < zM (*, у)» частично разрешим.
Предикат《Vy < zM 亦 частично разрешим.
(Указание. Рассмотрите функцию Hy<zf(x9 у), где f(*,y) есть частичная характеристическая функция М.)
Предикат 《VgM (х, у) не обязательно является частично, разрешимым.
Покажите, что следующие предикаты являются диофантовыми.
(а)《% четно»,
(Ь) «// делится на %》.
(Это упражнение показывает, как для доказательства того, что некоторый предикат не является частично разреши- мнм, можно пользоваться техникой редукции из § 1.)
Пусть М(х)——некоторый предикат и k—тотально вычи* *нмая функция, такая, что x^W х тогда и только тогда, когда
(х)) ложно. Докажите, что М (х) не является частично Разрешимым.
Докажите, что проблема «функция фх не является то- альной» не является частично разрешимой.
^^зание. Рассмотрите функцию 后 использованную в доказательстве теоремы 1.6.)
С помощью функции
/а, у» {/а, у» {если 尸%(%) не сходится за у или менее шагов' не определена в остальных случаях
/а, у» {
/а, у» {
покажите, что проблема «функции фх тотальна» не являете, частично разрешимой. (Указание. Воспользуйтесь s-zn-n-теоре мой и пунктом (а).)
Дайте формальное доказательство второй части теорем] 6.13. Другими словами, докажите, что если предикат «/ (х)±^у частично разрешим, то функция f вычислима.
Пусть предикат 府(х】, •・.,%〃) частично разрешим, 1 пусть gi,・・・,gzl—вычислимые частичные функции. Покажите что предикат ^ (у), определенный следующим образом:
N(y) = M(g](y), ・・.,g〃(y))
частично разрешим. (При этом мы считаем, что N (у) ложне если хотя бы одно из значений gi (у),・・・,g〃(y) не определена^
Глава 7 рекурсивные и рекурсивно перечислимые множества
Рекурсивными и рекурсивно перечислимыми множествами являются подмножества множества N, соответствующие разрешимым и частично разрешимым предикатам. Рекурсивные множества будут вкратце рассмотрены в § 1, а затем большая часть этой главы будет посвящена изучению рекурсивно перечислимых множеств. Сначала, в §2, мы, пользуясь результатами предыдущей главы о частично разрешимых предикатах, докажем многие из основных свойств этих множеств. Главным новым результатом § 2 будет описание рекурсивно перечислимых множеств, которому, собственно, они и обязаны своим названием, а именно это те множества, которые могут быть перечислены с помощью рекурсивной (или вычислимой) функции.
В § 3 и 4 вводятся креативные множества и простые множества. И те и другие являются частным случаем рекурсивно перечислимых множеств, но весьма значительно отличаются друг от друга, указывая, таким образом, на большое разнообразие, существующее внутри этого класса множеств.
1. Рекурсивные множества
Между одноместными предикатами на множестве натуральных чисел и подмножествами N имеется тесная связь: каждому предикату М (х) соответствует множество {%|М(%) истинно}, которое называется множеством истинности М (и которое может, конечно, быть пустым), и, обратно, каждому множеству A w N соответствует предикат «х W %» ”• Те множества, которые прн этом соответствии отвечают разрешимым предикатам, называются рекурсивными.
1・1・ Определение. Пусть А есть подмножество Н. Характеристической функцией подмножества 4 называется функция с<, задаваемая формулой
J L если х^А, сл I q^ если х^А. —
】)Как указывалось в сноске к§3 введения, предикаты часто отожде- :тв/яют с их множествами истинности. Такая точка зрения не противоречит нашему изложению.
Тогда множество Л называется рекурсивным, если функция с, вычислима или, что эквивалентно, если предикат《%€厶》разрешим.・
Замечания
По очевидным причинам рекурсивные множества называют также вычислимыми.
Если функция сА примитивно рекурсивна, то множество А тоже называется примитивно рекурсивным.
Понятие рекурсивного множества очевидным образом обо& щается на подмножества N"(几〉1), хотя мы здесь будем (ка это обычно и делается) применять этот термин только к по; множествам N. Никакой потери общности при этом не происходит поскольку рекурсивные подмножества N" легко кодируютс с помощью рекурсивных подмножеств N. Подробности этог. см. ниже, упр. 1.4(2).
Примеры
Следующие множества являются рекурсивными:
N,
Е (четные числа),
любое конечное множество,
множество простых чисел.
Следующие множества не являются рекурсивными:
{х I Фх тотальна} (теорема 5-2.1),
{x\x^Wx \ (теорема 6-1.1),
{х|фх = 0} (теорема 6-1.4).
Соотношения для множеств (следствие 2-4.7) дают следуК щие свойства рекурсивных множеств.、
Теорема. Если множества А и В являются рекурсивный то рекурсивными являются и множества Л, Д П В, Л U В» Л
Доказательство. Прямое использование следствия 2-4.7.
С дальнейшими результатами, касающимися рекурсивн| множеств, мы встретимся в § 2.
Упражнения
Пусть 4, В—подмножества N・ Определим множеа ДфВ и Д®В следующим образом:
ЛфВ = {2х|х€Л}и{2х+1|х€В|, Л®В = {л(х, у)\х^А и у^В}.
где л есть спаривающая функция 兀(%, у) = 2* (2у + 1)—1 теоремы 4-1.2, Докажите, что«
Множество 4 ㊉ 8 рекурсивно тогда и только тогда, к& оба множества Л и В рекурсивны.
Если А. В^0, то множество Д®В рекурсивно тогда и только тогда, когда оба множества Д и В рекурсивны.
(а) Пусть В 三 N н 〃 > L Докажите» что если множество В рекурсивно, то предикат Л4(х「・・・,%〃), задаваемый формулой
m (为“・・•,х〃)三2々3/...砂£ 8, разрешим.
) Пусть А 三 N叱 Назовем множество А рекурсивным, если предикат «#€4》 разрешим. Докажите, что множество А рекурсивно тогда и только тогда, когда множество {2々3",・・・ • •・筋“ I (勺,・・・,%) W 力} рекурсивно.
Рекурсивно перечислимые множества
Перейдем теперь к изучению тех подмножеств множества N, которые соответствуют частично разрешимым предикатам. Они образуют важный класс подмножеств уже по той лишь одной причине, что встречаются в большом числе различных ситуаций.
Определение. Пусть А — подмножество множества М Тогда множество А называется рекурсивно перечислимым^ если функция Д задаваемая формулой
J 1, если х^А,
[не определена, если х$4,
вычислима (или, что эквивалентно, если предикат «х ^ Л> частично разрешим). Слова «рекурсивно перечислимое» почти всегда сокращенно записывают р. п.
Замечания
Для обозначения р. п. множеств пользуются также терминами полу рекурсивное множество и пол у вычислимое множество, и> действительно, для приведенного выше определения больше подходят эти названия, чем слова ^рекурсивно перечислимый^. Мы будем тем не менее придерживаться стандартного наименоВания, которое обязано своим происхождением тому факту, что 3TH множества можно также определять, как множества, до・ Мекающие перечисление с помощью рекурсивной (или вычи- с“нмой) функции. Это будет доказано ниже в теореме 2.7・
Как и в случае рекурсивных множеств, понятие р・ п. мно- тв можно очевидным образом обобщить на подмножества
. Тем не менее можно без потери общности огранн・ нтьсн (как мы это здесь и делаем) рассмотрением только р. п. ^множеств N・ См. по этому поводу упр. 2.18(9).
Примеры
Пусть К = {%|%€ 叭}. Тогда ^ есть р. п. множество* которое не является рекурсивным (пример 6-6.2(1)). Его да полнение К не является р. п. (пример 6-6.2(4)).1
Любое рекурсивное множество является р. п. (пример 6-6,2(2)).
Множество{х 11ГХ=#0} является р. п. (пример 6-6.7(1 (Ь)))
Если / — вычислимая функция, то множество Ran (/) яв ляется р. п. (пример 6-6.7 (1а); ср. ниже теорему 2.7).
Замечание. К есть стандартное обозначение для множеств {%|%€%} (см. выше пример 1), которое играет очень важну' роль в изучении р. п. множеств.
Большинство результатов из § 6 гл. 6, касающихся ч] стично разрешимых предикатов, немедленно переводятся е язык р. п. множеств. Во-первых, имеет место
Теорема. Множество является р.几・ тогда и только то骑 когда оно является областью определения одноместной вычисл мой функции.
Доказательство. Теорема 6-6.3. П
Из этой теоремы мы заключаем, что перечисление 呼少理 №2, . .. является перечислением (с повторениями) всех р. множеств. Если Л = Wet то е называется индексом А,
Из теоремы 6-6.4 вытекает следующее описание р. п. м《 жеств.
Теорема. Множество / является р. п, тогда и толк тогда, когда существует разрешимый предикат R (х, у), г ко0, что х g Л тогда 〃 только тогда, когда ^yR (х, у). (Сог сно замечанию к доказательству теоремы 6-6.5, этот предю можно считать примитивно рекурсивным.)
Из теоремы 6-6.5 немедленно вытекает
2・5. Теорема. Пусть предикат М (хи 协,...,у“) части разрешим. Тогда множество {% | 三协・• • ЗУп^ (无,弘,• • •, У^ ляется р. п. множеством.
Непосредственное применение теоремы 6-6.11 устанавлий следующую связь между р. п. множествами и рекурсивн, множествами.
2・6・ Теорема. Множество А рекурсивно тогда и только 加0 когда множества А и А р. п.,
Доказательство. Хотя наше утверждение и вытекает немедленно из теоремы 6-6.11, полезно, однако, дать формальное доказательство его нетривиальной половине. Пусть R и S —разрешимые предикаты, такие, что
%w30羽/?(妈/%W万0羽S (居y).
(Мы воспользовались теоремой 2.4.) Определим теперь функцию 『(%) соотношением
f(%) = M(R(%, у) или S(x, у))・
Согласно результатам гл. 2, функция / вычислима. Далее, учитывая, что всегда выполняется одно из утверждений х^ А или х€4, мы видим, что f(х) всюду определена, и, следовательно,
%€4 о R(x, f (%)).
Тем самым предикат《% Г》разрешим, откуда и следует, что множество Л рекурсивно. □
Перейдем теперь к теореме, которой р. п. множества обязаны своим названием.
Теорема. Пусть 4uN・ Тогда следующие утверждения ^ бивалентны:
А есть р. п. множество,
4 = 0 или 4 является множеством значений одномест- ной тотальной вычислимой функции,
А есть область определения (частично) вычислимой функции.
Доказательство. Докажем следующую цепочку импликаций: (Q)=> (①今(с)今(а).
= (Ь) Пусть 4*0 и Л = Dom(/), где функция f вычисляется с помощью программы Р. Выберем некоторый элемент а£4. Тогда 4 является множеством значений следующей тотальной бинарной функции:
_ J %, если Р (%) I за / шагов,g(x, 0 = I а в остальных случаях.
Ясно, что функция g вычислима. Для завершения доказа- тепьства достаточно построить одноместную тотальную вычи- с』нмую функцию 儿 множество значений которой будет совпа- 曾ть с множеством значений g. Положим 九(z) = g((z)i, (z)t).
Хсно, что Ran(m = Ran(g) = 4
(b)二>(с) очевидно.
(с)今(а). Пусть 4 = Ran (九),где h есть п-местная вычисли*, мая функция. Тогда
%€4о 羽I - ЭУп ^{У1勿)4%)・
Стоящий справа в скобках предикат частично разрешим (тео二 рема 6-6.13), поэтому, применяя теорему 2.5, мы видим, qni множество Л является р. п. □
(Читатель, наверное, заметил, что отдельные части это! теоремы уже были сформулированы в более или менее явноь виде в этой и предшествующих главах в виде примеров и уп ражнений.)
Заметим, что именно из теоремы 2.7 (Ь) происходит терми рекурсивно перечислимый', непустое р. п. множество—это тако! множество, которое можно перечислить как 4 = {九(0), h(l| 九(2), ...}, где h есть некоторая рекурсивная (т. е. тотальна; вычислимая) функция. В самом деле, пользуясь результатам гл. 5 (и приложения), легко видеть; что построенная при да казательстве импликации (а)=Ф(Ь) функция h является пре митивно рекурсивной..
Отметим также, что теорема 2.7 говорит нам о том, чт1 перечисление Ео, Е@, ... множеств значений одноместны вычислимых функций дает еще одно перечисление (с повтЦ рениями) всех р. п. множеств. Говоря неформально, теорем 2.7 показывает, что класс рекурсивно перечислимых множес*й совпадает с классом эффективно порождаемых множеств. Мнг жество Л называется эффективно порождаемым, если сущее! вует неформальная эффективная процедура составления списй элементов Л. Такая процедура должна время от времени (q не обязательно через регулярные промежутки) выдавать число которое добавляется к списку. Она может работать бесконечи (в частности, она обязательно будет бесконечной, если мн жество Л бесконечно). Чтобы убедиться в том, что порожде! ное таким образом множество Л будет р. п., достаточно Ц ложить
f(O)=l・e число, которое процедура внесла в список,
/ (九)=(九+1)・е число, которое процедура внесла в список^ причем значение f (и) определено тогда и только тогда, кое в список внесено (几 *1)・е число. Ясно, что такая функция является вычислимой, а множество 4 = Ran(/) является р・; множеством. '
Это можно проил люстр ировать на следующем примере..
Пример. Множество чисел х, таких, что в десятичном разложении числа л существует ровно х последовательно идущих друг за другом семерок, является р. п. множеством (ср. упр. 6-6.14 (Id)). Это множество чисел порождается следующей неформальной процедурой: «Приведем в действие алгоритм, вычисляющий последовательные цифры десятичного разложения числа л. Всякий раз, когда появляется участок, состоящий из одних семерок, сосчитаем число семерок, входящих в него, и внесем это число в наш список».
Результат теоремы 2.7 дает прямое доказательство (с помощью диагонального метода) того факта, что тотальные вычислимые функции не могут быть рекурсивно перенумерованы.
Теорема. Множество {х\Фх тотальна} не является р. п. множеством.
Доказательство. (Ср. с указанием к упр. 6-6.14 (7с).)
Допустим противное, а именно, что существует тотальная одноместная вычислимая функция /, которая перечисляет это множество, т. е., иначе говоря, что Ф/(о), Ф/(1), 勿窑),・•• есть список всех одноместных вычислимых функций. Тогда с помощью диагонального метода легко построить тотальную вычислимую функцию g, которая будет отличаться от каждой из функций этого списка. Поскольку основной принцип диагонального метода гласит «добивайся того, чтобы функция g отличалась от ф/(п) в точке п», мы положим ^(х) = ф/и) (х)+ 1. Такая функция g будет тотальной и вычислимой, но 力 ни для каких т. Полученное противоречие и доказывает теорему. П
В теории частично разрешимых предикатов имеется один важный результат, который мы пока еще не перевели на язык р. п. множеств. Он касается диофантовых предикатов. Сформулируем определение.
Определение. Множество 4 三 N называется диофантовым^ если существует многочлен с целыми коэффициентами р(х,九, %), такой, что
х^А тогда и только тогда, когда 三弘 ・••三%("(招弘,• •・• %) = 0)・
Ясно, что диофантовы множества являются р. п., и теорему Матиясевича (6-6.10) можно сформулировать (как это часто н делают) в следующем виде:
2«И. Теорема (Матиясевич). Все р. п. множества являются ^фантовыми.
Отметим теперь одно неожиданное (но простое) следствие Горемы Матиясевича.
Теорема. Множество является р. и. тогда и только moa* да, когда оно является множеством неотрицательных значений^ принимаемых некоторым многочленом р(хх, ・・・,%〃) с целыми коэффициентами (причем хп ..., х„ пробегают N).
Доказательство. Пусть Л есть множество неотрицательных значений, принимаемых многочленом р(хп ..., х„). Тогда %W4om%i ••♦ 3^и(Р(х1> •••, %J = %), откуда сразу видно; что множество А р. п.
Обратно, если Л есть р. п. множество, то по теореме Ма тиясевича существует многочлен ^(х, у、, ..., ?血),такой, чт
%€4о打I刑т(№ 弘,・・・, Ут) = 0)・
Рассмотрим теперь многочлен р (х, у), задаваемый формуло
2(%, у) = %—(%+1)(9(%, У/
Многочлен р (х, у) неотрицателен тогда и только тогда, когд 9(%,J)= O, причем в этом случае он принимает значение х Таким образом, Л есть множество неотрицательных значений принимаемых р“, у), когда х, %, ..., ут пробегают мно жество N. □
(Содержащееся в утверждении теоремы требование, чтоба %i,・・・,%〃 принадлежали N, является довольно произвольные В качестве простого упражнения читатель может убедитьс в том, что теорема справедлива и в том случае, когда числа1 %” ..., хп разрешается принимать любые значения из Z.),
Значительный интерес среди математиков вызвало одно I приложений этого результата, а именно его применение к множеству простых чисел. Это множество, будучи рекурсивц перечислимым, оказалось множеством положительных значени! принимаемых некоторым многочленом с целыми коэффицие тами,— утверждение, которое считали очень неправдоподобнь до тех пор, пока Матиясевич не доказал свою теорему. .
Уточнение теоремы 2.12 показывает, что существует од! универсальный многочлен, порождающий все р. п. множеств то есть многочлен р (г, %, z/n ..., у^), обладаюш.ий тем сва ством, что для любого р. п. множества 4 существует число такое, что
%w/0m场ЗУm(p(^»招 %,-・・,^) = °)-
Чтобы убедиться в этом, достаточно заметить, что проблей остановки «%€ 吃》диофантова, и взять в качестве индекса число z.
В этом месте полезно перечислить различные имеющие! у нас теперь описания р. п. множеств. Следующие услова на множество Л натуральных чисел эквивалентны:
Предикат «%М» частично разрешим (именно это условие мы взяли в качестве нашего основного определения),
Множество Л есть область определения одноместной вычислимой функции, т. е. для некоторого е A = We (теорема 2.3),
Для некоторого разрешимого предиката /?(х, у) имеет место х^А ^jyR (х, у) (теорема 2.4),
Для некоторого частично разрешимого предиката М (%,场,•…,%) имеет место % W 4 0 m协-•.三%m (匕 协,•一,%) (теорема 2.5),
Если 4,0, то А есть область значений тотальной одноместной вычислимой функции (теорема 2.7),
/ есть множество значений вычислимой функции (теорема 2.7),
А диофантово (теорема 2.11),
Л является множеством неотрицательных значений, принимаемых некоторым многочленом с целыми коэффициентами (теорема 2.12).1
Естественно, что, работая с р. п. множествами, выбирают всегда то описание, которое удобнее всего использовать в рассматриваемой задаче. Проиллюстр ируем это в доказательстве следующей теоремы.
Теорема. Если множества А и В р・ п., то р. n. и множества Д П В “ Я U В.
Доказательство. Для 4nB воспользуемся условием (2). Пусть Л = Dom (f) и В» Dom (g), где функции fug вычислимы. Тогда Л П В = Dom (f^), а функция fg вычислима.
В случае Л U В воспользуемся условием (5), Если / = 0 или 8 = 0, то доказывать нечего. Предположим поэтому, что Л = Ran (/) и A = Ran(g), где f, g —'тотальные вычислимые функции. Определим функцию й следующим образом:,
й(2х) = /(х),九(2%+ l) = g(%).
Тогда 九 вычислима, и ясно, что Ran (Л) = Л UB. □
(Отметим, что поучительно провести доказательства этой Горемы, исходя из каждого из условий, характеризующих Р・ п. множества).
Следующая теорема устанавливает связь между р. п; ,мно- "ствамн и рекурсивными множествами.
2」4・ Теорема. Бесконечное множество рекурсивно то^да и только тогда, когда оно является множеством значений ;то»
тальной возрастающей вычислимой функции, т. е. если его можм рекурсивно перечислить в возрастающем порядке.
Доказательство. Пусть множество Л рекурсивно и беско нечно. Тогда Л перечисляется возрастающей функцией f задаваемой соотношением
f(0) = W/®"), 2+1)= ^®€/ и у > f (и)).
Кроме того, функция f вычислима в силу замкнутости класс; вычислимых функций относительно операций минимизации, ре курсии, а также рекурсивности множества Л.:,
Обратно, допустим, что А есть множество значений выч^ слимой тотальной возрастающей функции 九 т. е. / (0) < f (1) < <f (2) < • • •・ Ясно, что если y = f (九),то п&у. Отсюда име®
У^А^уе Ran (f)
О 打&P(fS) =力
и предикат справа разрешим. Следовательно, множество рекурсивно. □
(Другой способ доказательства состоит в том, чтобы пок$ зать, что множество Л р. п.; его мы оставляем читателю в кд честве упражнения.)
С помощью последней теоремы доказывается
Теорема. Любое бесконечное р. п. множество имеет бес^ печное рекурсивное подмножество.
Доказательство. Пусть 4 = Ran(f), где f—тотальная в числимая функция. Подмножество Л можно эффективно пер числить в возрастающем порядке с помощью следующей 巾уН ции g:
g(O) = f(O), gS+D = f(%), W x = iiy(f(y)>g(n)).
Поскольку множество 4 = Ran(f) бесконечно, то функция; тотальна. По построению Ran (g)三 Ran (f) и функция g яв ется возрастающей. Ясно, что g вычислима (в силу замк тости класса вычислимых функций относительно операций 彳 нимизации и рекурсии). Следовательно, по теореме 2.14 Ran] является бесконечным рекурсивным подмножеством А. □ ;
Мы завершим этот раздел теоремой Райса и Шапиро о р^ множествах индексов. Этот результат нам понадобится в гл.; кроме того, ряд следствий из него мы выведем уже в 歩 параграфе. Эта теорема и ее доказательство представляют бой обобщения теоремы Райса (6-1.7). (В формулировке у
теоремы мы называем конечной функцией такую функцию 0, область определения которой конечна. Заметим, что все конечные функции вычислимы.)
Теорема (Райс—Шапиро). Пусть Л есть множество одно- местных вычислимых функций^ таких, что множество {% 16% € 4} р. и. Тогда для любой одноместной вычислимой функции /
f^A тогда и только тогда, когда существует конечнаяфункция 8 三厶 такая, что 0 €^.
Прежде чем доказывать этот результат, покажем, как его можно использовать для того, чтобы давать короткие доказа- тельства отсутствия рекурсивной перечислимости (или непере- числимости). (Другие приложения такого рода даются в упр. 2.18 ниже.)
Следствие. Множества {х\Фх тотальна} 〃 {х\Фх не тотальна} не являются р. 'п.
Доказательство. Для случая А = {х|Ф^ тотальна! применим теорему Райса—Шапиро к множеству Л = {/|/C^i и/тотальна}. Ни для какой функции f W4 не существует конечной функции 6三f, такой, что 0gЛ. Следовательно, множество Л не явля- ется р. п.
Для случая 8 = {%也 не тотальна} рассмотрим множество 毋=彳川€诊1 и / не тотальна}. Тогда, если / есть произвольная тотальная вычислимая функция, /^^, но любая конечная функция 8 三 f принадлежит 毋.Таким образом, по теореме Райса—Шапиро множество В не может быть р. п. □ (Замечание. Таким образом мы получили третье доказательство неперечислимости индексов тотальных функций, два других содержатся в упр. 6-6.14 (7с) и в теореме 2.9. Как мы сейчас увидим, доказательство, предложенное в указании к упр. 6-6.14 (7с), является, по существу, ограниченным вариантом следующего доказательства.)
Доказательство теоремы 2・/6・ Пусть А = {х\Фх^Л} и дано, что множество Л является р. п. Мы покажем, что если любая нз импликаций, содержащихся в утверждении теоремы, неверна, т。проблему «х W К» можно свести к проблеме «х W Д». (Найом- ннм, что, согласно упр. 2.2(1), К = {%|хе取J) Тем самым множество К оказывается р. п., что и приводит к противоречию.
Допустим сначала, что fW", но 呢4 ни для каких ко н”ннх 0 s/. Пусть Р—программа, такая, что Р(z) | тогда и Зько тогда, когда z€K・ Определим вычислимую функцию
g(z, f) соотношением
( 八〜J/«),если 尸(z)* за / или менее шагов, g(z, 0 — ) не определена, если Р (z) J за f или менее шагов.
Воспользовавшись s-zn-n-теоремой, мы получаем тотальную вы* числимую функцию s(z), такую, что g(z, /) с^ фх{2} (/). Заметим/ что по построению 丸⑵ 三 / при всех z. Мы утверждаем теперь, что z £ К 今丸(力 конечна (откуда 丸⑵在 4), z^K^>Фs(^ = f (откуда 丸⑺€%)•
В самом деле, если z £К, то существует /, такое, что Р (z) J з《 / шагов. Тогда функция g(z,,)46$(z)(/') не определена для 尸 2 f・ Отсюда следует, что 6$(力 конечна. С другой стороны если z 在К, то g(z, Z) ^ f(t) при всех 九 откуда Ф$⑵=f・ у
Далее, соотношения (*) означают, что z^K ^ s(z)^ А, откуда вытекает, что множество К является р. п. Полученное противоречие доказывает, что должна существовать конечная функция 8 三厶 такая, что 9 £4.
Для доказательства обратной импликации предположим; что вычислимая функция / такова, что существует конечна^ функция ®W4, такая, что 0 ^ /, но Определим вычисли мую функцию g(z, /) соотношением
/ 八〜"(力 если f€Dom(®) или z€ К, 4/ — I не определена в остальных случаях.
5-/п-п-теорема дает тотальную вычислимую функцию s(z), т@ кую, что g(z,力亠弘⑵⑺,Из определения g и того факта что 8 三厶 мы видим, что
2WK=>6s(z)= f (откуда ф虱介生4) и
Z史К~外⑵=Л Dom (0) = 0 (откуда 内⑵ £ 4).
Но это означает, что z€Kos(z)€4 что вновь приводит противоречию, так как множество К оказывается р. п. Таки образом, fW4, что и требовалось доказать. □
Мы оставляем читателю в качестве упражнения проверк того факта, что теорема Райса—Шапиро обобщает теорем Райса (см. ниже упр. 2.18 (12)).
Упражнения
Для любого а С N положим aW е = {х\Фе (х) — а}. Док* жите, что множество aWe является р. п. (для всех а). Вер! ли, что перечислениеaWQt aW19 aW2i ... включает все р.' множества?;
Покажите, что множество {х\фх не инъективна} является р. п.
Покажите, что существуют тотальные вычислимые функции 々 н 4 такие, что Wx = Ek(x} и Ex=WUx} для любого %.
Пусть Л—р. п. множество. Покажите, что множества U 步% и U Ех рекурсивно перечислимы. Покажите следующим образом, что П x^aWх не обязательно р. п. Для всякого t пусть Kt = {x\Px(х)| за / шагов}. Покажите, что при каждом / множество/(f рекурсивно; более того, К=山川&”冗工 П“ 依加
Пусть f—одноместная вычислимая функция, А 三 Dom (f) и g = f|4・ Докажите, что функция g вычислима тогда и только тогда, когда множество Л является р. п.
Пусть f—одноместная функция. Докажите, что f вычислима тогда и только тогда, когда множество {2*3"*)|xW Dom(力} рекурсивно перечислимо.
(Ср. с теоремой 2.14.) Пусть Д—бесконечное р. п. множество. Покажите, что Л может быть перечислено (без повторений) с помощью тотальной вычислимой функции.
Какие из следующих множеств являются рекурсивными? Какие рекурсивно перечислимыми? Какие имеют р. п. дополнение?
^^^ W^^^ W%%%%%€ J},
^^^ W
^^^ W
%
%
%
%
% есть полный квадрат},
Фх инъективна},
в десятичном разложении числа л существует набор
последовательно идущих друг за другом семерок, длина которого больше либо равна х},
⑹{%1乙(%)仆 t加 фикеировано).
(Ср. упр. 1.4(2).) (а) Пусть В 鼻 N и n > 1. Докажите, что если множество В р. п., то предикат /И (х^ ..., хп), задаваемый формулой
М (%, ・・・,%〃)曰2*,3а・・р訓W 3,
частично разрешим.
Пусть А 三 №; будем называть множество Л рекурсивно перечислимым, если предикат «% £4》частично разрешим. Докажите, что множество А р. п. тогда и только тогда, когда множество
{2修3%・•区5(%,・・・,/)£4}
Рекурсивно перечислимо.
Докажите, что множество 4 三 N" р. п. тогда и только 胆「аа, когда 4 = 0 или существует тотальная вычислимая Функция /: N―►№, такая, что Л = Ran (/). (Вычислимой Функцией / из N в № мы называем набор из л функций /-«
= (/х,•••,%), где каждая из 力 есть одноместная вычислима функция, а/(х) = (3 (%),..., %(%)).)
Пусть /—тотальная вычислимая функция, А——рекуд сивное множество, а 8—р. п. множество. Покажите, что мн^ жество Z"1 (Д) рекурсивно и что множества /(Л), f(B) и /-1(Д р. п., но не обязательно рекурсивны. Что еще можно сказат об этих множествах, если / есть биекция?、
С помощью теоремы Райса—Шапиро покажите, чт следующие проблемы не являются частично разрешимым* (a) «Wx= 0», (b) «Wx конечно», (с) «Wx бесконечно», (d) «Фхч =0», (е) «фху=0».
Выведите из теоремы Райса — Шапиро (теорема 2.1 теорему Райса (теорема 6-1.7). (Указание. Пусть проблем! 《Фх® 毋》разрешима. Тогда как множество Si, так и множеств @i\毋 удовлетворяют условиям Райса ——Шапиро. Рассмотрит случаи %€% н %在毋.)工
(а) Пусть К0 = {х\Фх (х) = 0} и К】={% 16*(%) = 1 }• П< кажите, что множества Ко и ^1 являются р. п., а также 41 они рекурсивно неотделимы, т. е. что /<0 п ^1 = 0 и что Е существует рекурсивного множества С, такого, что К。三 С : К 三 С; в частности, ни одно из множеств ^0 и ^1 не являе' ся рекурсивным. (Указание. Допустим, что такое множеств С существует, и пусть /и—индекс его характеристическа функции. Рассмотрите вопрос о том, верно ли, что т^С (Ь) Покажите, что два непересекающихся множества Ли] рекурсивно неотделимы (в смысле только что приведенной определения) тогда и только тогда, когда из того, что 力三叫 B^Wb nWa(]Wb= 0, следует, что существует число x^Wa U 叫 (Замечание. Понятие рекурсивной неотделимости для пая непересекающихся множеств соответствует понятию нерекуй сивности для одного множества. Пары рекурсивно неотделимы множеств, которые являются также и р.п., отвечают р・? множествам, которые не являются рекурсивными.)
Продуктивные и креативные множества
В этом разделе мы рассмотрим важный подкласс р. п. мй| жеств, а именно так называемые креативные множества. Э| те р. п. множества, дополнение которых в некотором доволь! сильном смысле не является р. п. Поэтому мы начнем с pf смотрения класса не р. п. множеств, которому будут прин& лежать эти дополнения.,
Пусть Л—любое множество, которое не является р・「 Тогда если Wх есть какое-нибудь р. п. множество, содер用 щееся в Л, то должно существовать число y^A\Wx. Сущее
вовзнне такого числа говорит о том, что A^Wх. Оказывает- сн, что для некоторых не р. п. множеств такое число может 6ьАъ найдено эффектавным образом. Рассмотрим, например, не р. п. множество K = {x\x^W ^. Если Wx ^ Л, то не может быть, чтобы x^Wx (в противном случае х^К и 昕华玄勺. Отсюда %WK\叭,и нашим числом, показывающим, что Wx=^Kt является само число х.
Не р. п. множества, для которых такое число может быть всегда вычислено таким путем, носят название продуктивных.
Определение. Множество А называется продуктивным тогда и только тогда, когда существует тотальная вычислимая
функция g, такая, что из Wxs А следует, что g(%)W4\^\・ Функция g называется продуктивной функцией для множества 4 (См. рис. 7а.)
Пример. Множество К продуктивно, причем продуктивная Функция есть g(х) = х.
Много примеров продуктивных множеств можно получить с помощью следующей теоремы, доказательство которой основано на идее сводимости, обсуждавшейся в предыдущей главе. 3・2. Теорема. Пусть множества А и В таковы, что множе- °勿6° 4 продуктивно и существует тотальная вычислимая функ- 賢& Л такая, что х^А тогда и только тогда, когда /(х) € В.
множество В продуктивно.
Доказательство. Пусть g—продуктивная функция для А. Допустим, что Wx ^ В. Тогда f^1 (IFJ sf~l (В) = Л; кроме Ого» множество 7"1(^) р. п., следовательно, существует чис-
ло z, такое, что 厂"取。二呼?. Далее, Wz^ А. и, таким об「 разом, g(z)^A\Wzt откуда видно, что f(g(z))^B\Wxt т. е. элемент f(g(z)) свидетельствует о том, что Wх=^ В (рис. 7Ь)Г
Нам осталось научиться строить f(g(z)) по х эффективно^ Простое применение «-/п-п-теоремы дает тотальную вычислимую функцию 々(х), такую, что W^^f-1 (W^ (достаточна
Рис. 7Ь. Теорема 32
применить «-/п-п-теорему к функции фх (/ (z/))). Полагая тепер! z = k(x)t мы видим, что если Wх ^ В, то f(g(k (х))) g B\WX Следовательно, множество 8 продуктивно с продуктивной фуню цией f(g(k(x))). □
Примеры
Следующие множества продуктивны:
\х\Фх^0},
{x|cg 吃} (с—фиксированное число)
{%|吒EJ (с—фиксированное число).
(В каждом из этих случаев достаточно применить теорему 3霁 рассмотрев множество К и функции, полученные в теорем 6-1.4 (для (а)) и в теореме 6-1.6 (для (Ь) и (с).)
Эти и многие другие примеры продуктивных множеств Morjl быть получены из следующего общего следствия теоремы 3.9 доказательство которого практически совпадает с доказател! ством теоремы Райса.
Теорема. Пусть S3—множество одноместных вычислим^ функций, такое, что /。€ 毋 〃 毋力抬「Тогда множеств В = {х\Фх^^} продуктивно.
Доказательство. Выберем какую-нибудь вычислимую фуШ1 цию g岳毋.Действуя так же, как при доказательстве теореий
райса (6-1.7), получаем тотальную вычислимую функцию Л(х), такую, что
以⑺=g,если %€К,%g = f。, если %$К・
То есть %WK тогда и только тогда, когда 々(%)€В. Следовательно, по теореме 3.2 множество 8 продуктивно. □
Пример. Множество {х | Фх не тотальна} не является продуктивным (это вытекает немедленно из теоремы 3.4).
Продуктивные множества представляют для нас интерес главным образом в тех случаях, когда они образуют дополнение некоторого р. п. множества.
Определение. Множество Л называется креативным, если оно является р. п. и его дополнение Л продуктивно.
Самый простой пример креативного множества дает, конечно, множество ^. На основании теоремы 2.6 мы можем сказать, что креативным множеством является р. п. множество, которое нерекурсивно в очень сильной степени. В гл. 9 мы узнаем, что в некотором смысле креативные множества — это те р. п. множества, которые имеют самую трудную проблему разрешения.
Примеры
Следующие множества являются креативными:
(a) {x|cg 1ГХН (продуктивность дополнений к этим множе- (Ь) {х\с^ Ех} / ствам была доказана в примерах 3.3).
(с) Множество А = {х\Фх(х) = 0}. Ясно^что оно р. п. Чтобы построить продуктивную функцию для Д, можно, пользуясь s-m-n-теоремой, построить тотальную вычислимую функцию g, такую, что
。&⑺(勿=О О Фх (У) определена.
Тогда g(x) € 4 og(x) W 外,так что если 吃三/1, то должно выполняться условие g(%)W 不听犷 Тем самым g есть продук- тмвная функция для А.
Много примеров креативных множеств дается следующим бедствием из теоремы 3.4.
3・8・ Теорема. Пусть 力三% и 4 = {%|丸€力}・ Если множе- спгво А р, п., {=/=0 〃 Д =/= N, то множество А креативно.
Е ^°^зательотво. Пусть множество А р. п. и А ^ 0, % с〃н fcC%, то по теореме 3.4 Л продуктивно, чего не может
быть. Таким образом, /。€4 и, следовательно, продуктив^ множество 4 (теорема 3.4), откуда множество Л креативно. I
Примеры 3.7 (а), (Ь) получаются непосредственным прим нением этой теоремы. Аналогично имеем
Пример. Множество A = {x\Wх^= 0} креативно. Очеви] но, что это множество р. п. и соответствует множеству 4
С помощью теоремы 3.8 делаются и многие упражнения конце этого параграфа.
Во всех рассмотренных нами примерах нерекурсивные р. множества были креативными. (При желании читатель мо* доказать это сам в тех примерах, где соответствующие ра) суждения явно не проводились.) Возникает естественный ва рос: верно ли, что все нерекурсивные р. п. множества крс тивны? В пользу этой гипотезы говорит теорема 3.8, а так! ряд приведенных ниже примеров. Тем не менее оказываете что такая гипотеза неверна: с помощью специальной констру ции можно построить р. п. множества, которые не будут рекурсивными, ни креативными. Этой задаче будет посвящ § 4.,
Эта конструкция, которой мы займемся в следующем пар графе, обязана своим происхождением сформулированной ни! теореме 3.11, которая показывает, что продуктивное множась (а стало быть, и дополнение к креативному множеству), ха оно само и не является р. п., содержит тем не менее бескон" ное р. п. подмножество. (Поэтому и секрет конструкции, да? щей р. п. множество, не являющееся ни рекурсивным, ни к* ативным, состоит в том, чтобы обеспечить, чтобы оно обладало этим свойством.)
Доказательство теоремы будет проще, если мы выде4 сначала следующий технический результат.
Лемма. Пусть g^ тотальная вычислимая функция. Та существует тотальная вычислимая функция 0, такая, Wk(x)=旷力 U {g (%)} для всех х.
Доказательство, Воспользовавшись s-zn-n-теоремой, возЦ тотальную вычислимую функцию 々(%), такую, что
I 1,если y^Wx или y^g(x)f
—'не определена в остальных случаях.
Теорема. Любое продуктивное множество содержит конечное р. п. подмножество.
Доказательство. Пусть А—продуктивное множество с продуктивной функцией g. Идея доказательства состоит в том, чтобы следующим образом перечислить без повторений бесконечное множество 8 = {丸,弘,..•}三 4
Возьмем eQ так, чтобы 吃。=0. Так как Weo 三 Л, имеем g(&)€4 Положим yQ = g(eQ).
Пусть 九》0, н предположим, что даны у。, ..., у〃, такие, что {t/о, - Уп}^А- Найдем индекс ел+1, такой, что {у0
Рис. 7c. Перечисление бесконечного подмножества множества А (теорема 3. 11).Рис. 7c. Перечисление бесконечного подмножества множества А (теорема 3. 11).
Рис. 7c. Перечисление бесконечного подмножества множества А (теорема 3. 11).
Рис. 7c. Перечисление бесконечного подмножества множества А (теорема 3. 11).
Уп\ = ^еп+1 ^ Л. Тогда g(分+J W {\刃勿+|, так что, полагая 以+I=g(〃+1), МЫ получаем уп+1^А и уп^^у^ ^^Уп (см. рис. 7с).
Чтобы убедиться в том, что перечисление у。, у*, •.・ является эффективным, воспользуемся леммой 3.10. Выше, при подборе индекса е宀,мы требовали, чтобы
吋e〃 + i = W%〃 U {%} =渺^〃 U {g (〃)}=刃依е〃>
(где функция Л дается леммой 几о определению положить еп+Л вательность е0, еп ・・・ дается(где функция Л дается леммой 几о определению положить еп+Л вательность е0, еп ・・・ дается3.10). Таким образом, можно равным k(e^. Тогда последо- рекуррентными соотношениями3.10). Таким образом, можно равным k(e^. Тогда последо- рекуррентными соотношениями
(где функция Л дается леммой 几о определению положить еп+Л вательность е0, еп ・・・ дается
(где функция Л дается леммой 几о определению положить еп+Л вательность е0, еп ・・・ дается
3.10). Таким образом, можно равным k(e^. Тогда последо- рекуррентными соотношениями
3.10). Таким образом, можно равным k(e^. Тогда последо- рекуррентными соотношениями
е0 = некоторый индекс для 0, e〃+i =力(е〃)
% следовательно, вычислима. Далее, поскольку % = g(e〃), последовательность у0,弘,…тоже вычислима. Таким образом, множество 8 = {%,弘,...}, будучи множеством значений вычислимой функции, является р. п. По построению В ^ А и В ^конечно. □
Отметим очевидное
Следствие. Если множество Л креативно, то А содержи бесконечное р. п, подмножество.
Упражнения
Покажите, что следующие множества продуктивны:
{х Wx конечно},
{х Фх не сюръективна},
{х Фх инъективна},
\х Фх не является многочленом}.
Докажите, что следующие множества креативны:
{x|x€EJ,
{х| 改)* 0}(九 фиксировано),
{х\Фх не инъективна},
{%巾€川,где Л есть непустое р. п. множество,
{х\Фх(х) = /(х)}; где f—любая тотальная вычислим^ функция.«
Докажите, что если множество В р. п. и Л Л В проду! тивно, то множество А тоже продуктивно.
Докажите, что если множество С креативно и А ее р. п. множество, такое, что Л ПС = 0, то C\J А креативно.
Рис. 7d. Эффективно рекурсивно неотделимые множества (упр. 3.13(9)1
Докажите, что любое продуктивное множество содерж! бесконечное рекурсивное подмножество. ,
Для любых множеств А и В определим множества {㊉ и Л0В так же, как и в упр. 1.4(1). Пусть В — р. п. Пок жите, что (а) если множество Л креативно, то креативны множества 力㊉В и Л ® В (при условии, что В =# 0), (Ь) ес. множество В рекурсивно, то верно утверждение, обратное (
Пусть ^ — множество одноместных вычислимых функци и пусть функция g£% такова, что для всех конечных 0 S О 艺毋.Докажите, что множество "也£В продуктивно. (Ул
^ис. Используйте первую часть доказательства теоремы Райса— Шапиро.)
С помощью результатов у пр. 7 покажите, что следующие ножества продуктивны:
{工|九 тотальна},
{х I Фх есть полином}.
(Ср. упр. 2.18(13).) Непересекающиеся множества Д и В называются эффективно рекурсивно неотделимыми, если суще- ствует тотальная вычислимая функция /, такая, что из A^Wat В 三吟 и Wa П 吃=0 следует, что/ (a, b)^Wa[)Wb (см. рис. 7d).
Докажите, что множества ^o = и|Фл;W = 0} и 勺= ={% 丨 @х (%) = 1} являются эффективно рекурсивно неотдели- мымн. (Указание, Найдите тотальную вычислимую функцию Д такую, что из Waf)Wb=0 следует
1,если %€ %,
Ма,ь)(%)= °,если%€%,
не определена в остальных случаях.
Пусть множества Я и В эффективно рекурсивно неотделимы. Докажите, что —
если В р. п., то А продуктивно,
если как Л, так и 6 р. п., то они оба креативны. {Замечание. Такое обобщение понятия эффективности на пару рекурсивно неотделимых множеств аналогично переходу от нерекурсивного множества к множеству, имеющему продуктивное дополнение; аналогом одного креативного множества здесь будет пара таких эффективно рекурсивно неотделимых множеств, которые оба р. п.)
4. Простые множества
В этом разделе мы хотим показать, что существуют множества, удовлетворяющие следующему определению. Это будет означать (в силу теоремы 4.2), что не все нерекурсивные р. п. множества являются креативными.
4・1・ Определение. Множество Л называется простым, если
/1 рекурсивно перечислимо,
Т бесконечно,
Л не содержит бесконечного р.п. подмножества.
Смысл пунктов (Ь) и (с) этого определения состоит в том, ЧГо^Ь1 выделить те черты, которыми не обладают ни рекур- енвнме, ни креативные множества. Тем самым, хотя мы еще "не располагаем примерами простых множеств, легко видеть, имеет место
4'2・ Теорема. Простое множество не является ни рекурсивным, креативным.
Докаэательство. Пусть Л—простое множество. В с負 пунктов (Ь) и (с) определения множество А не является p.i так что А не является рекурсивным. Согласно теореме 3; и пункту (с) определения, множество Л не может быть кр тивным. □
Следующая конструкция простого множества принадлеж Посту.
4.3. Теорема. Существует простое множество.
Доказательство. Мы определим вычислимую частичв функцию f, такую, что множество значений / содержит крайней мере по одному элементу из каждого бесконечн р.п. множества. При этом мы добьемся такого положения ' щей, что если Ф* тотальна и Ех бесконечно, то f(x)^i Чтобы сделать множество Ran (/) простым, мы должны обес чить, чтобы в то же самое время множество Ran (/) бъ( бесконечным. Как мы увидим, оба этих условия будут вып4 йены, если взять в качестве f функцию, которую можно 1 формально определить следующим образом:]
Чтобы вычислить /(х), будем последовательно вычисля! Фх (0), Фх (1),・•. (при этом значение Фх(у+ 1) вычисляем только при условии, что значение Фх (у) уже было по4 чено и после того, как вычисление этого значения уже про дено); вычисления прекращаются, если и только если найд^ число z, такое, что Фх(г) > 2х; в этом случае полагаем /(%) =九(2)・(На формальном языке это означает, что f (х) —Фх(Н2 (Фх (2)> 2^))» откуда сразу же видно, что функци вычислима.)
Положим А = Ran (/); тогда множество Л является р Проверим теперь, что множество Л — простое.
Пусть В — произвольное бесконечное р.п. множество. То существует тотальная вычислимая функция 力^, такая, В = ЕЬ. Так как множество В бесконечно, наша конструк! гарантирует, что определено значение f(b) и что f (6) ^В^ Отсюда В А.—
Чтобы убедиться в том, что множество А бесконечно, i метим, что если /(х) определена, то f(x) > 2х. Таким образ для любого п элементы множества %, принадлежащие м жеству {0, 1, 2,・.., 2п}, находятся среди чисел f(0), • ...,f (п—1). Это означает, что множество А содержит 6d чем 九 элементов, причем это верно для любого п. След4 тельно, множество А бесконечно. □.
Эта конструкция простого множества является всего л первой и одной из самых простых из широкого класса 胃 струкций, дающих р.п. множества, обладающие многими j
циа^ьными свойствами. Рассмотрение их выходит за рамки зтой книги; читателю, который интересуется этим вопросом, стоИт обратиться к книге Роджерса [1967], где он познакомится с р.п. множествами, носящими такие названия, как гипер- простые, г и пер г и пер простые, псевдокреативные и максималь- Hbie множества. (См. также ниже упр. 4.4(3), в котором рас- сматривается пример р.п. множества, которое не является ни рекурсивным, ни креативным, ни простым.)
44 Упражнения
Пусть А и В—простые множества. Покажите, что множество 力㊉ 8 тоже является простым. (Определение значка 由 см. в упр. 1.4.(1).)
Пусть /-—тотальная инъективная вычислимая функция, такая, что множество Ran (/) не является рекурсивным. (Упражнение 2.18(7) показызает, что таких функций очень много.) Покажите, что множество
А = {х\Эу(у>х и f®) </(%))}
является простым. (Указание. Чтобы доказать, что множество бесконечно, предположите противное и покажите, что тогда существовала бы последовательность чисел у、<у<у2 V …, таких, что f (yj > / (yj > f(y^ > ... . Чтобы убедиться в том, что Л не содержит никакого бесконечного рл]. множества В, предположите противное, а именно, что В ^ Д. Покажите, что в таком случае проблема z£Ran(/) окажется разрешимой. А именно для любого заданного z найдите такое п^В, что f (м) > г, а затем воспользуйтесь тем фактом, что п^А, для построения конечной процедуры проверки того, верно ли, что 2£Ran(f).)i)
Покажите, что если множество Л -—простое, то множество Д 0Н будет р.п., но не будет ни рекурсивным, ни креативным, ни простым (см. упр.3.13(6)).
Пусть А и В—простые множества. Докажите, чтомно- жество Л (Я) В не является простым, но что множество 4 0 В— 叩 остос.
Арифметика и теорема Гёделя о неполноте
Знаменитая теорема Гёделя о неполноте [1931] предстг ляет собой один из многих результатов о формальной арифи тике, в котором теория вычислимости и логика тесно nepenJ таются друг с другом. Полные доказательства этих утверж ний выходят за рамки настоящей книги. Тем не менее сможем в общих чертах наметить ход рассуждений, пр ед 4 женных Гёделем и другими. Особое внимание мы уделим F роли, которую играет теория вычислимости, причем во мног случаях это связано с результатами, касающимися свойс продуктивных и креативных множеств.
В § 1 и 2 приводятся некоторые результаты из фор мал ной арифметики, которые дают нам возможность сформули^ вать в § 3 полную теорему Гёделя о неполноте. В последю разделе мы вновь вернемся к вопросу неразрешимости в 收 мальной арифметике, обсуждавшемуся в § 1. Все наше изЛ жение в этой главе не предполагает никакого знакомей с формальной логикой.
Формальная арифметика
Формализация арифметики начинается с определения фа мального логического языка L, адекватного для формулиров на нем утверждений обычной арифметики натуральных чис Язык 厶 имеет свой собственный алфавит, который сост из символов 0, 1, +, х, =* (содержательный смысл котор очевиден) и следующих символов, обозначающих логичен операции: 「(«не»), 八 («и»), V («или»), — (《следует》)* («для всех»), 2 («существует»). (В этой главе мы будем па зоваться символами V, m только в рамках языка 厶,а с理 «для всех» и «существует» будем применять, только пров< неформальные рассуждения.) Кроме того, в языке 厶 имею символы х, у, z, ..., которые обозначают переменные, а та! скобки вида (и).
Утверждениями (или формулами) языка 厶 называем осмысленные конечные последовательности символов из ad вита L. Например, утверждение
Зу(ух(1+1) = х)
/. Формальная арифметика
есть формальная запись неформального утверждения «х четно». Удобно писать сокращенно вместо 1 +1 символ 2, вместо +1) +1—символ 3 и т. д. для всех натуральных чисел.
^оГда ложное неформальное утверждение «число 5 четно» фор- ма/ьно выражается на языке 厶 с помощью утверждения
Эу(ух2 = 5).
Подобным же образом на языке 厶 выражаются и многие другИе неформальные утверждения обычной арифметики. Скажем, утверждение «х〉у» принимает вид
3z(—1 (z = 0)八(у + z = х))・
(Утверждение —i(z = 0) часто сокращенно записывают в виде z 方 0.) Вместо «х — простое число» можно написать
(х/0)八(х=#1)八 VyVz (х = у х z -> (у = 1 V z = 1)).
Обозначим через 于 множество всевозможных осмысленных утверждений языка L. Тогда 于 распадается на два важных подмножества, а именно:
广=множество всех утверждений, истинных в обычной арифметике натуральных чисел.
旷=множество всех утверждений, ложных в обычной арифметике натуральных чисел.
Естественное желание математика—узнать как можно больше о свойствах множества 歹.Например, с точки зрения теории вычислимости важен вопрос:
.1)(а) Будет ли множество 歹 рекурсивным или даже рекурсивно перечислимым?
Другой вопрос, существенный как с математической, так и с философской точки зрения, состоит в следующем:
.1)(Ь) Существует ли какое-нибудь простое подмножество множества 歹(система аксиом), из которого выводятся все остальные утверждения 歹?
Как мы скоро увидим, ответ на оба этих вопроса оказьь Baei( и отрицательным.
Вопросу 1.1(a) можно дать точную формулировку с по- М01Дью стандартной процедуры кодировки. Используя проце- "УРУ, подобную той, с помощью которой в гл. 4 были пере- 4ислены все программы, можно без труда указать способ Эффективного перечисления (без повторений) множества 夕. Допустим, что это уже проделано, и обозначим через 0Л 1)-е утверждение из 夕 в этом перечислении, так что
£ = {8°, 91,仇,• • • }•
Эффективность этого перечисления означает, что для кажд заданного и можно эффективно найти и записать утверждев 0Л, и, обратно, для любого утверждения а из ^ можно эфф| тивно вычислить кодирующее число и, такое, что 0 = 6〃.
Такая кодировка ставит в соответствие каждому множест утверждений 宏 множество натуральных чисел X =={п\ 0Л €41
Мы будем говорить, что,
/ рекурсивно )( рекурсивно
р.м.р.п.
宏《продуктивно I, если X《продуктивно]креативно || креативно
[и т. д.丿I и т・ д・
Тем самым вопросу 1.1(a) придается точный смысл.
Одним из ключевых результатов, который делает теорл вычислимости крайне полезным средством исследования ф мальной арифметики, является следующая, принадлежа!. Гёделю, лемма, которую мы приводим без доказательства.
2. Лемма. Пусть М (хп ..., xj—любой разрешимый пр% кат. Тогда можно построить утверждение языка Lu(xlt ...,» которое будет являться формальным аналогом предика M(%i, ・・・,%〃) 6 следующем смысле: для любых %, ..., ап 44(%, ..., а〃) истинно тогда и только тогда, ко|
о(а“ ・・・,а〃)6歹.
Рассмотрим теперь креативное множество К・ По теор《 7-2.4 существует разрешимый предикат /?(%, у), такой, Q х^ К ^ существует такое у, что /?(%, у).
Применим к предикату R(x, у) лемму 1.2 и зафиксир^ какой-нибудь один формальный аналог этого предиката, к& рый мы обозначим через а^(х, у). Тогда для любого 九 утверждение 力叮⑺,у) будет формальным аналогом предигц «几 WK》,а утверждение ~nmyoR(n, у)—формальным аналз предиката «几在 К». Будем поэтому писать
п£К вместо Эуа^(п, у) и
п К вместо "пЭуа^ (п, у).
Тогда из леммы 1.2 немедленно вытекает следующий резулы
3. Лемма. Для 〃ю6оа。и € N
(a) ng К тогда и только тогда, когда п《К£歹; (b)几«К тогда и только тогда, когда п京KW歹.
Теперь, чтобы ответить на вопрос 1.1(a), нам понадобЦ лишь следующая лемма.
Неполнота
I 4,Лемма. Существует тотальная вычислимая функция gt /зн, umo для любого п утверждение % ⑺ есть п ^К.
Доказательство. Это немедленно следует из эффективности процедуры кодировки утверждений, поскольку для любого данного п мы можем эффективно выписать утверждение
п^К(=-1Эуа^(п, у)). □
Перейдем теперь к ответу на вопрос 1.1(a):
Теорема. Множество 夕 не является р.〃・;в действительности множество 夕 продуктивно.
Доказательство. Пусть ¥ = {〃 | % W 歹}・ Беря функцию g согласно лемме 1.4, мы имеем
nwKo几生К
on^KW 歹(по лемме 1.3)
Og(〃)WT (по лемме 1.4).
Таким образом, поскольку множество ^ не является р.п., рекурсивно перечислимым не может быть и множество Т. Более того, по теореме 7-3.2 мы видим, что множество Т продуктивно. □
Упражнение. Покажите, что множество 炉 продуктивно.
2. Неполнота
Упрощенный вариант теоремы неполноты Гёделя легко следует из теоремы 1.5. Опишем сначала постановку этой знаменитой задачи.
Рассмотрим второй вопрос, (1.1(b)), сформулированный в § 1. Ему можно придать точный смысл с помощью понятия формальной системы. Формальная система (4, 纫)(для данного хзнка А) состоит из множества 4 三夕(системы аксиом} и яв- н°го определения 3 понятия формального доказательства или вывода утверждения из 夕 из этих аксиом. При этом должны бнть выполнены следующие условия:
(а) Доказательства являются конечными объектами (и, следовательно, их можно кодировать),
(Ь) Явное определение S> понятия доказательства должно быть таким, что если множество Л рекурсивно, то отношение 《"есть доказательство утверждения и из аксиом Л» разрешимо.
Теперь мы можем следующим образом сформулирова; в точном виде вопрос 1.1(b): «Существует ли формальная с стема в L, такая, что
(а) множество 4 рекурсивно (так что простота набо| аксиом понимается в довольно широком смысле).
(Ь) Множество доказуемых утверждений в точности со падает с 夕».
Условие (Ь) ставит проблему перед философом, которЕ хотел бы определить само понятие арифметической истнГ с помощью формальной системы. Для него такое условие : имеет смысла, и его следовало бы заменить какими-ниб)г другими условиями, отражающими те свойства, которым долж удовлетворять истина, например:
.2) (Ь) Непротиворечивостъ: не существует утверждения такого, что доказуемы оба утверждения и и —1 о.
.2) (Ь") Полнота: для любого утверждения а одно из утвер дений а и *~1 а обязательно доказуемо.
Теорема Гёделя в ее упрощенном варианте говорит о rd что не существует формальной системы арифметики, удов# воряющей условиям 2.2(a) и (Ь). Этот факт легко выводи! из теоремы 1.5 и приводится ниже. Полный вариант теоре! Гёделя [1931], усовершенствованный Россером, показывает, < не существует формальной системы арифметики (удовлетвори щей некоторым минимальным условиям), удовлетворяю!! условиям 2.2(a) и (Ь‘), (Ь“). Другими словами, любая неп тиворечивая формальная система арифметики с рекурсив] системой аксиом неполна. Этот факт мы докажем в § 3.
Для доказательства упрощенной теоремы Гёделя нам па добится следующая лемма.
3. Лемма. В любой рекурсивно аксиоматизированной & мальной системе множество доказуемых утверждений р.几.
Доказательство. Пусть 5V — набор доказуемых утвержд曰 из 夕.Поскольку все доказательства конечны, их можно { фективно перечислить. Тогда из того, что множество аксиз рекурсивно, следует, что предикат М (х, у) = <^у есть но доказательства утверждения 8% из аксиом 4》разрешим в ci ⑵ 1)(Ь). Тогда
0Х доказуемо о существует у, такое, чтоМ (х, у) исти!
Отсюда по теореме 7-2.4 множество 个厂 является р.п.
Сформулируем теперь теорему.
4. Теорема (упрощенная теорема Гёделя о неполноте).
Пусть (7, 团)——рекурсивно дксиоматизированная формальная система, в которой все доказуемые утверждения истинны. Т'огда существует утверждением, которое является истинным, но недоказуемым (“,следовательно, утверждение ~ia также недоказуемо).
Доказательство. По лемме 2.3 множество 尸厂 доказуемых утверждений будет р.п., причем нам дано, что 尸厂 三歹.Далее, по теореме 1.5 множество 歹 не является р.п., так что мы немедленно получаем утверждение a €^"\^, которое и будет истинным, но недоказуемым. Ясно, что утверждение —кт также не является доказуемым (в противном случае -по было бы истинно). □
(Пользуясь продуктивностью множества 歹(теорема 1.5), утверждение теоремы можно усилить и сказать, что утверждение о может быть эффективно получено из определения формальной системы (которое дает индекс множества 分厂).)
Чтобы лучше понять доказательство полной теоремы Гёделя, которое будет приведено в § 3, полезно рассмотреть внутренний механизм получения утверждения ст с помощью теоремы 1.5 в только что изложенном доказательстве.
Будем говорить, что некоторое утверждение опровержимо, если его отрицание доказуемо. Рассмотрим множество натуральных чисел Рг* и Ref*, определяемые следующим образом:
Рг* = {几 I п £ К доказуемо},Ref* = {〃 I п € К опровержимо},
={/г I п К доказуемо},
(где g есть вычислимая функция, даваемая леммой 1.4, которую мы использовали при доказательстве теоремы 1.5). Предположение о том, что доказуемые утверждения истинны, означает, в частности, что Рг* 三 К и Ref* 三 К. Далее, мно- *аство Ref* является р. п. (это следует из того факта, что 〃 W Rd* 0 8g(〃)€ 少厂 и что множество 守厂 является р. п.); поэтому существует число т, такое, что Ref* = Wт.
В силу продуктивности множества К мы немедленно полу- "аем, что m g^\Ref*, т. е. что т&К и, следовательно, что Утверждение m £ К недоказуемо. Обозначая утверждение m 年 К "Рез °, мы видим, что и истинно, но недоказуемо (как и выше, ""ко видеть, что утверждение「и тоже недоказуемо). Это Рассуждение проиллюстрировано на рис. 8а. (Для сравнения с Доказательством полной теоремы Гёделя, которое будет
приведено в следующем разделе, заметим, что недоказуемое^ 一1。можно рассматривать как следствие того факта, чт Pi••三К: а именно т&К (как и выше), так что /и在 Рг\ т. d утверждение т^К недоказуемо.) Тогда, применяя правил
Рис. 8а. Упрощенный вариант теоремы Гёделя о неполноте (теорема 2・
формального вывода, получаем, что утверждение 「т专 (т. е. т ^ W^ тоже недоказуемо."
Отметим, что таким образом становится понятным соде| жательный смысл утверждения о: о есть формальный экв валент утверждения 加在 К, т. е. т ^ Wm. В то же время
m在呼m 0б住Ref,
О m 住 К недоказуемо 00在乡V.
Тем самым о есть формальный аналог утверждения «о не' казуемо», т. е., нестрого говоря, утверждение о утвержд «я не являюсь доказуемым». Это напоминает парадокс 〃*ei а именно парадокс, касающийся следующего неформальнс утверждения
А = «я лгу»
Неформальный анализ утверждения А приводит к следующе парадоксальному выводу:'
А истинно тогда и только тогда, когда А неистин Однако если те же самые неформальные рассуждения при нить к неформальному утверждению «я не являюсь доказ? мым», то парадокса можно избежать, если считать, что Ай зуемость и истинность—это разные вещи. Именно к так<? неформальному заключению приводит нас доказательс теоремы 2.4.
3. Теорема неполноты Гёделя
В этом разделе мы покажем, как можно усовершенствовать йдею доказательства теоремы 2.4 с тем, чтобы избежать любого обращения к понятию истинности.
Фиксируем на время одну формальную систему арифметик», называемую арифметикой Пеано, Аксиомы этой системы образуют рекурсивное подмножество 皆,которое называется аксиомами Пеано. Эти аксиомы описывают простые свойства операции взятия следующего элемента N и рекурсивное определение сложения и умножения в терминах этой операции, а также включают систему аксиом, описывающих принцип индукции на N. Понятие формального доказательства берется из исчисления предикатов первого порядка. Полное описание арифметики Пеано (которую иногда называют формальной теорией чисел) можно найти в любом учебнике по математической логике. Для наших целей нам необходимо знать следующий важный факт об арифметике Пеано, которому посвя- щена существенная часть доказательства Гёделя.
Лемма. Пусть М (хп ..., х〃) — разрешимый предикат, и пусть а (хп ..., х〃)一утверждение в L, являющееся формальным эквивалентом предиката М (хп ..., хл) в смысле леммы /2 Тогда предикат М представим в арифметике Пеано б следующем смысле', для любых %, ..., (WN
если М(%, ..., %) истинно, то а(ап ..., ап) доказуемо,
если М (а” ..., а〃) ложно, то —ia(an .・•,已〃)доказуемо, (Доказательство см., например, в учебнике Мендельсона [1964].) □
Рассмотрим теперь утверждение п£К (т. е. Эуа₽(х, у)), которое мы взяли в § 1 в качестве формального эквивалента утверждения и С ^. Тогда из леммы 3.1 вытекает
3・2. Следствие. Для любого натурального числа п из того, что 孔€К, следует, что утверждение п ^К доказуемо в арифметике Пеано.
Доказательство. Пусть 〃WK・ Тогда существует натураль- н°е число т, такое, что R(〃, /и) истинно, откуда по лемме 3.1 м* получаем, что утверждение а^(n, т) доказуемо. Правила Счисления предикатов таковы, что мы имеем возможность Немедленно найти доказательство для Зуая(п, у); следова- те*пьно, утверждение п£К доказуемо.
В процессе доказательства Гёделю потребовалось дополн тельное техническое условие, которое носит название со-я противоречивости. Формальная система называется з・неп/я тиворечивой, если не существует утверждения т (у), такого, ч, все следующие утверждения являются доказуемыми:'
Зут (у), —it(0), —it(1), —it(2),...
(со-непротиворечивость — более сильное условие, чем услов| непротиворечивости (2・2)(Ь'))・
В предположении со-непротиворечивости из леммы 3.1 леп вывести утверждение, обратное к следствию 3.2.
Лемма. Пусть арифметика Пеано ^-непротиворечив Тогда для любого натурального числа и из того, что ymeepzr дение n g К доказуемо, следует, что 几 WK・*
Доказательство. Предположим, что 几也К・ Тогда для любо| m£N имеем R (п, т) ложно, откуда по лемме 3.1 ~ia^(п, г доказуемо. Таким образом, если доказуемо n g К, в то врн как 几在 К, то доказуемы все следующие утверждения:
力。/?6,丫),—^UrS,。),~ia^(n, 1),...
что противоречит а)-непротиворечивости утверждения т(у)「 = О/?П У). 口
Теперь мы можем доказать основную теорему.
Теорема (теорема Гёделя о неполноте [1931]). В язык& существует утверждение о, такое, что一
если арифметика Пеано ^-непротиворечива, то о не& казуемо,
если арифметика Пеано ^а-непротиворечива, то 「о, доказуемо,'
Доказател ьство.
Напомним определение множеств, введенных нами в ко! предыдущего раздела?
Рг* = {/г :п ^ К доказуемо},Ref* = {〃:nW К опровержимо}.
Согласно следствию 3.2, К三 Рг*, тогда как условие непрот( речивости дает, что Рг* П Ref* = 0, откуда Ref•三К. By рассуждать так же, как и в предыдущем варианте: множес Ref・ является р. п., возьмем поэтому такое /и, что Ref・ = H Эта ситуация проиллюстрирована на рис. 8Ь, который поле сравнить с рис. 8а.
Из продуктивности К вытекает, что т € ^\Ref•; в частности, 〃z g Ref*, что означает, что утверждение m ^ К недоказуемо.
Рис. 8Ь. Теорема Гёделя о неполноте (теорема 3.4(a)).
Следовательно, чтобы доказать п. (а), достаточно взять в качестве о утверждение m 在 К.
Из условия(о-непротиворечивости следует (по лемме 3.3), что Р「* 三 К и, следовательно, что Рг* = ^. Таким образом, при условии(о-непротиворечивости ситуация рис. 8Ь преобразуется
Рис. 8с. Теорема Гёделя о неполноте (теорема 3.4(b)).
в ситуацию, изображенную на рис. 8с. Тот факт, что 加在 К, ^начает, что m 在 Рг\ т. е. что утверждение m ^ К недоказуемо. Правила исчисления предикатов немедленно показывают, что Утверждение 「о (т. е. m К) тоже недоказуемо. □
Замечания
L Построенное в теореме Гёделя утверждение о называется ^Р(1^решимым или неразрешенным утверждением арифметики 1еа“°・ Как мы видели в конце § 2, о имеет неформальный
卜 &()2
смысл: «я не являюсь доказуемым», и поэтому на интуитивн уровне это утверждение истинно.
Ясно, что теорема Гёделя применима к любой реку сивно аксиоматизированной формальной системе, в которой в! разрешимые отношения представимы (в смысле леммы 3. В частности, это верно для всех систем, более сильных,曝 арифметика Пеано. Тем самым мы не можем избавиться 力 неполноты путем добавления новых аксиом, например аксио. «о или ~па». Полученная формальная система будет содержа новое неразрешимое утверждение.
Заметим, что неразрешимое утверждение о можно явн образом построить из определения арифметики Пеано, посколМ пользуясь этим определением, можно эффективно найти деке т множества Ref*. Этот конструктивный аспект теоре Гёделя есть следствие того факта, что множество К креати^ Внимательно проанализировав доказательство, можно убедив в том, что если вместо множества ^ взять любое нерекурс? ное р. п. множество Д, то удастся показать лишь сущесг^ вание неразрешимого утверждения.«
Хотя это и не вполне очевидно из нашего изложе^ доказательство части (а) теоремы Гёделя является финит^ доказательством. Это означает, что оно явно показывает, по формальному доказательству утверждения о построить казательство для "па (что демонстрирует его противоречивое Этого нельзя сказать о части (Ь), поскольку понятие со・не, тиворечивости не является финитным.
В 1936 году Дж. Б. Россер обнаружил, как можно е виться от условия ^-непротиворечивости в части (Ь) тео^ Гёделя. Этот улучшенный Россером вариант метода ГД заключается в использовании вместо креативного множест! того факта, что р. п. множества
К。= {х:6х(%) = 0} н К】={х:6*(%) = 1} являются эффективно рекурсивно неотделимыми (это пой было рассмотрено в упр. 7-3.13(9), но наше дальнейшее жение не требует знакомства с этим упражнением).
Мы начнем с описания некоторых утверждений из 夕, рые будут формальными эквивалентами утверждениям & и n€^Ci и которые записываются в несколько более ело виде, чем использованный нами ранее формальный зквнв" утверждения п^К. Выберем разрешимые предикаты R, и & (х, у), такие, что'
"WKoO существует у, такое, что /?0 (и, у), n£KiO существует у, такое, что ^Ди, у).
双F0, что Ко A^1 = 0, И поэтому
(*) 几 £К°О существует 弘 такое, что (i) /?0 (п, у) и (ii) /?!(и, z) ложно для всех z&y.
Аналогичное соотношение имеет место и для утверждения 〃WKi・ Возьмем теперь утверждения а&, а^, которые, согласно лемме 3.1, представляют R。,R、в арифметике Пеано. Предложение Россера состояло, по сути дела, в том, что он предложил использовать следующее утверждение (соответствующее соотношению (*)):
(**)3y(a₽o(n, y)AVz & у (「% (n, z)))
в качестве формального эквивалента утверждения 几 WK。вместо более простого утверждения myo&(n, у). Будем сокращенно записывать утверждение (**) как п^К。и аналогично будем писать n^Kt вместо
ЕУ (% (п, y)AVz & у (г % (n, z))).
Теперь уже несложно доказать следующую ключевую лемму (которую следует сравнить со следствием 3.2):
Лемма. В арифметике Пеано для любого натурального числа п
(а)е(с)в(а)е(с)весли 〃 € К。,то утверждение п € К。доказуемо,
(а)е(с)в
(а)е(с)в
если "СК” то утверждение п^К] доказуемо, если доказуемо n g Кп то доказуемо и п ^ Ко.
доказательстве этой леммы используются некоторые тех
нические свойства арифметики Пеано, и мы его поэтому опустим. Отметим, что использование более сложных формальных эквивалентов для утверждений n^KQ и п^К» необходимо для того, чтобы доказать 3.5(c). (Для тех, кто знаком с математи- Ческой логикой, укажем, что лемма 3.5 легко доказывается, 6cли показать, что следующие утверждения доказуемы в ариф- метике Пеано:
(3・6)(а) Для любого /п € N:
Vz & m (z = 0Vz = 1 V • • • Vz ~ m),
(b) VyVz (y ^zVz <y).)
Теперь уже мы можем завершить доказательство основного Результата.
/ Теорема (теорема Гёделя—Россера о неполноте). Сущест- 产团 утверждение т, такое, что если арифметика Пеано Противоречива, то утверждения т 〃「т недоказуемы.
Доказательство. Рассмотрим множестваРг** = {〃|п£Ко доказуемо},Ref** = {〃|n€Ko опровержимо}={и I п ^ Ко доказуемо}.
Условие непротиворечивости означает, что Рг** П Ref** = fi Из леммы 3.5(a) мы имеем, что К。三 Рг**. Кроме того, лемм 3.5 (Ь) и (с) мы получаем, что
〃 € Ki => п 在 К。доказуемо;
т. е. что К】三 Ref**. Оба множества Рг** и Ref** р. п. (при эт используется тот факт, что 5V р. п.), так что из рекурсивн) неотделимости множеств KQ и ^1 (упр. (7-2.18 (13b)) следуй
что существует число р € Рг** U Ref**. Такое положение проиллюстрировано на рис. 8d. Теперь уже видно, что p^t означает недоказуемость утверждения р g Ко, а р б Ref** Д недоказуемость р 在 К。,так что для завершения доказательс теоремы достаточно взять в качестве т утверждение Р W K°j
Хотя доказательство теоремы (в той форме, в какой была сформулирована) и закончено, посмотрим еще, как мо| явно построить число р (а следовательно, и утверждение^ Из явного описания арифметики Пеано можно эффект! найти индекс р, такой, что
f 1,еслии С Рг**,
办(几)={ 0,еслип g Ref**,
[не определена иначе.
Докажем теперь, что р ^ Рг** U Ref**. Имеем
если р £ Рг**, то Фр (р) = 1, так что р € Кп откуда р W R что противоречит условию непротиворечивости. Отсюда р 在1
если р б Ref**t то Фр (р) = 0, так что р £К°, откуда р g Рг**, что дает еще одно противоречие. Отсюда р^ Ref**. (Тот факт, что число р может быть получено явно, сущест- венннм образом использует эффективную рекурсивную неотделимость множеств К。и К〕(см. упр. 7-3.13(9).) □
Замечания
Утверждение —it, построенное при доказательстве этой теоремы, соответствует неразрешимому утверждению о теоремы 3.4. Легко видеть, что 「т имеет неформальный смысл- «я не являюсь доказуемым» и тем самым интуитивно истинно.
Теорема Гёделя — Россера применима к любой рекурсивно аксиоматизированной формальной системе арифметики, в которой все разрешимые отношения представимы и для которой может быть доказана лемма 3.5. (Лемма 3.5 всегда выполняется для систем, в которых можно доказать утверждения 3.6(a), (Ь). Такие системы называются россеровскими.) Так что тем самым нет никакой возможности избавиться от неполноты, добавляя новые аксиомы.
. Теорема Гёделя——Россера является полностью финитной: ее доказательство (если его привести полностью) показывает, как явно получить противоречие по доказательству какого- нибудь из утверждений т или "и т.
4. Неразрешимость
Как мы уже видели, множество 歹 (истинные утверждения арн(фметикн) не является рекурсивным (теорема 1.5). Это свойство часто обозначают другим термином, говоря, что множество 歹 неразрешимо. И вообще, рассматривая множества утверждений, часто говорят «разрешимое» и ^неразрешимое», имея в виду рекурсивное и нерекурсивное.
Для любой формальной системы арифметики мы можем задать вопрос: является ли множество доказуемых утвержден и ii разрешимым? Ответ на него будет неизменно отрицателен, и убедиться в этом можно различными способами. Мы ограничимся одним из многих результатов в этой области, в доказательстве которого используются идеи предыдущего Раздела.
4」・ Теорема. Пусть (4,纫)——^-непротиворечивая формальная с〃с〃мма арифметики, в которой все разрешимые предикаты 11 рейсгпавимы (в смысле леммы 3./). Тогда множество доказуемых Утверждений креативно.
Доказательство. В наших предположениях применима теорема Гёделя 3.4, поэтому из доказательства теоремы 3.4
мы имеем
/( = Pr* = pi:ngK доказуемо}.
Пусть теперь Рг = {п:0л доказуемо}; можно найти вычислиму функцию Л, такую, что n g К есть 0Л (л), и тогда
几 € К О 几 € Рг*
О力⑺£ Рг.
Таким образом, по теореме 7-3.2 множество Рг креативно.[
・ Следствие. Если арифметика Пеано(o-яеиротиворечива, п все доказуемые утверждения образуют креативное множеств (Это справедливо, в частности, в том случае, если все док зуемые утверждения истинны.)
С помощью идеи Россера можно улучшить теорему 4 и следствие 4.2. Мы сформулируем это в виде следующе упражнения.
. Упражнение. Пусть (4,包))一непротиворечивая рекурсий аксиоматизированная формальная система, для которой вы па ня юте я леммы 3.1 и 3.5. Пусть Рг** и Ref** — множеств определенные при доказательстве теоремы 3.6.
Покажите, что множества PL и Ref" эффективно R курсивно неотделимы..
Пусть Рг = {〃:8“ доказуемо} и Ref = {п:'~10„ доказуема Докажите, что множества Рг и Ref эффективно рекурсии неотделимы. (Указание. Обобщите идею теоремы 7-3.2 на под эффективно рекурсивно неотделимых множеств.)
Изложение результатов в этой главе было в значитель^ мере взято из книг Клини [1967] и Смальяна [1961]. Да} нейшее обсуждение вопросов неполноты и неразрешимой в арифметике и связанных областях см. в книгах 6已叫 Маковера [1977], Булоса и Джефри [1974] и Роджерса [19j
Глава 9 Сводимости и степени
В предшествующих главах мы часто пользовались техникой сведения одной проблемы к другой в качестве средства доказательства неразрешимости. Например, мы прибегали к этому в доказательстве теоремы 6-1.4, показав, что существует тотальная вычислимая функция 財 такая, что %€%о g 以(х)= °; Другими словами, с помощью функции k нам удалось свести каждый случай общей проблемы «х g W^ к некоторому случаю общей проблемы «фх = 0». В настоящей главе мы рассмотрим два способа придания понятию сводимости точного смысла и в каждом из этих вариантов рассмотрим возникающее при этом понятие степени (трудности проблемы).
Имея в виду что любая проблема представляется некоторым множеством чисел, удобнее изучать сводимость множеств, а не самих проблем. Неформальное понятие «множество А сводится к множеству В» можно расшифровать по-разному. Например:
«По разрешающей процедуре для проблемы《%€ В» можно построить разрешающую процедуру для проблемы «xg Д».
«Если нам известно все о множестве 5, то мы можем воспользоваться некоторой механической процедурой (которая использует эту информацию о 8) для решения вопросов, касающихся множества %》.
«Вопросы о множестве 4 не сложнее вопросов о множестве В».
«Степень трудности проблемы «%€ Л» не больше чем степень трудности проблемы《% €8》》.
Оказывается, что придать этому понятию точный смысл можно несколькими неэквивалентными способами. Разница межзу ними заключается в способе использования и объеме ннформацнн о множестве В, которую разрешается использо- вать для решения вопросов о множестве Л. В § 1—3 мы изу- "нм одно из простейших понятий сводимости, называемой Многозначной сводимостью, которое включает ранее встречав- варианты использования этого неформального понятия. В последних разделах мы рассмотрим более общее понятие, Которое носит название сводимости Гьюринга.
Многозначная сводимость
Определение. Множество 4 называется многозначно cet димым (сокращенно т-сводимым) ко множеству В, если сущ ствует тотальная вычислимая функция /, такая, что для все х х^А тогда и только тогда, когда /(х) g В. Мы будем запц сывать это в виде Д ^тВ и будем писать /: Л^тВ, если неой ходимо показать, что именно функция / является той тоталв ной вычислимой функцией, которая показывает, что Л ^mf
Замечание. Термин «многозначная» используется для топ чтобы отличать этот тип сводимости от смежного поняп однозначной сводимости, в котором требуется, чтобы функци) f была инъективна.
В предшествующих главах мы уже во многих случай неявно пользовались понятием m-сводимости. Часто для дока зательства многозначной сводимости требуется применена s-zn-n-теоремы. Рассмотрим несколько примеров.
Примеры
В гл. 6 было показано, что множество К т-сводим к каждому из следующих множеств:
{х|бх = 0} (теорема 6-1.4, цитировалась выше),
{x|cCU7x} (теорема 6-1.6).
Взяв функцию k из доказательства теоремы 6-1.6, м видим, что х£К 061tg тотальна. Отсюда 々: ^ ^m {х|фЛ| тотальна}.
Теорема Райса (теорема 6-1.7) была доказана после Toil как мы показали, gto 庁&巾{% I 丸 € %},где % есть непустое по| множество &1,такое, что f0'
{х\Фх тотальна} &т{х|6х = 0}・
Доказательство. С помощью 5-/п-п-теоремы возьмем тотал ную вычислимую функцию 々,такую, что ФЛ(Х)=»О о фх п| всех х. Тогда 々:{х | Фх тотальна^ m {х| фх = 0}.,
Следующая теорема устанавливает некоторые элементарн свойства т-сводимости.
Теорема. Пусть Л, В, С—множества.
Отношение &加 рефлексивно (т. е. Л ^ тД) “ пгран、 тивно (ли. е. если А ^тВ и В ^ тС, то А ^тС),
Л ^тВ тогда и только тогда, когда A ^mS,
если множество А рекурсивно и S ^тД, то мнсжес^ 8 рекурсивно,
если множество Л рекурсивно и 8*0,闵,то 4《寸 (е) если А р. п. и В ^.тА, то В р. %.,
(i) / &т闷 тогда и только тогда, когда Л =N,
04储 m m mNZN一 л N 0(g)04储 m m mNZN一 л N 0(g)тогда и только тогда, когда 4 = 0, тогда и только тогда, когда Л =# 0, тогда и только тогда, когда Л =#М.
04储 m m m
NZN一 л N 0
(g)
04储 m m m
NZN一 л N 0
(g)
Дока затея ьство.
Рефлексивность, и Л ^т4, где i есть тождественная функция. Транзитивность. Если 尸 А ^тВ и gi В ^гаС, то ясно, что go fi А ^тС.—
Если g! Л <тВ, то х^А ^_g(x)^ В, откуда х^А ^ Og(x)W8; следовательно, g: Л <mS.
Пусть g: 8&m/・ Тогда %“) =,4(目(%)), так что функция св вычислима.
Выберем 匕£В нс@В и определим / соотношением (Ь,если %€ /,
,(%)—[ % если х Д.
Тогда функция / вычислима (поскольку множество Л рекурсивно), и %W4of(x)WB, откуда /: А <тВ.
Пусть g: В ^тД и 4 = Dom (/г), где функция 九 вычислима. Тогда В ==» Dom (h о g) и функция hog вычислима, так что множество В р. п.
(i) Согласно (a), N ^raN. Обратно, предположим, что /: A <mN, т. е. что %W4of(x)€N・ Тогда ясно, что 4=М
(ь)
(ii) есть утверждение, двойственное к (i): 4&m0O (Ь) _ (О —
о /《tNo/ = No4 = 0.
(i) Пусть /: N&m%・ Тогда /1 = Ran (/), так что Л =# 0 (поскольку функция / тотальна). Обратно, пусть Д #= 0. Возьмем некоторое с^А. Тогда, полагая g(х) = с (для всех х), мы имеем g: N ^тА.
) есть утверждение, двойственное к (i): 0 ^m Л фф (Ь) с — (0 —
0NWm4o“0o 什 N. □
С помощью пункта (е) этой теоремы можно получить следующий пример несводимости:
1・4・ Следствие. Множества {х | Фх тотальна} и { х\Фх не тоталь- "а} не являются т-сводимыми к ^.
Доказательство. В силу следствия 7-2.17 ни одно из этих множеств не является р. п., так что остается лишь применить теорему 1.3(e). 口
Исключительное поведение множеств 0, N (теорема 1.3(d), "),(g)) представляет собой часть той цены, которую прихо- "нтся платить за простоту понятия m-сводимости. Другое не
вполне удовлетворительное обстоятельство состоит в том, ч*| множества А н 4 не обязательно взаимно сводятся одно к др) гому (что противоречит нашему интуитивному представлени о том, что проблемы «%€/》и《%年力》должны были бы нмет одинаковую степень трудности). В самом деле, имеет мес[
Следствие. Если А есть р. п. множество, которое не я ляется рекурсивным, то彳玄 1nA и А^тА.
Доказательство. По теореме 1.3 (е) если Л ^ЮЛ, то Л р. 1^ что дает противоречие. Утверждение А ^тА следует из те ремы 1.3(b). □
Следующий результат вновь показывает ключевую рол! которую играет р. п. множество ^.
Теорема. Множество А р. п. тогда и только тогда, Koei
Доказательство. Если А ^ тК, то теорема 1.3(e) говор' нам о том, что множество Л р. п. Обратно, пусть Л—лю& р. п. множество. Определим вычислимую функцию f (х, у) сое ношением
I 1,если %£4,
八,驴一1 не определена, если х^Л.
s-zn-n-теорема дает тотальную вычислимую функцию s(x), 1 кую, что / (х, у) 4 Ф$ (х> (办 Из определения функции j яа что
х^Л <=>Ф5(Х)(s(%)) определенаos(%)€K,
т. е. Л < тК □
Можно считать, что смысл этой теоремы состоит в те что проблема 《%£К» есть самая трудная частично разрег мая проблема.
Упражнения
Покажите, что множество К m-сводимо к каждому следующих множеств:
{х|Фх(х) = 0},
j*|%Wj}・
Покажите, что для любых множеств 4, 8, где 8 卢 выполняется соотношение 4《皿厶 ®В. (Напомним, что 4 0л ={л(a, ь): а€ Л,ьw0}.)
Покажите, что
{х|Фх = 0} <т{х|Фх тотальна и постоянна},
\х\Фх тотальна} &m {%| »* бесконечно}.
Покажите, что ни одно из множеств упр. 3 не является гп-сводимым ни к какому р. п. множеству.
Пусть Л, 8 —р. п. множества, такие, что Л U В = N и АП В^ 0. Докажите, что Л ^тД П В.
Степени
Каждому понятию сводимости соответствует понятие эквивалентности множеств, которое является формализацией нашего интуитивного представления о том, кто два множества или две проблемы имеют одну и ту же степень сложности. В случае m-сводимости мы имеем
Определение. Множества Л и В называются многозначно эквивалентными (сокращенно т-эквивалентними}, если А ^тВ и В^тА. Этот факт записывается в виде А ^тВ.
Использование в этом определении слова эквивалентный оправдывается следующей теоремой:
Теорема. Отношение =т является опноьиением эквивалентности. (См. § 3 введения, где имеется определение.)
Доказательство. Рефлексивность и транзитивность следуют немедленно из теоремы 1.3 (а); симметричность очевидна из определения. □
Примеры
Пусть с—произвольное число. Тогда нз примера 1.2(1Ь) и теоремы 1.6 следует, что {х\с^ Wx} = mK.
Для любого рекурсивного множества 4, отличного от 0 “ N, из теоремы 1.3(d) следует, что А ^ тА.
Если множество А р. п., но не рекурсивно, то А^тА (следствие 1.5).
{х|фх = 0} = т{х|Фх тотальна}. В одну сторону утверждение дается в упр. 1.2(4). Чтобы получить обратное утверждение, воспользуемся s-/n-n-теоремой, которая дает тотальную вычислимую функцию 论,такую, что
J 0,если 弘®) = 0,
6(X)(У)а ( не определена иначе.
Тогда ясно, что фх = 0 фф фА (х) тотальна.
Для любого множества А имеется класс множеств dm (А), эквивалентных Л относительно отношения =т: ,
dm(A) = {BIA^mB}.
Все эти множества можно считать имеющими ту же степень сложности (относительно отношения ^т), что и множество Д^ и поэтому dm(4) называют т-степенью А.
Определение, т-степенью называется класс эквивалентности множеств относительно отношения ^т, т. е. любой клас^ множеств, имеющий вид 4n (4) для некоторого множества А
Степени принято обозначать жирными строчными латинскими буквами а;,с”. Следует четко понимать, что, хоН мы и пользуемся строчными буквами, они обозначают множен ства множеств. Поэтому имеет смысл запись Л ^а, где а еси степень, а Л ——множество, хотя на первый взгляд она и кат жется несколько странной. 」
Отношение ^ m для множеств индуцирует отношение частич^ ной упорядоченности (определение см. § 3 введения) для ш-ст&' пеней, которое тоже обозначается ^т и определяется следую* щим образом: '
Определение. Пусть о, b—/и-степени.
Q《m力,если существуют А^а и В Wb, такие, чт
а < т&, если а ^т&, но а^Ь.
Замечание. Из определения отношения ^т немедленно еле; дует, что Q《mb тогда и только тогда, когда А ^тВ дл, всех А^а, В ^Ь. 才
Теорема. Отношение ^ m есть отношение частичм^ упорядоченности на множестве т-степеней.
Доказательство. Из теоремы (1.3) (а) мы сразу получаелл что а&т。(рефлексивность) и что из а ^ т&,力 Wm。следуй 。& mC (транзитивность). Предположим теперь, что а ^т& 4 Ь^та. Нам необходимо показать, что а = Ь. Пусть /々q , В£ 方.Тогда по определению Д ^ тВ и В ^тЛ, так чт Л ^тВ, откуда а = Ь. □
Рекурсивной т-степенью называется любая m-степень, cf держащая некоторое рекурсивное множество. Аналогично р. Д т-степенью называется m-степень, содержащая некоторое р. О
D Хотя мы иногда и пользовались символом а для обозначения » бора из п чисел (〃[,..., а〃), никакого недоразумения не возникнет,叫 как разница сразу видна из контекста.
множество. На этом языке отдельные пункты теоремы 1.3 и 1.6 выглядят следующим образом:
Теорема, (а) {0} “ {N} суть т-степени, которые мы будем обозначать own соответственно; о u п суть рекурсивные т-степени.
Существует еще одна рекурсивная т-степень, обозначаемая через 0т, которая состоит из всех рекурсивных множеств, за исключением 0 〃 М Кроме того, 0т ^ та для любой т-степени а, отличной от о, п.
Для любой т-степени а выполняется соотношение О < т« (при условии. ЧШО Л ^ П)U П & 由@ (пРи JCAOBUU, ЧГПО ,]千 о).
Любая р. п. т-степень состоит только из р. п. множеств.
Если а^.^ и b есть р. п. т-степень, то а есть тоже р. п. т-степень.
Существует максимальная р. п. т-степень. а именно dg (К), которую обозначают через 0^.
Доказател ьство
Следует из теоремы 1.3 (f);
из теоремы 1.3 (с), (d);
из теоремы 1.3 (g);
из теоремы 1.3 (е);
из теоремы 1.3 (е);
из теоремы 1.6. □
Структура множества m-степеней, даваемая теоремой 2.7, изображена на рис. 9а. (На этой схеме степень а располагается ниже степени &, если мы хотим показать, что a ^mft ) Несколько ниже мы увидим, что (как и показано на рисунке) существуют р. п. m-степени, отличные от 0т и 0^.
Структура множества m-степеней с учетом имеющегося в нем отношения частичной упорядоченности, изучена довольно подробно. Следующая теорема показывает, что эта структура представляет собой то, что называют верхней полуреше/пкой.
Теорема. Для любой пары т-степеней Q, Ь существует 〃。крайней мере одна верхняя грань, /и. е, существует т-сте- 九е”ь с, такая, что
а&щС “ b《mC (с есть верхняя грань).
) c&m любая другая верхняя грань а, Ь.
Дока зашел ьство. Выберем А^а, В ^ & и положим С«Л ф В, т. е.
С={2%|х£4}и{2% + 1 [%€ 8}.
Тогда %€%О2%£С, так что А ^тС и х^В^2х+\ ^t так что 8&тС・ Таким образом, полагая r = dm(C), мы пол чаем, что с есть верхняя грань Q, Ь.
о пРис. 9а. т-степени.о пРис. 9а. т-степени.
о п
Рис. 9а. т-степени.
о п
Рис. 9а. т-степени.
Пусть теперь d есть любая m-степень, такая, что а&щ: и b^md. Выберем множество D^d и предположим, что 4&т。н g: В*щП Тогда мы имеемПусть теперь d есть любая m-степень, такая, что а&щ: и b^md. Выберем множество D^d и предположим, что 4&т。н g: В*щП Тогда мы имеем九(%)=九(%)=если 尤 четно,если х нечетно,если 尤 четно,если х нечетно,
Пусть теперь d есть любая m-степень, такая, что а&щ: и b^md. Выберем множество D^d и предположим, что 4&т。н g: В*щП Тогда мы имеем
Пусть теперь d есть любая m-степень, такая, что а&щ: и b^md. Выберем множество D^d и предположим, что 4&т。н g: В*щП Тогда мы имеем
九(%)=
九(%)=
если 尤 четно,
если х нечетно,
если 尤 четно,
если х нечетно,
х^Со 卜 четно &-^х£ 4)или (% нечетно & у (х— 1) € 8) О (х четно & / 传 х) € Q)или 卜 нечетно
&g(4"d))c)・
Таким образом, полагая
мы получаем ft: С ^mD, откуда c^md. □
Ясно, что для любой пары m-степеней q, b наименьиь верхняя грань с определена однозначно. Кроме того, лег убедиться в том, что если а, b р. п., то р. п. и т-степень. (см. ниже упр. 2.9(5)).,
Изучая структуру m-степеней, естественно отдельно 哨 чить структуру р. п. m-степеней. (Сюда входят, разумеет^
рекурсивные m-степени Om, о, п.) Из теоремы 2.7 следуют (как показано на рис. 9а) такие основные факты о р. п. ш-степенях:
если не учитывать исключительные m-степени о, п, то существует минимальная р. п. m-степень 0т (на самом деле От минимальна среди всех т-степеней);
р. п. т-степени образуют начальный отрезок т-степе- ней, т. е. любая степень, лежащая ниже некоторой р. п. m-степени, тоже р. п.
существует максимальная р. п. m-степень, а именно 0^. Кроме того, легко убедиться в том, что хотя множество всех ni-степеней несчетно, лишь счетное число их является р. п. (упр. 2.9(6) ниже).
Исследования последних двадцати пяти лет показали, что структура р. п. m-степеней крайне сложна. В рамках этой книги можно лишь показать, что она не является совершенно простой, чем мы и займемся в следующем разделе.
Упражнения
Покажите, что следующие множества т-эквивалентны:
(а) {屮 WEJ,
(b)圧也(х) = 0}・
(а) Покажите, что Д ^тЛ ® N для любого множества Л,
(Ь) пусть В—непустое рекурсивное множество. Покажите, что А ^тА0 В для любого Л при условии, что 4*N・ —
(Ср. примеры 2.3 (2, 3).) Верно ли, что если А=тА9 то множество А рекурсивно? (См. ниже упр. 5d).
Покажите, что следующие множества принадлежат одной л той же m-степейи:
{х|фх = 0},
{х\Фх тотальна и постоянна},
{х I Wx бесконечно}.
Пусть а, Ь есть т-степени.
Покажите, что наименьшая верхняя грань Q, Ь опре- Аслена однозначно; обозначим ее через a U 6.
Покажите, что если а ^т&, то а и & = &.
Покажите, что если а, b р. п., то а U 6 тоже р. п.
Пусть А^а и а* обозначает dm(Л). (Проверьте, что а* не зависит от выбора 4£。・)Покажите, что (a U Q*)* = a U"
(а) Покажите, что любая m-степень а счетна (т. е. что существует счетный набор множеств А € л).
) Покажите, что система m-степеней несчетна.
) Покажите, что система р. п. m-степеней счетна.
m-полные р. п. множества
Как мы видели, 0^ (m-степень К) максимальна среди всея р. п. m-степеней. В этом случае говорят, что множество 月 есть т-полное р. п. множество или просто т^полное множество 1}д (Соответствующее понятие имеется и для всех прочих типо^ сводимости.)
Определение. Множество является т-полным, если ond р. п. и если любое другое р. п. множество m-сводится к нему.
Из теоремы 1.6. немедленно получается
Теорема (а) Множество К является т-полным,
Л является т-полным тогда и только тогда, когда* А ^m^ тогда и только тогда, когда А р. п. и ^ ^ тЛ,
0二 состоит в точности из всех т-полных множеств.
Применяя эту теорему, мы получаем следующие:
Примеры
Следующие множества являются т-полными.
{x\c^Wx} (пример 1.2(1Ь)),
любое нетривиальное р. п. множество вида {%|@工€ 毋}, где 启三 g] (доказательства теорем 7-3.4 и 3.8 показывают, что К&щ такое множество),
Упр. 1.7(1).Упр. 1.7(1).⑹{%1<М%) = 0},
Упр. 1.7(1).
Упр. 1.7(1).
(d) {屮 W J}
Читатель, возможно, уже понял, что понятие т-сводимости неявным образом присутствовало в формулировке теоремы 7-3.2, из которой немедленно следует
Теорема. Любое т-полное множество креативно.
Доказательство. Если множество Д m-полно, то К ^тЛ, так что «&т瓦 и по теореме 7-3.2 множество Л продуктивно. □
Очень приятно узнать, что утверждение, обратное к этой теореме, тоже справедливо, что дает точное описание системы m-полных множеств.
Теорема (Майхилл). Креативные множества т-полны.
Доказательство ее нам придется отложить до гл. 11, где появится вторая теорема о рекурсии, необходимая для прове--
丄)Понятие m-полных множеств можно ввести и для классов, отличающихся от класса р. п. множеств. В этом случае необходимо явно ука- вывагь наличие свойства р. п.
дения всех рассуждений. Заметим тем не менее, что для креативных множеств индексов этот факт уже установлен в примере 3.3(b).
В качестве немедленного следствия теоремы 3.4 мы можем, пользуясь простыми множествами, показать, что 0т и 0^ не являются единственными р. п. степенями.
Следствие (к теореме 3.4). Простые множества не являются т-полными, так что если а есть т-степень произвольного простого множества, то 0m < m а < m 0^.
Доказательство. Простые множества были определены так, чтобы они не были ни рекурсивными, ни креативными. □
Это следствие оправдывает включение каких-то степеней между 0т и 0] на рис. 9а; но оно еще не подтверждает того свойства этого рисунка, что существует более одной нерекурсивной р. п. m-степени, отличающейся от 0^. В действительности существует бесконечно много таких степеней, но доказывать это мы здесь не будем.
Дальнейшее исследование структуры m-степеней с точки зрения отношения их частичной упорядоченности 《巾 выходит за рамки настоящей книги. Эта структура является, как уже отмечалось, очень сложной, и многое о ней можно узнать из результатов о сложной природе степеней Тьюринга, которые мы рассмогрим в следующих разделах.
Относительная вычислимость
В § 1 мы видели, что понятие m-сводимости имеет два довольно неестественных свойства: исключ ительное поведение множеств 0 и N и тот факт, что не всегда выполняется соотношение Л = тА. Они проистекают из ограниченной природы m-сводимости: А ^тВ, только если каждый вопрос «х g Л?» можно решить, ответив на некоторый единственный заранее указанный вопрос о В заранее указанным образом. Идея сводимости Тьюринга, которую мы определим в § 5, состоит в том, чтобы решить вопрос о «х А» механическим путем, ответив на несколько вопросов, касающихся В, природа и (конечное) число которых не обязательно известны заранее. Зто" идее можно придать точный смысл в терминах понятия относительной вычислимости, рассмотрением которого мы и наймемся в этом разделе.
Пусть %—произвольная одноместная тотальная функция. Неформально мы говорим, что функция f вычислима относительно % или просто ^вычислима, если функцию / можно вы- "нелнть с помощью алгоритма, эффективного в обычном смысле
слова, за исключением того, что время от времени в ход^ вычислений нам разрешается брать значения функции %. Такоц алгоритм называется ^алгоритмом. %・алгорнтм можно пред^ ставлять себе как алгоритм, связанный с некоторым внешникб источником, или оракулом, который может по запросам выдат^ значения функции %, ^-алгоритм работает чисто механически^ и значение х(〃) запрашивается у оракула только согласно пред^ писаниям алгоритма.
Теперь мы можем дать точное определение понятия отЗ сительной вычислимости, пользуясь видоизмененным вариантом нашей МНР, который называется «Машиной с неограниченными регистрами и оракулом», или сокращенно МНРО.
Определение. МНРО подобна МНР во всех отношениях- за исключением того, что она может исполнять пятый тн« команд —команды О (и) для любого 〃》1・ Команда О(п) на】 зывается командой обращения к оракулу.
Полученное состояниеT广2△Полученное состояниеT广2△x(i)
Полученное состояние
T广2△
Полученное состояние
T广2△
Рис. 9b.
Чтобы МНРО могла выполнить такие команды, она долж! быть соединена с некоторым оракулом, который, будучи г прошен, выдает значения некоторой заданной функции В таком случае мы будем говорить, что МНРО имеет в сва оракуле функцию %. При этом функция % не считается часИ самой МНРО.
По команде обращения к оракулу МНРО делает следуюпй если в оракуле имеется функция 斯 то гп (содержимое ре|
стр a R“) заменяется на х (г„). На блок-схеме это обозначается как гп : = % (%) или x(U — R〃・
Машину МНРО, в оракуле которой находится функция х и которая выполняет команду О (п), можно представлять себе так, как она изображена на рис. 9Ь.
Как и ранее, программой называется конечная последовательность команд. Любую программу МНРО выполняет точно так же, как и МНР, с одним единственным дополнительным условием: после выполнения команды обращения к оракулу 〃 в Р следующей командой является команда /л+1.
Подчеркнем, что МНРО-программа Р не содержит никакой конкретной функции %. Поэтому смысл программы Р меняется в зависимости от того, какая функция заключена в оракуле. Однако вычисление Р может быть проведено только в том случае, если задана некоторая конкретная функция %. В связи (、этим мы будем писать 产 для обозначения программы Р, работающей в той ситуации, когда в оракуле заключена функция х- Таким образом, мы пишем 夕(%, ..., ая) для обозначения вычисления Р при условии, что в оракуле находится функция X,а начальная конфигурация есть %, аа, ..., %, О, 0, ... . Кроме того, P%(Q)Jb обозначает, что вычисление Рх (а) останавливается с числом b в регистре R「
Теперь мы можем сформулировать следующие определения (которые похожи на определение 1-3.1)
Определение. Пусть у—одноместная тотальная функция, a f—частичная функция из N〃 в N.
Пусть Р есть МНРО-программа. Тогда говорят, что Р МНкО-вычисляет f относительно х (или что f ^-вычисляется с помощью Р), если для любых。£№ и b^N,
P%(Q)Jb тогда и только тогда, когда /(a)4b.
Функция / называется МНРО-вычислимой относительно у (или просто ^-вычислимой), если существует МНРО-программа, которая МНРО-вычисляет / относительно %.
Через @х мы будем обозначать класс всех у・выиислнмнх Функций.
Теперь мы уже в состоянии определить понятие сводимости по Тьюрингу. Однако, прежде чем сделать это, мы сначала дадим небольшой обзор ряда результатов теории относительной вычислимости.
Большая часть результатов и технических средств обычной теории вычислимости имеют аналогии в теории относительной вычислимости. Поэтому в последующих теоремах мы во мно・ 「нх случаях даем лишь набросок доказательства или же отсылаем читателя к обычному варианту соответствующей тео-
ремы. Всюду в этом разделе х обозначает тотальную одномест-г ную функцию.
Теорема
%2,
(Ь)名三€%,
если функция х вычислима, то @ = @工,
класс 委х замкнут относительно операций подстановки^- рекурсии и минимизации t
если 屮 есть тотальная одноместная функция, которая, является ^вычислимой, то ^^ 三 g%.
Доказательство.
Рассмотрите МНРО-программу 0(1).
Любая МНР-программа является МНРО-программой.
С учетом (Ь) нам необходимо только показать, что 名х 三 g. Предположим, что / х-вычислима и что% вычислима. Не* формально любое значение / может быть вычислено следующим образам: применим для / наш х-алгоритм, и всякий раз, когда запрашивается значение %, будем просто вычислять его, поль-* зуясь алгоритмом для %. Эта процедура эффективна, и, сле« довательно, согласно тезису Чёрча, функция / вычислим^ (Формальное доказательство этого результата мы оставляв* читателю; см. упр. 4.10 (3).)
Доказательства аналогичны доказательствам теоре 2-3.1, 2-4.4 и 2-5.2.
Доказательство аналогично пункту (с) (который на самом, деле является частным случаем (е)).
Другие варианты изложения теории относител^ ной вычислимости. Любой другой подход к теории вычис лимости можно, несколько видоизменив его, приспособить дл получения соответствующего понятия относительной вычисли мости. При этом можно доказать относительный вариант фув даментального результата (теорема 3-1.1), что даст возможное! сформулировать для теории относительной вычислимости тезМ Чёрча.
Здесь мы отметим лишь относительный вариант понят马 частично рекурсивной функции:
Определение. Класс 例х ^-частично рекурсивных функцШ есть наименьший класс функций, удовлетворяющий следующи условиям:
(а) базисные функции принадлежат W,
(Ь)%М,上
(с)例 замкнут относительно операций подстановки, реку! сии и минимизации.
Вместо слов ^-частично рекурсивная говорят также ^частично рекурсивна относительно %》•
Понятия ^-рекурсивной (〃〃〃 рекурсивной относительно х) функции и %-примитивно рекурсивной (или примитивно рекурсивной относительно %) функции определяются очевидным образом.
Теореме 3-2.2 соответствует (доказываемая точно также)
Теорема. Для любого % имеет место 州=©.
Нумерация программ 我 функций. МНРО-программы можно эффективно перенумеровать или закодировать с помощью метода, подобного использованному в гл. 4 для МНР-программ. Предположим, что это уже проделано и что у нас имеется некоторое фиксированное эффективное перечисление (без повторений) всех МНРО-программ1} Qo, Qn Q2, ... . Введем следующие обозначения:
6方"есть п-местная функция, %-вычисляемая с помощью Q^, Ф% = Ф论\
呼方=Dom (寓,
爲= Ran%.
Имеется следующий относительный аналог s-/n-n-теоремы (4-4.3) с идентичным доказательством:
Теорема (относительная s-zn-n-теорема). Для любых /и, п > 1 существует тотальная вычислимая (т+ \\местная функция s;: (% х), такая, что для любой функции х
6"m+公(, У) 4礙:…)3).
Замечание. Функция $片 здесь, конечно, отличается от функции, носящей это же название, в теореме 4-4.3. Заметим, однако, что и здесь функция s^ является по-прежнему вычислимой (а не просто х-вычислимой) и не зависит от %.
Универсальные программы для относительной 8bs ^ислимости. Перевод на язык теории относительной выч и- слимости доказательства теоремы 5-1.2 немедленно дает следующий результат:
4・7. Теорема. Для любого п универсальная функция 屮》〃 для п-местных ^-вычислимых функций, задаваемая соотношением W% " (е, х) 4。声 ” (х), является ^-вычислимой.
Замечание. Внимательное изучение полного формально! доказательства теоремы 5-1.2 показывает, что существует 国 зависящая от % МНРО-программа QJ>, которая %・вычис〃я@ 屮& " для любого 兀
^-рекурсивные и х-р. 〃・ множества. Относительны варианты понятий рекурсивного и р. п. множества даются сл& дующими определениями:
4・8・ Определение. Пусть А—множество.
А называется ^рекурсивным (или рекурсивным относК тельно х), если функция сА х-вычислима,
Л называется %・р. п. (или р.九.относительно %), есл частичная характеристическая функция
J 1,если х^А.
]не определена, если х Л является х-вычислимой.
Следующий набор результатов о ^-рекурсивных и %・р. d множествах доказывается путем добавления значка %・ в сосу ветствующие места доказательств аналогичных результате из гл. 7.
Теорема.
Множество А ^рекурсивно тогда и только тогд^ когда А и А х-р. п.
Для любого множества Л следующие условия эквиА лентны:1
4 х-р. и.,
Л = ^ для некоторого т,
4 = £加 для некоторого т,
4 = 0 или А является множеством значений некот, рой тотальной ^-вычислимой функции,
(V)для некоторого ^разрешимого предиката R (х, у)x^A<^3yR{x.y)
(R называется ^-разрешимым, если его характеристичес^ функция ^-вычислима}.
Пусть Кх = {*|%£й^}・ Тогда множество /О %-р. * но не ^-рекурсивно.
Вычислимость относительно некоторого мно^ ства. Для любого множества А вычислимость относительна (или просто А-вычислимость) определяется как вычислимо^ относительно функции сА (характеристической функции При этом мы пишем
РЛ вместо РСА (где Р есть МНРО-программа),
gJ вместо €%,
梯 вместо Ф^,
W^ вместо 吟',
Е^ вместо 碌,
КА вместо К°а,
Л-рекурсивный вместо с^-рекурсивный,
Л-р. п. вместо с^-р. п. и т. д.
В следующем разделе мы определим сводимость по Тьюрингу в терминах вычислимости относительно некоторого множества. Коротко говоря, основные идеи, изложенные в этой главе, можно суммировать следующим образом: Д-вычислимость есть вычислимость для того, кому известно все о множестве Л. Чуть более точно, это вычислимость для каждого, кто может ответить на любой вопрос вида 《%€厶?》・ При этом знания «бесконечных» фактов об Л не требуется (например, не требуется уметь отвечать на вопрос о том, имеет ли Л бесконечно много четных элементов).
Упражнения
Пусть х,屮一тотальные одноместные функции, и пусть функция ф? тотальна. Верно ли, что функция </>, обязательно является тотальной?
Пусть Xi, Ха» •••, Хл—тотальные одноместные функции. Обозначим через 例厶'厶 办 наименьший класс функций, содержащий базисные функции, функции хп ..., х* и замкнутый относительно операций подстановки, рекурсии и минимизации. Дайте определение множества €厶“ функций, вычислимых относительно 厶,...,хл, для которого $%办=例厶”. (Указание. Определите машину с й оракулами или найдите ()工ну одноместную функцию у, такую, что 51力%论=夕%.)
Дайте полное формальное доказательство теоремы 4.3 (с): если функция х вычислима, то @ = @4
Покажите, что существует тотальная вычислимая функция k (не зависящая от х)» такая, что W^(at ь> = ^а^ ^ для всех индексов а, Ь.
Докажите теорему 4.9.
Пусть 4 — произвольное множество.
Покажите, что для любого р. п. множества В существует индекс е, такой, что 8 =吟.
Покажите, что если множество Л рекурсивно, то 吟 Р- п. для всех е.
Покажите, что если А рекурсивно, то К" р. п., но g рекурсивно.
Пусть Л, В, С—множества. Докажите, что
если А В-рекурсивно и В С-рекурсивно, то А С-ре- курсивно,
если Л В-p. п. и fi С-рекурсивно, то Л С-р. п.,
если А В-рекурсивно и В С-р. п., то / не обязательно С-р. п.
(Относительный вариант теоремы 1.6) Пусть Л ——произвольное множество. Покажите, что множество В является Д-р. п. о В《„Д'.
Покажите, что существует единственное число d, такое, что КА = W^ для всех множеств А.
(а) Будем говорить, что множество А является ^простым^ если (i) Л есть %・р.н., (ii)才 бесконечно, (iii) А не содержит бесконечных %・р. п. подмножеств. Покажите, что существует Х-простое множество.
Дайте определение %-креативного множества. Покажите/ что %-простое множество не является %・креатнвным.
Сводимость по Тьюрингу и степени Тьюринга
Пользуясь понятием относительной вычислимости, сформулируем следующие определения:
Определения
Множество Л называется сводимым по Гьюрингу (или просто Т-сводимым) к множеству В, если А В-рекурсивно (или, что эквивалентно, если функция сА В-вычислима). Это записывают в виде А & 1 В.
Множества Л и В называются эквивалентными по Тью・ рингу (или Т-эквивалентными), если 4 & 丁8 и В & ТД. (Исполь* зование слова «эквивалентны» будет обосновано ниже в теореме 5.2(b).) Это записывается в виде Л = ТВ.
Рассмотрим неформальный смысл сводимости по Тьюрингу, Предположим, что Л ^ ТВ и что МНРО-программа Р вычис* ляет сА относительно В. Тогда для любого х Рв(х) сходится I
Рв (х) I 1, если х W 力,рз(%) I 0, если % @ 力.
В каждом завершенном вычислении рв(х) имелось конечно^ число обращений к оракулу за значениями св (и) функции согласно программе Р и ходу вычисления. Эти запросы равнсЯ сильны конечному числу вопросов вида «л W В?». Тем самы中 для любого % вопрос 《%€力?》можно решить механический
п\тем, ответив на конечное число вопросов о множестве В. Поэтому понятие сводимости по Тьюрингу согласуется с неформальным представлением о сводимости, обсуждавшимся нами в начале § 4.
Следующая теорема дает некоторые основные свойства отношении т и ^^т・
Теорема.
a)b)od)eQg)/IV ( /fva)b)od)eQg)/IV ( /fvотношение &т рефлексивно и транзитивно, 三т есть отношение эквивалентности, если Л ^ тВ, то А ^ ТВ, А = ТА для всех Л, если Л рекурсивно, то 4&田 для всех В,
a)b)od)eQg)/IV ( /fv
a)b)od)eQg)/IV ( /fv
если А рекурсивно 〃 8 W, то В рекурсивно, если А р. п., то А & К
Доказательство, Пункты (а) и (Ь) немедленно следуют из из того, что А ^^В <^^А ^^в (по теореме 4.3 (а), (е)), откуда А 三 тВ О ^А = &в.
Пусть /: А ^ тВ, и пусть Р есть МНР-программа в стандартном виде, вычисляющая /・ Тогда, как легко видеть, МНРО-программа Р, 0(1) будет В-вычислять с<.
Так как cj = sg о сА, множество А является Л-рекурсив- ным (как результат подстановки). Отсюда 4&т4・ Аналогично получается 4 & 丁4・
По теореме 4.3(b).
По теореме (4.3) (с).
Следует из пункта (с) и теоремы 1.6. □
Замечания
Из пунктов (d), (е) и (f) этой теоремы видно, что понятие Т-сводимости не имеет недостатков /и-сводимости. Отсюда, в частности, следует, что эти два понятия различны.
Пункт (g) теоремы показывает, что множество К является Т полным (р. п.) множеством в смысле следующего определения:
5・3. Определение. Множество Л называется Т-полным, если Л у.【】.и В ^ ТЛ для любого р. п. множества В.
Степенью Гьюринга называется любой класс эквивалентности множеств относительно отношения =т. Как и ранее, мы рассматриваем степень как набор множеств одной и той же степени сложности.
Определения
Пусть Л—некоторое множество. Класс эквивалентности 山(4) = {8]8三]/
называется степенью Гьюринга 4, что сокращенно записываю! tT-степень Л».
Любая Т-степень, содержащая рекурсивное множество^ называется рекурсивной Т-степенью.
Любая Т-степень, содержащая р. п. множество, назь^ вается р. п. Т-степенью.
Понятия сводимости по Тьюрингу и степени Тьюринг| обычно считают основными среди других подобных понятий Поэтому для обозначения сводимости по Тьюрингу часто пом з уюте я просто словом «сводимый». Аналогично степени Тьюр инг часто называют просто степенями, или степенями неразрешим мости. В оставшейся части этой главы мы тоже будем пользе? ваться подобной терминологией. Как и прежде, буквами а, 6, и т. д. обозначаются степени.1
Как и &「отношение &巾 на множествах индуцирует othoJ шение частичной упорядоченности на степенях.
Определение. Пусть а, Ь — степени.
а&Ь, если для некоторых (или, что эквивалентно, дл1 всех) А^а и 3£Ь, 4&毋、
а <Ь, если。忘6 и афЬ.
(Проверку того, что < является отношением частичной ynopd доченности на степенях, мы оставляем читателю в качеста простого упражнения (ср. теорему 2.6).)
Теорема 5.2 может быть теперь следующим образом пер@ формулирована в терминах степеней.
Теорема, (а) Существует единственная рекурсивная ст пень, обозначаемая 0; 0 состоит из всех рекурсивных множесп и является единственной минимальной степенью.
Пусть О' обозначает степень К; тогда 0 < О' 〃 О' ес/Д максимальная степень среди всех р. п. степеней.
Для любых множеств 4, В
⑴ dm(4)edT (Д),
если dm(A)^mdm(B)i 書(4)a由(8).
Доказател ьст во
Немедленно следует из теорем 5.2 (е) и (f).
Из п. (а) вытекает, что 0 V。' и 0 =/= 0\ так как К 修 рекурсивно. По теореме 5.2(g) если а — произвольная р. степень, то Q&0'.
Немедленно следует из теоремы 5.2 (с).
Имеются два фундаментальных факта, касающихся стр^ туры степеней Тьюринга относительно отношения частичн^ упорядочения.:
Операция скачка. Как мы видели, переход от рекурсивных множеств к Т-полным множествам (таким, как К) сопровождается определенным увеличением степени сложности, что на языке Т-степеней записывается в виде 0 < 0\ Сейчас мы покажем, что для любой степени а существует переход или скачок к более высокой степени а', которая называется скачком а. Она определяется с помощью множества КА ^{х\х^ W^} (для любого множества 』€а), но сначала нам необходимо сформулировать следующую теорему.
Теорема. Пусть 4, В—любые множества.
(i) К* есть Д-р. п.,
если В Л-р. п., то В & тК'.
Если А рекурсивно, то К"三 тК.
4 < тК4
(i) Если А &тВ, то КА &тК%
если 力三 тВ, то К"三 тЛА
Доказательство,
(i) вытекает из теоремы 4.9(с); для доказательства (ii) заметим, что непосредственное обобщение на относительный случай теоремы 1.6 (с помощью относительного варианта s-tn-n- теоремы) показывает, что если В является Л-р. п., то В ^тКА.
Ясно, что К&тК", поскольку множество К является Л-р. п. для любого А. С другой стороны, если Л рекурсивно, то Л-вычислимая частичная характеристическая функция К" на самом деле вычислима (теорема 4.3 (с)), откуда КА р. п. Таким образом, K"《iK.
Тот факт, что Л ^ т^л, следует из (a) (ii), а 4 展 丁/<" дается теоремой 4.9(c).
(i) Если 力 &т8, то, поскольку КА является Л-р. п., оно будет и В-p. п. (см. упр. 4.10(7Ь)). Отсюда К" &】К® в силу (a) (ii).
следует немедленно из (i). □
Пункт (а) этой теоремы говорит о том, что КА можно было бы назвать Т-полными А-p. п. множеством. Иногда его называют пополнением Д, но обычно пользуются термином скачок / и обозначают его через Л \
Заметим, что для любого Л ^ 0 степень К" есть О' (в силу пункта (Ь) предыдущей теоремы). Поэтому мы можем дать следующее определение операции скачка на множестве степеней. 5・8・ Определение. Для любой степени а скачком а (обозна- □ается о') называют степень множества ^л для любого А^а. Замечания.
Теорема 5.7(d) говорит о том, что это определение корРектно, поскольку степень К< одна и та же для всех А^а.
В силу теоремы 5.7 (Ь) новое определение О' здеоь к* скачка 0 согласуется с данным ранее определением как ст пени К (теорема 5.6).
Немедленно выписываются следующие основные свойств! этой операции.
Теорема. Для любых степеней а, b
а < а',
если。&仇 то а'&&',
ОУ а',
если В€», А ^а и множество В является Л-р. п., «
Доказательство.
По теореме 5.7 (с).
По теореме 5.7 (d).
По теореме 5.9(Ь), учитывая, что 0&Q.
По теореме 5.7 (а). □
Вторым фундаментальным фактом, касающимся структуры степеней Тьюринга, является то обстоятельство, что они так *$ как и m-степени, образуют верхнюю полурешетку.
Теорема. Любые степени q, b имеют единственную н聲 именьшую верхнюю грань.
Доказательство. Укажем лишь, что наименьшей вер хне! гранью а, Ь является (как и для m-степеней) степень А^1 для любых А ^а, В€», и оставим подробное доказательств читателю в качестве упражнения, поскольку все рассужденщ аналогичны тем, которыми мы пользовались при доказательств^ теоремы 2.8. □
Наименьшая верхняя грань степеней о, b обозначаете! aUb. Из построения видно, что если а, b р. п., то р. ги и степень QUb.1
Структура степеней Тьюринга относительно имеющегося н них отношения частичной упорядоченности и операций ' и I изучалась весьма активно, но еще ни в коей мере не понят? полностью. Особое внимание уделялось структуре р. п. степ© ней (которые не образуют начального отрезка всех степеней Тьюринга в отличие от того, что имело место для р. п. т-ст< пеней; см. ниже теорему 5.18). Сейчас известно, что структур Т-степеней и р. п. Т-степеней исключительно богата и сложна Тем не менее длительное время оставался нерешенным следуй щий легко формулируемый вопрос:
Проблема Поста. Существует ли р. п. степень а, такай что 0 < а < О'?
Пост сформулировал эту проблему в 1944 году. Простые множества, тоже изобретенные Постом, не дают ответа на вопрос (в отличие от m-степеней, следствие 3.6). Одна из причин этого заключена в следующем результате, принадлежащем Деккеру, который, в частности, показывает, что О' содержит простое множество.
Теорема. Любая нерекурсивная р. п. степень содержит простое множество.
Доказательство (набросок). Пусть В — любое р. п. множество, не являющееся рекурсивным, и пусть 8 = Ran(f), где /—тотальная инъективная вычислимая функция (упр. 7-2.18 (7)). Зададим множество А условием
А = {х\Эу(у> х и /(//)<〃%))}•
В упр. 7-4.4 (2) имеется указание о том, как показать, что множество А является простым. Доказательство того, что Д = ТВ, мы оставляем читателю в качестве упражнения (см. ниже упр. 5.21 (6)). □
Эта теорема подчеркивает разницу между Т-степенями и in-степенями, показывая, что 6' (в отличие от О】) содержит много р. п. множеств, которые не являются т-полными.
Серьезного достижения в деле решения проблемы Поста удалось добиться Фридбергу и Мучнику в 1956 году, когда они независимо друг от друга доказали следующую теорему:
Теорема. Существуют р. п. множества 4, В, такие, что 4 正тЗ “ 8&т%・ Отсюда, беря в качестве а и 6 соответственно dT (Л) и dT (В), получаем, что а^Ь и Ь^а и, следовательно, 0 < а < 0х и 0 < 6 < 0\
(Степени а, Ь, для которых выполняются соотношения 。正6 и &壬。называются несравнимыми степенями. Этот факт записывается следующим образом: а|Ь.)
Доказательство теоремы Фридберга — Мучника, которое существенно выходит за рамки этой книги, читатель может найти в книгах Роджерса [1967] и Шёнфилда [1971]. Фридберг и Мучник использовали новую технику, которая носит название метода приоритетов и которая дала возможность открыть сложную природу структуры степеней Тьюринга.
Имеется много результатов, касающихся степеней, которые, подобно теореме Фридберга—Мучника, легко сформулировать, но трудно доказать. Для иллюстрации сложности системы Т-степеней приведем некоторые из них.
Теорема. Для любой р. п. степени о, такой, что 0'〉。>0壮 существует р. п, степень Ь, такая, что Ь\а.
Теорема плотности Сакса. Для любых р, п. степеней а < У существует р. п. степень с, для которой а <; с < Ь.
Теорема Сакса о разбиении. Для любой р. п. степени а > 0 существуют р. /г. степени Ь, с, такие, что & < а, с < а и a = b(jc (откуда Ь|с)・
Теорема (Лахлан, Ейтс)
Существуют р. п. степени Q, 6 > 0, такие, что 0 есть наибольшая нижняя грань для а и Ь.
Существуют р. /г. степени о, Ь, не имеющие наибольшей нижней грани (ни среди всех степеней, ни среди р. п. сте* пеней).
Обращаясь к не р. п. степеням, отметим следующий неожиданный результат.
Теорема (Шёнфилд). Существует не р. п. степень а < 0\
Минимальной степенью называется степень m > 0, такая, что не существует степени а, для которой 0 < а < т. По тео-реме плотности Сакса минимальной р. п. степени не существует. Тем не менее Спектор доказал следующую теорему.
Теорема. Существует минимальная степень.
За доказательствами этих и других касающихся степеней: результатов мы вновь отсылаем читателя к книгам Роджерса и Шёнфилда. Более поздние результаты, которые не вошли в эти книги, имеются в очень понятном обзоре Симпсона [1977].^
Т-степени и т^степени. Зачастую информацию о ш-сте-, пенях можно почти немедленно получить из результатов о Т-сте*^ пенях, пользуясь при этом теоремой 5.6 (с). Например, спра』 ведливо
Следствие (из теоремы 5.14). Для любой р. п. т-степен1^ о, такой, что 0m > а > m0m, существует р. п. т-степень Ь“ такая, что Ь\а.'
Доказательство. Пусть 4W。;力 р. п., поэтому в силу тео1 ремы 5.14 возьмем р. п. Т-степень с, такую, что dT (А) | с Пусть 8—какое-нибудь р. п. множество из с, и пусть &= dm (Bh Тогда если а Ст& нли & ^та, то из теоремы 5.6(с) следует, чта ”(/)&с или c《d「(4), что противоречит dT (Л) | с. ОтсюдЙ Q1也□
Другие понятия сводимости. Имеются и другие по喫 тия сводимости, которые лежат между ограниченным понятней
m-сводимости и более широким понятием Т-сводимости. Подробное обсуждение этого вопроса имеется в книге Роджерса [1967].
Упражнения
Покажите, что каждое из следующих множеств является Т-полным:
{屮 WEJ,
{x\Wx=0}.
Попробуйте улучшить теорему 5.7 (d), показав, что Л ^ ТВ тогда и юлько тогда, когда ^л ^ mKBt и что А=^В тогда и только тогда, когда КА = m^в.
Покажите, что предыдущий вопрос можно сделать эффективным в следующем смысле: существует тотальная вычислимая функция /, такая, что для любых Л, В из с^ = </>f следует 6/(е): K'&mk" (Указание. Найдите тотальные вычислимые функции g,九,такие, что (i) из с< = 6貝 следует КА = Wf(e}. и (ii)勿(е): Wf < ткв ДЛЯ всех е.)
Для произвольного множества Л определим последовательность множеств А(п} следующим образом: Л(о) = Л;力(〃 + ” = = К"(? и положим 4®)= {冗(т, /г) I mW 川山}•
Покажите, что 川山 < 丁%®)при всех п.
Покажите, что существует тотальная вычислимая функция 力,такая, что 以向=6隽;при всех п.
Пусть В—некоторое множество, такое, что А(п} ^ ТВ при всех п в следующем сильном смысле: существует тотальная вычислимая функция /, такая, что с^(〃)= </>?(〃)при всех п. Покажите, что 4(е)《T8.
Покажите, что если Л &丁8, то А{п} &丁8(山 при всех % а также, что 4®)& 丁⑶®). (Указание. Воспользуйтесь результатом упр. 3, а также пунктами (Ь) и (с).)
Докажите теорему 5.10.
Закончите доказательство теоремы 5.12.
) В качестве следствия из теоремы 5.17 (а) докажите, что существуют р. п. m-степени, такие, что 0т является наибольшей нижней гранью для о и Ь.
Глава 10
Эффективные операции на множестве частичных функций
После изучения эффективно вычислимых операций на мноЦ жестве чисел, естественно рассмотреть вопрос о том, сущесг вует ли понятие подобного рода и для операций над 例&而 циями. Существенная разница между функциями и числам| (если их рассматривать как множества основных объектов состоит в том, что первые являются, как правило, бесконе^ ными объектами, а вторые—конечными. Имея это в виду, мн в § 1 этой главы обсудим свойства, наличие которых было б& разумно ожидать от эффективного оператора на частичны: функциях, и дадим определение такого оператора.
В § 2 мы узнаем, что имеется тесная связь между рекуЫ сивными операторами и эффективными операциями на вычи? лимых функциях, рассмотренными нами в § 3 гл. 5. В § : будет доказана важная теорема о неподвижной точке для ре курсивных операторов, которая носит название первой теорем о рекурсии. В конце этой главы мы рассмотрим некоторЕ приложения этой теоремы к теории вычислимости и теорет иескому программированию.
Рекурсивные операторы
Обозначим через 炉〃(九》1) класс всех частичных функщ из N" в N. Словом оператор мы будем обозначать функщ Ф: %—兀,причем прописные греческие буквы Ф, Т,. в этой главе будем использовать только для обозначения ог раторов. Мы будем рассматривать лишь тотально определе ные операторы Ф: ^т —时,т. е. такие операторы Ф, облася определения которых совпадает со всем классом /然.
Основная проблема при попытке дать определение поняти вычислимого (или эффективного) оператора Ф:苏〔—> 跖 сС стоит в том, что как вводимая функция /, так и выводим^ функция Ф(/) являются, скорее всего, бесконечными объекта» и, следовательно, не могут быть заданы за конечное врем, В то же время, согласно нашему интуитивному представлений об эффективных процессах, мы должны в некотором смысЛ уметь проводить их за конечное время.
Чтобы разобраться, как можно преодолеть эту трудности рассмотрим следующие операторы из /】в <F〕
(З)①1⑺=2人
(b)①2(/) = g, где g“) = £《 J(y)・
Зтн операторы, несомненно, очень естественны и записаны в явном виде. На интуитивном уровне их вполне можно было бы считать эффективными. Попытаемся сейчас разобраться, почему. Пусть /€ 駅〔• Рассмотрим случай gt = Ф2 (/). Заметим, что любое конкретное значение g〔 (%) (если оно определено) может быть вычислено за конечное время по одному единственному значению /(х) функции /. В случае g2 = Ф2 (/) для вычисления значения g?,%) (если оно определено) необходимо знать конечное число значений f (0), /(1), •・.,f(x). Тем самым в обоих случаях любое определенное значение выводимой функции (①i(f) или Ф2 (/)) может быть эффективно вычислено за конечное время при использовании лишь конечной информации о вводимой функции /. В этом и состоит суть приведенного ниже определения рекурсивного оператора.
Одно из следствий из этого определения будет состоять в следующем: предположим, что Ф (/) (х) = у вычисляется с использованием только конечной части 0 функции /; тогда если g — любая другая функция, имеющая 0 в качестве конечной части, то должно выполняться соотношение Ф(g) (х) = у.
Для того чтобы придать этому определению точный смысл, условимся о некоторых технических деталях. Прежде всего договоримся о том, что под «конечной частью» функции / понимается некоторая конечная функция 0, которая продолжается до /. (Функция 0 называется конечной, если ее область определения есть конечное множество.) Для удобства условимся, что всюду в этой главе буква 0 обозначает конечную функцию.
Из приведенных выше соображений ясно, что в определении рекурсивного оператора должны участвовать эффективные вычисления с конечными функциями. Придадим этому точный смысл, закодировав каждую конечную функцию 0 числом 0 и применяя обычную теорию вычислимости. Удобный для наших целей кодирующий алгоритм определяется следующим образом. Пусть 6€炉〃・ Набор из 门 чисел х = (хп ..., %/ кодируется числом <x> = p^i + 1pf»+1.. •р^1. Поэтому для данного 0 мы положим
9= Ц Р<х>х при условии, что Dom(8)*0, хб Dom (0)
0 = 0,если Dom (0) = 0
(причем в этом случае 0 = /0).
Имеется простая эффективная процедура, с помощью которой можно для любого числа z определить, верно ли, что z = 3 Для некоторой конечной функции 0, и, если ответ на этот
вопрос положителен, выяснить, принадлежит ли некоторой заданное х множеству Dom (0), и если да, то вычислить зна чение 0 (х).
Сформулируем теперь наше определение.
Определение. Пусть Ф:罗加—* 讲〃.Тогда Ф называется рекурсивным оператором, если существует вычислимая функ」 ция 6(z, х), такая, что для всех f^^m и %€尺〃,y€N
Ф (f) (х) тогда и только тогда, когда существует конечная функция 8 三 f, такая, что Ф(0, х) * у
(Заметим, что от функции Ф не требуется, чтобы она была то, тальна.)
Пример. Оператор ①(/) = 2/ является рекурсивным one? ратором. Чтобы убедиться в этом, положим
0(2, %)=0(2, %)=29 (х), если z = 0 и % € Dom (8), не определена в остальных случаях.
0(2, %)=
0(2, %)=
В силу тезиса Чёрча функция Ф вычислима. Далее, для лк> бых /, х, у мы имеем
①(/)(%)亠 go%€ Dom⑺ и 4=2/(%)
о существует 8 三厶 для которой х€ Dom(0) и у = 20(х)
О существует 9 三 f, для которой ф(0, %) 4,
Отсюда Ф—рекурсивный оператор.
Другие примеры мы приведем ниже в п. 1.6.
Важное свойство рекурсивных операторов состоит в том что они непрерывны и монотонны в следующем смысле.
Определение. Пусть Ф: ^т —> ^п ——некоторый оператор:
Ф называется непрерывным, если для любой функцш /€护忆 н любых х, у: Ф (/) (х) ^ у тогда и только тогда, когд* существует конечная функция 0 ^ /, такая, что Ф(0) (х) 2^ ^
Ф называется монотонным, если для любых f, g^^^ таких, что ,三 g, выполняется условие ①(/)三①(g).
Для рекурсивных операторов эти свойства легко прове ряются, и поэтому с их помощью можно выяснять, являете ли тот или иной оператор рекурсивным.
Теорема. Любой рекурсивный оператор является непр^ рывным и монотонным.
Доказательство. Пусть Ф;犷血~* 声〃一рекурсивный onepj тор, которому, согласно определению, соответствует вычисл! мая функция ф. Предположим, что ①(/)(*)亠 у, и пусть фуш
ция 9 三 f такова, что ф(0, х) 4 у. Учитывая, что 0^0, мы немедленно получаем, что Ф (0) (х) ^ у. Обратно, если Q <=f н(D(9)(x)4y, то существует 仇三仇 такая, что Ф(0П х) а у, но тогда 仇三 f н тем самым Ф (/) (х)亠 у. Следовательно, функция Ф непрерывна.
Монотонность следует непосредственно из непрерывности: предположим, что f ^ g и ①(f)(x)iy. Возьмем такую функцию 9 三九 что Ф (0) (х) ^ у. Тогда 8 三 g н в силу непрерывности ①(g)(x)亠弘□
Неформально использование слова «непрерывный» для описания свойства 1.3(a) можно объяснить следующим образом. Допустим, что оператор Ф:舒、—訐\ удовлетворяет свойству 1.3(a), и пусть ,々尹1・ Тогда для любых заданных чисел Ан ..., %论,для которых определены значения ①(f)(%/)(l &i&山), мы можем с помощью 1.3(a) получить конечную функцию 0 такую, что ①(9)(,) = CD(/)(%・)(1 &i&山).Таким образом, для любых &з6 опять-таки с помощью 1.3(a) мы получаем, что ^^^^^(h^i)^ ^ ^^), т. е. если функция g находится «близко» от функции 7 (в том смысле, что они совпадают на конечном множестве Dom (0)), то функция ①(g) расположена «близко» от функции Ф (/) (в том смысле, что они совпадают на конечном множестве хп ..., %论). Таким образом, говоря неформально, функция Ф непрерывна.
Условие непрерывности 1.3(a) требует, чтобы значение ")(/)(*) (если оно вообще определено) было определено конечным объемом положительной информации о функции /. Положительная информация — это те сведения о /, в которых утверждается, что функция f определена в тех или иных точках и принимает в них определенные значения. Этим она отличается от отрицательной информации о 九 в которой указываются точки, в которых функция / не определена. На таком языке термин «непрерывный» можно строго обосновать следующим образом.
Определим топологию положительной информации1} на 苏加, взяв в качестве базы открытых окрестностей множества вида
Uh = {/|0 三乃(8€犷加 конечна).
Другими словами, f принадлежит U® тогда и только тогда, когда 0 дает правильную положительную информацию о f. Проверка того, что непрерывность оператора относительно топологии положительной информации имеет место в точности в тех случаях, когда выполнено свойство 1.3(a), является простым упражнением.
Следующая теорема дает описание рекурсивных операторе; с помощью понятия непрерывности, которое облегчает про верку рекурсивности различных операторов.
Теорема. Пусть Ф: 3rm f 于п—некоторый оператор. Тог& Ф рекурсивен тогда и только тогда, когда
Ф непрерывен,
функция 6(2, х), определяемая соотношением
№(6, х) ф(9)(х) при ew/脚
\ф (г, х) не определена при всех прочих значениях г, вычислима.
Доказательство. Предположим, что оператор Ф рекурср вен, и пусть вычислимая функция ф^ такова, что ①(/)(x)4. тогда и только тогда, когда 30 (0 ^ / и 6(0, х)4у). Бец теперь функцию Ф, определенную в формулировке теорем! мы получаем
Ф(0, х) 4^/0 ЗЮ】(4 三 9 и б (I, х)ау)・
Стоящее в правой части отношение является частично разр《 шимым, поэтому по теореме 6-6.13 функция Ф вычислима.
Обратно, допустим, что выполнены условия (а) и (Ь). Тог/ Ф(/) (x)^y^39(Q^f и ①(8) (х) 4 у) (из (а))
Q ЗЮ (9 三/ и 9(0, х)4у) (из (Ь)),
откуда оператор Ф рекурсивен. □
С помощью этой теоремы легко показать, что следующ| операторы рекурсивны:
Примеры
(Оператор диагонализации) Ф (/)(%) 4 f(x, %) (f € 昼扌 Очевидно, что оператор Ф непрерывен и что функция Ф (0, х). 4 0(%, х) вычислима.
(b)①(/)(Х)4£4"匂)(/5).
Это второй оператор, рассмотренный нами в качестве и, мера в начале этого раздела. Как мы видели там, оператор непрерывен, и ясно, что функция Ф(0, %) 4 £*《*8 (у) вы^ лима.
Пусть функция g^^i вычислима. Определим оперЗ Ф:炉门一炉〃 соотношением Ф (f) = g о /. Очевидно, что он® тор Ф непрерывен и что функция е®, %) 4 g (8 (%)) выЧ| лила.
(Оператор Аккермана). Пусть оператор Ф: JF邕一/$ задан соотношениями
①(/)(0, У)= У+1,
Ф(Л (х+1, 0)-/(х, 1),
①(/)(%+】,р+ 1)4 /(%,/(%+ 1, 〃))・
Для того чтобы показать, что оператор Ф непрерывен, заметим, что Ф (/) (х, у) зависит максимум от двух конкретных значений /. Что касается рекурсивности, то из тезиса Чёрча немедленно вытекает, что функция Ф, задаваемая соотношениями
,(吼 0, у) =,+ 1,
。也 %+1, 0)-0(%, 1),
Ф(0, х+1, у+ 1)^ 0(х, 0(х + 1, 〃)), вычислима.
(^-оператор) Рассмотрим оператор Ф:籽„+[—*/〃,задаваемый соотношением Ф (/) (х) 4 同/ (/ (х, у) = 0). Сразу видно, что этот оператор непрерывен и что функция ф, задаваемая условием~
9 (仇 x)^[iy (0 (х, S = 0), вычислима.
Если определение 1.1 рекурсивного оператора Ф: ^т <F„ распространить на случай 〃 = 0, то мы получим определение рекурсивного функционала. Элементами /° являются 0-местные функции, т. е. константы. Подобно тому как ^п (n ^ 1) содержит функцию, которая нигде не определена, класс 孔 содержит «неопределенную» константу, которая обозначается через(о. Таким образом, <^0 = NU {^}, и оператор Ф: /癇一►/()будет рекурсивным функционалом, если существует вычислимая функция Ф(х), такая, что для любых f^^т и y^N
Ф (/) 2^ у тогда и только тогда, когда 30 (0 ^ / и ф (6) 4 у).
Если Ф(/) не определено, то мы будем писать Ф(/) = о). Это подчеркивает тот факт, что Ф рассматривается как тотальный оператор.
Следует отметить, что в некоторых работах термином частично рекурсивный функционал 炉勿一广门 обозначают рекурсивные операторы, включающие случай 〃 = 0. При этом слово «частичный» относится, скорее, к типу объекта, на котором действует оператор, а не к области определения операции.
Мы не будем рассматривать здесь обобщения понятий этого раздела на частично определенные операторы (так называемые частичные рекурсивные операторы ①:^т т 户J. Изложение ■^гого и смежных вопросов читатель может найти в книге Род・ 氷арса [ 1967J.
Упражнения
Покажите, что следующие операторы рекурсивны:
(а)①(/) =产(/€ 乎 J
(b)①(f) = g (f€/〃), где g — некоторая фиксированная вычислимая функция из <Fj.
(с)(D(f) = /og (f €^0,где g есть некоторая фиксированная вычислимая функция из ^п.
(d) Пусть 方€罗〃+1—фиксированная вычислимая функция. Определим оператор Ф: 窘+i —<F〃+1 соотношением
О,если й (х, у) = 0,
Ф(/)(%, у) ^ ' (х + 1, у) + 1, если h (х, у) определено и #=0, не определена в остальных случаях.
(Смысл этого оператора станет ясен ниже.)
Докажите, что если Ф есть рекурсивный оператор и функция / вычислима, то вычислима и функция ①(/).
Будут ли следующие операторы Ф:亨—> /】(i) монотонными, (ii) непрерывными, (iii) рекурсивными.
(а)①(/)(%) 4(b)①(/)(%) =(с)①⑺(%) =(а)①(/)(%) 4(b)①(/)(%) =(с)①⑺(%) =,/(х), если множество Dom (/) конечно, не определена, если множество Dom (f) бесконечно.
(а)①(/)(%) 4
(b)①(/)(%) =
(с)①⑺(%) =
(а)①(/)(%) 4
(b)①(/)(%) =
(с)①⑺(%) =
[0,если /(х) определена,
1 не определена в остальных случаях.
(0, если f(%)€K [ 1,если/(х)^ Г е°Л”а)。叩^лена, не определена в остальных случаях.
{ не определена, если множество Dom (/) ко- Iнечно,
I / (х),если множество Dom (/) бес-
〔конечно.
Пусть Ф: <FW —* ^п и 屮:尹〃 г 4 — рекурсивные операторы. Докажите, что оператор 屮。①:(Fm —► ^р рекурсивен.
Покажите, как можно обобщить определение рекурсивного оператора на операторы Ф:罗巾〔X沪团?х ・・• X炉加立f冗 и докажите соответствующие обобщения теорем 1.4 и 1.5.. Докажите, что следующие операторы рекурсивны:
(а) Ф:駅 J% —犷〃,где ①亿 g) = /og (ср. с упр. 1с). (Ь)①:/〃+】Х沪〃+|—犷“+i,где
'0,если h (х,,)= 0,
Ф(/, h) (х, j) f (х+\, y)+\t если h(xt у) определено и У=0, не определено иначе
(ср. с упр. 1(1).
(Для тех, кто немного знаком с топологией.)
Докажите, что оператор непрерывен в смысле определения 1.3(a) тогда и только тогда, когда он непрерывен в топологии положительной информации.
Докажите, что следующие условия эквивалентны для U三乔〃:
V открыто в топологии положительной информации,
f^V тогда и только тогда, когда 30 (0/ и 0 ^ V).
Пусть Ф: ^ т —* ^ п и 屮: 冗一►犷/ — непрерывные операторы. Докажите, что оператор 屮。①:3rm —* 罗尸 непрерывен.
Пусть ?(N) обозначает класс всех подмножеств N. Сформулируйте определение рекурсивного оператора Ф: 0(N)f 0(N), аналогичное определению рекурсивного оператора из 京^ — /】. Сформулируйте и докажите теоремы, соответствующие теоремам 1.4 и 1.5. (Указание. Вопрос о принадлежности %€ ①(』)должен эффективно зависеть от конечного объема положительной информации о принадлежности % множеству А.)
(Эффективные операторы e(N)—> 夕(N) называются опера-- торами перечисления и подробно рассматриваются у Роджерса [1967].)
Эффективные операции над вычислимыми функциями
В § 3 гл. 5 мы отмечали, что некоторые операции над вычислимыми функциями можно было бы называть эффективными, так как они могут быть заданы тотальными вычислимыми функциями, действующими на индексы. Например, в примере 5-3.1(2) мы видели, что существует тотальная вычислимая функция g, такая, что при всех egN имеем (фе)2 = ф^(е).
В этом разделе мы убедимся в том, что любой рекурсивный оператор Ф, будучи ограничен областью вычислимых функций, дает на индексах эффективную операцию такого рода. В этом заключается первая часть теоремы Майхилла и Шепердсона. Кроме того, они доказали, что таким образом возникают все подобные операции на вычислимых функциях.
Мы докажем обе части результата Майхилла—Шепердсона по отдельности, начиная с более простой первой части.
Теорема (Майхилл — Шепердсон, часть I). Пусть V: ^т г% есть рекурсивный оператор. Тогда существует тотальная вычислимая функция й, такая, что
屮風m)) = m% (e€N)・
Доказательство. Пусть Т —вычислимая функция, показывающая, что, согласно определению 1.1, Т является рекурсив-
ным оператором. Тогда для любого е
Y ^}} (х)^ у <^ Эв (9 ^ ф^ и 屮@, *)4 у).
Мы покажем, что функция g, определенная соотношением
g(% %)4中(權))(%),
вычислима, доказав, что отношение g(e, *) 4 у частично разрешимо. С этой целью рассмотрим отношение R (г, е, х, у), задаваемое следующим образом:
R(z, е, х, f/) = 30 (г = 0 и 9 三 9尸 и 2®, х) а у).
Тогда отношение R частично разрешимо с помощью следующей неформальной частичной разрешающей процедуры:
Выясним, верно ли, что при некотором 0 выполняется соотношение г = 0. Если да, то найдем хп ..., 力论€因% и Ук力,такие, что Dom(e)= {%i/}и 0 (xz) = yt
(1 & i & 々).Затем
при i=l,...,々 вычислим 必")(**); если для l《i &々 значения Ф^1 (xz) определены и равны yh то
вычислим 2(z, х), и в случае, если это значение определено, проверим, верно ли, что оно равняется у.
Если утверждение R(z, % х, у) истинно, то с помощью этой механической процедуры, мы узнаем об этом за конечное время, как и требовалось.
Поскольку отношение R(z, % х, у) частично разрешимо, то частично разрешимо и отношение BzR (г, е, х, у) (по теореме 6-6.5), но
mzR(z, % х, у) ФФ ^ (ФУМ) (х) ^ у (из определения R) Og(e, х)4 4 (из определения g)・
Таким образом, отношение g(e, х)^ у частично разрешимо,, и, следовательно, по теореме 6-6.13 функция g вычислима.
Воспользуемся s-zn-и-теоремой и возьмем такую тотальную вычислимую функцию Л, что
幽I (Х) 4 g (% X)4 屮(ф^1) (х),
откуда мы и получаем, что 掰薩=屮(97)・□
Заметим, что функция %, даваемая этой теоремой для любого рекурсивного оператора 屮:3r、一 3rg является экстенсиональной в следующем смысле.
Определение. Тотальная функция h: N т N называете冗 экстенсиональной, если для любых а, Ь из Фа = Фь следует; Фд(а)= Фа(ь)-
Теперь мы можем сформулировать вторую половину результата Майхилла и Шепердсона.
Теорема (Майхилл — Шепердсон, часть II). Пусть Л —— экстенсиональная тотальная вычислимая функция. Тогда существует единственный рекурсивный оператор 屮,такой, что 屮(丸)=е力 S)九Р〃 всех е.
Доказательство. Основой доказательства является использование теоремы Райса—Шапиро (теорема 7-2.16).
Пусть h ——экстенсиональная тотальная вычислимая функция. Тогда й определяет следующий оператор То: g】f 名匸
屮о 3e)= %G・
Так как функция h экстенсиональна, то оператор То определен корректно. Нам необходимо показать, что существует единственный рекурсивный оператор 屮:罗】f 炉㈠ который является продолжением 4ro.
Заметим прежде всего, что поскольку конечные функции вычислимы, то То (0) определен на всех конечных 0. Таким образом, любой рекурсивный оператор 屮,продолжающий 屮°, будучи непрерывным, должен определяться соотношением
^(f)(x)^y^BB (9^/ и Т0(9)(х)-у).
Таким образом, если такой оператор 屮 существует, то он единствен. Для доказательства теоремы необходимо теперь показать, что
Условие (2.4) действительно определяет оператор 屮, (iij Т является продолжением Yo,
Оператор 屮 рекурсивен.
Прежде чем убедиться в справедливости трех этих утверждений, покажем, используя теорему Райса—Шапиро, что оператор 4ro непрерывен в следующем смысле: для вычислимых функций f
屮。⑺(х) 4 у о me (9 三/ и 屮。(8) (%) 4办
Зафиксируем %, у и положим 力={f £ i?J 屮。(/) (х) 4 у}. Тогда множество А^{е\Фе € <^} = ^| Фл(е)(х)~ У} Р- п- Отсюда по теореме Райса ——Шапиро если функция / вычислима, то
/ С ^ Ф> 39 (9 ^ / и 9 € 力),
что в точности совпадает с (2.5).
Докажем теперь утверждения (i), (ii) и (iii).
Пусть / — любая частичная функция. Нам необходимо показать, что для любого % соотношение (2.4) определяет 屮(/)(%) однозначно (если оно вообще определено). Допустим, уто 0П 仇修 / н что Tq (0Х) (х) ^ у^ a 4r° (%)(%) а %. ВозьмеМ
202 厂4. /〃. Эффективные операции на множестве частичных функци“ конечную функцию 0, такую, что 6三瓦,“ (скажем, 0 = =f I Dom (0J U Dom (02)). Из соотношения (2.5)
У1 4 中о (4)(%)亠中о (0) U) 4 屮° (") (%)亠弘.
Тем самым условие (2.4) определяет оператор 屮 однозначно.
Это утверждение следует непосредственно из (2.5) и определения (2.4).
Покажем, что оператор 屮 удовлетворяет условиям теоремы 1.5. Из определения ясно, что оператор 屮 непрерывен. Остается проверить выполнение условия, состоящего в том, что функция ”,задаваемая соотношением
屮@, х)-Т(0) (х),
W(z, х) не определена, если z =#0, вычислима. Теперь, пользуясь тезисом Чёрча, легко видеть, что существует вычислимая функция с, такая, что для любой конечной функции 9 число с (0) является индексом 0, т. е. 0 = Фс(^}. Таким образом,
2®, %) 4 屮色加(х) -ФЛ(С (^(х),
и, следовательно, из вычислимости Лис вытекает вычислимость ”. Отсюда 4r — рекурсивный оператор. □
Замечания
На самом деле доказательство теоремы 2.3 показывает, что для любой экстенсиональной вычислимой функции h существует единственный непрерывный оператор 屮:沪〔—> ^п такой, что 中(,е) = 6/х(е) при всех с, и что этот оператор рекурсивен.
Теорема 2.3 естественным образом обобщается на операторы из ^т —尹〃. Доказательство почти идентично проведенному выше (необходимо использовать естественное обобщение теоремы Райса — Шапиро на подмножества 觥)(см. ниже у пр. 2.6 (2)).
Упражнения
Пусть Ф,屮一рекурсивные операторы 孔一*九.Зная』 что оператор Ф о Y непрерывен (упр. 1.7(7)), воспользуйтесь обеими частями теоремы Майхилла — Шепердсона, а также первым из приведенных выше замечаний и покажите, что опера тор Ф о Т рекурсивен.
Сформулируйте и докажите общий вариант теоремы 2・《 для операторов из ^т f 侈〃.
Сформулируйте и докажите обобщения обеих частей тео ремы Майхилла—Шепердсона на операторы, определение кото рых требовалось дать в п. (а) упр. 1.7 (5) и в п. (Ь) упр. 1.7 (8『
Первая теорема о рекурсии
Первая теорема о рекурсии Клини представляет собой теорему о неподвижной точке для рекурсивных операторов, и ее зачастую называют также теоремой о неподвижной точке (из теории рекурсии). Как мы увидим ниже, это очень полезный результат.
Первая теорема о рекурсии (Клини). Пусть Ф:声忆—炉巾 есть рекурсивный оператор. Тогда существует вычислимая функция /ф, которая является наименьшей неподвижной точкой для Ф, т. е.
Ф(/ф) = /ф,
если ①(g)==g, то 后三 g.
Отсюда если функция /① тотальна, то она является единственной неподвижной точкой Ф.
Доказательство, Используя свойства непрерывности и монотонности Ф, мы следующим образом построим наименьшую неподвижную точку /①.Определим последовательность функций {/л} (〃€N) соотношениями
% =,0 (функция с пустой областью определения), 九+l①0)
Тогда L = fgf 三 & и из /〃三 f〃+i в силу монотонности следует, что %+i = 9(%)0<D(/〃+J = f〃+2・ Таким образом, fn^fn+1 при всех п. Положим теперь
/ф= U %.
Это означает, что
j①(х) а у 0 тогда и только тогда, когда
Зи такое, что 九(х) 4 у.
Покажем, что /Ф есть неподвижная точка Ф.
При всех п имеем f〃三/①,откуда
九+ ]=cD(/〃)三①(/①);
h, таким образом,/① 三①(/①).
Обратно, предположим, ито (D (/⑴)(х)亠 у; тогда существует конечная функция 8 三/①,такая, что Ф (0) (х) с±: у. Возьмем такое 明 что 8 三九.Тогда из непрерывности следует, что ⑴(九)(6 4 Р,т. е.厶+1 (х) 4 у. Отсюда /Ф (х)亠 у. Таким образом,①(/①)三/①,и, значит, как и требовалось доказать, ⑴(/ф) = /ф.
Чтобы убедиться в том, что /① есть наименьшая неподвижная точка Ф, предположим, что ①(g) = g・ Тогда ясно, что
/о = fo 三 g, и по индукции мы получаем, что 九三 g при всех 飞 Отсюда /ф 三 g, что и требовалось доказать. Кроме того, есл病 функция /ф тотальна, то f^ng, так что f① является единствен-, ной неподвижной точкой Ф.;
Покажем, наконец, что функция /ф вычислима. Пользуясь' теоремой 2.1, возьмем тотальную вычислимую функцию 九,такую, что Ф(Фе) = Фл(е)при всех е. Пусть е0 —индекс /0. Определим: вычислимую функцию 々 соотношением
々(°) = ео
k(n+\) = h(k (п)).
Тогда /Л = ФЛ(Л) при всех п и, таким образом,
/ф (*) 4 р О Зи 饱(〃)(*) 4 у).
Соотношение в правой части частично разрешимо, откуда и следует, что функция /ф вычислима. □
Замечание. В этом доказательстве рекурсивность оператора Ф использовалась только для того, чтобы показать, что функция /ф вычислима. Первая же часть доказательства показывает, что любой непрерывный оператор имеет по крайней мере одну неподвижную точку.
Следующие примеры показывают, что у рекурсивного оператора может быть много неподвижных точек и что наименьшая неподвижная точка не обязательно будет тотальной функцией.
Примеры
Пусть Ф——рекурсивный оператор, задаваемый соотношениями
①⑺(0)=1,
①(/)(%+1)4/а+2).
Тогда наименьшей неподвижной точкой Ф будет
I /ф (0)=1,
f(0)=lf (%+ l) = a・f(0)=lf (%+ l) = a・1 /ф (х+ 1) = не определено.
f(0)=l
f (%+ l) = a・
f(0)=l
f (%+ l) = a・
Другие неподвижные точки Ф имеют вид
Напомним определение функции Аккермана 屮 из при мера 2-5.5:
屮(0, У)= У+ 1,
WU+ 1, 0)4屮(%, 1),
屮(x+L р+1)4”(х,屮(%+L f/)).
С помощью первой теоремы о рекурсии можно аккуратно доказать, что эти уравнения на самом деле определяют единственную функцию 屮 и что 屮 тотальна и вычислима. Пусть Ф — оператор Аккермана, определенный в примере 1.6 (d). Неподвижными точками Ф будут функции, удовлетворяющие написанным выше уравнениям. Положим 2 = f(D; тогда 屮 есть вычислимая функция, удовлетворяющая этим уравнениям, и остается лишь показать, что функция 屮 тотальна. Ясно, что значения 屮(0, у) определены при всех у. Если значения 屮(х, у) определены при всех у, то, проводя индукцию по у, мы видим, что значения 屮(%+1, у) тоже определены при всех у. Отсюда q)(x, у) определена при всех х, у и, стало быть, является тотальной.
Пусть Л (х, у) — некоторая фиксированная вычислимая функция, и пусть Ф ——рекурсивный оператор, определенный в упр. 1.7(ld). Тогда наименьшей неподвижной точкой для него будет вычислимая функция /①,удовлетворяющая соотношениям
'0, если Л (х, j) = 0,
/⑴(х, у)4・ /ф (^ + L J)+ 1, если Л(х, j) определена и #=0, не определена иначе.
Но что же представляет собой эта довольно странно выглядящая функция? Без большого труда мы сейчас убедимся в том, что
/ф (х, у) 4 ^z(h (x + zt j) = 0).
Предположим сначала, что рг (h (х + г,『)=0)=加;тогда функция h(x + z, у) определена и не равна нулю при всех z 之 т, a h(x + mt J) = 0. Отсюда
1ф(^^ У)= !ф^+^ У)+^ = • • • ^!Ф^ + г, y) + z (z&m) = /ф(% + /h, g) + :几=0 + 加=加.
Предположим, с другой стороны, что ^ф(х, у)=^т. Тогда, согласно нашим уравнениям, это должно выполняться, поскольку
m = f①(х, J) = fo (х + 1, J) + 1 = ... = /ф (х + m, y) + m
и функция 九(% + ?, у) определена и не равна нулю при всех г < /и. Отсюда /①“ + 团,J)= 0 и, следовательно, h(x + m, j)=0. Таким образом, m = [iz(h(x + zt j) = 0).
Из последнего примера можно сделать вывод, что функция f①(°, У)亠卩之(九(z, у) = 0) вычислима. Разумеется, это вовсе не означает, что мы получили новое и более оригинальное дока-
зательство замкнутости множества 咨 относительно ц-операции, поскольку это свойство 抬 было неявно использовано при доказательстве первой теоремы о рекурсии. (В исчислении равенств-' Клини (см. § 1, гл. 3), однако, первая теорема о рекурсии^ доказывается без использования ц-оператора, и в этом случае' замкнутость множества g относительно ц-оператора может быть получена с помощью последнего примера.)
Из приведенных примеров видно, откуда происходит название «первая теорема о рекурсии». Основная идея рекурсии состоит в том, чтобы определять функцию «в терминах ее самой». Простым примером этого была примитивная рекурсия, рассмот」 ренная нами в гл. 2. С более общими видами рекурсии мы встречались в определениях функции Аккермана и функции /ф из примера 3.2(3).
В гл. 2 мы смогли довольно легко убедиться в том, что определения, даваемые в терминах примитивной рекурсии, имеют смысл. В случае более сложных рекурсивных определений это не так очевидно —вполне можно представить себе, что функций, удовлетворяющих тому или иному определению, вообще не существует. Именно здесь оказывается полезной первая теорема о рекурсии. Рекурсивные определения весьма общего типа могут быть представлены уравнением вида
)а(а,
где Ф——некоторый рекурсивный оператор. Первая теорема о рекурсии показывает, что такое определение имеет смысл: всегда существует даже вычислимая функция, которая ему удовлетворяет. Поскольку в математике требуется, чтобы определения описывали различные понятия однозначно, можно сказать, что рекурсивное определение (3.3) определяет наименьшую неподвижную точку оператора Ф. Таким образом, согласно первой теореме о рекурсии, класс вычислимых функций замкнут относительно рекурсивного определения очень общего типа.
Упражнения
Найдите наименьшую неподвижную точку следующих операторов:
(а)①(/) = / (fW/J;
(0,если % = 0, (/С/)
(b)①(/)(%) = ] 2x^\+f(x-l)t если х>0;
J 0если х = 0,
⑹①(/) (х,力—[/力),если х > 0.
(Маккарти) Покажите, что функция т(х), заданная уравнением
I 91, если % & 100, 加(%)=〈 in
[х—10 иначе, является единственной неподвижной точкой рекурсивного оператора Ф, определенного следующим образом:
、 / 〃〃%+")),если х< 100
①仍⑶х-10 иначе.
Пусть Ф и 屮一рекурсивные операторы d^xSif 穿工 (в смысле определения, которое требовалось сформулировать в упр. 1.7(5)). Покажите, что существует наименьшая пара функций 厶 g, такая, что
/ = Ф(Л^)g=屮亿g),
и обе функции / и g вычислимы.
Пусть Ф:法пХ密т —济п есть рекурсивный оператор (в смысле определения, которое требовалось сформулировать в упр. 1.7(5)). Для любой функции g€<Fm определим оператор ①g:声〃—炉〃 соотношением Ф^(/)^Ф(Л g)・ Покажите, что оператор «V(g) = наименьшая неподвижная точка ①&》является рекурсивным оператором 九—>(F〃.
Приложение к семантике языков программирования.
В этом разделе мы увидим, как первая теорема о рекурсии помогает решать проблему семантики языков программирования, т. е. той области, которая занимается вопросом придания смысла программам. Наше изложение будет вестись в терминах некоторого общего, явно не описанного языка программирования, но для того, чтобы объяснить основную идею, этого будет достаточно.
Итак, пусть 厶——некоторый общий язык программирования. Основные символы языка L выбираются, имея в виду некоторый их конкретный смысл; поэтому смысл будут иметь и более сложные выражения, построенные из этих элементарных. Мы можем представить себе следующую простую программу вычисления функции. Пусть т (х) есть некоторое выражение из L, такое, что если всем переменным х придать некоторые конкретные значения а, то т(а) может быть однозначно вычислено согласно правилам семантики языка L. Если теперь взять в L символ функции /, который не входит в т, то
f (х) = т(х)
будет простой программой для функции /т, которая имеет еле- дующий очевидный смысл: для любых чисел а значение “(а) получается путем проведения операций, соответствующих выражению т(а) согласно правилам семантики языка L.
Допустим теперь, что т—такое выражение, в которое входит символ /. Мы будем в таких случаях писать т (/, х). Тогда программа (4.1) приобретает вид (4・2)f(*) = 〃f, *)•
Такие программы называются рекурсивными. Во многих случаях именно таким образом естественнее и экономнее всего описываются функции, которые мы хотим вычислить. Тем не менее в случае (4.2) смысл слова «программа» не вполне ясен. Основной вопрос для любой рекурсивной программы заключается в том, как придать ей точный смысл? До тех пор пока он не решен, ее вообще трудно называть программой.
В принципе имеются два способа ответить на этот вопрос:
Вычислительный метод. В этом варианте функция, ко- торую необходимо определить с помощью рекурсивной программы, задается в терминах метода ее вычисления. В этом подходе находит отражение тот факт, что специалисту по ЭВМ необходимо не только знать, что означает программа, но и как ее использовать.
Метод неподвижной точки. В этом случае рекурсивной программе придается смысл с помощью первой теоремы о рекурсии. При таком подходе решаются и некоторые проблемы вычислительного метода, и в действительности оказывается, что оба метода можно считать, скорее, дополняющими друг друга, чем противоречащими один другому.
Изложим вкратце оба метода и посмотрим, как здесь работает первая теорема о рекурсии.
Вычислительный метод. Проще всего объяснить его на примерах. Рассмотрим рекурсивную программу
(4.3)f(x) = {(4.3)f(x) = {1,если х = 0,
(4.3)f(x) = {
(4.3)f(x) = {
2/(% — 1), если %〉0.
(Предполагается, что на языке 厶 можно формулировать условные выражения такого типа.) С помощью уравнения (4.3) можно формально вычислить значение f (3). Например, это можно сделать следующим образом:
f(3)4 2xf(2)4 2x2x/(l)4 2x2><2><f(0)4 8・
(Мы проделали формальные подстановки и вычисления, пользуясь уравнением (4.3)). Отсюда если функция /т определяется программой (4.3), то должно выполняться равенство /т (3)® 8.
Для более сложных рекурсивных программ может иметься более чем один способ использования формального уравнения /(х) = т(/, х) в процессе вычислений. Рассмотрим, например, рекурсивную программу
(1,если х = 0,
Н・4)f(%, У)=\1, /(%, у», если % > 0.
Предположим, что мы хотим формально вычислить значение /(1, 0). Имеем
(4・5)/(1, 0)-f(0, /(1, 0)).
В правой части / у нас встречается дважды, и в нашей власти выбрать, какое из мест взять для подстановки т(/, х). Если взять левое /, то после соответствующих преобразований мы получаем
f (1, 0) 4 / (0, / (1, 0))= 1 (так как х = 0).
Если же мы каждый раз будем заменять самый правый из символов /, то уравнение (4.5) дает
〃l,0)4f(0"(l,0))~f(0, f(0, f(l,0)))4/(0, f(。,/(0, f(l,0))))-...,
и в этом случае для f (1, 0) не получится никакого результата.
Правилом вычисления называется правило R, указывающее, как надо поступать, если в ходе вычислений возникла неоднозначность выбора возможных вариантов подстановки. Для рекурсивной программы (4.4) мы сформулировали два правила: правило «крайне левого» (LM) члена и правило «крайне правого» (RM) члена. Возможны и другие правила. Для любого правила вычислений R и рекурсивной программы f (х) = т(/, х) определим функцию /% r следующим образом: fTt r(q) есть значение, полученное при формальном вычислении f (а) с помощью правила R. Если при этом не получается никакого значения, ю ft, r(q) считается неопределенным. (Тем самым для рекурсивной программы (4.4) /т, дм (1, 0)= 1, и &, rm (1, 0) не определено.)
Таким образом, каждое правило вычисления придает смысл любой рекурсивной программе (и в то же самое время определяет метод ее использования).
Приведенный выше пример показывает, что различные правила вычисления могут придать различный смысл каждой конкретной рекурсивной программе. Проблема, стоящая перед специалистом по ЭВМ, избравшим вычислительный метод, состоит тогда в том, чтобы решить, какое из этих правил выбрать. Кроме того, для любого правила R имеется вопрос
о том, в каком смысле функция /工,& удовлетворяет уравнение f(X)4T(f, х).
Метод неподвижной точки, в котором используется первая теорема о рекурсии, дает возможность избежать этих вопра сов, и в действительности, как мы сейчас увидим, проливает свет на обе эти теоремы.
Метод неподвижной точки. Выражение т(/, х) языка Д определяет оператор Ф: /〃一>/〃,такой, что
①(g)(*)4”g, х)
для любой функции g€/〃. Кроме того, в большей части язн】 ков программирования конечный и явный характер выражений т(/, х) гарантирует, что оператор Ф является рекурсивные оператором. Тогда первая теорема о рекурсии говорит нам о том, что Ф имеет вычислимую наименьшую неподвижную точку, которую мы можем обозначить через “. Таким обра< зом, мы можем определить функцию, даваемую программой (4.2)| как “・ Это довольно разумно, так как функция /х является вычислимой, и, кроме того, мы знаем, что /т (х) ^ т(/т, х)/ а это и есть как раз то самое соотношение, выполнение котоЦ рого было желательно для программиста.
Тут остается открытой проблема нахождения хороших пра* ктических процедур для реализации программы (4.2) в только что определенном смысле. Можно показать, что для любогб правила вычисления R имеет место включение fT, r ^ fr\ кроме того, существуют правила вычисления /?, для которых /*&=% при всяком т. Любое из этих правил можно выбрать в качестве практического средства реализации рекурсивных программ/ Теперь мы можем сказать, что вычислительный метод и метод неподвижной точки скорее взаимно дополняют друг друга нежели противоречат один другому: подход, основанный нд неподвижной точке, с помощью первой теоремы о рекурсии дает теоретическое обоснование выбранного конкретного пр* вила вычисления.
У метода неподвижной точки (или эквивалентного ему пра* вила вычисления) есть и другие преимущества: существуй много полезных способов доказательства по индукции коррекн ности, эквивалентности и других свойств программ с семантикой неподвижной точки, и они могут быть строго обоснованы!
Для более полного ознакомления с этими вопросами чита тель отсылается к книгам Берда (1976) и Манна (1974). Здес! мы несколько упрощенно очертили проблематику, с которoi имеет дело программист-теоретик; в действительности внбнра^ мая им неподвижная точка J является наименьшей в слегк^ ином смысле (хотя все еще связанном с одним вариантом nej вой теоремы о рекурсии).
Глава 11
Вторая теорема о рекурсии
Первая теорема о рекурсии вместе с теоремой Майхилла —— Шепердсона из предыдущей главы показывают, что для всякой экстенсиональной тотальной вычислимой функции / найдется число п, такое, что Ф7 {п} =ФЯ.
Вторая теорема о рекурсии утверждается, что такое п существует, даже если функция / не экстенсиональна: мы докажем это в § 1 настоящей главы.
Эта теорема (и ее доказательство) может сначала показаться несколько странной. Тем не менее она играет важную роль в более развитой теории вычислимости. Мы используем ее в обещанном доказательстве теоремы Майхилла (теорема 9-3.5) и в доказательстве теоремы об ускорении в следующей главе.
В § 1 после доказательства простейшего варианта второй теоремы о рекурсии мы опишем некоторые ее применения и интерпретации; § 2 посвящен обсуждению идеи, лежащей в основе доказательства этой теоремы, и других вопросов, включая отношение между двумя теоремами о рекурсии. Более общая версия второй теоремы о рекурсии доказывается в § 3 и используется в доказательстве теоремы Майхилла.
Вторая теорема о рекурсии
Сначала докажем эту теорему, а затем посмотрим, как можно ее понять.
Теорема (вторая теорема о рекурсии). Пусть /——тотальная одноместная вычислимая функция; тогда существует число 〃,такое, ф/(п} = фп.
Доказательство. По s-zn-n-теореме существует тотальная вычислимая функция s(x), такая, что для всех %
⑺ Мбх(х))(У)4б(*)(//)・
(Если фх (х) не определено, то мы считаем, что выражение в левой части (*) не определено; иначе говоря, левую часть (*) можно обозначить через Wu(f@(%)), 办)
Возьмем теперь какой-нибудь номер т функции s, т. е. такое т, что s = 6加;переписывая (*), получаем
。/仲х (х)) (//) 4 九/〃 (а)(У)•
Теперь, полагая х = т, а п = фт (т) (правая часть последней равенства определена, так как функция s = e% тотальна), пол^ чаем фу (л) ((/) ^ Фп ((/), что и требовалось. □
Вопреки первому впечатлению эта теорема не является по闻 линной теоремой о неподвижной точке: функция f не индуцируе! отображение Фх —► Ф/(х) на вычислимых функциях, для кото рого Ф„ можно было бы назвать неподвижной точкой. Однаке имеется индуцированное отображение программ, задаваема равенством 尸(匕)=「/(幻・ Требование неподвижной точки п施 /• было бы слишком сильным: это должна была быть така> программа Р“, что 尸(PJ и Рп были бы тождественны} т. е f(n) = n. Но теорема 1.1 утверждает, что найдется такая прей грамма Pnt что 尸(尸J и Рп дают одинаковый эффект (в вычи(* лении одноместных функций); т. е. Ф/(П) = Ф„. Таким образоц вторую теорему о рекурсии называют теоремой о псевдонепод. .важной точке, а для удобства всякое число п, такое, qe Ф7 (п) = Фп, называется неподвижной точкой, или значением 吻 подвижной точки для f・
Вторая теорема о рекурсии является утверждением об индек сах вычислимых функций; поэтому может возникнуть предп^ ложение, что доказательство основывается на некотором специал^ ном свойстве выбранной нумерации программ. Однако проверкj доказательства показывает, что использовались только s・mF теорема и вычислимость универсальной функции; ни один из эти! результатов существенным образом не зависит от особенности выбранной нумерации. Более того, теорему 1.1 можно прнме нить для доказательства второй теоремы о рекурсии, соответс< вующей любой эффективной нумерации программ; см. 1.10(| ниже.
Имеются разные возможности обобщения теоремы 1.1, хо《 лежащая в основе доказательства идея остается прежней В упр. 1.10(7) дается обобщение на ^-местные функции дД Л > 1; в теореме 3.1 показано, что неподвижная точка эфф^ тивно вычисляется по разным связанным с f параметрам.
Этот параграф мы продолжим разбором некоторых сле^ ствий и применений второй теоремы о рекурсии.
Следствие. Если f —тотальная вычислимая функцщ то существует такое число л, что W/{n} = Wn и Е/{п} = ^
Доказательство. Если ф/1л)=Ф„, то ^ {^—Wn nEf(п>=Еп.
Следствие. Если /—тотальная вычислимая функция,學 существуют сколь угодно большие числа п, такие, что
Доказательство. Фиксируем некоторое число 论;возьм# такое число с, что ◊•誉«“..., Ф^
Определим функцию g следующим образом: I с, если %《生 g (%) - \ / ⑴,если %〉々.
Тогда функция g вычислима; пусть п является неподвижной точкой для g. Если 几 &々,то Фg {п} = Фс ^Фп1 т. е. мы пришли к противоречию. Следовательно, л > ^, так что /(几)=g (几)и п является неподвижной точкой для f. □
(В упр. 1.10(8) мы покажем, как можно модифицировать доказательство теоремы 1.1, чтобы получить возрастающее эффективное перечисление неподвижных точек функции /.)
Применение второй теоремы о рекурсии в сочетании с s-m-л-теоремой резюмируется в следующем следствии.
Следствие. Пусть f(х, у)—любая вычислимая функция} тогда существует такой индекс е, что фе (у) ^ f (е, у).
Доказательство. Применим s-m-n-теорему, чтобы получить тотальную вычислимую функцию s, такую, что Ф§ (х) (у) 4 f (х, у), а затем применим теорему 1.1, выбрав е в качестве неподвижной точки для s. □
Примеры
Существует число и, такое, что 办(%)=尸 для всех х! примените следствие 1.4 с f(m, x) = xw;
существует такое число и, что »〃={〃}: примените следствие 1.4 с
(0, если у = %;
‘(',") — [ не определена в противном случае
и найдите индекс п, такой, что фп (у) определено тогда и только тогда, когда у = п.
Вторая теорема о рекурсии названа так потому, что, подобно первой теореме о рекурсии, она выражает очень общее определение «по рекурсии». Рассмотрим, например, следующее «определение» функции фе в терминах данной тотальной вычислимой функции fi Фе = Фа Функция фв «определена» эффективно в терминах алгоритма для вычисления ее через саму себя (закодированного числом е)・ Несмотря на то что это выглядит как круговое определение, согласно второй теореме о рекурсии, мы можем утверждать, что существуют вычислимые функции фв, Удовлетворяющие такому определению.
В развитой теории вычислимости часто оказывается полез・ ннм применение даже более общего определения функции @* 《口。 рекурсии» вида 6*(%)4g(e, %), где g есть данная тоталь-
ная вычислимая функция. Опять-таки представляем себе фущ цию фе определенной в терминах кода своего собственно! алгоритма. Тогда вторая теорема о рекурсии посредства следствия 1.4 делает осмысленным также и это определение Этот факт мы будем использовать при доказательстве теорем об ускорении в следующей главе.
В заключении этого параграфа приведем несколько пр$ мых, но иногда неожиданных следствий теоремы 1.1. Сначал мы покажем, можно ли ее использовать на примере просто! доказательства теоремы Райса (6-1.7).
Теорема. (Райс) п. Предположим, что 0и4и@“ и пуст. А = {х\фх^^}. Тогда Л нерекурсивно,
Доказательство. Пусть a^At a b£4. Если Л было 6f рекурсивно, то функция /, заданная как
(а, если х Л;/(%)-[ ь, если х ^ Л,
была бы вычислимой. Далее, / обладает свойством: %W 4 d о / (%)岳 4 для всех
С другой стороны, по теореме 1.1 существует число 勺 такое, что 力⑺=Ф„, так что f(n)^A^n^A. Полученное про» тиворечие доказывает теорему. □
Другое применение второй теоремы о рекурсии показываем что «естественная» нумерация вычислимых функций без повто рений невычислима.
Теорема. Предположим, что f ^тотальная возрастающей функция, такая, что
если т^п, то 力(加)=#%(〃);
/(〃) является наименьшим индексом ф/(п). Тогда фун^ ция / невычислима.
Доказательство. Пусть / удовлетворяет условиям теоремы Согласно (а), функция f(n) не может быть тождественной, та что должно найтись число 山,такое, что /(〃)〉〃 при а тогда, согласно (Ь), Ф/д^^п ПРИ 几》论• С другой сторона если функция / вычислима, то по следствию 1.3 существу^ такое 九》々,чго 。/(献=6〃, т. е. получили противоречие, ц
Следующее и подобные ему применения теоремы о непо^ вижной точке можно проинтерпретировать в антропоморфнц терминах.
1) Эту теорему принято называть теоремой Райса — Успенского— Прим, перев.
Пусть Р—программа. Кодовое число, т. е. код у (Р), можно рассматривать как описание Р. Программу Р можно было бы считать способной к само воепроизведен ию, если для всякого 0хода х вычисление Р (х) дает в результате собственное описание 尸,т. е. у (尸)• На первый взгляд кажется трудным построить самовоспроизводящуюся программу 尸,так как для построения Р нам необходимо заранее знать у (Р), а следовательно, и само Р. Тем не менее, согласно второй теореме о рекурсии, такие программы существуют.
Теорема. Существует программа 尸,такая, что Р(%),у(Р) для всех х, т. е. программа Р является самовоспроизводящейся.
Доказательство. Если положить 九=»丫(尸),то, согласно теореме, существует такое число и, что Фп (х) = л для всех %.
Чтобы убедиться в этом, достаточно применить следствие 1.4 к функции f(m, %)=九□
Рассмотрим теперь эту теорему под другим углом зрения. Вспомним обозначения и терминологию гл. 5. Там мы определили тотальную вычислимую функцию о(е, х, /), которая кодирует состояние вычисления Ре(х) после / шагов; в о(е, х, /) содержится информация о содержимом регистров и номере следующей команды, которая должна выполняться на шаге f. Очевидно, что первые / шагов вычисления Ре (х) полностью кодируются числом
в® X, /)=П 硏丁7
11азовем число а* (е, %, /) кодом вычисления Ре (х) до /-го шага (включительно). Очевидно, функция о* вычислима.
Пусть нам даны теперь тотальная вычислимая функция 屮 и программа Р. ^-анализом вычисления Р (х) мы называем код вычисления Р(х) до \р (х)-го шага. Мы называем программу 屮・ интроспективной на %, если Р (х) сходится и дает на выходе 〈во心 собственный 屮-аналнз; программу Р мы называем тотально ^-интроспективной, если она 屮-интроспективна при каждом %.
Теорема. Существует тотально ^-интроспективная программа Р.
Доказательство. Применим следствие 1.4 к вычислимой Функции f(et х) = ое (е, %, гр (х)) и получим такое число 明 что Фч (х) = / (и, х) = 4)-анализ Рп (х). □
Мы завершим этот параграф вымышленной историей, связанной со второй теоремой о рекурсии.
«Мы на войне. Готовится операция диверсии на центр а льне вычислительном устройстве противника. Наши специальн агенты смогли проникнуть сквозь линии обороны врага в чре вычайно секретное помещение, содержащее все программы g 尸 1, Pg... центрального компьютера. Задание будет выполнен, если наши агенты смогут систематически саботировать pa6of этих программ таким образом, что впоследствии ни одна пр& грамма не будет работать так, как предполагает протнвн叫 Просто уничтожить эти программы недостаточно: враг мож^ вскоре обнаружить это и сумеет восстановить их. Необходимр провести тонкое изменение каждой программы, так 4丁0而 незаметно для врага компьютер давал ложные результату Быстро и незаметно наши люди переходят к действию...
Увы, все расстраивается из-за второй теоремы о рекурсий Какой бы систематический план для изменения программ и был придуман, найдется эффективно вычислимая функция д определяемая посредством /(%) = код модификации Р (尤У И тогда вступает в силу вторая теорема о рекурсии, дающаз такое число л, что программа Рп и ее модификация произве? дят одинаковый эффект (по крайней мере для функции одна переменной). Операция была обречена на неудачу.
(Несколько позднее наши главные штабные стратеги раа смотрят вопрос вербовки шимпанзе, в задачу которых входМ изменение программ случайным образом...)»
Упражнения
Покажите, что существует номер и, такой, что фл (х) =4 =[力订
Покажите, что существует такой номер и, что Wn = En^ =〃N・
Покажите, что существует такой номер е, что фе (х) = е для всех х.
Существует ли такое л, что 呼〃 = {%| .〃(%)[}?
пусть 湿三% и 力={Х2"€4}, Покажите, что Л ^ЛЯ Выведите теорему 1.6.
Приведите пример тотальной вычислимой функции £ такой, что (i) если Фх тотальна, то и 力(幻 тотальна и (ii)亩 существует неподвижной точки л, такой, что фп тотальна. .
Докажите вторую теорему о рекурсии для Л-местньг вычислимых функций: если j является тотальной вычислимс1| функцией, то существует номер % такой, что。能)=6色
Покажите, что теорему 1.1 можно усилить до следук щей: для каждой тотальной вычислимой функции / существуй возрастающая рекурсивная функция л (/), такая, что для любоп f имеет место 6〃 ⑴=6〃献》)• (Указание. Исследуйте доказА тельство теоремы 1.1: вначале обратите внимание на то, ч*Я
нз нашего доказательства s-m-n-теоремы мы имеем s(%)》% для всех % (или покажите, что, добавляя к концу программы Ps (х) некоторые дополнительные команды, можно найти эквивалентную s(х) вычислимую функцию s'(%), такую, что s'(%)》% для всех х). Теперь видно, что для любого числа 々 можно указать для s(х) индекс т^ k. Тогда, следуя доказательству теоремы 1.1, мы получаем, что 〃 = s(m) является неподвижной точкой для / и n = s(m)^ т》h. Теперь уже нетрудно построить требуемую функцию 〃(£)•)
Докажите, что вторая теорема о рекурсии не зависит от выбранной нами конкретной эффективной нумерации программ. (Указание. Пусть 6—другая эффективная нумерация программ; пусть Q^ — программа с данным кодом 加 в нумерации 6, a ——одноместная функция, вычисляемая программой Qm. Нам надо доказать, что для любой тотальной вычислимой функции / найдется число % такое, что 屮/(〃)= ““• Для этого достаточно показать, что существует вычислимая биекция г, такая, что 戶(%)=、尸(工);затем достаточно доказать существование такого т, что Фг-*「(т)= Фт)
Предположим, что в рассказанной перед этими упражнениями истории наши агенты обнаружили, что операторы вычислительного устройства противника стали крайне изощренными—у них только одна программа——универсальная программа. Могут ли наши агенты теперь полностью осуществить свою задачу?
Могут ли шимпанзе преуспеть там, где специальные агенты терпят неудачу? (Философская проблема.)
Обсуждение
Вторая теорема о рекурсии и ее доказательство могут на первый взгляд показаться несколько загадочными. Однако, как мы увидим, это доказательство является, по существу, гтро・ CTLN диагональным рассуждением, примененным к эффективным перечислениям вычислимых функций.
Пусть Л ——вычислимая функция. Если Л тотальна, то перечисление Е, определенное как Е: ФЛ (0), % ⑴,Фл (2), •••, является эффективным перечислением вычислимых функций. Если h не тотальна, ее все еще можно рассматривать как перечисление Е последовательности вычислимых функций, приняв ^оглашение, что для всякого х выражение фЛ(%)обозначает Функцию, задаваемую следующим образом:
勿⑺(切4屮u(力(%),у)
—J Фл(X)(f/)> если й (х) определено,
—1 не определена в противном случае.
Итак, если й (х) не определено, то ФЛ (х) есть нигде не о呼 деленная функция..
Следующая лемма показывает, что последовательность перечисляемая функцией 九,является эффективным перечис| нием, даже когда й не тотальна.
Лемма. Пусть й — вычислимая функция. Существует 寸 тальная вычислимая функция 九‘,такая, что huh,переч ляют одну 〃 ту же лоследовательность вычислимых функщ
Доказательство. s-m-n-теорема определяет тотальную фун цию 九,посредством 协,(*)(у) 4 “и (九(%), у). □
Теперь мы можем разъяснить идею, лежащую в осн? доказательства теоремы о рекурсии. Для любого 々 через ” обозначим последовательность вычислимых функций, эфф тивно перечисляемую функцией ф^ Тогда список Е。, £\, Е^,: будет включать в себя все возможные эффективные пере* ления вычислимых функций. Можно следующим образом А
тально рассмотреть эти перечисления на кружки).
(не обращая внимав
Ео:@1》0 阿 1)@0о(2)・
• •Ффо(к)• • •
El:%1(0)(^^)仰 1(2)•
Ez:%2(0)加2("^^^).
• •0,2(幺)• • •
專:%(0)0初1)%k(2)4
Тогда диагональное перечисление D функций, обведенных кр)й ками в этой таблице, определяется так:
。:Фф0 (0), Фф, (1), Ф*я (2), ••• •*
Таким образом D является эффективным перечислени заданным вычислимой функцией h (х) с^ Фх (х). Кроме тог。' D имеется общий элемент с каждым эффективным пере嘲 лением Е; на самом деле для любого 々 перечисления 力及 имеют общий (k + 1)-й элемент Фф^外.
Пусть теперь / — тотальная вычислимая функция. То можно «переделать» D в перечисление
〃*: Ф/ (Ф, (0)), Ф/(Ф, (1)), Ф/ (*, (2)),・
Теперь D* является эффективным перечислением вычиб мых функций, заданных функцией / (й (х)), и, стало бь найдется число т, такое, что D* = Е皿・ По лемме 2.1 мок считать функцию Фт тотальной. Как отмечалось выше, у речислений D и Ет (т+1)・й элемент является общим, ”
如小m)= e『9加(m))・ Так как фт—тотальная функция, то число 6;(〃7)= 〃 определено и фп = ф/{п}.
'Это доказательство иллюстрируется следующим образом:
Е°:。仇(о) • • •
•^i •.@6( 1) • • •
♦%2(2)• • *
D^ = еm:0/(氏(0))0/(前(1)) %(02(2力…Ф网т(mг= ФфП(m)
Так им образом, п = Фт (т) является неподвижной точкой.
Замечание. Можно перефразировать это доказательство, чтобы сделать его аналогичным стандартному диагональному рассуждению, следующим образом. Пусть / ——такая тотальная функция, что Ф『(т,Фп для всех и: тогда, применяя / к диагональному перечислению D, можно построить перечисление 〃*, отличающееся от £Л на 々・м месте (выполняется требование диагонального принципа). Следовательно, D* не является эффективным перечислением, так что функция / не может быть вычислимой.
Вторую теорему о рекурсии можно, таким образом, рассматривать как обобщение многих прежних диагональных конструкций. Для иллюстрации покажем, как применить вторую теорему о рекурсии к доказательству нерекурсивности множества к, одному из главных диагональных доказательств.
Теорема. Множество К нерекурсивно.
Доказательство. Пусть а и b — такие индексы, что 吃=0, a 1vzb = N・ Если множество К рекурсивно, то функция
I а, если х WK, g] b, если х 在 К вычислима. Заметим, что g обладает свойством Wg(x}=/=Wx (поскольку %€ 呼g“)О 呼g(x)= N og(x) = bo%4 取J. Зто противоречит второй теореме о рекурсии. □
Замечание. Мы, конечно, использовали кузнечный молот, чтобы расколоть орех. Цель этого доказательства — показать, что всякая диагонализация скрывает в себе применение второй теоремы о рекурсии. Мы не утверждаем, что ранее про Еденное доказательство надо заменить этим.
Связь между двумя теоремами о рекурсии. Пусть ①:<Ff 一 犷1 является рекурсивным оператором, а й — тоталь- Нан вычислимая функция, такая, что Ф(ФХ) = ФЛ(х)для всех % (как в теореме Майхилла — Шепердсона). Если п является
неподвижной точкой для й, то ФЛ (п) = Ф„, т. е. Ф (Ф„) Таким образом, вторая теорема о рекурсии говорит нам (& и первая теорема), что Ф имеет вычислимую неподвижна точку; она, однако, не говорит о том, что Ф имеет вычис^ мую наименьшую неподвижную точку. Таким образом, д рекурсивных операторов первая теорема о рекурсии дает н больше информации.-
Но, с другой стороны, вторая теорема о рекурсии одщ ково успешно применима к неэкстенсиональным вычислим1 функциям, т. е. к функциям, которые не получаются из ] курсивных операторов. Таким образом, у второй теоремь рекурсии более широкая область применения, чем у перво хотя в области их пересечения вторая теорема, вообще i воря, дает меньше информации. Итак, эти две теоремы луч! рассматривать как дополняющие друг друга, хотя Родж^| [1967] приводит аргумент в пользу того, что вторая теор^ о рекурсии является более общей из этих двух теорем.
3. Теорема Майхилла
Теперь сформулируем и докажем обобщение теоремы 1# необходимое для теоремы Майхилла. Пусть / (х, z)——тота# ная вычислимая функция; теорема 1.1 показывает, что д каждого конкретного значения параметров г существует так число /г, что 6/(〃,2)= @〃・ Покажем теперь, как можно эффц тивно получить п из 2.
Теорема (вторая теорема о рекурсии). Пусть / (х, 2Ц тотальная вычислимая функция. Тогда существует тотальн вычислимая функция и(2), такая, что ⑷,?)= 6〃(«) всех 2.
Доказательство. Надо просто ввести параметр в соотв ствующие места доказательства теоремы 1.1.:
Согласно s-m-n-теореме, должна существовать тотальй вычислимая функция §(%, 2), такая, что
(*)力(0Х(%), к = △>(*」)•
Теперь, снова применяя s-m-n-теорему, получаем тоталь可 вычислимую функцию 加(2), такую, что s (х, г) = Фт (ж) I Переписывая (*), имеем 3/伸/(幻,2)= 3@勿(寥产)・ Полагая тепе х^т(г) и обозначая п(г) = фт(^)(т (^)), получаем 向(〃同,. =勿(2), что и требовалось. □
Теперь перейдем непосредственно к теореме МайхнЗ (теорема 9-3.5).
Теорема Майхилла. Всякое креативное множество яа ется т-полным.
Доказательство. Предположим, что множество Л креа- Iивно, а множество В р.п.; нам надо доказать, что В^пА.
Пусть р является продуктивной функцией для А. Определим функцию /(х, у, z) следующим образом:
I 0, если z = p(x) и “W8, / (%, у, Z)= I
[не определена в противном случае.
Тогда / вычислима, и по s-m-n-теореме существует тотальная вычислимая функция s(x, y)t такая, что Ф£ (Xt у} (z) с^ / (х,(/, z). Тогда, в частности,*
S(%)},если р€В,
О в противном случае.
По второй теореме о рекурсии (теорема 3.1) существует тотальная вычислимая функция и (у), такая, что Ws{n{y}t J)= =Wn {у} для всех у. Тогда для всех у'
取 —I {Р^(У))}^ если y^Bt”5)1 0 в противном случае.
Теперь мы утверждаем, что
(**) у^В тогда и только тогда, когда。(九匂))^/.
Предположим, что^у^В; тогда Wn {у} = {р (и (t/))}. Если р (и (у)) ^ А, то 取〃 W)三 А, так что, согласно продуктивному свойству функций р, р(п (у)) ^^п(y)t т. е. получаем противоречие, откуда р (и (у)) С А._
Предположим, что у^В; тогда 取〃匂)=0三力.Согласно продуктивному свойству функции р, р (и (у)) ^ А.
Утверждение (**) теперь установлено, так что 8 &諸, поскольку функция р (л ((/)) вычислима. □
Следствие, т-степень 0^ содержит все креативные множества.
Упражнения
Докажите следующее обобщение теоремы 3.1: для каждого числа k существует тотальная вычислимая функция 〃(е, 2) (где 2 =(R, ..., Z0) со следующим свойством: если z таково, что 砂+"(%, 2)определено для всех %, то
外戶 1)5,(% *),2)=办(久》
(Указание. Это в действительности можно вывести как следствие к теореме 3.1).
Сформулируйте и докажите результат, усиливающий теорему 3.1 в том же смысле, в каком упр. 1.10(8) усиливает теорему 1.1.
Глава 12
Сложность вычисления
В реальных вычислениях главный вопрос относительнс функции / состоит не в том «Вычислима ли /?», а скорей в том «Вычислима ли / практически?». Иными словами, су' шествует ли программа, вычисляющая функцию / за времд (или в том объеме памяти), которым мы располагаем? Отвег отчасти зависит от нашего мастерства в написании программ и возможностей наших компьютеров; но интуитивно мы чу в* ствуем, что имеется дополнительный фактор, который можнс назвать «внутренней сложностью», присущей функции 厶, Обсуждать подобные вопросы позволяет теория вычислитель* ной сложности, к рассмотрению которой мы переходим в этой главе. Эта теория помогает в изучении более практический аспектов вычислимости.〔
Применяя подход, основанный на МНР, можно измерят^ время, требуемое для вычисления каждого значения функци^ по конкретной программе в предположении, что каждый шаЕ МНР совершается за единицу времени. Таким образом опре、 деленное время вычисления является примером меры вычисли тельной сложности, отражающей сложность или эффектив< ность используемой программы. (Позднее мы рассмотрим дру| гие меры сложности.)
После уточнения понятия сложности вычисления можн《 исследовать задачи такого рода: «Какова внутренняя слоям ность, присущая вычислимой функции /?» и «Можно ли найт| «наилучшую» программу для вычисления /?».
Теория вычислительной сложности является относителый новой областью исследования; мы представим небольшое чис^ результатов, связанных с поставленными выше вопросами В конце главы мы дадим рекомендации читателю, желающе^ подробнее изучить этот предмет.
В § 1 мы введем некоторые обозначения; после короткой обсуждения мы покажем, что существуют произвольные сло^ ные вычислимые функции. Параграф 2 посвящен уднвнтелц ной и курьезной теореме об ускорении Блюма, которая, частности, показывает, что существуют вычислимые функций не имеющие «наилучшей» программы. В § 3 мы вводим пон4 тие классов сложности и доказываем теорему Бородина пробелах; в заключительном параграфе мы показываем, к&
можно использовать классы сложности, чтобы дать изящное описание элементарных функций — важного подкласса примитивно рекурсивных функций.
Сложность и меры сложности.
Начнем с введения следующих обозначений.
Обозначения
Для каждой программы Р через t$ обозначим функцию (число шагов, сделанное при вычислении /%)(х) по программе Р, если /%)(х) определено;
не определена в противном случае, = М,(Р(63 за / шагов).
Для каждого индекса е выражение /^} (х) обозначает то же, что 択(х). Как обычно, tp обозначает 帘,a te обозначает ⑶.
Семейства временных функций /^ является примером меры вычислительной сложности 】). Некоторые простые, но важные свойства этих функций даются следующей леммой.
Лемма
Dom (屮)= Dom (也"))для всех n, е.
Для каждого п предикат М (е, х, у), определенный посредством М (е, х, у)三 偿)(х) 4 у、разрешим.
Доказательство, (а) очевидно, (Ь) вытекает из следствия 5-1.3 (Ь). □
Замечание. Свойство (Ь) часто используется в теории сложности; оно явно контрастирует с тем фактом, что Ф^} (х) 2^ у является неразрешимым предикатом. Часто в теории сложности рассматриваются свойства, справедливые для достаточно больших чисел 〃, но не обязательно для всех 〃. Так мы приходим к следующему определению.
Определение. Предикат Л4 (〃) выполняется для почти «сох п или почти всюду (几.&・), если М (〃) выполняется для всех, кроме конечного (включая пустое) множества, натуральных чисел (или эквивалентно, если существует число и0, такое, что М (〃) истинно для всех 几》%)•
Теперь можно установить нашу первую теорему, котор# показывает, что существуют произвольно сложные вычислимы функции.
Теорема. Пусть b——тотальная вычислимая функция. Cq ществует тотальная вычислимая функция /, принимают^ только значения 0, 1, такая, что если е индекс для /, т f е (几)> b (и) п. в.
Доказательство. Читатель не должен удивляться тому что / получается с помощью диагональной конструкции. П& строение должно обеспечить следующее: если %(/и) &Ь(/и) дл бесконечно многих т, то / отличается от 6f хотя бы в однся из этих значений. Мы определяем / рекурсией следующщ образом.
На каждом шаге п построения / мы либо определяем инде^ i〃, либо за конечный промежуток времени решаем, что in й определено. Затем полагаем / отличающейся от Ф^ (н), если | определено. Более подробно, предполагая, что значение /(0), ..., f(n—1) определены, полагаем
卩i[i&〃 и i отличается от всех ранее определенны! значений & и /z (и) ^й(п)],
если такое i существует,
не определено в противном случае.
f1,если in определено и Ф/л(п) = 0,
/[ 0 в противном случае.
Существует конечная процедура, которая говорит нам д# данного /, будет ли t.(n)^b(n)t так как
% (九)& b ⑺ 0 % & b ⑺(力(/2)4 у)
и предикат в правой части разрешим по лемме 1.2 (Ь). След вательно, существует эффективная процедура для решения в# проса о том, определено ли /п, и если определено, то 屁 нахождения этого числа. Кроме того, если in определено, t определено и фд(п). Следовательно, / — корректно определе| ная тотальная вычислимая функция.
Пусть теперь / =内;по построению "二 J если in опр| делено. Мы покажем, что если i является таким индексом, ч tt(ni) ^b(tn) для бесконечно многих т, то i = in для некоС рого п, и, следовательно, i#=e. Этого достаточно, чтобы it казать, что /,(团)〉匕(加)для почти всех т. ~
Предположим теперь, что /;(加)《匕(加)для бесконечд| многих т. Пусть р= 1 +rnax {k \ ik определено и ц < i} (it ложим р = 0, если нет ни одного определенного ik < I). Boa мем такое п, что n^i, р и /z (и) ^ & (и). Если i = ik jC некоторого Л < и, больше доказывать нечего. Предполаг
теперь, что i =/= ik для всех /г < и, получаем на n-м шаге: i^n и i отличается от всех ранее определенных i^ и ^(и)& < & (п). Таким образом, по определению /„ величина in определена и in ^ i. Но поскольку п^ р, то должно быть J》i・ Следовательно, i〃 = i, как и требовалось. □
Вообще говоря, нельзя усилить эту теорему так, чтобы получить в заключение te (п) > 6 (п) для всех и; это связано
Начало
Рис. 12а.
с тем, что для каждой функции / всегда можно написать программу, быстро вычисляющую f на некотором конкретном значении аргумента а, просто внося значение / (а) в программу. Пусть, например, /(@)=1; пусть F—программа, вычисляющая /. Тогда программа F\ основанная на блок-схеме рис. 12а, также вычисляет функцию f. Очевидно, что /尸‘(。,=4 + 3. Таким образом, если b — такая вычислимая функция, что (х) > х 4- 3 для некоторого %, то нельзя получить заключе
ние теоремы 1.4 с te (и) > & (и) для всех п.
8 № 862
Используя аналогичную идею, можно написать программу, которая быстро вычисляет / для любого данного конечного числа значений: см. ниже упр. 1.8(1). Это показывает, что «/е (п) > 6 (и) п.в.» является наилучшим возможным заключением теоремы 1.4.
Другие меры вычислительной сложности. Существует множество других естественных способов измерения сложности вычисления; приведем несколько примеров. Для простоты ограничим обсуждение случаем вычисления одноместных срункни 访.
Примеры
1.
г число переходов, сделанных2) при осуществлении 6е(х)={匕⑴,если 匕(X)L
не определена в противном случае
Эта мера тесно связана с числом петель, встречающихся при выполнении программы Ре (х), а эта последняя мера в свою очередь связана с временем вычисления te (х).
максимальное число, содержащееся в каком-либо ре- ,,ч I гистре машины за все время вычисления Ре (х), если 2(幻=匕(х)1,
не определена в противном случае.
Эта величина, очевидно, связана с объемом памяти, необходимым для того, чтобы провести вычисление Ре (х) на реальном компьютере.
С подходом, основанным на машине Тьюринга, связаны две естественных меры сложности:
число шагов в тыоринговом вычислении;
длина рабочей ленты, использованной в вычислении.
Вообще абстрактной мерой вычислительной сложности (для одноместных функций) по определению является любое семей- c i во функций Фе, обладающих абстрактными свойствами, приведенными в лемме 1.2 для /е.
Определение. Мерой вычислительной сложности называется семейство функций Фе со следующими свойствами:
Dom (Фе) = Dom (Фе).
Предикат «Фе (х) 4 驴 разрешим.
Мы полагаем здесь, что в команде перехода J (т,九,р) переход (к команде /戸)происходит, если гт = г^ в противном случае перехода нет£
Лемма. Функции, данные выше в примерах 1.5, являются мерами вычислительной сложности.
Доказательство. Мы дадим набросок доказательств для примеров 1.5(1) и 1.5(2), оставив 1.5(3) в качестве упражнения (1.8 (3) ниже). В каждом случае некоторого размышления требует только пункт (Ь) определения 1.6.
Разрешить (т. е. выяснить истинность) предикат «Фе (х) с^ у», где Фе (х) — число переходов, сделанных при выполнении Р» (%). Предположим, что в программе Ре имеется s команд; тогда без переходов может быть сделано самое большее s последовательных шагов вычисления Ре (х). Пусть сделано не больше l+(y+l)s шагов вычисления Ре (х). Если Ра(х) останавливается за меньшее число шагов, то, подсчитав число совершенных переходов, мы увидим, равно ли оно у. В противном случае (т. е. если Ре (х) не остановилось после 1 +(у+ 1) s шагов) в вычислении Ре (х) совершенно не менее чем (у+ 1) переходов, откуда мы заключаем, что Фе (х) #= у,
Разрешить «Фе (х) с^ у», где Фе (х)——максимальное число, содержащееся в регистрах машины в течение вычисления Ре (х). Положим 〃 = p(PJ и рассмотрим все возможные незаключительные состояния в программе Ре с rn ..., 「“《у. Существует s(//+l)“ таких различных состояний. Запустим вычисление Ре (х) до (1+s(y + 1)")・го шага. Если Ре (х) останавливается после этого числа шагов или раньше, то найдем максимальное число из содержавшихся во всех регистрах и проверим, равно ли оно у. В противном случае (если Ре (х) не остановилось) может иметь место одна из двух возможностей! (i) вычисление дважды прошло через одно и то же состояние, так что Ре (х) зацикливается и Фе (х) не определено; (ii) ни одно состояние не повторилось, и в этом случае в некотором регистре встретилось число, большее чем у. В обоих случаях мы заключаем, 4ТО①/%)方协□
Заметим, что при доказательстве теоремы 1.4 мы использовали только свойства /е, данные леммой 1.2. Таким образом, теорема 1.4 выполняется для любой меры вычислительной сложности. Имеется много других результатов в теории вычислительной сложности, которые не зависят от какой бы то ни было конкретной меры сложности. Такие результаты носят название масиинно-независимых. Теорема об ускорении из следующего параграфа и теорема о пробелах из § 3 являются примерами подобных результатов.
Упражнения
Пусть /—тотальная вычислимая функция, принимающая только значение 0, 1. Покажите, что для каждого т найдется 8*
такая программа F для вычисления /, что f尸(х)&2х + 3 для всех %&加.Выведите, что если Ъ ——вычислимая функция, такая, что Ь(%)〉2% + 3, то ограничение «для почти всех и» в теореме 1.4 нельзя снять.
Пусть ①° — мера сложности, данная в примере 1.5(2). Покажите, что, когда Фе (х) определено, то Фе(х)^тах (х, 6/х))・ Пусть /——любая тотальная вычислимая функция, а X ——конечное подмножество Doin (/). Докажите, что для / существует программа 匕,наилучшая из возможных на множестве X (для этой меры), т. е.①。(х) = max (х,也(х)) для х£Х.
Для мер сложности, данных в примере 1.5 (3), проверьте лемму 1.6, выраженную в следующих герминах. Для машины Тьюринга М обозначим через /用 одноместную функцию, вычисляемую машиной М. Покажите теперь, что
Dom (①附)=Dom(/a,
предикат «ФЛ1 (%) с^ у» разрешим,
когда
число шагов, сделанных в вычислении fM (х) ФЛ1(х)= < на машине М, если /川(х) определено;
не определено в противном случае
когда
(длина ленты, фактически используемая п в вычисле- ①川(х) = | нии fM (х) машиной М, если fM (х) определено;
[не определено в противном случае.
Пусть Фе (х) и 屮/л:) суть две абстрактные меры вычислительной сложности. Покажите, что Фе и Ч;е рекурсивно связаны в следующем смысле; существует такая рекурсивная функция г, что для всех е
屮ет) &Г(*①2(九))И①,(〃)&Г(%屮ё (%))
для почти всех 明 для которых ⑴/〃)и 屮/〃)определены. (Указание. Рассмотрим функцию г, определенную равенством 「(〃,/〃)= max 仰е(〃),屮e(〃)|e W〃 н Фе(п) = т или 屮M) = 〃zj.) Покажите, кроме того, что если Фе (п) ^ п и Ve (п) ^ и каждый раз, когда они определены, то существует рекурсивная функция г, такая, что 屮&(〃)& 厂(①J%)) и Фе (п) < г (Ye (и)) каждый раз, когда Фе(п) и Ye (и) определены.
D Мы говорим, что квадрат ленты используется, если его содержимое считывается в процессе вычисления или он находится между двумя крайними непустыми квадратами исходной ленты (включая эти крайние квадраты).
Теорема об ускорении
Пусть Р и Q ——программы для вычисления тотальной функции /, такие, что 2tQ (х) < /〃 (%) для всякого х. Естественно в этом случае говорить, что Q в два с лишним раза быстрее или лучше, чем Р. Один пример теоремы об ускорении говорит нам, что существует тотальная функция / со следующим свойством: если Р——любая программа для /, то найдется другая программа для 九 которая в два с лишним раза лучше на почти всех входах. Таким образом, не существует наилучшей программы для вычисления функции /.
Теорема об ускорении дает ускорение на любой заранее заданный (вычислимый) множитель: приведенный выше пример представляет ускорение вычисления в два раза, даваемое вычислимой функцией 厂(%) = 2%. Доказательство этой теоремы, вероятно, наиболее трудное в этой книге. Сначала мы докажем теорему о псевдоускорении, что займет большую часть времени. Затем легко выводится теорема об ускорении.
Теорема о псевдоускорении (Блюм). Пусть г—тотальная вычислимая функция. Существует тотальная вычислимая функция /, такая, что по любой данной вычисляющей / программе Р; можно найти программу Р/ со следующими свойствами:
функция Фу тотальна и б/=『(х) п. в.,
«(%)) < % (%) п. в.
(Замечание. Это теорема о псевдоускорении, поскольку в ней не требуется найти 6,. (%) = /(%) для всех %, как в случае теоремы об ускорении.)
Доказательство. Сначала надо зафиксировать конкретную тотальную вычислимую функцию s, получаемую из $-/п-/г-тео- ремы, такую, что Ф^2) (и, х) ~ ф5(е> и) (х). Найдем конкретный индекс е, такой, что функция 6产 тотальна и обладает следующими свойствами (здесь мы через ga обозначаем функцию 金(х) = W,%)):
(a) gu = f (функция, которую требуется найти в теореме), (Ь) для каждого 〃 имеет место g〃(x) = go(x) п. в.,
если f = 6八 то для gi+l найдется индекс /, такой, что 「(£/(%))<%(%) п・ в.; в действительности можно взять j = s(e, i+ 1).
Очевидно, этого достаточно для доказательства теоремы.
На минуту представим себе е как произвольный, но фиксированный индекс. Рассматривая и как параметр, определим вычислимую функцию g(〃, х), которая будет также явно и эффективно зависеть от е. Для конкретного числа е, которое мы выберем позднее, g явится определенной выше функцией $俨・
Функция g определяется рекурсией по х с фиксированным следующим образом.
При этом будут построены некоторые вспомогательны конечные множества С〃,* вычеркнутых индексов. Будем опр$ делять значение g(〃, х), считая, что значения g(〃, 0),..; .g(〃,x—1), С”,。, С〃,° ・・•,С〃,хт уже определены. Предположим, что это имеет место. Тогда множество
ьа, x = I если 厶(2,,+i> определено для u ^ i < x; 、не определено в противном случае.
(Конечно, если % &〃, то CUt х = 0 и определено.) Заметим. что для каждого i, если ts{e^ / + 1) (х) определено, то можна решить, будет ли tt (х) & г (G(e,/+n W) (применяя лемму 1.2(b)/ и будет ли //(%) определено или нет.
Теперь g(〃,x) определяется таким образом:
( 1 + max仲/(%)"€&, J, если Сц, х определено; ]не определена в противном случае.
(Если С〃,% определено, то для каждого i ^CUi х должно быть определено Фi (х), так что в этом случае g(〃,х), конечно/ определено.)
По тезису Чёрча таким образом определенная функция g является частичной вычислимой функцией, которая явно р эффективно зависит от е. Следовательно, согласно следствию 11-1.4 из второй теоремы о рекурсии (слегка обобщенному), найдется индекс % такой, что
(*)g(〃,х)4 6产(〃,х).
С этого момента положим е равным такому индексу, что выполняется (*); тогда е окажется индексом, обсуждавшимся в начале доказательства. Надо убедиться в том, что он обладает требуемыми свойствами.
Сначала покажем, что из (*) следует тотальность функции g^ Фиксируем х; для 〃^尤 множество СМ| х = 0, так что сразу из определения получаем g (“, v) = 1 .* Для w < х покажел обратной индукцией по 〃, что g(〃,x) определено. Предпол(И жим, что все значения g (妈打,g(x—1, x), ..., g(〃 + 2, %)3 g(〃+ 1, %) определены. Тогда из (*) и определения s получаем, что 6s(е,х)(%), 6$(е, х-1)W,• • •,丸“,〃+i)(%) определены; следо вательно, определено и ts(e> /+п для 〃& i<%・ Это в свою очередь означает, что множество Сй> х определено, а следова? тельно, определено и значение g(〃,х). Таким образом g(〃,х)—“ тотальная функция.
Теперь, обозначая функцию ga (x) = g(ut х) через ga, имеем g“(x)= g(〃,х) =。产(〃,х) (нз (*))
= 6(е,4)(х) (口。определению s).
Мы должны проверить вышеуказанные свойства (а) — (с).
Если положим / = g°, то функция /, конечно, всюду определена, так как это требуется в теореме.
Фиксируем число 〃; нам надо показать, что g(0, %) н g(〃, %) отличаются только в конечном множестве точек х. Из построения множеств С〃,% ясно, что для всякого %
С% X = &, X П {〃,〃 + 1 , • • • , % — 1}・
Так как все множества С* % попарно не пересекаются (по построению), можно найти такое число о = тах {%|С% % содержит некоторый индекс i V 〃}. Тогда для х > v мы имеем COt х S 三{〃,“ + 1, ..., %—1}, а следовательно, COt % =。〃,х. Это означает, что g(0, %) = g (〃, %) для х > v. Таким образом g0 (х)= =ga (%) п. в.
Пусть i является индексом для /; беря j = s(e, i+ 1), получаем Ф」= Ф$(е/+п = gi+i (из приведенного выше), так что / является индексом для gi+1. Можно доказать, что г (/у (х))= =厂(%“,/+1)W) < 力(%) Для всех %〉i. Если бы это не имело место, то i должно было быть вычеркнуто в определении g(0, %) для некоторого х > г, т. е. должно было бы быть х > i с f g COt х. Но тогда по построению g было бы g(0, х) ^=Фi (х), что означает противоречие. Это и завершает доказательство. □
Заметим, что теорема о псевдоускорении эффективна', по данной программе Р для / можно эффективно найти другую программу, которая вычисляет f почти всюду и почти всюду быстрее, чем Р.
Покажем теперь, как видоизменить приведенное доказательство для получения следующей теоремы.
Теорема об ускорении (Блюм). Пусть г—любая тотальная вычислимая функция. Существует тотальная вычислимая функция /, такая, что для всякой программы Ph вычисляю- 1цей 九 существует другая программа Pk для вычисления /, для которой г (tk (х)) < tt (х) п. в.
Доказательство. Без уменьшения общности можно предположить, что функция 广 возрастает (или заменить г на большую, чем г, возрастающую функцию). Сначала посредством небольшой модификации доказательства теоремы 2.1 мы получим тотальную вычислимую функцию /, такую, что для каждой вычисляющей функцию f программы 为 найдется программа Ру, такая, что
(а) Ф, тотальна и Ф, (х) = f (х) п. в.;
(Ь)广a/ (%) + 尤)< %(%) п. в.
Для этого просто перепишем определение С〃,х, заменив «• • • и ti (х)《厂(4(е, /・+1)(%))》на«... и ti (%) & 厂(厶(,+】)(%)+%)》• Мы покажем, что получаемая таким образом функция / удовлетворяет требованиям теоремы.
Теперь предположим, что / =屯・ и / выбрано с учетом указанных выше свойств (а), (Ь). Теперь наша задача состоит
Начало
Рис. 12b. Переход
от псевдоускорения к ускорению.
в изменении программы Р, так, чтобы получить программу Р/“: которая вычисляет / для всех х. Пусть $/(%) = /(%) для всех: х> у и f (/п) = Ьт для т《и. Изменим Р〃 поместив в начало^ программы некоторые дополнительные команды, которы^ должны задать эти значения для т《и. Конкретно, пусть Р/“ будет программой, реализующей блок-схему, представленную^ на рис. 12b. Очевидно, ?/♦ вычисляет /; кроме того, найдется]
число с, такое, что дополнительные команды добавляют не более чем с шагов ко всякому вычислению; т. е. для всех х имеет место 勿(х) & tj (х) + с.
Таким образом, мы получаем 广()* (х))《厂()(х) + с) (поскольку функция 厂 возрастающая) & г (/у (х) + %) (для х》с) < < %(х) п. в. Следовательно, выбрав 々=/*, мы доказали теорему.
Замечания
Приведенные здесь доказательства теорем о псевдоускорении и ускорении взяты из работы Янга [1973]. Оба результата доказаны для произвольных мер сложности; в случае теоремы 2.1 ясно, что наше доказательство опирается только на абстрактные свойства временной меры сложности 力(%); в доказательстве теоремы 2.2, однако, мы использовали некоторые специальные детали МНР временной меры в определении отношения между 小 и /;. В ст計ье Янга это доказательство носит общий характер и применимо к любой мере сложности.
Можно показать, что теорема об ускорении, вообще говоря, не является эффективной.
Теорема об ускорении является серьезным препятствием, если мы попробуем определить сложность вычислимой функции / (а не сложность конкретного алгоритма для вычисления / !). Мы не можем определить эту сложность как сложность наилучшего или быстрейшего алгоритма для вычисления / просто потому, что для / может не найтись наилучшей программы.
Этот параграф мы завершим забавным следствием теоремы об ускорении. Предположим, что у нас есть МНР, которая делает один шаг за 1 секунду, и мы заменим ее новой сверхбыстродействующей машиной, работающей в 100 раз быстрее. Тогда вычисление Pz (х), требующее /; (х) секунд на старой машине, будет выполняться за 力(%)/1б0 секунд на новой. Рассмотрим теперь функцию /, определяемую теоремой об ускорении с ускоряющим множителем 100. Предположим, что функция / вычисляется программой Р【на новой быстрой машине. По теореме об ускорении существует программа 匕 для /, такая, что 100/丿(%) V 力(%) п. в., т. е. tj(x)^ /z (х)/100. Таким образом, для почти всех % старая машина по программе Рj вычисляет f быстрее, чем новая машина по программе Рг Отсюда мы делаем вывод, что по крайней мере для некоторых функций новая машина не имеет преимуществ перед старой (для большинства входов)!】)
1)Однако «большинство» реальных вычислений всякой функции приходится выполнить для сравнительно небольших значений аргумента др. Если задано распределение вероятностей (или частот), с которыми ветре-
Упражнения
Покажите, что ограничение неравенства г (tk (х)) < /х (х) в теореме об ускорении почти всеми х, вообще говоря, нельзя снять.
Почему мы должны рассматривать конец обсуждение в предыдущем параграфе (с новой и старой МНР) скор% в теоретическом, чем в практическом плане?
Классы сложности
Пусть b——любая тотальная вычислительная функция. С точки зрения сложности естественный класс функций составляют функции, у которых имеются программы с временем работы, не превосходящим функцию Ь. Так мы приходим к следующему определению.
Определение. Пусть b—тотальная вычислимая функция. Класс сложности функции b ①匕 определяется как
= {Фе I Фе тотальна и te (х) ^ Ь (х) и. в.} =
= "|f тотальна, вычислима и имеет программу Ре с te (х)^ ^Ь(х) п. в.}.
Замечание. Класс 6&, определенный таким образом, является классом сложности функции b относительно временной меры сложности te (х); для каждой меры сложности Фе (х) мы можем определить класс сложности 6^ очевидным образом.
Если Ь'——другая тотальная вычислимая функция с Ь'(%)》 ^Ь(х) для всех х, то, конечно,①力,三(£&; если 〃(х)^Ь(%) для всех х, то естественно ожидать, что класс ⑤》 содержит» некоторые новые функции по сравнению с 風,особенно, если* Ь' (х) намного больше, чем b (%). Следующая теорема показы-^ вает, что здесь интуиция нас подводит: можно указать такие- b и Ь', что Ь' значительно больше Ь в любое заданное числа раз, так что 6д, = 6Ь; на самом деле эта теорема показывает, что функции b и Ь' можно выбрать так, что не существует временной функции сложности вычисления (или просто времени вычисления) /е (х), которое лежит между Ь(%) и Ь'(%) для бесконечного множества разных х. Поэтому данная теорема называется теоремой о пробелах (или скачке).
Теорема о пробелах (Бородин). Пусть г — тотальная вы* числимая функция, для которой 「(%)》% (при всех х). Toadq существует тотальная вычислимая функция 6, такая, что ' чаются разные значения х, то существует (и, может быть, эффективна найдена!) быстрейшая программа, вычисляющая f. (См. Пэйджер [1970].)Т Прим, перев.
для каждого ей %〉е, если te (х) определено и /е(х)》6(%), /力。〃(%)〉г ф (х));
& =区力.
Доказательство. Определим неформально Ь(х) следующим образом. Определим последовательность чисел k0 < йх< ... <々* посредством уравнений
々о = О;
% + 1 =广(岛)+1 a<%)•
Рассмотрим непересекающиеся интервалы 】)[kh r(^z)] для 0&i&%・ Существуют (%三 1) таких интервалов, а значит, по меньшей мере один из них не содержит ни одного числа te (х) для е < %, поскольку определено не более чем х таких чисел. Выберем ix равным наименьшему i, такому, что 力(%)在肉,广仅川 для всех е < х, и положим b (%)=牝.
Если дано, что такое 〃 существует из теоретических соображений, то существует и эффективная процедура для его нахождения; нам просто надо повторно применять лемму 1.2(b), проверяя te (х) g [kh г (fez)] для разных е и i. Согласно тезису Чёрча, можно заключить, что Ь —вычислимая функция.
Для завершения доказательства теоремы (а), предположим, что х〉е н te (х) ^ 6(х); по построению Ь(х) мы имеем %(%)在 ^[fe(x), r(b(x))]. Следовательно, /е (х) > г (6 (х)).
Перейдем к пункту (Ь). Очевидно, что &,三 缄ь; заметим, что если / € ⑨川出,то / вычисляется по программе Ре с te (x)^r(fe(x)) п. в., но te (х) > b(x) для бесконечно многих х (в противном случае /€&)• Это, очевидно, противоречит пункту (а). Следовательно, 出=(£也П
Замечание. Это доказательство основано на варианте, изложенном Янгом [1973]. Легко видеть, что функция b в теореме может быть выбрана большей, чем любая заранее заданная вычислимая функция с, просто если положить 应о = с(%) вместо %)= 0 в доказательстве. Из доказательства также видно, что теорема о пробелах машинно-независима.
Элементарные функции
В этом заключительном параграфе мы введем класс эле* центарных функций, как пример класса вычислимых функций, который очень просто может быть охарактеризован в терминах классов сложности, соответствующих времени вычисления. Как мы увидим, элементарные функции образуют естественный и широкий подкласс примитивно рекурсивных функций. Они изу-
1)Под интервалом [с, d] мы подразумеваем множество натуральных чисел &IсV% < d}.
чены довольно глубоко и представляют интерес сами по себё и помимо теории сложности.
Определение
Класс S элементарных функций является наименьшим классом, таким, что
функции х+ 1, U? (1 & i & 〃),х,у, % + у, ху все входят b含,
класс ^ замкнут относительно суперпозиции,
класс S замкнут относительно операций ограниченного, суммирования и ограниченного произведения (т. е. если f (*, г)? принадлежит 贫 то и функции £/(х, z) и JJ/(*,%), опре-
"уz<y
деленные в § 4 гл. 2, принадлежат классу 6).
Предикат М (х) называется элементарным, если его характеристическая функция См элементарна.
Грубо говоря, ^ является классом функций, которые можно^ получить итерацией операций обычной арифметики. Ясно, что элементарные функции вычислимы; на самом деле они даже примитивно рекурсивны согласно результатам § 4 гл. 2. Следующая лемма позволяет построить некоторые примеры элементарных функций и предикатов.
4・2・ Лемма
Класс S замкнут относительно ограниченной минами^ зации.'
Элементарные предикаты замкнуты относительно о〃е* раций «не», 《〃》, «пли» и ограниченных кванторов «Vz < у» 隹 «Зг < у».
Доказательство, (а) Пусть функция f(*,z) элементарна; напомним из доказательства теоремы 2-4.12, что
^<y(f (л:, г) = 0)= 2 И sg (f (х, 〃))・
V<y u《。
Элементарность этой функции следует из элементарности s禺 а последняя вытекает из представления sg(x) = x — (х— 1)彳 1 = (х + 1)二 X.
Оставляем доказательство читателю в качестве легког| упражнения. П
Следующая теорема убеждает нас в том, что класс 財 до| статочно широк.;
4.3. Теорема. Функции т (для m g N) 〃 все функции, перечив ленные 6 теоремах 2-4.5 и 4.15, элементарны.
Дока зашел ьст во. Мы дадим наброск» доказательств для рядя функций, для которых эти доказательства нетривиальны или зн.
чительно оьчичаются от тех, что даны в гл. 2. Всюду используется терминология гл. 2.
⑴力•犷=Цх=Ци:(х, »)•
У" i<y
qt. qt(x, p) = RZ&y (x = 0 или х(г+ 1) > y) = ^z^y (x 昊(x 仅+1)二力=0).
rm. rm (x, y) = r/ — x qt (x, y).
px. Предполагая, что доказана элементарность функции Рг (х) (характеристическая функция предиката «х — простое число»), имеем Рх = МР<22”(х = 0 или у является х-м простым числом) = pi/ & 22a^%= £Pr ⑵)=му 《 22。(卜一2 Pr ⑵卜0). (Граница рх ^ 22Ф легко доказывается по индукции, используя неравенство px+i ^р}р2.. .рх+ 1.)
Предоставляем читателю в качестве упражнения доказать элементарность других функций. □
Покажем теперь, что класс S замкнут относительно операции примитивной рекурсии, при условии что мы заранее знаем элементарную границу для функции, определенной уравнением рекурсии.
4・4・ Теорема. Пусть / (лг) и g(x, у, z) элементарны, и пусть функция h определяется из /, g посредством
九(*, 0) = f (х),
九(х, У+ l) = g(*,Р,九(%, f/))«
Предположим, что существует элементарная функция Ь(х, у), такая, что h(x, у) ^b(xt у) для всех х, у. Тогда функция h элементарна.
Доказательство. Фиксируем х, у; тогда вычисление h(x, у) обычным способом требует вычисления последовательности чисел й (х, 0), А (л:, 1), •・・,九(х, у).Их можно закодировать одним числом s, где
$ = 2加工。)3以",1)…%;产=口р然:"&JJp"i z)= (скажем) е(*, у), z《yКу
где c(x, у)——элементарная функция. Ключевыми свойствами s являются ⑴(s'=似*, 0) = f (х); (ii) для z < у (s)z+2 = ^(*, z+l)=g(x, 2, (s)z + J И (iii) h(x, y)^(s)y + 1. Таким образом, получаем
九(x,У)= О&с(х,以⑹尸/⑴ н Yz<“((s)z+2H
==g(X, Z (s)z + i)))jy + i・
Это выражение для h показывает, что функция Л элементарна согласно доказанным выше результатам. 口
Описанный в этой теореме способ определения функции называется ограниченной (примитивной} рекурсией. Мы увидим позднее, что это более слабая операция, чем примитивная рекурсия. Приведенный выше результат кратко можно выразить, сказав, что класс 6 замкнут относительно ограниченной рекурсии.
Следствие. Функции состояния ал, а следовательно, и функции сп и jnl определенные в доказательстве теоремы 5-1.2 (вычислимость универсальных функций), являются элементарными. Следовательно, и предикат Тп нормальной формы Клини (теорема 5-1.4) элементарен.
Доказательство. Мы ссылаемся на формальное доказательство теоремы 5-1.2, как оно дано в гл. 5 и завершено в приложении к этой главе. Наиболее рутинная работа здесь состоит в установлении (с использованием приведенных выше результатов) элементарности функций, использованных в построении функции о〃. Для фактического определения о〃 примитивной рекурсией заметим, что для о“ можно получить следующие элементарные границы:
以(% X, f)& П Р『ах ^^ и jn (% X, /) & In (e). 1 W i W p (Pe)
Эти две границы являются элементарными функциями е, х, /, поскольку мы показали, что функции p(PJ и 1п(е) элементарны. Учитывая эти обе оценки, мы получим элементарную границу для функции оп и можем применить теорему 4.4. Чтобы установить элементарность о〃, осталось показать, что функции р(Р) In (е) и все другие функции, рассмотренные в приложении к гл. 5, элементарны. Это предоставляется сделать читателю в качестве упражнения. (Единственный общий принцип, необходимый для этого упражнения, но не разобранный явно, состоит в том, что класс элементарных функций замкнут относительно определений с разбором случаев; см. упр. 4.12 (4а) ниже.) Элементарность функций с〃,/п и Тп выясняется сразу, так как все они явно определяются подстановками из о〃 и других элементарных функций. □
Следующее следствие часто выражают в такой форме: функции, вычислимые за элементарное время, элементарны.
Следствие, (а) Предположим, что Ь(х)—элементарная^ а Ф^}—тотальная функции, такие, что 管)(х)&Ь(н) п. в.2). Тогда функция 帆 элементарна.
(Ь) Если b (х) элементарна, то 储三 6・
1)Здесь мы расширяем очевидным образом понятие «почти всюду» на n-местные предикаты 府(х):М (х) истинно почти всюду (п. в), если предикат М (л) истинен на всех, кроме конечного множества, n-наборах R.
Доказательство, (Ь) является очевидной переформулировкой (а) для одноместных функций. Для доказательства (а) предположим, что 货)(х) &力(х) п. в. Тогда функция
h(x) = MWb(х) [/„ (% х, 0 = 0]
элементарная, и мы получаем 必")(*) = (% (% %, 々(x))} п. в.
Как мы уже доказали, в правой части равенства стоит элементарная функция. Чтобы вывести элементарность ф「, заметим, что функция, почти всюду совпадающая с какой-нибудь элементарной, сама элементарна (см. упр. 4.12(4Ь) ниже). □
Здесь читатель может задать вопрос, не совпадают ли элементарные функции с примитивно рекурсивными. Все конкретные примеры примитивно рекурсивных функций из предыдущих глав оказались, как мы видели, элементарными. Единственное различие между этими классами состояло в том, что для класса ^ мы смогли доказать замкнутость относительно лишь ограниченной примитивной рекурсии. Но, быть может, это только кажущееся различие? Как мы увидим ниже, ответ на это отрицательный. Ограниченная рекурсия как способ определения функций действительно слабее, чем примитивная рекурсия. Как следствие из теоремы, которая сейчас будет доказана, мы укажем примитивно рекурсивную, но не элементарную функцию.
Тем не менее 6 является чрезвычайно большим классом и содержит подавляющее большинство функций, встречающихся в практической математике. Класс 6 является первым естественным приближением к классу эффективно вычислимых функций, основанным на обычных операциях арифметики. И действительно, утверждение о том, что 6 содержит все практически вычислимые функции, было обосновано в ряде работ (см., например, Брайнерд и Ландвебер [1974]】).В этих работах отмечается, что для всякой практически вычислимой функции f(x) должно найтись такое натуральное число 后 что / (х) можно вычислить за время, не превосходящее
产吶
и См. на русском языке статьи: Ричи Р. В. «Классы предсказуемо вычислимых функций» и Мучника А. А. «О двух подходах к классификации рекурсивных функций» (стр. 123—138) в сб. перев. «Проблемы математической логики».— М.: Мир, 1970.— Прим, перев.
шагов для почти всех х. В конце концов в практическом плане это число шагов становится очень большим в сравнении с х даже для малых значений k. Поскольку функция
2 /
(при фиксированном А) элементарна, это означает, что, согласно следствию 4.6, функция / элементарна.
В оставшейся части этого параграфа мы покажем, что элементарные функции можно точно охарактеризовать как такие, которые можно вычислять за время
2 moi (工)
для некоторого (зависящего от f) числа k. Первым шагом в этом направлении будет доказательство теоремы, из которого мы извлечем пример не элементарной примитивно рекурсивной функции.
2 пгаг ⑵ /2 пгаг ⑵ /Теорема. Если / (х)——элементарная функция, то найдется такое число R, что для всех х
2 пгаг ⑵ /
2 пгаг ⑵ /
/甸4Доказательство. Обозначая число
4
через b^(z), получаем bo(2)= z, bx (г) = 2г, и вообще &Л+1(г)= =2%а). (Таким образом, 22' означает 2(2立,а не (2?尸 и т. д.) Заметим, что bk+l(z)^bk(bl(z)). Дальше мы явно используем тот факт, что bk является возрастающей функцией и что za < 222 для всех z.
Для доказательства теоремы рассмотрим каждый случай, который обеспечивает принадлежность функции / классу 6・ Вспоминая определение 4.1, имеем:
0) %+У2*;
U4 (х) & max (х);
% —《max (х, у);
Злемеитарные функции241
% + y&2max (х, у) ^ 2тах(%,*
ху & (max (х, у))2 & 22тах
ПустьЛ(х) = /:(^1(л:), .. ^gm(x)) и ^1э ..., ^, / таковы, что gj (*) &” (max (х)) (1 ^i^m) nf^^bi (max (//)). Пусть 々=max 优i,・・・,/?犷).Тогда мы имеем
"(%) &b Jmax 儡(x), •・•,且加(*))) &
&& (max (瓦I (max (%)),・• •,瓦由(max (*)))) &
& 瓦仇(max (*))) = 〃+左(max (*)).
) Пусть g(x, y)= £ /(*, z) и f(x, z)《瓦(max(x, z)).
z V 4
Тогда мы имеем
g (x,力《,瓦(max (x, z)) & ybk (max (*, у)) & zvy
& 瓦((max (x, у)))2 & 22%(e * 川)=瓦十? gax (x,圻).
Случай, когда g является ограниченным произведением, разбирается аналогично; оставляем его в качестве упражнения читателю. (4.12(6) ниже). □
Следствие. Функция
примитивно рекурсивна, но не элементарна.
Доказательство. Для доказательства примитивной рекур- сивности / заметим, что f(%) = g(%, %), где g определяется посредством
g(%, 0)=/
g(x, у+ l) = 2gd"
(так что функция g примитивно рекурсивна).
Неэлементарность функции f обнаруживается, если заметить, что для каждого k
/3+1) =瓦+1他+1)<瓦他+1),
так что ни для какого k не выполняется одновременно для всех х неравенство f(x) ^bk (х). (Заметим, что / получается посредством «диагонализации класса 存》.)□
Предпоследний шаг навстречу нашей цели будет сделан, если мы покажем, что элементарные функции могут быть вычислены за элементарное время.
Теорема. Если функция f (х) элементарна, то существует вычисляющая / программа Р, такая, что /*)(х) элементарна.
Доказательство. Мы должны исследовать все разные способы, какими может получаться функция из 6. Нам поможет следующая общая лемма.
Лемма. Пусть х = (х,, •・•,%〃). Предположим, что функция h(x, у) элементарна и определяется посредством рекурсии
Начало
шагоб для каждого 彳<д
Рис. 12с. Число шагов в вычислении по рекурсии.
из функций /(х) 〃 g(x, у, г), которые можно вычислять за: элементарное время. Тогда и А можно вычислять за элементарное время.
Доказательство. Возьмем программы F и G в стандартной форме, такие, что функции tF и Eg элементарны. (Для удобства обозначений мы здесь и повсюду опускаем верхние индексы В /(£)для каждой программы Р каждый раз, когда их значение ясно.) Извлечем программу Н для функции 力 из доказательства
теоремы 2-4.4, и покажем, что функция tH элементарна. Мы просто вычислим tн (х, 6 в соответствии с блок-схемой на рис. 2с и явной программой //, являющейся ее трансляцией. Мы воспроизводим эту блок-схему на рис. 12с, отмечая рядом с каждой ее компонентой число шагов, требующихся для ее реализации при выполнении программы Н. Теперь просто вычисляется функция
打(Х, у) = "+1+(р (尸)+ /f(x)+1) +匂+1) +
+ £ (p(G)+ %(*,"/!(*, ^)) + 3)+1, k<y
которая, очевидно, элементарна, так как f& tG и Л все элементарны. □
Доказательство теоремы 49 Рассмотрим каждый случай в определении класса
Функции %+ 1 и (7?(х) можно вычислить программами за один шаг. Для % 二 у, х + у, ху воспользуемся леммой 4.10. Рассмотрим, например, % + у; эта функция определяется рекурсией из функций f(x) = x и g(x, у, z) = zj 1, которые обе вычислимы за элементарное время. Теперь применим лемму 4.10. Аналогично рассматриваются 工亠у н ху, в случае х—у результат надо доказать сначала для х— 1, снова применяя лемму 4.10.
Подстановка. Предположим, что А (х) = / (gi (х), ... ・..,gm (х)) и каждая функция /, g“ ..., gm вычислима за элементарное время по программам F, Gn ..., Gm стандартного вида. Пусть Н ——программа, вычисляющая функцию й, данная в доказательстве теоремы 2-3.1. Вычисляя прямо по той программе, мы получаем
/"(*) = 〃 + £ (Р (Gf) + 6・(х)+ 1)+р(尸)+〃(gi(x),・•・,gm(x))+1, 4 = 1
являющуюся элементарной функцией, полученной подстановкой.
Ограниченные суммы и произведения. Результат устанавливается применением леммы 4.10. Предположим, что g(x, у)= 2 f (х, z) и / вычисляется за элементарное время.
Тогда g получается рекурсией из функций 0 и z + f (х, у), обе из которых вычислимы за элементарное время (из п. (i) и (ii)). Следовательно, согласно лемме 4.10, и функция g вычислима за элементарное время.
Доказательство для ограниченного произведения аналогично и предоставляется читателю в качестве упражнения (4.12(8) ниже). □
Итак, вся тяжелая работа уже сделана! Чтобы дать они? сание класса 6, к чему мы стремимся, полезно расширить понятие класса сложности, включив в него n-местные функции для всех п. Предположим, что Ь(х)——тотальная функция; положим
^l — {f\f тотальна и / = 6『)для некоторого е с/;")(х) &b(max (х)) п. в.}.
Очевидно, 6Ь = KJ А {одноместные функции}.
Нашей заключительной теоремой является следующая.
Теорема. Тотальная функция / (х) элементарна тогда и только тогда, когда она вычислима за время ^ bk (max (х)) для некоторого k, т, е. S= U ©d •
Доказательство. Так как для каждого k функция b也(гпах(х)) является элементарной функцией, то, согласно следствию 4.6, имеем 回 三 W. Следовательно, U 位 三由・
Для доказательства обратного включения предположим, что / (х)——элементарная функция. По теореме 4.9 существует вычисляющая / программа 尸,такая, что функция tF элементарна; теперь по теореме 4.7 найдется число k, такое, что tF (х) ^bk (max (л:)). Тогда /€@;々, и таким образом наше доказательство завершено.
Упражнения
Покажите, что включение функций х + у и ху в определение класса ^ не является строго необходимым. (Указание. Сначала получите ху как ограниченную сумму; а затем получите % + у из подходящих произведений, используя 亠).
Докажите лемму 4.2 (Ь).
Завершите доказательство теоремы 4.3.
(а) Покажите, что класс S замкнут относительно определения с разбором случаев, когда функции и предикаты в определении элементарны.
) Покажите, что если /(х) элементарна и g(x) = f (лг) п. в., то g(x) элементарна.
Проверьте все детали в доказательстве следствия 4.5.
Завершите доказательство теоремы 4.7, показав, что ec-i ли g(x, !/)= П /(^. %) н /(*, z)《瓦(max(x, z)), то』
z< У
g(x, у)《瓦+$(тах(л:, //)).
Дайте пример одноместной примитивно рекурсивной^ функции, не элементарной и отличающейся от примера в след」 ствии 4.8.
Докажите, что если f вычислима за элементарное время, a g(x, у) = Цг <yf(X, z), то и g вычислима за элементарное время.
Пусть Фе ——мера сложности для одноместных функций, связанная с te элементарной функцией г, т. е. для каждого е и для почти всех х, для которых определено te (х),
①/%)&「(%,//%)) И %(%)&「(%, фе (х)).
Для каждой тотальной функции Ь(х) через G? обозначим класс сложности функции b относительно меры сложности Ф, т. е.
6^ = {Фе|Фе тотальна и Ф^ (х) ^ b (х) п. в.}. Докажите, что U 縛=品(класс одноместных элементарных функций).
Рекомендации для дальнейшего чтения. Более полное изложение машинно-независимой теории сложности читатель может найти в основополагающей статье Блюма [1967] или хорошем обзоре теории сложности, принадлежащем Хартманне у и Хопкрофту [1971]. Статья Янга [1973], которую мы уже цитировали в предыдущих параграфах, упрощает некоторые доказательства основных теорем. В книге Брайнерда и Ландвебера [1974] имеется хорошо написанная глава о сложности и дано также описание различных субрекурсивных классов функций (включая S) в терминах времени вычисления. Аналогичные описания рассматриваются также в ранних (в истории сложностной теории) статьях Ричи [1963] и Кобхэма [1965], использующих ленточную меру сложности (т. е. память машин Тьюринга п).
】)Можно рекомендовать также чтение двух сборников переводов на русском языке: Проблемы математической логики (М.: Мир, 1970), Сложность вычислений н алгоритмов (М.: Мир, 1974).
Особое значение в плане практической вычислимости имеет класс функций Р, вычислимых за время, ограниченное каким-нибудь полиномом от длины /?-ичной записи (k > 1) аргумента, т. е. объема входной информации. Хотя некоторые часто встречающиеся функции вроде экспоненты не принадлежат этому классу в силу своего быстрого роста, такие функции практически вычисляются только для малых значений аргумента. Многие важные прикладные задачи приводят к предикатам класса NP、 т. е. вычислимых на недетерминированных машинах Тьюринга за полино-. миальное (от длины входа) время, и АИР, т. е. вычислимых на альтернирующих машинах Тьюринга за полиномиальное время. О недетерминированных вычислениях (одно из важнейших понятий теории алгоритмов!) и центральной проблеме Р = NP? см., например, книгу М. Гэри и Д. Джон- сона «Вычислительные машины и труднорешаемые задачи» (М.: Мир, 1982), а об альтернации —одноименные статьи, «Кибернетический сборник», нов. сер., вып. 19 (М.: Мир, \Ж). —Прим, перев.
Глава 13.
Пути дальнейшего изучения
Наш основной курс теории вычислимости был построен таким образом, чтобы он мог служить трамплином более глубокого и более подробного изучения этой науки в одном из нескольких направлений. В этом кратком послесловии мы укажем ряд областей, с которыми желательно было бы ознакомиться, и дадим некоторые рекомендации для дальнейшего чтения. Предложенное ниже разделение не является жестким, и между различными областями, которые мы назовем, существуют многочисленные взаимосвязи.
Вычислимость. Дальнейшее изучение теоретического понятия вычислимости (отправной пункт рассмотрений этой книги) можно продолжить в двух направлениях: (а) более подробное исследование других эквивалентных подходов к вычислимости (обзор которых был дан в гл. 3); (Ь) исследование более ограниченных понятий вычислимости, включая, например, конечные автоматы н аналогичные устройства.
Некоторые ссылки для (а) были даны в гл. 3. В обоих случаях мы рекомендуем книги Минского [1967] (относительно полное изложение), Арбиба [1969] или Энгелера [1973]】).
Рекурсивная теория. Под этим традиционным названием мы подразумеваем изучение более глубоких идей и понятий, вытекающих из понятия вычислимости на N. Такое изучение мы начали в гл. 7 и 9—11. Перечислим отдельные направления этой теории.
Иерархии', имеются в виду разные способы расширения последовательности, начинающиеся с «рекурсивные, рекурсивно перечислимые, ...», чтобы получить иерархию множеств разных сортов, каждый из которых характеризуется более трудной проблемой разрешения, чем предшествующий. Наибо-
1)На русском языке можно рекомендовать обзорные статьи П. Фишера «Многоленточные и бесконечные автоматы» (Киберн. сб., нов. сер., вып. 5. —М.: Мир, 1968, с. 64 — 80), Ахоу А. и Ульмана Д. «Теория языков» (Киберн. сб., нов. сер. —М.: Мир, 1969, с. 145—183), а также упомянутые выше сборники переводов «Проблемы математической логики» (М.: Мир, 1970), «Сложность вычислений и алгоритмов» (М.: Мир, 1974) и сб. переводов «Языки и автоматы» (М.: Мир, 1975). — Прим, перев.
лее важными являются арифметическая иерархия, гиперарифметическая иерархия и аналитическая иерархия.
Сводимости и степени: между &加 и &「 лежит целый спектр сводимостей, подлежащих исследованию. Читатель, желающий глубже проникнуть в сводимость по Тьюрингу, должен основательно ознакомиться с доказательством теоремы Фридберга—Мучника, содержащей решение проблемы Поста, прежде чем перейти к дальнейшим результатам и доказательствам в этой области, некоторые из которых упоминались в гл. 9.
Рекурсии 8 высших типах', в гл. 10 мы вкратце рассмотрели вопрос о вычислимых функциях от вычислимых функций. Это исследование можно продолжить на вычислимость функций от функций и т. д. Здесь, естественно, также встречаются иерархии.
Книга Роджерса [1967] является наилучшим и единственным источником сведений в каждой из этих областей. Она является наиболее глубоким и исчерпывающим изложением тех проблем, которые мы затронули в нашей книге. Более специальными источниками информации о степенях являются книги Сакса [1963], Шёнфилда [1971] и Симпсона [1977].
Под заголовком «Рекурсивная теория» следует упомянуть также такую область, как
Обобщенная теория рекурсии. Это относительно новая область исследования, в которой идеи, возникшие в теории вычислимости на N, переносятся на другие структуры, которые не являются простыми перекодированиями N. Успехи в таком построении достигнуты для некоторых множеств, называемых допустимыми ординалами. Статья Шора [1977] представляет собой введение в эту область и содержит аннотированную библиографию.
Разрешимость и неразрешимость. Хороший обзор неразрешимых проблем в целом имеется в статье Дэвиса [1977].
Некоторые книги содержат введение в математическую логику и разрешимость и неразрешимость (см. Мендельсон [1964] или Роббин [1963]). Эти книги содержат также полное изложение теоремы Гёделя и связанных с ней результатов. Дальнейшее изложение этих вопросов содержится в книгах Белла и Маковера [1977] и Булоса и Джеффри [1974]. В статье Рабина [1977] дается обзор методов и результатов о разрешимости математических теорий.
Машинная математика. Изучение вопросов, объединенных выше под заголовком «Вычислимость», особенно конечных автоматов, связано, конечно, с машинной математикой, которую можно было бы назвать практической вычислимостью.
В этой сфере есть две области, которые мы слегка затронули. Это Программы и программирование^ дальнейшее изучение здесь могло бы включать такие вопросы, как генерация языков программирования, структурное программирование и семантика языков программирования (которую мы затронули в гл. 10). Эта проблематика изложена в книгах Арбиба [1969]. Бёрда^[ 19761, Брайнерда и Ланд вебер а [1979], Энгелера [1973] и Манна [1974].
Теория сложности: в конце гл. 12 мы назвали некоторые работы, рекомендуемые для дальнейшего чтения в этой области. Представляет интерес изучение функций / (х), которые можно вычислить за время, ограниченное некоторым многочленом от х. Основной нерешенной проблемой здесь является так называемая Р = ^P?-пpoблeмa (или проблема перебора): рассматриваются машины, которые обладают некоторой свободой при выборе следующего шага в вычислении (такие машины называются недетерминированными). Делая удачные догадки, часто можно провести вычисление быстрее, чем систематически проверяя все возможные детерминированные варианты. P = NР?・ проблема состоит в том, будет ли каждая функция, вычислимая за полиномиальное время на недетерминированной машине, вычислима за полиномиальное время на обычных (детерминированных) машинах. Эта проблема вкратце рассматривается Рабином [1977] и подробно обсуждается Карпом [1972] и Куком [1971]*.
СЛОВАРЬ ОБОЗНАЧЕНИЙ
Глава 1
R〃R〃z⑺ S(/z)z⑺ S(/z)? (加,n)J (加,% q)? (加,n)J (加,% q)Р (。1, & > • • •)1 p (a1,a2,• • • )t P (/ ,a2,• • ♦ )3ь g,JР (。1, & > • • •)1 p (a1,a2,• • • )t P (/ ,a2,• • ♦ )3ь g,JCmCmп-й регистрсодержимое регистра Rn команда обнуления команда прибавления единицы команда переадресации команда перехода гп становится х вычисление по программе Р вычисление заканчиваетсявычисление никогда не заканчивается окончательное значение & есть b классы вычислимых функций n-местная функция, вычисляемая по программе Рхарактеристическая функция множества Мп-й регистрсодержимое регистра Rn команда обнуления команда прибавления единицы команда переадресации команда перехода гп становится х вычисление по программе Р вычисление заканчиваетсявычисление никогда не заканчивается окончательное значение & есть b классы вычислимых функций n-местная функция, вычисляемая по программе Рхарактеристическая функция множества М
R〃
R〃
z⑺ S(/z)
z⑺ S(/z)
? (加,n)
J (加,% q)
? (加,n)
J (加,% q)
Р (。1, & > • • •)1 p (a1,a2,• • • )t P (/ ,a2,• • ♦ )3ь g,J
Р (。1, & > • • •)1 p (a1,a2,• • • )t P (/ ,a2,• • ♦ )3ь g,J
Cm
Cm
п-й регистр
содержимое регистра Rn команда обнуления команда прибавления единицы команда переадресации команда перехода гп становится х вычисление по программе Р вычисление заканчивается
вычисление никогда не заканчивается окончательное значение & есть b классы вычислимых функций n-местная функция, вычисляемая по программе Р
характеристическая функция множества М
п-й регистр
содержимое регистра Rn команда обнуления команда прибавления единицы команда переадресации команда перехода гп становится х вычисление по программе Р вычисление заканчивается
вычисление никогда не заканчивается окончательное значение & есть b классы вычислимых функций n-местная функция, вычисляемая по программе Р
характеристическая функция множества М
Глава 2
и?
проектирующая функция или проекция
р
PQ или q
соединение, или конкатенация, программ
р(р)
число регистров, затронутых программой Р
усеченное (или допустимое) вычитание
Sg(X), si(x)
сигнум функции
rm (招 у), qt (х, у)
функции остатка и частного
NZ<y(・・・)
наименьшее г, меньшее, чем у
Рх
х-е простое число
(矶
степень %, входящая в разложение х на простые множители
Я(х, у)
спаривающая функция
^y[f (^ f/)=0]
оператор минимизации
Глава 3
丸 5?окласс (частично) рекурсивных функций
Q
1
класс примитивно рекурсивных функций класс функций, вычислимых по Тьюрингу
полученное по правилам из Q система Поста У порождает
множество цепочек, порожденных системой 乡
-а - и G-а - и Gкод слова о
-а - и G
-а - и G
слово, представляющее число 几 график функции / множество функций, вычислимых по Посту
Глава 4
?匕需取筑?匕需取筑множество команд МНР множество программ МНР функция, кодирующая программы n-я программа
?匕需取筑
?匕需取筑
функции, вычислимые по программе Ра области определения ^\ Фа множества значений Ф^\ Фа
/ f / ) M/ f / ) MГлава 5 универсальные функции код конфигурации следующая команда функция состояния Т-предикат Клини функция, полученная рекурсией из /, g •,gm) функция,полученная подстановкойg^ в f・
/ f / ) M
/ f / ) M
Глава 6
»1 у Q A°*RX,»1 у Q A°*RX,множество рациональных чисел логические символы для «и» и «влечет»
»1 у Q A°*RX,
»1 у Q A°*RX,
символы в логическом языке
в в§л л ^в в§л л ^Глава 7
в в
§
л л ^
в в
§
л л ^
12х|хСЛ}и{2х+1|хСВ} 5(%, у)\х^ А и у^В] "КС 物J
Глава 8
VVлогические символы для «не» и «или» множество утверждений языка L множества истинных, ложных утверждений языка L
V
V
(п+ 1)-е утверждение 乡 формула, выражающая 几 €К множество доказуемых утверждений {几 формула n С К доказуема} формула п ^ К доказуема}
^/^ ^^тв^6一一-dmа от а о о^/^ ^^тв^6一一-dmа от а о о^0 ё/ф& 马 о 犷 ^пе^0 ё/ф& 马 о 犷 ^пе
^/^ ^^тв^6一一-dmа от а о о
^/^ ^^тв^6一一-dmа от а о о
^0 ё/ф& 马 о 犷 ^пе
^0 ё/ф& 马 о 犷 ^пе
Глава 9
Л многозначно сводится к В многозначно эквивалентно m-степень Л частичный порядок на т-степенях m-степень рекурсивных множеств т-степени 0 н N m-степень множества К наименьшая верхняя граница степеней о, Ь команда оракула
МНРО-программа Р с оракулом % класс %-вычислимых функций класс %-частично рекурсивных функций функции, вычислимые по программе Q友 область определения и множество значений функции 6现 универсальная функция для х-вычислимости = {%|%€ 吟}
Л сводится по Тьюрингу к В эквивалентно по Тьюрингу Тьюрингова степень 力 частичный порядок на Т-степенях Т-степень рекурсивных множеств Т-степень множества К множество-скачок Л степень-скачок степени а (короче скачок) степени Q, Ь несравнимы
Глава 10
множество n-местных частичных функций конечная функция
код конечной функции наименьшая неподвижная точка для Ф функция, определенная программой т
Глава 11
последовательность вычислимых функций, перечисляемых функцией 力卜 диагональное перечисление
Глава 12
число шагов, требующихся для вычисления функции fP (х) по программе Р классы сложности с верхней границей класс элементарных функций
СПИСОК ЛИТЕРАТУРЫ
Арбиб (Arbib М. А.)
Theories of Abstract Automata. Prentice-Hall, Englewood Cliffs, N. J. Барвайз (ред.) Barwise J. (ed.)
Handbook of Mathematical Logic, North-Holland, Amsterdam, (Имеется перевод: Энциклопедия по математической логике в 4 тт. Выходит из печати в 1982—1983 г.).
Белл и Маковер (Bell J., Machover М.)
A Course in Mathematical Logic. North-Holland, Amst.
Берд (Bird R.)
Programs and Machines, Wiley, London —N. Y.
Блюм (Blum M.)
A machine-independent theory of thecomplexity of recursive functions. J. Assoc. Comput. Machinery, 14, 322—336. (Имеется перевод: Блюм М. Машинно-независимая теория сложности рекурсивных функций. Сб. «Проблемы математической логики».— М.: Мир, 1970, с. 401—422.)
Брайнерд и Ландвебер (Brainerd W.S., Landweber L. Н.)
Theory of computations, Wiley, New York.
Булос и Джефри (Boolos J., Jeffrey R.)
Computability and Logic, Cambridge Univ. Press.
Ван дер Варден (Van der Waerden B. L.)
Modern Algebra, vol. 1, Ungar, N. J. (Имеется перевод: Ван дер Варден Б. Л. Алгебра.— М.: Наука, 1976.)
Гёдель (Godel К.)
Uber formal unentscheidbare Satze der Principia Mathematica und verwandter System I. Monatshefte Math. Phys. 38, 173—198 (English translation in Davis [1965]).
Дэвис (Davis M.)
Computabiliy and Unsolvability. McGrow-Hil), New York.
(ed.) [1965] The Undecidable, Raven, New York.
Hilberfs tenth problem is unsolvable. Am. Math. Monthly 80, 033—269
Unsolvable problems. In Barwise [1977, p. 567—594].
Карп (Karp R. M.)
Reducibility among combinatorical problems. Complexity of Computer Computations (eds. R. Miller, J. Thatcher), pp. 85—104. Plenum Press, New York. (Имеется перевод: Карп P. M. Сводимость комбина- юрных проблем. Киберн. сб., нов. серия, 12.— М.: Мир, 1975.)
Клини (Kleene S. С.)
Introduction in Metamathematics. Van Nostrand, Princeton and North-Holland, Amsterdam. (Имеется перевод: Клини С. К. Введение в математику.— М.: ИЛ, 1957.)
[19671 Mathematical Logic. Wiley, London —New York. (Имеется перевод: Клини С. К. Математическая логика.— М.: Мир, 1973.)
Кобхэм (Cobham А.)
J196o] 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.
Кон (Cohn Р. М.)
Algebra, vol. 2, Wiley, London — New York.
Манин (Manin Y. I.)
A Course of Mathematical Logic (Graduate Texts in Mathematics 53). Springer-Verlag, New York.
Манна (Manna Z.)
Matiiematical Theory of Computation. McGrow-Hill, New York. Маргарис (Margaris A.)
First Order Mathematical Logic. Blaisdell, Waltham, Mass. Марков
Теория алгоритмов. Tруды МИАН СССР, т. 42.
Мендельсон〈Mendelson Е.)
Introduction to Mathematical Logic. Van Nostrand, Princeton. (Имеется перевод: Мендельсон E. Введение в математическую логику. 2-е издание.— М.: Наука, 1976.)
Минский (Minsky М. L.)
Computation: Finite and Infinite Machines. Prentice-Hall, Englewood Cliffs, N. J. (Имеется перевод: Минский M. Вычисления: Конечные и бесконечные машины.— М.: Мир, 1971.)
Патерсон (Paterson М. S.)
Unsolvability in 3x3 matrices. Stud. Appl. Math., 49, 105—107. Петер (Peter R.)
Recursive Functions. Academic Press, New York.
Пост (Post E.)
Formal reductions of the general combinatorical decision problem. Am. J. Math. 65, 197—215.
Рабин (Rabin M. O.)
Decidable theories. In Barwise [ 1977, pp. 595—629].
Ричи (Ritchie R. W.)
Classes of predictably computable functions. Trans. Am. Math. Soc. 106, 139—173. (Имеется перевод: Ричи P. В. Классы предсказуемо вычислимых функций. Сб. «Проблемы математической логики».— М.: Мир, 1970.)
Роббин (Robbin J. W.)
Mathematical Logic —a First Course. Benjamin, New York.
Роджерс X. (Rogers H.)
Theory of Recursive Functions and Effective Computability. McGraw- Hill, New York. (Имеется перевод: Роджерс X. Теория рекурсивных функций и эффективная вычислимость.— М.: Мир, 1972.)
Роджерс Р. (Rogers R.)
Mathematical Logic and Formalized Theories. North-Holland. Amst. Ротман (Rotman J. J.)
The Theory of Groups. An Introduction. Allyn and Bacon, Boston. Сакс (Sacks G.)
Degrees of Unsolvability. Annals of Mathematical Studies 55, Princeton.
Симпсон (Simpson S. G.)
Degrees of unsolvability: a survey of results. In Barwise [1977, pp. 631—652].
Смальян (Smullyan R. M.)
Theory of Formal Systems. Annals of Mathematic Studies 47, Princeton. (Имеется перевод: Смальян P. Теория формальных систем.— М.: Наука, 1981.)
Тарский (Tarski А.)
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.)
On computable numbers, with an application to the Entscheidungs- problem. Proc. London Math. Soc. 42, 230—265; 43, 5 44—546. (Reprinted in Davis [1965].)
Чёрч (Church A.)
An unsolvable problem of elementary number theory. Am. J. Math.
345—363. (Reprinted in Davis [1965].)
The Calculi of Lambda-Conversion. Annals of Mathematics. Studies 6, Princeton.
Шепердсон и Стерджис (Shepherdson J. C., Sturgis H. E.)
Computabili ty of recursive functions. J. Assoc. Com put. Machinery 10, 217—255.
Шёнфилд (Shoenfield J. R.)
Degrees of Unsolvability, North-Holland, Amsterdam. (Имеется перевод: Шенфилд Дж. Степени неразрешимости.— М.: Наука, 1977.) Шор (Shore R. А.)
a-Recursion theory. In Barwise [1977, pp. 653—680].
Хартманне, Хопкрофт (Hartmanis J., Hopcroft J. E.)
An overview of the theory of computational complexity. J. Assoc. Computing Machinery 18, 444——475. (Имеется перевод: Хартманне Дж., Хопкрофт Д. Обзор теории вычислительной сложности. Киберн. сб., нов. серия, 11, 1974, с. 131 —176.)
Фридберг (Friedberg R. М.)
Three Theorems on Recursive Enumeration. Jour. Symbolic Logic, 23, 309—316.
Энгелер (Engeler E.)
Introduction to the Theory of Computation. Acad. Press, New York. Янг (Young P.)
Easy constructions in complexity theory: gap and speed-up theorems. Proc. Am. Math. Soc. 37, 555—563.
Литература, добавленная при переводе
Гинзбург С.
Математическая теория контекстно-свободных языков. — М.: Мир. Гладкий А. В.
Формальные грамматики и языки.— М.: Наука.
Ершов Ю.几
Разрешимые теории и конструктивные модели.— М.: Наука.
Кук (Cook S. А.)
The complexity of theorem proving procedures. Proc. 3d Ann. ACM Symp. on Theory of Computing, Ohio, 151—159. (Имеется перевод: Кибернетический сб.: нов. серия, 12.— М.: Мир, 1975, с. 5—15.)
Новиков П. С.
Элементы математической логики.— М.: Физматгиз.
Пэйджер (Pager D.)
On the efficiency of algorithms. J. Assoc. Comput. Machinery 17, № 4, 708—714. (Имеется перевод: Кибернетический сб.: нов. серия. 10.—М., Мир, 1973, с. 137—147.)
ОГЛАВЛЕНИЕ
Предисловие редактора перевода
Предисловие
Введение. Предварительные замечания и обозначения , , , , t
Множества
Функции
Отношения и предикаты
Логические обозначения
Ссылки
Глава 1. Вычислимые функции
Алгоритмы или вычислительные процедуры
Машина с неограниченными регистрами
МНР-вычислимые функции
Разрешимые предикаты и проблемы
Вычислимость на других областях
Глава 2. Порождение вычислимых функций
Основные функции
Соединение программ
Подстановка
Рекурсия
Минимизация
Глава 3. Другие подходы к вычислимости: тезис Чёрча ....
Другие подходы к вычислимости
Частично рекурсивные функции (Гёдель — Клини)....
Отступление: примитивно рекурсивные функции
Тьюрингова вычислимость
Системы обработки символов Поста и Маркова
Вычислимость на областях, отличных от N
Тезис Чёрча
Глава 4. Нумерация вычислимых функций
Нумерация программ
Нумерация вычислимых функций .fl t ........
Обсуждение: диагональный метод t t ,.
s-m-n-теорема
Глава 5. Универсальные программы
Универсальные функции и универсальные программы ・.
Два приложения универсальной программы
Эффективные операции на вычислимых функциях .... Приложение. Вычислимость функции оп
57 9 9 0 2 3 3 4 46391 3
и 1 11 и и и и ox 00 00
3333364049
667905355 5556677
^ ^ ^ ^ ^
2 2 7 9 2
9 9 9 9 0
06仃将履催傭兜泪 ^u^ s^ 68717677349292990307111117220222^^ш 第 s06仃将履催傭兜泪 ^u^ s^ 68717677349292990307111117220222^^ш 第 s
06仃将履催傭兜泪 ^u^ s^ 68717677349292990307111117220222^^ш 第 s
06仃将履催傭兜泪 ^u^ s^ 68717677349292990307111117220222^^ш 第 s
Глава 6. Разрешимость, неразрешимость и частичная разрешимость
Неразрешимые проблемы в теории вычислимости
Проблема слов в теории групп
Диофантовы уравнения
Алгоритм Штурма
Математическая логика
Частично разрешимые предикаты
Глава 7. Рекурсивные и рекурсивно перечислимые множества ...
Рекурсивные множества
Рекурсивно перечислимые множества
Продуктивные и креативные множества
Простые множества
Глава 8. Арифметика и теорема Гёделя о неполноте
Формальная арифметика
Неполнота
Теорема неполноты Гёделя•
Неразрешимость
Глава 9. Сводимости и степени
Многозначная сводимость
Степени
m-полные р. п. множества
Относительная вычислимость
Сводимость по Тьюрингу и степени Тьюринга
Глава 10. Эффективные операции на множестве частичных функций
Рекурсивные операторы
Эффективные операции над вычислимыми функциями
Первая теорема о рекурсии
Приложение к семантике языков программирования
Глава 11. Вторая теорема о рекурсии
Вторая теорема о рекурсии
Обсуждение
Теорема Майхилла
Глава 12. Сложность вычисления
Сложность и меры сложности
Теорема об ускорении
Классы сложности
Элементарные функции
Глава 13. Пути дальнейшего изучения
Словарь обозначений
Список литературы t tt t t tr t 9 t t
COMPUTABILITY
An introduction to recursive function theory
NIGEL CUTLAND
Department of Pure Mathematics, University of Hull
CAMBRIDGE UNIVERSITY PRESS CAMBRIDGE
LONDON NEW YORK NEW ROCHELLE MELBOURNE SYDNEY 1980
Н. Катленд
ВЫЧИСЛИМОСТЬ введение в теорию рекурсивных функций
Перевод с английского
А. А. Мучника под редакцией С. Ю. Маслова
Москва «Мир» 1983
ББК 22.1
К29
УДК 517.11 卜 681.3
Катленд Н.
К29 Вычислимость. Введение в теорию рекурсивных функций: Пер. с англ.—М.: Мир, 1983.—256 с., ил.
Книга известного английского математика, охватывающая основные вопросы теории вычислимых функций и ее приложений: сложность вычислений и алгоритмов, теоремы Гёделя о неполноте и Чёрча о неразрешимости, семантику языков программирования. Изложение замкнутое, методически продуманное, имеется много упражнений.
Для математиков, специалистов по ЭВМ, желающих ознакомиться с теоретическими основами машинной математики.
23—8323—83ББК 22.1 51ББК 22.1 512505000000—237
23—83
23—83
ББК 22.1 51
ББК 22.1 51
041 (01)—83~
Редакция литературы по математическим наукам
Найджел Катленд
ВЫЧИСЛИМОСТЬ. ВВЕДЕНИЕ В ТЕОРИЮРЕКУРСИВНЫХ ФУНКЦИЙ
Научн. ред. Л. Н. Бабынина. Мл. научн. ред. Р. И. Пяткина. Художник В. С. Голубев Xудожественный редактор В. И. Шаповалов. Технический редактор Л. П Бирюкова. Корректор Н. В. Андреева.
ИБ 3341
Сдано в набор 29.09.82. Подписано к печати 24.01.83. Формат 60x90*/ie« Бумага типографская № 2. Гарнитура литературная. Печать высокая. Объем 8 бум. л. Усл. печ. л. 16. Усл. кр.-отт 16,24. Уч.-изд. л. 14,07. Изд. № 1/2210. Тираж 1 0 000 экз. Зак. № 86 2. Цена 1 руб.
ИЗДАТЕЛЬСТВО <МИР> Москва, I-й Рижский пер., 2.
Ордена Октябрьской Революции и ордена Трудового Красного Знамени Первая Образ* новая типография имени А. А. Жданова Союзполиграфпрома при Государственном ко* митете СССР по делам издательств, полиграфии и книжной торговли. Москва, М-54, Валовая, 28
© Cambridge University Press 1980
© Перевод на русский язык, «Мир», 1983
Предлагаемая читателю книга известного английского математика представляет собой элементарное введение в область, служащую теоретической основой программирования и различных приложений теории алгоритмов в математике и логике, теории формальных языков, информационных системах и системах управления, биологии и других науках. Книга рассчитана на широкий круг читателей, включая старшеклассников, интересующихся перечисленными областями. Формально для ее чтения не требуется специальной подготовки, необходимые сведения из теории множеств и математической логики приводятся во введении и основном тексте.
При небольшом объеме автор сумел охватить обширный материал, представив в наглядном виде даже весьма нетривиальные результаты (например, теорему Блюма об ускорении). Наряду с собственно теорией рекурсивных функций излагаются ее основные приложения в формальной арифметике (теорема Гёделя о неполноте) и в математической логике (теорема Чёрча о неразрешимости узкого исчисления предикатов).
В методическом плане автор удачно выбрал в качестве основы изложения машины с неограниченными регистрами (МНР), известные также под названием адресных машин (RAM). Это дает большие преимущества по сравнению с традиционным изложением на основе машин Тьюринга или других понятий алгоритма. Однако в книге приводятся также сведения о других алгоритмических системах, включая машины Тьюринга. Автор исследует соотношения между различными вычислимо- стями, подводя читателя к тезису Чёрча и его обоснованию. Для читателей, соприкасающихся с программированием, изложение на базе МНР особенно привлекательно ввиду близости этих машин к реальным ЭВМ и удобного представления их программ в виде блок-схем.
Книга Катленда является хорошим учебником, написанным в современном духе. Своевременность появления ее перевода несомненна, если учесть, что книги Р. Петер и В. А. Успенского по вычислимым функциям, написанные в 50-х годах, несколько устарели, книга А. И. Мальцева «Алгоритмы и рекурсивные функции» носит более специальный характер и трудна для первоначального знакомства с предметом, а «Тео-
рия рекурсивных функций» X. Роджерса является по существу энциклопедией в рассматриваемой области. Кроме того, эти книги стали библиографической редкостью.
Для желающих более глубоко ознакомиться с отдельными темами в тексте даны рекомендации для дальнейшего чтения. Часть материала вынесена в упражнения. Имеются список специальных обозначений и указатель. Библиография дополнена рядом работ на русском языке.
С. Ю. Маслов
Когда свыше пятидесяти лет тому назад появилось понятие вычислимой функции, родилась новая ветвь математики; о ее важности можно судить хотя бы по применениям в столь разных областях, как теория машинных вычислений, философия и основания математики, а также во многих областях собственно математики. Настоящая книга служит введением в круг основных идей и результатов теории вычислимости (или теории рекурсии, как по традиции называют ее математики).
Первоначальной целью теории вычислимости было придать строгость интуитивной идее вычислимой функции, т. е. функции, значения которой могут быть вычислены или автоматически или каким-либо другим эффективным способом. Тогда мы сможем достичь более ясного понимания этой интуитивной идеи и приступить к матема|ическому исследованию понятия вычислимости, а также связанных с ним понятий разрешимости и рекурсивной перечислимости. Возникает богатая теория как с позитивным, так и с негативным аспектами (тут мы имеем в виду результаты о невычислимости и неразрешимости). Цель данной книги—познакомить читателя с этой теорией.
Мы могли бы дать описание теории вычислимости о точки зрения теории машинных вычислений, начав с вопроса: «Что в принципе могут делать вычислительные машины (без ограничений на память, время и стоимость)?» или, иначе говоря: «Какие теоретические ограничения им присущи?» Таким образом, в данной книге речь идет не о реальных вычислительных машинах и не о языках и методах программирования. Тем не менее наша главная тема является частью теоретических основ реальной вычислительной техники и должна представлять интерес для вычислителей и программистов.
Основное определение вычислимости у нас базируется на «идеализированной вычислительной машине» или машине с регистрами: при этом мы исходим из легкости, с которой такое изложение воспринимается лицами, изучающими предмет, большинство из которых знакомо с идеей компьютера. (Такое знакомство, однако, не предполагается, хотя и является полезным, и еще меньше мы рассчитываем на какой бы то ни было практический опыт обращения с компьютерами или калькуляторами.) Наш подход математически эквивалентен многим другим ранее предложенным подходам, включая подход, основанный на машинах Тьюринга, которому часто отдается предпочтение. (Эквивалентность этих подходов мы обсудим в гл. 3.)
Текст книги возник на основе курса, прочитанного студентам-математикам и вычислителям в Университете г. Халла. Книга ориентирована на студентов-математиков, не располагающих никакими знаниями предмета, или студентов-вычислителей, желающих дополнить свой практический опыт некоторыми теоретическими основами. Она рассчитана на студентов второго и третьего курсов, хотя начальные элементы теории (главы 1——7) доступны старшеклассникам. Единственное предварительное условие—знакомство с математическим языком множеств и функций (краткий обзор его дан во введении) и способность следить за логическими рассуждениями.
Последние главы (8——12) в большой степени независимы друг от друга. Поэтому краткий вводный курс может состоять из глав 1——7, дополненных по желанию материалом глав 8—12. В этих последних главах мы хотели обратить внимание читателя на ответвления и приложения основной теории вычислимости и наметили первые шаги в сторону их углубленного изучения. В заключительной главе дается краткий обзор возможных направлений дальнейшего изучения и некоторые рекомендации для последующего чтения. (Две книги можно рассматривать как естественное продолжение нашей—это книга М. Минского «Вычисления. Конечные и бесконечные машины», которая дополняет нашу книгу широким и исчерпывающим рассмотрением понятия вычисление (в отличие от вычислимости) и X. Роджерса «Теория рекурсивных функций и эффективная вычислимость», которая представляет собой более глубокое изложение рекурсивной теории.
Многие помогали мне в процессе написания этой книги. В первую очередь я хотел бы поблагодарить Джона Клива, у которого в 1966 г. в Бристольском университете я прослушал курс по теории рекурсивных функций и который познакомил меня с подходом, основанным на машинах с регистрами. Этот подход и применяется в настоящей книге. Я признателен Стэну Вайнеру и Дэвиду Йордану за их неослабевающий интерес к книге и оказанную мне поддержку (Стэном Вайнером были также сделаны ценные замечания по материалу глав 10 и 12). Я хочу также поблагодарить Дэвида Йордана и Дика Эпштейна за чтение рукописи и ряд ценных примечаний и исправлений. Я благодарен издательству Кембриджского университета за проявленный интерес и оказанное мне содействие, в результате которого появился окончательный текст книги. Наконец, я очень признателен моей жене Мэри за постоянную поддержку на всех стадиях написания и подготовки этой книги; во многом благодаря ее самоотверженности, чуткости книга увидела свет.