С другой стороны, особенно важно иметь точное определение доказательства тогда, когда нужно увидить, что данное математическое утверждение недоказуемо в той или иной системе аксиом. Данная ситуация очень похожа на положение дел с построением при помощи циркуля и линейки в евклидовой геометрии: там, для того чтобы показать, что некое построение (например, трисекция угла, квадратура круга или удвоение куба[! То есть построение куба с объемом, вдвое большим, чем объем данного куба. — Прим. перев.!]) невозможно, требуется обычно более критическое определение понятия «построение», чем для того, чтобы показать, например, что то или иное геометрическое построение с помощью циркуля и линейки действительно возможно. То же самое происходит и с доказуемостью: чтобы продемонстрировать, что данное утверждение недоказуемо в некоторой исходной системе аксиом, требуется гораздо более строгое и критическое определение самого понятия «доказательство», чем для получения соответствующего положительного результата, а именно что данное утверждение в самом деле является доказуемым при принятии той или иной аксиомы.
Загадка Гёделя
   — Итак, — продолжал Фергюссон, — если задана некоторая система аксиом, то доказательство в данной системе представляет собой конечную последовательность высказываний, построенную по очень строгим правилам. При этом оказывается совсем несложно чисто механическим путем решить, является ли данная последовательность высказываний доказательством в этой системе или нет. Собственно говоря, совсем несложно даже придумать машину, которая может это делать. Гораздо труднее оказывается создать такую машину, которая могла бы решать, какие высказывания в данной системе аксиом доказуемы, а какие нет.
   — Ответ, я полагаю, зависит от выбора исходной системы аксиом…
   — Сейчас меня интересуют вопросы механического доказательства теорем, то есть вопросы создания таких машин, которые могли бы доказывать различные математические истины. Вот, например, мое последнее детище, — сказал Фергюссон, с гордостью указав на какое-то престранное сооружение.
   Крейг и Мак-Каллох несколько минут разглядывали машину, пытаясь разгадать ее назначение.
   — И что же она умеет? — спросил наконец Крейг.
   — Она может доказывать различные утверждения, касающиеся положительных целых чисел, — ответил Фергюссон. — Я использую язык, в котором имеются имена для разных множеств чисел, — точнее, подмножеств положительных целых чисел. При этом существует бесконечно много таких числовых множеств, которые поддаются наименованию на этом языке. Например, у нас имеются специальные названия для множества четных чисел, для множества нечетных чисел, для множества простых чисел, для множества чисел, делящихся на 3, и т. д. — вообще, можно сказать, что практически любое множество чисел, которое могло бы представить интерес для специалиста по теории чисел, обладает своим именем на этом языке. И хотя сама совокупность числовых множеств, поддающихся описанию на этом языке, содержит бесконечно много элементов, она (по мощности. — Перев.) будет все же не больше, чем множество всех положительных чисел. С каждым положительным целым числом n оказывается связанным определенное множество чисел Аn, имеющее имя на нашем языке — это позволяет представить себе, что все именуемые множества расположены в виде последовательности А1, А2…., Аn… (Если хотите, можете вообразить себе, например, книгу с бесконечным числом страниц, причем для каждого целого положительного n на соответствующей n-й странице приведено описание того или иного множества положительных целых чисел. Тогда система An — это множество, описанное на n-й странице этой книги.)
   Введем теперь математический символ Є, который означает «принадлежит» или «является членом». Для каждого числа х и произвольного числа у мы можем сформировать утверждение х Є Ау, которое означает, что х принадлежит множеству Ау. Это единственный вид утверждений, которые воспринимает моя машина. При этом задача машины состоит в том, чтобы определить, какие числа каким поддающимся описанию множествам принадлежат.
   Далее, каждое утверждение х Є Ау имеет свой кодовый номер — число, которое, будучи записано в обычной десятичной системе счисления, состоит из цепочки единиц длиной х и следующей за ней цепочки нулей длиной у. Например, кодовый номер утверждения З Є А2 выглядит как 11100; кодовый номер утверждения 1 Є А5 имеет вид 100000. При этом кодовый номер утверждения х Є Ау, то есть число, состоящее из х единиц и следующих за ними у нулей, я буду обозначать символом х*у.
   — Машина работает следующим образом, — продолжал Фергюссон. — Когда она обнаруживает, что число х принадлежит множеству Ау, то она отпечатывает число х*у, то есть кодовый номер утверждения х Є Ау. Если при этом машина печатает число х*у, то я говорю, что машина доказала утверждение х Є Ау. Кроме того, если машина способна напечатать число х*у, то я говорю, что утверждение х Є Ау доказуемо (с помощью моей машины).
   Наконец, я знаю, что моя машина всегда точна — в том смысле, что каждое утверждение, которое можно доказать с ее помощью, является истинным.
   — Минуточку, — вмешался Крейг. — Что значит «является истинным»? Какая разница между «является истинным» и «доказуемо»?
   — Да это же совершенно разные вещи, — объяснил Фергюссон. — Я говорю, что утверждение х Є Ау истинно, если х действительно является элементом множества А у. Если же оказывается, что машина способна напечатать число х*у, тогда я говорю, что утверждение х Є А, доказуемо с помощью моей машины.
   — Вот теперь ясно, — сказал Крейг. — Другими словами, утверждая, что ваша машина точна — или, иначе, что каждое утверждение, доказуемое с помощью машины, является истинным, — вы имеете в виду, что ваша машина никогда не напечатает число х*у, если х в действительности не принадлежит множеству Ау. Правильно я понял?
   — Совершенно верно! — ответил Фергюссон.
   — Скажите, а почему вы так уверены, что машина всегда точна? — спросил Крейг.
   — Чтобы ответить на этот вопрос, я должен рассказать о ней более подробно, — ответил Фергюссон. — Дело в том, что машина работает на основе определенных аксиом относительно положительных целых чисел; эти аксиомы запрограммированы в машине в виде неких команд. Все эти аксиомы представляют собой хорошо известные математические истины. При этом машина не может доказать какое-либо утверждение, если оно не вытекает логически из этих аксиом. Но поскольку все аксиомы истинны, а любое логическое следствие из истинных утверждений тоже является истинным, то, стало быть, машина не способна доказать ложное утверждение. Если хотите, я могу перечислить эти аксиомы, и вы убедитесь сами, что машина действительно может доказывать только истинные утверждения.
   — Сначала я хотел бы выяснить вот что, — сказал Мак-Каллох. — Допустим на некоторое время, что любое утверждение, доказуемое с помощью вашей машины, на самом деле является истинным. Значит ли это, что любое истинное утверждение вида х Є А, доказуемо с ее помощью? Иначе говоря, способна ли ваша машина доказывать все истинные утверждения типа х Є Ау или только некоторые из них?
   — Это очень важный вопрос, — ответил Фергюссон, — но, увы, ответа на него я не знаю. В этом-то как раз и состоит главная проблема, которую я никак не могу разрешить! Уже не один месяц я пытаюсь найти ответ на этот вопрос, но пока безуспешно. Так, я совершенно точно знаю, что моя машина может доказать любое утверждение вида х Є Ау, которое является логическим следствием заложенных в нее аксиом, однако я не знаю, достаточное ли количество аксиом введено мною в машину. Аксиомы, о которых идет речь, представляют собой нечто вроде общей суммы сведений, известных математикам относительно системы положительных целых чисел; и все же, может быть, их недостаточно, чтобы строго установить, какие же числа х и к каким поддающимся описанию множествам Ау принадлежат. До сих пор любое утверждение вида х Є Ау, которое я считал истинным, исходя из чисто математических соображений, оказывалось логическим следствием заложенных в машину аксиом; при этом машина способна доказать любое взятое мною утверждение такого вида. Однако то, что я не сумел найти истинного утверждения, которое машина не могла бы доказать, вовсе не означает, что такого утверждения не существует — может быть, я его просто еще не обнаружил. В то же время вполне может оказаться, что машина действительно способна доказать все истинные утверждения — но этого я тоже еще не сумел доказать. Пока я просто не знаю, как это сделать!
   Короче говоря, после этого Фергюссон подробно объяснил Крейгу и Мак-Каллоху, какие аксиомы заложены в машину и какие чисто логические правила позволяют доказывать новые утверждения на основании уже имеющихся. Все эти подробности вполне убедили Крейга и Мак-Каллоха в том, что машина на самом деле точна — что она действительно доказывает лишь истинные утверждения. Однако вопрос о том, может ли машина доказать все истинные утверждения или только некоторые из них, так и остался нерешенным. На протяжении нескольких последующих месяцев они часто собирались вместе для детального обсуждения возникших вопросов — пока, наконец, задача не была полностью решена.
   Я не стану утомлять читателя и приводить все подробности полученного ими решения; упомяну лишь о том, что действительно представляется для нас важным. Переломный момент в их исследованиях наступил тогда, когда друзья в конце концов сумели сформулировать три ключевые особенности машины; этого оказалось достаточно для полного решения задачи. Кажется, первыми обратили внимание на эти особенности Крейг и Мак-Каллох, однако их окончательная формулировка принадлежит Фергюссону. Но прежде чем перейти к описанию особенностей машины. я позволю себе сделать небольшое отступление.
   Для любого множества А положительных целых чисел, под его дополнением А понимается множество положительных целых чисел, не входящих в А. Например, если А — множество четных чисел, то его дополнением А будет множество нечетных чисел; если А — множество чисел, делящихся на 5, то А — это множество чисел, которые на 5 не делятся.
   Для любого множества А положительных целых чисел под А* мы будем подразумевать множество всех положительных целых чисел х, для которых х*х является элементом множества А. Поэтому для любого числа х выражение «число х принадлежит множеству А*» эквивалентно выражению «число х*х принадлежит множеству А».
   А теперь перечислим три главные особенности данной машины, которые были обнаружены Крейгом и Мак-Каллохом.
    Свойство 1.Множество А8 — это множество всех чисел, которые машина может напечатать.
    Свойство 2.Для любого положительного целого числа n множество А3* является дополнением множества А3n. (При этом под символом 3n мы понимаем 3, умноженное на n.)
    Свойство 3.Для любого положительного целого числа и множество A3n+1 представляет собой множество An* (то есть множество всех чисел х, для которых число х*x принадлежит множеству An).
 
   1. С помощью свойств 1–3 можно, оказывается, строго показать, что машина Фергюссона не способна доказать все истинные утверждения. Читателю предлагается найти такое утверждение, которое является истинным, но при этом не может быть доказано с помощью этой машины. Иначе говоря, мы должны найти такие числа пит (они могут быть как одинаковыми, так и разными), для которых кодовый номер утверждения n Є Аn—то есть число n*m — не мог бы быть напечатан машиной, но чтобы при этом число n являлось бы элементом множества А п.
 
   2. В решении задачи 1, которое приведено ниже, числа n и m оба меньше 100. Имеется и другое решение этой задачи, для которого числа n, m также оказываются меньше 100 (при этом они опять могут быть как одинаковыми, так и разными). Сумеет ли читатель найти это решение?
 
   3. Если не ограничивать сверху величину чисел n и m, то сколько всего решений может быть у такой задачи? Иначе, сколько существует истинных утверждений, которые недоказуемы с помощью машины Фергюссона?
Заключение
   Фергюссон вовсе не хотел отказываться от идеи создания такой машины, которая могла бы доказывать арифметические истины, не будучи в состоянии доказывать ложные заключения, поэтому он напридумывал целую кучу таких логических машин[!Некоторые из них оказались весьма интересными, и о них я надеюсь рассказать в своей следующей книге.!]. Однако для каждой новой машины либо он сам, либо Крейг с Мак-Каллохом все-таки находили такое истинное утверждение, которое машина доказать не могла. Поэтому в конце концов Фергюссон отказался от мысли сконструировать чисто механическое устройство, которое было бы одновременно и точным (в указанном выше смысле. — Перев.), и могло бы доказать любое истинное арифметическое утверждение.
   Итак, все героические попытки Фергюссона не увенчались успехом, однако причина этого заключалась отнюдь не в недостатке авторской изобретательности. Мы не должны забывать о том, что он жил за несколько десятилетий до знаменитых открытий таких известных логиков, как Гёдель, Тарский, Клини, Тьюринг, Пост, Черч и другие ученые, о работах которых у нас вот-вот пойдет речь. Если бы Фергюссон дожил до этих открытий, то он понял бы, что неудачи его обусловлены исключительно тем, что он пытался создать нечто по сути своей совершенно невозможное! Поэтому, отдав должное Фергюссону и его коллегам Крейгу и Мак-Каллоху, распрощаемся с ними и перенесемся на три-четыре десятилетия вперед, в переломный 1931 год.

Решения

   1. Одно из решений состоит в следующем: утверждение 75ЄА75 является истинным, но не может быть доказано машиной. И вот почему.
   Допустим, что утверждение 75 Є А75 ложно. Тогда число 75 не принадлежит множеству А75 Следовательно, это число должно принадлежать множеству А25 (согласно свойству 2, множество Аn является дополнением множества А3n) — Это означает (согласно свойству 3), что число 75*75 принадлежит множеству А8, поскольку 25 = 3X8-1-1, и, следовательно, машина может напечатать число 75*75. Иначе говоря, это означает, что утверждение 75 Є А75 может быть доказано машиной. Таким образом, если бы утверждение 75 Є А75 было ложным, то оно вполне могло бы быть доказано машиной. Однако нам известно по условию, что машина точна и никогда не доказывает ложные утверждения. Поэтому утверждение 75 Є А75 не может оказаться ложным, и, стало быть, оно должно быть истинным.
   Далее, поскольку утверждение 75ЄА75 истинно, то число 75 действительно принадлежит множеству Аn. Поэтому оно не может принадлежать множеству А 25 (согласно свойству 2), и, следовательно, число 75 * 75 в свою очередь не может принадлежать множеству А8, поскольку если бы это было так, то тогда, согласно свойству 3, число 75 принадлежало бы множеству а25. Поскольку ясно, что число 75 * 75 не принадлежит множеству Ag, то утверждение 756А75 не может быть доказано машиной. Итак, утверждение 75ЄA75 является истинным, но оно недоказуемо с помощью машины.
   2. Прежде чем рассматривать другие решения, установим следующий факт весьма общего свойства. Пусть для всего дальнейшего ключевым является множество К — это множество всех чисел х, для которых утверждение х Є Аx недоказуемо машиной, или, что то же самое, множество таких чисел х, для которых число х*х не может быть напечатано машиной. Далее, множество А75 как раз и есть такое множество К, потому что утверждение, что х принадлежит множеству Аn, равносильно утверждению, что х не принадлежит множеству A25, что в свою очередь равносильно утверждению, что число х*х не принадлежит множеству А8, где А8 — это множество тех чисел, которые машина может напечатать. Итак, А75 = К. Но при этом и Аn = К, потому что утверждение, что некое число х принадлежит множеству An, равносильно утверждению, что число х*х принадлежит множеству А8 (согласно свойству 3, поскольку 73 = 3x24+1), что в свою очередь равносильно утверждению, что число х+х не принадлежит множеству А8 (согласно свойству 2). Таким образом, А75 — это множество всех тех чисел х, для которых число х*х не принадлежит множеству А8 или, что то же самое, множество всех чисел х, для которых утверждение х Є Аx не может быть доказано машиной. Следовательно, А73 — это то же самое множество чисел, что и A75 поскольку оба они тождественны множеству К. Более того, для любого заданного числа n, для которого Аn = К, утверждение n Є А* должно быть истинным, но недоказуемым с помощью машины. Это можно показать буквально с помощью тех же самых рассуждений, что и в рассмотренном нами частном случае n = 75 (в еще более общей форме эти рассуждения приведены в следующей главе). Тем самым мы получаем, что утверждение 73 Є А73 — это еще один пример истинного утверждения, кодовый номер которого машина напечатать не может.
   3. Для любого числа n множество А9n должно совпадать с множеством n. В самом деле, множество А9n есть дополнение множества A3n, а множество А3n в свою очередь есть дополнение множества n; следовательно, множество А9n совпадает с Аn, Это означает, что множество A675 совпадает с множеством A75, и, стало быть, утверждение 675 Є А675 — это есть еще одно решение задачи. Аналогично утверждение 2175 Є A2175также является решением. Таким образом, мы получаем, что существует бесконечно много истинных утверждений, которые машина Фергюссона доказать не может: например, для любого n, которое равно произведению 75 на некоторое кратное числа 9 или произведению 73 на произвольное кратное числа 9, утверждение n Є А, является истинным, но недоказуемым посредством этой машины.

Доказуемость и истина

   Крупной вехой в истории математической логики стал 1931 г. Именно в этом году Гёдель опубликовал знаменитую теорему о неполноте. Свою эпохальную работу[!«Uber formal unentscheidbare Satze der «Principia Mathematica» und verwandter Systeme'I» («О формально неразрешимых предложениях «Принципов математики» и других родственных систем»), Моnatshefte fur Mathematik und Physik, 38, 173–198.!] он начинает следующими словами:
   «Развитие математики в направлении все большей точности привело к формализации целых ее областей, в связи с чем стало возможно проводить доказательства, пользуясь небольшим числом чисто механических правил. В настоящий момент наиболее исчерпывающими системами являются, с одной стороны, система аксиом, предложенная Уайтхедом и Расселом в работе «Princlpia Mathematica», а с другой — система Цермело—Френкеля в аксиоматической теории множеств. Обе эти системы настолько обширны, что в них оказывается возможным формализовать все методы доказательства, используемые сегодня в математике, — иначе говоря, все эти методы могут быть сведены к нескольким аксиомам и правилам вывода. Поэтому, казалось бы, разумно предположить, что указанных аксиом и правил вполне хватит для разрешения всех математических проблем, которые могут быть сформулированы в пределах данной системы. Ниже будет показано, что дело обстоит не так. В обеих упомянутых системах имеются сравнительно простые задачи из теории обычных целых чисел, которые не могут быть решены на базе этих аксиом»[!Выборочный перевод автора.!].
   Далее Гёдель объясняет, что такая ситуация обусловлена отнюдь не какими-то специфическими особенностями двух упомянутых систем, но имеет место для обширного класса математических систем.
   Что имеется в виду под «обширным классом» математических систем? Это выражение интерпретировалось по-разному, и соответственно по-разному обобщалась теорема Гёделя. Как ни странно, одно из самых простых и доступных для неспециалиста объяснений остается наименее известным. Это тем более удивительно, что на такое объяснение указывал и сам Гёдель во вводной части своей первой работы. К нему мы сейчас и обратимся.
   Рассмотрим систему аксиом со следующими свойствами. Прежде всего пусть у нас имеются имена для различных множеств положительных целых чисел, причем все эти «именуемые», или допускающие наименование, множества мы можем расположить в виде бесконечной последовательности А1, А2…, An… (точно так же, как в системе Фергюссона, рассмотренной в предыдущей главе). Назовем число n индексом именуемого множества А, если А=n. (Таким образом, если, например, множества А2, А7 и A13 совпадают между собой, то тогда числа 2, 7 и 13 — это все индексы одного и того же множества.) Как и для системы Фергюссона, с каждым числом х и с каждым числом у мы связываем утверждение, записываемое в виде х Є Ау, которое называется истинным, если х принадлежит А у, и ложным, если х не принадлежит Ау. Однако в дальнейшем мы не предполагаем, что утверждения типа х Є Ау являются единственно возможными утверждениями в данной системе, поскольку могут существовать и другие. Предполагается также, что любое возможное утверждение обязательно классифицируется либо как истинное, либо как ложное.
   Каждому утверждению в данной системе присваивается некий кодовый номер, который мы будем называть геделевым номером, причем гёделев номер утверждения x Є АУ будем обозначать х*у. (Теперь уже нет нужды предполагать, что число х*у состоит из цепочки единиц миной х, за которой следует цепочка нулей длиной у; cам Гёдель фактически использовал совсем другую кодовую нумерацию. Можно пользоваться самыми разными видами кодовой нумерации, и какой вид оказывался более удобным — это зависит от конкретного вида рассматриваемой нами системы. Так или иначе, для доказательства той общей теоремы, которую мы скоро докажем, нет необходимости вводить какую-то конкретную гёделеву нумерацию.)
   Определенные утверждения в данной системе принимаются как аксиомы; кроме того, вводятся также некие специальные правила, по которым можно на основании этих аксиом доказывать различные другие утверждения. Таким образом, в данной системе имеется иполне определенное свойство утверждения, называемое его доказуемостью.
   Далее предполагается, что система правильна в том смысле, что каждое доказуемое в этой системе утверждение является истинным; отсюда, в частности, следует, что если утверждение x Є Aу доказуемо в данной системе, то число х действительно является элементом множества Ау.
   Пусть Р — это набор гёделевых номеров всех доказуемых в данной системе утверждений. Пусть опять же для любого множества чисел А его дополнение обозначается символом А (это множество всех чисел, не принадлежащих А). Наконец, через А* мы будем обозначать множество всех чисел х, для которых число x*х принадлежит А. При этом нас будут интересовать системы, для которых выполняются следующие три условия Gi, G2 и G3:
    Условие G1.Множество Р допускает наименование в данной системе. Иначе говоря, существует по крайней мере одно число р, для которого Ар представляет собой множество гёделевых номеров доказуемых утверждений. (Для системы Фергюссона таким р было число 8.)
    Условие G2.Дополнение любого множества, допускающего наименование в данной системе, также именуемо в этой системе. Иначе говоря, для любого числа х найдется такое число х, для которого множество А* является дополнением множества Ах. (Для системы Фергюссона таким х было число 3х.)
    Условие G3.Для любого именуемого множества А множество А* также именуемо в данной системе. Иначе говоря, для любого числа x всегда найдется такое число х*, что множество А, — представляет собой, множество всех чисел n, для которых n*n принадлежит А, (Для системы Фергюссона таким х* было число 3x+1.)
   Очевидно, что условия F1, F2 и Fз, характеризующие машину Фергюссона, представляют собой не более чем частные случаи условий G1, G2 и G3. Последние имеют большое значение потому, что они действительно выполняются для самых разнообразных математических систем, в том числе и для тех двух систем, которые рассмотрены в работе Гёделя. Другими словами, оказывается возможным расположить все допускающие наименование множества в виде бесконечной последовательности A1, A2…, An… и ввести для всех утверждений некоторую частную нумерацию Гёделя, причем так, что будут выполняться условия G 1, G2 и G3. В результате все то, что является доказуемым для систем, удовлетворяющих условиям G1, G2 и G3, будет применимо ко многим другим важным системам. Теперь мы можем сформулировать и доказать теорему Гёделя в общей форме.
   Теорема G. Для любой правильной системы, удовлетворяющей условиям G1, G2 и G3, должно существовать утверждение, которое является истинным, но недоказуемым в данной системе.
   Доказательство теоремы G представляет собой простое обобщение доказательства, которое уже известно читателю для системы Фергюссона. Обозначим через К множество таких чисел х, для которых элемент х*х не принадлежит множеству Р. Поскольку множество Р (согласно условию G1) именуемо в данной системе, то же можно сказать и о его дополнении Р (согласно условию G2), а следовательно, и о множестве Р* (согласно условию G3). Но множество Р* совпадает с множеством К (поскольку Р* — это множество таких чисел х, для которых х* х принадлежит Р, или, другими словами, множество таких чисел х, для которых элемент х*х не принадлежит Р). Таким образом, множество К допускает наименование в данной системе, откуда следует, что К = А* по крайней мере для одного числа k. (Для системы Фергюссона одним из таких чначений k было число 73, другим — число 75.) Таким образом, для любого числа х истинность утверждения x Є Ak равносильна утверждению, что число х*х не принадлежит Р, а это в свою очередь означает, что утверждение x Є Ax недоказуемо (в данной системе). В частности, если мы возьмем в качестве х число k то истинность утверждения k Є A* будет равносильна его недоказуемости в данной системе, что означает либо истинность, но недоказуемость этого утверждения, либо его ложность, но доказуемость в той же системе. Но последняя возможность исключена, поскольку мы предположили, что наша система является правильной; следовательно, указанное утверждение истинно, но недоказуемо в данной системе.