АЛЬБЕРТ: «Каждый раз, когда я слышал, как падает дерево, оно издавало звук, так что я полагаю, что и другие падающие деревья тоже издают звуки. Я не верю, что мир меняется, когда я на него не смотрю».
БЭРРИ: «Погоди-ка. Если никто его не слышит, как это может быть звуком?»
Сочиняя диалог Альберта и Бэрри в их споре о том, издает ли звук падающее в глухом лесу дерево, я ловил себя на том, что временами перестаю сопереживать своим персонажам. Я начинал терять интуитивное понимание того, почему хоть кто-то вообще стал бы так спорить, хотя сам не раз наблюдал подобное.
В такие моменты я повторял про себя: «Падающее дерево либо издает звук, либо нет!», чтобы вернуть себе позаимствованное чувство возмущения.
«Р или не-Р» — не всегда надежная эвристика, если подставлять вместо Р произвольные предложения. Предложение «Это предложение ложно» невозможно последовательно трактовать как истинное или ложное. Ну и старая классика: «Ты уже перестал бить свою жену?»
Конечно, если вы математик и придерживаетесь классической (а не интуиционистской) логики, то найдутся способы и дальше настаивать на том, что «Р или не-Р» — это теорема: например, заявив, что «Это предложение ложно» не является предложением.
Но подобные решения весьма тонки, что само по себе доказывает потребность в тонком подходе. Нельзя в любой ситуации просто переть напролом со своим «Либо да, либо нет!»
Так издает ли падающее дерево звук, или нет, или... ?
Уж конечно, либо 2 + 2 = Х, либо нет? Ну, возможно, если это действительно один и тот же Х, те же самые двойки, и те же самые «+» и «=». Если в одних случаях значением Х оказывается 5, а в других — 4, то ваше возмущение может быть неуместным.
Чтобы вообще заявлять, будто «Р или не-Р» должно быть необходимой истиной, символ Р должен означать точно то же самое в обеих частях дилеммы. «Либо падение издает звук, либо нет!» — но если Альберт::звук — это не то же самое, что Бэрри::звук, то нет ничего парадоксального в том, что дерево издает Альберт::звук, но не Бэрри::звук.
(Обозначение с двойным двоеточием «::» я перенял еще во времена программирования на C++, где оно использовалось во избежание конфликтов пространств имен. Если у вас есть два разных пакета, в которых определен класс Sound, вы можете написать Package1::Sound, чтобы уточнить, какой именно Sound имеется в виду. Думаю, этот прием не особо широко известен, а жаль: мне частенько хочется использовать его на письме.)
Эта изменчивость может быть завуалированной: Альберт и Бэрри могут тщательно проверить, что речь идет об одном и том же дереве, в одном и том же лесу и в один и тот же момент падения, просто чтобы убедиться, что их спор по существу касается абсолютно одного и того же события. И при этом забыть проверить, соотносят ли они это событие с одним и тем же понятием.
Подумайте о продуктовом магазине, в который вы ходите чаще всего: он находится на левой стороне улицы или на правой? Но, разумеется, никакой «абсолютной левой стороны» у улицы нет, есть только ваша левая сторона, когда вы движетесь по ней в определенном направлении. Многие используемые нами слова на самом деле представляют собой функции от неявных переменных, задаваемых контекстом.
На самом деле это жуткая головная боль, требующая чертовски много работы, — решать подобную проблему в программе искусственного интеллекта, предназначенной для синтаксического разбора языка; это явление известно под названием «дейксис говорящего».
«Мартин сказал Бобу, что здание находится слева от него». Но слово «слева» — это слово-функция, которая вычисляется на основе зависимой от говорящего переменной, невидимо извлекаемой из окружающего контекста. Чье «слева» имеется в виду — Боба или Мартина?
Переменные в ошибке переменного вопроса зачастую не снабжены аккуратными ярлыками — всё далеко не так просто, как в вопросе: «Слушай, как по-твоему, Z + 2 равно 6?»
Если конфликт пространств имен сталкивает два разных понятия, которые кажутся «одним и тем же понятием», поскольку называются одинаково, — или сжатие карты объединяет два разных события, которые выглядят как одно событие, потому что для них нет отдельных ментальных файлов, — или одна и та же функция вычисляется в разных контекстах, — тогда сама реальность становится изменчивой и текучей. По крайней мере, именно так это ощущается алгоритмом изнутри. Внутренний взор видит карту, а не саму территорию напрямую.
Если перед вами вопрос со скрытой переменной, которая принимает разные значения в разных контекстах, кажется, будто сама реальность нестабильна — картина перед вашим внутренним взором меняется в зависимости от того, куда он направлен.
Это часто сбивает с толку студентов младших курсов (и профессоров-постмодернистов), когда они натыкаются на предложение, имеющее более одной интерпретации; им кажется, будто они обнаружили нестабильный фрагмент реальности.
«О боже! Утверждение „Солнце вращается вокруг Земли“ истинно для охотника-собирателя Хунги, но для астронома Амары утверждение „Солнце вращается вокруг Земли“ ложно! Никакой неизменной истины нет!» Деконструкция этого ребяческого вздора оставляется читателю в качестве упражнения.
И тем не менее, даже я поначалу поймал себя на том, что пишу: «Если в одних случаях Х равен 5, а в других — 4, то предложение „2 + 2 = Х“ может не иметь фиксированного истинностного значения». Но здесь нет одного предложения с переменным истинностным значением. У «2 + 2 = Х» вообще нет истинностного значения. Это еще не высказывание, пока еще нет — не в том смысле, в каком математики определяют понятие высказывания, — точно так же как «2 + 2 =» не является высказыванием, а «Фред перепрыгнул через» не является грамматически полным предложением.
Но это заблуждение так и норовит прокрасться в мысли, даже если вы якобы прекрасно всё понимаете — просто потому, что именно так этот алгоритм ощущается изнутри.
*