У интуиции есть своя логика. Гёдель. Теоремы о неполноте. - Gustavo Pineiro
Шрифт:
Интервал:
Закладка:
Уиллард ван Орман Куайн. "С точки зрения логики"
Как Гёдель доказал, что понятие доказуемости можно выразить? Для начала он доказал, что любое числовое свойство, проверяемое алгоритмически (например, "быть простым числом", "быть четным" или "делиться на 9"), всегда можно выразить с помощью сумм, произведений и логических операций.
Итак, то, что высказывание Р доказуемо, означает, что существует доказательство (принимаемое программой Гильберта), в котором Р — это конечное высказывание. В качестве примера мы уже приводили доказательство того, что "4 = 2 + 2" на основе аксиом "S(x + у) = х + S(y)" и "х + 1 = S(x)". Вспомним, что этому доказательству, с учетом последовательности высказываний, соответствует число Гёделя 2414871965597. Вспомним также, что "4 = 2 + 2" соответствует число 67. В переводе на язык кодов доказуемость "4 = 2 + 2" означает, что существует конечная последовательность высказываний (ее код 2414871965597), являющаяся доказательством, в котором конечное высказывание имеет код 67.
"Быть кодом доказательства" — это свойство, проверяемое алгоритмически, поскольку при заданном коде для осуществления проверки компьютер сначала использовал бы программу, восстанавливающую последовательность высказываний, соответствующую этому коду, а затем применил бы к этой последовательности высказываний алгоритм, который определяет, идет ли речь о доказательстве:
Код последовательности → Последовательность высказываний → Это доказательство?
НАЙТИ ИЛИ ПРОВЕРИТЬТеория доказательства ставит две проблемы, которые хоть и схожи, но не должны смешиваться. Первая заключается в том, чтобы при данном высказывании Р найти его доказательство (или доказать, что его не существует). Вторая — в том, чтобы определить, верно ли предложенное доказательство. Вторая проблема может быть сложной, но первая намного сложнее. Если методы доказательства подходящие, то вторая проблема может быть решена алгоритмически. Проблема нахождения доказательства, наоборот, неразрешима таким образом.
Британский математик Эндрю Уайлс.
Последняя теорема ФермаВ качестве примера можно рассмотреть последнюю теорему Ферма.
В 1637 году Пьер Ферма записал, что если n > 2, то уравнение хn + уn = zn не имеет решений для натуральных чисел. Ферма уверял, что у него есть доказательство этого факта, но так и не привел его. Проблема нахождения доказательства последней теоремы Ферма стала широко известной и в конце концов была решена Эндрю Уайлсом в 1996 году (он представил первое доказательство в 1995 году, но выяснилось, что в нем содержится ошибка, которая была исправлена почти через год). Определение правильности доказательства Уайлса потребовало несколько дней усилий; но для нахождения доказательства понадобилось более 350 лет.
Каждый шаг может осуществляться алгоритмически.
Следовательно, при заданных х и у свойство "у — это код доказательства, которое заканчивается высказыванием с кодом х" также является свойством, проверяемым алгоритмически, поскольку к предыдущей процедуре надо добавить только проверку того, что последовательность заканчивается высказыванием, соответствующим числу Гёделя х. Поскольку свойство проверяется алгоритмически, пропозициональную функцию "у — это код доказательства, которое заканчивается высказыванием с кодом х" можно выразить в терминах сумм, произведений и логических операций.
Наконец, делаем вывод, что выражение "существует некое у у являющееся кодом доказательства, заканчивающегося высказыванием с кодом х" также можно выразить арифметическими терминами. Фактически в этом утверждении говорится, что существует некое доказательство высказывания с кодом ху другими словами — что высказывание с кодом х доказуемо. Так мы приходим к выводу, что пропозициональную функцию "х — это код доказуемого высказывания" можно выразить арифметическими терминами.
Обычно этот арифметический перевод так сложен, что его явная структура может занять десятки страниц. Поэтому, чтобы понять идею доказательства Гёделя, предположим в качестве гипотетического примера, что свойство, характеризующее коды доказуемых высказываний, — это свойство "быть простым числом, которое может быть записано как сумма или разность трех последовательных простых чисел". Тогда мы допускаем, что "х — это код доказуемого высказывания" равносильно "х — это простое число, которое может быть записано как сумма или разность трех последовательных простых чисел".
Прежде чем продолжить, разберем это свойство. Простые числа — это числа, которые делятся только на единицу и на самих себя. Существует бесконечное число простых чисел: 2,3,5, 7,11,13,17, 19, 23,... (как уже говорилось в предыдущей главе, по техническим причинам число 1 не считается простым).
Число 23, например, простое и может быть записано как сумма или разность трех последовательных простых чисел, поскольку 23 =17 +19 -13 (заметим, что 13, 17 и 19 идут друг за другом в цепочке простых чисел, при выполнении операций их записали в другом порядке). В нашем примере мы можем убедиться, что 23 — это код доказуемого высказывания. Наоборот, 149 — это простое число, которое не может быть записано как сумма или разность трех последовательных простых чисел. Но 149 в нашем гипотетическом примере — это код высказывания "4 — нечетное число". Следовательно, говорить, что "149 не является простым числом, которое можно записать как сумму или разность трех последовательных простых чисел" равносильно тому, чтобы сказать: "высказывание о том, что 4 — нечетное число, является недоказуемым" (и действительно, оно недоказуемо, потому что мы предположили: аксиомы — это истинные высказывания, следовательно, всякое ложное высказывание недоказуемо). Повторим это понятие, поскольку это сердце доказательства Гёделя. Высказывание:
"149 не является простым числом, которое может быть записано как сумма или разность трех последовательных простых чисел" — это, для начала, утверждение арифметического свойства, связанного с числом 149. Но используя нумерацию Гёделя, этому же высказыванию мы можем приписать значение:
"высказывание о том, что 4 — нечетное число, является недоказуемым".
Существует два уровня прочтения "149 не является простым числом, которое можно записать как сумму или разность трех последовательных простых чисел". С одной стороны, чисто арифметически это дословный уровень, на котором мы истолковываем высказывание, выражая свойства числа 149. С другой стороны, у нас есть высший уровень прочтения, метаматематический, зависящий от нумерации Гёделя, и на нем мы истолковываем высказывание, говоря, что утверждение "4 — нечетное число" недоказуемо.
МЕТОД САМОРЕФЕРЕНЦИИМы увидели, что с помощью нумерации Гёделя можно получить арифметические высказывания, в которых идет речь о других арифметических высказываниях. Теперь посмотрим, как мы можем сформулировать высказывание, в котором речь идет о самом себе.
Предположим, что 101 — это код некоего высказывания Q. При таком предположении высказывание "101 — нечетное число" относится к Q и означает "код высказывания Q нечетный". Теперь представим себе, что мы ищем, какому высказыванию соответствует код 101 (то есть задаемся вопросом, что такое Q), и выясняем, что 101 — это число Гёделя для "101 — нечетное число". В этом случае "101 — нечетное число" действительно относится к самому себе и может быть переведено как "мой код — нечетное число".
Да, так и есть, можно построить высказывание, относящееся к его собственному коду. В своей статье Гёдель изложил систематический метод, позволяющий записать арифметические высказывания, относящиеся к собственному коду. Если Р — это любое арифметическое свойство (такое, как "быть четным числом" или "быть простым числом"), то этот метод — метод самореференции — объясняет, как записать высказывание, которое может означать "мой код выполняет свойство Р". Основной инструмент этого метода — функция d(x), которую Гёдель назвал диагональной.
Функция — это правило, которое каждому числу х ставит в соответствие другое число. Оно может совпадать с х или отличаться, но вычисляется однозначно (одному и тому же х не могут соответствовать два разных числа). Правилами могут быть "умножить число х само на себя" или "прибавить 3 к числу х". Для числа 2 первая функция даст значение 4, а вторая — 5. В частности, нас интересуют функции, которые могут быть выражены в терминах сумм, произведений и логических операций.
Пропозициональные функции получили это название, потому что они похожи на функции, но ставят в соответствие не числа, а высказывания. Например, пропозициональная функция "х — четное число" сопоставляет числу 2 высказывание "2 — четное число".