Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Непейвода. Прикладная логика

.PDF
Скачиваний:
895
Добавлен:
10.08.2013
Размер:
2.27 Mб
Скачать

19.2. СИСТЕМЫ ВЫСШИХ ТИПОВ

481

Далее каждой аксиоме теории сопоставим константу соответству ющего типа, Перестроим вывод так чт обы правило размножения при- менялось лишь. к допущениям Теперь, терм соответствующий выводу- строится индукцией по незавершенному. выводу, , Если вывод состоит лишь из аксиомы то ей. сопоставляется соот ветствующая константа Если вывод состоит, из допушения то ему со- поставляется новая переменная. соответствующего типа , - Если уже известны термы a и (a→b) сопоставленные. незавершен ным выводам заканчивающимсяt r и , то незавершенному вы- воду, заканчивающемуся, применениемA AправилаB, -

A A B

B

сопоставляется терм Если формула получена по правилу дедукции переменная сопоставленная(rt). его допушению a а терм сопоставлен, ный его результату, b то заключению правилаx дедукции, , сопоставля- ется λx t. t , -

Предложение Существует замкнутый терм типа соответ ствующего формуле19.1.1. с константами для аксиом теории, тогда- и только тогда, когдаAA, выводима в Th. Th

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

.

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

§ 19.2. СИСТЕМЫ ВЫСШИХ ТИПОВ

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

482 ГЛАВА 19. ДОКАЗАТЕЛЬСТВА И ПРОГРАММЫ

пов. Какие же операции над ними необходимы и какие достаточны, что-

бы функционалы могли быть использованы в программировании?

Ответ простой. Нужны композиция и частичная параметризация функ-

ционалов, все остальное от лукавого. Именно этих двух преобразований

достаточно,

чтобы выразить шаги вывода. Именно эти два преобразова-

ния могут быть реализованы без потери эффективности.

Вспомним, что роль сложных формул в доказательствах: леммы, рез-

ко сокращающие длину вывода. Поэтому значения высших типов в про-

граммировании нужны для того, чтобы сократить описания сложных

процессов. Для данной цели нужно лишь то, чтобы они могли модели-

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

вывода.

 

Итак, мы приходим к неожиданному заключению. Беда нынешних

концепций работы с функционалами высших типов в системах програм-

мирования

нежелание принимать простые решения и стремление за-

пихать в систему как можно больше возможностей, предусмотрев все

невозможные запросы. Но при работе со значениями высших типов са-

мое невинное расширение приводит к выходу за рамки логики, а прак-

тически это означает колоссальную потерю эффективности. Итак, беда

здесь

отсутствие самодисциплины, теоретической культуры и пол-

ное непонимание того что основная беда больших и сложных систем лишние возможности,

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

§ 19.3. ПРИЗРАКИ И КЛАССИФИКАЦИЯ ВЫВОДОВ

Пожалуй Г С Цейтин в г первым заметил что для обоснования правильности, . .программы1970недостаточно. тех значений, которые присут ствуют в ее тексте и при ее вычислении Нужны также, величины лиш- ние и даже порою вредные для вычислений. но необходимые ,чтобы- обосновать их корректность. , ,

19.3. ПРИЗРАКИ И КЛАССИФИКАЦИЯ ВЫВОДОВ

483

Пример 19.3.1. Если мы пишем цикл типа

 

 

 

while P do S;

(19.6)

то мы не заинтересованы (как правило) в том, чтобы он работал беско-

нечно. Но вычисление числа шагов цикла может быть не менее трудной

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

боту, нужно ввести значение-призрак ω,2 ограничивающий сверху число

шагов цикла, и доказать, что оно действительно обладает таким свой-

ством.

 

 

Этот пример показывает еще одну сторону значений-призраков. Если

мы можем построить ω как обычное натуральное число и достаточно

быстро вычислить его (хотя бы оно и было грубой верхней оценкой чи-

сла шагов), то в цикле можно поставить аварийный завершитель, если

число его повторений превзошло известную верхнюю границу ω. Таким

образом, призраки зачастую вновь обретают плоть, если мы интересу-

емся диагностикой ошибок.

 

 

Рассмотрим, когда призраки появляются в выводах.

 

 

Пусть мы применили предложение о том, что некий предикат явля-

ется композицией отношений, задаваемых двумя другими.

 

 

 

A(t, u) A(u, r) x, y, z(A(x, y) & B(y, z) C(x, z))

 

 

 

C(t, r)

 

 

 

Тогда все построения, проделанные для нахождения u, нужны для обо-

снования, но не для программы.

 

 

Итак, практически любая нетривиальная импликация порождает при-

зраки, и очевидные случаи, что призраками становятся значения, по-

строенные в отброшенных альтернативах разбора случаев либо при при-

ведении к абсурду, добавляют еще призраков.

который

Имется двухпроходной алгоритм классификации выводов,

позволяет выделять значения, необходимые для построения результата

вывода.

 

 

Схематически его можно описать следующим образом. Выходные

переменные объявляются действующими. Далее идем по графу вывода

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

484 ГЛАВА 19. ДОКАЗАТЕЛЬСТВА И ПРОГРАММЫ

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

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

§ 19.4. ТЕОРЕМА О ВЕРИФИКАЦИИ

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

Дана программа, доказать ее правильность.

Содержательный анализ этой задачи сразу же выявляет некоторые по дозрительные места Если уже дана программа и она работает то зачем- же доказывать ее правильность. Если же еще, нет уверенности, в том всегда ли она работает не разумнее? ли было бы поставить задачу попы, таться найти слабые места, в данной программе Далее своевременно ли-

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

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

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

19.5. СТРУКТУРНЫЕ ЗАВЕРШИТЕЛИ

485

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

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

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

Пусть программа должна построить, по входным, данным удовлетво. ряющим условию и выходные удовлетворяющие условию, -4

A(x), , B(x, y) .

Теорема Доказательство правильности программы с увеличени ем длины19не.1более. чем в раза перестраивается в конструктивное до- казательство из которого3 извлекается программа для решения той- же задачи. ,

Заметим что если теоретическая оценка увеличения длины вывода столь низка ,то практически, это чаще всего означает на самом деле его укорочение,

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

ПРОБЛЕМА СОВМЕСТИМОСТИ ОПЕРАТОРОВ НА ПРИ

§ 19.5. МЕРЕ EXIT -

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

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

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

486 ГЛАВА 19. ДОКАЗАТЕЛЬСТВА И ПРОГРАММЫ

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

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

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

Средства. предлагаемые в данном случае чистым структурным про граммированием, несколько неуклюжи Предлагается завести логиче- скую переменную. скажем которая. устанавливается в при- успешном поиске , и во всех, foundразумных, местах писать вместо trueнечто вроде , S

if found then S ;

Поэтому намного естественней выглядит возможность выйти из внеш ней процедуры оператором типа - Данный оператор выглядит весьмаexit(f)естественно. и здесь длительное время не возникало даже тени сомнения совместим, ли он со структур ным программированием Завершители стали, добавляться практически- везде И лишь его логический. анализ выявил что не все так просто и

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

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

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

Предложение Правило приятной неожиданности допустимо в классической логике19.5.1.

.

19.5. СТРУКТУРНЫЕ ЗАВЕРШИТЕЛИ

487

Доказательство. В самом деле, рассмотрим последовательность вло-

женных вспомогательных выводов Σ1 . . . , Σn, допущением самого внеш-

него из которых является A1, а ожидаемым результатом B1, и так далее

до самого внутреннего, допущение которого

An, а цель

Bn.

Пусть во внутреннем выводе доказано A1

. Тогда мы можем доказать

в непосредственно объемлющем его выводе вместо получаемой из не-

го формулы Cn−1 формулу Cn−1 A1. В самом деле, рассмотрим все

четыре косвенных правила классической логики.

 

Пусть Σn используется в правиле приведения к абсурду. Тогда за-

меним это правило на правило дедукции и получим An

B1. Вос-

пользовавшись классической эквивалентностью, получаем ¬ An B1.

Правило от противного рассматривается точно так же.

 

Пусть теперь Σn используется в правиле разбора случаев. Тогда при-

соединяем к получившейся совокупности случаев еще один случай B1.

И, наконец, если Σn используется правилом дедукции,

получаем An

Bn B1 и по классической тавтологии получаем (An Bn) B1.

Во всех промежуточных выводах вместо Ci разбором случаев полу-

чаем Ci B1.

 

 

Таким образом, протягиваем результат во внешний вспосмогатель-

ный вывод.

 

 

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

Предложение Правило приятной неожиданности превращает интуиционистскую19.5.2логику. в классическую.

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

488

 

 

 

 

 

 

ГЛАВА 19. ДОКАЗАТЕЛЬСТВА И ПРОГРАММЫ

мулу Пирса.

 

 

 

 

(A B) A

 

 

 

 

A

Допущение и одновременно приятная неожиданность

 

 

 

 

 

 

 

 

 

 

 

A

B

B

,

 

 

 

 

 

 

 

 

 

 

 

 

Цель которая никому уже не нужна

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A цель подвывода

 

 

 

 

 

 

B)

 

A)

 

A

((A

 

 

 

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

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

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

Литература

[1]

Аристотель. Первая аналитика. Сочинения, т. 1, М.: Мысль, 1975,

 

с. 117–254.

 

Вторая аналитика. Сочинения, т. 1, М.: Мысль,

[2]

Аристотель.

 

 

1975, с. 255–346.

 

[3]

Аристотель.

Категории. Сочинения, т. 2, М.: Мысль, 1978, с. 51–

 

90.

Метафизика. Сочинения, т. 1, М.: Мысль, 1975.

[4]

Аристотель.

[5]

Аристотель.

Об истолковании. Сочинения, т. 1, М.: Мысль, 1975,

 

с. 91–116.

О софистических опровержениях. Сочинения, т. 1,

[6]

Аристотель.

 

М.: Мысль, 1975, с. 533–593.

 

[7]

Аристотель.

Топика. Сочинения, т. 1, М.: Мысль, 1975, с. 347–532.

[8]

Дж. Булос, Р.

Джеффри. Вычислимость и логика.

М., Мир, 1994.

[9]

Дж. Вейценбаум. Возможности вычислительных машин и чело-

 

веческий разум. М., Радио и связь, 1982.

 

[10]

В.И. Вернадский. Труды по всеобщей истории науки. М., Наука,

 

1988.

Математика в альтернативной теории множеств.

[11]

П. Вопенка.

 

М., Мир, 1983.

М.: Мир, 1983.

[12]

Р.

Голдблатт.

Топосы. Категорный анализ логики.

[13]

Р.

Голдблатт.

Логика времени и вычислимости.

М.: ОИЛКРЛ,

1992.

489

490

ЛИТЕРАТУРА

СС Гончаров Ю Л Ершов К Ф Самохвалов Введение в логику

[14]и .методологию. , науки. . . М.: Интерпракс, . . , 1994. .

[15]М. Девис. Прикладной нестандартный анализ. М., Мир, 1980.

[16]Ю.Л. Ершов. Теория нумераций. М.: Наука, 1977.

В Г Кановей Аксиома выбора и аксиома детерминированности

[17]М. .Наука . .

.: , 1984.

[18]

Н.И. Конрад. У-цзы. Трактат о военном искусстве. Перевод и ис-

 

следование. в кн.: Н. И. Конрад. Избранные труды. Синология.М.:

1977.

[19]М. Крейнович. Из чего следует закон исключенного третьего?

[20]К. Куратовский, А. Мостовский. Теория множеств. М.: Мир, 1970.

[21]Л. Кэррол. История с узелками. М.: Мир, 1973.

Н Н Непейвода О формализации неформализуемых понятий ав

[22]топродуктивные. . . системы теорий Семиотика и информатика: -

вып. 25 (1985), с. 46–93. . ,

[23]Омар Хайям в кругу мудрости. Симферополь, Реноме, 1999

[24]К.М. Подниекс. Вокруг теоремы Геделя¨ . Рига, 1981.

[25]И. Пригожин. От существующего к возникающему. М., Наука, 1985.

[26]

Е. Расева¨ , Р. Сикорский. Математика метаматематики. М.: На-

 

ука, 1972.

[27]

С.П. Расторгуев, В.Н. Чибисов. Цель как криптограмма. М.:

 

Яхтсмен, 1996.

[28]

Р.Р. Столл. Множества. Логика. Аксиоматические теории. М.:

 

Просвещение, 1968.

[29]В.А. Успенский. Что такое нестандартный анализ? М., Наука, 1987.