Предисловие
Нашему учителю, ВЛАДИМИРУ АНДРЕЕВИЧУ УСПЕНСКОМУ к 70-летию
Предлагаемая вашему вниманию книга написана по материалам лекций для младшекурсников, которые читались авторами в разные годы на механико-математическом факультете МГУ. (В этой серии уже вышли книги "Начала теории множеств" и "Вычислимые функции".)
Центральная идея математической логики восходит еще к Лейбницу и состоит в том, чтобы записывать математические утверждения в виде последовательностей символов и оперировать с ними по формальным правилам. При этом правильность рассуждений можно проверять механически, не вникая в их смысл.
Усилиями большого числа математиков и логиков второй половины XIX и первой половины XX века (Буль, Кантор, Фреге, Пеано, Рассел, Уайтхед, Цермело, Френкель, Гильберт, фон Нейман, Гедель и другие) эта программа была в основном выполнена. Принято считать, что всякое точно сформулированное математическое утверждение можно записать формулой теории множеств (одной из наиболее общих формальных теорий), а всякое строгое математическое доказательство преобразовать в формальный вывод в этой теории (последовательность формул теории множеств, подчиняющуюся некоторым простым правилам). В каком-то смысле это даже стало определением: математически строгим считается такое рассуждение, которое можно перевести на язык теории множеств.
Так что же, теперь математики могут дружно уйти на пенсию, поскольку можно открывать математические теоремы с помощью компьютеров, запрограммированных в соответствии с формальными правилами теории множеств? Конечно, нет, причем сразу по нескольким причинам.
Начнем с того, что машина, выдающая с большой скоростью математические теоремы (и их доказательства), хотя и возможна, но бесполезна. Дело в том, что среди этих верных утверждений почти все будут неинтересными. Формальная логика говорит, какие правила надо соблюдать, чтобы получать верные результаты, но не говорит, в каком порядке их надо применять, чтобы получить что-то интересное.
Казалось бы, мы можем запустить машину и ждать, пока она не докажет интересующее нас утверждение (пропуская все остальные). Проблема в том, что формальное доказательство сколько-нибудь содержательной теоремы настолько длинно, что прочесть его человек не в состоянии. Представьте себе доказательство, которое состоит из миллионов формально правильных шагов, в котором мы можем проверить каждый отдельный шаг, но так и не понимаем, что происходит — много ли в нем проку?
На самом деле прок все-таки есть: мы узнаем, что доказываемое утверждение верно, хотя так и не понимаем, почему. Так что и такая машина была бы полезна. Увы, и этого сделать не удается, поскольку на поиск доказательства сколько- нибудь сложного утверждения известными сейчас методами требуется астрономически большое время (даже если представить себе, что машина работает с предельно возможной по законам физики скоростью).
Можно умерить амбиции и поставить более простую задачу: пусть машина проверяет доказательства, записанные человеком по правилам формальной логики. Если машина не может помочь нам что-то открыть, пусть она хотя бы проверит, не пропустили ли мы какого-то шага рассуждения.
Из всех перечисленных задач эта выглядит наиболее реалистичной. К сожалению, пока что работы и в этом направлении не ушли далеко: формальная запись доказательства в виде, пригодном для машинной проверки, является долгим и скучным делом, на которое у математиков не хватает энтузиазма и терпения. А разработать удобные средства такой записи пока не удалось.
Короче говоря, революционная программа Лейбница построения формальных оснований математики осуществилась, но незаметно: под здание математики подвели новый (и довольно прочный) фундамент, но большинство жильцов про это до сих пор не знают.
Так что же, математическая логика бесполезна? Ни в коем случае: она не только удовлетворяет естественный философский интерес к основаниям математики, но и содержит множество красивых результатов, которые важны не только для математики, но и для computer science.
В этой книжке мы расскажем об одном из центральных понятий математической логики — языках и исчислениях первого порядка. В этих языках используются логические связки "и", "или", "если...то", а также кванторы "для всех" и "существует". Оказывается, что этих средств достаточно для формализации математических теорий и что можно построить простые формальные правила, полностью отражающие смысл этих логических средств.
Авторы пользуются случаем еще раз поблагодарить своего учителя, Владимира Андреевича Успенского, лекции, тексты и высказывания которого повлияли на них (и на содержание этой книги), вероятно, даже в большей степени, чем авторы это осознают.
При подготовке текста использованы записи А.Евфимьевского и А.Ромащенко (который также прочел предварительный вариант книги и нашел там немало ошибок).
Оригинал-макет книги подготовлен ее редактором, В.В.Шуваловым; без его настойчивости (вплоть до готовности разделить ответственность за ошибки) оригинал-макет вряд ли появился бы к какому-либо сроку. Он же вместе с М.А.Ушаковым (нашедшим несколько существенных ошибок) подготовил предметный указатель. Мы признательны также К.С.Макарычеву и Ю.С.Макарычеву, которые внимательно прочли верстку книги и нашли там немало опечаток.
Авторы признательны Ecole Normale Superieure de Lyon (Франция) за поддержку и гостеприимство во время написания этой книги.
Издание книги стало возможным благодаря Российскому фонду фундаментальных исследований, а также И.В.Ященко, который уговорил авторов подать туда заявку.
Наконец, мы благодарим сотрудников, аспирантов и студентов кафедры математической логики мехмата МГУ (особая благодарность — М.Р.Пентусу, указавшему два десятка опечаток), а также всех участников наших лекций и семинаров и читателей предварительных вариантов этой книги.
Просим сообщать о всех ошибках и опечатках авторам (электронные адреса ver@mccme.ru, shen@mccme.ru; почтовый адрес: Москва, 121002, Большой Власьевский пер., 11, Московский центр непрерывного математического образования).
Н.К.Верещагин, А.Шень