WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!

Pages:     || 2 |
-- [ Страница 1 ] --

Московский государственный университет им. М.В. Ломоносова Философский факультет Кафедра логики

На правах рукописи

ШАНГИН ВАСИЛИЙ ОЛЕГОВИЧ АВТОМАТИЧЕСКИЙ ПОИСК НАТУРАЛЬНОГО ВЫВОДА В КЛАССИЧЕСКОЙ ЛОГИКЕ

ПРЕДИКАТОВ Диссертация на соискание ученой степени кандидата философских наук

Специальность 09.00.07 – Логика

Научный консультант: проф. Бочаров В.А.

Москва 2004 ОГЛАВЛЕНИЕ Введение...................................................................................................................................3 Глава 1. Автоматический поиск натурального вывода: история вопроса.........................9 § 1.1. Натуральный вывод как тип логического вывода...............................................9 § 1.2. История создания систем автоматического поиска вывода.............................16 § 1.3. Автоматический поиск вывода в натуральном исчислении.............................23 Глава 2. Анализ системы натурального вывода BMV.......................................................28 § 2.1. Формулировка системы BMV.............................................................................28 § 2.2. Семантическая непротиворечивость системы BMV.........................................35 Глава 3. Алгоритм поиска вывода в системе BMV............................................................43 § 3.1. Изменение формулировки системы BMV..........................................................43 § 3.2. Унификация..........................................................................................................47 § 3.3. Правила поиска вывода в системе BMV............................................................53 § 3.4. Описание алгоритма поиска вывода в системе BMV.......................................60 Глава 4. Анализ алгоритма поиска вывода в системе BMV..............................................81 § 4.1. Семантическая непротиворечивость алгоритма................................................81 § 4.2. Свойства алгоритма..............................................................................................85 § 4.3. Семантическая полнота алгоритма.....................................................................96 Заключение..........................................................................................................................102 Литература........................................................................................................................... Введение Актуальность темы исследования. Проблема поиска логического вывода традиционно считается одной из центральной тем логики. Бурное развитие данной проблематики в XX веке стимулировали, с одной стороны, фундаментальные работы Г. Генцена и Ж. Эрбрана и, с другой, появление ЭВМ. Возможность использования ЭВМ в процессе поиска логического вывода привела к появлению проблематики автоматического (машинного) поиска логического вывода. В настоящее время определяющим фактором при предпочтении одной логической системы перед другой становится наличие (автоматической) процедуры поиска вывода. Такие процедуры существенным образом облегчают нахождение логического вывода и активно используются в педагогической работе. В свою очередь, эти процедуры являются объектом исследования и постоянно сравниваются между собою по степени сложности (вычислительные затраты на поиск вывода), гибкости (возможность адаптации к нескольким логическим системам), удобства (понятный интерфейс, возможность поиска вывода как от посылок к заключению, так и от заключения к посылкам) и т.д. В диссертационном исследовании тема автоматического поиска логического вывода ограничивается поиском вывода в натуральном исчислении типа Куайна в классической логике предикатов. Натуральные системы типа Куайна, в отличие от натуральных исчислений типа Генцена, содержат прямое правило удаления квантора существования. Как следствие, в натуральных системах типа Куайна между посылками и заключением не всегда имеет место отношение логического следования. Основное внимание авторы программ автоматического поиска натурального вывода обычно уделяют исчислениям типа Генцена. Непрямое правило удаления квантора существования в таких исчислениях предполагает построение дополнительного подвывода, гарантирующего наличие отношение логического следования между посылками и заключением. Поскольку построение дополнительного подвывода приводит к усложнению вывода, удобнее, по нашему мнению, пользоваться прямым правилом удаления квантора существования, т.е. искать вывод в исчислениях типа Куайна.

Степень разработанности проблемы. Долгое время исследования в области автоматического поиска логического вывода были сосредоточены на поиске вывода с помощью метода резолюции, секвенциальных и аналитико-табличных типов логического вывода. Наличие свойства подформульности (в выводе формулы используются только подформулы или отрицания подформул этой формулы), которое следует из теоремы Генцена об устранении сечения, существенно облегчает поиск вывода в данных исчислениях [Генцен]. С нашей точки зрения, перечисленные логические методы являются не более, чем методами проверки формул на общезначимость и выполнимость. В то же время, традиционно под логическим выводом подразумевается возможность выведения некоторой формулы из некоторого (возможно, пустого) множества посылок, что достигается только лишь в аксиоматических и натуральных исчислениях. Исчисления последнего вида особенно интенсивно исследуются на предмет автоматического поиска в них вывода в конце 80-х – начале 90-х гг. ХХ века. Так, Дж. Поллок [Pollock] предложил программу поиска натурального вывода OSCAR в классической логике предикатов (а также в некоторых неклассических логиках) с использованием сколемовских термов. Он показал, что OSCAR работает в 40 раз эффективнее программы OTTER [Pollock], основанной на методе резолюций. С другой стороны, круг логических проблем, которые решает OSCAR, шире, чем аналогичный круг для OTTER. Дж. Поллоком была выдвинута также гипотеза, что OSCAR обладает свойством семантической полноты, т.е. что OSCAR может найти вывод любой общезначимой формулы классической логики предикатов. Д. Пеллетье [Pelletier] предложил программу поиска натурального вывода Thinker в классической логике предикатов (а также в некоторых неклассических логиках) с предикатом равенства. Показывается, что Thinker решает 75 тестовых проблем для произвольного алгоритма поиска вывода в классической логике предикатов с предикатом равенства. Thinker не обладает свойством семантической полноты, поскольку количество переменных, которые используются в выводе, заранее ограничено. У. Сиг вместе с Дж. Бернсом [Sieg], [Sieg & Byrnes] предложили программу автоматического поиска натурального вывода CMU PT в классической логике (авторы также рассматривают возможность обобщения программы на неклассические логики). Специфика данного алгоритма состоит в том, что натуральный вывод строится не прямым, а косвенным образом. Сначала строится вывод в т.н. промежуточном исчислении, а затем показывается, каким образом можно преобразовать вывод в промежуточном исчислении в натуральный вывод. Авторы показывают, что CMU PT обладает свойством семантической полноты. Д. Ли [Li] предложил программу поиска натурального вывода ANDP в классической логике. Особенно подчеркивая прикладное значение ANDP, Д. Ли дает машинные доказательства некоторых известных проблем математической логики: проблемы остановки машины Тьюринга, проблемы зависимости некоторых аксиом в формализации проективной геометрии и др. Вопрос, обладает ли ANDP свойством семантической полноты, остается открытым. В.А. Бочаров, А.Е. Болотов и А.Е. Горчаков [Болотов и др.] предложили алгоритм поиска натурального вывода Prover для классической логики предикатов. Спецификой Prover является поиск вывода в натуральных исчислениях типа Куайна с использованием абсолютно и относительно ограниченных переменных. В процессе поиска вывода Prover использует также сколемовские термы. Касаясь вопроса о семантической полноте для Prover, авторы предлагают пути решения данной проблемы. Однако доказательства данного факта для Prover предложено не было. Группа исследователей под руководством Н.А. Шанина [Шанин и др.] предложила процедуру поиска натурального вывода типа Генцена в классической логике высказываний. Отличительной особенностью данной процедуры является поиск вывода в секвенциальном исчислении. Затем полученный вывод в секвенциальном исчислении перестраивается в натуральный вывод типа Генцена. Отмечая пионерский характер данной работы (она вышла в 1964 году), подчеркнем, что вопрос о семантической полноте процедуры авторами не ставился, поскольку в формулах, для которых требуется найти натуральный вывод, разрешается использовать не более трех пропозициональных переменных. В значительной степени на работы группы под руководством Н.А. Шанина опирается У. Сиг. Цель и задачи исследования. Целью диссертационного исследования является пересмотр алгоритма поиска натурального вывода типа Куайна в классической логике предикатов первого порядка, предложенного В.А. Бочаровым, А.Е. Болотовым и А.Е. Горчаковым, и доказательство для этого алгоритма теорем о семантической непротиворечивости и семантической полноте. Для достижения данной цели ставятся и решаются следующие задачи: Предложить доказательство теоремы о семантической непротиворечивости для натурального исчисления типа Куайна с механизмом использования в выводе абсолютно и относительно ограниченных переменных. Представить содержательное описание алгоритма поиска вывода в виде Опираясь на вышеупомянутый результат, доказать теорему о семантической Разработать представление линейного алгоритмического вывода в формальных правил поиска вывода. непротиворечивости алгоритма поиска вывода в данном исчислении. натуральных исчислениях типа Куайна в виде древовидной структуры, узлами которой являются не формулы вывода, а особенные конечные последовательности формул вывода (блоки), переход между которыми осуществляется с помощью формальных правил поиска вывода алгоритма. Показать с помощью представления алгоритмического вывода в виде Обосновать возможность прямого (т.е. не с помощью промежуточных древовидной структуры конечность ветвления в произвольном блоке. исчислений) доказательства теоремы о семантической полноте алгоритма поиска натурального вывода. Методологические основы и источники исследования. При решении поставленных задач автор опирался на современный аппарат символической логики. В диссертационной работе использовались формулировки систем натурального вывода, предложенные В.А. Бочаровым, Е.К. Войшвилло, Г. Генценом, Ф. Пеллетье, Дж. Поллоком, В.А. Смирновым и др. В основе описанного в диссертационном исследовании алгоритма поиска вывода лежит алгоритм поиска вывода в классической логике предикатов, предложенный А.Е. Болотовым, В.А. Бочаровым и А.Е. Горчаковым. В процессе использования написанной этими авторами программы возникла необходимость модифицировать данный алгоритм, определенным образом упростить процедуру поиска натурального вывода и четко сформулировать процедуру унификации.

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

Апробация работы. Основные положения и результаты диссертационного исследования докладывались на VI и VII Международных научных конференциях «Современная логика: проблемы теории, истории и применения в науке» (СанктПетербург, 2000 и 2002), IV Международной конференции «Смирновские чтения» (Москва, 2003) и XII Международном конгрессе по логике, философии и методологии науки (Овьедо, 2003). Структура диссертации. Диссертация состоит из Введения, 4-х глав: «Автоматический поиск натурального вывода: история вопроса», «Анализ системы натурального вывода BMV», «Алгоритм поиска вывода в системе BMV» и «Анализ алгоритма поиска вывода в системе BMV», Заключения и Литературы.

Глава 1. Автоматический поиск натурального вывода: история вопроса § 1.1. Натуральный вывод как тип логического вывода Моментом появления натурального вывода (НВ) как одного из типов логического вывода традиционно считается выход в 1934 году статьи Г. Генцена «Исследования логических выводов» [Генцен] и статьи С. Яськовского «Правила введения посылок в формальной логике» [Jaskowski]. В англоязычной литературе системы НВ называются «natural deduction». В отечественной литературе системы НВ иногда называются «естественным выводом». Название таких систем указывает на ту черту, которая отличает НВ от других типов логического вывода: исчислений гильбертовского типа (аксиоматик) и исчислений секвенций. Системы НВ создавались с целью (насколько это возможно) имитировать рассуждения, которые характерны для человеческого мышления, решающего (прежде всего) математическую задачу. Г. Генцен писал: «Я хотел прежде всего построить такой формализм, который был бы как можно ближе к применяющимся в действительности рассуждениям» [Генцен, с. 10]. Далее он определяет свою задачу более точно: «Мы хотим построить формализм, по возможности точно передающий логические заключения, которые в действительности встречаются в математических доказательствах» [Генцен, с. 17]. Созданию С. Яськовским систем НВ способствовало замечание Я. Лукасевича, что «математики строят свои доказательства, используя не аксиоматический метод, а иные способы рассуждения;

главным образом, математики берут «произвольные посылки» и смотрят, что из этих посылок можно вывести» [Pelletier, с. 4]. Данная черта отличает НВ как от аксиоматического метода (вывод в гильбертовских исчислениях страдает громоздкостью и определенной искусственностью, не характерной для естественных рассуждений), так и от исчисления секвенций и непосредственно идущих от метода секвенций методов семантических и аналитических таблиц (для последних двух методов характерен поиск опровержения, а не доказательства). Приведем цитаты, показывающие достоинства НВ перед другими типами логического вывода. «Естественный вывод гораздо более тонкий инструмент, чем семантические таблицы, обладающий большой аналитической силой и легко модифицируемый» [Непейвода, с. 297]. «Наиболее удобным способом ее (логики предикатов – В.Ш.) задания является система натурального вывода» [Ивлев, с. 95]. «Для применения в качестве логического аппарата наиболее удобными (системами исчисления предикатов – В.Ш.) являются натуральные системы (системы натурального вывода)» [Войшвилло, с. 85]. Размышляя о преимуществах натурального вывода перед методом резолюции, Д. Пеллетье пишет: «Я предположил, что представление вывода в виде натурального на самом деле обладает значительными преимуществами с познавательной точкой зрения: такое максимально обобщенное представление позволяет студентам глубже проникнуть в структуру логических проблем» [Pelletier, с. 6]. Характеризуя гильбертовские исчисления, авторы [Смирнов и др., с. 21] пишут: «Сами способы построения и выводов в этих системах в значительной степени не соответствуют естественным способам рассуждений». Характеризуя секвенциальные и аналитико-табличные исчисления, эти же авторы пишут: «Сам стиль осуществления этих процедур во многом перестает носить «естественный» характер, т.е. перестает соответствовать обычным способам рассуждений» [Смирнов и др., с. 21]. «Логическая система может быть задана различными способами: аксиоматически, в виде табличного исчисления и т.д. Не все из них одинаково удобны для анализа выводов. Самые широкие возможности в этом плане открывают секвенциальные исчисления и системы натурального вывода» [Быстров, с. 139]. «Во всех этих приемах (секвенциальные исчисления и метод резолюции – В.Ш.) процедура выведения одних положений из других или вообще не представлена, или осуществляется в таком виде, который весьма далек от того, что понималось под выводом в истории логики. И секвенции, и метод резолюции – это скорее алгоритмы проверки общезначимости утверждений, чем вывод. Все они строятся на основе чисто аналитических процедур, в то время как традиционное понятие вывода представляет собой метод синтеза доказуемого утверждения из имеющихся посылок» [Болотов и др., с. 172]. Из перечисленного можно сделать вывод, что НВ обладает определенными преимуществами перед другими типами логического вывода: удобство и простота, конгениальность естественным рассуждениям и др.

Что касается дедуктивной силы НВ, то, представляя НВ, Г. Генцен конструктивно показал, что в классической логике предикатов НВ дедуктивно эквивалентен исчислению секвенций и гильбертовскому исчислению, т.е. вывод некоторой формулы в одном исчислении можно перестроить в вывод этой же формулы в другом исчислении [Генцен]. Также отметим, что в нашем исследовании используются только системы НВ для классической логики. Поэтому рассмотрение НВ для неклассических логик выходит за рамки нашего исследования. Подробнее о системах НВ для неклассических логик см. [Basin et al]. Возможны различные классификации систем НВ [Pelletier], [Смирнов]. Например, Д. Пеллетье выделяет девять основных пунктов («nine choice points»), по которым можно классифицировать системы НВ. В то же время он признает, что «многообразие систем НВ делает весьма затруднительным выделение необходимых и достаточных признаков, которые позволили бы однозначно назвать некоторую логическую систему натуральным выводом» [Pelletier, с. 11]. Поскольку Д. Пеллетье не упоминает системы НВ, предложенные отечественными учеными, мы будем добавлять их в качестве примеров в соответствующие разделы классификации. Первым основным пунктом является тип представления натурального вывода: 1) 2) в виде дерева (Г. Генцен, Н.А. Шанин, Н.Н. Непейвода);

в виде линейного вывода (С. Яськовский, Ф. Фитч, В.А. Бочаров и В.И. Маркин), где подвыводы обозначаются некоторыми графическими объектами (скобками, квадратными скобками, линиями и др.);

3) 4) в виде линейного вывода (С. Яськовский, У. Куайн), где подвыводы в виде линейного вывода с множеством зависимостей (П. Суппес, обозначаются различными (числовыми) префиксами;

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

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

В данной классификации система НВ, названная NC, с непрямым правилом удаления называется системой НВ первого типа. Второй тип систем НВ (в качестве примера предлагается система NC) содержит в множестве своих правил прямое правило удаления. Ниже мы подробно проанализируем систему NC. В оригинальной системе, предложенной Г. Генценом, имеется непрямое правило удаления : из формулы xA(x) выводима формула С, если формула С выводима из A(a), где a – новая, ранее не встречавшаяся в выводе константа. Таким образом, чтобы получить по такому правилу формулу С из формулы xA(x), необходимо построить вспомогательный вывод (он называется подвыводом) формулы С из формулы A(a). Только после построения такого подвывода можно утверждать, что из формулы xA(x) выводима формула С. По-видимому, первым, кто обратил внимание на неудобство применения этого правила и кто предложил альтернативный вариант удаления, был У. Куайн [Quine]. В статье «On natural deduction» он сформулировал прямое правило удаления : из формулы xA(x) выводима формула A(y), где y – переменная, которая в алфавитном порядке не предшествует ни одной переменной, свободно входящей в xA(x). Формулировка данного правила предполагает наличие некоторого упорядочения всех переменных из алфавита языка классической логики предикатов. Фактически речь идет о линейном порядке, заданном на множестве переменных языка. У. Куайн показывает, что именно такой порядок гарантирует непротиворечивость и полноту предложенной им системы НВ. Однако подход У. Куайна не является единственным. Например, В.А. Смирнов в системе NC предлагает следующую формулировку прямого правила удаления : из формулы xA(x) следует формула A(xA(x)), где xA(x) – это -терм, содержательно трактующийся как неопределенная дескрипция вида «некоторые x, обладающие свойством А» [Смирнов]. Поскольку -термы не являются термами классической логики предикатов, то система NC не эквивалентна системе NC (системе НВ с непрямым правилом удаления, предложенной В.А. Смирновым там же): все, что доказуемо в NC, доказуемо в NC, но обратное неверно.

Однако для NC можно доказать теорему Гильберта об устранении -термов: если в NC можно из (возможно, пустого) множества посылок Г вывести А и Г, А не содержат -термы, то А следует из Г в NC [Смирнов, с. 228], [Мендельсон, с. 111-112]. В.А. Бочаров и В.И. Маркин предлагают вводить абсолютно ограниченные и относительно ограниченные переменных в выводе. Тогда правило удаления запишется следующим образом: из формулы xA(x, z1,…, zn) выводима формула A(y, z1,…, zn), при этом переменная y становится абсолютно ограниченной в выводе переменной, а все переменные z1,…, zn – относительно ограниченными в выводе переменными (z1,…, zn суть все свободные переменные из xA(x)). При этом требуется, чтобы ни одна переменная не была абсолютно ограничена в выводе более одного раза и чтобы ни одна переменная не ограничивала сама себя (непосредственно, т.е. y не входит в z1,…, zn, или по транзитивности, т.е. если x ограничивает y и y ограничивает x, то x ограничивает x). Во второй главе нашей работы показывается, что такой подход гарантирует непротиворечивость этой системы НВ. Мы подробно останавливаемся на системах НВ с прямым правилом удаления, поскольку система BMV (Bocharov, Markin, Voishvillo), алгоритм поиска вывода в которой является предметом нашей работы, – система НВ именно такого типа. С другой стороны, мы останавливаемся подробно на работе с переменными в системах НВ с непрямым правилом удаления, т.к. существуют примеры систем НВ, не корректно работающие с переменными. В англоязычной литературе известна серия публикаций 60-70-х гг. XX века в «The Journal of Symbolic Logic» по поводу системы НВ, предложенной И. Копи (I. Copi). И. Копи публиковал не являющиеся семантически непротиворечивыми системы НВ с прямым правилом удаления [Copi]. Семантическая противоречивость предлагаемых И. Копи систем НВ была установлена Д. Калишем (D. Kalish) [Kalish]. Не является семантически непротиворечивой система НВ, предложенная Е.К. Войшвилло [Войшвилло]. В этой системе доказывается, например, формула y(xA(x, x) zA(y, z)). Данная формула ложна, если в качестве А взять отношение равенства на множестве натуральных чисел.

§ 1.2. История создания систем автоматического поиска вывода В данном параграфе мы даем краткий обзор истории создания систем автоматического поиска вывода. Поскольку неотъемлемой частью создания таких систем является наличие программируемых электронно-вычислительных устройств, в начале данного параграфа приводятся некоторые факты из истории создания ЭВМ. Отметим, что системы автоматического поиска натурального вывода в данном параграфе не рассматриваются. Такие системы будут подробно рассмотрены в следующем параграфе данной главы. Пионером создания вычислительных логических машин (именно логических, т.е. работающих с текстами, а не с цифрами) считается средневековый мыслитель Р. Луллий. Создавая такую машину, Р. Луллий опирался на средневековое представление о науке. Считалось, что во всякой области знания имеется небольшое число исходных понятий, с помощью которых выражаются бесспорные, самоочевидные положения, не нуждающиеся в обосновании. Из комбинаций исходных понятий и представлений возникает знание. В обладании этими комбинациями и тем, что из них вытекает, заключается подлинная мудрость. Таким образом, логическая машина должна была служить инструментом для порождения таких комбинаций. Построенные Р. Луллием многочисленные модели такой машины не заменяли деятельность человека. Человек был необходим для интерпретации понятийных комбинаций и получения, таким образом, окончательного знания. Отметим, что в своих машинах Р. Луллию удалось реализовать одну из важнейших функций вычислительных машин – перебор вариантов. В 1834 году Ч. Бэббидж сконструировал цифровое счетное устройство. Особенностью этой машины была способность выполнять инструкции, считываемые с перфокарт. В 1842 году А. Лавлейс сделала описание работы аналитической машины Бэббиджа и составила первую программу для нее. В дальнейшем стали создаваться машины, совершенствующие модель Бэббиджа. В 1855 году Дж. и Э. Шутц, базируясь на работах Ч. Бэббиджа, построили свою механическую вычислительную машину. В 1869 году У.С. Джевонс, используя результаты Дж. Буля, построил усовершенствованную модель этой машины. В году Г. Холлерит создал первую электромеханическую вычислительную машину и основал фирму, которая впоследствии превратилась в корпорацию IBM. Промежуток времени между двумя мировыми войнами считается сегодня периодом рождения первого компьютера. В 1927 году в Массачусетском технологическом институте был изобретен аналоговый компьютер. В 1937 году Дж. Стибитц построил первую вычислительную машину на основе двоичной системы счисления. В 1938-41 гг. К. Цузе предложил несколько моделей (Z1, Z2 и Z3) своей механической программируемой цифровой машины. Модель Z1 иногда называют первым в мире компьютером. В 1942 году в Университете штата Айова Дж. Атанасов и К. Берри создают первый в США электронный цифровой компьютер. В России созданием «умных» машин занимались П.Д. Хрущов и А.Н. Щукарев. Создание вычислительных машин активно велось в советское время. Появление первого компьютера открыло путь для развития механизируемых исчислений. В 50-е годы XX века были созданы две компьютерные программы, которые заложили два основных направления в области автоматического поиска доказательства. Первая программа была создана М. Дэвисом на ламповом компьютере "Johniac". Эта программа могла доказать, что сумма двух четных чисел является четным числом – первое в истории доказательство математического утверждения, генерированное компьютером. Вторая программа, которая могла доказывать ряд предложений из "Principia Mathematica" Б. Рассела и А.Н. Уайтхеда, была создана А. Невелом, Дж. К. Шоу и Г. Саймоном. Эта программа ориентировалась на человеческий способ рассуждений, пытаясь симулировать общие эвристические подходы и психологические моменты мышления. В 1956 году результаты этой работы были доложены на конференции в Дартмаунте, которую считают местом рождения нового раздела компьютеристики – исследований по искусственному интеллекту. На этой конференции разгорелась дискуссия: необходимо ли пытаться реализовывать на вычислительных машинах процедуры вывода, формулируемые математической логикой, или, следуя А. Невелу, Дж. К. Шоу и Г. Саймону, симулировать человеческие эвристики.

В 1961 году М. Минский подвел итог этой дискуссии: «Кажется ясно, что программа решения реальных математических проблем должна комбинировать математические рассуждения... с эвристическими рассуждениями Невела, Шоу и Саймона». В 1958-63 гг. Х. Ван предложил несколько версий своей первой логикоориентированной программы фирмы IBM по автоматическому доказательству. Это был большой шаг вперед: его программа могла доказывать около 350 предложений «Principia Mathematica» для чистого исчисления предикатов с равенством. В 1954 году А. Робинсон предложил рассматривать точки, линии и окружности, которые нужно строить для решения геометрических проблем, как элементы так называемого Эрбрановского универсума и переходить при доказательстве геометрических утверждений к алгебраическим методам. Одной из первых программ, реализовавших эту идею, была программа М. Дэвиса и Х. Патнем. Она состояла из двух частей: первая часть программы генерировала Эрбрановский универсум и делала соответствующие подстановки в формулы, вторая – оценивала эти формулы. Основная проблема, которая возникла перед авторами, заключалась в несистематичности подстановок. В 1960 году эту проблему решил Д. Правиц посредством механизма, названного унификацией. Позже был предложен унифицирующий алгоритм. Независимо от этого над доказательствами математических утверждений в национальной лаборатории Аргонны работали Д. Карсон, Дж. Робинсон и Л. Уос. Ученые поставили перед собой задачу разработать такой принцип, в котором бы объединились различные методы в одно общее логическое правило. В 1963-1965 гг. такое правило было найдено, и Дж. Робинсон публикует свою работу "A machine oriented logic, based on the resolution principle" [Robinson]. С тех пор метод резолюции прочно вошел в практически любую образовательную программу по логике и информатике. Однако скоро стало ясно, что сам по себе метод резолюции не дает алгоритма поиска доказательства. Поэтому возникли два больших направления с соответствующими школами, которые проходят сквозь всю историю теории автоматического поиска доказательства.

В то время как первое направление, самое большое по числу представителей, продолжало отстаивать и совершенствовать метод резолюции, второе направление видело своей задачей имитировать эвристические методы применяемые «человеческими» математиками. К первому лагерю принадлежали ученые национальной лаборатории Аргонны под руководством Л. Уоса и группа под руководством Б. Мелтцера в университете Эдинбурга. В 1965-75 гг. они предложили десятки усовершенствованных стратегий поиска вывода. Другим предметом исследований этого направления было само правило резолюции. Вскоре оказалось, что оно не всегда является удобным, и были предложены другие правила вывода, например, гиперрезолюция. Исследовались также возможности представления метода резолюций в виде графоориентированной процедуры. Так, основная структура данных – множество дизъюнктов – пополнялась дополнительной информацией, например, представлением возможных шагов в виде графа. Следующим результатом этого направления оказался матричный метод, который разрабатывался независимо друг от друга П. Андреусом в Карнеги-Меллон университете и В. Бибелем в университете Мюнхена. Если предыдущие методы еще сохраняли некоторую аналогию с человеческими рассуждениями в виде пошаговой выводимости, то матричная процедура отказывается от этой логической традиции и является полностью машинноориентированной. Поиск доказательства протекает в определенной структуре данных, так называемой матрице, и найденное доказательство не имеет ничего общего с обычным пониманием этой процедуры. Представители второго лагеря критически относились к такой механизации дедуктивных систем, в особенности М. Минский из Массачусетского института технологий. Основной аргумент заключался в том, что единственного метода никогда не будет достаточно для того, чтобы описать и реализовать интеллект. Для этой цели нужно использовать много других компонент. Жесткая конкуренция этих двух направлений оказалась весьма плодотворной как для развития всей сферы искусственного интеллекта, так и каждого из них в частности. Особенный импульс был придан второму направлению. В 60-е годы XX века Л.М. Нортон предложил эвристический прувер для теории групп, а А. Невинс – алгоритм, разрабатываемый на базе «человекоориентированной логики». Результаты данных программ оказались не достижимыми для резолюционных процедур того времени. Здесь можно отметить работу исследователей университета Техаса, развивавших специализированные методы доказательства для конкретных областей математики. На сегодняшний день наиболее эффективными остаются пока системы автоматического поиска доказательства, основанные на единообразном методе резолюций. Их эффективность подкрепляется темпами развития электронной техники. И если вначале относительно сложные теоремы доказывались исключительно специальными процедурами, то в дальнейшем становилось возможным получать их доказательство посредством единой резолюционной системы. Наиболее результативными в этой области являются группы, работающие в национальной лаборатории Аргонны, Остине, Карлсруе и Кайзерслаутерна. Однако в последнее время наметилась тенденция синтеза различных методов в единой программной оболочке, что позволяет сгладить недостатки отдельных методов. Такую стратегию приняли разработчики наиболее успешной системы OTTER (лаборатория Аргонны). Системы автоматического поиска доказательства долгое время считались эзотерической областью знания. Однако в последнее время появился ряд сфер применения результатов, достигнутых в этой области: развитие программного и аппаратного обеспечения;

становление дедуктивных баз данных. Другими областями, диктующими необходимость совершенствования методов автоматического доказательства, являются компьютерная алгебра, а также некоторые аспекты тестирования программ. В этот ряд можно включить экспертные системы, робототехнику и другие направления. Системы доказательства теорем разбиваются на два больших лагеря. Первый лагерь – это системы интерактивного доказательства теорем (proof checker), другое название этих систем – редакторы доказательств. Это системы, которые под своим контролем дают возможность пользователю строить доказательство. Они в большинстве своем основываются на теории типов (часто с зависимыми типами) и на системах правил заключения. При этом правила вывода обычно охватывают систему натурального вывода типа Генцена и зависят от желаемого поля применения. Шаги доказательства проверяются системой на применимость и корректность. Таким образом достигается уверенность, что в системе могут быть построены только корректные доказательства. Примером редактора доказательств является система AUTOMATH, которая создана для проверки математических доказательств. В этой системе доказывается значительная часть теорем из чистой математики. Однако запись доказательств в AUTOMATH, как правило, в 10-20 раз длиннее, чем в естественном языке. Из отечественных работ можно привести программу DEDUCTIO, разработанную А.В. Смирновым при участии А.Е. Новодворского [Смирнов-мл]. Эта программа позволяет работать не только с одной стандартной логической системой, но и делать выбор из довольно широкого списка известных систем. Программа предоставляет также пользователю возможность описать некоторую собственную систему, после чего она автоматически начинает ее поддерживать. Построение интерактивного доказательства можно сократить, если объединить многие шаги в так называемые тактики. Для этого предлагаются языки программирования, с помощью которых создаются редакторы доказательств. Такие системы были названы тактическими редакторами доказательств (например, система NuPRL). Высказывается предположение, что с развитием более сильных тактик возможно достижение высокого уровня автоматизации. Ко второму лагерю относятся автоматические генераторы доказательств (automated prover). В отличие от редакторов доказательств, в которых пользователь сам строит доказательство, роль пользователя в автоматических генераторах доказательств сводится к постановке задания системе – доказать теорему. Далее система работает до тех пор, пока не найдено доказательство или не выполнится критерий, обрывающий работу системы. В качестве такого критерия стараются привести построение контрмодели для доказываемого утверждения. Разработки программ в области автоматической дедукции проводятся в целом ряде крупных мировых научно-исследовательских центров. В национальной лаборатории Аргонны создана программа OTTER, основанная на теории резолюций. OTTER является последним продуктом в цепи систем (AURA, ITP), которые были созданы под руководством Л. Уoca. Программа создана для поиска доказательств для классической логики предикатов первого порядка с равенством, написана на языке С, занимает примерно 180 Кб и способна оперировать большим количеством дизъюнктов (миллиардами), что показывает ее высокую эффективность. В Кембридже создана программа автоматической дедукции Isabelle. В КарнегиМеллон университете создана программа для автоматического доказательства теорем для логики высоких порядков. В лаборатории KAKEHI и Университете WASEDA создана программа автоматического доказательства для секвенциального исчисления В отечественной науке подобные программы начали создаваться также достаточно давно. В 60-е годы XX века под руководством Шанина Н.А. разработан алгоритм машинного поиска логического вывода [Шанин и др.]. Программа, реализованная по этому алгоритму, ищет вывод в классическом секвенциальном исчислении высказываний и перерабатывает его далее в натуральный вид. Все рассмотренные процедуры автоматического поиска доказательств обычно строятся либо на базе секвенциальных исчислений и теории резолюций, либо на некотором аппарате, который в той или иной мере близок к данным представлениям логики. Надо отметить, что концентрация внимания исследователей в области автоматического вывода на этих популярных дедуктивных методах не случайна и обусловлена, в первую очередь, практическими соображениями. Так, например, исследования в области теории резолюций тесно связаны с языками логического программирования (в частности, типа Пролог), где выводы основаны на методе резолюций, который изначально являлся составной частью Пролога [Братко]. Еще одной причиной такой ситуации является факт достаточно успешного практического применения неклассических логик в рамках различных проектов тестирования аппаратных средств [Bochmann], нередко спонсирующихся ведущими производителями таких средств (например, Intel). На сегодняшний день самым распространенным и эффективным методом в данной области является метод тестирования моделей. В данном методе для описания моделей аппаратных средств используется дедуктивный аппарат, чаще всего основанный на модальной или временной логике, семантика для которых чаще всего строится в форме аналитических таблиц [Bochmann], [Bolotov & Fisher].

§ 1.3. Автоматический поиск вывода в натуральном исчислении В данном параграфе мы анализируем алгоритмы поиска натурального вывода, выявляем сильные и слабые стороны данных программ. В силу огромного количества предложенных систем натурального вывода, данная выборка не претендует на полноту и всесторонний охват всех систем поиска натурального вывода (даже в классической логике высказываний). Поэтому отсутствие какой-либо работы по данной теме в нашем обзоре ни в коем случае не характеризует эту работу отрицательным образом. Анализ работ будет зафиксирован в следующей таблице, в верхней строке которой будут перечислены следующие алгоритмы поиска натурального вывода в классической первопорядковой логике: 1) программа THINKER, разработанная Д. Пеллетье (J. Pelletier) [Pelletier];

2) программа OSCAR, разработанная Дж. Поллоком (J. Pollock) [Pollock];

3) программа ANDP (Automated Natural Deduction Prover), разработанная Д. Ли (D. Li) [Li];

4) программа CMU PT (Carnegie Mellon University Proof Tutor), разработанная У. Сигом (W. Sieg), Р. Шейнсом (R. Scheines) и Дж. Бернсом (J. Byrnes) [Sieg], [Sieg & Byrnes], [Byrnes];

5) программа Symlog (Symbolic Logic), разработанная Ф. Портораро (F. Portoraro) [Portoraro];

6) программа Prover, разработанная В.А. Бочаровым, А.Е. Болотовым и А.Е. Горчаковым и модифицированная В.О. Шангиным [Болотов и др.], [Болотов и др.1], [Шангин], [Bocharov et al]. В первом столбце таблицы находятся те самые признаки, по отсутствию или наличию которых мы анализируем данные алгоритмы поиска вывода: 1) 2) 3) 4) 5) 6) алгоритм работает с предикатом равенства;

алгоритм работает с эквиваленцией;

алгоритм работает с неклассическими логиками;

множество используемых алгоритмом переменных ограничено;

для алгоритма доказываются теоремы о его свойствах (непротиворечивость, полнота и т.д.);

алгоритм использует сколемовские термы;

7) алгоритм имеет программную реализацию.

Значениями данной таблицы будут символы: + (признак имеется), – (признак отсутствует) и +– (требует доработки).

Thinker 1 2 3 4 5 6 7 = Неклассика Ограничение на переменные Свойства Явная сколемизация Реализация + + + + – – + Oscar – – + – +– + + ANDP – + – – +– – + CMU PT – – + – + + + Symlog – + – – – + + Prover – – + – + – +– Комментарий. Из перечисленных программ только Thinker работает с предикатом равенства. Соответственно, среди предложенных программ только Thinker может построить вывод для всех 75 проблем, предложенных в [Pelletier2], [Pelletier3]. Данный факт неудивителен, поскольку у Thinker и у списка 75 тестовых задач для алгоритма поиска вывода один и тот же автор – Д. Пеллетье. Около половины программ не работают с формулами, содержащими знак эквивалентности. С другой стороны, отметим тривиальность задачи введения в алгоритм дополнительных правил для работы с такими формулами. Безусловным преимуществом алгоритма является возможность работы не только в классической, но и в неклассических логиках. Программа Thinker умеет работать в модальной логике [Pelletier];

программа Oscar – в логике «отменяемых» (defeasible) рассуждений;

программа ANDP – в интуиционистской логике, и, наконец, можно рассматривать работы [Макаров], [Шангин1], [Шангин3] о поиске вывода в интуиционистской логике высказываний как перенесение идей Prover на интуиционистскую логику. Только программа Thinker допускает ограничение (по умолчанию – 20) на количество переменных, которое можно использовать при построении вывода. По желанию пользователя, это количество может меняться. Однако наличие данного ограничения принципиально для поиска вывода. Если множество таких переменных исчерпано (т.е. все n переменных использованы в выводе), то поиск вывода прекращается. В остальных программах поиск вывода потенциально не ограничен. Поэтому иногда возможны ситуации, когда при поиске вывода, например, квантор общности снимается бесконечное количество раз. Строка «Свойства» отмечает разработанность метатеоретических проблем для данных алгоритмов. Например, «+–» столбце для Oscar и ANDP означает: доказано, что данные алгоритмы семантически непротиворечивы, т.е. все, что доказуемо, является логически общезначимым;

и не доказано, что данные алгоритмы семантически полны, т.е. с помощью данных алгоритмов можно доказать все логически общезначимые формулы. Дж. Поллок, автор Oscar, предполагает, что его программа полна в указанном смысле, однако доказательства этого факта пока нет. По разным причинам, метатеоретическая проблематика отсутствует для программ Thinker и Symlog. По словам Ф. Портораро, автора программы Symlog, «мы считаем вопрос о полноте алгоритма второстепенным: во-первых, он слишком далеко отстоит от темы нашего исследования;

во-вторых, он не отвечает задачам алгоритма. Задача нашего алгоритма – предоставлять всестороннюю помощь при построении вывода, а не болезненно строить формальные выводы определенного вида. Поэтому вопрос о полноте нашего алгоритма отходит на второй план и вовсе исчезает тогда, когда алгоритм начинает оказывать помощь при работе с другими формальными системами, например, с арифметикой или теорией множеств» [Portoraro, с. 59]. Мы не можем согласиться с таким подходом, поскольку предоставлять действительно всестороннюю помощь при построении вывода может только алгоритм, для которого доказана теорема о семантической полноте. Что касается Thinker, то данный алгоритм неполон, если учесть вышеуказанное ограничение на количество используемых в выводе переменных: «Очень трудно оценить семантическую полноту программы Thinker потому, что он может прийти к пункту J (остановка алгоритма) в различных случаях;

в том числе и тогда, когда формула является логически общезначимой, Thinker может остановиться, потому что кончатся переменные» [Pelletier, с. 33]. С другой стороны, он пишет, что неясен ответ на вопрос, будет ли Thinker семантически полон, если данное ограничение на количество переменных будет снято.

Теорема о семантической полноте доказана для CMU PT. Предложенный У. Сигом метод (см. также [Sieg], [Sieg & Byrnes], [Byrnes]) заключается в том, что по дереву вывода, которое не является доказательством, можно построить контрмодель для данной формулы или для данной выводимости. Т.е. если формула не доказуема, то найдется (возможно, бесконечный) контрпример, показывающий, что при данных значениях исходная формула принимает значение «ложь». Сходным образом доказана семантическая полнота для Prover. О различиях в указанных подходах подробно говорится в конце данного параграфа. Не все алгоритмы используют в своей работе сколемизацию. Под сколемизацией здесь имеется ввиду явная сколемизация, т.е. добавление в язык логики предикатов особых свободных переменных и предметных функторов, с помощью которых образуется сколемовский терм. Сколемизация осуществляется в Oscar, CMU PT и Symlog. Однако поиск вывод не обязательно предполагает явную сколемизацию. Существуют различные формы неявной сколемизации. Например, Thinker предполагает в процессе поиска вывода использовать т.н. «шаблоны» (templates), которые при окончательном построении вывода превращаются в формулы. Например, снятие с формулы xA(x, y) порождает шаблон A(@, y). Prover также использует неявную сколемизацию, о чем подробно говорится далее. Все алгоритмы имеют программные реализации, доступные в сети Интернет. Имеется пропозициональный фрагмент программной реализации Prover. Что касается кванторного фрагмента Prover, то он находится в стадии разработки. Из данного анализа заметно, что проблема исследований метатеоретических свойств алгоритмов поиска натурального вывода или вообще не ставится, или не решается. Фундаментальными в этом отношении являются работы У. Сига. Именно на них во многом базируется наше исследование. Однако здесь мы отметим те существенные различия, которые лежат между подходом У. Сига и нашим подходом. Во-первых, в диссертационном исследовании исследуется система НВ с прямым правилом удаления (в таких системах НВ заключение в общем случае не является логическим следствием из множества всех неисключенных посылок.) У. Сиг, в свою очередь, работает с системой НВ с непрямым правилом удаления.

Во-вторых, в диссертационном исследовании поиск вывода осуществляется непосредственно в системе НВ, а предложенный У. Сигом алгоритм CMU PT использует для поиска вывода промежуточные, вставочные исчисления (intercalation calculi). По внешнему виду такие исчисления напоминают секвенциальные исчисления. Вывод в таких исчислениях затем перестраивается в натуральный вывод. Таким образом, мы вновь сталкиваемся с ситуацией, которая стимулировала развитие исследований именно по поиску натурального вывода: сначала вывод строится в другом исчислении (которое более благоприятно с точки зрения автоматического поиска вывода), а затем вывод в этом исчислении конструктивно перестраивается в натуральный вывод [Andrews]. Т.е. натуральный вывод в CMU PT строится не в системе натурального вывода, а с помощью промежуточного исчисления. Что касается Prover, то программа строит натуральный вывод именно в системе натурального вывода. Таким образом, наша работа заполняет своеобразную лакуну, которая образовалась в области автоматического поиска НВ.

Глава 2. Анализ системы натурального вывода BMV § 2.1. Формулировка системы BMV Задается алфавит языка L классической логики предикатов: 1. 2. 3. 4. 5. 6. х, у, z, x1, y1, z1, x2,... – бесконечный список индивидных переменных, a, b, c, a1, b1, c1, a2,... – бесконечный список индивидных констант, f, g, h, f1, g1, h1, f2,... – бесконечный список предметно-функциональных констант (функторов) различной местности, Р, Q, R, P1, Q1, R1, P2,... – бесконечный список предикаторных констант (предикаторов) различной местности, &,,, ¬,, – логические символы, (, ),, – технические символы. В дальнейшем буквы,,, 1, 1, 1, 2,… обозначают произвольные индивидные переменные, буквы Ф, Ф1, Ф2,… обозначают произвольные функторы и буквами П, П1, П2,… обозначаются произвольные предикаторы. Определение 2.1.1. Термом является объект, обладающий следующими свойствами: 1. 2. 3. 4. Произвольная индивидная переменная есть терм, Произвольная индивидная константа есть терм, Если Ф – n-местный функтор, а t1, t2,..., tn – термы, то выражение Ф(t1, t2,..., tn) – терм. Ничто иное не является термом. Определение 2.1.2. Формулой является объект, обладающий следующими свойствами: 1. 2. 3. 4. 5. Если П – n-местный предикатор, а t1, t2,..., tn – термы, то выражение П(t1, t2,..., tn) – формула, Если А – формула, то ¬А – формула, Если А и В – формулы, то (А & В), (А В), (А В) – формулы, Если А – формула и – индивидная переменная, то А и А – формулы, Ничто иное не является формулой.

Формулы, определяемые пунктом 1, называются элементарными формулами. Все остальные формулы называются сложными формулами. Буквами А, В, С,… (с индексами и без них) обозначаются произвольные формулы. Зададим несколько стандартных определений, необходимых для формулировки правил исчисления. В выражениях А и А формула А называется областью действия кванторов и, взятых по индивидной переменной. Вхождение индивидной переменной называется связанным, если расположена непосредственно справа от квантора или находится в области действия квантора, взятого по. Остальные вхождения называются свободными. Индивидная переменная является свободной (связанной) в формуле А, если она имеет хотя бы одно свободное (связанное) вхождение в формуле А. Вхождение квантора в выражениях А и А называется вырожденным, если ни одно вхождение переменной не находится в А. Например, вхождение в формулу xyP(y) вырождено. Если некоторое вхождение переменной в А связано двумя или более вхождениями кванторов по, то все эти вхождения кванторов по, кроме самого правого, являются вырожденными [Непейвода, с. 184]. Например, вхождение в формулу xхP(х) вырождено. Пусть t – терм, – индивидная переменная. Тогда выражение вида А(/t) обозначает результат подстановки в формулу А() вместо всех свободных вхождений терма t. Подстановка A(/t) считается правильной, если никакое свободное вхождение не лежит в области действия никакого квантора по каждой переменной, входящей в терм t. Частным случаем выражения А(/t) является выражение A(/), обозначающее правильную подстановку в А переменной вместо переменной. При этом фиксируется множество всех свободных переменных 1,…, n в А и {1,…, n}. Данное выражение обозначается как A(/, 1,…, n). В нижеследующих правилах вывода формула(ы) сверху является необходимым условием применения соответствующего правила (посылками), а формула(ы) снизу – заключением этого правила. Правила введения и исключения пропозициональных связок называются пропозициональными правилами;

правила введения и исключения кванторов называются кванторными правилами. Полужирным начертанием в формулировке некоторых правил выделена большая посылка. Задаются следующие правила системы BMV (BMV-правила):

А, В &в в А&В А АВ В СВ В, ¬В ¬С A(/, 1,…, n) A(, 1,…, n) A(/t) A() – абс.;

1,…, n – огр. В АВ &и А&В А А В, ¬А В А В, А В ¬¬А А A() A(/t) A(, 1,…, n) A(/, 1,…, n) – абс.;

1,…, n – огр. А&В В и в и ¬в ¬и в и в и В правилах в и ¬в формула С является последней неисключенной посылкой (это понятие будет разъяснено ниже). А(/t) и A(/) – результаты правильной подстановки. В правилах в и и запись « – абс.;

1,…, n – огр.» означает, что абсолютно ограничена в выводе и переменная относительно ограничивает в выводе каждую переменную из множества 1,…, n, где {1,…, n} – это множество всех свободных переменных, входящих в посылки данных правил. В дальнейшем мы иногда вместо « относительно ограничена в выводе» будем писать « ограничена», не указывая на ту переменную, которая относительно ограничивает, а вместо « абсолютно ограничена в выводе» – « абсолютна». Переменные, не ограниченные абсолютно в выводе, будут называться неабсолютными. Содержательный смысл понятий «абсолютно ограниченная переменная» и «относительно ограниченная переменная» см. [Бочаров и Маркин, с. 133-134].

Определение 2.1.3. Выводом в системе BMV (ВМV-выводом) называется непустая конечная последовательность формул С1, C2,…, Cn (n 1), удовлетворяющая следующим условиям: 1. 2. каждая формула есть либо посылка, либо получена из предыдущих по одному из BMV-правил;

при применении правил в и ¬в все формулы, начиная с последней неисключенной посылки Сi (1 i n) и вплоть до результата применения данного правила Ci Cj (1 j n) или ¬Сi, исключаются из дальнейших шагов вывода в том смысле, что к ним запрещено применять правила вывода;

3. 4. ни одна индивидная переменная в выводе не ограничивается абсолютно более одного раза;

1 ни одна переменная не ограничивает в выводе сама себя. Выводом формулы В из непустого множества посылок Г называется BMVвывод, в котором множество неисключенных посылок есть Г и последняя формула есть формула В. Доказательством формулы В называется BMV-вывод формулы В из пустого множества неисключенных посылок. Теоремой называется формула, для которой имеется доказательство. Определение 2.1.4. Завершенным ВМV-выводом называется ВМV-вывод, в котором никакая переменная, абсолютно ограниченная в выводе, не встречается свободно посылок. Проанализируем правила системы. Правила для конъюнкции, а также правило введения дизъюнкции, обычны для систем натурального вывода: их можно обнаружить в [Генцен]. Что касается правила для исключения дизъюнкции, то иногда его формулируют в виде правила разбора случаев (р.с.): из A B, A C, B C следует C. Известно, что р.с. сильнее, чем и в том смысле, что, например, в интуиционистской логике можно ни в неисключенных посылках, ни в заключении. Завершенное доказательство есть завершенный ВМV-вывод из пустого множества неисключенных показать с помощью р.с. производность и, но невозможно показать с помощью и производность р.с.. Однако существуют определенные трудности с построением процедуры поиска натурального вывода типа Куайна с правилом р.с. [Макаров]. Что касается правила введения импликации, то специфика этого правила в том, что формула С является последней неисключенной посылкой. Данное требование необходимо для корректности системы. При применении этого правила выводима формула С В и из вывода исключаются все формулы, начиная с формулы С и заканчивая формулой, непосредственно предшествующей формуле С В. Формула исключается из вывода не в том смысле, что она стирается и удаляется, а в том смысле, что к данной формуле не может быть применено ни одно правило вывода. Наличие правила и – чуть ли не обязательное свойство всех систем натурального вывода. Правило ¬и (снятие двойного отрицания) стандартно. Что касается правила введения отрицания, то иногда используют два правила: из В, ¬В следует и из следует С, где – знак противоречия (тождественно ложной формулы) и С – произвольная формула. В нашей системе формула С не произвольна: она является последней неисключенной посылкой, что, опять же, обусловлено требованием корректности системы. Применение этого правила также влечет исключение из вывода всех формул, начиная с формулы С и заканчивая формулой, непосредственно предшествующей формуле ¬С. Кванторные правила исключения квантора общности и введения квантора существования обычны. Специфика нашей системы – в формулировке правила введения квантора общности и правила исключения квантора существования. Пусть yP(y) – формула, причем P – одноместный предикатор. Можно, например, не нарушая требования правильной подстановки, получить из yP(y) по и формулу P(x), затем применить в и получить yP(y). Из yP(y) с помощью правил и, в можно снова получить yP(y) и т.д. Отметим, что в системе BMV такие бесконечные преобразования формул ограничиваются понятием вывода. Однако нам важен тот факт, что такие Иногда пишут «не может абсолютно ограничиваться дважды». При этом Е.К. Войшвилло отмечал, что данное требование можно нарушить без ущерба для корректности, «когда правило в или и вторично применяется для вывода из той же формулы» [Войшвилло, с. 90-91].

преобразования возможны, если не следовать понятию вывода, а следовать только формулировкам в, и и требованию правильной подстановки. Иногда формулировки данных правил не позволяют такие взаимопревращения формул [Войшвилло]. Более того, Дж. Пеллетье вообще не формулирует правила введения квантора общности явным образом. Аналог этого правила имплицитно содержится в формулировке достижимости некоторого подвывода [Pelletier]. Необходимость учета абсолютных и ограниченных переменных обусловлена, как мы далее увидим, требованием, чтобы ни одна переменная не ограничивала в выводе сама себя. У. Куайн, например, явно указывает на наличие абсолютно ограниченных (flagged) переменных и не указывает явно на наличие относительно ограниченных переменных. Однако он задает свободные переменные в алфавитном порядке и требует, чтобы при применении правил и, в новая свободная переменная не предшествовала в алфавитном порядке имеющимся в формуле свободным переменным [Quine]. Именно таким образом У. Куайн избегает самоограничения переменной. Касаясь правил вывода нашего исчисления в целом, отметим их симметричность: каждой логической связке соответствуют хотя бы одно правило исключения и хотя бы одно правило введения. Свойство симметричности правил натурального вывода идет от работ Г. Генцена [Генцен]. См. также [Fitch]. В то же время симметричность правил не является необходимым свойством натурального вывода. Можно указать на системы натурального вывода, где данное свойство не выполняется [Pelletier]. Проанализируем понятие вывода в системе. Требование, чтобы в правилах в, ¬в формула С была последней неисключенной посылкой, обосновывается следующим образом:

n n+1 1 2 А В …. C AC – BMV-правило – в: n – пос. – пос.

В данном выводе мы от вывода формулы С из посылок A, B по правилу в перешли к доказательству формулы A C. Однако такой переход семантически неверен, т.е. из A, B |= C не следует |= A C. Аналогично обосновывается данное требование в формулировке правила ¬в. Обоснование требования не ограничивать абсолютно некоторую переменную более одного раза, а также требований наличия завершенного вывода, можно найти в [Quine, стр. 97-99]. Что касается запрета на самоограничение переменной, которого нет в [Quine], то он обосновывается, например, невозможностью построения завершенного вывода xyA(x, y) из yxA(x, y) [Бочаров и Маркин, с. 136]. Необходимость введения понятия завершенного вывода (доказательства), наряду с понятием вывода (доказательства), является характерным свойством выводов в первопорядковых натуральных исчислениях типа Куайна, где в общем случае заключение не следует из своих посылок: «При незавершенности вывода не обеспечена истинность заключения при истинности посылок» [Войшвилло, с. 94]. Натуральные исчисления типа Куайна [Quine], [Войшвилло], [Бочаров и Маркин], [Ивлев] противопоставляются натуральным исчислениям типа Генцена [Генцен], [Fitch], [Li], не требующим введения понятия завершенного вывода. В качестве примеров приведем завершенный BMV-вывод ¬xP(x) |– x¬P(x).

1 2 3 4 5 ¬xP(x) P(x) xP(x) ¬P(x) x¬P(x) – пос. – в: 2 – ¬в: 1, 3 – в: 4 x – абс. огр Комментарий. Помещаем формулу ¬xP(x) в качестве посылки. Берем другую посылку P(x). Применяя к этой формуле правило в, выводим формулу xP(x). Поскольку формула ¬xP(x) (шаг 1) противоречит формуле xP(x) (шаг 3), на шаге 4 выводим формулу ¬P(x), применяя правило ¬в. Формула ¬P(x) является отрицанием последней неисключенной посылки P(x). При этом все формулы, начиная с формулы P(x) и заканчивая формулой xP(x), исключаются из дальнейших шагов вывода. Применяя к формуле ¬P(x) правило в, выводим формулу x¬P(x). При этом переменная х является абсолютно ограниченной в выводе.

Данная последовательность формул является завершенным выводом формулы x¬P(x) из посылки ¬xP(x), поскольку она является выводом формулы x¬P(x) из посылки ¬xP(x) и абсолютно ограниченная переменная х не входит свободно ни в x¬P(x), ни в ¬xP(x).

§ 2.2. Семантическая непротиворечивость системы BMV Определение 2.2.1. Переменная называется активной (пассивной) в BMVвыводе, если абсолютно ограничена в этом выводе и (не) существует абсолютно ограниченная в этом выводе переменная, которую относительно ограничивает переменная. При применении правила в к формуле А(/, 1,…, n) выводится формула А(), переменная становится абсолютно ограниченной и относительно ограничивает все переменные из 1,…, n. При применении правила и к формуле А() выводится формула А(/, 1,…, n), переменная становится абсолютно ограниченной и относительно ограничивает все переменные из 1,…, n. Построим следующий завершенный вывод xyA(x, y) |– xzA(x, z).

1. xyA(x, y) 2. yA(x, y) 3. A(x, y) 4. zA(x, z) 5. xzA(x, z) – пос. – и: 1;

x – абс. – и : 2 – в: 3;

y – абс., x – отн. – в: В этом выводе переменная x пассивна и переменная y активна, поскольку абсолютно ограниченная переменная y относительно ограничивает другую абсолютно ограниченную переменную x на шаге 4. Лемма 2.2.2. В произвольном BMV-выводе D с непустым множеством М всех абсолютно ограниченных переменных в D найдется переменная : М и не ограничивает относительно в D ни одну переменную из М.2 Доказательство: от противного. Допустим, что в D каждая переменная из М ограничивает относительно некоторую переменную из М.

Техникой доказательства этой леммы мы обязаны В.М. Попову.

Для всякой переменной, пусть [] – это множество всех переменных из М, каждую из которых ограничивает относительно в D, и пусть для всякого непустого множества X переменных (X)min есть переменная из X, которая нестрого предшествует в алфавитном порядке переменных любой переменной из X. Поскольку произвольный BMV-вывод конечен (определение 2.1.3), найдется такое натуральное число n: М есть n-элементное множество. Пусть для определенности n0 есть натуральное число и М есть n0-элементное множество. Рассмотрим последовательность множеств М1, М2, …, Мn0, Mn0+1, определяемую следующим образом: М1 = [(M)min], Mk+1 = [(Mk)min], 1 < k n0. Легко видеть, что все множества М1, М2, …, Мn0, Mn0+1 непусты, а (M1)min, (M2)min, …, (Mn0)min, (Mn0+1)min – это переменные, принадлежащие множеству М. Ясно, что для любого i и для любого j, 1 i < j n0 +1, переменная (Мni)min ограничивает относительно в D переменную (Мnj)min. Отсюда из антирефлексивности и транзитивности отношения «переменная … ограничивает относительно в D переменную …» получаем, что (M1)min, (M2)min, …, (Mn0)min, (Mn0+1)min попарно различны.3 Но все они принадлежат множеству М. Следовательно, множеству М принадлежит не менее n0+1 элементов, что противоречит тому, что М есть n0элементное множество. Значит, допущение неверно, и в произвольном BMV-выводе D некоторая переменная из непустого множества М абсолютно ограниченных переменных в D не ограничивает относительно ни одну переменную из М. Доказано. Лемма 2.2.2 доказана для произвольного BMV-вывода. Поскольку всякий завершенный BMV-вывод есть BMV-вывод, лемма 2.2.2 верна для произвольного завершенного BMV-вывода с непустым множеством абсолютных переменных. По определению вывода в системе BMV, вывод – это непустая конечная последовательность формул, каждая из которых является либо посылкой, либо получена из предыдущих формул по одному из правил вывода системы BMV.

Подробный логический анализ данного отношения проводится в параграфе 3.1 нашего исследования.

Таким образом, важным параметром любого завершенного вывода является число применений в нем правил вывода. Будем обозначать это число посредством q. Из определения вывода следует, что q 0. Специфическим свойством вывода в данном исчислении является наличие в выводе (возможно, пустого) множества абсолютно ограниченных переменных. Будем называть рангом вывода число абсолютно ограниченных переменных данного вывода и обозначать ранг вывода посредством r. Из определения вывода следует, что r 0. Пусть Г – произвольное непустое множество формул языка логики предикатов, тогда из Г логически следует формула В (обозначается записью «Г |= В»), если и только если не существует модели и приписывания значений предметным переменным, при которых каждая формула из Г принимает значение «истина», а формула В – значение «ложь». Лемма 2.2.3. В произвольном завершенном выводе, число применений правил вывода в котором есть q и ранг которого есть r, последняя формула этого вывода семантически следует из множества всех неисключенных в этом выводе посылок. Доказательство. Данная лемма будет доказана методом двойной математической индукции по числу применений правил вывода и по рангу произвольного завершенного вывода. В обосновании данного метода мы следуем [Смирнов, с. 122-123]. Запишем сокращенно данную лемму в виде qrЛ(q, r). Для доказательства этой леммы достаточно доказать три утверждения: (А) Л(0, 0) (Б) m(m n rЛ(m, r)) Л(n+1, 0) (С) r1(r1 r Л(n, r1)) Л(n, r+1) Принцип полной математической индукции имеет вид {A(0) & n[m(m n A(m)) A(n+1)]} nA(n) Пусть A(n) равняется rЛ(n, r), тогда (I) (II) {rЛ(0, r)& n[m(m n rЛ(m, r)) rЛ(n+1, r)]} nrЛ(n, r) {Л(n, 0) & r[r1(r1 r Л(n, r1)) Л(n, r+1)]} rЛ(n, r) Пусть A(r) равняется Л(n, r), тогда покажем, что из (А), (Б), (С), (I) и (II) следует qrЛ(q, r).

1. {Л(0, 0) & r[r1(r1 r Л(0, r1)) Л(0, r+1)]} rЛ(0, r) 2. Л(0, 0) 3. r1(r1 r Л(0, r1)) Л(0, r+1) 4. r(r1(r1 r Л(0, r1)) Л(0, r+1)) 5. Л(0, 0) & r(r1(r1 r Л(0, r1)) Л(0, r+1)) 6. rЛ(0, r) 7. m(m n rЛ(m, r)) Л(n+1, 0) 8. {Л(n+1, 0) & r[r1(r1 r Л(n+1, r1)) Л(n+1, r+1)]} rЛ(n+1, r) 9. r1(r1 r Л(n+1, r1)) Л(n+1, r+1) 10. r(r1(r1 r Л(n+1, r1)) Л(n+1, r+1)) 11. m(m n rЛ(m, r)) rЛ(n+1, r) 12. n(m(m n rЛ(m, r)) rЛ(n+1, r)) 13. {rЛ(0, r)& n[m(m n rЛ(m, r)) rЛ(n+1, r)]} qrЛ(q, r) 14. rЛ(0, r) & n(m(m n rЛ(m, r)) rЛ(n+1, r)) 15. qrЛ(q, r) (II), n = 0 (A) (C), n = 0 в: 3 &в: 2, 4 и: 1, 5 (Б) (II), n = n+1 (C), n = n+1 в: 9 K M, L, (M & L) D |– K D: 7, 8, 10 в: 11 (I) &в: 6, 12 и: 13, Поэтому доказательство леммы сводится к доказательству утверждений (А), (Б) и (С). (А) Л(0, 0): лемма верна для всех завершенных выводов, ранг и число применений правил вывода в которых равны 0. Пусть последовательность формул С1, C2,…, Сt (t 1) есть завершенный вывод, ранг и число применений правил вывода в котором равны 0. Для доказательства Л(0, 0) достаточно показать, что формула Сt семантически следует из множества всех неисключенных посылок в выводе С1, C2,…, Сt. По определению семантического следования, получаем, что {С1, C2,…, Сt} |= Сt. Но множество {С1, C2,…, Сt} есть множество всех неисключенных посылок в выводе С1, C2,…, Сt. Поэтому Сt семантически следует из множества всех неисключенных посылок в выводе С1, C2,…, Сt. Таким образом, имеет место Л(0, 0). (Б) лемма верна для всех завершенных выводов, ранг которых равен 0 и число применений правил вывода в которых равно n+1, в предположении, что лемма верна для всех завершенных выводов любого ранга, число применений правил вывода в которых меньше или равно n. Ранг вывода равен 0, значит, в выводе не применялись правила в, и.

Таким образом, (Б) распадается на 10 случаев по количеству BMV-правил (все BMV-правила, кроме в, и). Последняя формула завершенного вывода получена по правилу &и. Тогда вывод имеет следующий вид: С1, C2,…, Cj,…, Сt, где t > 0, t > j, Сj есть A & Ct и Сt есть В. Вывод С1, C2,…, Cj является завершенным, т.к. в выводе С1, C2,…, Cj,…, Сt не применялись правила в, и. По индуктивному предположению, Г1 |= Cj, где Г1 (Г1 Г) – множество неисключенных посылок из С1, C2,…, Cj и Г – множество неисключенных посылок из С1, C2,…, Cj,…, Сt. Значит, Г1 |= A & B. Учитывая Г1 |= A & B и A & B |= B, получаем Г1 |= B. Отсюда, используя Г1 Г, получаем Г |= B. Подслучай, когда Сj есть Ct & А, рассматривается симметрично. Аналогичным образом рассматриваются еще 4 случая однопосылочных правил: в, ¬и, и и в. Последняя формула завершенного вывода получена по правилу &в. Тогда вывод имеет следующий вид: С1, C2,…, Cj,…, Сi,…, Сt, где t > 1, t > j, t > i, Сj есть A, Ci есть В и Сt есть А & В. Вывод С1, C2,…, Cj является завершенным, т.к. в выводе С1, C2,…, Cj,…, Сi,…, Сt не применялись правила в, и. Вывод С1, C2,…, Ci является завершенным, т.к. в выводе С1, C2,…, Cj,…, Сi,…, Сt не применялись правила в, и. По индуктивному предположению, Г1 |= Cj, где Г1 (Г1 Г) – множество неисключенных посылок из С1, C2,…, Cj и Г – множество неисключенных посылок из С1, C2,…, Cj,…, Сi,…, Сt. Значит, Г1 |= A. По индуктивному предположению, Г2 |= Ci, где Г2 (Г2 Г) – множество неисключенных посылок из С1, C2,…, Ci и Г – множество неисключенных посылок из С1, C2,…, Cj,…, Сi,…, Сt. Значит, Г2 |= B. Учитывая Г1 |= A, Г2 |= В и A, B |= А & B, получаем Г1, Г2 |= А & B. Отсюда, используя Г1 Г и Г2 Г, получаем Г |= А & B.

Аналогичным образом рассматриваются еще 2 случая однопосылочных правил: и и и. Последняя формула завершенного вывода получена по правилу ¬в. Тогда вывод имеет следующий вид: С1, C2,…, Сh,…, Cj,…, Сi,…, Сt, где t > 2, t > j, t > i, t > h, Сj есть D, Ci есть ¬D и Сt есть ¬Ch, где Ch есть последняя неисключенная посылка в выводе. Вывод С1, C2,…, Cj является завершенным, т.к. в С1, C2,…, Сh,…, Cj,…, Сi,…, Сt не применялись правила в, и. Вывод С1, C2,…, Ci является завершенным, т.к. в С1, C2,…, Сh,…, Cj,…, Сi,…, Сt не применялись правила в, и. По индуктивному предположению, Г1 |= Cj, где Г1 (Г1 Г) – множество неисключенных посылок из С1, C2,…, Cj и Г – множество неисключенных посылок из С1, C2,…, Сh,…, Cj,…, Сi,…, Сt. Значит, Г1 |= D. Отсюда Г1, Сh |= D. По индуктивному предположению, Г2 |= Ci, где Г2 (Г2 Г) – множество неисключенных посылок из С1, C2,…, Ci и Г – множество неисключенных посылок из С1, C2,…, Сh,…, Cj,…, Сi,…, Сt. Значит, Г2 |= ¬D. Отсюда Г2, Сh |= ¬D. Учитывая Г1, Сh |= D и Г2, Сh |= ¬D, получаем Г1, Г2 |= ¬Сh. Отсюда, используя Г1 Г и Г2 Г, получаем Г |= Сt. Последняя формула завершенного вывода получена по правилу в. Тогда вывод имеет следующий вид: С1, C2,…, Ch,…, Cj,…, Сt, где t > 2, t > h, t > j, Сt есть Ch Cj, где Ch есть последняя неисключенная посылка в выводе. Вывод С1, C2,…, Cj является завершенным, т.к. в выводе С1, C2,…, Cj,…, Сt не применялись правила в, и. По индуктивному предположению, Г1 |= Cj, где Г1 (Г1 Г) – множество неисключенных посылок из С1, C2,…, Cj и Г – множество неисключенных посылок из С1, C2,…, Cj,…, Сt. Значит, Г1 |= Сj. Отсюда Г1, Ch |= Сj. Из Г1, Ch |= Сj получаем Г1 |= Ch Cj. Отсюда, используя Г1 Г, получаем Г |= Ch Cj. Таким образом, имеет место m(m n rЛ(m, r)) Л(n+1, 0). (С) лемма верна для всех завершенных выводов, ранг которых равен r+1 и число применений правил вывода в которых равно n, в предположении, что лемма верна для всех завершенных выводов, ранг которых меньше или равен r и число применений правил вывода в которых равно n. Т.е. докажем rЛ(n, r+1) в предположении, что r1(r1 r Л(n, r1)). Пусть имеется завершенный вывод Д с n+1 количеством абсолютно ограниченных переменных и {1, 2, …, n+1} – множество (n 1) абсолютно ограниченных переменных в этом выводе. По лемме 2.2.2, среди {1, 2, …, n+1} найдется пассивная переменная i, 1 i n+1. Если в Д несколько пассивных переменных, то мы выбираем первую (сверху вниз) из них. Тогда (С) разбивается на 2 случая: С1. Пассивная переменная i абсолютно ограничена по правилу в. С2. Пассивная переменная i абсолютно ограничена по правилу и. Тогда вывод Д может принять один из двух видов:

Г … h. C(i) … k. C() … В – в: h;

i – абс. огр. или Г … h. C() … k. C(i) … В – и: h;

i – абс. огр.

Построим следующий вывод Д*, который будет отличаться от предыдущего только наличием посылки 0 вида К М, где К – формула, находящаяся на шаге h в выводе Д, и М – формула, находящаяся на шаге k в выводе Д. Тогда вывод Д* может принять один из двух видов:

0. C(i) C() Г … h. C(i) … k. C() … В – и: 0, h или – пос. 0. C() C(i) Г … h. C() … k. C(i) … В – и: 0, h – пос.

В Д* i не является абсолютно ограниченной переменной, т.к. формула C() или C(i), которая находится на шаге k, получена по правилу и. Д* является завершенным, т.к. • • ни одна переменная из {1, 2, …, n+1} не входит свободно ни в Г, ни в из {1, 2, …, n+1} только i входит свободно в посылку, находящуюся на формулу В (поскольку Д – это завершенный вывод);

шаге 0 (поскольку i пассивна). Поскольку Д* завершен, в Д* n абсолютно ограниченных переменных (i не является абсолютно ограниченной переменной в Д*) и число применений правил вывода в Д* равно числу применений правил вывода в Д, по индуктивному предположению, 0, Г |= В, т.е. C(i) C(), Г |= В или C() C(i), Г |= В. Из Г, C(i) C() |= В следует, что Г, i(C(i) C()) |= В, или Из Г, C() C(i) |= В следует, что Г, i(C() C(i)) |= В. Согласно формулировке правил в, и, переменная i не входит свободно ни в C(), ни в C(), значит, |= i(C(i) C()) или |= i(C() C(i)). Из Г, i(C(i) C()) |= В и |= i(C(i) C()) следует Г |= В или Из Г, i(C() C(i)) |= В и |= i(C() C(i)) следует Г |= В. Таким образом, имеет место r1(r1 r Л(n, r1)) Л(n, r+1). Доказано. Теорема 2.2.4. Система BMV семантически непротиворечива. Доказательство. Следует из леммы 2.2.3. Доказано.

Глава 3. Алгоритм поиска вывода в системе BMV § 3.1. Изменение формулировки системы BMV В целях эффективности автоматического поиска вывода добавим к BMVправилам следующие правила исключения логических связок:

¬и ¬A() ¬A() ¬и ¬(А В) ¬А ¬(А В) ¬В Несложно показать, что данные правила производны: их добавление не влияет на множество теорем исчисления. Теперь объясним необходимость введения именно таких правил. Отсутствие этих правил приводит к следующим затруднениям [Болотов и др.]. Пусть (ситуация «а») в алгоритме необходимо доказать формулу А В, но в выводе нет ни А, ни В. Тогда (ситуация «б») в качестве последней посылки в последовательность вывода помещается ¬(А В) и теперь необходимо получить не формулу А В, а противоречие в выводе. Допустим, что противоречие не получено (и вывод, следовательно, не построен). Значит, (ситуация «в») алгоритм использует формулу ¬(А В) в качестве источника для взятия целей и теперь необходимо получить А В снова, т.е. алгоритм возвращается к ситуации «а». Значит, в работе алгоритма имеет место цикл. Во избежании цикла авторы предлагают переходить от ситуации «б» к ситуации «в» только, если этим двум ситуациям не предшествовала ситуация «а», т.е. формула ¬(А В) не была помещена в качестве последней посылки тогда, когда необходимо было получить А В. В противном случае от ситуации «б» алгоритм переходит не к ситуации «в», а к ситуации «в1»: происходит «выход из алгоритма» и обосновывается выводимость формул ¬А, ¬В из ¬(А В). Т.к. алгоритм всегда построит вывод формул ¬А, ¬В из формулы ¬(А В), отмечается, что формула ¬(А В) не может быть источником для взятия целей и не возникнет необходимости получать А В. Т.е. от ситуации «в1» алгоритм не перейдет к ситуации «а».

Таким образом, цикл в работе алгоритма ликвидирован. Нетрудно видеть, что выводимость формул ¬А, ¬В из ¬(А В) в ситуации «в1» есть ничто иное, как вводимое сейчас в системы правило ¬и. Что касается правила ¬и, то объяснение необходимости данного правила сходно с объяснением необходимости правила ¬и, учитывая аналогию между и. Еще раз обращаем внимание, что может быть построен алгоритм поиска вывода в BMV без правил ¬и, ¬и [Болотов и др.], [Болотов и др.1]. Однако введение этих правил облегчает поиск вывода. Другими словами, вместо того чтобы переходить от ситуации «а» к ситуациям «в» или «в1», если в выводе имеется формула ¬(А В) или ¬А(), мы предлагаем применять к этим формулам, соответственно, правило ¬и или ¬и. Теперь рассмотрим правила в и и, т.е. те правила системы, которые приводят к появлению в выводе абсолютных переменных.

в A(/, 1,…, n) A(, 1,…, n) – абс.;

1,…, n – огр. и A(, 1,…, n) A(/, 1,…, n) – абс.;

1,…, n – огр.

В формулировке в и и переменные 1,…, n суть все свободные переменные, соответственно, из A(, 1,…, n) и A(, 1,…, n). Отметим, что не может принадлежать {1,…, n}, т.к., согласно определению BMV-вывода, ни одна переменная не может ограничивать сама себя (Определение 2.1.3). Покажем, что система BMV неявно использует сколемовские функции в правилах в, и. (Явно сколемовские термы используются при формулировке правила и в системе натурального вывода, предложенной Е.К. Войшвилло [Войшвилло], т.е. в той системе, модификацией которой является BMV.) Приведем вариант записи данных правил с использованием сколемовских функций, 1 и т.д. [Мендельсон, с. 111]: в: из А(/(1,…, n)) выводима А;

и: из А выводима А(/(1,…, n)), где – новая сколемовская функция, 1,…, n – все свободные переменные в А и в А. При этом нульместные сколемовские функции обозначаются константами a, b и т.д. Например, результатом сколемизации формулы vwxyz(Q(v, w, y, z) P(f(x, y), g(z))) будет Q(a, w, y, 1(w, y)) P(f((w), y), g(1(w, y))).

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

сколемовский вариант А(/(1,…, n)), где – новая функция, если n > 0;

A(/a), где a – новая константа, если n = 0 вариант BMV A(/, 1,…, n), где – абс., 1,…, n – отн., если n > 0;

A(/), где – абс., если n = В обоих вариантах множество {1,…, n} совпадает. Подстановка везде правильна. Различия заключаются в следующем: (1) вариант BMV не использует функторы для образования сколемовского терма;

(2) в случае n = 0 сколемовский вариант использует константы, а вариант BMV – абсолютные переменные. Более того, сколемовский вариант требует, чтобы константы и функторы были новыми, а вариант BMV не требует, чтобы абсолютные переменные были новыми. Данные различия исчезают, если отметить содержательную трактовку (полностью верную для правила и и частично верную для правила в) абсолютной переменной как константы, обозначающей некий объект, для которого выполняется А в записи A(/, 1,…, n) или A(/): «Переменная в этом случае … абсолютно ограничена в том смысле, что должна теперь рассматриваться как имя какого-то вполне определенного объекта, удовлетворяющего условию А» [Бочаров и Маркин, с. 133]. Таким образом, везде, где в сколемовском варианте используются константы, вариант BMV использует абсолютные переменные, ведущие себя как константы. Значит, второе различие устраняется. Что же касается первого различия в записях A(/, 1,…, n) и А(/(1,…, n)), то содержательно они обозначают одно и тоже: выбор значения для объекта, обозначенного в одном случае как « – абс., 1,…, n – отн.», а в другом – как «(1,…, n)», ограничивает значения для остальных свободных переменных 1,…, n. Требованию в сколемовском варианте, чтобы сколемовская функция или константа была новой, соответствует требование в варианте BMV, что в BMV-выводе ни одна переменная не может быть абсолютно ограничена дважды (более одного раза). Таким образом, на самом деле при каждом применении в, и используется новая переменная.

Итак, анализ показал, что в системе BMV неявным образом используется сколемизация. Значит, при задании процедуры поиска вывода в нашей системе можно обойтись без введения сколемовских термов. Специфика нашей системы – наличие абсолютных переменных, содержательно трактующихся как константы, а не как переменные, а также наличие условий корректного использования таких переменных. Применительно к процедуре унификации, которая будет описана ниже, это означает, что абсолютные переменные наряду с константами не подлежат замене на другие термы, или, другими словами, подстановка термов происходит только вместо неабсолютных переменных. Другой важной проблемой при поиске вывода является отслеживание переменных, которые ограничивают сами себя (непосредственно или по транзитивности). Проиллюстрируем необходимость запрета на самоограничение переменной примерами из [Бочаров и Маркин, с. 135]: именно данный запрет, а не требование правильной подстановки не позволяет вывести в системе из A(y, y) формулу xA(x, y) и из xB(x, y) формулу B(y, y). Отмечается, что «при таком переходе переменная y ограничивает сама себя». Далее авторы пишут: «Надо только учитывать, что ситуация, когда переменная ограничивает сама себя, может возникнуть не только прямым образом, как это было в приведенных примерах, но и косвенно. Здесь имеется в виду то обстоятельство, что отношение «x ограничивает y» является транзитивным, то есть для него верно соотношение: «если ограничивает, а ограничивает, то ограничивает ». В силу этого в системе не проходит доказательство формулы xyP(x, y) yxP(x, y). Пусть запись < означает, что переменная абсолютно ограничена и переменная ограничена относительно переменной. Т.е. при применении правила в или и по переменной была относительно ограничена переменная, входящая свободно в формулу A() или A(). Свойства отношения ограничения на множестве переменных задаются двумя аксиомами: ¬( < ) – иррефлексивность: ни одна переменная не ограничивает сама себя;

((( < ) & ( < )) ( < )) – транзитивность: если ограничивает и ограничивает, то ограничивает. Таким образом, отношение ограничения есть отношение строгого (частичного) порядка. Заметим, что теория строгого порядка разрешима. Поскольку в конечном выводе (доказательстве) мы имеем дело только с конечным числом абсолютно и относительно ограниченных переменных, разрешимость теории строго порядка позволяет за конечное число шагов определить, ограничивает ли произвольная переменная в произвольном BMV-выводе сама себя.

§ 3.2. Унификация Введем основные определения, следуя [Чень и Ли]. Особенность нижеследующего алгоритма унификации – работа с абсолютными и неабсолютными переменными, а также работа с множествами ограниченных переменных. Поскольку семантически абсолютные переменные сходны с константами, алгоритм, например, запрещает подстановку одной абсолютной переменной вместо другой абсолютной переменной. Определение 3.2.1. Подстановка – это конечное множество вида {1/t1, …, n/tn}, где 1. 2. 3. каждая i – неабсолютная переменная, каждый ti – терм, отличный от i, все i различны. Свойство 1 говорит, что подстановка заменяет только вхождения неабсолютных переменных и не заменяет вхождения абсолютных переменных, констант, предметных функторов, предикаторов и логических связок и кванторов. Свойство 2 исключает подстановку неабсолютной переменной вместо ее самой. Свойство 3 исключает различные варианты подстановки для одной и той же неабсолютной переменной. Пусть = {1/t1, …, n/tn} – подстановка и А – формула. Тогда А – формула, полученная из А заменой одновременно всех вхождений i (1 i n) в А на ti.

Пусть = {1/t1, …, n/tn} и = {1/t*1, …, m/t*m} – две подстановки. Тогда композиция и есть подстановка (°), которая получается из множества {1/t1, …, n/tn, 1/t*1, …, m/t*m} вычеркиванием (1) всех элементов j/tj, для которых tj = j, и (2) всех элементов i/t*i таких, что i {1, …, n}. Свойство (1) отбрасывает подстановки неабсолютной переменной вместо самой себя. Свойство (2) запрещает различные варианты подстановок вместо одной и той же неабсолютной переменной. Композиция, µ. Подстановка накрывает подстановку 1 (обозначается 1), если существует подстановка 2: 1 = °2. Если 1 и 1, то = 1. Определение 3.2.2. Подстановка называется унификатором для множества формул {A1, …, Ak} т.т.т., когда A1 = A2 = … = Ak. Множество формул {A1, …, Ak} унифицируемо, если для этого множества существует унификатор. Например, подстановка = {x/y, z/v}, где x, z – неабсолютные переменные, y, v – абсолютные переменные, в формулы A(x, v) и A(y, z) приводит к тому, что A(x, v) = A(y, v) = A(y, z). Значит, множество формул {A(x, v) и A(y, z)} унифицируемо. Определение 3.2.3. Унификатор для множества формул {A1, …, Ak} будет наиболее общим унификатором т.т.т., когда для каждого унификатора для этого множества существует такая подстановка, что = °. Понятие наиболее общего унификатора очень важно в процессе поиска необходимой подстановки. Содержательно нахождение наиболее общего унификатора означает, что каждый возможный унификатор для некоторого множества формул может быть получен с помощью наиболее общего унификатора для этого множества формул. Теперь зададим алгоритм унификации. Отметим, что, согласно нижеследующему описанию алгоритма поиска вывода, унификации подлежат формулы, обладающие одинаковой (подобной) структурой и различающиеся между собою только входящими термами. подстановок ассоциативна. Пустая подстановка есть одновременно и левое и правое тождество, т.е. (°)°µ = °(°µ) и ° = ° для всех, Например, алгоритм не будет стараться унифицировать формулы P(x, y) и Q(x, y), поскольку данные формулы различаются между собою входящими предикаторами. Для целей нашего исследования можно ограничиться унификацией только пар формул. Множество рассогласований D для непустого множества подобных формул {А1, A2} получается выявлением первой (слева) позиции, на которой символы, входящие в формулы А1 и A2, не совпадают, и затем выписыванием из формул А1 и A2 каждого терма, занимающего эту позицию. Множество этих термов есть множество рассогласований в {А1, A2}. Например, для формул А1 = P(x, v) и A2 = P(y, z), где x, z – неабсолютные переменные, y, v – абсолютные переменные, множество рассогласований D есть {x, y}. Поскольку x – неабсолютная переменная и y – абсолютная переменная, то возможна подстановка 1 = {x/y}, которая устраняет множество рассогласований D1 (индекс 1 обозначает по-порядку номер позиции, на которой возникло данное множество рассогласований). Однако 1 не является унификатором для {P(x, v), P(y, z)}, поскольку P(x, v) = P(y, v) P(y, z). Формулы P(y, v) и P(y, z) не совпадают на второй позиции, образуя множество рассогласований D2 = {v, z}. Поскольку z – неабсолютная переменная и v – абсолютная переменная, то возможна подстановка 2 = {z/v}, которая устраняет множество рассогласований D2. Таким образом, унификатором для формул P(x, v) и P(y, z) является композиция подстановок 1°2 = {x/y, z/v}. В процессе унификации возможно появление унификатора (подстановки, унифицирующей две формулы), который является композицией подстановок. Значит, первоначальные формулы, унификация которых является исходной задачей, в процессе поиска унификатора изменяются с помощью новых подстановок. В предыдущем примере из формулы P(x, v) при помощи подстановки {x/y} получили формулу P(y, v), а из формулы P(y, z) при помощи подстановки {z/v} получили формулу P(y, v). Другими словами, если мы обозначим исходную формулу P(x, v) как А0 и исходную формулу P(y, z) как В0, то А1 есть P(y, v) и В1 = В0 = P(y, z). Далее А2 = А1 = P(y, v) и В2 есть P(y, v). Таким образом, А2 = В2, т.е. P(x, v) и P(y, z) унифицируемы.

При этом подстановка {x/y, z/v} – унификатор для формул P(x, v) и P(y, z) – является композицией подстановок {x/y} и {z/v}. Поскольку {A, A} = {A}, мы будем называть множество вида {A, A} одноэлементным. Алгоритм унификации двух подобных формул А и В. Символами /…/ обозначены комментарии Шаг 1. k = 0, Аk = А, Вk = В, k = (пустая подстановка). /Алгоритм берет исходные две формулы А и В, для которых необходимо найти унификатор. Исходным унификатором при этом является пустая подстановка./ Шаг 2. Если ни одна переменная в выводе не ограничивает сама себя, то перейти к шагу 3. Иначе стоп: Ak и Вk не унифицируемы. Выход из алгоритма. /Попытка унифицировать формулы Ak и Вk приводит к появлению в выводе переменной, которая ограничивает сама себя./ Шаг 3. Если {Ak, Вk} – одноэлементное множество, то стоп: k – наиболее общий унификатор для Ak и Вk. /Устранив k множеств рассогласований между формулами A0 и В0 и получив из формулы A0(B0) формулу Аk(Bk), алгоритм добился, что Ak = Bk. Значит, последняя подстановка является наиболее общим унификатором для формул A0 и В0./ Иначе найдем множество рассогласований Dk для формул Ak и Вk. Шаг 4. Если существуют такие элементы k и tk в Dk, что k – неабсолютная переменная, которая не входит в tk, то перейти к шагу 5. /Подстановка, во-первых, осуществляется только вместо неабсолютной переменной и другие термы, а также предикаты и логические связки не подлежат замене. Во-вторых, осуществляя подстановку терма вместо неабсолютной переменной, необходимо следить, чтобы заменяемая переменная не входила в этот терм./ Иначе стоп: формулы Ak и Вk не унифицируемы. Выход из алгоритма. Шаг 5. Пусть k+1 = {k/tk}, Ak+1 = Ak{k/tk} и Вk+1 = Вk{k/tk}. /Осуществляем подстановку k+1 в формулу Ak(Вk) и получаем формулу Ak+1(Вk+1)./ Заметим, что Ak+1 = Ak+1 и Bk+1 = Bk+1. /Это означает, что формула Ak+1(Вk+1) может быть получена из формулы A0(В0) с помощью подстановки k+1 = ((1°2)°3)…°k)), т.е. с помощью композиции k подстановок./ Шаг 6. Присвоить значение k+1 и перейти к шагу 2. Теорема 3.2.4. Вышеприведенный алгоритм конечен и всегда находит наиболее общий унификатор для унифицируемого множества A. Доказательство: наш алгоритм унификации отличается от оригинального алгоритма унификации, предложенного в [Чень и Ли], наличием шага 2, т.е. проверкой наличия переменной, которая ограничивает сама себя. Данная проверка конечна в силу разрешимости теории строго порядка, которая описывает абсолютно и относительно ограниченные переменные в выводе. С другой стороны, данная проверка сужает множество подстановок, допустимых согласно алгоритму унификации в [Чень и Ли]. Поскольку алгоритм унификации в [Чень и Ли] конечен и всегда находит наиболее общий унификатор, наш алгоритм унификации также конечен и всегда находит наиболее общий унификатор. Доказано. Поясним данный алгоритм на примерах. Рассмотрим несложный пример, когда необходимо унифицировать формулы P(x) и P(y), где х – неабсолютная переменная и y – абсолютная переменная. Пусть А есть Р(х) и В есть Р(у). Помещаем эти формулы в алгоритм. Тогда А0 = Р(х) и В0 есть Р(у), k = 0, k = (пустая подстановка) (шаг 1). Допустим, что в вывод не входит переменная, которая ограничивает сама себя (шаг 2). Тогда найдем область рассогласований D0 = {x, y} для формул А0 и В0 (шаг 3). Поскольку неабсолютная переменная х не входит в у, переходим к осуществлению подстановки (шаг 4). Осуществляем подстановку 1 = {х/у} в формулы А0, B0 и получаем формулы А1, B1. Отметим, что А1 = А01 и B1 = B01 (шаг 5). Присвоить параметру k значение 1 и вернуться на шаг 2. Допустим, что в вывод не входит переменная, которая ограничивает сама себя (шаг 2). А1 = P(y) и В1 = P(y). Значит, {A1, B1} одноэлементное множество. Стоп: 1 = {х/у} – наиболее общий унификатор для Р(х) и Р(у) (шаг 2).

Если в вышеприведенном примере переменная x, как и переменная y, является абсолютной, то формулы не унифицируемы, т.к. подстановка = {x/y} невозможна, поскольку в формулах, согласно определению подстановки, замене подлежат только неабсолютные переменные. В таком случае алгоритм унификации остановится и выдаст ответ, что данное множество формул не унифицируемо. Следующий пример иллюстрирует необходимость проверки наличия переменной, которая ограничивает сама себя, для поиска унификатора. Пусть требуется унифицировать формулы P(x1, y1), P(y2, x2), где y1 < x1 и y2 < x2 и х1, х2 суть неабсолютные переменные. Напомним, что yi < xi означает, что переменная yi абсолютна ограничена и xi относительно ограничена. Пусть А есть P(x1, y1) и В есть P(y2, x2). Помещаем эти формулы в алгоритм. Тогда А0 = P(x1, y1) и В0 есть P(y2, x2), k = 0, k = (пустая подстановка) (шаг 1). Поскольку в y1 < x1 и y2 < x2 ни одна переменная не ограничивает сама себя (шаг 2), то найдем область рассогласований D0 = {x1, y2} для формул А0 и В0 (шаг 3). Поскольку неабсолютная переменная х1 не входит в у2, переходим к осуществлению подстановки (шаг 4). Осуществляем подстановку 1 = {х1/у2} в формулы А0, B0 и получаем формулы А1 = P(у2, y1) и B1 = P(y2, x2). Отметим, что А1 = А01 и B1 = B01 (шаг 5). Присвоить параметру k значение 1 и вернуться на шаг 2. Поскольку в y1 < у2 и y2 < x2 ни одна переменная не ограничивает сама себя (шаг 2), то найдем область рассогласований D1 = {у1, х2} для формул А1 и В1 (шаг 3). Поскольку неабсолютная переменная х2 не входит в у1, переходим к осуществлению подстановки (шаг 4). Осуществляем подстановку 2 = {х2/у1} в формулы А1, B1 и получаем формулы А2 = P(у2, y1) и B2 = P(y2, у2). Отметим, что А2 = А12 и B2 = B12 (шаг 5). Присвоить параметру k значение 2 и вернуться на шаг 2. В y1 < у2 и y2 < у1 переменная у1(у2) ограничивает сама себя по транзитивности (шаг 2). Значит, подстановку 2 = {х2/у1} в формулы А1, B1 делать нельзя. Из этого следует, что формулы P(x1, y1), P(y2, x2), где y1 < x1 и y2 < x2 и х1, х2 суть неабсолютные переменные, неунифицируемы.

В заключении отметим, что алгоритм унификации можно задать таким образом, чтобы он унифицировал формулы, отличающиеся между собой только вырожденными вхождениями кванторов, например, xP(x) и yxP(x). Такой алгоритм предполагает упорядоченное переименование всех связанных переменных [Sieg & Byrnes]. Унификация класса формул, отличающихся вхождениями различных связанных переменных (например, xP(x) и yP(y)), требует введения в исчисление BMV правила правильной подстановки. Этого мы не будем делать. См. такой алгоритм унификации в [Sieg & Byrnes], [Li].

§ 3.3. Правила поиска вывода в системе BMV Основная идея нижеследующего алгоритма – построение двух непустых последовательностей. Интуитивно говоря, поиск вывода осуществляется в двух (синтетическом и аналитическом) направлениях.4 С одной стороны, мы стараемся получить необходимую формулу из уже имеющихся в выводе формул.5 С другой стороны, задача поиска вывода необходимой формулы сводится к подзадаче поиска вывода другой формулы таким образом, что успешное решение подзадачи позволяет успешно решить саму задачу.6 Соответственно, те преобразования, с помощью которых алгоритм осуществляет поиск вывода в синтетическом (аналитическом) направлении, мы будем называть синтетическими (аналитическими) правилами поиска вывода. Особо отметим, что в данном контексте «правило» не понимается как преобразование формул в рамках некоторого исчисления (в таком смысле «правило» понимается в Главе 2 нашей работы, где речь идет о формулировке правил системы BMV). Здесь и далее понятие «синтетическое (аналитическое) правило» понимается как некоторая эвристика, позволяющая в процессе поиска вывода выводить новые В англоязычной литературе синтетическое направление называется forward reasoning, а аналитическое направление – backward reasoning, соответственно. 5 «Задачу устранения «дырки» в строящемся выводе можно решать, как говорят, «в лоб», не сводя ее к подзадачам, а просто заполняя пробел, вставляя сверху от знака |– по определенным правилам новые и новые формулы, пока в конце концов не получится искомое заключение. Такой метод поиска вывода можно назвать синтетическим» [Смирнов и др., с. 40]. 6 Однако в процессе поиска вывода наряду с синтетическими могут осуществляться и аналитические шаги. В этом случае мы сводим задачу по поиску данного вывода к одной или нескольким подзадачам по поиску вспомогательных выводов [Смирнов и др., с. 42].

формулы из уже имеющихся (синтетические правила) или сводить задачу поиска некоторой формулы к подзадачам поиска других формул (аналитические правила). Отметим, что такое (неформальное) понимание понятия «правило» согласуется с одной из задач нашего исследования, а именно, обоснование возможности прямого (т.е. не с помощью промежуточных исчислений) доказательства теоремы о семантической полноте алгоритма поиска натурального вывода.7 Все правила вывода системы BMV рассматриваются как синтетические правила поиска вывода в этой системе. Действительно, правила введения и правила исключения логических связок обладают общей чертой: с их помощью в последовательность вывода (ПВ) добавляются новые формулы. Таким образом, в процессе поиска вывода эти правила используются для выведения новых формул в ПВ. С помощью аналитических правил поиска вывода алгоритм строит последовательность целей (ПЦ), которые алгоритм стремится достигнуть с помощью формул из ПВ. ПЦ не является BMV-выводом, т.к. целью может быть достижение противоречия в ПВ, т.е. целью необязательно является формула, а также потому, что цели получаются из предыдущих целей не по правилам системы BMV. Остановимся более подробно на последовательности целей. Основными понятиями для ПЦ являются понятия «главная цель» и «текущая цель». Главная цель – это первая цель в ПЦ, т.е. формула, BMV-вывод которой строится алгоритмом. Текущая цель – это последняя цель в ПЦ на данный момент поиска вывода, т.е. цель, вывод которой алгоритм строит для того, чтобы построить вывод главной цели. (Отметим, что на каждом шаге работы алгоритма текущая цель всегда единственна.) Таким образом, главная цель может быть текущей (когда в ПЦ нет других целей, кроме главной) и текущая цель необязательно является главной. Другим важным понятием для ПЦ является понятие «достигнутой цели». Если текущей целью является формула, то текущая цель достижима (достигнута), если она унифицируется с некоторой неисключенной формулой из ПВ. Если текущей целью является противоречие, то текущая цель достижима (достигнута), если в выводе содержатся две неисключенные формулы вида A и ¬В, В противном случае, множество аналитических и синтетических правил, заданных в смысле Главы 2 нашей работы, в совокупности с некоторым понятием вывода образовывало бы некоторое промежуточное исчисление, позволяющее искать вывод в системе BMV. См. данный подход в [Sieg], [Sieg & Byrnes].

причем для А и В существует унификатор, который, будучи примененным к А и В, дает две противоречащие друг другу формулы. В противном случае цель считается недостижимой (недостигнутой). Понятие «недостижимая (недостигнутая) цель» следует понимать в том смысле, что данная цель недостижима в результате одного конкретного действия алгоритма унификации. Таким образом, цель может быть недостижимой в какой-то определенный момент построения вывода, но может стать достижимой в каком-то следующем моменте построения вывода. Теперь остановимся подробнее на аналитических правилах поиска вывода. Характерной чертой этих правил является сведение «задачи поиска некоторого вывода к одной или нескольким подзадачам по поиску вспомогательных выводов» [Смирнов и др., с. 4]. Используя предложенную в нашей работе терминологию, можно сказать, что аналитические правила суть переходы от текущей цели к подцели, которая, в свою очередь, сама становится текущей целью. Соответственно, цель, из которой получена подцель, называется предыдущей целью. Например, необходимо достигнуть цель А & В. Мы можем достигнуть А & В с помощью BMV-правил из имеющихся в выводе посылок. Однако поиск вывода существенно облегчается, если применить к текущей цели А & В некоторое аналитическое правило и получить подцели А и В, из которых А становится текущей целью, а В – предыдущей целью по отношению к А (и подцелью по отношению к А & В) в ПЦ. Если подцели А и В достижимы (а значит, А и В находятся в ПВ), то, применяя &в, можно достигнуть цель А & В. Если необходимо достигнуть текущую цель А В, то можно взять формулу А в качестве посылки в ПВ и стараться достигнуть подцель В. Если подцель В достижима (а значит, В находится в ПВ), то, применяя в, можно достигнуть цель А В. Если необходимо достигнуть текущую цель ¬А, то лучше взять в качестве посылки формулу А в ПВ и стараться достигнуть подцель противоречие. Если подцель противоречие достижима, то, применяя ¬в, можно достигнуть цель ¬А. Такие советы по поиску вывода иногда называются эвристиками. Общее для вышеперечисленных эвристик состоит в том, что благодаря их использованию достижение цели сводится к достижению одной или нескольких подцелей. При этом степень подцелей меньше, чем степень цели.8 В нашей работе мы называем такие аналитические правила поиска вывода для целей ц-правилами. В алгоритме задаются следующие ц-правила с использованием меток М3-М6 (смысл меток приводится ниже, в описании алгоритма).

А & В ПЦ &ц АM3 ПЦ В ПЦ А ПЦ ¬А – пос. ПВ, ПЦ A() ПЦ ц A(/)М6 ПЦ, – новая неабсолютная переменная ц ц А В ПЦ А – пос. ПВ, В ПЦ А В ПЦ АM4 ПЦ A(, 1,…, n) ПЦ A(/, 1,…, n) ПЦ А В ПЦ ВМ5 ПЦ ¬ц ц – абс.;

1,…, n – огр.

В правиле ¬ц формула А может быть либо элементарной формулой P(), либо ¬C, либо C D, либо C. Проанализируем ц-правила. Эти правила строятся таким образом, что достижение подцели заключения с необходимостью влечет достижение предыдущей цели. Правило ц позволяет от цели A(, 1,…, n) перейти к подцели A(/, 1,…, n), где – абсолютно ограниченная переменная и 1,…, n относительно ограничены. Если подцель A(/, 1,…, n) достигнута (т.е. в ПВ имеется формула В: В и A(/, 1,…, n) унифицируемы с помощью подстановки ), то к В можно применить правило в по переменной, вывести формулу A(, 1,…, n) и достигнуть цель A(, 1,…, n). Ц-правила представляют собой переход от цели большей степени к цели меньшей степени из ПЦ вплоть до получения цели противоречие, к которой никакое цправило неприменимо. Поскольку алгоритм работает с формулами конечной длины, количество применений ц-правил к произвольной цели конечно. С другой стороны, цСтепенью формулы А, обозначается g(A), является количество вхождений логических символов в формулу А: g(P()) = 0, где P() обозначает элементарную формулу;

g(¬A) = g(A()) = g(A()) = g(A) + 1;

g(A & B) = g (A B) = g(A B) = g(A) + g (B) + 1.

правила не работают с целью противоречие. Значит, сформулируем простое свойство цправил: процесс сведения произвольной цели из ПЦ с помощью ц-правил к цели противоречие конечен. Содержательно это означает, что процесс сведения некоторой цели к цели противоречие с помощью ц-правил конечен. Помимо ц-правил, существуют группа аналитических правил поиска вывода, которые применяются не к целям из ПЦ, а к формулам из ПВ. Например, пусть текущей целью является противоречие, она не достигнута и в ПВ имеется формула А В. Тогда применяем к А В некоторое аналитическое правило поиска вывода и текущей целью становится формула А. На первый взгляд, необходимость данного правила поиска вывода неясна: каким образом достижение (причем, А не всегда достижима) цели А связано с достижением цели противоречие? Однако, если мы сможем достигнуть цель А, то, применив и к А В и А, получим в ПВ формулу В. Наличие в ПВ формул А и В, наряду с формулой А В, облегчает достижение цели противоречие. Поиск цели А играет важную роль и тогда, когда цель А недостижима: именно поиск А тогда, когда в ПВ имеется А В, позволяет говорить, что ПВ содержит контрпример, опровергающий данную выводимость (этой темы мы подробно касаемся в следующей главе нашей работы). Если необходимо получить цель противоречие, когда в ПВ имеется формула А В, то применяем к А В некоторое аналитическое правило поиска вывода и текущей целью становится формула ¬А. Если ¬А достижима, можно применить и к формулам А В, ¬А и получить формулу В. Если не удается достигнуть цель ¬А, то ее поиск способствует построению контрпримера. Если необходимо получить цель противоречие, когда в ПВ имеется формула ¬А, то применяем к ¬А некоторое аналитическое правило поиска вывода и текущей целью становится формула А. Если А достижима (т.е. формула А входит в ПВ), то в ПВ входят одновременно А и ¬А. Значит, цель противоречие достижима. Если А не удается получить, то ее поиск также способствует построению контрпримера. Такие правила поиска вывода в нашей работе мы называем правилами взятия цели по формуле вывода или, кратко, вц-правила. (Отметим, что вц-правила применяются только, если текущей целью является противоречие.) В дальнейшем формулы, к которым могут применяться вц-правила, мы будем называть вц-формулы.

Задаются следующие вц-правила с использованием метки М7 (ее смысл приводится ниже, в описании алгоритма).

вц вц А ВМ7 ПВ ¬АМ7 ПЦ А ПВ А(/t)М7 ПВ вц ¬вц А ВМ7 ПВ АМ7 ПЦ ¬АМ7 ПВ АМ7 ПЦ В правиле ¬вц формула А не имеет вида элементарной формулы P(), или C D, или C. В правиле вц терм t не может быть неабсолютной переменной. Более того, мы подставляем только такой терм t, что неисключенная формула А(/t) не находится выше в ПВ.9 Отметим, что правило вц отлично от правила и. Правило вц разрешает снимать квантор общности по некоторым определенным термам из ПВ. Таким образом, применение правила вц представляет собой конечное число применений правила и. ВЦ-правилам соответствуют аналитические правила удаления в [Смирнов и др.], [Смирнов-мл.] и [Смирнов-мл.1]. Сравнительный анализ данных групп правил обнаруживает значительные различия. Например, в нашей нотации аналитическое правило поиска вывода _ae в [Смирнов-мл., с. 99] запишется следующим образом:

_ae А В ПВ, C ПЦ А – пос. ПВ, C ПЦ В – пос. ПВ, C ПЦ Если мы хотим достичь текущей цели C из формулы А В, то мы помещаем А в ПВ в качестве посылки и в качестве текущей цели берем формулу С. Если С достижима, то формула В помещается в ПВ в качестве посылки и текущей целью становится формула С. Если и в этом случае С достижима, то в ПВ применяется правило разбора случаев. В системе BMV нет правила разбора случаев. Поэтому предлагаемый алгоритм в такой ситуации берет в качестве текущей цели ¬А. Если она достижима, то к формулам А В, ¬А из ПВ применяется правило и и в ПВ помещается формула В. Отметим, что формульным коррелятом правила _ae является отношение между формулами (А В) С и (A C) & (В С). Данное отношение является отношением логического следования в обе стороны, т.е. эти формулы эквивалентны в Таким образом предотвращаются избыточные применения правила и в ПВ.

классической пропозициональной логике. Таким образом, правило _ae представляет собой эквивалентный переход. В свою очередь, формульным коррелятом правила вц является отношение между формулами (А В) С и (¬А В) С, которое также является отношением логического следования в обе стороны, т.е. эти формулы эквивалентны. Таким образом, правило вц представляет собой иной эквивалентный переход. Аналогичные замечания относятся к аналитическому правилу поиска вывода _ae в [Смирнов-мл., с. 99], которое в нашей нотации запишется следующим образом:

_ae А В ПВ, C ПЦ ¬С – пос. ПВ, А ПЦ В ПВ, C ПЦ Если мы хотим достичь текущей цели C из формулы А В, то мы помещаем ¬С в ПВ в качестве посылки и в качестве текущей цели берем формулу А. Если она достижима, т.е. формула А появилась в ПВ, то к формулам А В, А применяется правило и и в ПВ помещается формула В. При этом текущей целью становится формула С. Предлагаемый алгоритм в такой ситуации устанавливает текущую цель А. Если она достижима, то к формулам А В, А применяется правило и и в ПВ помещается формула В. Формульным коррелятом правила _ae является отношение между формулами (А В) С и (¬С А) & (В С). Данное отношение является отношением логического следования в обе стороны, т.е. эти формулы эквивалентны в классической пропозициональной логике. Таким образом, правило _ae представляет собой эквивалентный переход. Однако наш алгоритм в такой ситуации вводит новую текущую цель А, т.е. он не использует эквивалентные переходы. Итак, алгоритм осуществляет поиск вывода в двух направлениях. Первое направление – от формул вывода к доказываемой формуле (главной цели) путем применения синтетических правил поиска (правил введения и исключения логических связок). Второе направление – от доказываемой формулы (главной цели) к формулам вывода путем применения аналитических правил поиска вывода (ц-правил и вцправил): к доказываемой формуле (главной цели) применяются ц-правила и к формулам из ПВ применяются вц-правила.

§ 3.4. Описание алгоритма поиска вывода в системе BMV Алгоритм описывается следующим образом. Сначала задаются основные процедуры алгоритма. Описываются их особенности и порядок применения. Далее описывается механизм меток: объясняется, когда и на какие формулы и Затем следует пошаговое описание алгоритма поиска вывода в системе BMV. Пусть ПВ и ПЦ служат сокращениями для понятий «последовательность вывода» и «последовательность целей», соответственно, тогда к формулам из ПВ применяются следующие процедуры, которые мы делим на три группы: процедуры 1*4*, которые применяются только к формулам из ПВ;

процедура 5*, которая применяется только к целям из ПЦ, и процедуры 6*-7*, которые применяются как к формулам из ПВ, так и к целям из ПЦ. Процедура 1* определяет применение синтетических правил исключения. Процедура 1* состоит в нахождении формул, к которым применимо правило исключения. Если такие формулы обнаруживаются, то ПВ пополняется результатом применения данного правила. Задается следующий порядок применения: пропозициональные правила (в произвольном порядке) применяются в первую очередь. Среди кванторных правил первым применяется ¬и. Затем применяется и. Отметим, что заданный порядок призван сделать поиск вывода более эффективным, позволяя не загромождать дерево поиска вывода. Более того, данный порядок не является единственным и, поэтому, не учитывается при нижеследующем доказательстве теоремы о семантической полноте алгоритма. Пропозициональные правила и и и применяются следующим образом: и. Пусть А2 В ПВ и формула А2 В не отмечена меткой М0 (смысл данной метки см. далее).10 Если среди всех неисключенных формул в ПВ найдется формула А1: А1 = А2, где – унификатор, и ни одна переменная не ограничивает сама себя, то данный унификатор применяется к А2 В, А1 и из формул А1, А2 В по правилу и выводима формула В. и. Аналогично и. цели ставятся (снимаются) метки.

Процедура 2* определяет применение синтетических правил введения. Процедура 2* состоит в нахождении формул, к которым применимо правило введения. Если такие формулы обнаруживаются, то ПВ пополняется результатом применения данного правила. Отметим, что применение правил введения к формулам из ПВ детерминировано целями из ПЦ. Синтетические правила введения применяются следующим образом: &в. Пусть формула А & В является текущей целью в ПЦ. Если среди неисключенных формул из ПВ найдутся формулы А и В, то к ним применяется правило &в, формула А & В добавляется в ПВ, а цель А & В помечается как достигнутая. в. Пусть формула А В является текущей целью в ПЦ. Если среди неисключенных формул из ПВ найдется формула А или формула В, то к ней применяется правило в, формула А В добавляется в ПВ, а цель А В помечается как достигнутая. в. Пусть формула А В является текущей целью в ПЦ. Если среди неисключенных формул из ПВ найдется формула А, которая является последней посылкой, и формула В, то к формуле В применяется правило в, формула А В добавляется в ПВ, а цель А В помечается как достигнутая. ¬в. Пусть цель противоречие является текущей целью в ПЦ. Если среди неисключенных формул из ПВ найдутся формулы А и ¬В: А = В, где – унификатор, и ни одна переменная не ограничивает сама себя, то к последней неисключенной посылке С из ПВ применяется правило ¬в, формула ¬С добавляется в ПВ, все неисключенные формулы из ПВ, начиная с формулы С и заканчивая формулой, предшествующей формуле ¬С, исключаются из ПВ, а цель противоречие помечается как достигнутая. в. Пусть формула А() является текущей целью в ПЦ. Если среди неисключенных формул из ПВ найдется формула А(t), где t – произвольный терм, то к формуле А(t) применяется правило в, формула А() добавляется в ПВ, а цель А() помечается как достигнутая. в. Пусть формула А() является текущей целью в ПЦ. Если среди неисключенных формул из ПВ найдется формула А(i), где i не является абсолютно Грубо говоря, к формуле А2 В не применялось правило и.

ограниченной переменной, то, если ни одна переменная не ограничивает сама себя при абсолютно ограниченной i, к формуле А(i) применяется правило в, формула А() добавляется в ПВ, делается отметка, что i относительно ограничивает все остальные свободные переменные в А(i), а цель А() помечается как достигнутая. Процедура 3* определяет применение вц-правил, кроме вц.11 Алгоритм ищет первую сверху вниз сложную неисключенную формулу из ПВ, которая не отмечена метками М0 или М5 (смысл этих меток см. далее). Эта формула является вц-формулой. Вид вц-формулы определяет, какое именно вц-правило применимо. Процедура 4* применяется после всех остальных процедур, если в ПВ содержатся неисключенные формулы вида А(), к которым уже применялось правило и (т.е. они отмечены меткой М1). В таком случае метка М1 снимается со всех таких формул квантор общности снимается по некоторым определенным термам из ПВ.12 Напомним, что в правиле вц терм t не может быть неабсолютной переменной. Более того, мы подставляем только такой терм t, что неисключенная формула А(/t) не находится выше в ПВ. К формулам из ПЦ применяются следующая процедура: Процедура 5* определяет применение ц-правил. Ц-правила применяются к текущей цели следующим образом: &ц. Пусть формула А & В является текущей целью в ПЦ. Если она не достижима, то формула А становится текущей целью и отмечается меткой М3. Если цель А достижима, то текущей целью становится формула В. Если цель В достижима, то текущей целью вновь становится формула А & В. ц. Пусть формула А В является текущей целью в ПЦ. Если она не достижима, то формула А становится текущей целью и отмечается меткой М4. Если цель А недостижима, то цель А удаляется из ПЦ и формула В становится текущей целью и отмечается меткой М5. Если цель В недостижима, то цель В удаляется из ПЦ, формула ¬(А & В) помещается в ПВ в качестве последней посылки и цель противоречие становится текущей целью.

11 Применение вц определяется Процедурой 4*. Отметим, что метка М1 снимается с таких формул, а значит, впоследствии к ним применимо правило и по новой неабсолютной переменной из ПВ.

ц. Пусть формула А В является текущей целью в ПЦ. Если она не достижима, то формула А помещается в ПВ в качестве последней посылки и формула В становится текущей целью. ¬ц. Пусть формула А является текущей целью в ПЦ, где А может быть либо элементарной формулой P(), либо ¬C, либо C D, либо C. Если она не достижима, то формула ¬А помещается в ПВ в качестве последней посылки и цель противоречие становится текущей целью. ц. Пусть формула А является текущей целью в ПЦ. Если она не достижима, то формула А(/), где – новая неабсолютная переменная, становится текущей целью. ц. Пусть формула А является текущей целью в ПЦ. Если она не достижима, то формула A(/, 1,…, n) становится текущей целью, где – новая абсолютная переменная, которая относительно ограничивает все свободные переменные 1,…, n из А. По всему дереву поиска вывода применяется следующие процедуры: Процедура 6* осуществляет глобальную подстановку в ПВ и ПЦ, если – наиболее общий унификатор. Если в процессе поиска вывода произошло достижение некоторой цели с помощью и ни одна переменная не ограничивает сама себя, то алгоритм осуществляет данную подстановку во всех (исключенных и неисключенных) формулах и целях из ПВ и ПЦ. Процедура 7* осуществляет с помощью алгоритма унификации проверку достижимости текущей цели. Если текущей целью является формула, то цель достижима (достигнута), если цель унифицируется с некоторой неисключенной формулой вывода и ни одна переменная не ограничивает сама себя. Если текущей целью является цель противоречие, то цель достижима (достигнута), если в ПВ содержатся две неисключенные формулы вида A и ¬В, причем для А и В существует унификатор, и ни одна переменная не ограничивает сама себя. В противном случае цель считается недостижимой (недостигнутой). Важную роль в работе алгоритма играет механизм меток. Следующие метки ставятся на формулы из ПВ:

М0 – ставится на посылку (в однопосылочных) или на большую посылку (в двухпосылочных) правила исключения после применения данного правила. М1 – ставится на формулы вида А после применение к ним правила и. М2 – ставится на формулы, полученные в результате применения правил исключения. Следующие метки ставятся на цели из ПЦ: М3 – ставится на левый конъюнкт Ai, полученный из цели Ai & Aj. М4 – ставится на левый дизъюнкт Ai, полученный из цели Ai Aj. М5 – ставится на правый дизъюнкт Aj, полученный из цели Ai Aj. М6 – ставится на формулу A(t), полученную из цели A(). М7 – ставится на формулы из ПВ и ПЦ при применении вц-правил. Описание алгоритма Символами /…/ обозначены комментарии. 1. Определяется главная цель вывода. Таковой является формула, стоящая справа от знака выводимости в заданном утверждении о выводимости. Данная формула помещается в качестве текущей цели в ПЦ. Если слева от знака выводимости стоят формулы, то все они помещаются в качестве начальных посылок в ПВ. Все свободные переменные из текущей цели и начальных посылок помечаются как абсолютно ограниченные. Переход к 10. /Алгоритм проверяет, не является ли рассматриваемый вывод тривиальным, т.е. главная цель вывода унифицируется с одной из начальных посылок вывода./ 2. Применение правил исключения к формулам из ПВ. 2.1. Применяется процедура 1*. /Применяются правила исключения./ При этом на посылки правил вывода вида А & В, А В, А В, ¬¬А, ¬(А В), ¬А, А и А, к которым были применены, соответственно, правила &и, и, и, ¬и, ¬и, ¬и, и и и, ставится М0, указывающая на два обстоятельства: (а) недопустимость вторичного применения к ним указанных правил, (б) невозможность их использования в качестве вц-формул. На заключения правил вывода ставится М2. Правила и, и применяются следующим образом: и.

a) Квантор общности снимается по правилу и с формулы А по новой неабсолютной переменной. На формулу А ставится метка М1. b) Если вхождение квантора по переменной в формуле А вырождено, то результатом снятия квантора будет А. и. a) Квантор снимается по правилу и с формулы А по новой абсолютной переменной. b) Рядом с так полученной формулой А(/) пишется " – абс., 1, 2,..., n – огр.", где 1, 2,..., n – все свободные переменные, входящие в А. c) Если первое вхождение квантора по переменной в формуле А вырождено, то результатом снятия квантора будет А. Переход к 10. 2.2. 3. • • • • • • • • 4. Если ни одно правило исключения не применимо, то переход к 3. Применяется процедура 5* к текущей цели A. A – элементарная формула P(). Переход к 4. Главный знак A – ¬. Переход к 4. A = Ai Aj. Переход к 5. A = Ai & Aj. Переход к 6. A = Ai Aj. Переход к 7. A = А. Переход к 8. A = А. Переход к 9. A есть. Переход к 12.

Формула ¬А помещается в ПВ в качестве последней посылки. Текущей целью становится получение. Переход к 2. /Алгоритм начинает доказывать формулы от противного./ 5. Формула Ai помещается в ПВ в качестве последней посылки. Текущей целью становится Aj. Переход к 2. /Алгоритм, доказывая импликативную формулу, берет в качестве посылки ее антецедент и пытается вывести ее консеквент./ 6. Текущею целью становится формула Ai. На формулу Аi ставится метка М3. Переход к 10.

6.1. 7.

С формулы Аi из ПЦ снимается метка М3. Текущей целью становиться формула Aj. Переход к 10. Текущею целью становится формула Ai. На формулу Аi из ПЦ, ставится метка 7.1. 7.2. Удаляем цель Аi, отмеченную М4. Текущей целью становиться Удаляем цель Аj, отмеченную М5. Текущей целью становиться. М4. Переход к 10. формула Aj. На формулу Аj ставится метка М5. Переход к 10. Формула ¬(Ai Aj) помещается в ПВ в качестве последней посылки. Переход к 2. 8. Текущей целью становиться формула А(/v), где v – новая неабсолютная Удаляем цель А(/v), отмеченную М6. Текущей целью становиться.

переменная. На формулу А(/v) ставится метка М6. Переход к 10. 8.1. Формула ¬А() помещается в ПВ в качестве последней посылки. Переход к 2. 9. Текущей целью становиться формула А(/), где – новая абсолютная a) Отмечается, что « – абс., 1, 2,..., n – огр.», где 1, 2,..., n – все свободные переменные, входящие в А. b) Если первое вхождение квантора по переменной в формуле А() вырождено, то результатом снятия квантора будет сама формула А. Переход к 10. 10. Применяется процедура 7*. 10.1. подстановка): • • • • Если текущая цель отмечена М3, то переход к 6.1. /Начинаем Если текущая цель не отмечена М3, то переход к 11. Если текущая цель отмечена М4, то переход к 7.1. /Начинаем Если текущая цель отмечена М5, то переход к 7.2. /Начинаем доказывать правый конъюнкт./ 10.2. Текущая цель не достигнута: доказывать правый дизъюнкт./ доказывать дизъюнкцию от противного./ Текущая цель достигнута. Применяется процедура 6* (глобальная переменная.

• • 11. 11.1. 11.2.

Если текущая цель отмечена М6, то переход к 8.1. /Начинаем доказывать цель А() от противного./ Если текущая цель не отмечена М4-М6, то переход к 3. Если An – главная цель, то An устраняется из ПЦ. Выход из алгоритма Если An не является главной целью, то Достигнута текущая цель An.

– вывод построен. Если An есть, то: a) An устраняется из ПЦ. b) Текущей целью становиться предыдущая цель и к формулам из ПВ применяется правило ¬в, результатом применения которого является формула ¬С, где С – последняя неисключенная посылка в ПВ. c) Делается отметка, что все формулы, начиная с формулы C и заканчивая формулой, предшествующей ¬С, исключаются из дальнейших шагов вывода. d) Если в число этих формул попадает формула с меткой М2, то с соответствующей формулы снимается метка М0. Переход к 2. Если An не есть, то рассматриваем подцель An-1 из ПЦ. В зависимости от вида An-1 рассматриваются следующие случаи: – An-1 = An Ak или Ak An, то: a) An и An-1 устраняются из ПЦ. b) Текущей целью становится предыдущая цель и в ПВ включается формула An-1, которая является результатом применения правила в к формуле An (Ak). c) На формулу An Ak или Ak An из ПВ ставится метка М0. d) Если на An-1 стояла метка М7, то с соответствующей вц-формулы снимается метка М7. Переход к 2. – An-1 = Ak An, то: a) An и An-1 устраняются из ПЦ. b) Текущей целью становится предыдущая цель и к формулам из ПВ применяется правило в, результатом применения которого является формула Ak An, где Ak – последняя неисключенная посылка в ПВ.

c) Делается отметка, что все формулы, начиная с Ak и заканчивая формулой An, исключаются из дальнейших шагов вывода. d) Если в число этих формул попадает формула с меткой М2, то с соответствующей формулы снимается метка М0. e) Если на цели An-1 стояла метка М7, то с соответствующей вц-формулы снимается метка М7. Переход к 2. – An-1 = Ak & An, то: a) An и An-1 устраняются из ПЦ. b) Текущей целью становится предыдущая цель и в ПВ включается формула An-1, которая является результатом применения правила &в к формулам An и Ak. c) На формулу Ak & An из ПВ ставится метка М0. d) Если на цели An-1 стояла метка М7, то с соответствующей вц-формулы снимается метка М7. Переход к 2. – An-1 = А, то: a) An и An-1 устраняются из ПЦ. b) Текущей целью становится предыдущая цель и в ПВ включается формула An-1, которая является результатом применения правила в к формуле А(/, 1, 2,..., n). c) Делается отметка, что абсолютно ограничена и 1, 2,..., n относительно ограничены. d) На формулу А ставятся метки М0 и М1. e) Если на цели An-1 стояла метка М7, то с соответствующей вц-формулы снимается метка М7. Переход к 2. – An-1 = А, то: a) An и An-1 устраняются из ПЦ. b) Текущей целью становится предыдущая цель и в ПВ включается формула An-1, которая является результатом применения правила в к формуле А(/). c) На формулу А ставится метка М0.

d) Если на цели An-1 стояла метка М7, то с соответствующей вц-формулы снимается метка М7. Переход к 2. – An-1 =, то: a) An устраняется из ПЦ. b) Текущей целью становится предыдущая цель An-1. c) Если на цели An-1 стояла метка М7, то с соответствующей вц-формулы снимается метка М7. Переход к 2. 12. Применяем процедуру 3*. 12.1. Если в ПВ имеются сложные формулы, не отмеченные метками М или М7, то к ним применяются следующие процедуры: a) Если в выводе имеется формула вида Ai Aj, то в качестве текущей цели берется Ai. Формула Ai Aj и текущая цель Ai помечаются меткой М7. Переход к 3. /Имея в выводе формулу вида Ai Aj, алгоритм пытается вывести Ai для того, чтобы в случае успеха применить и./ b) Если в выводе имеется формула вида Ai Aj, то в качестве текущей цели берется ¬Ai. Формула Ai Aj и цель ¬Ai помечаются меткой М7. Переход к 3. /Имея в выводе формулу вида Ai Aj, алгоритм пытается вывести ¬Ai для того, чтобы в случае успеха применить и./ c) Если в выводе встречается формула ¬Ai, где Ai не имеет вида An Ak, А, то в качестве текущей цели берется Ai. Формула ¬Ai и цель Ai помечаются меткой М7. Переход к 3. /К формулам вида ¬(An Ak), ¬А применяются, соответственно, правила исключения ¬и, ¬и. К остальным формулам вида ¬Ai алгоритм применяет вц-правила для того, чтобы получить цель противоречие./ 12.2. 13. 13.1. Если все сложные формулы в ПВ отмечены М0 или М7, то 13. Если ПВ не содержит формул, отмеченных М1, то выход из Завершение алгоритма.

Pages:     || 2 |



© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.