Глава 7

Ход мета-конём

в  которой три мудреца в одном тазу пускаются по морю в грозу, а также происходит грандиозная шахматная партия

A11.png

1

1

Трудно даже сосчитать, сколько раз в предыдущей главе мы употребили слово "уровень". И в самом деле, кажется, что в доказательстве Гёделя уровни происходящего играют решающую роль. В ходе доказательства нам постоянно приходилось перепрыгивать с одного уровня на другой: нырять за гёделевскими номерами на самое дно, вставлять их в формулы на синтаксическом уровне, подменять понятия на уровне семантики, снова опускаться на дно - и так далее. 

Мистер Цо приводит пример смешения формы стихотворения и его содержания: форма поменялась бы, если бы содержание было другим: краткость стиха зависит от прочности таза*!

Как всегда, затейник Хофштадтер дарит нам ещё одно весёлое смешение уровней: форма неправильно написанного лимерика перекликается с содержанием. Кроме того, персонаж, о котором говорится в лимерике, ещё и, по всей видимости, является его автором:

A very sad poet was Jenny -

Her limericks weren't worth a penny,

In technique they were sound,

Yet somehow she found

Whenever she tried to write any,

That she always wrote one line too many!

У этого лимерика одна лишняя строчка - как будто его написала сама Дженни! Ирония заключается ещё и в том, что лимерик говорит нам о высокой техничности поэта Дженни; при этом лимерики у неё не получаются**. 

Приведём один из наиболее удивительных примеров смешения уровней в литературном произведении. Здесь не только форма связана со смыслом, но и сам процесс чтения! А именно, движение глаз читателя по строчке совпадает с движением тени, о которой говорится вот в этом однострочном хайку:

shadows darkening three-sevenths of her face in sunlight

Это хайку написано Elizabeth Searle Lamb о статуе Пикассо "Bust of Sylvette" в Нью-Йоркском жилом районе.

Построено оно настолько интересно, что нам придётся даже применить диаграммы.

 

Сначала тень покрывает три седьмых лица статуи, оставляя четыре седьмых освещёнными:

picasso1.webp

В то время как глаз читателя движется по строчке, тень движется по лицу Сильветты, попадая в его середину в тот самый момент, когда мы находимся в середине хайку:

picasso2.webp

Когда же мы дочитываем стихотворение до конца, тень уже покрывает четыре седьмых лица статуи, оставляя три седьмых освещёнными, как и написано в конце хайку:

picasso3.webp

Уровень процесса чтения - уровень текста - уровень статуи - уровень движения солнца... И всё это перемешалось в одной строчке. Потрясающе!***

* Как хотите, но это напоминает зависимость усилий семьи по наклону самовара от числа  простых множителей ГН формулы из комментария 5 Главы 6

** В книге "Анализ поэтического текста" Лотман продвигает идею неотделимости содержания от структуры художественного текста:
 

Исследователь литературы, который надеется постичь идею, оторванную от авторской системы моделирования мира, от структуры произведения, напоминает ученого-идеалиста, пытающегося отделить жизнь от той конкретной биологической структуры, функцией которой она является. Идея не содержится в каких-либо, даже удачно подобранных цитатах, а выражается во всей художественной структуре.

(см. продолжение сноски)

*** Не пройдём мимо и этого, хорошо известного нам смешивателя уровней и смыслов - e.e.cummings'а:

when man determined to destroy
himself he picked the was
of shall and finding only why smashed it into because

От читателя потребуется немалое проворство, чтобы расшифровать этот текст. 
После некоторого замешательства читатель без труда определит смешение частей речи, служащих для синтаксиса, с семантическим уровнем существительных, в качестве которых они здесь используются.   

** (продолжение сноски)
 

Мы говорим об уровнях; а это значит, что невозможно не процитировать Лотмана и дальше, хоть это и уведёт нас довольно далеко от темы. Итак:

Язык распадается на уровни. [...] То, что в художественной структуре каждый уровень должен складываться из противонаправленных структурных механизмов, из которых один устанавливает конструктивную инерцию, автоматизирует её, а другой выводит конструкцию из состояния автоматизации, приводит к характерному явлению: в художественном тексте каждый уровень имеет двухслойную организацию. Отношение текста и системы не представляет здесь, как в языке, простой реализации, а всегда борьбу, напряжение. Это создает сложную диалектичность художественных явлений, и задача состоит не в том, чтобы "преодолеть" двойственность в понимании природы поэтического размера, а в том, чтобы научиться и во всех других структурных уровнях обнаруживать двухслойный и функционально противоположный механизм. Отношения фонетического ряда к фонематическому (звук — фонема), клаузулы (рифмической позиции) к созвучию, сюжета к фабуле и так далее образуют на каждом уровне не мертвый автоматизм, а живое, "играющее" соотношение элементов.

Двухслойность каждого уровня может образовываться или противоречием между разнородными конструктивными элемента- ми (так, в рифме напряжение возникает между ритмической, фоно- логической и, как будет видно дальше, смысловой позициями) или же между реализацией или нереализацией одного и того же кон- структивного ряда (метрика). [...]

Наконец, возможен конфликт между различными организациями на одном уровне. Наиболее типичен он для сюжета. Так, Достоевский часто задает сюжетному развитию инерцию детективного романа, которая затем вступает в конфликт с конструкцией идеолого-философской и психологической прозы. Однако такое же построение возможно и на низших уровнях.

Так построено стихотворение Тютчева "Последняя любовь".

О, как на склоне наших лет
Нежней мы любим и суеверней...
Сияй, сияй, прощальный свет
Любви последней, зари вечерней!


Полнеба обхватила тень,
Лишь там, на западе, бродит сиянье,
Помедли, помедли, вечерний день,
Продлись, продлись, очарованье.


Пускай скудеет в жилах кровь,
Но в сердце не скудеет нежность...
О ты, последняя любовь!
Ты и блаженство, и безнадежность.

Ритмическое построение стихотворения представляет собой сложное соотнесение упорядоченности и их нарушений. Причем сами эти нарушения — упорядоченности, но лишь другого типа. [...]

Стихотворение начинается I формой четырехстопного ямба. [...] Однако второй стих вводит в ямбическую упорядоченность элемент, подобный анапесту, что не допускалось поэтическими нормами той эпохи. Это вкрапление могло бы казаться ошибкой, если бы оно не получило знаменатель- ного развития во второй строфе. Вопреки рифме, здесь проведена отчетливая кольцевая композиция: в первой и четвертой строках использованы правильные ямбические формы (III и IV), но композиционный центр строфы составляют два стиха с вкраплением двух двухсложных метиктовых интервалов, что создает уже инерцию интонации анапеста. [...] Последняя строфа начинается с восстановления расшатанной ямбической инерции — дается три стиха правильного ямба подряд. Однако сменяются они замыкающей все стихотворение и поэтому особенно весомой строкой, возвращающей нас к смешанной ямбо- анапестической интонации первой строфы.

Эта огромная цитата приведена здесь не по капризу автора, а по двум причинам. Во-первых, стихотворение Тютчева, действительно, уникально в поэзии (особенно 19-го века), и его подробный разбор не может не порадовать пытливого читателя нашей книги. Во-вторых, Лотман затрагивает одну из важнейших тем этой главы (да и всей книги) - смешение уровней. Смысл и эффект художественного произведения по Лотману рождается в напряжении между различными уровнями (вспомним поиски смыслового "центра" стихотворения в сноске ** комментария 8 Главы 5). 

Стихотворение, по Лотману, - это система систем: лексических, синтаксических, метрических, морфологических, фонологических и так далее. Взаимодействия между всеми этими системами (в том числе и на одном уровне - между элементами каждой из систем) и порождают эффект стиха. 

 
Впрочем, о смешении уровней читайте дальше. 

A12.png

2

2

Ну что ж, в предыдущей главе мы неплохо поупражнялись в метаязыках и прыжках с уровня на уровень. Пришло время применить накопленные знания на практике. 

Игра в "меташахматы" предложена Дугласом Хофштадтером в главе "Модифицирующаяся игра" в книге "Гёдель, Эшер, Бах":

Представьте себе шахматы. Ясно, что правила здесь остаются неизменными, а меняется только позиция на доске после каждого хода. Но давайте теперь рассмотрим такой вариант шахмат, в котором очередной игрок имеет право либо сделать ход, либо поменять правила. [...] Например, в одной из версий будет позволено изменять ход коня: вместо «1 и затем 2» конь будет передвигаться на «m» и затем «n» клеток, где m и n — любые натуральные числа; очередной игрок сможет увеличивать или уменьшать на 1 либо m либо n. Таким образом, ход коня сможет меняться от 1-2 до 1-3, до 0-3, до 0-4, до 0-5. до 1-5, до 2-5… Вместо этого могут существовать правила, модифицирующие ход слона и других фигур. Другие правила могут добавлять новые клетки к доске, или стирать старые…

У нас будет два уровня правил, одни говорят нам, как ходят фигуры, и другие — как изменяются правила. Таким образом, у нас есть правила и мета-правила. Следующий шаг очевиден: введение мета-мета-правил, говорящих нам, как менять мета-правила. Однако вовсе не очевидно, как именно это сделать. Правила, меняющие ходы фигур, придумать легко, поскольку фигуры двигаются в формализованном пространстве шахматной доски. Если бы нам удалось придумать простую формальную запись для правил и мета-правил, тогда обращаться с ними стало бы так же легко, как с цепочками формул или даже с шахматными фигурами. Доводя эту идею до логической крайности, мы могли бы представить, что правила и мета-правила могут быть изображены в виде позиций на вспомогательной шахматной доске. Тогда каждая позиция сможет, в зависимости от вашей интерпретации, быть понята как момент игры, набор правил или набор мета-правил. Разумеется, оба игрока должны будут заранее договориться о том, как интерпретировать нотацию.

Как видите, наши герои вполне точно воспроизвели эту игру, способную изменять саму себя*. 

* Идея само-модификации настолько интересна и обширна, что не грех будет уделить ей здесь достаточно места. 

(см. продолжение сноски)

 

* (продолжение сноски)
 

Читатель должен быть предупреждён: эта сноска будет не только неправдоподобно длинной - практически выходящей за рамки любой добропорядочной сноски - она по большей части будет касаться вопросов программирования. Если читателю эти вопросы глубоко неинтересны и даже ни в малейшей степени не любопытны, ему стоит пропустить эту сноску целиком. Для оставшихся - продолжим. 

Начнём с важной цитаты из книги "The Society of Mind" одного из отцов-основателей искусственного интеллекта Марвина Минского

Раньше мы обычно могли судить о машинах и процессах по тому, как они умели превращать сырьё в готовую продукцию. Но нет смысла говорить о мозге, как если бы он производил мысли так же, как фабрики производят автомобили. Разница здесь в том, что мозг использует процессы, которые меняют себя (выделено мной), а это означает, что мы не можем отделить такие процессы от продуктов, которые они производят. В частности, мозг создает воспоминания, которые меняют наш образ мышления. Основная деятельность мозга состоит в том, чтобы изменять себя (выделено мной). 

Итак, для Минского возможность менять себя - главное, что отличает мозг от других "машин".  А если задуматься, само-модификация - это и есть наше любимое смешение уровней. Когда мы думаем о некоем процессе, для нас он неотделим от данных, с которыми этот процесс работает. Процесс не существует сам по себе - он всегда неразрывно связан с входными и выходными данными; любой процесс направлен не некоторый объект, представляющий для него интерес. (Здесь уместно будет вспомнить о феноменологическом понятии интенциональности - см. комментарий 5 Главы 5).  Таким образом, данные находятся на одном уровне "бытия", а процесс, их обрабатывающий - на другом. Если же мы вводим понятие само-модификации, эти уровни смешиваются, то есть процесс начинает менять сам себя. А это в свою очередь означает, что и процесс, и данные (которыми теперь является сам процесс) занимают один и тот же "уровень бытия". Другими словами, уровни перемешались (чуть дальше мы увидим, что происходит, когда перемешиваются уровни шахматных досок, мета-досок, мета-мета-досок и так далее). 

Продолжая разговор о само-модификации, нельзя не остановиться на программировании, устройстве компьютера и языков программирования. Пожалуй, трудно найти лучшую модель для представления смешанных уровней и процессов, входными данными которых являются сами процессы. 
Спустимся сначала на самое дно архитектуры. Каждому в наше время известно, что и данные, и код (инструкции) программы представлены в компьютере с помощью нулей и единиц, занимающих определённые позиции в оперативной памяти. Да, области, в которых находятся данные программы и код программы, носят разные имена, но по сути дела - это одна и та же модель памяти: ячейки, каждая из которых имеет свой адрес, и содержимое этих ячеек, состоящее из битов, в которые помещаются только два значения: 0 и 1. 
Таким образом, процессу, выполняющему программу, не представляет никакого труда (по крайней мере концептуально) обратиться к ячейкам памяти, содержащим инструкции этой самой программы и подменить их на лету. В "Новом словаре хакера" Эрика С. Рэймонда приводится поэма "История Мела, Hастоящего Программиста", в которой супер-программист "на железе" Мел говорит: "Hу что хорошего может быть в программе, которая не умеет даже изменить свой код?"

Ничто, пожалуй, не может настолько хорошо проиллюстрировать программу, меняющую собственный код, как пример полиморфного вируса
Термин "компьютерный вирус" был введен в обращение Фредом Коэном в 1985 году в его диссертации "Computer Viruses", написанной в Южно-Калифорнийском университете. Диссертация была посвящена исследованию саморазмножающихся программ. Компьютерный вирус – это и есть программа, призванная воспроизводить саму себя, внедряясь в тело "доброкачественных" программ, точь-в-точь как настоящий, человеческий вирус. 

Целая индустрия родилась на почве борьбы с компьютерной "чумой" - индустрия программ-антивирусов, назначение которых выслеживать вирусы, деактивировать их и предупреждать владельцев об их появлении. Авторы вирусов, в свою очередь, не оставили нападение без ответа. Вирусы стали более изощренными, они научились мутировать и притворяться, прятаться в закоулки компьютерной памяти и даже использовать сами антивирусные программы для своих собственных целей.

Вся эта киберпанковая война, разворачивающаяся на мировой компьютерной арене, напоминает гигантскую шахматную партию, находящуюся в патовой ситуации. Одну из арен этой борьбы, а именно борьбу антивирусов-сканеров с полиморфными вирусами, мы сейчас и изучим. 


Сканеры – самая старая разновидность антивирусов. Идея тут крайне проста – просматривать все исполняемые файлы на диске, пытаясь найти такую последовательность байтов в коде, которая совпала бы с одной из известных сканеру последовательностей, принадлежащих какому-либо распространенному вирусу. Именно для борьбы со сканерами и была создана разновидность вирусов-мутантов или полиморфных вирусов. Очевидно, что простая тактика, которую можно противопоставить таким действиям сканера – это замена одной или нескольких инструкций вируса на другие без изменения его поведения (например, введением случайного числа инструкций, которые не производят никаких действий). Такая практика, однако, не слишком эффективна, потому что выпущенный в свет вирус с измененным кодом вскоре станет известен антивирусным программам. Гораздо более далеко идущий подход состоит в том, чтобы динамически изменять код вируса при каждом его копировании (то есть, в процессе размножения). Вирусы, действующие таким образом, и называются полиморфными.

Полиморфный вирус состоит из двух частей – дешифровщика (Decryptor) и основного тела вируса (Main Body). Тело вируса включает в себя собственно вирус (со всеми необходимыми атрибутами), шифровальщик (Encryption Routine) и генератор дешифровщика (Decryptor Generation Routine). Заметьте, что изначально тело вируса (Main Body) находится в зашифрованном виде:

Полиморфность вируса достигается тем, что при каждом новом копировании основное тело вируса шифруется по-другому с помощью процедуры-шифровальщика. Задача дешифровщика заключается в том, чтобы расшифровать тело вируса перед выполнением. Обратите внимание на проблему, которая возникает при таком раскладе: если сам дешифровщик при этом остается неизменным, смысл полиморфного вируса полностью теряется: ведь сканер сможет обнаружить такой вирус простым поиском известного ему кода дешифровщика. Эту проблему призван решить генератор дешифровщика (Decryptor Generation Routine). При каждом новом копировании вируса он заново генерирует код дешифровщика, вставляя в него случайным образом бесполезный код, который никак не влияет на поведение дешифровщика.

Процесс начинается с расшифровки основной части вируса (Main Body) в выполняемый код (программа изменяет сама себя в памяти!):

После того как тело основного вируса расшифровано, вирус принимается за свою обычную работу: ищет и заражает файлы-жертвы:

Когда дело сделано, генератор дешифровщика начинает производить новый код со случайно распределенными бесполезными инструкциями (New Decryptor). Затем процедура-шифровальщик заново кодирует тело вируса (New Encrypted Body), и вместе с новым кодом дешифровщика эти две части составляют новую версию вируса-мутанта. Вирус в своём новом обличье начинает жизнь в теле заражённого файла:

Наша история, однако, ещё далека от завершения. Если подняться с уровня "железа" компьютера на гораздо более абстрактный уровень языков программирования высокого уровня, то и здесь мы столкнёмся со смешением уровней. В этом нам поможет несколько эзотерическое понятие гомоиконичности или гомоиконности (homoiconicity). Этим свойством обладают те языки программирования, структура программы которых похожа на их синтаксис. По сути дела, это очень похоже на ситуацию с инструкциями процесса и его данными, обладающими подобной структурой, адресацией и местом нахождения, но в случае гомоиконичных языков дело происходит на уровне текста программы, а не в компьютерной памяти. 

Наиболее знаменитым и первым приходящим на ум примером будет, конечно, язык программирования LISP (который по-русски называется просто Лисп). Лисп - один из самых старых языков программирования (первая версия появилась в 1958 году), оказавших огромное влияние на всю компьютерную культуру и даже вполне активно использующийся до сих пор. Джон Маккарти – создатель Лиспа - определил несколько основных идей, положенных в основу языка. Для наших целей будут интересны следующие:
 

  • Операции проводятся над символическими выражениями, а не над числами☆☆.

  • Эти символические выражения представляются в памяти компьютера в форме списков.

  • Списки могут вложены друг в друга так, что элементами одного списка могут быть другие списки, и так "до бесконечности".

  • Программы Лиспа представлены в том же виде, что и данные (другими словами, программа на Лиспе – это просто список, над которым можно производить такие же операции, как и над любым другим списком).

Список в Лиспе может выглядеть, например, так:
 

(1 2 3)

или

(a (b c) d (1 2 3 4 5))

Последний - пример того, что списки могут быть вложенными (как и написано в принципах Маккарти).
А теперь взгляните на программу вычисления факториала на Лиспе:
 

(defun fact (N) (if (> N 1) (* N (fact (- N 1))) 1))

Даже без всякого понимания этой программы (точнее будет сказать - функции), каждый может увидеть, что эта функция - не что иное как список из нескольких элементов, некоторые из которых в свою очередь являются списками. Так, на первом уровне находятся следующие четыре элемента:
 

defun, fact, (N) и (if (> N 1) (* N (fact (- N 1))) 1). 

Как видите, и программы, и данные (такие как список (1 2 3)) на Лиспе представлены одинаково. Именно по этой причине, одна функция Лиспа может легко принять в качестве входных данных список, представляющий собой другую функцию Лиспа, совершить над ней некие действия и выполнить (для этого существует специальная функция eval - это по сути дела встроенный интерпретатор Лиспа). 

Однако впервые термин гомоиконичность появился в связи с описанием давно и прочно забытого всеми языка программирования TRAC. Собственно свойство гомоиконичности и было основной идеей этого языка. 

Язык TRAC, разработанный Калвином Муэрсом, давно бы канул в Лету, если бы ему не была посвящена целая глава в замечательной (хотя и очень старой) книге "Этюды для программистов" Чарльза Уэзерелла. Глава эта была заданием по созданию интерпретатора TRAC - именно потому, что это, наверное, один из немногих "настоящих" языков программирования, которые можно написать за один или два дня. 

TRAC является эталоном единства представления программы и данных потому, что жизненный цикл его программы полностью проходит внутри постоянно меняющейся последовательности (или "цепочки" в терминах TRAC'a) символов, состоящей из двух последовательностей: слева располагается нейтральная цепочка, справа активная. Основную роль здесь играет так называемый указатель сканирования, который всегда указывает не некий символ между нейтральной и активной цепочками. Указатель сканирования подчиняется простому, но очень строго определённому алгоритму, состоящему из 10 шагов. В основном это считывание текущего символа, перенос его из активной цепочки в нейтральную и замена цепочек, представляющих вызов функции, на цепочки, представляющие результат этого вызова. Функции выглядят примерно так же, как в Лиспе, например

#(add, 1, 2)
#(add, #(mul, 2, 3), #(div, 10, 5))
##(sub, 7, 5)

Последний пример (с двумя диезами) - это так называемый вызов "нейтральной функции". Разница заключается в том, что результат вызова активной функции помещается в активную цепочку (т. е. справа от указателя сканирования), а результат вызова нейтральной функции помещается в нейтральную цепочку (т. е. слева от указателя сканирования). Как видите, выполнение программы - это и в самом деле простейшие (можно даже сказать тривиальные) манипуляции с символами. При этом программа вообще неотличима от данных, с которыми она работает. 

Для полноты картины приведём также определение функции вычисления факториала (подобно той, что мы видели раньше на Лиспе):

#(ds, fact, (#(eq, X, 1, 1, (#(mul, X, #(cs, fact, #(sub, X, 1)))))))

TRAC прекрасен тем, что если включить распечатку всей цепочки на каждом шаге выполнения алгоритма TRAC'а, можно наблюдать за тем, как выполняется рекурсивная☆☆☆ функция - в данном случае функция вычисления факториала. Хоть это и снимает некоторый магический эффект работы рекурсии, зато добавляет понимания рекурсивного процесса. 

Увлекшись разговорами о программировании и интерпретаторах, не забудем и главный посыл Хайдеггера:
Дазайн - это существо (бытие-в-мире), которое интерпретирует само себя (то есть, своё собственное бытие в своём собственном мире). 

Может показаться, что сканеры бессильны против вирусов-мутантов. Однако не будем спешить с выводами. Существуют чрезвычайно хитроумные способы обнаружения мутантов – от спектрального до эвристического анализа.

 

Спектральный анализ означает статистическое исследование распределения машинных инструкций, используемых в программе. Вирусы часто пользуются эзотерическими машинными инструкциями, которые редко или никогда не генерируются нормальными компиляторами – эти-то инструкции и вызовут отклонения в распределении, анализируемом антивирусом.

 

Эвристический анализ подразумевает нахождение характерных паттернов поведения в коде исследуемой программы. Так, например, процедура-шифровальщик вируса-мутанта почти наверняка будет проходить в цикле по всем инструкциям тела вируса и изменять их. Такое поведение может служить уликой против вируса.

Говоря о саморазмножающемся вирусе-мутанте, нельзя не заметить, что принцип его действия почти в точности соответствует теоретической самовоспроизводящейся машине, созданной Джоном фон Нейманом - одним из главных гениев 20-го века. 
В конструкции фон Неймана машина состоит из универсального конструктора (А), который читает полное описание машины (F(A, B, C, D)) и конструирует её (не включая само описание машины F); универсального копировальщика (В), который умеет делать копии любого описания;  операционной системы (С), на которой проводятся все операции, и дополнительных функций (D), которые могут мутировать - изменяться от машины к машине, обеспечивая постепенный рост её сложности:

После того, как универсальный конструктор (A) используется для создания новой машины, закодированной в описании (F), копировальная машина (В) создаёт копию этого описания, внося при этом некоторые изменения в дополнительные функции (D), и эта копия передается на новую машину. После этого уже новая машина может повторить весь процесс - и так до бесконечности. 
Полное описание машины (F(A, B, C, D)) похоже на ленту с  описанием машины Тьюринга, с которой работает Универсальная Машина Тьюринга - с ней мы познакомились в комментарии 4 Главы 5

☆☆ Ада Лавлейс, дочь Байрона, которая считается "первой программисткой" в мире, предвосхитила это утверждение в своих заметках об Аналитической Машине Бэббеджа: "Аналитическая Машина может работать не только с числами, но и с такими объектами, фундаментальные взаимоотношения между которыми могут быть выражены с помощью абстрактных операций". Это предвидение, на самом деле, поражает воображение, учитывая что оно было высказано в 19-м веке.

☆☆☆ RECURSIVE: adj. see RECURSIVE.

Stan Kelly-Bootle, Devil's DP Dictionary

A13.png
A14.png

3

3

Продолжаем действовать по заветам Хофштадтера:
 

...сведем весь набор досок к одной-единственной доске. Что это означает? Что эту доску можно будет интерпретировать двояко как (1) фигуры, которые надо двигать и (2) правила ходов. Игроки, двигающие фигуры, тем самым меняют правила! Таким образом, правила постоянно меняют сами себя. Здесь слышен отголосок типогенетики (и настоящей генетики!) Различие между игрой, правилами, мета-правилами и мета-мета-правилами оказывается стерто. То, что когда-то было четкой иерархической системой, превратилось в Странную Петлю или Запутанную Иерархию*. Ходы меняют правила, правила определяют ходы — и так далее, по кругу. Здесь все еще есть различные уровни, но разница между «высшими» и «низшими» уровнями уже исчезла.

Итак, возвращаемся к смешению уровней из комментария 1 - и здесь, если автора вовремя не остановить, он будет вещать до скончания века. К играм мы ещё вернёмся, а пока необходимо заняться литературой. За примерами далеко ходить не надо - авторов, обсуждающих собственные произведения на страницах самих этих произведений в модернизме и постмодерне хоть пруд пруди - например, Итало Кальвино с его "Если однажды зимней ночью путник", в котором Читатель покупает в книжном магазине новый роман Итало Кальвино под названием "Если однажды зимней ночью путник", а дальше всё ещё больше запутывается.  Гораздо поразительней тот факт, что подобный приём встречается уже у Сервантеса*. Открываем "Скрытую магию в Дон Кихоте" Борхеса (кстати, что-то давно его не было слышно - пора и честь знать!):

Сервантесу нравится смешивать объективное с субъективным, мир читателя и мир книги. В главах, где обсуждается, является ли бритвенный тазик шлемом и вьючное седло нарядной попоной, эта проблема излагается открыто; в других местах, как я подметил, автор внушает ее исподтишка. В шестой главе первой части священник и цирюльник осматривают библиотеку Дон Кихота; удивительным образом одна из книг — это «Галатея» Сервантеса, и оказывается, что цирюльник — его друг, который не слишком им восторгается и говорит, что автор больше преуспевает в злоключениях, чем в стихах, и что в книге этой кое-что удачно придумано, кое-что намечено, но ничто не завершено. Цирюльник, вымысел Сервантеса или образ из сна Сервантеса, судит о Сервантесе... Удивительно также сообщение в начале девятой главы, что весь роман переведен с арабского и что Сервантес приобрел рукопись на рынке в Толедо и дал ее перевести некоему мориску, которого больше полутора месяцев держал у себя в доме, пока тот не закончил работу. 

* Можно не останавливаться на Сервантесе и уйти ещё дальше вглубь времён, продолжая читать рассказ дальше...

(см. продолжение сноски)

 

* (продолжение сноски)
 

Прием, аналогичный приему Сервантеса, но еще более поразительный, применен в «Рамаяне», поэме Вальмики, повествующей о подвигах Рамы и о его войне с демонами. В заключительной книге сыновья Рамы, не знающие, кто их отец, ищут приюта в лесу, где некий аскет учит их читать. Этот учитель, как ни странно, сам Вальмики; книга, по которой они учатся, — «Рамаяна». Рама приказывает совершить жертвоприношение, заклание лошадей; на празднество является Вальмики со своими учениками. Под аккомпанемент лютни они поют «Рамаяну». Рама слышит историю своих деяний, узнает своих сыновей и вознаграждает поэта... 

 

В конце рассказа Борхес объясняет наше восхищение (смущение?) смешением уровней в литературе:
 

Почему нас смущает, что карта включена в карту и тысяча и одна ночь — в книгу о «Тысяче и одной ночи»? Почему нас смущает, что Дон Кихот становится читателем «Дон Кихота», а Гамлет — зрителем «Гамлета»? Кажется, я отыскал причину: подобные сдвиги внушают нам, что если вымышленные персонажи могут быть читателями или зрителями, то мы, по отношению к ним читатели или зрители, тоже, возможно, вымышлены.

(Сравните с иерархией компьютерных симуляций Бострома из сноски ***** комментария 6 Главы 4). 
Тут же на ум приходит рассказ "Выдумка" философа Роберта Нозика (см. комментарий 2 Главы 4). Начинается он так:

Я — выдуманный персонаж. Но не спешите снисходительно улыбаться, упиваясь своим онтологическим превосходством. Ведь и вы тоже — выдуманный персонаж. Все мои читатели выдуманные — кроме одного, который, если говорить точнее, не читатель, а автор.

Этот рассказ, без сомнения, стоит того, чтобы прочитать его целиком.

 

Однако, мы немного отвлеклись от темы. Кто там на очереди? Ах, ну да, конечно же, Пушкин, который совершает внезапный прыжок из системы:

И вот уже трещат морозы
И серебрятся средь полей...
(Читатель ждет уж рифмы розы;
На, вот возьми её скорей!)

 

Смотрите, что творит этот затейник. 
Вот диаграмма "нормальных" взаимоотношений между автором, текстом, структурой текста и читателем
Автор создаёт структуру текста (в случае "Евгения Онегина" это, естественно, рифмованные стихи; более того - это совершенно особая онегинская строфа). На основе этой структуры построен текст, который в конечном счёте и воспринимается читателем:

А теперь посмотрим, что в этом четверостишии сотворил Пушкин. Автор вовлёк читателя в обсуждение структуры текста (рифмы) и ввёл его (читателя) в текст - "читатель ждёт уж рифмы розы; на, вот возьми её скорей!" Все четыре уровня, участвующих в создании и воспроизведении текста, по прихоти автора встречаются на уровне текста (внутри него) в точке обсуждения самого текста. (Вспомним язык программирования TRAC из комментария 2, в котором текст программы сам является местом, в котором встречаются интерпретатор языка и процесс выполнения программы). 

И, конечно, нельзя не упомянуть предтечу модернизма - неподражаемого Лоренса Стерна и его "Жизнь и мнения Тристрама Шенди, джентльмена":
 

В любви так же, как и в рогоношении…

— — Но вот я собираюсь начать новую книгу, а на уме у меня давно уже одна вещь, которой я хочу поделиться с читателями, и если не поделюсь сейчас, то, может быть, в моей жизни больше не представится случая это сделать (тогда как мое сравнение можно будет развить в любой час дня). — — Минуточку задержавшись, я начну совершенно всерьез.

Вещь вот какая.

Я убежден, что из всех различных способов начинать книгу, которые нынче в употреблении в литературном мире, мой способ наилучший, — — я уверен также, что он и самый благочестивый — — ведь я начинаю с того, что пишу первую фразу, — — а в отношении второй всецело полагаюсь на господа бога.

Тем не менее, все эти примеры бледнеют по сравнению с книгой, о которой - к величайшему сожалению - знают немногие. Итак - Жуакин Мария Машадо де Ассиз, бразильский писатель 19-го века и его книга "Записки с того света" ( она же "Посмертные записки Браза Кубаса"). Наберитесь терпения - мы будем много цитировать эту книгу (а ещё лучше - идите и прочитайте этот великолепный образец модернизма, написанный ещё до всякого модернизма путём "обмакивания пера насмешки в чернила печали" по признанию автора). 
В принципе достаточно было бы только привести название первой главы - "Кончина автора".  Но это было бы несправедливо по отношению к этой замечательной книге. Потому что дальше начинаются такие "прыжки из системы", что и Лоренс Стерн бы позавидовал:
 

Глава XLII
КОТОРУЮ ДОЛЖЕН БЫЛ НАПИСАТЬ АРИСТОТЕЛЬ
Метафизическим представляется мне также и следующее рассуждение: вы приводите в движение шар; шар катится, сталкивается с другим шаром, передает ему полученный толчок, теперь уже и второй шар катится, как катился первый. [...]Как же Аристотель не написал этой главы?

 

Глава XLV
НАБРОСКИ
Слезы, рыдания, траурное убранство дома; человек, пришедший одеть покойника, человек, пришедший снять мерку для гроба, гроб, катафалк, свечи; люди, неслышно входящие, пожимающие нам руки; лица торжественные, лица серьезные, изредка печальные; священник, пономарь, молитвы, святая вода[...]

Вы думаете, это простое перечисление? Нет, это набросок грустной и банальной главы, которую я так и не написал.

Читая следующее предложение, заметьте, что мы не знаем, уничтожил ли автор предыдущую главу на самом деле. Возможно предыдущая глава - это та, которая шла до уничтоженной предыдущей:

Скорее всего я уничтожу предыдущую главу — помимо всяких других соображений еще и потому, что ее заключительные строки содержат мысль, довольно неясную, а я не хотел бы в будущем давать пищу досужим критикам.

Здесь, по крайней мере, мы знаем, что хотя автор и намеревался избавиться от этой главы, он этого не сделал:

Глава XCVIII
КОТОРУЮ СЛЕДУЕТ ВЫБРОСИТЬ

[...]

Я хотел было выбросить эту главу. Она приняла опасный оборот. Но, в конце концов, это мои воспоминания, а не твои, многотерпеливый читатель. Так вот, подле этой милой барышни я, как мне показалось, испытывал ощущение двойственное и необъяснимое. Впрочем, объяснение ему можно найти в дуализме Паскаля, в его формуле I’ange el la bete☆☆, с той только разницей, что янсенист отрицал единство этих противоположностей, тогда как в данном случае они сидели рядышком: l’ange, который толковал что-то о небесах, и la bete… Нет, я решительно выброшу эту главу.

А вот вам пример само-модифицирующейся книги:

Глава СХХХ
КОТОРУЮ СЛЕДУЕТ ВСТАВИТЬ В ПРЕДЫДУЩУЮ
Впервые после возвращения Виржилии в столицу я встретился с ней на одном из балов, в 1855 году. [...]

Эту главу следует вставить в предыдущую, между первой и второй фразами.
 

Кажется, во всей мировой литературе такого примера ещё не было.
Следующий отрывок - вовсе никакой не отрывок, а вся глава целиком:

Глава CXXXVI
НЕНУЖНОСТЬ
Или я вконец запутался, или я только что закончил совершенно ненужную главу.

При том, что здесь отсутствует парадокс, эта "глава" несколько напоминает фразу "Это высказывание ложно".  Стоит вам только задуматься "А в чём же, собственно, состоит это высказывание? Где его содержание?" - как в тот же момент вы потеряете нить собственных размышлений. Так и с Главой CXXXVI "Посмертных записок Браза Кубаса". 

Надеюсь, читатель впечатлился этим экскурсом в бразильскую литературу, но мы обещали вернуться к играм. 

Вашему вниманию представляется удивительная игра под не менее удивительным названием "Baba is You". Правила этой игры можно менять по ходу дела☆☆☆, но главное даже не в этом — сами эти правила являются элементами игры! Передвигая по экрану либо саму вышеупомянутую Бабу, либо различные другие предметы и толкая ими стены, флаги и тому подобное, можно модифицировать саму суть этих предметов. 
Например, если на экране написано "Flag Is Win", то выиграть можно, дотронувшись Бабой до флага:

Screen Shot 2021-03-18 at 21.27.55.png

Но надпись Win можно вытолкнуть из флага и передвинуть так, чтобы получилось правило "Rock is Win" — и теперь уже выиграть можно, дотронувшись до камня, а не до флага:

Но бывают ещё более интересные ситуации: в начале каждого уровня Baba Is You, то есть игра идёт от лица этой самой Баба. Но если вытолкнуть Бабу из надписи и подставить, например, Flag так, чтобы получилось правило Flag is You, то перспектива тут же меняется на флаг - он становится главным действующим лицом. Теперь вы выигрываете, двигая по полю флаг вместо Бабы:

"Baba is You" идеально демонстрирует принцип совмещённых мета-досок в наших мета-шахматах: "фигуры" на доске Бабы сами являются частью правил игры. Перемещая их по оригинальному полю, вы одновременно составляете правила на мета-поле (которое и есть то же самое оригинальное поле). Правила игры и есть сама игра!

В заключение ещё один пример смешивания уровней:

Screen Shot 2021-03-28 at 16.22.27.png

Книга Keith Houston под названием "The Book"(!) посвящена книге как физическому объекту. Её обложка (и несколько первых страниц) являются также и мета-описанием частей, составляющих обложку книги (author, title, subtitle, head, foot, corner, binding tape). Её название - очевидно - является также и мета-описанием того, о чём собственно эта книга. 

Однако, пришло время продолжить игру. 

☆ Интересно, был ли Ролан Барт знаком с "Посмертными записками Браза Кубаса" или название его программной статьи "Смерть автора" просто случайное совпадение. В любом случае, если у Барта смерть автора - просто метафора отчуждения текста от его создателя, то у Машадо де Ассиза смерть автора совершенно конкретна: книга "написана" от лица скончавшегося автора:
 

Итак, я испустил дух в два часа пополудни в одну из пятниц августа месяца 1869 года, в моем прелестном имении в Кутумби. 

☆☆ Речь идёт о цитате Блеза Паскаля:


Человек — не ангел и не животное, и несчастье его в том, что чем больше он стремится уподобиться ангелу, тем больше превращается в животное.

 

☆☆☆ Само по себе это не такое уж удивительное обстоятельство: существуют игры (например, Fluxx), в которых игроки могут по ходу делать менять правила игры (например, менять цель игры, количество допустимых карт в руках и так далее). Или игра Nomic, придуманная философом Питером Субером, в которой вся игра как раз и состоит в систематическом изменении её правил. Вот как описывает игру её создатель:
 

Nomic — игра, в которой изменение правил является её ходом. В этом отношении она отличается практически от любой другой игры. Основная деятельность игроков состоит в предложении поправок к правилам, обсуждения желательности предложенного изменения, голосования по ним, определяющего, что будет разрешено, а что запрещено впоследствии, и в исполнении принятого. Даже ядро игры, без сомнения, может быть изменено.

Играть в Nomic так же утомительно, как и в мета-шахматы, которыми, пока мы тут рассуждаем, развлекаются наши герои. 

A15.png

4

4

Это интересный пример "прыжка за пределы системы" или, другими словами, путешествия по уровням иерархии. До сих пор наши правила определяли только ходы фигур. Однако - совершенно случайно - "пустой" ход коня позволил добавить в игру новый тип правил. Этот тип касается не определения возможных ходов, а совершенно нового уровня правил - возможности пропуска хода. 

В этом примере наглядно видно, как один уровень иерархии может влиять на другой. 

А16.png
А17.png

5

6

5

Артур Кёстлер - писатель, более всего известный своим романом "Слепящая тьма", написал книгу "Акт творения" об исследовании природы творчества (в частности, происхождения искусства, юмора и науки). 

В ней он вводит понятие биссоциативного мышления — это нечто большее, чем просто ассоциативное мышление. Если в случае с обычными ассоциациями мы сопоставляем понятия, близкие по содержательным категориям, то биссоциация — это сравнение вещей, относящихся к абсолютно несовместимым сферам. Способность к биссоциативному мышлению - это возможность человека выйти за рамки текущего "понятийного поля" (или - в нашей любимой терминологии - текущего уровня мышления). 
Акт творчества, пишет Кёстлер, всегда происходит на нескольких уровнях. Идея - будь то шутка или научное открытие - возникает и существует на пересечении этих уровней. В качестве примера он приводит такой анекдот (хотя на самом деле для иллюстрации подходит практически любой анекдот):

Шамфор* рассказывает историю маркиза при дворе Людовика XIV, который,
войдя в будуар жены и обнаружив ее в объятиях епископа, спокойно подошёл к окну и начал благословлять людей на улице.

"Что ты делаешь?'" - воскликнула изумлённая жена.

"Монсеньор выполняет мои функции", - ответил маркиз. - "Так что я выполняю его".

В анекдоте Шамфора напряжение нарастает по мере развития сюжета, но так и не достигает ожидаемой кульминации [...]. Повествование действует как канал, направляющий поток эмоций. Когда канал пробит, эмоция вырывается, как жидкость через лопнувшую трубу; напряжение внезапно снимается и взрывается смехом. 

Я сказал, что этот эффект вызван неожиданной реакцией маркиза. Однако, одной неожиданности недостаточно, чтобы произвести комический эффект. Ключевым моментом в поведении маркиза является то, что оно одновременно и неожиданно, и совершенно логично -  при этом логика обычно не применима в подобных ситуациях. Это логика "разделения труда" - quid pro quo - логика взаимных уступок; в то время как мы ожидали, что действия маркиза будут определяться совсем другой логикой или кодексом принятого поведения. Это столкновение двух несовместимых кодов или ассоциативных контекстов, которое и взрывает напряжение.

Для иллюстрации своих идей Кёстлер приводит следующую диаграмму:

Screen Shot 2021-03-30 at 17.00.11.png

Принцип, который лежит в основе творческого акта: идея — L находится в двух согласованных и в то же время несовместимых системах отсчета — M1 и M2. Получается, что L, находящаяся на пересечении двух плоскостей. одновременно колеблется на двух разных волнах. Мышление происходит не ассоциативно (в одном контексте), а биссоциативно — сразу в двух контекстах**.

6

Пришло время вернуться к статье Джона Р. Лукаса "Разум, машины и Гёдель", о которой шла речь в комментарии 1 Главы 6:

Какую бы сложную машину мы не сконструировали, она, будучи машиной, будет соответствовать формальной системе, которая, в свою очередь, будет подвержена Гёделевой процедуре нахождения формулы, недоказуемой в данной-системе. Эту формулу машина не в состоянии будет вывести в качестве истинной, хотя разум может установить ее истинность. Таким образом, машина все еще не будет адекватной моделью разума. Мы пытаемся создать механическую модель мозга — «мертвую» модель — но разум, будучи «живым», может всегда пойти на шаг дальше любой формализованной, окостеневшей, мертвой системы. Благодаря теореме Гёделя, за разумом всегда остается последнее слово.

Дуглас Хофштадтер - закоренелый сторонник теории сильного ИИ - возражает Лукасу примерно так же, как об этом говорят наши герои - но по отношению не к мозгу, а к программам искусственного интеллекта***. Аргументы Лукаса, пишет он, применимы только к низшему уровню программ ИИ; в принципе, только на "аппаратном" уровне, где происходит формальное манипулирование символами (см. всю Главу 6):

Необходимо учитывать, что многие программы, разрабатываемые специалистами по Искусственному Интеллекту, сильно отличаются от программ с жесткими правилами и наборами аксиом — программ, занятых поисками численно-теоретических истин. И все же они безусловно задуманы как «модели разума». На их высшем — «неформальном» — уровне может идти манипуляция символами, создание аналогий, забывание идей, перепутывание понятий, стирание различий и. т. д. Но это не противоречит тому, что все эта деятельность зависит от безошибочного функционирования лежащей в их основе аппаратуры, так же как мозг зависит от правильного функционирования его нейронов. Так что программы ИИ все еще являются «конкретными воплощениями формальных систем» — но они вовсе не те машины, к которым применимо преобразованное Лукасом доказательство Гёделя.

* Французский писатель Никола де Шамфор сегодня практически забыт. Мы же вспомним его афоризм, близкий к теме этой главы:

Автор идет от мысли к словам, а читатель – от слов к мысли.
 

** Чтобы объяснить вводимые им понятия матрицы и кода, Кёстлер приводит шахматный пример. Учитывая тему этой главы, со стороны автора было бы весьма неосмотрительно не упомянуть его здесь.

 

(см. продолжение сноски) 
 

*** Хофштадтер также объясняет и иррациональность, присущую нашему мозгу, взаимодействием уровней:

Тот факт, что нейроны никогда не ошибаются в сложении, совершенно не влияет на правильность заключений высшего уровня, который опирается на эту аппаратуру. Чем бы не занимался наш высший уровень — попыткой доказать коаны булева буддизма или медитацией над теоремами дзеновой алгебры, — нейроны нашего мозга функционируют рационально. Совершенно так же, символические процессы высшего уровня, порождающие чувство красоты у нас в мозгу, полностью рациональны на безошибочно функционирующем низшем уровне; вся иррациональность, если таковая имеется, принадлежит высшему уровню и является эпифеноменом — следствием событий, происходящих на низшем уровне.

 

** (продолжение сноски)
 

Я буду использовать слово "матрица" для обозначения любых способностей, привычек или навыков, любых шаблонов упорядоченного поведения, регулируемого "кодом" фиксированных правил.  [...]

Шахматист, смотрящий на пустую доску с единственным слоном на ней, видит доску не как однородную мозаику из черных и белых квадратов, а как своего рода магнитное поле с силовыми линиями, указывающими возможные ходы слонов: доска как бы делится на паттерны. [...]

Когда вы сидите перед шахматной доской, ваш код - это правила игры, определяющие, какие ходы разрешены; ваша матрица - это сумма возможных вариантов выбора. Наконец, выбор фактического хода среди множества допустимых ходов - это вопрос стратегии, руководимой "окружающей средой" других фигур на доске. Мы видели, что комические эффекты возникают из-за внезапного столкновения несовместимых матриц: для опытного шахматиста движение ладьи ходом слона явно выглядит "смешным".

Книга Артура Кёстлера даст нам ещё один повод поговорить о "смешивании" - раз уж так вышло, что это слово является ключевым для текущей главы. Дело в том, что именно загадкой о монахе, приведённой в "Акте творения", начинается книга "The Way We Think" Жиля Фоконье (Gilles Fauconnier) и Марка Тернера (Mark Turner), в которой они излагают свою теорию концептуального смешения (conceptual blending). Вот эта загадка в изложении Кёстлера:
 

Однажды утром, на восходе солнца, буддийский монах начал подниматься на высокую гору. Узкая тропинка шириной не более одного-двух футов вилась вокруг горы к сверкающему храму на вершине.
Монах поднимался по тропе меняя скорость, по пути останавливаясь, чтобы отдохнуть и съесть сухофрукты, которые он взял с собой. Он добрался до храма незадолго до заката. После нескольких дней поста и медитации монах пустился в обратный путь, начиная с восхода солнца и снова идя с переменной скоростью, делая по пути множество остановок. Средняя скорость его спуска, конечно, была больше, чем средняя скорость подъёма.

Докажите, что на его пути есть место, которое монах прошёл во время спуска и подъёма в один и тот же момент дня.

ППЧ, без сомнения, уже знает ответ на загадку монаха, а остальным читателям предоставляется возможность найти его самостоятельно. 

Вот как Кёстлер описывает отгадку, найденную молодой женщиной, без всякого научного образования:

Я пробовала так и этак, пока мне всё это не надоело, но образ монаха в шафрановой мантии, поднимающегося на холм, не покидал меня. Внезапно настал момент, когда я увидела ещё одно - более прозрачное изображение спускающегося с холма монаха, наложенное на изображение поднимающегося монаха, и внезапно сообразила, что эти две фигуры должны встретиться в какой-то момент, независимо от того, с какой скоростью они идут, и как часто каждый из них останавливается. Затем я рассудила так: спускается ли монах через два или три дня, не имеет значения.  С моей стороны было оправдано позволить ему спуститься в тот же день и существовать, так сказать, в двух экземплярах.

Разбирая решение загадки о монахе, Фоконье и Тернер вводят несколько ключевых понятий своей теории смешения. 

  • Mental Spaces (ментальные пространства) - небольшие концептуальные пакеты, создающиеся на лету в то время, когда мы думаем и говорим. Их цель - обеспечить понимание и соответствующие действия. 

  • Input Spaces (входные пространства) - в примере с монахом таких пространств два. Первое создаётся для дня, когда монах поднимается в гору, второе - для дня спуска с горы (Input Space 1 и Input Space 2 на рисунке). 

  • Cross-Space Mapping (межпространственное соответствие) - это соответствие соединяет подобные элементы в двух входных пространствах: день подъёма ставится в соответствие дню спуска; поднимающийся монах соответствует спускающемуся монаху и т. д.)

  • Generic Space (общее пространство) - это ментальное пространство содержит общие элементы входных пространств: движущаяся фигура, позиция на горе, движение в ту или иную сторону, день происходящего. 

  • Blend (смешение) - это ментальное пространство объединяет (смешивает) соединимые элементы (гора из двух входных пространств становится одной горой, день спуска и день подъёма объединяются в один День').  Однако фигуры, движущиеся в разных направлениях, сохраняют свою индивидуальность - направление движения и позицию на горе в течение всего дня. Они не могут быть "смешаны" в пространстве Blend. 

  • Emergent structure (возникающая структура) - пространство смешения генерирует новую структуру, возникающую в системе, именно за счёт смешения. Этой структуры не было ни в одном из входных пространств, а именно - картины двух монахов, одновременно движущихся в двух разных направлениях. Они движутся одновременно за счёт того, что день подъёма и день спуска слились в один единственный день в пространстве Blend. Они движутся по одной и той же горе, потому что гора в день подъёма и гора в день спуска слились в одну гору. 

  • Elaboration (the running of the blend) (разработка пространства смешения) - динамическое "прокручивание" сценария, созданного в Blend в голове (ментальном пространстве) отгадывающего загадку. "Акт творения" - озарение - происходит именно в тот момент, когда мы запускаем сценарий двух монахов, идущих в разные стороны по горе одновременно, внутри пространства смешения. В этот момент мы понимаем, что они обязательно встретятся, и не имеет значения, с какой скоростью каждый из них идёт. В то же время мы осознаём, что это один и тот же монах из двух наших вводных пространств, путешествующий в разные дни. Но Blend позволил нам увидеть фантастический сценарий встречи монаха с самим собой, и загадка, таким образом, оказалась решена. 

А18.png

7

7

Разговор наших друзей о фразах и стихах на самом деле подводит нас к интереснейшей дискуссии между платонизмом, формализмом и интуиционизмом. 

Итак, математику "придумывают" или "открывают"?
Нагель и Ньюмен в книге "Теорема Гёделя" определяют платонизм* так:
 

Платонизм (реализм) — доктрина, согласно которой математика не творит и не придумывает рассматриваемые в ней "объекты", а открывает их, подобно тому как, например, Колумб открыл Америку. Таким образом, согласно этой точке зрения, объекты должны в некотором смысле "существовать" до их "открытия". 

Формалисты занимают прямо противоположную точку зрения; для них не существует никаких математических объектов. Математика формалистов - набор определений, аксиом и теорем. Как неоднократно обсуждалось в предыдущей главе, формулы для них - набор ничего не значащих символов. Формула может приобрести смысл, когда у неё появляется применение в материальном мире, но этот смысл имеет значение только по отношению к данному явлению. Взятая сама по себе, формула не будет ни истинной, ни ложной.   

 

Интуиционисты же пытались обосновать истинность математики, ссылаясь на человеческий разум. (Мы говорим о них в прошедшем времени, потому что, кажется, в мире не осталось активных интуиционистов - возможно, где-то есть латентные). Основателем интуиционизма считается голландский математик Лёйтзен Эгберт Ян Брауэр**. Согласно интуиционистам, для того чтобы определение свойства было справедливым, должна существовать механическая процедура, с помощью которой можно проверить, выполняется ли это свойство. Например, свойство "быть простым числом" для интуиционистов справедливо, поскольку его всегда можно проверить за конечное количество шагов. Здесь всё просто. 

А теперь давайте посмотрим на свойство, которое отвергается интуиционистами. 
Определим число Р таким образом:
Если среди знаков числа π = 3,14159265... (число которых, как мы знаем, бесконечно) есть хотя бы одна последовательность из 15 нулей подряд, то Р - это цифра, которая следует сразу за последним из этих нулей. Если последовательности из 15 нулей в десятичном разложении π не существует, то Р = 0. 
На сегодняшний день в разложении числа π не найдена последовательность из 15 нулей подряд. 

Для интуиционистов числа Р не существует, так как оно определено на основе свойства, которое нельзя проверить за конечное число шагов. Если в будущем последовательность из 15 нулей будет обнаружена, Р тот же час обретёт значение и начнёт существовать***

Г. Пинейро в книге "Гёдель. Теоремы о неполноте" практически вторит Философской Курице:

Сегодня P не существует, но, возможно, оно появится в будущем. То же самое мы могли бы сказать о ещё не написанном романе любого современного писателя. В этом сравнении нет ничего странного, поскольку для интуиционистов математика — это динамический, творческий процесс, подобный литературе, хотя он и управляется более строгими правилами. Математика создается (при соблюдении определенных правил), а не открывается.

* Мы, конечно же, помним, что Гёдель был убеждённым платонистом (см. комментарий 1 Главы 6). 

** Однако в широком смысле слова к интуиционизму можно отнести и Декарта, и Паскаля. 

В "Правилах для руководства ума" Декарта писал:

(см. продолжение сноски)

*** Давид Гильберт (формалист и анти-интуиционист) писал, что "если мы определим математический объект и это определение не противоречит само себе, то мы можем утверждать, что объект существует". Для Гильберта не было сомнений в существовании числа P. 

(см. продолжение сноски)

** (продолжение сноски)
 

Мы рассмотрим здесь все те действия нашего интеллекта, посредством которых мы можем придти к познанию вещей, не боясь никаких ошибок. Возможны только два таких действия, а именно: интуиция и дедукция.

Под интуицией я разумею не веру в шаткое свидетельство чувств и не обманчивое суждение беспорядочного воображения, но понятие ясного и внимательного ума, настолько простое и отчетливое, что оно не оставляет никакого сомнения в том, что мы мыслим, или, что одно и то же, прочное понятие ясного и внимательного ума, порождаемое лишь естественным светом разума и благодаря своей простоте более достоверное, чем сама дедукция. 


Блез Паскаль был адептом интуиции. Во многих своих работах по математике он в основном опирался на интуицию и даже отдавал ей предпочтение в качестве источника истины. Высказывания Паскаля по этому поводу достаточно красноречивы: "У сердца — свои причины, о которых не знает разум"; "Логика — медленный и мучительный метод, позволяющий тем, кто не знает истины, открывать ее"; "Смири гордыню, бессильный разум".

 

В некотором смысле интуиционистом был и Иммануил Кант. Согласно Канту, разум организует наше восприятие внешнего мира с помощью врождённых, интуитивных представлений о пространстве и времени. Пространство и время - порождения нашего разума. Опыт не является источником знания - наоборот: знание происходит из разума. Математика - лучший пример того, как априорное знание может существовать независимо от опыта. Так называемые априорные синтетические суждения не имеют опытного характера и в то же время расширяют наше знание.

*** (продолжение сноски)

Филип Дэвис и Рубен Херш в книге "The Mathematical Experience" приводят пример континуум-гипотезы Георга Кантора (с ним самим и с его трансфинитными числами мы уже встречались в комментарии 8 Главы 3) для того, чтобы объяснить разницу походов между платонистами, формалистами и интуиционистами (которых они называют конструктивистами): 

 

Кантор предположил, что не существует бесконечного кардинального числа, которое было бы больше 0 (мощность множества целых чисел) и меньше С (мощность множества действительных чисел). Гёдель и Коэн показали, что на основе аксиом формальной теории множеств гипотеза континуума не может быть ни доказана, ни опровергнута.
Для платониста это означает, что в качестве описания множества действительных чисел наши аксиомы неполны. Они недостаточно сильны, чтобы продемонстрировать нам всю правду. Гипотеза континуума верна или ложна, но мы недостаточно хорошо понимаем природу действительных чисел, чтобы найти окончательный ответ. 

С другой стороны, для формалиста такая интерпретация не имеет смысла, потому что никакой системы счисления действительных чисел не существует, за исключением того случая, когда мы сами решаем её создать, установив аксиомы для её описания. Конечно, мы можем изменить эту систему аксиом, если захотим. Такое изменение может быть сделано для удобства или пользы - или по какому-либо другому критерию, который мы решим ввести. Но это не является вопросом лучшего соотнесения с реальностью, потому что никакой реальности нет. 

Формалисты и платонисты находятся на противоположных сторонах в вопросах существования и реальности; но они не спорят друг с другом о том, какие принципы рассуждения допустимы в математической практике.
Им обоим противостоят конструктивисты. Конструктивисты считают настоящей математикой только то, что может быть получено с помощью конечной процедуры конструирования. Множество действительных чисел или любое другое бесконечное множество таким образом получить нельзя. Следовательно, конструктивист считает гипотезу Кантора бессмысленной. Любой ответ был бы пустой тратой времени.

А19.png

8

8

"Вавилонская библиотека" - знаменитый рассказ Борхеса, который мы не будем сейчас обсуждать, потому что ему будет посвящена целая глава.