Categories:

Жизнь на Марсе и постфактумная мишень

Как правило, люди, ссылающиеся на теорему Гёделя, не читали её доказательства, а просто приводят принятые на веру, красиво и мистически звучащие слова. Поскольку, «эвон как, не всё наука-то может доказать!».

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

Возможно, это потому, что первое как бы относится к математике, а математика — это «очень сложно и не для всех», а второе — как бы программирование, а для программистов привычно постоянно встречать какие-то штуки, которые они впервые видят — просто опять надо пойти в Гугл и Стэкэксчендж.

Однако, на мой взгляд, реальная причина — просто так повелось. Одно доказательство чудовищно переусложнено на ровном месте, а второе, напротив, довольно прозрачно, поэтому первое пугает даже своим видом, а второе — ну… какие-то рассуждения о довольно простой программе, чего тут такого?

При этом оба два сделаны именитыми учёными и в своё время поразили сообщество оных, а раз так, то может ли быть такое, что трактуются они ошибочно? Конечно, нет: ведь куча умных людей их читала — наверняка кто-то заметил бы ошибку, если бы она там была.

Однако это не две теоремы с двумя независимыми доказательствами, а два немножко разных использования одного и того же манёвра.

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

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

Есть ли жизнь на Марсе?

Как вам такое?

Так вот, я утверждаю, что в общем случае невозможно ни доказать отсутствие жизни на Марсе, ни её наличие.

С чего вдруг? Очевидно же, что как минимум наличие можно доказать, если она там правда есть?

Ну вот смотрите. Мы не знаем, какая именно на Марсе жизнь. Вполне возможно, она там высокоинтеллектуальная и с продвинутыми технологиями.

И вдобавок она следит за Землёй.

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

В результате, как только на Земле появится доказательство жизни на Марсе, все разумные марсиане тут же узнают об этом и самоуничтожатся. А заодно заберут с собой все остальные тамошние формы жизни — назло землянам.

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

В частном случае нам, конечно, может повезти, и мы обнаружим марсианскую жизнь без этого прибабаха. Но вдруг не повезёт? Или даже уже не повезло — поэтому-то на Марсе ничего и не находится? Таким образом, в общем случае доказательство ни наличия, ни отсутствия жизни на Марсе невозможно.

Пойду, в общем, получать какую-нибудь астрономическую премию.

Хотя, постойте, почему «премию» в единственном числе? В рассуждениях ведь на место «Марса» можно подставить любую планету. И даже не планету. Я только что доказал невозможность доказательства наличия жизни в любом месте вселенной. Дайте, пожалуйста, много премий — хотя бы за каждый космический объект по штуке.

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

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

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

Они вообще в точности такие же.

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

Оно просто хорошо замаскировано и нагружено авторитетом.

Опять же, даже если вы не программист и не математик, вы всё-таки скорее всего даже без моих дополнительных объяснений примерно понимаете, что такое «функция» и что такое простейшее ветвление «если—то—иначе».

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

Рассмотрим теперь ещё одну функцию.

def badAss = 
    if guessString(badAss) == "A" then "B" else "A" 


Сможет ли «guessString» угадать, что вернёт «badAss»? Нет. Поскольку если её догадкой будет «A», то badAss узнает об этом и вернёт «B». А при любой другой догадке она тоже её узнает и вернёт «A».

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

Ладно, это всё, быть может, слишком очевидный перебор, но уж совершенно точно «в общем случае анализ if-then-else невозможен» — мы же только что привели пример, на котором guessString обломается, как бы мы её ни реализовали, и в этом примере практически один только «if-then-else» и есть.

Вы снова не поверите, в этих двух строках, которые можно было бы уложить даже в одну, на самом деле, написана вся содержательная часть доказательства теоремы Гёделя и теоремы о невозможности разрешения проблемы остановки разом. А заодно и ещё пары десятков менее известных.

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

И даже вышеизложенное «доказательство» невозможности доказательства наличия жизни где-либо тоже написано в этой паре строк.

Знаете такой анекдот?

Приезжает какой-то путешественник на Дикий Запад, идёт по городу и видит, что там на сараях повсюду нарисованы мишени, и на каждой единственное попадание — точно в яблочко.

Удивлённый путешественник спрашивает местного жителя.

— Это кто же у вас такой меткий?

— А. Это — Дубина Билл. Только он не меткий. Он стреляет в сарай, а потом рисует вокруг дырки мишень.


Третий раз не поверите: в этом анекдоте тоже уже записано доказательство всех вышеперечисленных теорем.

С единственной технической поправкой: мишень надо рисовать не вокруг дырки, а где-то вне дырки.

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

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

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

Когда мишень можно рисовать после выстрела, место, где её нарисовали, ничего не говорит нам ни про меткость стрелка, ни про стрельбу, ни про физику, ни про качество оружия. Просто потому, что результат от всего этого никак не зависит: рисовальщик мишеней абсолютно полностью контролирует ситуацию, и потому по своему произволу может превратить слепую пенсионерку в лучшего снайпера планеты, а Робина Гуда — в самого косого человека в истории.

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

Под конец, хотите ещё одну теорему?

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

Если вам показалось, что в выводе о гарантированном существовании такой функции слишком мало сенсационности, то вот вам усиление теоремы.

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

Казалось бы, «но как?!».

Однако теперь вы уже знаете ответ: просто надо рисовать мишень постфактум.

def goodAss = 
    guessString(goodAss) 


Уверен, из этого тоже следуют какие-то глубокие выводы.



doc-файл