В прошлом параграфе мы строго определили аксиомы теории множеств. Сейчас мы копнем немного глубже и попытаемся понять насколько приведенный нами формализм полноценен.
Когда мы в первой главе говорили о теориях в самом общем виде, то мы упоминали два возможных свойства теорий: полноту и непротиворечивость. Напомню эти определения (теперь в несколько более формальном виде):
Определение. Теория называется полной, если для любого предложения либо , либо .
Определение. Теория называется непротиворечивой, если ни для какой формулы не может быть одновременно и .
В первой главе мы так же доказывали, что из противоречивых теорий можно вывести любую формулу. Этот факт будет нами использоваться ниже.
Является ли ZFC полной и непротиворечивой? Ответ на этот вопрос дают следующие две теоремы (доказательства мы проведем ниже, а пока только сформулируем и обсудим эти утверждения):
Первая теорема Гёделя о неполноте. Никакая аксиоматическая система, в которой возможно описать арифметику натуральных чисел, не является полной.
Вторая теорема Гёделя о неполноте. Ни для какой аксиоматической системы, в которой возможно описать арифметику натуральных чисел, невозможно доказать ее непротиворечивость.
То есть результаты прямо скажем неутешительные. Если говорить простыми словами, то здесь говорится о том, что существуют некоторые теоремы, которые мы никогда не сможем доказать, причем доказуемость этих теорем совершенно никак не зависит от системы аксиом, которую мы придумаем. Что бы мы там ни напридумывали вместо ZFC, все равно полученная аксиоматика будет неполной.
Это, впрочем, не особенно большая проблема: недоказуемую теорему можно принять как новую аксиому и спокойно себе жить дальше (можно так же принять и ее отрицание, и тоже спокойно себе жить дальше). Вторая теорема Гёделя звучит куда страшнее: если наша теория непротиворечива, то мы никогда не сможем этого доказать. То есть если противоречие есть, мы доказать это можем: достаточно найти формулу , чтобы одновременно с ней мы могли вывести и ее отрицание. Если же такой формулы в действительности нет и теория наша непротиворечива, то мы этого доказать никогда не сможем. Впрочем, за примерно сотню лет истории ZFC (смотря с какого момента начинать отсчитывать ее историю), противоречий найти так и не удалось, поэтому есть надежда на то, что ZFC всё же непротиворечива.
Может возникнуть вопрос, что же случится в случае, если в ZFC все же обнаружат противоречия? На самом деле и тут страшного ничего не приключится: большинство теорий, базой которых является теория множеств, могут быть переформулированы и без нее, хотя и менее удобно. Например, мы могли бы сформулировать теорию ориентированных графов с петлями не прибегая к множествам следующим образом: константные символы мы бы разбили на вершины и дуги, и ввели бы операции и , которые каждой дуге ставили бы в соответствие ее начальные и конечные вершины. Формально дугу от вершины можно было бы отличить формулой типа , которая истинна тогда и только тогда, когда является дугой. Продолжая подобные рассуждения можно было бы сформулировать целиком теорию графов, а так же сформулировав дополнительные аксиомы избавиться от ориентированности дуг и от петель. Другое дело, что определение теорий в таком виде оказывается куда сложнее, чем на языке теории множеств, однако при этом мы уже не зависим от ZFC и не страшимся ее противоречий. Аналоги для теорий, переформулированные без теории множеств, обычно называются метатеориями. Так, сформулированное мной только что можно было бы назвать метаграфом. Никто всерьез, правда, таким не занимается, да и если найдутся все же противоречия в ZFC, они скорее всего будут исправлены переформулировкой аксиом, а в целом фундамент теории множеств останется таким же.
Здесь полезно вспомнить так же и о моделях. В первой главе мы вводили их довольно неформально, но теперь мы можем определить понятие модели более-менее строго:
Определение. Сигнатурой называется набор нелогических символов с правилами их использования, то есть с указанием, являются ли они символами операции, отношения либо константными, и указанием количества параметров, используемых вместе с этими символами.
Мы можем говорить о сигнатуре некоторой теории или отдельной формулы. Например, сигнатуру ZFC можно описать единственным символом , для которого указано, что это символ отношения, и что он имеет ровно два параметра. Любая формула ZFC имеет ту же сигнатуру. То есть сигнатура это в некотором смысле язык, на котором мы описываем нашу теорию.
Определение. Структурой заданной сигнатуры называется такое множество формул , что для любой формулы заданной сигнатуры либо , либо (если , то это обозначается как ).
Определение. Структура теории называется моделью этой теории, если сигнатуры структуры и теории совпадают, и если для любого предложения так же верно .
Фактически структура — это набор утверждений об истинности конкретных формул. Модель — структура, в которой истинны все формулы заданной теории.
В терминах теории моделей можно переформулировать понятия полноты и непротиворечивости следующим образом:
Определение. Теория называется полной, если для нее существует единственная модель.
Определение. Теория называется непротиворечивой, если для нее в принципе существуют модели.
Эквивалентность двух определений непротиворечивости довольно очевидна. Если теория полна, то очевидно так же, что она имеет единственную модель. Если моделей теория имеет несколько, то это означает, что существуют предложения, которые могут быть ложны либо истинны в зависимости от модели, и они стало быть не могут быть выведены.
Однако с моделями имеется определенная напасть: чтобы сформулировать определение модели, мы опять использовали понятие множеств, и стало быть мы закладывались на непротиворечивость ZFC. Может показаться, что в таком свете теория моделей становится бесполезной для изучения теории множеств, однако это не так (хотя многие математики избегают при определении моделей пользоваться терминологией теории множеств, и говорят, что структура это не множество, а просто набор записей вида либо для каждого предложения , что в общем-то конечно избегает использования ZFC, но не приводит к каким-то сильно ощутимым бонусам). Вполне справедливы и полезны рассуждения, когда из самой гипотезы непротиворечивости мы определяем понятие модели и предполагаем существование хотя бы одной из них, а отсюда мы уже доказываем существование каких-то других моделей. Так, например, если предположить непротиворечивость ZF, то из существования хотя бы какой-то модели ZF (неизвестно даже точно какой именно), мы можем используя конструкции теории множеств показать, что будут неминуемо существовать еще по крайней мере две модели: та, в которой верна аксиома выбора, и та, в которой она неверна.
Мы пока не будем углубляться в подобные доказательства (хотя в последующих главах я приведу наброски подобных рассуждений), а отметим просто такой факт: если в неполной теории мы нашли невыводимую формулу , то мы можем прибавить ее к нашему набору аксиом и вновь получим непротиворечивую аксиоматику. А можем прибавить и отрицание этой формулы, и полученная аксиоматика так же будет непротиворечива. Нечто подобное произошло с геометриями Евклида и Лобачевского: в евклидовой геометрии утверждается, что через точку, не лежащую на заданной прямой, возможно провести лишь одну прямую, параллельную заданной, а в геометрии Лобачевского утверждается, что таких параллельных прямых окажется бесконечно много. И причем если геометрия Евклида непротиворечива, то именно из геометрии Евклида можно вывести и непротиворечивость геометрии Лобачевского. Несколько подробнее, хотя тоже не формально, а в виде исторического очерка, мы рассмотрим это в следующем параграфе.
Перейдем теперь непосредственно к доказательству теорем Гёделя.
Доказательство первой теоремы. Для начала мы сделаем набросок доказательства, опускающий ряд технических деталей, чтобы была просто понятная идея. Эти технические детали мы ниже сформулируем отдельной леммой с доказательством.
Предположим, что каждую формулу и каждое доказательство можно каким-то образом пронумеровать. Номер формулы будем обозначать символом , а номер доказательства символом . Эти номера мы будем называть гёделевскими номерами. Так же предположим, что мы можем каким-то образом записать формулу , которая обращается в истину тогда и только тогда, когда является номером доказательства для формулы под номером .
Идея доказательства сводится к формулированию такого предложения теории, которое каким-то образом ссылалось бы само на себя. В общих чертах это делается таким образом: если рассмотреть формулу , имеющую одну свободную переменную, то для нее существует некоторый номер . Тогда формула будет косвенно ссылаться на саму себя. Наша задача сейчас сводится к тому, чтобы сформулировать таким образом, чтобы она заключала в себе утверждение о доказуемости формулы с номером (вспомните теорему из первой главы «эту теорему невозможно доказать» — мы сейчас как раз занимаемся построением такой теоремы).
Чтобы получить в теореме ссылку на саму себя, определим формулу . То есть если словами, то , означает, что не является номером доказательства для . Последнее как раз и содержит утверждение, ссылающееся само на себя. Сама форма вначале преобразовывает (некоторый номер) в номер формулы со ссылкой на себя, и обращается в истину только тогда, когда не является доказательством для полученной формулы. Возможность формирования такой формулы мы опять же докажем ниже как лемму.
Теперь мы можем рассмотреть такую формулу: . Она, во-первых, имеет некоторый номер , во-вторых имеет свободную переменную , и в третьих содержит утверждение о недоказуемости , преобразованного в формулу, ссылающуюся на саму себя. Тогда если мы подставим вместо номер , то получим , а это то что нам и требовалось.
Действительно, предположим, что доказуемо. По определению это означает, что и то есть не может быть доказано. Противоречие.
Предположим обратное. Пусть доказуемо отрицание . Это значит, что , то есть существует доказательство , и последнее должно быть истинно. Опять же противоречие.
Мы получили, что ни предложение ни действительно не могут быть доказаны, а это и есть утверждение о неполноте.
Обещанную лемму мы теперь сформулируем так:
Лемма 1. Существует такая нумерация формул и доказательств, что в этой нумерации возможно определить формулы и , где по номеру формулы дает номер формулы, в которой свободная переменная заменена натуральным числом .
Формула необходима для того, чтобы иметь возможность сформулировать — без нее мы не могли бы подставить вместо какое-либо значение.
Доказательство и уточнение формулировки мы проведем чуть ниже, а пока докажем сразу и вторую теорему:
Доказательство второй теоремы. Опять же мы приведем лишь набросок доказательства, а повысим планку строгости в следующем параграфе. Мы пока допустим здесь некоторую вольность, и не будем различать сами формулы и их номера, поскольку именно в данном доказательстве это и не принципиально. Пусть — недоказуемая (гёделевская) формула, введенная при доказательстве первой теоремы. Тот факт, что она недоказуема, было нами строго доказано, то есть если ввести формулу , то мы можем утверждать, что . Однако теперь можно вспомнить смысл формулы , который формулируется так: «Данное предложение не может быть доказано». Но если мы доказали , то мы значит доказали ее недоказуемость, и, соответственно доказали ! Это похоже на порочный круг, приводящий к противоречиям, и нам надо разобраться откуда он появился. Проблема собственно в последнем следствии, которое мы сделали: из мы предположили, что не может быть одновременно с тем , то есть мы сделали предположение о непротиворечивости теории. Значит, это предположение было ложным, и такое предположение мы делать не имели права. Важно, что речь тут идет не о реальной противоречивости теории, а лишь о предположении непротиворечивости.
Несколько поднимем планку строгости и рассмотрим приведенное рассуждение более формально. Пусть — формула, соответствующая непротиворечивости ZF (ее можно определить, например, как , поскольку выводима тогда и только тогда, когда ZF противоречива). В предположении непротиворечивости ZF, и, следовательно, невыводимости , мы можем утверждать существование моделей, в которых истинно, и моделей, в которых ложно. В одном случае будет выполняться импликация , в другом случае импликация . Мы предполагаем, что мы можем доказать непротиворечивость ZF, то есть . Довольно легко видеть, однако, что если и , то так же . Получается, что в некоторых моделях при предположении будет , а в некоторых , однако обе эти формулы противоречат определению и первой теореме Гёделя о неполноте. Следовательно, моделей, в которых , не существует (что однако не говорит ничего об истинности самого ).
Отмечу, что я приводил доказательство для ZF лишь для того, чтобы не отвлекаться на лишние слова. То же самое доказательство можно провести в рамках любой теории, которая допускает определение натуральных чисел.
Докажем теперь используемые нами предположения из этих двух доказательств. Начнем с упомянутого во втором доказательстве утверждения, поскольку оно проще и короче.
Лемма 2. Если и , то и .
Доказательство. Обратим вначале внимание на то, что , тогда и только тогда, когда по определению . Тогда:
1) по условию;
2) по определению ;
3) по условию;
4) по определению ;
5) по правилу modus ponens из 2 и 4;
6) по определнию .
Доказательство леммы 1 требует однако некоторых знаний из базовой арифметики и теории чисел. Мы пока этим не занимались, и поэтому провести полноценное доказательство не сумеем. Тем не менее, сформулировать доказательство нам удастся почти целиком, так как свойства чисел используются лишь в одном небольшом фрагменте, который останется пока недоказанным, и закроем эту дырку мы в следующей главе.
Сразу заметим, что перенумеровать все формулы и доказательства вообще говоря не составляет труда: мы можем расположить все формулы по порядку возрастания их длины, а формулы одинаковой длины мы можем расположить «по алфавиту» (задав некоторый порядок символов). Доказательства формул можно перенумеровать аналогично. Такой порядок доказывает саму возможность нумерации, но ниже мы увидим, что он не позволит целиком доказать лемму. Пока мы будем использовать его, а ниже станет понятно какой именно нумерация должна быть, чтобы удовлетворить нашим запросам, и уже с этим знанием сформулируем требуемую нумерацию в третьей главе.
Конструировать формулу мы будем в виде последовательности лемм, объединение которых и даст нам требуемое доказательство.
Во-первых, вспомним, что доказательство — это конечная последовательность формул . В формуле первым параметром является гёделевский номер такой последовательности, определяемый инъективным отображением . Нам надо доказать здесь две вещи: во-первых, что нашу нумерацию мы можем выразить в ZF, и во вторых, что мы всегда можем построить отображение, обратное к нему. Этому соответствуют следующие две даже более общие леммы:
Лемма 3. Для любого существует инъекция .
Доказательство. В качестве упражнения. В дальнейшем мы будем доказывать более общее утверждение.
Обратите внимание, что данная лемма утверждает лишь возможность построить функцию (в отличие от формулы ZF) для нумерации доказательств, но не формул. То есть хоть мы и можем сопоставить каждой формуле гёделевский номер, мы не сможем построить функцию — областью определения в этом случае является набор формул, который мы не имеем права рассматривать как множество в соответствии с нашей формальной аксиоматикой (это та же причина, по которой Comprehension Scheme и Replacement Scheme мы формулировали как бесконечный набор аксиом, а не через кванторы).
Лемма 4. Для любого отношения существует обратное.
Доказательство. Элементарно. Пусть . Тогда обратное отношение определяется как .
Итак, на данном этапе мы имеем конечную последовательность и номер формулы . Теперь, используя композицию с , мы можем свести задачу построения функции к построению аналогичной функции, но только работающей не с номером доказательства, а с последовательностью номеров формул. Когда у нас есть последовательность формул, мы должны во-первых показать , и во-вторых показать, что сама последовательность является последовательностью корректных выводов.
Лемма 5. Для любой конечной последовательности и любого возможно построить функцию проекции .
Доказательство. Здесь под знаком подразумевается — именно так определяется отношение порядка на натуральных числах, как мы это увидим в следующей главе. Каждая конечная последовательность — это функция . Тогда требуемая проекция — это значение .
Лемма 6. Из любой конечной последовательности можно получить множество ее элементов.
Доказательство. Поскольку — функция, то множество элементов последовательности будет множеством значений этой функции .
Лемма 7. Из любой конечной последовательности можно получить начальный отрезок этой последовательности
Доказательство. Достаточно взять ограничение .
Пользуясь этими леммами мы легко можем получить последний элемент последовательности для сравнения его с . Так же мы легко можем рассмотреть любой начальный фрагмент последовательности, чтобы убедиться в том, что каждый номер в нем действительно является корректным следствием предыдущих номеров.
Следствие — это значит некоторое правило вывода. Например, правило вывода modus ponens можно определить как . Если определить множество всех правил вывода за , то отношение, проверяющее, что следует из последовательности можно легко сформулировать с помощью формулы .
Здесь мы предположили, что все правила в качестве начальных параметров берут два номера формул. Это легко обобщается на случай многих входных параметров.
Единственное, что нам осталось для написания формулы — это определить множество , то есть сформулировать на языке формальных формул все правила вывода как арифметические операции над номерами. Здесь уже возникает проблема. Получить формулу по номеру мы на самом деле не можем — отображения из формул на натуральные числа вообще говоря не существует, поскольку формулы теории ZF вообще не образуют множество, они являются лишь предложениями языка, на котором мы описываем нашу теорию. Поэтому здесь и возникает потребность не просто в абы какой нумерации формул, а именно в нумерации, которая позволяла бы легко на языке ZF формулировать правила вывода. На данный момент мы такую нумерацию определить не способны, потому что здесь потребуются уже базовые свойства чисел, о чем мы будем говорить лишь в следующей главе.
Аналогичная ситуация с определением функции . Здесь прежде всего надо уточнить что именно она делает. Фраза «заменяет вхождения на » звучит просто и понятно, но на самом деле не совсем корректна, поскольку — свободная переменная, а — вполне конкретное натуральное число, являющееся вполне конкретным множеством в нашей терминологии. Поэтому в действительности замена, которая происходит, может неформально быть описана функцией . Осталось только описать это на языке арифметики, чтобы работа велась не с формулами (на это мы не имеем права с формальной точки зрения), а с натуральными числами. Здесь та же ситуация что и с определениями правил вывода: для того чтобы легко манипулировать формулами на языке их номеров, нам нужна соответствующая нумерация. Эту дырку в доказательстве мы закроем в следующей главе.
Теперь, если по клочкам собрать в единое целое все написанное выше, то мы как раз и получим формулу для . Выглядеть она будет совершенно чудовищно (и я даже не уверен записывал ли ее реально хоть кто-нибудь), но однако мы доказали ее существование за вычетом нумерации. Этим доказательство первой теоремы Гёделя можно считать завершенным.
В качества фаталити, предлагаю попробовать доказать следующие две теоремы:
Упражнение. Докажите, что для любой формулы с одной свободной переменной, существует предложение , такое что .
Упражнение. Применив утверждение прошлого упражнения, докажите теорему Тарского о неопределяемости истины: не существует формулы, которая по гёделевскому номеру могла бы сказать является ли предложение, соответствующим данному номеру, истинным или ложным.