Через несколько месяцев после того, как была с блеском разрешена загадка банковского сейфа в Монте-Карло, Крейг и Мак-Каллох наконец-то навестили Фергюссона — их очень заинтересовала его логическая машина. Разговор скоро зашел о сущности доказуемости.
— Я расскажу вам интересную и весьма поучительную историю, — сказал Фергюссон. — На экзамене по геометрии одного студента попросили доказать теорему Пифагора. Он сдал свою работу преподавателю, но тот возвратил ее с пометкой: «Это не доказательство!» Молодой человек пошел к преподавателю и сказал: «Сэр, как вы можете утверждать, будто то, что я вам сдал, — не доказательство? За весь курс лекций вы ни разу не дали нам определения доказательства. Вы давали нам строгие определения таких геометрических понятий, как треугольник, квадрат, окружность, параллельность, перпендикулярность и т. д., однако никогда не привели нам точного определения того, что же вы называете доказательством. Как же теперь вы можете так уверенно заявлять, будто мое доказательство — вовсе не доказательство? Как вы можете доказать, что оно не является доказательством?»
— Блестяще! — воскликнул Крейг, захлопав в ладоши. — Этот юноша далеко пойдет. А что же ответил преподаватель?
— К сожалению, — усмехнулся Фергюссон, — преподаватель оказался сухим педантом без чувства юмора и воображения. Он снизил студенту оценку за непочтительность.
— Очень жаль, — с досадой сказал Крейг. — Окажись я на месте преподавателя, непременно поставил бы этому студенту высший балл.
— Разумеется, — согласился Фергюссон, — я бы поступил точно так же. Но вы же прекрасно знаете, как часто преподаватели, лишенные творческого начала, побаиваются способных студентов.
— Должен признаться, — сказал Мак-Каллох, — что на месте этого преподавателя я бы тоже не смог ответить на вопрос студента. Разумеется, я похвалил мы его за толково поставленный вопрос, но ответить на него я бы все-таки не смог. В самом деле, что такое доказательство? Когда я сталкиваюсь с правильным доказательством, я почему-то всегда понимаю, что оно правильно; когда мне попадаются слабые аргументы, я обычно могу их указать. Но если бы меня попросили дать строгое определение доказательства, я тоже оказался бы в весьма затруднительном положении.
— Точно так же, как и почти все работающие математики, — поддержал Мак-Каллоха Фергюссон. — В девяносто девяти процентах случаев они вполне могут распознать правильность доказательства или указать на слабые места в неправильном доказательстве, однако не и состоянии привести точное определение доказательства. Нас же, логиков, интересует прежде всего анализ самого понятия «доказательство» — ведь мы хотим определить его так же строго, как и любое другое математическое понятие.
— Но раз большинство математиков все же понимают, что такое доказательство, хотя и не могут дать его четкого определения, то так ли уж важно искать его? — заметил Крейг.
— Важно, и по нескольким причинам, — ответил Фергюссон. — Но даже не будь этих причин, я все равно котел бы знать это определение ради самого определения. В истории математики часто случалось, что какие-то основные понятия, например понятие непрерывности, интуитивно понимались и осваивались еще задолго до того, как для них было введено строгое определение. Однако, получив четкое определение, данное понятие как бы переходит в новую категорию. Становится возможным установить связанные с ним факты, которые было бы очень трудно или вовсе невозможно открыть, не зная совершенно четко объема этого понятия. В этом смысле не является исключением и понятие «доказательство». Так, иногда случается, что в доказательстве используется какой-нибудь новый принцип — например аксиома выбора — и при этом часто возникает сомнение, является ли применение этого принципа законным. Так вот, строгое определение понятия «доказательство» позволяет точно указать, какие математические принципы можно использовать, а какие нельзя.
С другой стороны, особенно важно иметь точное определение доказательства тогда, когда нужно установить, что данное математическое утверждение недоказуемо в той или иной системе аксиом. Данная ситуация очень похожа на положение дел с построением при помощи циркуля и линейки в евклидовой геометрии: там, для того чтобы показать, что некое построение (например, трисекция угла, квадратура круга или удвоение куба[6]) невозможно, требуется обычно более критическое определение понятия «построение», чем для того, чтобы показать, например, что то или иное геометрическое построение с помощью циркуля и линейки действительно возможно. То же самое происходит и с доказуемостью: чтобы продемонстрировать, что данное утверждение недоказуемо в некоторой исходной системе аксиом, требуется гораздо более строгое и критическое определение самого понятия «доказательство», чем для получения соответствующего положительного результата, а именно что данное утверждение в самом деле является доказуемым при принятии той или иной аксиомы.
— Итак, — продолжал Фергюссон, — если задана некоторая система аксиом, то доказательство в данной системе представляет собой конечную последовательность высказываний, построенную по очень строгим правилам. При этом оказывается совсем несложно чисто механическим путем решить, является ли данная последовательность высказываний доказательством в этой системе или нет. Собственно говоря, совсем несложно даже придумать машину, которая может это делать. Гораздо труднее оказывается создать такую машину, которая могла бы решать, какие высказывания в данной системе аксиом доказуемы, а какие нет.
— Ответ, я полагаю, зависит от выбора исходной системы аксиом…
— Сейчас меня интересуют вопросы механического доказательства теорем, то есть вопросы создания таких машин, которые могли бы доказывать различные математические истины. Вот, например, мое последнее детище, — сказал Фергюссон, с гордостью указав на какое-то престранное сооружение.
Крейг и Мак-Каллох несколько минут разглядывали машину, пытаясь разгадать ее назначение.
— И что же она умеет? — спросил наконец Крейг.
— Она может доказывать различные утверждения, касающиеся положительных целых чисел, — ответил Фергюссон. — Я использую язык, в котором имеются имена для разных множеств чисел, — точнее, подмножеств положительных целых чисел. При этом существует бесконечно много таких числовых множеств, которые поддаются наименованию на этом языке. Например, у нас имеются специальные названия для множества четных чисел, для множества нечетных чисел, для множества простых чисел, для множества чисел, делящихся на 3, и т. д. — вообще, можно сказать, что практически любое множество чисел, которое могло бы представить интерес для специалиста по теории чисел, обладает своим именем на этом языке. И хотя сама совокупность числовых множеств, поддающихся описанию на этом языке, содержит бесконечно много элементов, она (по мощности. — Перев.) будет все же не больше, чем множество всех положительных чисел. С каждым положительным целым числом n оказывается связанным определенное множество чисел Аn, имеющее имя на нашем языке — это позволяет представить себе, что все именуемые множества расположены в виде последовательности A1, A2…, Аn… (Если хотите, можете вообразить себе, например, книгу с бесконечным числом страниц, причем для каждого целого положительного n на соответствующей n-й странице приведено описание того или иного множества положительных целых чисел. Тогда система An — это множество, описанное на n-й странице этой книги.)
Введем теперь математический символ ∈, который означает «принадлежит» или «является членом». Для каждого числа х и произвольного числа у мы можем сформировать утверждение х ∈ Ау, которое означает, что х принадлежит множеству Ау. Это единственный вид утверждений, которые воспринимает моя машина. При этом задача машины состоит в том, чтобы определить, какие числа каким поддающимся описанию множествам принадлежат.
Далее, каждое утверждение x ∈ Ay имеет свой кодовый номер — число, которое, будучи записано в обычной десятичной системе счисления, состоит из цепочки единиц длиной x и следующей за ней цепочки нулей длиной у. Например, кодовый номер утверждения З ∈ A2 выглядит как 11100; кодовый номер утверждения 1 ∈ A5 имеет вид 100000. При этом кодовый номер утверждения x ∈ Ay, то есть число, состоящее из x единиц и следующих за ними у нулей, я буду обозначать символом x*y.
— Машина работает следующим образом, — продолжал Фергюссон. — Когда она обнаруживает, что число x принадлежит множеству Ay, то она отпечатывает число x*y, то есть кодовый номер утверждения x ∈ Ay. Если при этом машина печатает число x*y, то я говорю, что машина доказала утверждение x ∈ Ay. Кроме того, если машина способна напечатать число x*y, то я говорю, что утверждение x ∈ Ay доказуемо (с помощью моей машины).
Наконец, я знаю, что моя машина всегда точна — в том смысле, что каждое утверждение, которое можно доказать с ее помощью, является истинным.
— Минуточку, — вмешался Крейг. — Что значит «является истинным»? Какая разница между «является истинным» и «доказуемо»?
— Да это же совершенно разные вещи, — объяснил Фергюссон. — Я говорю, что утверждение x ∈ Ay истинно, если x действительно является элементом множества Ay. Если же оказывается, что машина способна напечатать число x*y, тогда я говорю, что утверждение x ∈ Ay доказуемо с помощью моей машины.
— Вот теперь ясно, — сказал Крейг. — Другими словами, утверждая, что ваша машина точна — или, иначе, что каждое утверждение, доказуемое с помощью машины, является истинным, — вы имеете в виду, что ваша машина никогда не напечатает число x*y, если x в действительности не принадлежит множеству Ay. Правильно я понял?
— Совершенно верно! — ответил Фергюссон.
— Скажите, а почему вы так уверены, что машина всегда точна? — спросил Крейг.
— Чтобы ответить на этот вопрос, я должен рассказать о ней более подробно, — ответил Фергюссон. — Дело в том, что машина работает на основе определенных аксиом относительно положительных целых чисел; эти аксиомы запрограммированы в машине в виде неких команд. Все эти аксиомы представляют собой хорошо известные математические истины. При этом машина не может доказать какое-либо утверждение, если оно не вытекает логически из этих аксиом. Но поскольку все аксиомы истинны, а любое логическое следствие из истинных утверждений тоже является истинным, то, стало быть, машина не способна доказать ложное утверждение. Если хотите, я могу перечислить эти аксиомы, и вы убедитесь сами, что машина действительно может доказывать только истинные утверждения.
— Сначала я хотел бы выяснить вот что, — сказал Мак-Каллох. — Допустим на некоторое время, что любое утверждение, доказуемое с помощью вашей машины, на самом деле является истинным. Значит ли это, что любое истинное утверждение вида x ∈ Ay доказуемо с ее помощью? Иначе говоря, способна ли ваша машина доказывать все истинные утверждения типа x ∈ Ay или только некоторые из них?
— Это очень важный вопрос, — ответил Фергюссон, — но, увы, ответа на него я не знаю. В этом-то как раз и состоит главная проблема, которую я никак не могу разрешить! Уже не один месяц я пытаюсь найти ответ на этот вопрос, но пока безуспешно. Так, я совершенно точно знаю, что моя машина может доказать любое утверждение вида x ∈ Ay, которое является логическим следствием заложенных в нее аксиом, однако я не знаю, достаточное ли количество аксиом введено мною в машину. Аксиомы, о которых идет речь, представляют собой нечто вроде общей суммы сведений, известных математикам относительно системы положительных целых чисел; и все же, может быть, их недостаточно, чтобы строго установить, какие же числа x и к каким поддающимся описанию множествам Ay принадлежат. До сих пор любое утверждение вида x ∈ Ay, которое я считал истинным, исходя из чисто математических соображений, оказывалось логическим следствием заложенных в машину аксиом; при этом машина способна доказать любое взятое мною утверждение такого вида. Однако то, что я не сумел найти истинного утверждения, которое машина не могла бы доказать, вовсе не означает, что такого утверждения не существует — может быть, я его просто еще не обнаружил. В то же время вполне может оказаться, что машина действительно способна доказать все истинные утверждения — но этого я тоже еще не сумел доказать. Пока я просто не знаю, как это сделать!
Короче говоря, после этого Фергюссон подробно объяснил Крейгу и Мак-Каллоху, какие аксиомы заложены в машину и какие чисто логические правила позволяют доказывать новые утверждения на основании уже имеющихся. Все эти подробности вполне убедили Крейга и Мак-Каллоха в том, что машина на самом деле точна — что она действительно доказывает лишь истинные утверждения. Однако вопрос о том, может ли машина доказать все истинные утверждения или только некоторые из них, так и остался нерешенным. На протяжении нескольких последующих месяцев они часто собирались вместе для детального обсуждения возникших вопросов — пока, наконец, задача не была полностью решена.
Я не стану утомлять читателя и приводить все подробности полученного ими решения; упомяну лишь о том, что действительно представляется для нас важным. Переломный момент в их исследованиях наступил тогда, когда друзья в конце концов сумели сформулировать три ключевые особенности машины; этого оказалось достаточно для полного решения задачи. Кажется, первыми обратили внимание на эти особенности Крейг и Мак-Каллох, однако их окончательная формулировка принадлежит Фергюссону. Но прежде чем перейти к описанию особенностей машины. я позволю себе сделать небольшое отступление.
Для любого множества А положительных целых чисел, под его дополнением A̅ понимается множество положительных целых чисел, не входящих в А. Например, если А — множество четных чисел, то его дополнением A̅ будет множество нечетных чисел; если А — множество чисел, делящихся на 5, то A̅ — это множество чисел, которые на 5 не делятся.
Для любого множества А положительных целых чисел под A* мы будем подразумевать множество всех положительных целых чисел х, для которых х*х является элементом множества А. Поэтому для любого числа x выражение «число x принадлежит множеству А*» эквивалентно выражению «число x*x принадлежит множеству А».
А теперь перечислим три главные особенности данной машины, которые были обнаружены Крейгом и Мак-Каллохом.
Свойство 1. Множество A8 — это множество всех чисел, которые машина может напечатать.
Свойство 2. Для любого положительного целого числа n множество A3·n является дополнением множества An. (При этом под символом 3·n мы понимаем 3, умноженное на n.)
Свойство 3. Для любого положительного целого числа n множество A3·n+1 представляет собой множество An* (то есть множество всех чисел х, для которых число х*x принадлежит множеству An).
1. С помощью свойств 1–3 можно, оказывается, строго показать, что машина Фергюссона не способна доказать все истинные утверждения. Читателю предлагается найти такое утверждение, которое является истинным, но при этом не может быть доказано с помощью этой машины. Иначе говоря, мы должны найти такие числа n и m (они могут быть как одинаковыми, так и разными), для которых кодовый номер утверждения n ∈ Am — то есть число n*m — не мог бы быть напечатан машиной, но чтобы при этом число n являлось бы элементом множества Am.
2. В решении задачи 1, которое приведено ниже, числа n и m оба меньше 100. Имеется и другое решение этой задачи, для которого числа n, m также оказываются меньше 100 (при этом они опять могут быть как одинаковыми, так и разными). Сумеет ли читатель найти это решение?
3. Если не ограничивать сверху величину чисел n и m, то сколько всего решений может быть у такой задачи? Иначе, сколько существует истинных утверждений, которые недоказуемы с помощью машины Фергюссона?
Фергюссон вовсе не хотел отказываться от идеи создания такой машины, которая могла бы доказывать арифметические истины, не будучи в состоянии доказывать ложные заключения, поэтому он напридумывал целую кучу таких логических машин.[7] Однако для каждой новой машины либо он сам, либо Крейг с Мак-Каллохом все-таки находили такое истинное утверждение, которое машина доказать не могла. Поэтому в конце концов Фергюссон отказался от мысли сконструировать чисто механическое устройство, которое было бы одновременно и точным (в указанном выше смысле. — Перев.), и могло бы доказать любое истинное арифметическое утверждение.
Итак, все героические попытки Фергюссона не увенчались успехом, однако причина этого заключалась отнюдь не в недостатке авторской изобретательности. Мы не должны забывать о том, что он жил за несколько десятилетий до знаменитых открытий таких известных логиков, как Гёдель, Тарский, Клини, Тьюринг, Пост, Черч и другие ученые, о работах которых у нас вот-вот пойдет речь. Если бы Фергюссон дожил до этих открытий, то он понял бы, что неудачи его обусловлены исключительно тем, что он пытался создать нечто по сути своей совершенно невозможное! Поэтому, отдав должное Фергюссону и его коллегам Крейгу и Мак-Каллоху, распрощаемся с ними и перенесемся на три-четыре десятилетия вперед, в переломный 1931 год.
1. Одно из решений состоит в следующем: утверждение 75 ∈ A75 является истинным, но не может быть доказано машиной. И вот почему.
Допустим, что утверждение 75 ∈ A75 ложно. Тогда число 75 не принадлежит множеству A75. Следовательно, это число должно принадлежать множеству A25 (согласно свойству 2, множество А75 является дополнением множества A25). Это означает (согласно свойству 3), что число 75*75 принадлежит множеству A8, поскольку 25 = 3×8 + 1, и, следовательно, машина может напечатать число 75*75. Иначе говоря, это означает, что утверждение 75 ∈ A75 может быть доказано машиной. Таким образом, если бы утверждение 75 ∈ A75 было ложным, то оно вполне могло бы быть доказано машиной. Однако нам известно по условию, что машина точна и никогда не доказывает ложные утверждения. Поэтому утверждение 75 ∈ A75 не может оказаться ложным, и, стало быть, оно должно быть истинным.
Далее, поскольку утверждение 75 ∈ A75 истинно, то число 75 действительно принадлежит множеству A75. Поэтому оно не может принадлежать множеству А25 (согласно свойству 2), и, следовательно, число 75*75 в свою очередь не может принадлежать множеству A8, поскольку если бы это было так, то тогда, согласно свойству 3, число 75 принадлежало бы множеству А25. Поскольку ясно, что число 75*75 не принадлежит множеству A8, то утверждение 75 ∈ A75 не может быть доказано машиной. Итак, утверждение 75 ∈ A75 является истинным, но оно недоказуемо с помощью машины.
2. Прежде чем рассматривать другие решения, установим следующий факт весьма общего свойства. Пусть для всего дальнейшего ключевым является множество К — это множество всех чисел х, для которых утверждение x ∈ Аx недоказуемо машиной, или, что то же самое, множество таких чисел х, для которых число х*х не может быть напечатано машиной. Далее, множество A75 как раз и есть такое множество К, потому что утверждение, что x принадлежит множеству A75, равносильно утверждению, что x не принадлежит множеству A25, что в свою очередь равносильно утверждению, что число х*х не принадлежит множеству A8, где A8 — это множество тех чисел, которые машина может напечатать. Итак, A75 = К. Но при этом и A73 = К, потому что утверждение, что некое число x принадлежит множеству An, равносильно утверждению, что число х*х принадлежит множеству A8 (согласно свойству 3, поскольку 73 = 3×24 + 1), что в свою очередь равносильно утверждению, что число х*х не принадлежит множеству A8 (согласно свойству 2). Таким образом, A73 — это множество всех тех чисел х, для которых число х*х не принадлежит множеству A8 или, что то же самое, множество всех чисел х, для которых утверждение x ∈ Аx не может быть доказано машиной. Следовательно, A73 — это то же самое множество чисел, что и A75, поскольку оба они тождественны множеству К. Более того, для любого заданного числа n, для которого Аn = К, утверждение n ∈ Аn должно быть истинным, но недоказуемым с помощью машины. Это можно показать буквально с помощью тех же самых рассуждений, что и в рассмотренном нами частном случае n = 75 (в еще более общей форме эти рассуждения приведены в следующей главе). Тем самым мы получаем, что утверждение 73 ∈ A73 — это еще один пример истинного утверждения, кодовый номер которого машина напечатать не может.
3. Для любого числа n множество A9·n должно совпадать с множеством n. В самом деле, множество A9·n есть дополнение множества A3·n, а множество A3·n в свою очередь есть дополнение множества An; следовательно, множество A9·n совпадает с An. Это означает, что множество A675 совпадает с множеством A75, и, стало быть, утверждение 675 ∈ A675 — это есть еще одно решение задачи. Аналогично утверждение 2175 ∈ A2175 также является решением. Таким образом, мы получаем, что существует бесконечно много истинных утверждений, которые машина Фергюссона доказать не может: например, для любого n, которое равно произведению 75 на некоторое кратное числа 9 или произведению 73 на произвольное кратное числа 9, утверждение n ∈ А, является истинным, но недоказуемым посредством этой машины.
Крупной вехой в истории математической логики стал 1931 г. Именно в этом году Гёдель опубликовал знаменитую теорему о неполноте. Свою эпохальную работу[8] он начинает следующими словами:
«Развитие математики в направлении все большей точности привело к формализации целых ее областей, в связи с чем стало возможно проводить доказательства, пользуясь небольшим числом чисто механических правил. В настоящий момент наиболее исчерпывающими системами являются, с одной стороны, система аксиом, предложенная Уайтхедом и Расселом в работе „Princlpia Mathematica“, а с другой — система Цермело — Френкеля в аксиоматической теории множеств. Обе эти системы настолько обширны, что в них оказывается возможным формализовать все методы доказательства, используемые сегодня в математике, — иначе говоря, все эти методы могут быть сведены к нескольким аксиомам и правилам вывода. Поэтому, казалось бы, разумно предположить, что указанных аксиом и правил вполне хватит для разрешения всех математических проблем, которые могут быть сформулированы в пределах данной системы. Ниже будет показано, что дело обстоит не так. В обеих упомянутых системах имеются сравнительно простые задачи из теории обычных целых чисел, которые не могут быть решены на базе этих аксиом».[9]
Далее Гёдель объясняет, что такая ситуация обусловлена отнюдь не какими-то специфическими особенностями двух упомянутых систем, но имеет место для обширного класса математических систем.
Что имеется в виду под «обширным классом» математических систем? Это выражение интерпретировалось по-разному, и соответственно по-разному обобщалась теорема Гёделя. Как ни странно, одно из самых простых и доступных для неспециалиста объяснений остается наименее известным. Это тем более удивительно, что на такое объяснение указывал и сам Гёдель во вводной части своей первой работы. К нему мы сейчас и обратимся.
Рассмотрим систему аксиом со следующими свойствами. Прежде всего пусть у нас имеются имена для различных множеств положительных целых чисел, причем все эти «именуемые», или допускающие наименование, множества мы можем расположить в виде бесконечной последовательности A1, A2…, An… (точно так же, как в системе Фергюссона, рассмотренной в предыдущей главе). Назовем число n индексом именуемого множества А, если А=n. (Таким образом, если, например, множества A2, A7 и A13 совпадают между собой, то тогда числа 2, 7 и 13 — это все индексы одного и того же множества.) Как и для системы Фергюссона, с каждым числом x и с каждым числом у мы связываем утверждение, записываемое в виде x ∈ Ay, которое называется истинным, если x принадлежит А у, и ложным, если x не принадлежит Ay. Однако в дальнейшем мы не предполагаем, что утверждения типа x ∈ Ay являются единственно возможными утверждениями в данной системе, поскольку могут существовать и другие. Предполагается также, что любое возможное утверждение обязательно классифицируется либо как истинное, либо как ложное.
Каждому утверждению в данной системе присваивается некий кодовый номер, который мы будем называть геделевым номером, причем гёделев номер утверждения x ∈ Ay будем обозначать x*y. (Теперь уже нет нужды предполагать, что число x*y состоит из цепочки единиц длиной х, за которой следует цепочка нулей длиной у; сам Гёдель фактически использовал совсем другую кодовую нумерацию. Можно пользоваться самыми разными видами кодовой нумерации, и какой вид оказывался более удобным — это зависит от конкретного вида рассматриваемой нами системы. Так или иначе, для доказательства той общей теоремы, которую мы скоро докажем, нет необходимости вводить какую-то конкретную гёделеву нумерацию.)
Определенные утверждения в данной системе принимаются как аксиомы; кроме того, вводятся также некие специальные правила, по которым можно на основании этих аксиом доказывать различные другие утверждения. Таким образом, в данной системе имеется вполне определенное свойство утверждения, называемое его доказуемостью. Далее предполагается, что система правильна в том смысле, что каждое доказуемое в этой системе утверждение является истинным; отсюда, в частности, следует, что если утверждение x ∈ Aу доказуемо в данной системе, то число x действительно является элементом множества Ay.
Пусть P — это набор гёделевых номеров всех доказуемых в данной системе утверждений. Пусть опять же для любого множества чисел А его дополнение обозначается символом A̅ (это множество всех чисел, не принадлежащих А). Наконец, через А* мы будем обозначать множество всех чисел х, для которых число x*х принадлежит А. При этом нас будут интересовать системы, для которых выполняются следующие три условия G1, G2 и G3:
Условие G1. Множество P допускает наименование в данной системе. Иначе говоря, существует по крайней мере одно число р, для которого Ар представляет собой множество гёделевых номеров доказуемых утверждений. (Для системы Фергюссона таким р было число 8.)
Условие G2. Дополнение любого множества, допускающего наименование в данной системе, также именуемо в этой системе. Иначе говоря, для любого числа x найдется такое число х', для которого множество Аx' является дополнением множества Ах. (Для системы Фергюссона таким x' было число 3·х.)
Условие G3. Для любого именуемого множества А множество А* также именуемо в данной системе. Иначе говоря, для любого числа x всегда найдется такое число х*, что множество Аx, — представляет собой, множество всех чисел n, для которых n*n принадлежит Аx. (Для системы Фергюссона таким х* было число 3·x + 1.)
Очевидно, что условия F1, F2 и F3, характеризующие машину Фергюссона, представляют собой не более чем частные случаи условий G1, G2 и G3. Последние имеют большое значение потому, что они действительно выполняются для самых разнообразных математических систем, в том числе и для тех двух систем, которые рассмотрены в работе Гёделя. Другими словами, оказывается возможным расположить все допускающие наименование множества в виде бесконечной последовательности A1, A2…, An… и ввести для всех утверждений некоторую частную нумерацию Гёделя, причем так, что будут выполняться условия G1, G2 и G3. В результате все то, что является доказуемым для систем, удовлетворяющих условиям G1, G2 и G3, будет применимо ко многим другим важным системам. Теперь мы можем сформулировать и доказать теорему Гёделя в общей форме.
Теорема G. Для любой правильной системы, удовлетворяющей условиям G1, G2 и G3, должно существовать утверждение, которое является истинным, но недоказуемым в данной системе.
Доказательство теоремы G представляет собой простое обобщение доказательства, которое уже известно читателю для системы Фергюссона. Обозначим через К множество таких чисел х, для которых элемент x*x не принадлежит множеству P. Поскольку множество P (согласно условию G1) именуемо в данной системе, то же можно сказать и о его дополнении P̅ (согласно условию G2), а следовательно, и о множестве P̅* (согласно условию G3). Но множество P̅* совпадает с множеством К (поскольку P̅* — это множество таких чисел х, для которых х*x принадлежит P̅, или, другими словами, множество таких чисел х, для которых элемент x*x не принадлежит P). Таким образом, множество К допускает наименование в данной системе, откуда следует, что К = Аk по крайней мере для одного числа k. (Для системы Фергюссона одним из таких значений k было число 73, другим — число 75.) Таким образом, для любого числа x истинность утверждения x ∈ Ak равносильна утверждению, что число x*x не принадлежит P, а это в свою очередь означает, что утверждение x ∈ Ax недоказуемо (в данной системе). В частности, если мы возьмем в качестве x число k то истинность утверждения k ∈ Ak будет равносильна его недоказуемости в данной системе, что означает либо истинность, но недоказуемость этого утверждения, либо его ложность, но доказуемость в той же системе. Но последняя возможность исключена, поскольку мы предположили, что наша система является правильной; следовательно, указанное утверждение истинно, но недоказуемо в данной системе.
Обсуждение. В своей предыдущей книжке «Как же называется эта книга?» я рассматривал аналогичную ситуацию — остров, все жители которого делятся на рыцарей, которые всегда говорят только правду, и плутов, которые всегда лгут. При этом некоторых рыцарей мы называли признанными рыцарями, а некоторых плутов — отъявленными плутами. (Все рыцари высказывают истинные суждения, а признанные рыцари высказывают утверждения, которые не только истинны, но и доказуемы.) Далее, ни один из жителей острова не может сказать: «Я не рыцарь» — ведь рыцари никогда не лгут и, стало быть, рыцарь не станет говорить, будто он не рыцарь; плут же никогда не скажет о себе правдиво, что он не рыцарь. Именно поэтому ни один из обитателей острова никак не может заявить, что он не рыцарь. Вместе с тем некий островитянин вполне может сказать: «Я непризнанный рыцарь». Противоречия в таком заявлении нет, однако вот что интересно: сказавший это наверняка должен быть рыцарем, но непризнанным рыцарем. Дело в том, что плут никак не может сделать правдивого заявления, что он непризнанный рыцарь (поскольку он и в самом деле им не является); стало быть, говорящий должен быть рыцарем. Но раз он рыцарь, то, значит, должен говорить правду; стало быть, он рыцарь, но, как он сам утверждает, — непризнанный рыцарь. (Точно так же высказывание k ∈ Ak выдающее свою недоказуемость в данной системе, должно быть истинным, но недоказуемым в этой системе.)
Рассмотрим теперь систему, удовлетворяющую условиям G2; и G3 (условие G1 пока несущественно). Ранее мы определили P как множество гёделевых номеров всех утверждений, доказуемых в данной системе; пусть теперь Т будет множеством гёделевых номеров всех истинных утверждений в этой системе. В 1933 г. логик Альфред Тарский поставил вопрос: «Именуемо ли множество Т в данной системе или нет?» — и ответил на него. Ответ может быть получен на основе лишь условий G2 и G3. Однако, прежде чем говорить об этом, обратимся сначала к вопросу не меньшей важности — о системах, которые удовлетворяют по крайней мере условию G3.
Для любого заданного утверждения X и любого множества положительных целых чисел А мы будем называть X гёделевым утверждением для A, если либо X истинно и его гёделев номер принадлежит A, либо X ложно и его гёделев номер не принадлежит A. (Подобное утверждение можно представлять себе как высказывание о том, что его собственный гёделев номер принадлежит A: если это утверждение истинно, то его гёделев номер действительно принадлежит A; если же оно ложно, то его гёделев номер не принадлежит A.) Далее, мы будем называть систему гёделевой в том случае, если для каждого множества A, допускающего наименование в этой системе, существует хотя бы одно гёделево утверждение для A.
При этом самым существенным для нас пунктом является следующая теорема.
Теорема С. Если система удовлетворяет условию G3, то эта система является гёделевой.
1. Докажите теорему С.
2. В качестве частного случая рассмотрите систему Фергюссона. Найдите гёделево утверждение для множества A100.
3. Предположим, что некоторая система является гёделевой (даже если она и не удовлетворяет условию G3). Если эта система правильна и удовлетворяет условиям G1, и G2, то обязательно ли она содержит утверждение, которое является истинным, но недоказуемым в данной системе?
4. Пусть Т — множество гёделевых номеров всех истинных утверждений. Существует ли гёделево утверждение для Т? Существует ли гёделево утверждение для множества T̅, то есть дополнения Т?
Вот теперь мы наконец можем ответить и на вопрос, поставленный Тарским. В самой общей форме теорема Тарского формулируется следующим образом:
Теорема Т. Для любой заданной системы, удовлетворяющей условиям G2 и G3, множество Т гёделевых номеров истинных утверждений не именуемо в данной системе.
Примечание. Иногда слово «именуемо» заменяется словом «определимо», в результате чего теорему Т формулируют так: для достаточно богатой системы истинность в ее рамках не определима в пой системе.
5. Докажите теорему Т.
6. Следует отметить, что, доказав теорему Т, мы сразу и в качестве непосредственного следствия получаем теорему G. Может ли читатель сообразить, как это сделать?
Те системы, которые, как доказал Гёдель, являются неполными, обладают также следующим свойством: с каждым утверждением X связано утверждение X', о называется отрицанием X, которое истинно в том только том случае, если утверждение X ложно. Далее, если X' — отрицание некоего утверждения X — доказуемо в данной системе, то само утверждение X называется опровержимым в данной системе. Если предположить, что система правильна, то ни одно ложно, утверждение в этой системе не будет доказуемо и ни одно истинное утверждение не будет в ней опровержимо.
Ранее мы убедились, что условия G1, G2 и G3 влекут за собой существование некоего гёделева утверждения, или высказывания, G для множества, также что такое утверждение G является истинным, не. недоказуемым в данной системе (предполагая, конечно, что система правильна). Но поскольку G истинно, оно не может быть опровержимым в этой системе (опять, же в предположении правильности системы). Значит утверждение G в данной системе и не доказуемо, и неопровержимо. (Такое утверждение называется неразрешимым в данной системе.)
В своей монографии «Теория формальных систем»[10] (1960 г.) я рассматривал «двойственную» форму доказательства Гёделя, а именно: что будет, если вместо высказывания, утверждающего свою недоказуемость, построить высказывание, утверждающее свою опровержимость? Более строго эту проблему можно сформулировать так. Пусть R — множество гёделевых номеров опровержимых утверждений. Предположим, что X — гёделево утверждение для R. Что можно сказать о свойствах утверждения X?
Высказанная здесь идея развивается нами в следующей задаче.
7. Рассмотрим теперь правильную систему, которая удовлетворяет условию G3, а вместо условий G1, G2 потребуем выполнения следующего условия.
Условие G'1. Множество R именуемо в данной системе. (Таким образом, мы предполагаем, что система правильна и удовлетворяет условиям G1 и G3.)
а. Показать, что существует такое утверждение, которое нельзя ни доказать, ни опровергнуть в данной системе.
б. Рассмотрим следующий частный случай: пусть нам дано, что A10 — это множество R и что для любого числа n множество A5*n представляет собой множество (таких чисел х, для которых число x*x принадлежит Аn (здесь мы имеем частный случай условия G3). Задача теперь состоит в том, чтобы найти утверждение, которое было бы и недоказуемым, и неопровержимым и данной системе, а также определить, является ли это утверждение истинным или ложным.
Примечания. 1. Гёделев метод получения неразрешимого утверждения сводится к построению гёделева утверждения для множества P̅ — дополнения P; такое утверждение (его можно рассматривать как высказывание, утверждающее собственную недоказуемость) должно быть истинным, но недоказуемым в данной системе. Двойственный метод сводится к построению гёделева утверждения не для множества P̅, а для множества R; такое утверждение (его можно рассматривать как высказывание, утверждающее собственную опровержимость) должно быть ложным, но неопровержимым. (Поскольку оно ложно, оно так же недоказуемо и, следовательно, неразрешимо в данной системе.) Следует отметить, что те системы, которые рассматриваются в оригинальной работе Гёделя, удовлетворяют всем четырем условиям — G1, G2, G3 и G1, так что для построения неразрешимых утверждений можно использовать как тот, как и другой метод.
2. Высказывание, которое утверждает собственную недоказуемость, можно сравнить со словами того обитателя острова рыцарей и плутов, который заявляет, будто он непризнанный рыцарь, точно гак же высказывание, утверждающее свою собственную опровержимость, можно уподобить словам такого обитателя острова, который заявляет, что он отъявленный плут; этот человек и в самом деле мошенник, но неотъявленный. (Предоставляю читателю возможность доказать это самому.)
1. Предположим, система действительно удовлетворяет условию G3. Пусть S — любое множество, именуемое в данной системе. Тогда, согласно условию G3, множество S* тоже именуемо в этой системе. Значит, существует такое число b, для которого Аb = S*. Далее, число x принадлежит множеству S* только в том случае, если число x*x принадлежит множеству S. Поэтому x принадлежит множеству Ab только в том случае, если x*x принадлежит S. В частности, если в качестве x выбрать число b, то это число принадлежит; множеству Ab, только в том случае, если число b*b принадлежит множеству S. Кроме того, число b принадлежит Ab в том и только том случае, если утверждение b ∈ Ab истинно. Поэтому утверждение b ∈ Ab истинно тогда и только тогда, когда b*b принадлежит множеству S. Но число b*b есть гёделев номер утверждения b ∈ Ab. Следовательно, мы имеем, что утверждение b ∈ Ab будет истинным тогда и только тогда, когда гёделев номер этого утверждения принадлежит множеству S. Итак, если утверждение b ∈ Ab истинно, то его гёделев номер принадлежит S; если ж это утверждение ложно, то его гёделев номер принадлежит S. Таким образом, утверждение b ∈ Ab является гёделевым утверждением для S.
2. В системе Фергюссона при любом заданном числе n множество A3·n+1 представляет собой множество An*. Поэтому множество A301 — это есть множество A100*. Воспользуемся теперь результатом предыдущей задачи, положив b равным 301. Тогда утверждение 301 ∈ A301 будет гёделевым утверждением для множества A100. Вообще для любого числа n, выбрав b = 3·n+1, мы получим, что утверждение b ∈ Ab, является гёделевым для множества An в системе Фергюссона.
3. Да. Предположим, что данная система является гёделевой и что условия G1 и G2 выполняются; предположим также, что система правильна. Согласно условию G1, множество R именуемо в этой системе; поэтому, согласно условию G1, именуемо также и множество P̅ — дополнение P. Тогда, поскольку исходная система гёделева, то существует гёделево утверждение X для P̅. Это означает, что X истинно в том и только том случае, если гёделев номер утверждения X принадлежит P̅. Однако если гёделев номер утверждения X принадлежит P̅, то тем самым он не принадлежит P, а это значит, что утверждение X недоказуемо. Таким образом, гёделево утверждение для P̅ — это ни больше ни меньше как утверждение, которое истинно в том и только том случае, если оно недоказуемо в (данной системе, а такое утверждение (как мы уже видели) как раз и должно быть истинным, но недоказуемым в этой системе (если система правильна).
Итак, фактически суть доказательства Гёделя состоит в построении гёделева утверждения для множества P̅.
4. Очевидно, что всякое утверждение X является гёделевым утверждением для множества T, потому что если X истинно, то его гёделев номер принадлежит Т, а если оно ложно, то его гёделев номер не принадлежит Т. Следовательно, ни одно утверждение не может оказаться гёделевым для T̅, потому что не может существовать ни истинного утверждения X, гёделев номер которого принадлежал бы множеству T̅, ни ложного утверждения X, гёделев номер которого не принадлежал бы множеству T̅.
Читателю будет поучительно убедиться, что для любого множества чисел А и для любого утверждения X это X может являться гёделевым утверждением либо для А, либо для A̅, но никак не для обоих множеств сразу.
5. Рассмотрим сначала произвольную систему, удовлетворяющую условию G3. В соответствии с решением задачи 1 для любого множества, именуемого в рамках данной системы, существует гёделево утверждение. Кроме того, согласно решению задачи 4 не существует гёделева утверждения для множества T̅. Следовательно, если система удовлетворяет условию G3, то множество T̅ не допускает имени в этой системе. Если система удовлетворяет к тому же условию G3, то множество Т не именуемо в этой системе — потому что ли бы это было так, то тогда, согласно условию G3, допускало бы имя и его дополнение T̅, что на самом деле не имеет места. Это доказывает, что в системе, удовлетворяющей условиям G2 и G3, множество Т не именуемо.
Окончательно: а) если выполняется условие G3, то множество T̅ не именуемо в данной системе; б) если выполняются условия G1 и G3, то ни множество Т, ни его дополнение T̅ в этой системе не именуемы.
6. Как только теорема Т доказана, теорему G можно получить следующим образом.
Предположим, что мы имеем правильную систему, удовлетворяющую условиям G1; G2 и G3 — Из условий G2 и G3, согласно теореме Т, следует, что множество Т не допускает имени в данной системе. Но, согласно условию G1, множество P допускает имя в данной системе. Поэтому раз P допускает имя в рамка системы, а Т нет, то, значит, это должны быть разные множества. Однако каждое число, принадлежащее множеству P, входит также и в множество Т, поскольку нам дано, что система является правильной в том смысле, что каждое доказуемое утверждение в ней истинно. Стало быть, поскольку множество Т не совпадает с множеством P, в множестве Т должно существовать хотя бы одно число n, которое не принадлежит P. Вместе с тем, поскольку это n принадлежит Т, оно должно быть гёделевым номером некоего истинного утверждения X. Но поскольку это число n не принадлежит P, то утверждение X должно быть недоказуемым в данной системе. Значит, утверждение X истинно, но недоказуемо в данной системе. Итак, теорема G действительно имеет место.
7. Пусть теперь нам даны условия G'1 и G3.
а. Согласно условию G'1, множество R именуемо в данной системе. Тогда, согласно условию G3, множество R* также допускает имя в рамках этой системы. Следовательно, существует такое число h, при котором Ah = R*. Далее, по определению множества R* число x принадлежит R* в том и только том случае, если число x*x принадлежит множеству R. Поэтому для любого x это x принадлежит Ah в том и только том случае, если число x*x входит в множество R. В частности, если к качестве x выбрать h, то число h будет принадлежать, Ah в том и только том случае, если число h*h входит в R. Далее, h принадлежит Ah в том и только том случае, если утверждение h ∈ Ah, истинно. С другой стороны, поскольку число h*h есть гёделев номер утверждения h ∈ Ah, то h*h входит в R в том и только в том случае, если утверждение h ∈ Ah опровержимо. Значит, утверждение h ∈ Ah истинно в том и только в том случае, если оно опровержимо. Отсюда следует, что данное утверждение либо истинно и опровержимо, либо ложно и неопровержимо. Однако оно не может быть истинным и опровержимым, поскольку наша система правильна по условию задачи; следовательно, оно должно быть ложным и неопровержимым. Наконец, раз это утверждение ложно, оно не может быть и доказуемым (опять же потому, что система правильна). Таким образом, утверждение h ∈ Ah, недоказуемо и неопровержимо (и, кроме того, оно ложно).
б. Пусть нам дано, что множество A10 — это R и что A5·n при любом числе n совпадает с множеством An*. Значит, A50 есть множество R*. Тогда, согласно решению «а», если принять h = 50, то утверждение 50 ∈ A50 будет недоказуемым и неопровержимым. Кроме того, это утверждение будет ложным.
Рассмотрим теперь доказательство Гёделя с несколько иной точки зрения, которая позволяет увидеть основную идею особенно ярко.
Возьмем четыре символа P, N, А, ‒ и рассмотрим всевозможные комбинации этих символов. Произвольную комбинацию указанных символов мы будем называть выражением. Например, выражением является комбинация P‒‒NA‒P; точно так же выражением будет комбинация ‒PN‒‒А‒P‒. Некоторым выражениям мы будем приписывать определенный смысл — такие выражения в дальнейшем будут называться утверждениями.
Предположим, что у нас имеется машина, которая может выдавать нам (распечатывать) одни выражения и не может выдавать другие. При этом те выражения, которые машина может напечатать, мы будем называть допускающими распечатку. Предполагается, что любое выражение, которое может напечатать машина, рано или поздно обязательно будет ею напечатано. Если нам задано выражение X и мы хотим высказать суждение, что X допускает распечатку, то будем записывать это как P‒X. Так, например, запись P‒ANN означает, что выражение ANN допускает распечатку (при этом неважно, является ли это утверждение истинным или ложным). Если же мы хотим сказать, что выражение X не допускает распечатки, то будем писать NP‒X. (Символ N — от англ. not — отрицание «не», а символ P — от англ. printable — допускающий распечатку.) Таким образом, запись вида NP‒X следует читать как «не допускающее распечатки X», или, что по существу то же самое, «выражение X не допускает распечатки».
Ассоциатом выражения X мы будем называть выражение X‒X; при этом вместо слова «ассоциат» нами будет использоваться символ А (от англ. associate). Таким образом, если нам задано некоторое выражение X и мы хотим сказать, что ассоциат выражения X допускает распечатку, то будем записывать это как РА‒X. Если мы теперь хотим сказать, что ассоциат утверждения X не допускает распечатки, то это будет записываться как NPA‒X.
Читателя, быть может, удивляет, что мы используем тире в качестве своеобразного символа. В самом деле, почему, когда нам нужно высказать суждение о том, что выражение X допускает распечатку, вместо записи P‒X не писать просто РХ? Это делается для того, чтобы избежать определенной двусмысленности. В самом деле, что, например, может означать запись PAN, если мы откажемся от тире? Она может означать либо что ассоциат выражения N допускает распечатку, либо что допускает распечатку выражение AN. Если же мы пользуемся тире, то подобной двусмысленности не возникает. Так, если мы хотим сказать, что ассоциат выражения N допускает распечатку, то записываем этот факт как РА‒N; если же хотим сказать, что допускает распечатку выражение AN, то пишем P‒AN. Предположим теперь, нам нужно сказать, что выражение ‒X допускает распечатку. Правильно ли будет записать эту фразу как P‒X? Нет, ведь запись P‒X означает, что выражение X допускает распечатку. Поэтому чтобы сказать, что допускает распечатку выражение ‒X, нужно написать P‒X.
Рассмотрим еще несколько примеров: запись P‒‒ означает, что ‒ допускает распечатку, запись PA‒‒ означает, что выражение ‒‒‒ (ассоциат выражения ‒) допускает распечатку; запись P‒‒‒‒ также означает, что ‒‒‒ допускает распечатку; запись NPA‒‒P‒A означает, что ассоциат выражения ‒P‒A не допускает распечатки, или, другими словами, что не допускает распечатки выражение ‒P‒A‒‒P‒A. То же самое означает и запись вида NP‒‒P‒A‒‒P‒A.
Утверждением будем называть любое выражение одного из следующих четырех типов: P‒X, NP‒X, РА‒X или NPA‒X, где X — любое выражение. Утверждение P‒X мы будем называть истинным, если X допускает распечатку, и ложным, если X с допускает распечатки. Утверждение NP‒X мы будем называть истинным, если X не допускает распечатки, и ложным, если X эту распечатку допускает, утверждение РА‒X будет называться истинным, если ассоциат выражения X допускает распечатку, и ложным, если ассоциат этого X распечатки не допускает. Наконец, утверждение NA‒X мы будем называть истинным, если ассоциат выражения X не допускает распечатки, и ложным, если ассоциат этого X распечатку допускает. Итак, мы дали точное определение истинности и ложности для утверждений всех четырех видов. Отсюда следует, что для любого выражения X справедливы:
Правило 1. Утверждение P‒X истинно тогда и только тогда, когда выражение X допускает распечатку (на машине).
Правило 2. Утверждение РА‒X истинно тогда и только тогда, когда выражение X‒X допускает распечатку.
Правило 3. Утверждение NP‒X истинно тогда и только тогда, когда выражение X не допускает распечатки.
Правило 4. Утверждение NPA‒X истинно тогда и только тогда, когда выражение X‒X не допускает распечатки
Удивительное дело! Машина печатает утверждения, которые представляют собой не что иное, как суждения о том, что она сама может и что не может напечатать! В этом смысле машина говорит о себе (или точнее, печатает утверждения о самой себе).
Пусть теперь нам известно, что машина на 100 % точна, то есть она не может выдать нам ложное утверждение, печатая только истинные утверждения. Отсюда вытекает ряд следствий. Например, если машина в один прекрасный день напечатает утверждение P‒X, то, значит, она должна напечатать и выражение X, потому что раз она может напечатать утверждение P‒X, то, стало быть, это утверждение истинно, а это означает, что выражение X допускает распечатку. Значит, действительно, машина рано или поздно должна распечатать выражение X.
Аналогично, если машина выдаст нам утверждение РА‒X, тогда (поскольку утверждение РА‒X должно быть истинным) она должна напечатать нам также и выражение X‒X. Помимо этого, если машина напечатает утверждение NP‒X, тогда она не сможет напечатать утверждение P‒X, поскольку эти два высказывания не могут одновременно являться истинными: ведь первое из них утверждает, что машина не может напечатать выражение X, а второе — что машина может его напечатать.
Следующая задача высвечивает идею Гёделя так хорошо, что лучше трудно себе представить.
1. На редкость гёделева задача. Найдите истинное утверждение, которое машина не может напечатать!
2. Дважды гёделева головоломка. Все исходные условия остаются прежними — и, в частности, то, что машина абсолютно точна.
Пусть у нас имеются утверждение X и утверждение Y; одно из них является истинным, но не допускающим распечатки; однако, пользуясь лишь условиями, вытекающими из правил 1–4, мы не можем сказать, какое именно это утверждение, X или Y. Можете ли вы найти такие утверждения X и Y? (Подсказка: найти такие утверждения X и Y, чтобы утверждение X говорило нам о том, что Y допускает распечатку, а в утверждении Y говорилось бы о том, что X не допускает распечатки. Существуют два способа построения таких утверждений, причем оба они связаны с законами Фергюссона!)
3. Трижды гёделева проблема. Построить такие утверждения X, Y и Z, чтобы X говорило о том, что Y допускает распечатку, Y говорило бы о том, что не допускает распечатки, a Z — о том, что X в свою очередь вновь допускает распечатку, и показать, что по крайней мере одно из этих утверждений (правда, нельзя сказать, какое именно) должно быть истинным, но не допускающим распечатки на машине.
Добавим к четырем нашим символам еще один — символ R. Таким образом, теперь у нас пять символов: P, R, N, А, ‒. Пусть нам даны две машины, М1 и М2, каждая из которых может печатать различные выражения, составленные из этих пяти символов. При этом под символом P в данном случае мы будем подразумевать «допускающий распечатку первой машиной», а под символом R — «допускающий распечатку второй машиной». Таким образом, запись P‒X означает, что выражение X допускает распечатку первой машиной, а запись R‒X — что выражение X допускает распечатку второй машиной. Запись РА‒X означает, что ассоциат выражения X допускает распечатку первой машиной, а запись RA‒X показывает, что ассоциат выражения X допускает распечатку второй машиной. Наконец, «фразы» NP‒X, NR‒X, NPA‒X, NRA‒X говорят соответственно о следующем: выражение X не допускает распечатки первой машиной; выражение X не допускает распечатки второй машиной; выражение X‒X не допускает распечатки первой машиной; выражение X‒X не допускает распечатки второй машиной. Под утверждением мы будем теперь понимать любое выражение одного из следующих восьми типов: P‒X, R‒X, NP‒X, NR‒X, РА‒X, RA‒X, NPA‒X, NRA‒X. Кроме того, пусть нам известно, что первая машина печатает только истинные утверждения, а вторая — только ложные. Условимся называть некоторое утверждение доказуемым в том и только том случае, если оно допускает распечатку первой машиной, и ложным — в том и только том случае, если оно: может быть напечатано второй машиной. Таким образом, символ P означает «доказуемый» (от англ. provable), а символ R — «опровержимый» (от англ. refutable).
4. Найдите утверждение, которое было бы ложным, но неопровержимым.
5. Имеются такие два утверждения X и Y, что одно из них (правда, нам не известно, какое именно) должно быть либо истинным, но недоказуемым, либо ложным, но неопровержимым (мы не знаем, каким именно). Такие пары можно строить двумя способами, и соответственно я предлагаю вашему вниманию две задачи:
а. Найдите такие высказывания X и Y, чтобы X утверждало доказуемость Y, a Y утверждало опровержимость X. Далее, покажите, что одно из них (мы не можем сказать, какое именно) либо истинно, но недоказуемо, либо ложно, но неопровержимо.
б. Найдите такие высказывания X и Y, чтобы X утверждало недоказуемость Y, а Y утверждало неопровержимость X. Далее покажите, что одно из этих высказываний, X или Y (мы не можем сказать, какое именно), либо истинно, но недоказуемо, либо ложно, но неопровержимо.
6. А теперь рассмотрим задачу с четырьмя неизвестными! Пусть нам требуется найти такие высказывания X, Y, Z и W, чтобы X утверждало доказуемость Y, Y утверждало опровержимость Z, Z утверждало опровержимость W, a W утверждало бы неопровержимость X. Покажите, что одно из этих четырех высказываний должно быть либо истинным, но недоказуемым, либо ложным, но неопровержимым (хотя, какое из этих четырех будет именно таким высказыванием, сказать невозможно).
Возможно, читатель уже отметил определенное сходство приведенных выше задач с некоторыми свойствами первой машины Мак-Каллоха. В самом деле, работа этой машины оказывается связанной с теоремой Гёделя, и вот каким образом.
7. Пусть у нас имеется некоторая математическая система, приводящая к набору утверждений, одни из которых называются истинными, а другие — доказуемыми. Мы предполагаем также, что эта система правильная, то есть каждое доказуемое в ней утверждение является истинным. Далее, пусть каждому числу N ставится в соответствие некоторое утверждение, которое мы будем называть утверждением N. Предположим наконец, что наша система удовлетворяет следующим двум условиям.
Условие Мс1. Для любых чисел X и Y, если число X порождает число Y в первой машине Мак-Каллоха, утверждение 8X истинно тогда и только тогда, если утверждение Y доказуемо. (Напомним, что число 8X это не 8, умноженное на X, а цифра 8, за которой стоит число X.)
Условие Мс2. Для любого числа X утверждение 9X истинно тогда и только тогда, если утверждение X не является истинным.
Найдите такое число N, при котором утверждение N истинно, но недоказуемо в данной системе.
8. Предположим, что в условии Mс1 говорится не о «первой машине Мак-Каллоха», а о «третьей машине Мак-Каллоха». Попробуем теперь найти такое утверждение, которое было бы истинным, но недоказуемым.
9. Парадокс ли это? Вернемся вновь к задаче 1, однако внесем в нее некоторые изменения. Вместо символа P мы будем использовать символ В (в силу определенных психологических причин — каких именно, станет ясно из дальнейшего). Определение «утверждения» остается тем же, что и раньше, только на этот раз символ P везде заменяется на символ В. Таким образом, наши утверждения принимают теперь вид: В‒X, NB‒X, ВА‒X, NBA‒X. Все утверждения, как и прежде, делятся на две группы — истинные и ложные, причем нам не известно, какие именно из утверждений истинны, а какие — ложны. Далее, вместо машины, печатающей различные утверждения, у нас теперь имеется ученый-логик, который верит одним утверждениям и не верит другим. Когда мы говорим, что наш логик не верит какому-то утверждению, мы вовсе не имеем в виду, что он обязательно сомневается в нем или отвергает его; просто неверно, что он верит в это утверждение. Другими словами, он либо считает его ложным, либо вообще не имеет о нем никакого мнения. Таким образом, символ В (от англ. believe — верить) означает «то, во что верит логик». Тогда для любого выражения X у нас есть четыре интерпретации выражений, содержащих X:
В1: утверждение В‒X истинно тогда и только тогда когда логик верит в X;
В2: утверждение NB‒X истинно тогда и только тогда когда логик не верит в X;
В3: утверждение ВА‒X истинно тогда и только тогда когда логик верит в X‒X;
В4: утверждение ВА‒X истинно тогда и только тогда, когда логик не верит в X‒X.
Предполагая, что наш логик точен, то есть что он не верит в ложные утверждения, мы можем, разумеется, найти некое утверждение, которое является истинным, но о котором логик не знает, что оно истинно. Таким утверждением будет высказывание NBA‒NBA (которое говорит нам о том, что логик не верит в ассоциат выражения NBA, имеющий вид NBA‒NBA).
А дальше начинается нечто интересное. Предположим, нам известно об этом ученом-логике следующее.
Обстоятельство 1. Наш ученый-логик знает логику не хуже нас с вами. Предположим, что он обладает абсолютными логическими способностями; это означает, что если ему заданы какие-нибудь логические посылки, то он может вывести из них все возможные суждения.
Обстоятельство 2. Логику известно, что выполняются условия В1, В2, В3 и В4.
Обстоятельство 3. Логик всегда точен, то есть он не верит в ложные утверждения.
Далее, раз логику известно, что имеют место условия В1, В2, В3 и В4, и он может рассуждать так же логично, как мы с вами, ничто не мешает ему провести те же рассуждения, которые провели мы, прежде чем доказали, что утверждение NBA‒NBA должно быть истинным. Ясно, что, как только он это проделает, он сразу поверит в утверждение NBA‒NBA. Но как только он в него поверит, это утверждение становится опровергнутым, ибо смысл данного утверждения как раз и заключается в том, что наш логик в него не верит, — тем самым в конце концов окажется, что наш логик неточен!
Итак, не приходим ли мы к некоему парадоксу, если принимаем обстоятельства 1, 2 и 3? Конечно, нет, никакого парадокса здесь нет. Просто в последнем абзаце моего рассуждения допущена намеренная неточность! Не могли бы вы ее обнаружить?
1. Для любого выражения X утверждение NPA‒X означает, что ассоциат выражения X не допускает распечатки. В частности, утверждение NPA‒NPA означает, что ассоциат выражения NPA не допускает распечатки. Но ассоциатом NPA является само утверждение NPA‒NPA! Следовательно, высказывание NPA‒NPA утверждает невозможность собственной распечатки; другими словами, это высказывание истинно в том и только том случае, если оно не допускает распечатки. Отсюда следует, что оно либо истинно, но не допускает распечатки, либо ложно, но распечатку допускает. Последний случай исключается, поскольку машина является точной. Следовательно, нам остается лишь первая возможность: данное утверждение истинно, но не может быть напечатано машиной.
2. Выберем в качестве X утверждение P‒NPA‒P‒NPA, а в качестве Y — NPA‒P‒NPA. Утверждение X (которое имеет вид P‒Y) говорит нам о том, что утверждение Y допускает распечатку. Смысл самого Y сводится к тому, что ассоциат утверждения P‒NPA не допускает распечатки. Но ассоциатом утверждения P‒NPA является X, значит, Y говорит нам о том, что X не допускает распечатки. (Между прочим, можно построить и другие X и Y, обладающие теми же свойствами: например, если взять в качестве X утверждение РА‒NP‒РА, а в качестве Y — утверждение NP‒РА‒NP‒РА.)
Таким образом, у нас имеются два утверждения X и Y, причем X утверждает, что Y допускает распечатку, а Y утверждает, что X не допускает распечатки.
Предположим теперь, что X допускает распечатку. Тогда утверждение X окажется истинным, а это будет означать, что утверждение Y допускает распечатку. Но тогда Y окажется истинным, откуда будет следовать, что X распечатки не допускает. Тем самым мы приходим к противоречию, поскольку в данном случае X оказывается одновременно и допускающим, и не допускающим распечатку; следовательно, утверждение X не может быть напечатано. Далее, раз X не допускает распечатки, а Y как раз это и утверждает, то, стало быть, утверждение Y является истинным. Таким образом, мы имеем:
(1) X не допускает распечатки;
(2) Y истинно.
Наконец, утверждение X может быть либо истинным, либо ложным. Если X истинно, тогда, согласно (1), X истинно, но не допускает распечатки. Если же X ложно, тогда Y не допускает распечатки, поскольку само X говорит нам о том, что Y допускает распечатку. Значит, в данном случае Y истинно — согласно (2) — и не допускает распечатки. Итак, либо X, либо Y истинно и не допускает распечатки — однако определить, какое именно из этих двух выражений истинно и не допускает распечатки, оказывается невозможно.
Обсуждение. Описанная ситуация аналогична следующей ситуации, возникшей на острове рыцарей и плутов: пусть на острове имеются два обитателя X и Y, причем X утверждает, что Y — признанный рыцарь, а Y утверждает, что X — непризнанный рыцарь. Единственное заключение, которое мы можем сделать — это, что один из них является непризнанным рыцарем, но кто именно, сказать невозможно.
Подобная ситуация рассматривается в последней главе моей книги «Как же называется эта книга?» в разделе «Дважды гёделевы острова», к которому мы и отсылаем читателя.
3. Положим Z = PA‒P‒NP‒РА.
Далее, положим Y = NP‒Z (то есть Y = NP‒РА‒P‒NP‒РА).
Положим, наконец, X = P‒Y (то есть X = P‒NP‒PA‒P‒NP‒PA).
Из этих выражений сразу ясно: X утверждает, что Y допускает распечатку, а Y говорит нам о том, что Z не допускает распечатки. Что же касается Z, то оно утверждает, что допускает распечатку ассоциат утверждения P‒NP‒РА; но ассоциат P‒NP‒РА есть утверждение P‒NP‒РА‒P‒NP‒РА, которое в свою очередь и есть X! Итак, Z утверждает, что X допускает распечатку.
Таким образом, X утверждает, что Y допускает распечатку, Y утверждает, что Z не допускает распечатки, a Z утверждает, что распечатку допускает X. Посмотрим теперь, что же из этого следует.
Предположим, что Z допускает распечатку. Тогда Z истинно, откуда следует, что X допускает распечатку, а значит, является истинным; это в свою очередь означает, что Y допускает распечатку и, следовательно, является истинным. Если же Y истинно, то, стало быть, Z не должно допускать распечатки. Таким образом, мы приходим к противоречию: если Z допускает распечатку, то оно ее не допускает. Значит, Z не допускает распечатки, и поэтому Y является истинным. Итак, нам известно, что:
(1) Z не допускает распечатки;
(2) Y истинно.
Далее, X может быть либо истинным, либо ложным. Предположим, что X истинно. Если Z ложно, то тогда X не допускает распечатки, а это означает, что X истинно, но не допускает распечатки. Если же Z истинно, то тогда, поскольку, согласно (1), оно не допускает распечатки, Z истинно, но не допускает распечатки. Итак, если X истинно, то либо X, либо Z истинно, но не допускает распечатки. Если же X ложно, тогда Y не допускает распечатки и, следовательно, Y истинно — согласно (2) — и не допускает распечатки.
Итак: если X истинно, то по крайней мере одно из двух утверждений X и Z является истинным, но не допускающим распечатки. Если же X ложно, то истинным, но не допускающим распечатки, оказывается утверждение Y.
4. Пусть S есть утверждение вида RA‒RA. Оно говорит нам о том, что ассоциат выражения RA (а ассоциат RA есть само S!) является опровержимым; следовательно, S истинно в том и только том случае, когда S опровержимо. Поскольку S не может быть одновременно и истинным и опровержимым, значит оно ложно, но неопровержимо.
5. а) Выберем в качестве X утверждение P‒RA‒P‒RA, а в качестве Y — утверждение RA‒P‒RA. Ясно, что X утверждает доказуемость Y, а Y утверждает опровержимость ассоциата выражения P‒RA (ассоциат P‒RA есть в данном случае просто само X). Итак, X утверждает, что Y доказуемо, а Y утверждает, что X опровержимо. (Другой вариант решения — принять за X утверждение РА‒R‒РА, а за Y — утверждение R‒РА‒R‒РА.)
Далее, если Y доказуемо, то Y истинно, откуда следует, что X опровержимо и, следовательно, ложно, что в свою очередь означает, что Y недоказуемо. Таким образом, допущение о доказуемости Y приводит нас к противоречию; стало быть, оно неверно, и Y недоказуемо. Если же Y недоказуемо, то X ложно. Итак, мы имеем:
(1) X ложно;
(2) Y недоказуемо.
Теперь если Y истинно, то Y истинно и недоказуемо. Если же Y ложно, то X неопровержимо (поскольку Y утверждает опровержимость X), и поэтому в данном случае X ложно, но неопровержимо. Следовательно, либо Y истинно, но недоказуемо, либо X ложно, но неопровержимо.
б) Возьмем в качестве X утверждение NP‒NRA‒NP‒NRA, а в качестве Y — утверждение NRA‒NP‒NRA (или же за X можно принять NPA‒NR‒NPA, а за Y — NR‒NPA‒NR‒NPA). Тогда, как читатель может убедиться сам, X утверждает недоказуемость Y, а Y утверждает неопровержимость X. Если X опровержимо, то X ложно; тогда Y доказуемо и, значит, Y истинно, откуда следует, что X неопровержимо. Следовательно, X неопровержимо и, кроме того, Y истинно. Если же X ложно, то X ложно и неопровержимо. Если, наконец, X истинно, то Y недоказуемо; поэтому в данном случае Y будет истинным и недоказуемым.
Обсуждение. По аналогии предположим, что на нашем острове, где живут рыцари и плуты, имеются еще два обитателя X и Y, причем X заявляет, будто Y — признанный рыцарь, а Y утверждает, что X — отъявленный плут. Единственный вывод, который можно сделать, — это что один из них (мы не знаем, кто именно) должен оказаться либо непризнанным рыцарем, либо неотъявленным плутом. Точно такая же ситуация будет иметь место, если X станет утверждать, что Y непризнанный рыцарь, а Y заявит, что X — неотъявленный плут.
6. Положим
W = NPA‒P‒R‒R‒NPA,
Z = R‒W, откуда Z = R‒NPA‒P‒R‒R‒NPA,
Y = R‒Z, откуда Y = R‒R‒NPA‒P‒R‒R‒NPA,
X = P‒Y, откуда X = P‒R‒R‒NPA‒P‒R‒R‒NPA.
Тогда X утверждает доказуемость Y, Y утверждает опровержимость Z, Z утверждает опровержимость W, a W утверждает недоказуемость X (действительно, W утверждает недоказуемость ассоциата выражения P‒R‒R‒NPA, которым является само высказывание X).
Если W опровержимо, то W ложно; поэтому X доказуемо и, значит, истинно; следовательно, Y доказуемо, а значит, истинно; стало быть, Z опровержимо, а потому ложно. Отсюда сразу следует, что W неопровержимо. Итак, W не может быть опровержимым; значит, W является неопровержимым, и, следовательно, Z будет ложным.
Далее, если W ложно, то W ложно, но неопровержимо. Предположим, что W истинно; тогда X недоказуемо. Если X истинно, то X истинно и недоказуемо. Предположим теперь, что X ложно; тогда Y недоказуемо. Если Y истинно, то Y истинно, но недоказуемо. Предположим, наконец, что Y ложно; тогда Z неопровержимо. Итак, в данном случае Z ложно, но неопровержимо.
Приведенное рассуждение показывает, что либо W ложно и неопровержимо, либо X истинно и недоказуемо, либо Y истинно и недоказуемо, либо Z ложно и неопровержимо.
7. Эта задача фактически представляет собой просто записанный в других обозначениях вариант задачи 1 данной главы!
Мы знаем, что число 32983 в первой машине Мак-Каллоха порождает число 9832983. Следовательно, по условию Мс1 утверждение 832983 истинно в том и только том случае, если утверждение 9832983 доказуемо. Кроме того, по условию Мс2; утверждение 9832983 истинно в том и только том случае, если утверждение 832983 не является истинным. Итак, сопоставляя эти два факта, мы получаем, что утверждение 9832983 истинно в том и только том случае, если оно недоказуемо. Значит, решением является число 9832983.
Если мы сравним эту задачу с задачей 1, то увидим, что цифра 9 играет здесь роль N, цифра 8 соответствует символу P, цифра 3 соответствует А, а цифра 2 играет роль тире. В самом деле, если мы заменим символы P, N, А, — соответствующими цифрами 8, 9, 3, 2, то утверждение NPA‒NPA (которое является решением задачи 1) трансформируется в число 9832983 (то есть в решение данной задачи!)
8. Прежде всего отметим, что третья машина Мак-Каллоха также подчиняется закону Мак-Каллоха, который гласит, что для любого числа А всегда найдется некое число X, которое порождает число АХ. Доказывается это следующим образом. Из гл. 13 мы знаем, что существует число Н, а имении число 5464, такое что для любого X число Н2Н2 порождает число Х2X2. (Вспомним также, что число Н2Н2 в данной ситуации порождает само себя; впрочем, к нашей задаче это никакого отношения не имеет.) И теперь произвольное число А и положим X = Н2АН2), Тогда число X порождает число АН2АН2, которое и есть АХ. Таким образом, X порождает АХ. Итак, для любого числа А число X, порождающее число АХ, — это есть число 54642A54642.
Пусть нам требуется найти такое X, которое порождало бы 98X. Предположим, что это X действительно порождает число 98X. Тогда утверждение 8X истинно в том и только том случае, если утверждение 98X доказуемо (согласно условию Мс1); поэтому утверждение 98X истинно в том и только том случае, если утверждение 98X недоказуемо (согласно условию Мс2). Значит, утверждение 98X является истинным, но недоказуемым в данной системе (поскольку система правильна).
Теперь, если в качестве А мы возьмем число 98, то увидим, что числом X, порождающим 98X, является число 546429854642, Поэтому утверждение 98546429854642 истинно, но недоказуемо в данной системе.
9. Я сообщил вам, что наш логик точен, но я вовсе не говорил, будто он знает, что он точен! Если бы логик знал, что он точен, тогда данная ситуация действительно привела бы нас к противоречию. Поэтому правильный вывод из обстоятельств 1, 2 и 3 вовсе не содержит противоречия: просто-напросто хотя логик и точен, но он не может знать, что он точен.
Эта ситуация определенным образом связана с еще одной теоремой Гёделя, называемой обычно второй теоремой Гёделя о неполноте. Эта теорема (с некоторыми упрощениями) утверждает, что для систем с достаточно богатой структурой (а таковы системы, рассмотренные Гёделем в его пионерской работе), если такая система непротиворечива, то она не может доказать собственную непротиворечивость. Однако это очень глубокий вопрос, и я собираюсь рассмотреть его более подробно в своих последующих книгах.
Однажды вечером Крейг случайно повстречал Мак-Каллоха и Фергюссона. Они давно не виделись, все трое очень обрадовались встрече и решили вместе пойти куда-нибудь поужинать.
— А знаете, — сказал Мак-Каллох, когда ужин подходил к концу, — меня уже давно занимает одна интересная проблема.
— Это какая же? — поинтересовался Фергюссон.
— Дело вот в чем, — продолжал Мак-Каллох. — Когда я занимался изучением различных числовых машин, то столкнулся с тем, что практически в каждой машине одни числа оказываются для нее приемлемыми, а другие нет. Допустим, я ввожу в машину какое-то приемлемое число X. Тогда число Y, которое порождается этим X, вновь оказывается либо приемлемым, либо неприемлемым. Если Y неприемлемо, то на этом весь процесс заканчивается. Если же Y оказывается приемлемым числом, то я опять ввожу его в машину и смотрю, какое число Z выдаст мне машина на этот раз. Если теперь число Z оказывается неприемлемым, то на этом процесс останавливается; если же оно приемлемо, то я вновь ввожу это число в машину и процесс продолжается как минимум еще один цикл. Если я буду повторять такую процедуру снова и снова, то при этом возможны два варианта: либо я в конце концов получу неприемлемое число, либо описанный процесс будет длиться бесконечно. В первом случае я называю число X отмирающим относительно данной конкретной машины, во втором случае число X я называю вечным. Конечно, любое число может быть отмирающим для одной машины и вечным для другой.
— Давай возьмем твою первую машину, — предложил Крейг. — Я могу придумать кучу отмирающих чисел, а не можешь ли ты привести мне пример вечного числа?
— Ну хотя бы число 323, — ответил Мак-Каллох. — Ведь число 323 порождает самое себя и поэтому, сколько бы раз я не вводил его в машину, я всегда буду получать 323. Так что в данном случае процесс явно оказывается бесконечным.
— А ведь верно! — засмеялся Крейг. — Ну хорошо, а существуют ли другие вечные числа?
1. — Тогда, — продолжал Мак-Каллох, — что ты скажешь по поводу числа 3223? Отмирающее оно или вечное?
2. — А как насчет числа 32223? — спросил Фергюссон. — Оно для вашей первой машины — отмирающее или вечное?
Мак-Каллох на некоторое время задумался.
— Это не так трудно определить, — ответил он наконец — Однако я думаю, вам будет интересно разобраться в этом самому.
3. — Можете попробовать еще число 3232, — в свою очередь предложил Мак-Каллох, — попытайтесь определить — отмирающее оно или вечное.
4. — А если взять число 32323? — спросил Крейг. — Отомрет оно или нет?
5. — Все это очень интересно, — сказал Мак-Каллох, — но я еще не добрался до самого главного. А дело вот в чем: один мой приятель придумал весьма хитроумную числовую машину. Он утверждает, будто его машина может выполнять любые операции, на которые только способна числовая машина вообще. Мой друг назвал ее универсальной машиной. И вот оказывается, что есть несколько таких чисел, про которые ни я, ни он не можем сказать — отмирающие они или вечные. Поэтому мне хотелось бы разработать какой-нибудь чисто механический тест, чтобы определять, какие числа отмирающие, а какие — вечные. Правда, пока у меня ничего не выходит. Конкретнее, я пытаюсь найти такое число Н, которое для любого приемлемого числа X давало бы вечное число НХ, если X — отмирающее, и отмирающее число НХ, если X — вечное. Если бы мне это удалось, то я сразу смог бы определить, отмирающее ли или вечное любое приемлемое число X.
— А как именно это определить с помощью числа Н? — спросил Крейг.
— Если бы я нашел число Н, — объяснил Мак-Каллох, — то сначала построил бы такую же машину, как у моего приятеля. Потом, взяв произвольное приемлемое число X, я ввел бы его в одну из машин; одновременно мой приятель ввел бы число НХ в другую машину. Понятно, что описанный процесс может прекратиться только в одной из машин; если это произойдет в моей машине, я буду знать, что число X — отмирающее; если в машине моего приятеля, то я сразу пойму, что число X — вечное.
— Да ведь вам незачем строить вторую машину, — сказал Фергюссон. — Это можно сделать и на одной машине, просто переключая ее с одного процесса на другой.
— Верно, — согласился Мак-Каллох. — Но только все это пустые рассуждения, пока я не сумел найти число Н. Вполне возможно, что моя машина просто не способна решить задачу о своей собственной «выживаемости», то есть, я хочу сказать, что, быть может, такого числа Н вообще не существует. А может, это я не способен найти такое число. Вот эту то проблему, джентльмены, я и хотел бы обсудить вместе с вами.
— Ну что ж, — сказал Фергюссон, — прежде всего мы должны знать, по каким правилам работает данная машина.
— Всего в ней используется 25 правил, — начал было Мак-Каллох. — Первые два из них — те же самые, что и в моей первой машине.
— Минуточку, — прервал его Фергюссон. — Вы хотите сказать, что машина вашего приятеля подчиняется правилам 1 и 2?
— Вот именно, — ответил Мак-Каллох.
— Тогда мне все ясно, — заявил Фергюссон. — Ни одна машина, в которой действуют правила 1 и 2, не может решить задачу о своей собственной «выживаемости».
— Как же вы сумели так быстро об этом догадаться? — спросил Крейг.
— Я уже сталкивался с подобного рода вещами, — объяснил Фергюссон. — Не так давно в моей работе возникла аналогичная проблема.
И все же, как именно Фергюссон определил, что машина, подчиняющаяся правилам 1 и 2, не может решить задачу о своей собственной «выживаемости»?
1. Напомним, что число 3223 порождает число 23223, а число 23223 в свою очередь порождает число 3223. Значит, у нас есть два числа, 3223 и 23223, которые порождают друг друга. Отсюда следует, что оба они вечны: ведь если ввести в машину одно из них, то получится второе, а если ввести второе, то получится первое. Ясно, что такой процесс бесконечен.
2. Возьмем два любых числа X и Y. Мы будем говорить, что число X приводит к числу Y, если X порождает Y, или если X порождает какое-то число, которое порождает Y, или если X порождает какое-то число, которое порождает другое число, которое в свою очередь порождает Y, и т. д. Иначе говоря, если, введя в машину число X, мы на каком-то этапе нашего процесса получим число Y, то будем говорить, что число X приводит к числу Y. Так, например, число 22222278 приводит к числу 78 фактически на шестом этапе. В более общем виде: если число Т представляет собой произвольную цепочку двоек, то для любого числа X число ТХ в конце концов приводит к X.
Далее, число 32223 не порождает самое себя, но приводит к самому себе, потому что оно порождает число 2232223, которое порождает затем число 232223, а это число в свою очередь вновь порождает 32223. Но раз число 32223 приводит к самому себе, то, стало быть, оно должно быть вечным.
Читатель, по-видимому, уже обратил внимание на следующую закономерность: если число Т состоит целиком из одних двоек, то число ЗТЗ должно приводить к самому себе и, следовательно, будет вечным.
3. Мне известен только один способ решения этой задачи: доказать в общем виде, что если число Т состоит целиком из одних двоек, то число ЗТ32 вечно и, следовательно, частный его случай — число 3232 — тоже является вечным. Этот факт служит иллюстрацией некоторого еще более общего принципа, который используется нами в решении следующей задачи.
Предположим, что у нас имеется определенный класс чисел (неважно, конечный или бесконечный), причем такой, что каждое число из этого класса приводит к некоторому числу из этого же класса (либо к самому себе, либо к другому числу). Тогда все числа, входящие в этот класс, должны быть вечными.
Попробуем воспользоваться этим принципом применительно к нашей задаче. Рассмотрим класс чисел вида ЗТ32, где Т — произвольная цепочка двоек. Покажем, что число ЗТ32 должно приводить к другому числу из этого же класса.
Возьмем сначала число 3232. Оно порождает число 32232, то есть элемент того же класса. Теперь, что нам дает число 32232? Оно порождает число 2322232, которое в свою очередь порождает число 322232, то есть элемент того же класса. А что получается с числом 322232? Оно порождает число 223222232, которое порождает число 23222232, а оно в свою очередь дает нам число 3222232, так что мы опять возвращаемся в указанный класс. В более общем виде: для любой цепочки двоек Т число 32Т32 порождает число Т322Т32, которое приводит к числу 322Т32, опять представляющему собой элемент данного класса. Итак, все числа, входящие в указанный класс, являются вечными.
4. Число 32323 порождает число 3232323, которое порождает число 32323232323, а это последнее в свою очередь порождает число 3232323232323232323. Дальнейшая схема представляется очевидной: любое число, состоящее из повторенного несколько раз числа 32 с тройкой на конце, порождает другое число того же вида (только более длинное), причем все эти числа будут вечными.
5. Прежде всего обратим внимание на следующее обстоятельство: пусть у нас имеются два числа X и Y, такие, что число X порождает число Y. Тогда если Y — отмирающее число, то X тоже должно быть отмирающим, поскольку если Y через какие-то n этапов приводит к неприемлемому числу Z, то X приводит к тому же самому числу Z через n + 1 этапов. Кроме того, если Y вечно, то оно никогда не приведет к неприемлемому числу; стало быть, и число X не может привести к неприемлемому числу, поскольку X вообще может приводить к любому числу только через Y. Таким образом, если число X порождает число Y, то «выживаемость» числа X (то есть вечное оно или отмирающее) будет такой же, как и «выживаемость» числа Y, то есть либо оба они оказываются вечными, либо отмирающими.
Рассмотрим теперь произвольную машину, которая подчиняется правилам 1 и 2 (и, возможно, еще каким-то правилам). Возьмем некоторое число Н. Мы знаем, что, согласно правилам 1 и 2, должно существовать такое число X, которое порождает число НХ (напомним, кстати, что одним из таких чисел является число Н32НЗ). Поскольку число X порождает число НХ, то оба они должны быть либо отмирающими, либо вечными (ведь, как мы только что убедились, их «выживаемость» одинакова). Значит, не может существовать такого числа Н, для которого в случае произвольного X одно из пары чисел Н и НХ было бы отмирающим, а другое — вечным, поскольку для конкретного числа вида X = Н32НЗ это оказывается совсем не так. Следовательно, ни одна машина, подчиняющаяся правилам 1 и 2, не может решить задачу о своей собственной «выживаемости».
Отметим по ходу дела, что полученный результат оказывается справедливым также для любой машины, которая подчиняется правилам 1 и 4, а в сущности, и для любой машины, которая подчиняется закону Мак-Каллоха. (Кстати говоря, вся эта проблема тесно связана с известной «проблемой останова» для машин Тьюринга, решение которой, как известно, тоже отрицательно.)
Как-то днем, вскоре после описанных событий, Крейг спокойно сидел дома, в своем кабинете. В дверь робко постучали — это оказалась его квартирная хозяйка.
— Входите, пожалуйста, миссис Хоффман, — пригласил Крейг.
— Простите, мистер Крейг, там вас спрашивает какой-то джентльмен. Только больно уж чудаковато он выглядит, — сказала миссис Хоффман. — Говорит, будто он на пороге величайшего открытия в математике! И еще утверждает, что вас это необычайно заинтересует, и потому он хочет видеть вас немедленно. Что ему сказать?
— Ну что ж, — несколько помедлив, ответил Крейг. — Проведите его ко мне. У меня как раз найдется полчасика.
Через несколько секунд дверь кабинета распахнулась и в комнату влетел безумного вида человек, смахивавший на изобретателя (это и был изобретатель). Он швырнул свой портфель на диван и, вскинув руки кверху, начал приплясывать, как сумасшедший, приговаривая:
— Нашел! Нашел! Еще чуть-чуть и я стану самым великим математиком на свете! Евклид, Архимед, Гаусс — все канут в Лету! А Ньютон, Лобачевский, Бойаи, Риман — разве…
— Спокойно, спокойно, — не повышая голоса, но достаточно твердо прервал его Крейг. — Что же именно вы нашли?
— Еще не совсем нашел, — отвечал незнакомец уже не так возбужденно. — Но вот-вот найду и, когда найду, стану самым великим математиком всех времен и народов! Имена Галуа, Коши, Дирихле, Кантора…
— Ну хватит! — решительно сказал Крейг. — Может быть, вы все же расскажете мне, что именно вы хотите найти?
— Хочу найти? — воскликнул незнакомец с обидой. — Говорю вам, я почти нашел! Я почти придумал универсальную машину, которая сможет решать любые математические задачи! Имея такую машину, я буду знать все! Я смогу…
— А, мечта Лейбница! — сказал Крейг. — Лейбниц ведь тоже мечтал о такой машине. Боюсь только, что мечта эта неосуществима.
— Лейбниц! — презрительно усмехнулся незнакомец. — Лейбниц! Да он просто не знал, с чего начать! А у меня практически уже есть такая машина! Не хватает только нескольких мелочей… Но давайте я вам лучше поподробней расскажу о своих идеях.
— Я хочу построить некую машину M, — начал объяснения незнакомец (как выяснилось, звали его Уолтон), — с вполне определенными свойствами: сначала вы вводите в машину натуральное число х, потом натуральное число у — и тут машина начинает работать и выдает некоторое новое число, которое мы будем обозначать как М(х, у). Итак, М(х, у) — это результат, который мы имеем на выходе машины M в том случае, если на ее входе в качестве первого числа задать число х, а в качестве второго — число у.
— Пока все ясно, — сказал Крейг.
— Кроме того, — продолжал Уолтон, — под словом «число» я понимаю произвольное положительное целое число, поскольку только эти числа я и буду рассматривать в дальнейшем. Как вам, должно быть, известно, обычно говорят, что два натуральных числа имеют одинаковую четность, если они одновременно либо оба четны, либо оба нечетны; если же одно из них четно, а другое нечетно, то их называют числами с различной четностью.
Теперь для любого числа x мы будем обозначать через х* число вида М(х, х). Так вот, я хочу, чтобы моя машина обладала следующими тремя свойствами.
Свойство 1. Для любого числа a должно существовать некоторое число b, такое, что при любом x число М(х, b) будет иметь ту же самую четность, что и число М(х*,а).
Свойство 2. Для любого числа b должно существовать некоторое число а, такое, что при любом x число М(х, а) будет иметь другую четность по сравнению с числом М(х, b).
Свойство 3. Должно существовать число h, такое, что при любом x число М(х, h) будет иметь ту же самую четность, что и само х.
— Вот такими свойствами должна обладать моя машина, — заключил Уолтон.
Инспектор Крейг некоторое время молчал, размышляя.
— Ну и в чем же дело? — спросил он наконец.
— Увы! — отвечал Уолтон. — Сначала я построил машину со свойствами 1 и 2, потом — машину со свойствами 1 и 3, наконец, я сконструировал машину со свойствами 2 и 3. Все три машины прекрасно работают — вон там, в портфеле, у меня подробные схемы… Но когда я пытаюсь объединить все три свойства в одной машине, у меня ничего не получается.
— Что же именно у вас не получается? — поинтересовался Крейг.
— Да она вообще не работает! — воскликнул Уолтон с отчаянием. — Когда я ввожу в нее пару чисел (х, у), то вместо того, чтобы выдать мне результат, машина вдруг начинает странно гудеть, как будто в ней происходит нечто вроде короткого замыкания. Как вы думаете, отчего это может быть?
— Да-а, — покачал головой Крейг. — Здесь есть над чем подумать. Правда, сейчас мне надо уйти, меня ждут, но если вы оставите мне свою визитную карточку или просто фамилию и адрес, то я немедленно дам знать, как только во всем этом разберусь.
Через несколько дней инспектор Крейг написал Уолтону письмо. Начиналось оно так:
Дорогой мистер Уолтон!
Благодарю Вас за то, что вы посетили меня и рассказали о машине, которую пытались построить. Честно говоря, я не совсем понимаю, каким образом ваша машина, даже если бы вам действительно удалось ее создать, могла бы решать любые математические задачи, — хотя вы, несомненно, разбираетесь в этом лучше меня. Однако должен вам сказать, что ваш замысел напоминает мне попытку создания вечного двигателя — он также неосуществим! Фактически же дело обстоит гораздо хуже, чем с вечным двигателем. Ведь последний, несмотря на то что он невозможен в нашем физическом мире, все же не является логически невозможным. Машина же, которую хотите создать вы, невозможна не только физически, но и логически, поскольку те три свойства, о которых вы упоминали, содержат в себе определенное логическое противоречие.
Дальше Крейг объяснял, почему существование подобной машины логически невозможно. Можете ли вы сообразить, почему?
Полезно разбить решение этой задачи на три этапа:
1) показать, что для любой машины, обладающей свойством 1, при любом числе а должно существовать по крайней мере одно число х, такое, что число М(х, а) будет иметь ту же самую четность, что и само х;
2) показать, что для любой машины, обладающей свойствами 1 и 2, при любом числе b найдется некоторое число х, такое, что число М(х, b) будет иметь иную четность по сравнению с этим х;
3) ни одна машина не может объединить в себе свойства 1, 2 и 3.
а) Рассмотрим машину, обладающую свойством 1. Возьмем произвольное число а; тогда, согласно свойству 1, найдется число b, такое, что при любом x число М(х, b) будет иметь ту же самую четность, что и число М(х#, а). В частности, если положить x равным b, то число M(b, b) будет обладать той же самой четностью, что и число М(b#, а). Однако число М(b, b) — это просто b#, и, значит, число b# должно иметь ту же самую четность, что и число М(b#, а). Таким образом, положив x равным числу b#, мы видим, что число М(х, а) имеет ту же самую четность, что и само число х.
б) Рассмотрим теперь некоторую машину, обладающую свойствами 1 и 2. Возьмем произвольное число b; тогда, согласно свойству 2, обязательно найдется число a, такое, что при любом x число М(х, а) будет иметь другую четность по сравнению с числом М(х, b). Но, согласно свойству 1, существует по крайней мере одно х, при котором число М(х, а) имеет ту же самую четность, что и само х, — мы только что доказали это в пункте а. Такое число x должно иметь другую четность по сравнению с числом М(х, a), поскольку оно одинаково по четности с числом М(х, а), а М(х, а) в свою очередь имеет иную четность по сравнению с числом М(х, b).
в) Рассмотрим вновь машину со свойствами 1 и 2. Возьмем произвольное число h; тогда, согласно пункту «б» нашего решения (если положить b равным h), существует по крайней мере одно число х, такое, что число М(х, h) будет отличаться по четности от числа х. Значит, число М(х, h) не может иметь ту же самую четность, что и число x для всех х; другими словами, свойство 3 оказывается невыполнимым. Таким образом, свойства 1, 2 и 3, если воспользоваться словцом Амброза Бирса,[11] «несосуществимы».
Примечание. Невозможность построения машины Уолтона тесно связана с теоремой Тарского (гл. 15). Поэтому для доказательства этой теоремы и для доказательства невозможности существования подобной машины можно использовать одни и те же рассуждения.
Фергюссон (да, по-своему, как и чудаковатый Уолтон) пытался создать нечто такое, что в случае успеха можно было бы считать осуществлением самой страстной мечты Лейбница; ведь Лейбниц серьезно размышлял о возможности создания счетной машины, которая могла бы решить все математические проблемы, а заодно и философские! Однако мечта Лейбница о машине, решающей любые математические задачи (а философские проблемы тем более), оказалась недостижимой. Этот вывод следует из результатов. полученных Гёделем, Россером, Черчем, Клини, Тьюрингом, Постом. К их работам мы сейчас и обратимся.
Существует определенный класс счетных машин. назначение которых состоит в том, чтобы производить, те или иные математические операции над положительными целыми числами. Мы подаем на вход такой машины некое число x и получаем на выходе новое число у. Например, можно легко представить себе машину (не очень, понятно, интересную), которая при подаче на ее вход числа x дает нам на выходе число х + 1. Обычно говорят, что такая машина выполняет операцию прибавления единицы. Можно сделать машину, которая выполняет, скажем, операцию сложения двух чисел. В такой машине мы сначала подаем на вход число х, потом число у, затем нажимаем кнопку и через какое-то время получаем на выходе число х + у. (Для таких машин имеется свое техническое название — их, по-моему, называют суммирующими машинами!)
Существует и другой тип машин, которые можно назвать генерирующими, или перечисляющими, машинами Такие машины будут играть более важную роль в наших последующих рассуждениях (где мы следуем теориям Поста). Эти машины не имеют входов; они запрограммированы на генерирование множества положительных целых чисел. Например, одна машина может генерировать у нас множество четных чисел, другая — генерировать множество нечетных чисел, третья — множество простых чисел, и т. д. При этом типичная машинная программа для генерирования четных чисел может выглядеть так.
Мы задаем машине две команды (1) напечатать число 2; (2) если напечатано число n, то напечатать число n + 2. (Разрешается задавать вспомогательные правила, которые определяют порядок выполнения команд таким способом, чтобы машина в конечном счете выполнила все, что она может выполнить.) Такая машина, подчиняясь команде (1), рано или поздно напечатает число 2, а напечатав 2 она в конце концов, подчиняясь команде (2), напечатает число 4, затем, напечатав 4, она, опять же руководствуясь командой (2), напечатает число 6, потом числа 8, 10 и т. д. Тем самым наша машина будет генерировать множество четных чисел. (Отметим, что без введения дополнительных команд она никогда не сможет произвести нам числа 1, 3, 5 или любое другое нечетное число.) Чтобы запрограммировать машину на генерирование нечетных чисел, нам следует просто заменить первую команду на команду «напечатать число 1». Иногда объединяют вместе две или несколько машин, с тем чтобы информация на выходе одной машины могла быть использована в другой. Пусть, например, у нас имеются две машины, А и В, программу для которых мы составим следующим образом. Машине А мы зададим две команды: (1) напечатать число 1; (2) если машина В напечатала число n, то напечатать число n + 1. Машине В мы задаем только одну команду: (1) если машина А напечатала число n, то напечатать число n + 1. Какие числа будет генерировать машина А, а какие — машина В? Ответ: машина А будет генерировать множество нечетных чисел, а машина В — множество четных чисел.
Теперь представим себе, что программа для генерирующей машины записывается не на естественном языке, а кодируется в виде некоторого целого числа (представляющего собой цепочку цифр); кодирование можно осуществить так, чтобы каждое положительное целое число представляло собой номер определенной программы. Пусть Мn — это машина, программа которой имеет кодовый номер n. Расположим теперь все генерирующие машины в виде бесконечной последовательности М1, М2…, Мn… (М1 — это машина с номером программы 1, М2 — машина с номером программы 2 и т. д.)
Для любого множества чисел А (естественно, имеется в виду множество положительных целых чисел) и для любой машины M мы будем говорить, что машина M генерирует множество А, или, иначе, машина M перечисляет множество А, если каждое число, входящее в множество А, в конце концов будет напечатано машиной M, и в то же время ни одно число, не входящее в А, этой машиной напечатано не будет. Множество А мы будем называть эффективно перечислимым (иногда говорят — рекурсивно перечислимым), если существует хотя бы одна машина Мi которая перечисляет множество А. Кроме того, мы будем говорить, что множество А разрешимо (или рекурсивно), если существуют одна машина Мi, которая перечисляет само множество А, и другая машина Мj которая перечисляет множество всех чисел, не входящих в А. Таким образом, множество А является разрешимым том и только том случае, если и A, и его дополнение A̅ являются эффективно перечислимыми.
Предположим, что множество А — разрешимо и у нас имеются машина Мi, которая генерирует А, и машина Мj которая генерирует дополнение A̅. Тогда оказывается, что существует эффективный способ, позволяющий определять, входит ли некоторое число n в множество А или нет. Допустим, к примеру, нас интересует, входит ли в множество А число 10. Мы приводим в действие обе машины одновременно и ждем. Если число 10 принадлежит множеству А, то рано или поздно это число будет напечатано машиной Мi, так что мы сразу узнаем, что число 10 входит в А. Если же число 10 не принадлежит множеству А, то в конце концов это число напечатает машина Мj — тем самым мы сразу узнаем, что число 10 не входит в А. Таким образом, в конечном итоге мы обязательно выясним, принадлежит ли число 10 множеству А или нет. (Понятно, что сказать заранее, сколько нам придется ждать, невозможно; нам известно лишь, что через какой-то конечный промежуток времени мы непременно узнаем ответ.)
Предположим теперь, что множество А эффективно перечислимо, но неразрешимо. В таком случае у нас имеется машина Мi, которая генерирует множество А, но не окажется машины, которая генерировала бы дополнение А. Допустим, что мы опять хотим узнать, входит ли в А некоторое заданное число — скажем, число 10. Лучшее, что мы можем сделать в таком случае — запустить машину Мi и надеяться на удачу! Теперь наши шансы узнать ответ составляют лишь 50 %. Если число 10 действительно входит в множество А, то в конце концов мы обязательно это узнаем, поскольку рано или поздно машина Мi напечатает это число. Если же число 10 в А не входит, то машина Мi никогда этого числа не напечатает, однако сколько бы мы ни ждали, у нас никогда не будет уверенности, что через какое-то время машина все-таки не напечатает число 10. Итак, если число 10 принадлежит множеству А, то рано или поздно мы узнаем об этом; если же число 10 не принадлежит А, то мы никогда не будем знать об этом наверняка (во всяком случае, если ограничимся наблюдением за машиной Мi). Такое множество А можно с основанием называть полуразрешимым.
Первое важное свойство генерирующих машин заключается в том, что можно сконструировать так называемую универсальную машину U, назначение к торой — систематически наблюдать за поведением во машин M1, М2, М3…, Мn… и, как только машина Мх напечатает число у, сразу же сообщить нам об этом. Но каким образом это сделать? Очень просто — напечатать некоторое число, скажем для данных x и у напечатать x*y, то есть число, как и ранее, состоящее из цепочки единиц длиной х, за которой следует цепочка нулей длиной у. Итак, основная команда для машины U такова: когда машина Мх напечатает число у, то напечатать число x*y.
Допустим, например, что машина Мa запрограммирована на генерирование множества нечетных чисел, а машина Мb — на генерирование множества четных чисел. Тогда машина U будет печатать числа а*1, а*3, а*5 и т. д., а также числа b*2, b*4, b*8 и т. д., однако она никогда не напечатает число а*4 (поскольку машина Мa никогда не напечатает число 4) или число b*3 (поскольку машина Мb никогда не напечатаем число 3).
Далее, поскольку машина U имеет свою собственную программу, то, следовательно, она входит в семейство программируемых машин M1, М2…, Мn… Это значит, что существует некоторая машина Мk, номер программы которой k совпадает с номером программы машины U, причем машина Мk и есть сама машина U! (В строгой научной статье я указал бы, что это за число k.)
Можно заметить, что наша универсальная машина Мk наблюдает в числе прочих и за своим собственным поведением. Поэтому, как только машина Мk напечатает число n, она должна напечатать число k*n, а значит, и число k*(k*n), а также и число k*[k*(k* n)] и т. д.
Другой важной особенностью этих машин является то, что, имея произвольную машину Мa, мы всегда можем запрограммировать другую машину Мb таким образом, чтобы она печатала в точности такие числа х, при которых машина Мa печатает числа х*х. (Машина Мb, так сказать, «следит» за машиной Мa и действует но такой команде: напечатать число x после того, как машина Мa напечатает число x*x.) Можно, наконец, закодировать программы так, что для каждого а таким числом b окажется число 2а; тогда для каждого а машина М2a будет печатать в точности такие числа х, при которых машина Мa печатает числа x*x. Представим себе, что мы так и устроили, и запишем два основных утверждения, на которые будем опираться в дальнейшем.
Утверждение 1. Универсальная машина U печатает число x*у, если и только если машина Мx печатает число у.
Утверждение 2. Для каждого числа а машина М2a печатает число х, если и только если машина Мa печатает число x*x.
Вот теперь мы подходим к самому главному. Оказывается, что любую формальную математическую задачу можно сформулировать в виде вопроса: напечатает машина Мa число b или не напечатает? Иначе говоря, для любой данной формальной системы аксиом можно всем утверждениям системы приписать определенные гёделевы номера, после чего найти такое число a, при котором машина Мa будет печатать гёделевы номера всех доказуемых утверждений данной системы и никаких других номеров печатать не будет. Поэтому, для того чтобы узнать, доказуемо или недоказуемо данное утверждение в исходной системе аксиом, мы берем его гёделев номер b и задаемся вопросом: напечатает ли машина Мa число b или не напечатает? Значит, если бы у нас существовал какой-то эффективный алгоритм, позволяющий определять, какие машины печатают те или иные числа, то мы вполне могли бы решить, какие утверждения доказуемы в той или иной системе аксиом. В этом, собственно, и заключалось бы осуществление мечты Лейбница. Более того, вопрос — какие машины печатают те или иные числа, может быть сведен к вопросу — какие числа печатает универсальная машина U, потому что вопрос, напечатает ли машина Мa число b, равносилен вопросу, напечатает ли машина U число а*b. Поэтому полное познание машины U означает полное познание всех машин, а следовательно, и всея математических систем. И наоборот, любой вопрос том, напечатает ли некая машина заданное число; может быть сведен к вопросу о том, доказуемо ли то или иное утверждение в определенной математической системе. Таким образом, полное познание всех формальных математических систем означает полное познание нашей универсальной машины.
Итак, главный вопрос, стоящий перед нами, можно сформулировать следующим образом. Пусть V — множество чисел, которые может напечатать универсальная машина U (это множество иногда называют универсальным множеством). Разрешимо множество V или нет? Если оно разрешимо, то мечта Лейбница осуществима; если же нет, то его стремления никогда не смогут быть реализованы. Поскольку V эффективно перечислимо (ведь оно генерируется машиной U), то вопрос сводится к тому, существует ли некая машина Мa, которая сможет напечатать дополнение V, а именно множество V̅. Иначе говоря, существует ли такая машина Мa, которая печатает те и только те числа, которые машина U не печатает? На этот вопрос можно дать исчерпывающий ответ лишь на основании утверждений 1 и 2, о которых мы упоминали выше.
Теорема L. Множество V̅ не является эффективно перечислимым: для любой заданной машины Мa либо существует какое-то число, принадлежащее множеству V̅, которое машина Мa не может напечатать, либо машина Мa напечатает по крайней мере одно число, которое принадлежит не множеству V̅, а множеству V.
Сумеет ли читатель доказать теорему L?
Рассмотрим также следующий частный случай. Пусть у нас имеется утверждение о том, что машина М5 перечислила множество V̅. Чтобы опровергнуть это утверждение, достаточно отыскать некоторое число n, показав при этом, что либо оно принадлежит множеству V̅, но не может быть напечатано машиной М5, либо оно не принадлежит множеству V, но машина М5 может его напечатать. Сумеете ли вы найти такое число n?
Я приведу решение этой задачи сразу, а не в конце главы, — по существу, это решение просто повторяет доказательство Гёделя.
Итак, возьмем произвольное число а. Согласно утверждению 2, машина Мa напечатает число x*x, если и только если машина М2a напечатает число х. Но, согласно утверждению 1, машина М2a напечатает число х, если и только если универсальная машина U напечатает число 2а*х, или, что то же самое, если число 2а*х принадлежит множеству V. Следовательно, машина Мa напечатает число x*x, если и только если число 2a*х входит в V. В частности (положив x равным 2а), машина Мa напечатает число 2a*2a, если и только если число 2a*2a принадлежит множеству V. Итак, либо (1): машина Мa напечатает число 2a*2a, и число 2a*2a принадлежит множеству V; либо (2): машина Мa не напечатает число 2a*2a, и число 2a*2a принадлежит множеству V.
Если выполнено условие (1), то машина Ма напечатает число 2a*2a, которое входит не в V̅, а в V; это означает, что машина Мa не генерирует множество V̅, потому что она может напечатать по крайней мере одно число 2a*2a, которое не входит в множество V̅. Если же выполняется (2), то мы опять получаем, что машина Мa не генерирует множество V̅ поскольку число 2a*2a принадлежит множеству V̅, а машина Мa это число напечатать не может. Итак, в обоих случаях машина Мa не генерирует множество V̅. В силу произвольности выбора а это означает, что никакая машина не может перечислить множество V, и, следовательно, это множество не является эффективно перечислимым.
Конечно, в частном случае а = 5 число n окажется равным 10*10.
Но все же какое это имеет отношение к мечтам Лейбница? Строго говоря, мы не можем ни доказать, ни опровергнуть возможность осуществления лейбницевых надежд, поскольку они никогда точно не формулировались. Ведь во времена Лейбница не существовало строгого определения понятий «вычислительная машина» или «генерирующая машина»; соответствующие точные определения были получены лишь в нашем веке. Подобных определений имеется много (их вводили Гёдель, Эрбран, Клини, Черч, Тьюринг, Пост, Смаллиан, Марков и многие другие), однако было проверено, что все они эквивалентны между собой. И если под словом «разрешимо» понимать разрешимость в соответствии с любым из этих эквивалентных определений, то мечта Лейбница оказывается неосуществимой по той простой причине, что сами машины можно перенумеровать таким образом, что утверждения 1 и 2 обязательно будут выполняться. Тогда по теореме L множество V, генерируемое универсальной машиной, оказывается неразрешимым — оно будет лишь полу разрешимо. Следовательно, не существует никакой «чисто механической» процедуры, с помощью которой можно было бы узнать, какие утверждения доказуемы в той или иной системе аксиом, а какие нет. Таким образом, любая попытка изобрести некий хитроумный «механизм» для решения всех математических задач обречена на провал.
Это означает, что, выражаясь пророческими словами известного логика Эмиля Поста (1944), математическое мышление является и всегда будет оставаться по сути своей сугубо творческим процессом. Или, как остроумно заметил математик Пол Розенблум, — человеку никогда не избавиться от необходимости пользоваться своим умом, сколько бы ума он не приложил к этому.