Содержание

А.Е.Болотов, В.А.Бочаров,
А.Е.Горчаков

Алгорифм поиска вывода
в классической пропозициональной логике*

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

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

В 1992 году авторы поставили перед собой задачу осуществить поиск алгорифма вывода и доказательства (как линейной последовательности утверждений) для классической логики высказываний. Работа осуществлялась сотрудниками философского факультета Московского государственного университета им. М.В.Ломоносова и была завершена в 1994 году. Своеобразие предлагаемого ниже алгорифма, реализованного на языке "Си" для IBM PC, состоит в том, что авторам удалось формализовать эвристики, которые, как нам представляется, применяются обычно в естественном рассуждении. Это позволило авторам найти эффективную процедуру для осуществления так называемого субординатного вывода.

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

Правила вывода:

&вв: &И и: ,

вв: , ии:

É вв: - где С - гипотеза É ии:

Ø вв: - где С - гипотеза Ø и:и:

Выводом в системе называется непустая конечная последовательность формул С1, С2,..., Сk, удовлетворяющая условиям:

(1) каждая Ci есть либо гипотеза, либо получена из предыдущих формул по одному из правил вывода,

(2) если в выводе применялись правила É В или Ø В, то все формулы, начиная с последней гипотезы и вплоть до результата применения данного правила, в дальнейших шагах построения вывода не принимают участия (их дальнейшее применение в выводе исключается).

Вывод С1, С2,..., Сk есть вывод вида А1, А2,..., Аn | ¾ В, если А1, А2,..., Аn - это неисключенные гипотезы, а формула В графически совпадает с Сk.

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

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

ООбщаяая стратегия я алгорифмического поиска вывода

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

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

Общее описание процедур

(I) По формулам вывода осуществляются следующие процедуры:

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

Процедура 2 - формирует новые цели; эта процедура выполняется в том случае, когда все возможные, указанные в процедуре 1, правила вывода применены, последней целью в последовательности целей является "F" (противоречие) и при этом данная цель не достигнута (см. процедуру 3). Какие именно вводятся цели, определяется видом содержащихся в выводе формул, и будет объяснено далее.

Процедура 3 - осуществляет проверку достижимости последней цели в списке целей. Если последней целью является некоторая формула, то она считается достигнутой просто по факту наличия в выводе графически равной ей формулы. Если же последней целью является F (противоречие), то она считается достигнутой, если в выводе содержатся формулы вида A и Ø A. Достигнутая цель из списка целей устраняются, а очередной целью становится предыдущая цель в списке целей.

(II) По последовательности целей осуществляются процедуры:

Процедура 4 - формирует подцели, которые помещаются в последовательность целей.

Процедура 5 - выбирает новые дополнительные посылки, помещаемые под очередным номером в последовательность формул вывода.

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

Процедура 6 - сигнализирует необходимость автоматического применения в выводе правил введения логических связок. Более детально это описывается ниже.

Описание алгорифма

Изначально эти две последовательности формируются следующим образом:

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

если необходимо осуществить вывод W из пустого множества посы-

лок, то есть требуется осуществить доказательство W, то список вы-

вода является пустым, а формула W помещается в список целей. Ес-

тественно, эта формула и является главной целью.

1. 1.Определяется главная цель вывода. Таковой является формула, стоящая справа от знака выводимости. Данная формула помещается в качестве начальной в последовательность целей. Если слева от знака выводимости стоят формулы, то они помещаются в качестве начальных в последовательность формул вывода. Переход к 2.

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

W1,...,Wk и формулой W, а в случае доказательства W - наличие свойст-

ва общезначимости у исходной формулы W. В случае положительного отве-

та на первый или второй вопросы переходим к выделению главной цели -

2, в случае отрицательного ответа - выдается соответствующее сообще-

ние. Выход.

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

Анализ множества формул вывода.

2.1. мости.

3. Если множество формул вывода пусто, то переход к 4.

2.2. Если множество формул вывода непусто, непусто, то переход к 3.

3. Умозаключения по формулам вывода.

3.1. Осуществляются все непосредственные умозаключения по аналитическим правилам; при этом на посылки правил вывода вида А & В, А Ú В, А É В, Ø Ø А, к которым были применены, соответственно, правила &и, и, É и и Ø и, ставиться метка “V0”, указывающая на недопустимость вторичного применения к ним указанных правил, а на заключения правил вывода ставиться метка “V+1” (смысл этой метки разъясняется далее). Переход к 9.

3.2. Если ни одно аналитическое правило не применимо, то - 9.

4. Анализируется главный знак очередной цели - W.

4.1. W - пропозициональная переменная. Переход к 5.

4.2. Главный знак W - Ø . Переход к 5.

4.3. W = Wi É Wj. Переход к 6.

4.4. W = Wi & Wj. Переход к 7.

4.5. W = Wi Ú Wj. Переход к 8.

4.6. Цель W - противоречие. Переход к 11.

5. Ø W включается в последовательность формул вывода в качестве посылки, подцелью становится получение противоречия, тип устраняемости - Ø . Переход к 3.

6. Формула Wi включается в последовательность формул вывода в качестве посылки, подцелью становится Wj, а тип устраняемости - É . Переход к 3.

7. Wi становится подцелью.

7.1. Подцель - Wi.

Если Wi достижима, то переход к 7.2.

В противном случае - 4.

7.2. Подцелью становиться Wj.

Если Wj достижима, то - 9.

В противном случае - 4.

8. Wi становится подцелью.

8.1. Цель - Wi, метка цели - "V1".

Если цель Wi достижима, то 9.

В противном случае - 8.2.

8.2. Цель - Wj, метка цели - "V2".

Из последовательности целей устраняются все подцели, начинаюшиеся с метки “V1”, а из последовательности формул вывода все формулы, начиная с посылки, соответствующей этой отмеченной цели.

Если цель Wj достижима, то - 9.

В противном случае - 8.3.

8.3. Из последовательности целей устраняются все подцели, начинаюшиеся с метки “V2”, а из последовательности формул вывода все формулы, начиная с посылки, соответствующей этой отмеченной цели.

Если на цели Wi Ú Wj не стоит метка “V-1” (об ее смысле будет сказано ниже), то формула Ø (Wi Ú Wj) берется в качестве новой посылки, тип устраняемости - Ø , а в качестве подцели берется противоречие. Переход к 3.

В противном случае осуществляется временный выход из доказательства исходного метаутверждения, цель Wi Ú Wj устраняется, а в качестве новой цели берется формула Ø Wi & Ø Wj и осуществляется вывод Ø (Wi Ú Wj) | ¾ Ø Wi & Ø Wj. Переход к 3.

9. Достигнута цель Wn.

9.1. Если Wn - главная цель, то Wn помечается как достигнутая, выход - выводимость обоснована.

9.2. Если Wn - противоречие, то Wn как цель устраняется, новой целью становиться предыдущая цель, а к формулам вывода применяется правило Ø в. Результатом является формула Ø B, где B - последняя посылка в выводе, и делается отметка, что все формулы, начиная с B и заканчивая формулой, предшествующей Ø B, в дальнейших шагах вывода принимать участия не могут. Если в число этих формул попадает формула с меткой “V+1”, являющаяся заключением некоторого правила вывод, то с соответствующей формулы, являющейся посылкой данного применения правила вывода, снимается метка “V0”. Переход к 3.

9.3. Если предыдущей к достигнутой цели Wn является цель Wn-1 = Wn Ú Wk или Wk Ú Wn, то из последовательности целей устраняются цели Wn и Wn-1, новой целью становится предыдущая цель, а в последовательность формул вывода включается формула Wn-1, которая является результатом применения правила Ú в к формуле Wn. Если на цели Wn-1 стояла метка “V-1”, то с формулы вывода, породившей данную цель (об этом будет сказано ниже) снимается метка “V-1”. Переход к 3.

9.4. Если предыдущей к достигнутой цели Wn является цель Wn-1 = Wk É Wn, то к формуле вывода Wn применяется правило É в. Цели Wn и Wn-1 помечаются как достигнутые. Очередной целью становится ближайшая ранее не достигнутая цель, и в последовательности формул вывода делается отметка, что все формулы, начиная с Wk и заканчивая формулой Wn, в дальнейших шагах вывода принимать участия не могут. Если в число последних формул попадает формула с меткой “V+1”, являющаяся заключением некоторого правила вывода, то с соответствующей формулы, являющейся посылкой данного применения правила вывода, снимается метка “V0”. Если на цели Wn-1 стояла метка “V-1”, то с формулы вывода, породившей данную цель cнимается метка “V-1”. Переход к 3.

9.5. Если предыдущей к достигнутой цели Wn является цель Wn-1 = Wk & Wn, то к формулам вывода Wk и Wn применяется правило &в. Цели Wn и Wn-1 помечаются как достигнутые. Очередной целью становится ближайшая ранее не достигнутая цель, и в последовательности формул вывода на формулу Wk & Wn ставится метка “V0”. Если на цели Wn-1 стояла метка “V-1”, то с формулы вывода, породившей данную цель cнимается метка “V-1”. Переход к 3.

9.6. Если последней целью Wn является формула и она не достигнута, то 4.

10. Выбор новых целей по формулам вывода.

Просматриваются сверху вниз все формулы последовательности формул вывода.

Если в последовательности имеются сложные формулы, не отмеченные метками “V0” или “V-1”, то к ним применяются следующие процедуры:

10.1. Если в выводе имеется импликативная формула вида Wi É Wj, то в качестве подцели берется Wi. Формулы Wi É Wj и Wi помечаются метками “V-1”. Переход к 4.

10.2. Если в выводе имеется дизъюнктивная формула вида Wi Ú Wj, то в качестве подцели берется Ø Wi. Формулы Wi Ú Wj и Ø Wi помечаются метками “V-1”. Переход к 5.

10.3. Если в выводе встречается формула Ø Wi, то в качестве цели берется Wi. Формулы Ø Wi и Wi помечаются метками “V-1”. Переход к 7.

В противном случае - завершение программы (утверждение нельзя обосновать).

11. Алгоритм поиска противоречий.

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

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

Несколько слов о программе, реализующей описанный алгоритм. Программа написана на языке высокого уровня "Си" для компьютеров типа IBM PC AT. Программа занимает на диске 140 кбайт, время работы над доказательством тестированных теорем не превышает 4 сек. для персонального компьютера на базе процессора INTEL-386-DX с тактовой частотой 40 МГЦ. Программа имеет пользовательский интерфейс и может читать заранее заготовленные формулы из файла. Тестирование проводилось на множестве формул, выбранных из учебников по математической логике, в частности, из книги А.Черча "Введение в математическую логику". Это множество - около ста теорем классической логики - достаточно репрезентативно, что позволяет рассматривать предложенный алгоритм поиска вывода для натурального исчисления высказываний как эффективную процедуру осуществления субординатных выводов.

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

Требуется доказать: ((pÉ q) É p) É p

0. (pÉ q)É p, посылка

1. ~p, посылка

2. p, посылка

3. ~q, посылка

4. ~~q, ~в из 1, 2

5. q, ~и, из 4

6. pÉ q, É в 2 к 5

7. p, É и, из 0, 6

8. ~~p, ~в из 1, 7

9. p, ~и, из 8

10. ((pÉ q)É p)É p, É в 0 к 9

Объясним шаги вывода, строившегося по описанному выше алгоритму. Так как требуется доказать формулу ((p É q) É p) É p, то исходный список вывода пуст, а главной целью является сама эта формула. По этой формуле, согласно пункту 4, начинает формироваться последовательность формул вывода и в качестве первой посылки берется формула (p É q) É p), а целью становится формула р. Так как эта цель не достижима, то опять по пункту 4 в вывод помещается посылка Ø p, а целью становится F. Цель F не достижима, а поэтому по процедуре 9 первая посылка служит источником новой цели, которой становится формула p É q . Вновь по 4 в качестве новой посылки берется формула р, а в качестве новой цели - формула q. Опять-таки, последняя цель не достижима, а поэтому по 4 берется новая посылка Ø q, а новой целью становится F. На этом шаге автоматического поиска вывода машина устанавливает, что цель F достигнута, так как в выводе имеется противоречие - формулы p и Ø p (шаги вывода 1 и 2). Это служит сигналом для применения в выводе правила "введения отрицания". Именно таким образом в выводе появляется 4-й шаг - формула Ø Ø q. При этом все формулы, начиная с последней посылки (формулы 3) и вплоть до результата применения этого правила считаются из вывода устраненными (что помечено слева от номеров шагов вертикальной линией, длина которой равна числу строчек исключаемых формул). Заметим, что хотя в выводе уже ранее содержалось противоречие, это правило не применялось, так как на это не указывала никакая из целей. Цель F, так как она достигнута, исключается и целью становится предыдущая цель - формула q. Формула q легко достигается, так как к 4 шагу можно применить правило "исключения отрицания". Достижение формулы q служит сигналом для автоматического применения правила “É в", что дает формулу 6 вывода.

Остальные шаги вывода очевидны и могут быть легко восстановлены по аналогии с рассмотренными.