Конструктивная математика: обзор достижений, недостатков и уроков. Часть III

Конструктивная математика: обзор достижений, недостатков и уроков. Часть III

Н. Н. НЕПЕйВОДА

abstract. Constructivist concepts not assuming that we know programs for each effective method (intuitionism et al) are analyzed here.

Keywords: intuitionism, constructivism, realizability, computabil-ity, application of constructivism

1 Введение

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

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

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

Работа является третьей частью единого исследования, первые две части которого опубликованы в [6, 7]. Понятия и определения из этих работ используются в данной.

2 Недостатки советского конструктивизма

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

Покажем отрицательные эффекты этого знания. Парадоксальным результатом, влекущим многие неприятные следствия в конструктивном математическом анализе, является теорема о сингулярных покрытиях, установленная Заславским и Цейти-ным [1] и независимо Крайзелем и Лакомбом [20].

Используя прекрасно разработанную в информатике технику кодирования, можно закодировать программу каждого алгоритма натуральным числом и представить в виде списков натуральных чисел рациональные числа. Поэтому в технические подробности такого кодирования мы вдаваться ни здесь, ни в дальнейшем не будем. Фиксируем какую-то функцию кодирования программ р и кодирования рациональных чисел Рациональный интервал — кортеж из двух рациональных чисел, второе из которых больше. Проверить, является ли объект рациональным интервалом и вычислить его длину можно алгоритмически. Предикат проверки обозначим ГРАТИ^ТЕ^, алгоритм вычисления длины ГРШ.

Фиксируем некоторое натуральное число по. Построим следующее перечислимое множество.

X = р

!

(т р (р р)) < 1

2"ю+з+

Если сдвинуть любую быстро стягивающуюся последовательность рациональных сегментов на по + 3, то получится элемент

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

шпекерова последовательность) будет меньше —.

Немного улучшая это построение, покрывая действительную ось сегментами, сумма длин которых (в классическом смысле) меньше любого заданного е > 0, пересекающимися лишь своими концами, и применяя конструкцию, позволяющую соединить две конструктивные функции, определенные на сегментах, пересекающихся в одной точке, легко построить всюду определенную и непрерывную на замкнутом отрезке [0,1], но неограниченную, конструктивную функцию. Грубо говоря, она имеет точками разрыва неалгоритмические числа.

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

lim (f xn) = (f lim xn).

Эту теорему легко доказал А. А. Марков, но в отрицательной формулировке: что значение конструктивной функции в точке предела не может отличаться от предела ее значений. А вот непрерывность на языке окрестностей доказывается тяжело. Но заниматься этим нет смысла, поскольку неограниченная на [0, 1] функция лишь один из безобиднейших монстров, рождающихся в алгоритмической теории действительных чисел в версии советского конструктивизма. Однако выявившаяся разница двух понятий непрерывности важна для понимания многих тонких явлений в практических вычислительных алгоритмах.

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

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

Пример 1. Как было замечено в части I (примеры 14, 15), не всегда конструктивные пространства описываются классической топологией. В частности, пример 15 показывает, что распространенная и безоглядно применяемая в современной машинной графике топологическая операция склейки пространств на самом деле содержит нетривиальные подводные камни. Пространства [0,1] и [1, 2] и [0, 2] конструктивно не изоморфны. В частности, нет ни одного всюду определенного конструктивного отображения [0, 2] — [0,1] и [1, 2]. Интересно то, что с классической точки зрения алгоритмические отображения [0,1] и [1, 2] — [0,1] и [1,2] такие же, как [0,2] — [0, 2]. Но алгоритмически мы получаем целый класс новых алгоритмов, вычисляющих те же функции, порою с меньшей затратой ресурсов. Пространства, получающиеся склейкой, удалось классически интерпретировать (но не до конца адекватно) лишь как топосы.

Пример 2. Пример 14 из [6] (принадлежащий Шанину) заодно показывает роль явной и неявной информации. В советской конструктивной математике по привычке, перешедшей в традицию, действительное число задавалось парой алгоритмов: сходящая-

ся последовательность и ее «регулятор сходимости», выдающий по каждому п такое N, что

Vmi,m2 : Nat > N&m2 > N ^ |(a mi) — (a m2)| < •

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

Далее, явная информация о программах, точное понятие алгоритма позволила многие отрицательные результаты интуиционизма сделать явными контрпримерами, не зависящими от наших знаний и незнаний. Такова, например, приведенная ранее последовательность Шпекера. Более того, выявилась разная сила отрицательных результатов. Существование предела монотонной последовательности и существование максимального значения равномерно непрерывной функции на отрезке опровергаются на примере: явно строится соответствующая последовательность (функция). А вот построить функцию, имеющую разные знаки на концах отрезка, всюду определенную на нем и не имеющую нуля, не удается. Легко (методом, описанными в [6]) доказать несуществование алгоритма преобразования каждой такой функции в приближение к ее корню. Но можно доказать также, что предположение о несуществовании корня противоречиво. Сделаем это.

Лемма 1. Пусть f — функция действительных чисел, всюду определенная на [0,1] и такая, что (f 0) < 0, (f 1) > 0. Тогда —3x : Real (f x) = 0.

Доказательство. Прежде всего покажем, что из принципа конструктивного подбора следует возможность снятия двойного отрицания с отношения x > y. Это отношение означает, что есть некоторое приближение к x: [an,bn], такое, что для соответствующего приближения к y: [cn,dn] выполнено an > dn.

Отношение порядка на рациональных числах разрешимо. Значит, по принципу конструктивного подбора, ——x > y ^ x > y. Точно так же показывается возможность снятия двойного отрицания с отношения x$y «х и y различны», уточняемого как «для них существуют непересекающиеся приближения». Отсюда, при выполнении принципа конструктивного подбора, следует Ух,у : Real(-х = y ^ xfly). Легко видеть, что в интуиционистской логике yx, y : Real (x$y ^ x < y V x > y). Теперь предположим, что

~3x : Real (f x) = 0.

Тогда

yx : Real-(f x) = 0.

Значит,

yx : Real (f x)fl0.

Отсюда

yx : Real (f x) > 0 V (f x) < 0.

Следовательно, методом деления пополам строим xo, такое, что на каждом отрезке от xo — 2-n до xo + 2-n функция меняет знак. Тогда (f xo) = 0 по непрерывности f. Значит,

-3x : Real (f x) = 0 ^ 3x : Real (f x) = 0,

что эквивалентно заключению теоремы.

Таким образом, неконструктивные теоремы делятся на разряды.

1. Слегка неконструктивные, когда алгоритм «почти что» есть, и случаи, когда он не работает, часто списывают на ошибки реализации (например, теорема о существовании нуля конструктивной функции, меняющей знак). Формальный признак: в конструктивной математике доказывается отрицание теоремы и одновременно несуществование контрпримера.

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

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

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

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

В нуле эта функция не определена.

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

чуть-чуть изменить исходные данные или их представление (в случае баз данных). Опять же почти всегда после этого система вновь начинает прекрасно работать. Беда сильных программистов часто в том, что, относясь с недоверием к «теоретическим спекуляциям», они начинают «вылизывать» такую программу, делая заплатки в выявившихся частных случаях. Но каждое такое «улучшение» приводит к нескольким ухудшениям, и хорошая система начинает разваливаться. . .

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

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

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

А(0) ... А(п) ...

Ух : ^ А

Если рассматривать это правило «классически», не интересуясь способом задания доказательств всех посылок, то оно очевидно формализует определение истинности в стандартной модели арифметики и приводит к полной системе. С. Феферман доказал, что в случае, если доказательства посылок правила порождаются алгоритмом, оно также полно. Правило Карнапа с алгоритмически порождаемыми доказательствами посылок называется ^-правилом.

А. Г. Драгалин (1978) показал, что в случае советского конструктивизма (интуиционистской арифметики с тезисом Черча

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

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

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

Пусть дана последовательность действительных чисел а. Тогда для каждых i и n ((а i) n) — сегмент длины не больше ^n. Построим число x, не принадлежащее этой последовательности. Пусть

ord = Xa (entier (log 2 (length (a n))).

Для вычисления (x n + 1) возьмем ((а n) (ord (x n) + 3)). Длина этого отрезка в 8 раз меньше длины (x n), и можно найти в (x n) подсегмент в 4 раза меньшей длины, чем (x n), не пересекающийся с ((an) (ord (x n) + 3)).

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

Далее, конструктивная парадигма позволяет тоньше анализировать понятия. Есть метод, который в полной общности был осознан В. Крейновичем [2]. Некоторое положение можно прове-

рить на степень его потенциальной конструктивности, посмотрев, что из него следует в прикладной теории. Например, из разрешимости равенства пустому множеству следует закон исключенного третьего, и поэтому равенство для множеств — принципиально неконструктивное понятие, что делает весьма сомнительными «конструктивные» варианты теории множеств, популярные в среде математических логиков, полностью потерявших связь с задачами логики как науки и занявшихся увлекательным спортом: доказательством трудных теорем, формально выражаемых в «логических терминах». Методы нестандартного анализа не могут быть перенесены на конструктивизм, поскольку из принципов переноса следует закон исключенного третьего [4]. Из снятия двойного отрицания с утверждения х > 0 следует принцип конструктивного подбора. Таким образом, считать отношение порядка для действительных чисел классическим допустимо лишь в некоторых вариантах конструктивизма.

Рассмотрим лемму о конечном покрытии (лемму Гейне-Бореля): «Из каждого покрытия сегмента открытыми интервалами можно извлечь конечное подпокрытие». Для построенных у нас сингулярных покрытий она, очевидно, не выполняется. Эти покрытия построены при помощи принципа конструктивного подбора. Но лемма о конечном покрытии не противоречит тезису Черча и из нее закон исключенного третьего не следует. Поэтому в принципе возможно построение конструктивизма при помощи леммы Гейне-Бореля, что и было успешно проделано, в

частности, Э. Бишопом и П. Мартин-Лефом.

* * *

Теперь перейдем к недостаткам.

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

Рассмотрим основное предположение алгоритмического конструктивизма с точки зрения прикладной информатики. На са-

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

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

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

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

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

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

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

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

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

3 Интуиционизм как альтернатива алгоритмическому конструктивизму

Брауэр [16, 17] после появления теории алгоритмов, реализуемости по Клини и советского конструктивизма почувствовал привлекательность этой альтернативы для тех, кто хотел бы большей конструктивности, но не был готов к глубокой перестройке своего мышления. Поэтому он явно выделил неалгоритмические

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

Рассмотрим концепцию беззаконных последовательностей Брауэра.

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

(1) Va : Lawless (А(а) ^

3N : Nat Vf3 : Sequence (Vn : Nat (n < N ^ (a n) = (в n)) ^ А(в)))•

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

Прежде всего, заметим, что Va : Lawless —Vn : Nat (a n) = 0. В самом деле, возьмем произвольную беззаконную последовательность. Пусть для нее выполнено Vn : Nat (a n) = 0. Тогда это же выполнено для любой последовательности, совпадающей с ней на некотором начальном отрезке, и по начальному отрезку любой последовательности можно было бы установить, равна ли она тождественно нулю.

Далее, тем самым у нас для беззаконных последовательностей опровергается принцип конструктивного подбора. Ввиду того, что с равенства натуральных чисел двойное отрицание снимается, как и с любого разрешимого свойства, —Vn : Nat (a n) = 0 ^ ——3n : Nat —(a n) = 0. Но, если бы мы могли найти такое n для любой беззаконной последовательности, то мы могли бы

найти его по заранее известному числу членов. Таким образом,

—Уа : Lawless(--3n : Nat-(a n) = 0 & 3n : Nat -(a n) =0).

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

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

в = \n : Nat if (a n) = 0 then 0 else 1 fi

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

Далее, тип данных «Lawless» нельзя заменить предикатом. Тогда, в частности, по конечному числу членов беззаконной последовательности можно было бы установить, беззаконна ли она. А это приводит к очевидному логическому противоречию.

Тем самым Брауэр на 30 лет раньше, чем это было осознано в информатике, показал, что типы данных не являются множествами.

Беззаконные последовательности имеют практическую интерпретацию. Они являются идеализацией физических датчиков.

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

Имеется последовательность, члены которой вычисляются один раз в день. Если за день n проблема A полностью решена, либо она была решена еще раньше, то (а^ n) = 1. До тех пор,

пока реализации и ее обоснования нет, (aa n) = 1. Тогда выполнен следующий принцип, формальная запись которого принадлежит С. Крипке и Г. Крайзелю:

3n : Nat (а^ n) = 1 ^^ A.

Такие последовательности называются творческими.

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

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

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

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

ность), решения человека (творческая последовательность). А сами преобразователи могут считаться алгоритмическими (хотя их алгоритма мы не знаем).

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

4 Промежуточные варианты конструктивизма

Во второй половине 60-х и в 70-х годах XX века наступил ренессанс конструктивизма в мире одновременно с началом упадка его в СССР. Алгоритмический конструктивизм и применение бурно развивавшейся нечисленной математики дали возможность строить глубокие точные модели интуиционистских конструкций. Возродился интуиционизм, появились альтернативные конструктивные концепции. Общая черта альтернативных концепций: мы пользуемся лишь алгоритмами, но не хотим явно знать и явно утверждать это.

Пожалуй, принципиальным прорывом здесь были наблюдения Э. Бишопа и М. Бизона [11, 12], что алгоритмический подход совместим с принципом бар-индукции, который считался одним из важнейших отличий интуиционизма от алгоритмического конструктивизма. Прекрасный обзор истории этого принципа дан в [14]. Рассмотрим подробнее принцип, переведя его в абстрактную форму, а также его обоснование в интуиционизме и его опровержение в алгоритмическом конструктививзме. Пусть (Cortege a n) — алгоритмический функционал, выдающий кортеж из первых n членов последовательности натуральных чисел a. Пусть (Add l x) — алгоритм, преобразующий список объектов и объект в список, образующийся добавлением в конец еще одного члена.

Бар-индукция Брауэра

(2) Vx : List(Object) (A(x) V—A(x))&

Va :

^ A[x | NIL]

Базисом индукции служит возможность найти на каждом эффективно вычисляемом пути в бесконечном дереве список, обладающий требуемым свойством. Шагом — возможность перехода от всевозможных продолжений списка на один элемент к самому списку. Заключение — возможность спуститься вплоть до корня дерева списков. С классической точки зрения это одна из вариаций принципа трансфинитной индукции. Если вполне упорядочить множество объектов, то можно вполне упорядочить списки так, что это упорядочение будет согласовано с отношением «список а является началом списка Ь». А если множество объектов достаточно просто (счетно), то и аксиомы выбора не требуется.

В чисто алгоритмическом конструктивизме принцип бар-индукции опровергается на примере.

В работе [21] было показано, что принцип бар-индукции совместим с негативным вариантом тезиса Черча (КОТ): для каждой функции в принципе есть алгоритм, который ее вычисляет, но он не обязательно нам известен:

Ух

Это наблюдение обосновывает американский конструктивизм Э. Бишопа [12], далее развитый Д. Бизоном [11], и либеральный конструктивизм П. Мартин-Лефа [22], соединявшие алго-ритмичность с отказом от всезнания: все методы — алгоритмы, но мы запрещаем явно использовать это знание.

5 Модели конструктивных теорий

Две статьи Гливенко2 [18, 19] дали первую полную формализацию интуиционистской логики и изоморфизм между классической логикой и подсистемой интуиционистской. Он же (1932) показал, что классическая математика моделируется внутри кон-

2В. И. Гливенко (1897-1940) — российский математик. Большинство его работ посвящено теории вероятностей, математической статистике и функциональному анализу. В логику, которая тогда для российских математиков была чем-то маргинальным, он сделал всего пару вылазок, зато каких!

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

Утверждение 1. (Теорема Гливенко) Классическая логика изоморфно погружается в интуиционистскую.

Доказательство. Построим следующий погружающий алгоритм:

С

С

Итак, систематически устраняются дизъюнкция и существование. Остальные связки остаются без изменения.

Этот результат не произвел шокирующего впечатления лишь потому, что он был совершенно неадекватно объяснен. Автор комментировал его: «Мы доказали непротиворечивость классической логики относительно интуиционистской». Но ведь непротиворечивость классической логики очевидна всем, так что кого такой результат интересует, кроме заскорузлых формальных логиков! Ныне изоморфизм Гливенко удивляет традиционно ориентированных математиков (например, сильных студентов МФТИ3). Ослабив одну из логических аксиом, мы получили на самом деле более сильную систему, включающую классическую логику как подсистему. Но, надеюсь, Вы уже привыкли к тому, что самоограничение и отказ от лишнего слишком часто на самом деле означает получение дополнительных возможностей.

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

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

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

Определение 1. Топологическая интерпретация конструктивной интуиционистской логики.

Значение каждой формулы — открытое множество.

4. Ц—АЦ = (Int И).

aeU

6. ЦЭхАЦ = U ЦАЖЦ.

aeU

Заметим, что здесь изменяются значения следования, отрицания и всеобщности, а не дизъюнкции и существования, как можно было ожидать, исходя из изоморфизма Гливенко.

На этой модели легко показывается сущность (с точки зрения значений истинности) отличия ——А от А. Возьмем в качестве

Рис. 1. Топологическая интерпретация A V —A

пространства круг. На рисунке 1 показано, что значением —A будет верхний открытый полукруг, вместе A V —A дает круг без линии. — (A V — A) станет пустым множеством, так как у дополнения A V — A нет внутренности, а ——(A V — A), соответственно, займет весь круг и будет истинным.

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

Определение 2. Модели возможных миров (вариант Крайзеля-Коэна-Крипке).

Задается сигнатура a и универс U. Модель является чумом миров V с отношением порядка В каждом мире определяется множество «освоенных» в нем объектов (Uni v) Q U и множество замкнутых элементарных формул (T v): фак-

4Названия по именам в науке — один из примеров постоянных ошибок, нелепостей и несправедливостей. Сам Лопиталь протестовал против того, чтобы правило, открытое Бернулли, называли его именем, но название так и осталось. . .

Л. {0,1,2}

. A

A.i0,lV{0,1,2} B

/

Рис. 2. Опровергающие модели Крипке

тов, установленных в этом мире. Все факты содержат лишь объекты из (Uni v). Оба эти отображения неубывающие по С. Одновременной индукцией определяются два отношения между формулой и миром: формула подтверждается в мире v |= A и формула не подтверждена в мире v = A, которое по умолчанию определяется v = A = v |= A, и поэтому зададим его явно лишь для элементарных формул.

1. u |= A = A £ (T v); u = A = A £ (T v) для элементарных формул.

2. (u |= A&B) = u |= A Л u |= B.

3. (u | A V B) = u = A or u = B.

4. (u = A ^ B) = Vv : World (v | A Л v ^ u D v = B).

5. (u = Vx A) = Vv : World Va : Obj (v ^ u Л a £ (Uni v) D v | A[x I a]).

6. (u = 3xA) = 3a : Obj (a £ (Uni u) Л u |= A[x| a]).

Пример 3. Опровергающие модели для AV—A, (-A ^ BVC) ^ (-A ^ B) V(-A ^ C), Vx (AVB(x)) ^ AVVxB(x) приведены на рисунке 2. Последняя из них бесконечна. А на модели 3 истинна противоречащая классической логике формула -Vx (——A(x) ^

A(x)).

. {0,1,2} А(0),А(1) I {0,1} А(0) ! {0}

Рис. 3. Сильно опровергающая модель Крипке

На самом деле этот вид моделей интуиционистской логики является частным случаем топологических моделей. Ведь любой чум может рассматриваться как топологическое пространство, базисом окрестностей в котором являются верхние конусы {у | у ^ х}. Тогда область истинности любой формулы становится открытым множеством, и все пункты определения моделей Крипке превращаются в пункты, касающиеся топологических пространств.

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

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

1) слабо конструктивной, то есть Ь Зх А должно влечь Ь А[хЩ для некоторого терма ¿,

2) корректной, то есть Ь А V В должно влечь доказуемость одного из членов дизъюнкции.

3) полной, то есть для каждой А должно быть доказуемо А либо -А.

Полнота и слабая конструктивность влекут корректность. Такая теория сама дает свою модель (универс — термы, истинность совпадает с доказуемостью). Ослабим условия на теорию: приемлемая теория — слабо конструктивная и корректная. Приемлемая теория может не быть максимальной, если она не полна.

Далее, рассмотрим вдобавок к позитивным аксиомам аксиомы незнания Ч А и потребуем следующие условия непротиворечивости:

1. Если Ч В и Ь А ^ В, то Ч А.

2. Не может быть одновременно Ь А и Ч А.

3. Если Ь -А, то Ч А.

Условие максимальности для приемлемых теорий.

Для любой формулы А либо Ь А, либо Ч А.

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

Рассмотрение моделей Крипке ставит еще один вопрос, ясно осознанный в советском конструктивизме, а после независимо переоткрытый в более абстрактной, но гораздо менее продвинутой с практической точки зрения форме, Д. Скоттом. Не все объекты в модели Крипке доступны с самого начала. Таким образом, не все объекты могут быть определены в рассматриваемом сейчас мире. Поэтому в модели Крипке естественно рассматривать квазипредикат !Ь, который считается подтвержденным в тех мирах, где определено Ь. Согласно определениям всеобщности и существования, выполнены следующие эквивалентности:

УхА(х) ^ Ух (!х ^ А(х)); ЗхА(х) ^ Зх (!х&А(х)).

Последний из рассматриваемых нами вариантов моделей интуиционистской логики — оригинальный вариант моделей Бета, который мы несколько обобщим.

Модели Бета отличаются от моделей Крипке в трех отношениях. Во-первых, универс един для всех миров. Во-вторых, дополнительно обобщаются определения выполнимости для дизъюнкции и существования. Пусть Way — тип путей в упорядоченном множестве миров.

1. u |= A V B =Va : Way (u € a D 3v : World (v € a Л (v |= A or v |= B)).

2. u |= 3xA = Va : Way(u € a D 3v : World 3a : Obj (v € a Л v |= A[x| a].

Заметим, что все эти виды моделей не имеют отношения к конструктивной семантике интуиционистской логики. Их можно считать исследованием ее дескриптивной силы. Однако это все не исключает их применения для анализа некоотрых конструктивных аспектов. В качестве примера рассмотрим блестящее доказательство Сморинского [23] свойства корректности интуиционистской арифметики. То, что выводимость существования дает конкретный пример, безусловно, конструктивное свойство. Докажем его окольным путем, через модели.

Поскольку, согласно изоморфизму Гливенко, любая формула классической арифметики после ее перевода доказуема в интуиционистской, любой мир в модели Крипке интуиционистской арифметики является моделью классической. Но среди таких моделей есть наименьшая: стандартный натуральный ряд. Значит, к любой модели Крипке можно присоединить снизу стандартный натуральный ряд. Пусть для некоторой формулы доказуемо 3x A(x), но ни для какого натурального числа не доказуемо A[x | n]. Тогда для каждого n имеется модель Крипке интуиционистской арифметики Mn, в которой опровергается A[x | n]. Объединив все эти модели и поместив в качестве нижней точки дерева стандартный натуральный ряд, опровергаем 3x A(x), которое доказуемо по предположению.

Это доказательство неконструктивно, зато исключительно коротко и прозрачно по структуре. А имея его, можно спокойно строить алгоритм получения числа по доказательству. В случае принципа конструктивного подбора он получается автоматически: перебирать все n, пока не найдется нужное.

6 Различие вместо равенства

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

1. Ух — (xftx).

2. УхУу (x$y ^ yflx).

3. yxyy (x$y ^ Ух (x$z V yflz)) (глобальная отличимость).

4. yxyy (—xtty&A(x) ^ A(y)).

Из этих свойств следует, что yxyyyz (—z$x&—z$y ^ —x$y) (контрапозиция свойства глобальной отличимости). Следовательно, можно определить равенство как —x$y.

Определить различие через равенство можно лишь в том случае, если понятие равенства разрешимо, то есть yxyy (x = y V —x = y). Таков, например, тип данных «натуральные числа».

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

x$y ^^ 3n : Nat (((x.low n) > (y.upn))V((y.lown) > (x.upn))).

Это условие в случае его выполнимости эффективно проверяемо, в отличие от равенства. Тем самым различие в неразрешимых пространствах не сводимо к равенству.

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

4b,

A V B ^ 3x : Obj (—(xflA&xflB)&(x = a ^ A)&(x = b ^ B)).

7 Анализ логических принципов

Прием Крейновича оказалось возможным использовать также при анализе логических систем. Многие профессиональные логики называют всевозможные исчисления, не содержащие конкретных объектов и сформулированные в терминах логического языка, «логиками». Но не все такие исчисления заслуживают столь почетного звания. Еще с 30-х годов XX века известен пример.

Иогансон, недовольный трактовкой отрицания в интуиционистской логике Брауэра, предложил убрать из нее принцип «Из лжи следует все, что угодно». Полученную логику назвали минимальной. Но она не прижилась в качестве конструктивной, поскольку в прикладных теориях, основанных на минимальной логике, брауэровское отрицание легко моделируется. Например, в арифметике достаточно определить —А как А ^ 0 = 1, поскольку из 0 = 1 выводится любая формула, не содержащая отрицания.

В работе [5] показано, что внутрилогических критериев недостаточно для отбора исчислений, пригодных для построения на их основе прикладных теорий. Рассмотрим два примера.

Пример 4. Рассмотрим логический принцип (который открыли Крайзел и Путнам; мы его называем принцип тотальной определенности (КР)):

(4) Ух (—А(х) ^ Зу Б(х, у)) ^ Ух Зу (—А(х) ^ Б(х, у)).

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

Ух ((х$а V хЩ,

из принципа тотальной определенности следует принцип Медведева

(—А ^ Б V С) ^ (—А ^ Б) V (—А ^ С).

В самом деле, посылка принципа Медведева эквивалентна утверждению

Ух (-А ^ Зу ((у = а V у = Ь)&(у = а ^ В)&(у = Ь ^ С))).

Преобразуя его, получаем

Ух Зу (-А ^ (у = а V у = Ь)&(у = а ^ В)&(у = Ь ^ С)).

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

Зу ((-А ^ (у = а V у = Ь))&((-А ^ (у = а ^ В)) & (-А ^ (у = Ь ^ С))).

Отсюда по разрешимости равенства а, Ь получается

Зу ((--А V у = а V у = Ь)&((-А ^ (у = а ^ В)) & (-А ^ (у = Ь ^ С))).

А теперь по дистрибутивности и по закону «из лжи следует все, что угодно»

--А V Зу ((у = а V у = Ь)&(-А ^ (у = а ^ В)) & (-А ^ (у = Ь ^ С))).

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

Зу ((у = а V у = Ь)&(-А ^ (у = а ^ В))&(-А ^ (у = Ь ^ С))). А теперь, преобразуя обратно к дизъюнкции, получаем (-А ^ В) V (-А ^ С).

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

Рассмотрим интуиционистскую арифметику. Сама по себе формальная система интуиционистской арифметики, как показали результаты Сморинского [23], полна относительно интуиционистской пропозициональной логики в том смысле, что в

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

A[x10], ..., A[x|n], ...

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

Лемма 2. Интуиционистская арифметика с классическим правилом Карнапа совпадает с классической.

Доказательство. Всякая доказуемая формула истинна в стандартной модели.

Наоборот, индукцией по определению истинности тривиально строится вывод любой истинной формулы. Критические шаги здесь следующие. Если A V B классически истинно, то один из членов дизъюнкции интуиционистки выводим, по предположению индукции. Но тогда можно построить вывод и самого A V B. Таким способом можно построить вывод A V —A. А вывод Vx : Nat (A(x) V -A(x)) строится по правилу Карнапа, поскольку каждая из формул A(x | n) V —A(x|n) доказуема, а знать конкретные доказательства не обязательно.

Гораздо более тонкий результат принадлежит Фе-ферману.

Лемма 3. (Феферман [8]) В классической арифметике с конструктивным ш-правилом выводима любая истинная формула.

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

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

Теперь отметим простейший факт из теории моделей Крипке.

Лемма 4. Если в модели все пути конечны, то все классические формулы истинны тогда и только тогда, когда они истинны в листьях данной модели.

В самом деле, классическая формула А истинна тогда и только тогда, когда --А, а последняя формула истинна для моделей с конечными путями тогда и только тогда, когда она истинна в последней точке каждого пути, т. е. в листьях.

Лемма 5. В модели Крипке суперинтуиционистской арифметики с ш-правилом все миры элементарно эквивалентны стандартной арифметике.

Доказательство. Согласно теореме Сморинского [23], каждый мир в модели интуиционистской арифметики является моделью классической арифметики. Но все истинные классические формулы выводимы в рассматриваемой теории. Значит, все они истинны в любой модели. Далее, согласно результатам той же работы, к любой модели интуиционистской арифметики можно добавить без нарушения истинности формул стандартный натуральный ряд в качестве корня дерева модели. Классические формулы истинны в этой нижней точке и во всех конечных, значит, они истинны и во всех промежуточных.

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

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

строению формул, что тогда они будут истинны и во всех остальных точках модели.

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

Дизъюнкция. Поскольку она классически истинна, классически истинен один из ее членов. Значит, по предположению индукции, он будет истинен и в данной точке.

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

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

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

Таким образом, мы доказали следующий результат:

Теорема 1. Если логика обладает свойством обрыва цепей (каждый путь в дереве миров конечен), то арифметика, основанная на ней, становится классической после добавления конструктивного правила Карнапа.

Остается рассмотреть случай логики линейных цепей. Она задается схемой аксиом (А ^ Б) V (Б ^ А). Но частным случаем данной схемы является (—А ^ А) V (А ^ —А). Но это эквивалентно ——А V —А. А логика слабого закона исключенного третьего уже обладает свойством конечных моделей: ее достаточно рассматривать на моделях с двумя последовательными мирами. Таким образом, все пропозициональные суперинтуиционистские логики, обладающие свойством Крейга, превращают арифметику в классическую.

Теперь рассмотрим два принципа, несовместимость которых при условии тезиса Черча показана ранее: принцип конструк-

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

Теорема 2 (Birthday theorem). 5 В интуиционистской арифметике с ш-правилом, MP и KP доказуем закон исключенного третьего.

Доказательство. Будем называть класс формул А замкнутым относительно подстановки, если наряду с формулой A[x|i] он содержит и A[x|u] для любого замкнутого терма u. Будем говорить, что на классе А выполнена пропозициональная формула A, если есть алгоритм, строящий доказательство любого примера A, получаемого замещением пропозициональных букв на формулы класса А. Докажем несколько лемм.

Лемма 6. Если на классе арифметических формул А в арифметике с конструктивным ш-правилом выполнена A V —A, то для любой формулы A(x), подстановки в которую лежат в классе А, доказуемо yx (A(x) V — A(x)).

Очевидно. Заметим, что обобщение этой леммы на другие теории не всегда выполнено.

Рассмотрим теперь иерархию Клини-Мостовского формул классической арифметики. Формулы нулевого класса Ко — примитивно-рекурсивно разрешимые. Формулы класса Sn+i — формулы вида 3xA(x), где формула A[x|fc] принадлежит классу n. Формулы класса Пп+1 — формулы вида yxA(x), где формула A[x|fc] принадлежит классу n. Ап = Sn П Пп. Kn = Sn U Пп. Любая арифметическая формула эквивалентна формуле одного (и всех более высоких) классов. А1 — алгоритмически разрешимые формулы. Si — алгоритмически перечислимые. Известно, что имеются формулы класса Пп, не принадлежащие Sn. Далее,

5Теорема доказана в день рождения, по дороге на логическую конференцию.

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

А[х | ш] Згип[хIа,у| ш].

Лемма 7. Если формула А принадлежит классу Хп \ Пп, то функция

Хш. /г ип[х1а, у|ш]

непродолжима до тотальной функции,, определимой формулой класса Дп.

Доказательство. В противном случае мы могли бы проверить А(ш), просто вычислив значение этой функции и применив затем к нему и.

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

Пусть разрешимы все формулы класса Дп. Докажем, что тогда разрешимы все формулы из Кп.

Возьмем произвольную формулу А(х) класса £п. Тогда для нее доказуемо

Ух (А(х) Зшип(а,х,ш)). Но, поскольку все формулы класса Дп разрешимы, доказуемо

УхУг (ип(а, х, г) V —ип(а, х, г)). Тогда по принципу конструктивного подбора

Ух (——Зг (ип(а, х, г)) ^ Зг (ип(а, х, г))). Но тогда по принципу КР

Ух Зг (——Зг (ип(а,х, г)) ^ (ип(а,х, г))).

Теперь при каждом т можно доказать

(--Зг (Пи(а, т, г) ^ (Пи(а, т, ст))),

где ст — новая вспомогательная константа. Воспользовавшись разрешимостью Пи, можно разобрать случаи истинности и ложности. Если ии(а,т,Ст) оказывается истинно, то А(т). Если нет, то -А(т). Поскольку доказательства А(т) V -А(т) строятся алгоритмически,

Ух (А(х) V -А(х)).

Теперь осталось заметить, что формулы из Пи эквивалентны отрицаниям формул из Хи.

Лемма доказана.

А теперь покажем, что из разрешимости Ки следует разрешимость Ди+ь Здесь достаточно одного принципа конструктивного подбора вместе с ш-правилом. Представим и саму формулу, и ее отрицание как Хи+1-формулы Зу А1(х, у), ЗуА2(х,у). Тогда Ух --Зу(А1(х,у) V А2(х,у)). По принципу конструктивного подбора, Ух Зу(А1(х,у) V А2(х,у)). И разбором случаев А1(т, ст) V А2(т,ст)) доказываем искомый закон исключенного третьего.

Базис. Разрешимость Д1 является известным фактом. Теорема доказана.

8 Неудачная попытка приложения

Приведем важнейший результат.

Теорема 3 (Хксеевтка). Имеется модель интуиционистской математики, в которой каждая последовательность представляется как результат алгоритмического оператора, примененного к беззаконным и творческим последовательностям.

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

Мы не приводим этого доказательства, поскольку пока что не можем изложить его менее чем на 30 страницах, оно требует целого раздела лекционного курса. Более того, анализ доказательства результата Трулстра показывает: чтобы его аккуратно рассказать, необходимо полностью перестроить ВЕСЬ курс математики на нечисленной основе: алгебра, топология, теория категорий. Далее, необходим глубокий курс ЛОГИКИ как математизированной, но самостоятельной науки. Поразительно, что требования к перестройке преподавания математики, которые предъявляет нынешняя высшая практика (в частности, информатика), те же самые!

Все это показало еще одну грань математических объектов. Фундаментальные математические концепции, такие, как действительные числа, на самом деле не являются фиксированными. Они имеют важный неявный параметр: степень конструктивности. Мы можем либо уменьшить ее до нуля и получить более эффективное орудие для доказательства дескриптивных теорем (нестандартный анализ; результат Драгалина о сокращении выводов по сравнению с классическим анализом и результат автора о выводимости tertium non datur в интуиционистском нестандартном анализе), либо повысить конструктивность, причем разными способами. В еще большей мере такая вариабельность свойственна понятиям высших уровней: даже зафиксировав понятие алгоритма, можно варьировать понятия алгоритмического функционала.

Достигнутый прорыв позволил попытаться применить конструктивизм в информатике. Но, как слишком часто бывало в истории науки, попытка лобового применения глубокой и трудной концепции привела к неудаче (наиболее знаменитым аспектом которой был провал японского проекта «ЭВМ пятого поколения»), которая надолго дискредитировала все направление. Автор сошлется здесь лишь на свою работу [3], в которой он также поддался телячьему оптимизму, еще не понимая, что технические трудности слишком часто являются следствием принципиальных недоработок, и на рекламируемый в последние годы как великое достижение язык Agda [13], в котором на основе грубой силы (гигабайты оперативной памяти и гигафлопсы ско-

рости) реализован еще более безнадежный с практической точки зрения подход Мартин-Лефа конструктивной теории типов. В Агде даже попытка сложить 1000 и 1000 вызывает переполнение гигабайт памяти. А равнодушные и ленивые, зато «объективные» «peer reviewers» уже требуют во многих случаях, не желая проверять доказательства сами, записать их на Агде.

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

Вся история конструктивизма XX века показывает, каких глубоких результатов может достичь небольшая группа высококвалифицированных исследователей (все время число конструктивистов было порядка 0,001 от числа всех математиков), воодушевленная высокой идеей и готовая преодолевать тяжелые препятствия, но прежде всего не грубой силой, а искусством. Стоит отметить еще один урок конструктивизма: не стоит перестраивать существующую математику под другую разновидность рациональности. Эта стратегическая ошибка была неизбежна, тупиковое направление главного удара не помешало достичь выдающихся результатов и, самое главное, осознать особенности и специфику конструктивизма.

И, наконец, нынешняя выродившаяся и гибнущая цивилизация совершенно разучилась слышать неприятные вещи. Язык Agda [13], полностью проигнорировавший известные уже 30 лет теоретические предупреждения, служит здесь ярким примером. Впрочем, для получения гранта нужно как можно больше эффектно и «правдоподобно» наобещать, а техника, как выбить и как отчитаться, стала подменять технику научного поиска и полностью убила научную честь и этику.

Литература

[1] Заславский И. Д., Цейтин Г. С. О сингулярных покрытиях и связанных с ними свойствах конструктивных функций // Труды МИАН СССР. 1962. T. 67. C. 458-502.

[2] Крейнович В. Я. Из чего вытекает закон исключенного третьего? // Записки научных семинаров ЛОМИ. 1974. Т. 40. С. 30-37.

[3] Непейвода Н. Н. О построении правильных программ // Языки моделирования и программное обеспечение гибридных вычислительных систем. М.: НС по комплексной проблеме «Кибернетика» АН СССР, 1978. С. 88-122.

[4] Непейвода Н. Н. Замечания о конструктивном нестандартном анализе // Теория множеств и топология. Вып. 2. Ижевск, 1980. С. 4550.

[5] Непейвода Н. Н. О прикладных теориях с суперинтуиционистскими логиками // Логические исследования. Вып. 7. M.: Наука, 2000. С. 61-71.

[6] Непейвода Н. Н. Конструктивная математика: обзор достижений, недостатков и уроков. Часть I // Логические исследования. Вып.

17. М.-СПб.: ЦГИ, 2011. C. 191-239.

[7] Непейвода Н. Н. Конструктивная математика: обзор достижений, недостатков и уроков. Часть II // Логические исследования. Вып.

18. М.-СПб.: ЦГИ, 2012. C. 157-181.

[8] Feferman S. Transfinite recursive progressions of axiomatic theories // J. Symbolic Logic. 1962. Vol. 27. P. 259-316 (русский перевод: Фефер-ман С. Трансфинитные рекурсивные последовательности теорий // Математика. 1971. № 3. C. 102-223).

[9] Шанин Н. А. О конструктивном понимании математических суждений // Тр. МИАН СССР. 1958. Вып. 52. С. 226-311.

[10] Шурыгин В. А. Основы конструктивного математического анализа. М.: URSS, 2009. 326 с.

[11] Beeson M. Foundations of Constructive Mathematics. Heidelberg: Springer-Verlag, 1985.

[12] Bishop E. Foundations of Constructive Analysis. New York: McGraw-Hill, 1967.

[13] Bove A., Dybjer P., Norell U. A Brief Overview of Agda — A Functional Language with Dependent Types // Proceedings of TPHOLs 2009. Springer, 2009.

[14] Bridges D. A Reverse Look at Brouwer's Fan Theorem // One Hundred Years of Intuitionism (1907-2007) / M. van Atten, P. Boldini, M. Bourdeau, G. Heinzmann (eds.). Basel: Birkhauser Verlag, 2008.

[15] Brouwer L.E.J. Besitzt jede reele Zahl eine dezimal bruchentwicklung?// Proc. Acad. Amsterdam. Vol. 23. P. 949-954.

[16] Brouwer L.E.J. Richtlijnen der intuitionistische wiskunde // Proc. Acad. Amsterdam. Vol. 50. P. 339.

[17] Brouwer L.E.J. Consciousness, philosophy and mathematics // Proc. X Intern. Congr. Philosophy. Amsterdam, 1948. P. 1235-1249.

[18] Glivenko V. Sur la logique de M.Brouwer // Academie Royale de Belgique.

[19] Glivenko V. Sur quelques points de la logique de M.Brouwer // Academie Royale de Belgique. Bulletins de la classe des sciences.Ser. 5. 1929. Vol. 15. P.183-188.

[20] Kreisel G., Lacombe D. Ensembles recursivement measurables et ensembles recursivement ouvert les fermes // Compt. rend Acad. si. Paris. 1957. Vol. 245. № 14. P. 1106-1109.

[21] Kreisel, G., Troelstra A.S. Formal systems for some branches of intuitionistic analysis // Ann. Math. Log. 1970. Vol. 1. P. 229-387.

[22] Martin-Lof P. Notes on constructive mathematics. Almqvist & Wiskell, Stockholm, 1970.

[23] Smorinsky C.A. Applications of Kripke Models // Metamatematical Investigations of Intuitionistic Arithmetic and Analysis. Ed. A. S. Troelstra. Springer. 1973. P. 324-391.

[24] Troelstra A.S. History of Constructivism in the Twentieth Century. University of Amsterdam, ITLI Prepublication Series ML-91-05, 1991.

[25] Troelstra A.S. From Constructivism to Computer Science // Theoretical Computer Science. 1999. Vol. 211. P. 233-252.

References

[1] Zaslavskij I. D., Cejtin G. S. O singuljarnyh pokrytijah i svjazannyh s nimi svojstvah konstruktivnyh funkcij // Tr. MIAN SSSR. 1962. T. 67. S. 458—502.

[2] Krejnovich V. Ja. Iz chego vytekaet zakon iskljuchennogo tret'ego? // Zap. nauchn. sem. LOMI. 1974. T. 40. S. 30-37.

[3] Nepejvoda N.N. O postroenii pravil'nyh programm // Voprosy kibernetiki. 1978. № 46. C. 88-122.

[4] Nepejvoda N.N. Zamechanija o konstruktivnom nestandarstnom analize // Teorija mnozhestv i topologija. Vyp. 2. Izhevsk, 1980. S. 45-50.

[5] Nepejvoda N.N. O prikladnyh teorijah s superintuicionistskimi logikami // Logicheskie issledovanija. Vyp. 7. M.: Nauka, 2000. S. 61-71.

[6] Nepejvoda N.N. Konstruktivnaja matematika: obzor dostizhenij, nedostatkov i urokov. Chast' I // Logicheskie issledovanija. Vyp. 17. M.-SPb.: CGI, 2011. S. 191-239.

[7] Nepejvoda N.N. Konstruktivnaja matematika: obzor dostizhenij, nedostatkov i urokov. Chast' II // Logicheskie issledovanija. Vyp. 18. M.-SPb.: CGI, 2012. S. 157-181.

[8] Feferman S. Transfinite recursive progressions of axiomatic theories // J. Symbolic Logic. 1962. Vol. 27. P. 259-316.

[9] Shanin N.А. O konstruktivnom ponimanii matematicheskih suzhdenij // Tr. MIAN SSSR. 1958. Vyp. 52. S. 226-311.

10] Shurygin V.A. Osnovy konstruktivnogo matemticheskogo analiza. M.: URSS, 2009. 326 s.

11] Beeson M. Foundations of Constructive Mathematics. Heidelberg: Springer-Verlag, 1985.

12] Bishop E. Foundations of Constructive Analysis. New York: McGraw-Hill, 1967.

13] Bove A., Dybjer P., Norell U. A Brief Overview of Agda — A Functional Language with Dependent Types // Proceedings of TPHOLs 2009. Springer, 2009.

14] Bridges D. A Reverse Look at Brouwer's Fan Theorem // One Hundred Years of Intuitionism (1907-2007) / M. van Atten, P. Boldini, M. Bourdeau, G. Heinzmann (eds.). Basel: Birkhauser Verlag, 2008.

15] Brouwer L.E.J. Besitzt jede reele Zahl eine dezimal bruchentwicklung?// Proc. Acad. Amsterdam. Vol. 23. P. 949-954.

16] Brouwer L. E. J. Richtlijnen der intuitionistische wiskunde // Proc. Acad. Amsterdam. Vol. 50. P. 339.

17] Brouwer L. E. J. Consciousness, philosophy and mathematics // Proc. X Intern. Congr. Philosophy. Amsterdam, 1948. P. 1235-1249.

18] Glivenko V. Sur la logique de M.Brouwer // Academie Royale de Belgique.

19] Glivenko V. Sur quelques points de la logique de M.Brouwer // Academie Royale de Belgique. Bulletins de la classe des sciences.Ser. 5. 1929. Vol. 15. P.183-188.

20] Kreisel G., Lacombe D. Ensembles recursivement measurables et ensembles recursivement ouvert les fermes // Compt. rend Acad. si. Paris. 1957. Vol. 245. № 14. P. 1106-1109.

21] Kreisel, G., Troelstra A. S. Formal systems for some branches of intuitionistic analysis // Ann. Math. Log. 1970. Vol. 1. P. 229-387.

[22] Martin-Löf P. Notes on constructive mathematics. Almqvist & Wiskell, Stockholm, 1970.

[23] Smorinsky C.A. Applications of Kripke Models // Metamatematical Investigations of Intuitionistic Arithmetic and Analysis. Ed. A. S. Troelstra. Springer. 1973. P. 324-391.

[24] Troelstra A. S. History of Constructivism in the Twentieth Century. University of Amsterdam, ITLI Prepublication Series ML-91-05, 1991.

[25] Troelstra A. S. From Constructivism to Computer Science // Theoretical Computer Science. 1999. Vol. 211. P. 233-252.