Понятно, почему почти никому не понятно
lex_kravetski — 11.12.2020 Теоремы Гёделя очень любят всевозможные эзотерики, мистики, верующие, диалектики и т.п. Причём большинство из них трактует оные в стиле «Гёдель доказал, что в мире всё очень сложно и непознаваемо», к чему добавляется что-то, приятное данному гражданину, но никак не следующее ни из теорем Гёделя, ни из непознаваемости чего-то там.Как-то раз я собрался с силами и прочитал четыре книги/длинные статьи о теореме Гёделя, а также посмотрел три отечественные лекции по ней и одну зарубежную.
С тех пор я понимаю, почему её почти никто не понимает: вместо современных знаний и современной же терминологии, опирающейся на нехило так отработанный за три четверти века опыт реального программирования, во всех изложениях — косплей начала двадцатого века.
Всё подаётся так, будто бы компьютеры, как и тогда, всё ещё только в мечтах, способы записи — сплошняком о чём-то гипотетическом, а реализация всем сейчас очевидного, коя у самого Гёделя составляет примерно 90% текста, — самое главное, о чём надо поведать современным студентам, хотя с тех пор уже было наверно за полсотни итераций гораздо более удачных вариантов записи того же самого.
В общем, всё так, как если бы кто-то сейчас попытался преподавать механику в терминологии Ньютона, причём с обильными цитатами на латыни из «первоисточников», без которых «весь смысл ускользнёт».
Ну или, если угодно, как если бы кто-то преподавал теорему Пифагора и окружающую её простейшую геометрию на древнегреческом и без каких-либо современных обозначений и математических операций: в частности, без букв, обозначающих длины и без двоечки суперскриптом в качестве «квадрата», но вместо этого с попытками изложить всё то же самое чисто словами разговорного древнегреческого.
Правда, означенное зарубежное изложение всё-таки было децл менее «реконструкторским», но тоже с десятикратным перебором неуместного косплея.
Такие реконструкции, возможно, имеют какой-то интерес и, не исключено, даже какую-то пользу, однако они явно находятся не в области физики и математики, а, как максимум, в области истории физики и математики. Либо же могут использоваться в качестве попытки опробовать на себе мышление людей из далёкого прошлого.
Отсутствие упрощения в изложении, впрочем, вполне объяснимо: теоремы Гёделя за всё время их существования не имели никаких практических следствий и, фактически, в науке ни разу не использовались ни для чего, кроме как пересказа оных студентам и интересующимся. А ведь без практики весьма мала мотивация упрощать изложение, адаптировать под современный уровень знаний и даже проверять на ошибки.
Ну а вне науки сабжевые теоремы — «научная основа» для овердофига псевдонаучных, а иногда и напрямую мистических спекуляций, для коих, впрочем, совершенно без разницы, о чём именно в этих теоремах говорится. Да и там, в отличие от науки, наоборот, чем непонятнее, тем таинственнее и притягательнее.
Это может показаться удивительным, но первую теорему Гёделя вместе с её доказательством (которое, впрочем, содержит целый ряд ошибок и некорректных обобщений, теряющихся в переусложнённом «реконструкторском» изложении) можно изложить человеку с минимальными познаниями в математике примерно за десять минут. Если же этот человек — программист, то вполне можно уложиться в три минуты, поскольку все используемые там понятия программистам обычно знакомы. И ещё три минуты уйдёт на краткое рассмотрение ошибок.
Почему «знакомы программистам», а не «математикам»? В первую очередь потому, что теоремы Гёделя, внезапно, о программировании. Которое тогда ещё существовало в зачаточном виде, как подраздел математики, а потому по инерции до сих пор всё это относится именно к математике, а не к фактически уже обособившейся области IT и программирования.
Вполне логично, что программистам проще понять что-то, в чём речь в основном о программировании. Проще не только, чем «простым смертным», но и даже, чем математикам, имеющим малый опыт в программировании или не имеющим никакого.
Однако и математикам, и даже простым смертным, если отбросить весь этот косплей, хватит десяти минут, чтобы понять, что там и как.
Я даже подумываю сделать что-то типа «научно–просветительского аттракциона»: «полноценно объясняем почти никому непонятное за пренебрежимо малое время». Вштыривать должно ещё сильнее, чем «всё о том, как разбогатеть, за двадцать минут». В первую очередь потому, что в моём аттракционе всё ещё и по правде будет.
Пока же я его так и не собрался организовать, спойлерну версию для программистов.
Мы имеем набор правил синтаксической замены по шаблонам, заданных в форме «распознанный шаблон → то, на что его можно заменить». Эти правила будут считаться «системой аксиом».
Предположим, что у нас есть функция prove, реализованная на каком-то языке программирования, которая перебирает все возможные комбинации последовательного применения аксиом, пока не найдёт некоторое переданное ей выражение A или его логическое отрицание. Найденная таким способом цепочка замен будет считаться «логическим доказательством» выражения A или его опровержением.
«Доказуемостью», таким образом, будет считаться найденная функцией последовательность замен от «шаблонов», фигурирующих в «аксиомах» или от каких-то первичных утверждений, считающихся истинными, к данному выражению.
Да-да, у Гёделя рассматривается вот такой вот очень неэффективный способ, поскольку он и многие другие в те времена не додумались, что можно, наоборот, взять само выражение и перебирать все его возможные модификации правилами замен, пока мы не получим true или false, либо же не переберём все возможные комбинации при конечном их количестве.
Собственно, возможность последнего в целых множествах наборов правил замены — одно из ключевых упущений доказательства Гёделя и его пересказов, которое тут же исключает обобщение до «всех достаточно полных систем аксиом», оставляя таковую возможность (без учёта других ошибок) только для некоторого подмножества возможных систем.
Кроме того, будем считать, что каждое выражение хранится где-то в памяти, и если в нём встречается кодовое слово «this», то перед передачей в prove оно заменяется на адрес этого выражения в памяти с какой-то пометкой, что это — ссылка: так, чтобы функция prove могла это понять и ещё раз достать из памяти данное выражение, если ей оно надо. Реализацию this сейчас можно посмотреть в стапицот языках программирования, поэтому нет смысла обсуждать возможность воплощения оного в жизнь.
Теперь составим следующее выражение:
«prove(this) не вернёт нам никакой цепочки».
или, если угодно поумничать,
«prove(this) == пустой список».
С точки зрения Гёделя, конкретно для «формальной арифметики Пеано» с какими-то там расширениями и ей подобных аксиоматических систем, кои действительно можно переформулировать в виде набор правил возможных замен по шаблону и на базе которых предполагается как-то там реализовать языки программирования и написать, в частности, функцию prove, дела будут обстоять вот так:
- Если цепочка будет найдена, то это будет означать неверность
данного выражения, поскольку вроде бы доказавший его истинность
алгоритм тем самым его истинность тут же опровергнет.
- Если же, напротив, цепочка не будет найдена, то это утверждение окажется истинным, но по заданным «правилам игры» — недоказуемым: ведь «доказуемость» в данном случае эквивалентна обнаружению сабжевой цепочки.
Вариант с противоречием мы отметаем — поскольку в нём противоречие. Из чего следует, что у нас остаётся только второй вариант.
Если абстрагироваться от всех ошибок рассуждений и некорректных обобщений с «систем аксиом, допускающих бесконечное количество цепочек модификаций правилами» на «все достаточно полные системы аксиом», то это может трактоваться как «существует как минимум одно верное, но недоказуемое утверждение в рамках чего-то типа арифметики Пеано».
Если для красного словца это переформулировать, то можно сказать: «Формальная арифметика Пеано и ей подобные — неполны, в смысле доказательств вышеописанным методом». Ведь правда неполны: есть одно утверждение, которое истинное, но его этим методом как бы нельзя доказать.
Правда, ниоткуда не следует, что таких утверждений больше одного, но формально-то ведь всё верно.
А для народной популярности так даже лучше.
И ещё лучше, если «формальную арифметику Пеано и ей подобные, причём с неопределёнными добавками» заменить на «любую непротиворечивую систему аксиом».
А потом ещё лучше, если невзначай отбросить «в смысле доказательств вышеописанным методом»: типа мы это как бы подразумеваем, а то, что повторяющие за нами мистики подразумевают иное, это не наша вина.
Ну а дальше повторяющие за нами мистики ещё и выводов о сложностях и непознаваемостях мироздания от себя добавят: мы как бы снова не при делах — это они сами.
Если же вместо направления на мистику выбрать направление на логику, то совершенно очевидно, что построенное нами суждение — формализованный и слегка модифицированный «парадокс лжеца». Который, вообще говоря, в принципе ничего не доказывает, поскольку имеет логическое значение «exception»: ввиду принципиальной невычислимости результата при любых входных параметрах.
Но ведь и это тоже можно оставить за кадром. Философы на «парадоксе лжеца» тысячелетиями гарцевали. Математики — рыжие, что ли? Они тоже хотят. По крайней мере, некоторые.
Вот так несколькими ловкими движениями мы из частного случая определения понятия «доказательство» и единственного выражения, по поводу которого в этой концепции можно более–менее убедительно натянуть сову на глобус, если два часа рассуждать о том, как нам реализовать «this», а потом за полминуты быстро проскакать по всему остальному, создаём глобальное утверждение вида «математика не везде работает», а то и даже «наука не везде применима, поэтому применение любой альтернативной хероты как бы обосновано».
Подробный разбор уже упомянутой ошибки и всех остальных неупомянутых я тут спойлерить не буду, поскольку всё ещё надеюсь, что допишу — кто его уже знает что — длинную статью или сразу книгу про это дело.
Однако на мой взгляд, ряд мега–натяжек в сабжевых рассуждениях для многих из современных программистов лежит почти совсем на поверхности, а потому толковые могут догадаться как минимум до половины оных прямо по «пересказу за три минуты», хотя в «реконструкторском пересказе», видимо, слушателям столь сильно запаривают мозг, что очевидное перестаёт быть таковым, не говоря уже про менее очевидное.
И эта, эзотерики, разумеется, данному совету не последуют, но хотя бы те, кто считает себя сторонником научного метода, да не уподобя́тся.
Не надо ссылаться на теоремы, доказательства которых вы не видели или оные вообще совсем не поняли — почти наверняка вы в этом случае сделаете из них неправильные выводы. Не обязательно понимать вообще все нюансы, однако хотя бы общий ход доказательства понимать надо — так радикально возрастает вероятность правильно трактовать смысл теоремы, а также понять насколько и в каком контексте ей утверждаемое обосновано.
doc-файл
публикация в блоге автора
|
</> |