ГЕДЕЛЬ, ЭШЕР, БАХ: эта бесконечная гирлянда - Хофштадтер Даглас Р. (читать полные книги онлайн бесплатно .txt) 📗
Если 1 равняется 0, то 0 равняется 1:
Первая из этих строчек — атом; остальные — составные формулы. (Внимание: «и» во фразе «1 и 1 будет 2» — всего лишь еще одно обозначение «плюса» и должно быть представлено «+» (и необходимыми скобками).
Все правильно сформированные строчки, приведенные выше, обладают следующим свойством: их интерпретация — либо истинное, либо ложное высказывание. Однако существуют правильно сформированные формулы, не обладающие этим свойством, такие, например, как:
(b+S0)=SS0
Ее интерпретация — «b плюс 1 равняется 2». Поскольку b не определено, то невозможно сказать, истинно ли данное высказывание. Это напоминает высказывание с местоимением, взятое отдельно от контекста, такое, как «Она неуклюжа.» Это высказывание не истинно и не ложно — оно просто ждет, чтобы его поставили в контекст. Поскольку она не истинна и не ложна, подобная формула зовется открытой, а переменная b называется свободной переменной.
Одним из способов превратить открытую формулу в замкнутую формулу или высказывание является добавление квантора — фразы «существует число b такое, что…» или фразы «для всех b». В первом случае, у вас получается высказывание:
Существует число b такое, что b плюс 1 равняется 2.
Ясно, что это истинно. Во втором случае, вы получите:
Для всех чисел b, b плюс 1 равняется 2.
Ясно, что это ложно. Теперь мы введем символы для обоих кванторов. Два высказывания, приведенные выше, в ТТЧ будут выглядеть как:
Eb:(b+S0)=SS0 ( E означает «существует»)
Ab:(b+S0)=SS0 ( A означает «все»)
Важно отметить, что речь идет уже не о неопределенных числах; первое высказывание — это утверждение существования, второе — утверждение общности. Их значение не изменится, даже если мы заменим b на c:
Ec:(c+S0)=SS0
Ac:(c+S0)=SS0
Переменная, управляемая квантором, называется квантифицированной переменной. Две следующие формулы иллюстрируют разницу между свободной и квантифицированной переменной.
(b*b)=SS0 (открытая)
~Eb:(b*b)=SS0 (замкнутая - высказывание ТТЧ)
Первая формула выражает свойство, которое может быть присуще какому-либо натуральному числу. Разумеется, такого числа не существует. Этот факт выражен второй формулой. Очень важно понять разницу между строчкой со свободной переменной и строчкой, в которой переменная квантифицирована. Последняя строчка — либо истинна, либо ложна. В переводе на русский язык, строчка, где есть по крайней мере одна свободная переменная, называется предикатом. Предикат — это высказывание без подлежащего (или с подлежащим, выраженным местоимением, лишенным контекста). Например, высказывания:
«является предложением без подлежащего»
«было бы аномалией»
«читается вперед и назад одновременно»
«сымпровизировал по требованию шестиголосную фугу»
являются неарифметическими предикатами. Они выражают свойства, которыми обладают или не обладают определенные предметы или существа. С тем же успехом мы могли бы добавить «подлежащее-пустышку», например, «такой-то». Строчка со свободными переменными подобна такому предикату с подлежащим-пустышкой. Например:
(S0+S0)=b
означает «1 плюс 1 равняется чему-то». Это предикат с переменной b. Он выражает свойство, которым может обладать число b. Заменяя b на различные числа, мы получили бы последовательность формул, большинство которых выражало бы ошибочные суждения. Вот еще один пример разницы между открытыми формулами и высказываниями:
Ab:Ac:(b+c)=(c+b)
Эта формула, разумеется, выражает коммутативность сложения. С другой стороны:
Ac:(b+c)=(c+b)
— это открытая формула, поскольку b здесь свободно. Она выражает свойство, которым может обладать или не обладать число b, а именно — коммутативность по отношению ко всем числам с.
Теперь наш словарь, с помощью которого мы сможем выразить все высказывания теории чисел, полон. Чтобы научиться выражать сложные утверждения Ч и, наоборот, понимать значение правильно сформированных формул, необходимо много практиковаться. Поэтому мы обратимся к шести простым высказываниям, данным в начале, и попробуем перевести их на язык ТТЧ. Кстати, не думайте, что переводы, которые вы найдете далее, единственно возможные. На самом деле, существует бесконечное множество способов выразить каждое высказывание в ТТЧ.
Начнем с последнего высказывания: «6 — четное число». Переведем его в
более примитивные понятия: «Существует число e, такое, что 2, умноженное на e, равняется 6.» Это легко перевести в нотацию ТТЧ:
Ee:(SS0*e)=SSSSSS0
Обратите внимание на необходимость квантора; недостаточно было бы написать просто:
(SS0*e)=SSSSSS0
Интерпретация последней строчки не была бы ни истинной, ни ложной; она выражает только свойство, которое может иметь число e.
Интересно, что, поскольку мы знаем, что умножение коммутативно, то вместо нашей строчки мы могли бы написать:
Ee:(e*SS0)=SSSSSS0
Таким же образом, зная, что равенство симметрично, мы могли бы поменять местами стороны этого равенства:
Ee:SSSSSS0=(SS0*e)
Эти три перевода высказывания «6 — четное число» дают три различные строчки; при этом совершенно не очевидно, что теоремность каждой из них связана с теоремностью остальных. (Совершенно так же тот факт, что строчка -p--r--- была теоремой, почти не соотносился с фактом, что ее «эквивалентная» строчка --p-r--- также была теоремой. Эквивалентность — у нас в голове, так как мы, люди, автоматически думаем об интерпретациях формул, а не об их структурных особенностях.)
С высказыванием 2: «2 не является квадратом» мы расправимся быстро:
~Eb:(b*b)=SS0
Однако здесь мы снова сталкиваемся с двусмысленностью. А что, если бы мы записали эту формулу по-другому?
Ab:~(b*b)=SS0
Интерпретация первой строчки — «Не существует такого числа b, квадрат которого равнялся бы 2»; вторая строчка читается как «Для всех чисел b неверно, что квадрат b равняется 2». Для нас эти строчки представляют одно и то же понятие — однако для ТТЧ это совершенно разные строчки.
Посмотрим теперь на высказывание 3: «1729 — сумма двух кубов». Тут нам понадобятся два квантора один за другим, вот так:
Eb:Ec:SSSSSS.....SSSSS0=(((b*b)*b)+((c*c)*c))
. |--1729 раза--|
Есть несколько альтернатив этой записи: можно переменить порядок кванторов — сменить переменные на d и e; переменить порядок слагаемых; записать умножение по-иному и т. д., и т. п. Однако я предпочитаю следующие два варианта перевода:
Eb:Ec:(((SSSSSSSSSS0*SSSSSSSSSS0)*SSSSSSSSSS0)+((SSSSSSSSS0*SSSSSSSSS0)*SSSSSSSSS0))=(((b*b)*b)+((c*с)*с))
и
Eb:Ec:(((SSSSSSSSSSSS0*SSSSSSSSSSSS0)*SSSSSSSSSSSS0)+((S0*S0)*S0))=(((b*b)*b)+((c*c)*c))
Понимаете, почему?
Давайте попробуем перевести теперь высказывание 4: «Сумма двух положительных кубов сама не является кубом». Предположим, что мы хотим сказать, что 7 не является суммой двух положительных кубов. Легче всего сделать это, отрицая формулу, утверждающую обратное. Эта формула будет почти как предыдущая, касавшаяся 1729, только теперь нам надо добавить, что кубы должны быть положительными. Мы можем сделать это при помощи следующего трюка: добавим к каждой переменной префикс S:
Eb:Ec:SSSSSSS0=(((Sb*Sb)*Sb)+((Sc*Sc)*Sc))
Как видите, мы возводим в куб не сами b и c, а следующие за ними числа, которые должны быть положительными, поскольку минимальная величина b и c — 0. Таким образом, правая сторона представляет сумму двух положительных кубов. Кстати, обратите внимание, что перевод высказывания «существуют числа b и c, такие, что…» не включает символа «Λ», заменяющего «и». Этот символ используется для соединения целых правильно сформированных строчек, а не для соединения двух кванторов.