Креативная недетерминированная вычислимость

МАТЕМАТИЧЕСКАЯ ЛОГИКА

КРЕАТИВНАЯ НЕДЕТЕРМИНИРОВАННАЯ ВЫЧИСЛИМОСТЬ*

А.М. Анисов

Сектор логики Институт философии РАН ул. Волхонка, 14, Москва, Россия, 199991

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

Ключевые слова: недетерминированная вычислимость, вычислительные концепции, математическая логика, языки программирования.

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

Следуя идеям Марио Бунге [1], определим детерминизм как принцип, согласно которому всё существующее, во-первых, чем-то однозначно обусловлено, и, во-вторых, во всём полностью определённо. Отсюда недетерминизм означает либо неоднозначную обусловленность, либо неполную определённость, или и то и другое вместе. Крайней формой недетерминизма является индетерминизм — допущение существования чего-либо ничем не обусловленного или полностью неопределённого.

* Работа выполнена при поддержке РГНФ, проект № 07-03-00203а.

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

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

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

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

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

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

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

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

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

Абстрактные компьютеры, языки программирования и недетерминированные вычисления интересны не сами по себе, а в связи с возможностью точной постановки и обсуждения (в идеале — и решения, пусть не окончательного) допускающих вычислительный подход аспектов следующих философских проблем: детерминизма, причинности, движения, течения времени, креативности (проблемы появления нового и его «стыковки» со старым), искусственного интеллекта (ИИ), изменяющегося знания. Эти проблемы, повторим, должны браться не во всей сложности и глобальности, а лишь в аспекте их вычислительной трактовки в рамках дихотомии детерминизм — недетерминизм.

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

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

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

В качестве памяти абстрактных компьютеров разрешается использовать любые непустые множества произвольной мощности. В частности, память Мт компьютера @ = <Мт, Рг> может иметь несчётную мощность.

По определению, Мт(Б) — подмножество множества Мт, указывающее, как много регистров или ячеек памяти (элементов Мт) ушло на размещение объекта (множества) Б:

Мт(Б) с Мт.

А если в действительности объект Б не был размещён в памяти Мт? Тогда естественно считать, что для размещения Б не была использована ни одна из ячеек памяти, т.е. что Мт(Б) = 0. Короче говоря, объект Б размещён в памяти Мт, если и только если Мт(Б) Ф 0.

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

Б Ф Б' ^ Мт(Б) п Мт(Б') = 0.

Если же Б = Б', то, само собой разумеется, Мт(Б) = Мт(Б').

Размещением теоретико-множественных объектов в памяти, равно как и их удалением, управляет выполняемая процессором Рг программа, написанная на спе-

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

Постулат существования: любой объект может появиться в памяти Mm или исчезнуть из нее только в результате выполнения процессором Pr соответствующего оператора языка программирования ABT.

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

Io

(где i0, ib ..., in — натуральные числа и ij < ik, если j < k), которые выполняются одна за другой сверху вниз, если только нет команды изменить порядок их выполнения.

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

IF условие THEN оператор,

где IF ... THEN имеет обычный смысл (как, например, в языке BASIC).

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

Оператор GOTO. Хорошо известный оператор безусловного перехода. Используется в ABT-программах в виде конструкции

GOTO Ij,

где Ij — одна из инструкций соответствующей ABT-программы. Его действие ничем не отличается от поведения аналогичных операторов в обычных языках программирования.

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

Следующие два оператора специфичны, поэтому их характеристика будет более подробной.

Оператор выбора CHOOSE. Применяется в ABT-программах в следующей форме.

CHOOSE список переменных | условие

В этой записи условие означает то же самое, что и в случае оператора IF ... THEN, за исключением того, что условие должно содержать все переменные из списка переменных, причем переменные не должны быть связанными (т.е. в условии не должно быть кванторов по этим переменным). На список переменных также накладываются ограничения: он не должен содержать повторных вхождений одной и той же переменной, и в него не могут входить переменные, значения которых уже размещены в памяти Mm. Поскольку вопрос о том, значения каких переменных размещены в памяти Mm, требует анализа хода выполнения соответствующей ABT-программы, последнее ограничение имеет не синтаксический, а семантический характер.

Более формально синтаксическую форму оператора CHOOSE можно представить в виде записи

CHOOSEX0, Xj, X2, ..., Xn | условие(X0, Xj, X2, ..., Xn),

где X — некоторая переменная, причем переменные X и Xj различны, если i ф j. Все выражение может быть прочитано как «Выбрать объекты (множества) X0, Xj, X2, ..., Xn такие, что выполняется предикат условие (X0, Xj, X2, ..., Xn)».

Сформулируем условия выполнимости оператора CHOOSE в общем виде. Если процессор Pr ABT-компьютера @ = <Mm, Pr> выполняет синтаксически правильную инструкцию I вида

CHOOSE X0, Xj, X2, ..., Xn | условие(X0, Xj, X2, ..., Xn) и предусловие P

Mm(X0) = 0 & Mm(Xj) = 0 & Mm(X2) = 0 & ... & Mm(Xn) = 0

ложно, выполнение завершается аварийно: произойдет авост.

Если P истинно, процессор Pr пытается найти (выбрать) такие объекты (множества) S0, Sj, S2, ..., Sn, которые, будучи присвоены в качестве значений переменным X0, Xj, X2, ..., Xn соответственно, обеспечивают истинность условия инструкции I. Затем процессор Pr пытается разместить в памяти Mm объекты S0, Sj, S2, ..., Sn.

Если объектов (множеств) S0, Sj, S2, ..., Sn, удовлетворяющих условию инструкции I и способных поместиться в свободной области памяти Mm, не существует, выполнение I завершается авостом. В противном случае (т.е. если требуемые объекты существуют и памяти для их размещения достаточно) выполнение I завершается успешно в состоянии, в котором истинны следующие постусловия:

Mm(Si) ф 0 для всех i, 0 < i < n; условие(S0, Sj, S2, ..., Sn).

Приведём пример конкретной ABT-программы. Пусть T — какая-либо теория в не более чем счётном языке первопорядкового исчисления предикатов. Рассмотрим синтаксически правильную программу

Ij CHOOSE X |

I2 GOTO Ij

Выполнение первой инструкции состоит в нахождении модели теории T. Но если теория Т противоречива, она не имеет модели и выполнение I в соответствии с семантикой оператора CHOOSE завершится аварийно. Однако и в том случае, если теория Т имеет модель, это не гарантирует успешности выполнения инструкции Ij. Например, если память АВТ-компьютера, на котором выполняется данная программа, конечна и теория Т не имеет конечных моделей, попытка выполнить Ij приведет к авосту.

Пусть теперь память Mm счётна (т.е. |Mm| = ю). Если теория T непротиворечива, то в соответствии с теоремами логики существуют счётные модели теории Т. Одна из таких моделей будет найдена процессором Pr и размещена в памяти Mm. А если память Mm несчётна и Т имеет бесконечную модель, то процессор Pr мог бы выбирать между неизоморфными моделями теории Т, так как наряду со счётными моделями теория Т имела бы и несчётные модели. Но сказать, какой из возможных исходов будет иметь место до выполнения инструкции Ij, невозможно в принципе, так что в общем случае при использовании оператора CHOOSE мы имеем дело с ситуацией недетерминированного выбора. В некотором роде оператор выбора CHOOSE близок к аксиоме выбора: их объединяет неконструктивный (в смысле математического конструктивизма) характер получения результатов.

При условии успешного выполнения инструкции I! рассматриваемой ABT-программы процессор Pr приступит к выполнению инструкции I2, в соответствии с которой произойдет возврат к инструкции Ij. Как только осуществится этот переход по GOTO, возникнет авост. Почему? В силу того обстоятельства, что Mm(Z) Ф 0 после первого выполнения инструкции Ij. Но оператор выбора CHOOSE в соответствии с определением не может применяться к переменной, в отношении значения которой выбор был уже сделан, а само это значение было размещено в памяти Mm. Таким образом, независимо от того, противоречива теория Т или нет, все равно выполнение данной ABT-программы завершится аварийно.

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

Операторуничтожения DELETE. Его синтаксис предельно прост:

DELETE список переменных,

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

DELETE Xo, X1, X2, ..., X„.

Теперь определим семантику рассматриваемого оператора.

Если процессор Pr ABT-компьютера @ = <Mm, Pr> выполняет синтаксически правильную инструкцию I вида

DELETE X0, Xj, X2, ..., Xn,

и предусловие P

Mm(X0) ф 0 & Mm(Xj) ф 0 & Mm(X2) ф 0 & ... & Mm(Xn) ф 0

ложно, выполнение завершается аварийно: произойдет авост.

Если P истинно, процессор Pr завершит выполнение инструкции I в состоянии, в котором будет истинным следующее постусловие:

Mm(X) = 0 для всех i, 0 < i < n.

Воспользуемся оператором DELETE для модификации рассматриваемого примера ABT-программы в предположении, что теория T имеет модель и память Mm бесконечна.

Расположить инструкцию с оператором DELETE в данной программе, содержащей всего две инструкции, можно тремя следующими способами:

Ij CHOOSE X X |= T Ij CHOOSE X X |= T Ij DELETE X

12 GOTO Ij I2 DELETE X I2 CHOOSE X X |= T

13 DELETE X I3 GOTO Ij I3 GOTO Ij

Очевидно, ABT-программа п1 успешно работать не будет по той же самой

причине, что и исходная программа. Зато с ABT-программой п2 все в порядке: осуществив выбор модели теории T в соответствии с инструкцией Ij, процессор Pr перейдет к выполнению инструкции I2. Так как на этот момент предусловие Mm(X) ф 0 истинно, процессор Pr завершит выполнение I2 в состоянии Mm(X) = 0 и, выполняя инструкцию I3, перейдет по GOTO к Ij. Поскольку предусловие Mm(X) = 0 истинно, инструкция Ij будет вновь выполнена и т.д. — процесс выполнения программы п2 никогда не завершится.

Осталось проанализировать третью альтернативу. Для того чтобы выполнить ABT-программу п3, процессор Pr должен вначале выполнить инструкцию Ij, что возможно лишь в том случае, если Mm(X) ф 0. Но в соответствии с постулатом существования объект X может появиться в памяти ABT-компьютера только в результате действия оператора CHOOSE, который должен выполняться после команды DELETE, так как выполнение инструкции Ij с оператором DELETE предшествует выполнению инструкции I2 с оператором CHOOSE в программе п3.

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

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

Действительно, предположим, что процесс выполнения ABT-программы п3 не имел начала, т.е. всякому очередному выполнению любой инструкции программы п3 предшествовало бесконечное число реализаций этой инструкции. Такое предположение непротиворечиво и потому вполне допустимо. В самом деле, перед тем как в очередной раз выполнить инструкцию Ij, процессор Pr выполнил инструкцию I3, а перед этим — инструкцию I2, после чего ABT-компьютер перешёл в состояние с Mm(X) ф 0. Переход по GOTO к Ij сохранил это состояние, так что истинность предусловия оператора DELETE была обеспечена. После успешного выполнения Ij стало истинным утверждение Mm(X) = 0, необходимое для выполнения I2 и т.д.

Наглядно описанный процесс можно изобразить следующей схемой:

..., ^, I2, I3, ij, I2, I3, ij, ... .

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

Постулат реализуемости: если предположение о том, что АВТ-программа п выполнима, непротиворечиво, то программа п выполняется.

Интересное, на наш взгляд, различие между ABT-программами п2 и п3 заключается в том, что п3 можно выполнить только при условии отсутствия начала процесса выполнения, тогда как п2 выполнима независимо от того, имел процесс её выполнения начало или нет. Гипотетический процесс выполнения п2, имеющий первый шаг, был описан выше. Что касается описания воображаемого выполнения п2 в ходе не имеющего начала процесса, то оно практически полностью повторяет соответствующее описание выполнения п3. Мы говорим о гипотетических или воображаемых процессах выполнения п2 потому, что если допустить наличие не имеющих начала процессов наряду с «нормальными», то на вопрос

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

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

не будет. Например, применительно к программе п2 достаточно добавить к списку её инструкций команду GOTO Ij.

I0 GOTO Ij Ij CHOOSE X X |= T

I2 DELETE X

I3 GOTO Ij

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

^ ^ I2, ^ IJ, I2, I3, IJ, ...

В заключительной части кратко опишем более общую, чем АВТ, теорию абстрактной недетерминированной АВТС-вычислимости, которая позволяет в прямом смысле творить новое. Несколько лет назад тема креативности уже обсуждалась нами [3], но это были интуитивно-содержательные рассмотрения, которым теперь мы можем придать формально точный смысл.

Прежде всего, отметим, что оператор недетерминированного выбора CHOOSE в определенном смысле уже является формальным средством моделирования новизны. Что же это за смысл? Поясним, обратившись к великолепной идее Творения по Г. Лейбницу. Лейбниц считал, выражаясь нашим языком, что акт Творения Мира состоял в выборе Богом одного из возможных (существующих в его уме) миров в качестве действительного. Правда, этот выбор нельзя назвать недетерминированным, поскольку Бог выбрал наилучший из всех возможных миров, т.е. выбора как такового у него не было: коль скоро наилучший мир единственный, всеблагой Создатель был вынужден взять именно этот мир. Но это издержки концепции Лейбница. Вполне можно допустить, что «хороших» миров много, и среди них нет выделенного, наилучшего. Так что действительно было из чего выбирать, причём недетерминированным образом.

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

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

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

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

Но в реальности свойства появляются и исчезают! Например, когда-то не существовало свойства Разумное животное, но ныне это свойство существует. Мы можем быть также уверены, что существует соответствующее этому свойству конечное множество разумных животных. Однако это вовсе не означает, что мы должны быть готовы моделировать такое множество посредством некоторого построения, начинающегося с пустой совокупности. Натуральные числа, допустим, мы так и строим: объявляем, что 0 = м 0, 1 = м (0), 2 = (0, {0}} и т.д. Пове-

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

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

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

вом соответствующих аксиом [4]. Именно это обстоятельство даёт нам шанс для построения формальной модели творения нового из ничего.

Язык абстрактного программирования АВТС получается из языка АВТ добавлением оператора CREATE. Формально синтаксическую форму оператора CREATE можно представить в виде записи

CREATE X0, Xj, X2, ..., Xn | условие(X0, Xj, X2, ..., Xn),

где Xi — некоторая переменная, причем переменные Xt и Xj различны, если i ф j.

Все выражение может быть прочитано как «Создать атомы или множества атомов X0, Xj, X2, ..., Xn такие, что выполняется предикат условие (X0, Xj, X2, ..., Xn)».

Сформулируем условия выполнимости оператора CREATE в общем виде. Если процессор Pr ABT-компьютера @ = <Mm, Pr> выполняет синтаксически правильную инструкцию I вида

CREATE X0, Xj, X2, ..., Xn | условие

и предусловие P

Mm(X0) = 0 & Mm(Xj) = 0 & Mm(X2) = 0 & ... & Mm(Xn) = 0

ложно, выполнение завершается аварийно: произойдет авост.

Если P истинно, процессор Pr пытается создать (сотворить из ничего) такие атомы или множества атомов S0, Sj, S2, ..., Sn, которые, будучи присвоены в качестве значений переменным X0, Xj, X2, ..., Xn соответственно, обеспечивают истинность условия инструкции I. Затем процессор Pr пытается разместить в памяти Mm объекты S0, Sj, S2, ..., Sn.

Если атомов или множеств атомов S0, Sj, S2, ..., Sn, удовлетворяющих условию инструкции I и способных поместиться в свободной области памяти Mm, логически не может существовать, выполнение I завершается авостом. В противном случае (т.е. если условие (X0, Xj, X2, ..., Xn) непротиворечиво и памяти для размещения новых объектов S0, Sj, S2, ..., Sn достаточно) выполнение I завершается успешно в состоянии, в котором истинны следующие постусловия:

Mm(Si) ф 0 для всех i, 0 < i < n; условие(S0, Sj, S2, ..., Sn).

Завершим наши усилия сотворением нового атома из ничего в предположении, что памяти достаточно для размещения одного атома. Рассмотрим следующую элементарную АВТС-программу.

Ij CREATE X|

В соответствии с постулатом существования, до выполнения этой программы Mm(X) = 0. Условие (X ф 0) & VZ (Z £ X) указывает, что создаваемый Х будет атомом (а не множеством атомов). В ходе выполнения (согласно постулату реализуемости) оператора CREATE атом S, присваиваемый переменной Х, появ-

ляется ниоткуда, возникает в истинном смысле из ничего. Но до выполнения оператора CREATE атом S нигде не существовал ни в каком качестве, т.е. S будет совершенно новым. После выполнения программы имеем Mm(S) ф 0 и (S ф 0) & VZ (Z £ S).

ЛИТЕРАТУРА

[j] Бунге М. Причинность. Место принципа причинности в современной науке. — М., 1962.

[2] Анисов А.М. Недетерминированная вычислимость: Философские основания // Логические исследования. — Вып. Is. — М., 2008. — С. 5—30.

[3] Анисов А.М. Креативность // Credo new. — 2002. — № j. — С. Ю3—U6.

[4] Йех Т. Теория множеств и метод форсинга. — М., !973.

A CREATIVE NONDETERMINISTIC COMPUTABILITY

A.M. Anisov

Department of Logic Institute of Philosophy RAS

Volhonka, 14, Moscow, Russia, 199991

This paper shows a range of fundamental limitations inherent to any process realized in a standard theory of deterministic computability that significantly hamper its application to an analysis of philosophical problems concerning time-flow phenomena. Here a method based on a non-standard generalization of a computability concept is proposed that allows an adequate investigation of such philosophical problems. This goal is achieved by means of rejecting determinism in computational processes.

Key words: nondeterministic computability, computability concepts, mathematical logic, programming languages.