Текст
                    математическая
логика
и основания
математики
Ч.Чень.РЛи
МАТЕМАТИЧЕСКАЯ
ЛОГИКА
И АВТОМАТИЧЕСКОЕ
ДОКАЗАТЕЛЬСТВО
ТЕОРЕМ
Перевод с английского
Г. В. ДАВЫДОВА, Г. Е. МИНЦА и А. В. СОЧИЛИНОЙ
Под редакцией С. Ю. МАСЛОВА
МОСКВА «НАУКА»
ГЛАВНАЯ РЕДАКЦИЯ
ФИЗИКО-МАТЕМАТИЧЕСКОЙ ЛИТЕРАТУРЫ
19 8 3


22.12 4-43 УДК 517.11 SYMBOLIC LOGIC AND MECHANICAL THEOREM PROVING CHIN-LIANG CHANG RICHARD CHAR-TUNG LEE ACADEMIC PRESS NEW YORK SAN FRANCISCO LONDON 197 3 Чень Ч., Ли Р. Математическая логика и автоматическое доказа- доказательство теорем: Пер. с англ/Под ред. С. Ю. Маслова.— М.: Наука. Глав- Главная редакция физико-математической литературы, 1983.— 360 с. Книга посвящена детальному изложению всего круга проблем, связан- связанных с так называемым методом резолюций. Этот метод наиболее известен и широко используется в современных работах по доказательству на ЭВМ математических теорем и вообще при построении систем «искусственного ин- интеллекта». Описываются применения метода к таким, например, актуальным для всякого системного программиста задачам, как автоматический анализ и синтез программ. В приложении описаны другие методы и некоторые ре- результаты последних лет, знакомство с которыми необходимо при изучении проблематики автоматического доказательства теорем. 1702020000 — 050 053@2)-83 1973, Academic Press, Inc. ) Перевод на русский язык. Издательство «Наука». Главная редакция физико- математической литерату- литературы, 1983 ОГЛАВЛЕНИЕ От редактора перевода 7 Предисловие 9 Глава 1 Введение 11 §1.1. Искусственный интеллект, математическая логика и доказа- доказательство теорем 11 § 1.2. Математические основы 14 Литература 15 Глава 2 Логика высказываний 16 §2.1. Введение 16 § 2.2. Интерпретация формул логики высказываний 18 § 2.3. Общезначимость и противоречивость в логике высказываний 20 § 2.4. Нормальные формы в логике высказываний 21 § 2.5. Логические следствия 24 § 2.6. Применения логики высказываний 29 Литература 32 Упражнения 32 Глава 3 Логика первого порядка 35 §3.1. Введение 35 § 3.2. Интерпретации формул в логике первого порядка 39 § 3.3. Предваренные нормальные формы в логике первого порядка 43 § 3.4. Приложения логики первого порядка 47 Литература 49 Упражнения 49 Глава 4 Теорема Эрбрана 52 § 4.1. Введение ' 52 § 4.2. Скулемовские стандартные формы 53 § 4.3. Эрбрановский универсум множества дизъюнктов 59 § 4.4. Семантические деревья 63 § 4.5. Теорема Эрбрана 66 1" Зак. Л2
ОГЛАВЛЕНИЕ § 4.6. Применение теоремы Эрбрана 6S Литература 72 Упражнения 73 Глава 5 Метод резолюций 76 §5.1. Введение 76 § 5.2. Метод резолюций для логики высказываний 77 § 5.3. Подстановка и унификация 79 § 5.4. Алгоритм унификации 82 § 5.5. Метод резолюций для логики первого порядка 85 § 5.6. Полнота метода резолюций 87 § 5.7. Примеры использования метода резолюций 91 § 5.8. Стратегия вычеркивания 96 Литература 100 Упражнения 100 Глава 6 Семантическая резолюция и лок-резолюция . . . . 102 § 6.1. Введение 102 § 6.2. Неформальное введение в семантическую резолюцию .... 103 § 6.3. Формальные определения и примеры семантической резолю- резолюции ' 10S § 6.4. Полнота семантической резолюции . . .- 107 §6.5. Гиперрезолюция и стратегия поддержки — частные случаи се- семантической резолюции 109 § 6.6. Семантическая резолюция с использованием упорядоченных дизъюнктов 112 § 6.7. Реализация семантической резолюции 118 § 6.8. Лок-резолюция 122 § 6.9. Полнота лок-резолюцяи 125 Литература , 126- Упражнения 127 Глава 7 Лииейиая резолюция 130 § 7.1. Введение 130 § 7.2. Линейная резолюция 130 § 7.3. Входная резолюция и единичная резолюция 132 § 7.4. Линейная резолюция, использующая упорядоченные дизъюик- ты и информацию об отрезанных литерах 135 § 7.5. Полнота линейной резолюции 141 § 7.6. Линейный вывод и поиск в дереве 143 § 7.7. Эвристики поиска в дереве 149 § 7.8. Оценки для оценочных функций 152 Литература 156 Упражнения 157 Глава 8 Резолюция с равенством 159 §8.1. Введение 159 § 8.2. Невыполнимость в специальных классах моделей 161 § 8.3. Парамодуляция — правило вывода для равенства 163 ОГЛАВЛЕНИЕ 5 § 8.4. Гиперпарамодуляция 166 § 8.5. Входная и единичная парамодуляции 169 § 8.6. Линейная парамодуляция 174 Литература 176 Упражнения 177 Глава 9 Некоторые процедуры доказательства, основанные на теореме Эрбрана 179 §9.1. Введение 179 § 9.2. Процедура Правица 180 § 9.3. Процедура V-резолюции 183- § 9.4. Псевдосемантические деревья 191 § 9.5. Процедура порождения замкнутых псевдосемантических де- деревьев 194 § 9.6. Обобщение правила расщепления, введенного Девисом и Пат- немом '.'..". \ 199 Литература 201 Упражнения 202 Глава 10 Анализ программ 204 § 10.1. Введение ■ 204 § 10.2. Неформальное обсуждение 205 § 10.3. Формальное определение- программ ■ .• 207 § 10.4. Логические формулы, описывающие исполнение программы 209 § 10.5. Анализ программ с помощью резолюции 211 § 10.6. Завершение работы и реакция программ 215 § 10.7. Стратегия поддержки и вывод стоп-дизъюнкта 219 § 10.8. Правильность и эквивалентность программ 220 § 10.9. Специализация программ 222 Литература . . . , 224 Упражнения 225 Глава ill Дедуктивный поиск ответов на вопросы, решение задач и синтез про- программ 227 § 11.1. Введение 227 § 11.2. Вопросы класса А 229 § 11.3. Вопросы класса В 230 § П.4. Вопросы класса С ! 233 § 11.5. Вопросы класса D 236 § 11.6. Полнота резолюции для получения ответов на вопросы . . 241 § 11.7. Принципы синтеза программ 242 §11.8. Примитивная резолюция и алгоритм А* (алгоритм синтеза программ) 247 § 11.9. Правильность алгоритма А* , 254 § 11.10. Применение аксиом индукции к синтезу программ .... 258 § 11.11. Алгоритм А (усовершенствованный алгоритм синтеза про- программ) 261 Литература 264 Упражнения 265
ОГЛАВЛЕНИЕ Глава 12 Заключительные замечания 268 Литература 269 Приложения 272 Приложение А 272 § АЛ. Программа для ЭВМ, использующая единичную бинарную резолюцию 272 § А.2. Краткий комментарий к программе 275 § А.З. Текст программы 277 § А.4. Иллюстрации 282 Литература '.'.'.'.'. 288 Приложение В. Доказательство леммы 8.2 ,,,,,..,,.. 288 Дополнение. Поиск вывода и автоматизация доказательств . ... 291 A. Теория поиска вывода и обратный метод. С. Ю. Мослов, Г. Е. Минц 291 § 1. Введение 291 § 2. Исчисления и задача поиска вывода . 292 § 3. Идея метапеременных в локальных методах поиска вывода . . 299 § 4. Одна переформулировка обратного метода 304 §5. Разрешимость формул вида C*) М 308 Литература 313 Б. Алгоритм Британского музея может быть эффективнее метода резо- резолюций. В. П. Оревков 314 B. О стратегиях метода резолюций и клаш-метода. С. Ю. Маслов ... 326 Библиография 333 Часть I 333 Часть II 335 Часть III 345 Алфавитный указатель 350 ОТ РЕДАКТОРА ПЕРЕВОДА Предлагаемая вниманию читателя книга известных амери- американских специалистов Ченя и Ли восполняет важный пробел в монографической литературе на русском языке. Она посвя- посвящена подробному (иногда — излишне подробному!) изложению единственного широко распространенного метода автоматичес- автоматического доказательства теорем—метода резолюций, в том числе применению этого метода к анализу и синтезу программ и построению вопросно-ответных систем. Во всех других моно- монографиях, содержащих описание метода резолюций, это описа- описание носит подсобный характер и отнюдь не выводится на результаты того уровня сложности, которые только и могут гарантировать максимально возможную на сегодняшний день эффективность метода. При этом детальное изложение слож- сложных результатов сочетается в книге с очень простым стилем, не требующим от читателя предварительных знаний по мате- математической логике; приводятся многочисленные примеры и упражнения. Недостатком книги является несколько узкий взгляд на предмет (например, даже такой классик рассматриваемой об- области, как Г. Генцен, ни разу не был упомянут). Этот недоста- недостаток 'отчасти восполняется примечаниями редактора и Допол- Дополнением А, содержащим, в частности, эскиз идейного развития области, включая объяснение сути генценовских методов. Дополнение А (и отчасти В) содержит также информацию о другом методе автоматического доказательства теорем, поя- появившемся одновременно с методом резолюций. Это так назы- называемый обратный метод, который по своим практическим возможностям примерно эквивалентен методам, рассматривае- рассматриваемым в книге; при этом обращено внимание читателя на ситуации, в которых сказываются преимущества обратного метода (воз- (возможность испытания нестандартизованных формул, более широкая область применимости, построение разрешающих алгоритмов). Кроме того, Дополнение В указывает на некото- некоторые не выявленные в книге недостатки описываемых резолю- резолютивных стратегий и содержит усиления результатов по полноте стратегий в наиболее перспективном, сточки зрения редактора,
ОТ РЕДАКТОРА ПЕРЕВОДА направлении. В Дополнении Б изложен новый ргзультат о сравнительной сложности резолютивного вывода и вывода в гильбертовском исчислении, существенно'помогающий осознать трудности применения метода резолюций. (Заметим, что доказа- доказательства из Дополнения Б и некоторые фрагменты Дополнеиия А предъявляют более высокие требования к квалификации чита- читателя, чем остальной материал книги.) Задача включения в библиографию авторов всех работ, имеющих отношение к предмету и не попавших в их поле зрения, ие ставилась. Однако информация о многих работах, существенных для понимания проблематики и перспектив ее развития, включена в примечания и Дополнения. Главы 1—5 переведены А. В. Сочилиной, главы 6 — 9 — Г. В. Давыдовым, остальной текст книги— Г. Е. Минцем. С. Ю. Маслов НАШИМ ЖЕНАМ ПРЕДИСЛОВИЕ Искусственный интеллект—относительно новая область притяжения для- многих исследователей, занимающихся программированием (для ЭВМ) задач,, требующих «интеллекта». Автоматическое доказательство теорем — важная область исследований по искусственному интеллекту. Человек издавна стремился найти общую разрешающую процедуру доказа- доказательства теорем. Это желание четко прослеживается у Лейбница A646—1716); оно было воскрешено Пеано в начале нашего столетия и школой Гильберта в 20-х годах.'Очень важная теорема была доказана Эрбраном в 1930 г.: он предложил автоматический яетод доказательства теорем. К сожалению, гго- метод 1был весьма труден для реализации, так как ои был весьма трудоемок при ручном гчете. С изобретением ЭВМ логики снова проявили интерес к автоматическому доказательству теорем. В 1960-г годы теорема Эрбрана была реализована на ЭВМ Гилмором, а вскоре последовала более эффективная процедура, предложенная Девисом и Патнемом. Важный прогресс в автоматическом доказательстве теорем был достигнут Цж. А. Робинсоном в 1965 г. Он разработал единственное правило вывода — принцип резолюции, которое оказалось черезвычайно эффективным и легко- легкодоступным для реализации на ЭВМ. С тех пор было предложено много усо- усовершенствований принципа резолюции. Автоматическое доказательство теорем прилагалось во многих областях таких, как анализ программ, дедуктивные- системы ответов на вопросы, системы решения задач и технология роботов.. Число приложенй продолжает расти. Возросло также понимание важности самой математической логики для исследователей, работающих в теоретическом программировании (computer science). Некоторая подготовка в области математической логики необходима теперь при чтении статей во многих журналах, относящихся к теоретическому прО1раммированию. Однако большинство имеющихся книг по математической логике не ориентировано на теоретическое программирование: почти все они предназначены для математиков и философов. Наша цель —написать книгу, содержащую введение в;математическую логи- логику и подробное обсуждение автоматического доказательства теорем и его при- приложений. Книга состоит из трех основных частей.]Главы 2 и 3 составляют введение в символическую логику, главы 4—9 вводят несколько методов, применяемых в автоматическом доказательстве теорем, а главы 10 и 11 показы- показывают, как доказательство теорем можно применить в таких различных облас- областях, как ответы на вопросы, решение задач, анализ программ и синтез прог- программ. Книга может служить нескольким целям. Ее можно использовать в спец- спецкурсе по доказательству теорем для старшекурсников или аспирантов.
10 ПРЕДИСЛОВИЕ В курсе для студентов можно не затрагивать более трудные главы 6—11. Слушателю такого курса не нужна подготовка по математической логике; достаточно знания элементарной теории множеств. С другой стороны, при использовании в спецкурсе для аспирантов, у которых можно предполагать достаточную подготовку по математической логике, можно пропустить главы 2 и 3. Так как мы приняли чисто теоретико-модельный подход к математи- математической логике, эта книга сильно отличается от других книг по логике, кото- которые следуют давней традиции синтаксического (аксиоматического) изложения логики первого порядка. Кроме того, в этой книге уделяется внимание эффек- эффективной реализации методов доказательства, до которой логикам обычно нет дела. В некоторых университетах автоматическое доказательство теорем читают в курсах искусственного интеллекта, а не как отдельный курс. В таком случае эту книгу можно использовать как вспомогательное пособие по искусствен- искусственному интеллекту, чтобы дать читателю представление как об автоматическом доказательстве теорем, так и об областях приложений. Так как автоматическое доказательство^теорем — быстро расширяющаяся об- область, некоторые существенные результаты неизбежно окажутся за пределами этой книги. Однако мы старались включить в библиографию, помещенную'в конце книги, все опубликованные работы, имеющие отношение к этой области. Эта библиография разделена на три части. Первая часть — это совокупность материалов, относящихся к искусственному интеллекту в целом. Вторая часть покрывает математическую логику и автоматическое доказательство теорем. Третья часть состоит из материалов, относящихся к приложениям методов доказательства теорем. Благодарности. Невозможно перечислить поименно всех тех, кто помог авто- авторам организовать материал и прояснить свои взгляды. Мисс Д. Конивер и доктор Л. Ходжес из Национального института здравоохранения, профессор Дж. Минкер из университета штата Мериленд, профессор 3. Манна из Стеи- фордского университета, доктор С. К. Чеиь из ИБМ, доктор Р. Уолдингер из Стенфорлского исследовательского института; профессор Р. Андерсон из Хьюстонского университета, мистер Дж. Иохельсон, мистер Б. Крисси и мис- мистер Дж. Ху из университета Джона Гопкинса прочли всю рукопись или часть ее. Они внесли огромный вклад в улучшение этой книги, хотя, конечно, не отвечают за наши собственные ошибки. Мы хотели бы также поблагодарить доктора Дж. Слэйгла, который преподавал нам обоим искусственный интеллект в Калифорнийском университете в Беркли. Именно он создал нам"*приятную интеллектуальную и рабочую атмосферу, сделавшую эту работу возможной. Наконец, наши глубочайшие благодарности мы приносим нашим любящим женам за их терпеливую и сочувственную поддержку в период написания этой книги. ГЛАВА 1 ВВЕДЕНИЕ § 1.1. Искусственный интеллект, математическая логика и доказательство теорем После появления первых современных вычислительных машин машинная технология стала развиваться с фантастической ско- скоростью. Сегодня мы видим, что машины используются не только для решения трудных вычислительных проблем таких, как выпол- выполнение быстрого преобразования Фурье или обращение матриц, высокого порядка. От них требуют выполнения и таких задач, которые были бы названы интеллектуальными, если бы их делали люди. Примерами таких задач являются программирование, со- создание систем, отвечающих на вопросы, и доказательство теорем. Искусственный интеллект—это область вычислительной матема- математики, которая занимается такими задачами (Эрнст и Ньюэл [1]; Фейгенбаум и Фельдман [1]; Нильсон[1]; Слэйгл [1]). Вторая половина 60-х годов в области искусственного интел- интеллекта выделялась особым увеличением интереса к машинному дока- доказательству теорем. Широкое распространение и интенсивность этого интереса вызываются не только растущим сознанием, что умение делать логические выводы есть неотъемлемая часть чело- человеческого интеллекта, но, возможно, в большей степени являются следствием того статуса, который приобрела техника машинного' доказательства теорем в конце 60-х годов. Основы машинного доказательства теорем были заложены Эрбраном в 1930 г. Его метод был неосуществим практически до изобретения электронных вычислительных машин. Только после основополагающей статьи Дж. А. Робинсона в 1965 г. и развития метода резолюций были сделаны важные шаги к созданию программ, реализующих дока- доказательство теорем1). После 1965 г. были предложены многочис- многочисленные усовершенствования метода резолюций. Параллельно прогрессу в технике машинного доказательства теорем шел второй прогресс в применении этой техники в раз- различных задачах искусственного интеллекта. Первым таким при- ]) В этом изложении пропущено основополагающее значение работ Г. Генцена, а также упущена роль ряда теоретических разработок и про- программ, предшествовавших созданию метода резолюций (см. кн. Математиче- Математическая теория логического вывода: Сб. перев.—М.: Наука, 1.967, а также До- Дополнение А).—Прим. ред.
12 ВВЕДЕНИЕ [ГЛ. 1 мененисм явилось создание дедуктивных вопросно-ответных систем (систем, отвечающих на вопросы); затем последовали примене- применения к задачам синтеза и анализа программ и многим другим. Есть много точек зрения, с которых можно изучать матема- математическую логику. Традиционно она изучалась с ориентацией на философскую математику г). В этой книге мы интересуемся при- применением математической логики к решению интеллектуально трудных проблем. Это значит, что мы хотим ее использовать для представления задач и получения их решения. Сейчас мы приведем несколько очень простых примеров, чтобы продемонстрировать, как математическая логика может быть использована для представления задач. Так как мы еще не обсуждали математическую логику формально, читатель должен положиться на интуицию, чтобы следить сейчас за текстом. Рассмотрим простой пример. Предположим, что мы .имеем следующие утверждения: Fx: Если жарко и сыро, то будет дождь. F2: Если сыро, то жарко. F3: Сейчас сыро. Вопрос: Будет ли дождь? Приведенные выше утверждения записаны по-русски2). Для ■их представления мы используем символы Р, Q и R, которые представляют «жарко», «сыро» и «будет дождь» соответственно. Нам нужно несколько логических связок. В данном случае мы будем использовать Л, чтобы представить «и», и —>, чтобы пред- представить «если ..., то». Тогда три приведенные выше утвержде- утверждения представляются так: F, PAQ Q-+P Q. Таким \образом, мы переиели русские утверждения на язык логических формул. Позднее читатель увидит, что ;если Flt F2 и F3 истинны, то и формула F4: R истинна. Поэтому мы говорим, что Fi логически следует из Flt F2 ;и F3, т. е. будет дождь. Рассмотрим другой пример. Имеем следующие факты: Fx: Конфуций—человек. F2: Каждый человек смертен. г) CJ момента своего возникновения (в трудах" Дж. Буля) математическая логика имела также психологическую ориентацию. Дальнейшее ее развитие ознаменовалось также приложениями в лингвистике, биологии и других нау- ;ках.— Прим. ред. 2) В оригинале —по-английски.-—Прим. перев. § 1.1] ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ 13 Чтобы представить Fx и F2, нам необходимо новое понятие, называемое предикатом. Мы можем считать, что Р (х) и Q (х) представляют «х есть человек» и «х смертен» соответственно. Мы также используем (Vjc), чтобы представить «для всех х». Тогда только что приведенные утверждения представляются в виде /V Р (Конфуций). Опять-таки читатель увидит позднее, что из Ft и F% мы можем логически вывести утверждение F3: Q (Конфуций), которое означает, что Конфуций смертен. В этих примерах мы, по существу, должны были доказать, что некоторая формула логически следует из других формул. Утверждение, что формула логически следует из формул; мы £удем называть теоремой. Рассуждение, устанавливающее, что некоторая теорема верна, т. е. что формула логически следует из других формул, будет называться доказательством этой тео- теоремы. Проблема машинного доказательства теорем состоит в рассмотрении машинных методов для нахождения доказательств теорем. Есть много задач, которые удобно преобразовать в задачи доказательства теорем. Мы перечислим некоторые из них. 1. В вопросно-ответных системах утверждения могут быть представлены логическими формулами. Тогда, чтобы ответить на вопрос, используя данные факты, мы доказываем, что формула, соответствующая ответу, выводима из формул, представляющих эти факты. 2. В задаче анализа программ мы можем описать выполнение программы формулой А, а условие, что программа закончит работу, другой формулой В. Тогда проверка того, что программа закончит работу, эквивалентна доказательству того, что форму- формула В следует из формулы А. 3. В проблеме изоморфизма графов мы хотим знать, изомор- изоморфен ли граф подграфу другого графа. Эта проблема не только представляет математический интерес, эта проблема практичес- практическая. Например, структура органического соединения может быть описана графом. Следовательно, проверка того, является ли под- подструктура структуры некоторого органического соединения структурой другого органического соединения, есть проблема изомор'физма. Для ее решения мы можем описать графы форму- формулами. Таким образом, задача может быть сформулирована как задача доказательства того, что формула, представляющая граф, следует из формулы,, представляющей другой граф. 4. В проблеме преобразования состояний имеется набор состоя- состояний и набор операторов над состояниями. Когда один из опера-
14 ВВЕДЕНИЕ ГЛ. 1 торов применяется к состоянию, получается новое состояние. Исходя из начального состояния, попытаемся найти последова- последовательность операторов, которая преобразует начальное состояние в некоторое желаемое. В этом случае мы можем описать состоя- состояния и правила перехода логическими формулами. Следовательно, преобразование начального состояния в желаемое может рассмат- рассматриваться как проверка того, что формула, представляющая желаемое состояние, следует из формулы, представляющей как состояния, так и правила перехода. Поскольку многие задачи могут быть сформулированы как задачи доказательства теорем, проблема автоматизации доказа- доказательств оказывается важной областью в искусственном интел- интеллекте. Благодаря неустанным усилиям многих исследователей был достигнут большой прогресс в использовании машин для доказательства теорем. В этой книге будут рассматриваться как теория, так и приложения машинного доказательства теорем. § 1.2. Математические основы В этом параграфе мы приведем некоторые основные матема- математические понятия, которые будут использоваться в книге. Все эти понятия могут быть легко найдены в элементарных матема- математических учебниках (Лайтстоун [1]; Пфейфер [1]; Столл [I]I). Используются следующие основные определения теории множеств. Множество есть совокупность элементов. Множество, не со- содержащее элементов, называется пустым множеством и обозна- обозначается посредством 0. Пусть А и В—два множества. х£А используется для обозначения того, что х есть элемент А или что х принадлежит А. Множество А совпадает с множеством В (обозначается Л = Б) тогда и только тогда, когда А и В имеют одни и те же элементы. Множество А есть подмножество множества В (обозначается A s В) тогда и только тогда, когда каждый элемент А есть элемент В. Множество А есть собственное подмножество множества В (обозначается Л с Б) тогда и только тогда, когда ДдВ и А фВ. Объединение двух множеств А и В (обозначается А и В) есть множество, состоящее из всех элементов, принадлежащих А или В. Пересечение двух множеств А и В (обозначается А (] В) есть множество, состоящее из всех элементов, которые принадлежат как А, так и В. !) См. Мендельсон (Mendelson Е.). Введение в математическую ло- логику.—М.: Наука, 1976.— Прим. ред. ЛИТЕРАТУРА 15 Разность двух множеств А и В (обозначается А — В) есть множество, состоящее из всех элементов, которые принадлежат А, но не принадлежат В. Определим теперь понятия «отношение» и «функция». Упорядоченную пару элементов обозначим (х, у), где х назы- называется первой, а у—второй координатой пары. Отношение (бинарное) есть множество упорядоченных пар. Например, отношение равенства есть множество упорядоченных пар, каждая из которых имеет первую координату, равную вто- второй. Область определения отношения R — это множество всех пер- первых координат элементов R, а его область значений—это множе- множество всех вторых координат. Функция есть такое отношение, в котором никакие два раз- различных элемента не имеют одинаковых первых координат. Если /—функция и х—элемент из области ее определения, то f(x) обо- обозначает вторую координату того единственного элемента из /, у которого первая координата есть х. f{x) называется значением f в х, и мы говорим, что / ставит значение f(x) в соответствие элементу х или имеет значение f(x) в точке х. В этой книге мы используем много общепринятых символов. Например, > означает «больше»; ^ «больше или равно»; < «меньше»; ^ «меньше или равно»; = «равно»; Ф «не равно»; ;=± «равно по определению» и т. д. Знак равенства «=» будет использоваться для многих целей. Он может использоваться в значениях «определяется соотношением», «совпадает», «эквива- «эквивалентно» или «равно». Это не будет приводить к путанице, так как читатель всегда сможет определить точный_, смысл из кон- контекста. ЛИТЕРАТУРА Лайтстоун (Lightstone A. H.) 1. The Axiomatic Method, an Introduction ^Mathematical Logic—Engle- wood Cliffs (N. J.): Prentice-Hall, 1964. H и л ь с о н (Nilsson N. J.) 1. Искусственный интеллект. Методы поиска решений.— М.: Мир, 1973. Пфейфер (Pfeiffer P. E.) 1. Sets, Events and Switching.—N. Y.: Me Graw-Hill, 1964. С лэйг л (Slagle J. R.) 1. Искусственный интеллект. Подход на основе эвристического програм- программирования.— М.: Мир, 1973. Столл (Stoll R.) 1. Множества. Логика. Аксиоматические теории.—М.: Просвещение, 1968. 2. Set Theory and Logic.— San Francisco: Freeman, 1963. Фейгенбаум и Фельдман (Feigenbaum E., Feldman J., ed.) 1. Вычислительные машины и мышление.— М.: Мир, 1967. Эрнст и Ньюэл (Ernst G. W., Newell А:) 1. GPS: a Case Study in Generality and Problem Solving.—N. Y.: Acade- Academic Press, 1969.
ГЛАВА 2 ЛОГИКА ВЫСКАЗЫВАНИЙ § 2.1. Введение Математическая логика рассматривает языки, основная цель которых—обеспечить символизм (систему формальных обозначе- обозначений) для рассуждений, встречающихся не только в математике, но и в повседневной жизни. В этой главе мы сперва изучаем простейшую математическую логику—логику высказываний (или исчисление высказываний). В следующей главе мы рассмотрим более общую систему—логику первого порядка (или исчисление предикатов первого порядка). В логике высказываний нас интересуют утвердительные пред- предложения, которые могут быть истинными или ложными, но не тем и другим вместе. Каждое такое утвердительное предложение называется высказыванием. Более формально, высказывание есть утвердительное предложение, которое либо истинно, либо ложно, но не то и другое вместе. Примеры высказываний: «Снег белый», «Сахар — углеводород», «Смит имеет степень доктора философии». «Истина» или «ложь», приписанная некоторому высказыванию, называется истинностным значением этого высказывания. Обычно мы изображаем «истину» буквой И, а «ложь» буквой Л- Кроме того, условимся использовать заглавные буквы или цепочку та- таких букв для обозначения высказываний. Например, мы можем обозначать высказывания следующим образом: Р;=±Снег белый. Q ^± Сахар — углеводород. R ;=± Смит имеет степень доктора философии. Символы Р, Q, R и т. д., которые используются для обозначе- обозначения высказываний, называются атомарными формулами или атомами. Из высказываний мы можем строить составные высказывания, используя логические связки. Примерами составных высказываний будут «Снег белый и небо чистое» и «Если Джона нет дома, то Мэри дома». Логическими связками в этих двух составных выска- высказываниях будут «и» и «если ..., то». В логике высказываний мы используем пять логических связок: ~ (не), Л (")> V (или), —у (если ... , то) и <-» (тогда и только тогда). Эти пять логи- логических связок используются для построения из высказываний § 2.1] ВВЕДЕНИЕ 17 составных высказываний. Эти связки можно использовать для построения все более сложных составных высказываний из со- составных высказываний путем повторного применения связок. Например, обозначим «Влажность большая» через Р, «Темпера- «Температура высокая» через Q и «Мы чувствуем себя хорошо» через С. Тогда предложение «Если влажность большая и температура высокая, то мы не чувствуем себя хорошо» можно записать в виде ((P/\Q)—*(-~С)). Следовательно, мы видим, что составное вы- высказывание может выражать довольно сложную мысль. В логике высказываний выражение, которое представляет высказывание, например Р, или составное высказывание, например ((Р /\ Q) —* —*(~С)), называется правильно построенной формулой. Определение. Правильно построенные формулы (или ко- короче—формулы) в логике высказываний определяются рекурсив- рекурсивно следующим образом: 1. Атом есть формула. 2. Если G—формула, то (~ G)—формула. 3. Если G и Я—формулы, то (G Л Я), (G\/ H), (G—+H) и (G*-+ H)—формулы. 4. Никаких формул, кроме порожденных применением ука- указанных выше правил, нет. Нетрудно видеть, что такие выражения, как (Р—>) и (Р V), не являются формулами. В случаях, когда не может возникнуть недоразумений, некоторые пары круглых скобок будут опускать- опускаться. Например, Р V Q и Р—>Q суть формулы (Р V Q) и (P—+Q) соответственно. Мы можем обойтись еще без некоторых скобок, приписывая убывающий ранг пропозициональным связкам в следую- следующем порядке: ♦->, -, Л, V, и требуя, чтобы связка с большим рангом всегда имела большую область действия. Таким образом, P-^-Q/xR означает (Р —► — (<ЭЛ /?)), a P-^Q A~R\/S означает (P-*(Q Л ((~ R) V V S))). Пусть G и Я—две формулы. Тогда истинностное значение формул (~G), (G/\H), (G\J H), (G—+H) и (G*->H) связано с истинностными значениями формул G и Я следующим образом: 1. ~G истинна, когда G ложна, и ложна, когда G истинна. ~ G называется отрицанием G. 2. (G Л Я) истинна, если G и Я обе истинны; в противном случае (G Л Я) ложна. (G Л Я) называется конъюнкцией G и Я. 3. (G V Я) истинна, если по крайней мере одна из формул G и Я истинна, в противном случае (G V Я) ложна. (G V Я) называется дизъюнкцией формул G и Я. 4. (G—+H) ложна, если G истинна и Я ложна; в противном случае (G—+H) истинна. (G—+H) читается: «Если G, то Я» или «G влечет Я».
18 ЛОГИКА ВЫСКАЗЫВАНИЙ [ГЛ. 2 5. (G <-►//) истинна тогда и только тогда, когда G и Я имеют одинаковые истинностные значения, в противном случае (G<r-*H) ложна. {G*->H) читается: «G тогда и только тогда, когда Я» или «G эквивалентна Я». Таблица 2.1 н (С Л Н) (С V Щ (G -+ Н) H) ■ И И л л и л и л л л и и и л л л и и и л и л и и и л л и Перечисленные соотношения удобно представить в виде табл. 2.1. Основываясь на этой таблице, мы опишем способы вычисления истинностных значений формулы по истинностным значениям атомов, входящих в эту формулу. § 2.2. Интерпретация формул логики высказываний Предположим, что Р и Q—два атома и что истинностные значения Р и Q суть И я Л соответственно. Тогда, согласно второй строке табл. 2.1 с Р и Q, подставленными вместо G и Н соответственно, мы найдем, что истинностные значения (~ Р), (Р A Q), (Р V Q), (Я — Q) и (Р «-> Q) суть Л, Л, И, Л я Л соот- соответственно. Истинностное значение любой формулы можно ана- аналогичным образом вычислить, исходя из истинностных значений атомов. Пример 2.1. Рассмотрим формулу G — (Р Л Q)-+ (#<->(~S)). Атомами в этой формуле являются Р, Q, R я S. Положим, что истинностные значения Р, Q, R я S равны И, Л, И я И соот- соответственно. Тогда (Р Л Q) есть Л, так как Q ложна; (~S) есть Л, так как S есть И; (R<r-*(~S)) есть Л, так как R есть И я (~S) есть Л; я (Р Л Q)-+{R <->(~ S)) есть И, так как (Р Л <2) есть Л я (R*-*(~S)) есть Л. Таким образом, формула G есть И, если атомам Р, Q, R я S приписаны значения И, Л, И я И соответственно. Приписывание истинностных значений {Я, Л, И, И} атомам {Р, Q, R, S} соответственно будет называться интерпре- интерпретацией формулы G. Так как каждому из атомов Р, Q, R я S можно приписать либо Я, либо Л, то имеется 2* = 16 интерпре- интерпретаций формулы G. В табл. 2.2 мы даем истинностные значения формулы G для всех таких 16 интерпретаций. § 2.2] ИНТЕРПРЕТАЦИЯ ФОРМУЛ ЛОГИКИ ВЫСКАЗЫВАНИЙ 19 Таблицу вида 2.2, в которой указаны истинностные значения формулы G при всевозможных истинностных значениях атомов, встречающихся в G, будем называть истинностной таблицей формулы G. Мы дадим теперь формальное определение интерпретации про- пропозициональной формулы. Таблица 2.2 Истиииостиая таблица формулы (Р Л Q) ->■ (R «-> (~ 5)) Р Q R S (~S) (P/\Q) <K«->(~S)) И И И И И И И И л л л л л л л л И И И И л л л л И И И И л л л л И И л л И И л л И И л л И И л л И л И л И л И л И л И л И л И л л И л И л И л И л И л И л И л И И И И И л л л л л л л л л л л л л И И л л И И л л И И л л И И л л И И л И И И И И И И И И И И И Определение. Пусть G—данная пропозициональная фор- формула и А1г А2, ..., Ап—ее атомы. Тогда интерпретацией фор- формулы G является такое приписывание истинностных значений атомам Аг, ..., Ап, при котором каждому из Л,-приписано либо И, либо Л (но не оба вместе). Определение. Говорят, что формула G истинна при не- некоторой интерпретации, тогда и только тогда, когда G полу- получает значение Я в этой интерпретации; в противном случае го- говорят, что G ложна при этой интерпретации. Если в некоторой формуле имеется п различных атомов, то у этой формулы будет 2" различных интерпретаций. Иногда, если Alt ..., Ап—все атомы, встречающиеся в некоторой формуле, бывает удобнее представить интерпретацию множеством {ml; ... ..., тп}, где /л,-—либо Ah либо ~ At. Например, множество Р, ~ Q, ~ R, S} представляет интерпретацию, в которой атомам , Q, R я S соответственно приписаны И, Л, Л и Я. Иными словами, если в множество, представляющее интерпретацию таким способом, входит сам атом А, то ему приписывается значение Я; если же в это множество входит отрицание атома А, то А при- приписывается Л. Это соглашение будет действовать на протяжении всей книги. J.1
[ГЛ. 2 20 ЛОГИКА ВЫСКАЗЫВАНИЙ § 2.3. Общезначимость и противоречивость в логике высказываний В этом параграфе мы будем рассматривать формулы, которые истинны при всех возможных интерпретациях, и формулы, кото- которые ложны при всех возможных интерпретациях. Пример 2.2. Рассмотрим формулу Q Атомы этой формулы—Р и Q. Следовательно, формула G имеет 22 = 4 интерпретации. Истинностные значения G при всех ее че- четырех интерпретациях даны в табл. 2.3. Мы видим, что формула G Истиниостиая Р И И Л л таблица для Q И Л и л «я- (Р-* и л и и -*е>АР)- Q) *<? (Р -+Q) А Р и Л Л л т а б л и ц а ((/>-*<?) Л Р)- И И и и 2.3 Q истинна при всех интерпретгциях. Такую формулу будем назы- называть общезначимой формулой (или тавтологией). Пример 2.3. Рассмотрим формулу G — (P^Q)A(PA ~Q). Истинностная таблица для G дана в табл. 2.4. Мы видим, что С ложна при всех ее интерпретациях. Эту формулу будем назы- называть противоречивой формулой (или противоречием). Истинностная р И И Л л таблица Q И Л и л для (Р - Q Л И л и -* Q) А (Р А - (Р-+ (?) И л и и (Ра Л И Л Л Таблица - Q) (Р ->■ (?) Л (Р Л - Л Л Л Л 2.4 Q) Сейчас мы даем формальные определения общезначимости и противоречивости. Определение. Говорят, что формула общезначима, тогда и только тогда, когда она истинна при всех возможных интер- интерпретациях. Формула необщезначима тогда и только тогда, когда она не является общезначимой. § 2.41 НОРМАЛЬНЫЕ ФОРМЫ В ЛОГИКЕ ВЫСКАЗЫВАНИЙ 21 Определение. Говорят, что формула противоречива (или невыполнима), тогда и только тогда, когда она ложна при всех своих интерпретациях. Говорят, что формула непротиворечива (или выполнима), тогда и только тогда, когда она не является противоречивой. В силу приведенных определений очевидны следующие наблю- наблюдения: 1. Формула общезначима тогда и только тогда, когда ее от- отрицание невыполнимо. 2. Формула невыполнима тогда и только тогда, когда ее от- отрицание общезначимо. 3. Формула необщезначима тогда и только тогда, когда су- существует по крайней мере одна интерпретация, при которой эта формула ложна. 4. Формула выполнима тогда и только тогда, когда сущест- существует по крайней мере одна интерпретация, при которой эта фор- формула истинна. 5. Если формула общезначима, то она непротиворечива, но не наоборот. 6. Если формула невыполнима, то она необщезнач-има, но не наоборот. Пример 2.4. Используя метод истинностных таблиц, чита- читатель может установить следующее: a) (РД~ Р) противоречива; следовательно, необщезначима. b) (Р V ~ Р) общезначима; следовательно, непротиворечива. c) (Р—>- ~ Р) необщезначима, но тем не менее непротиворе- непротиворечива. Если формула F истинна при интерпретации /, то мы гово- говорим, что / удовлетворяет F, или F выполнена в интерпретации 1. С другой стороны, если формула F ложна при интерпретации /, то мы говорим, что / опровергает F, или F опровергается в интерпретации I. Например, формула (Р Д (~ Q)) выполнена в интерпретации {Р, ~ Q}, но опровергается в интерпретации {Р, Q\. Когда интерпретация / удовлетворяет формуле F, I на- называется также моделью F. Позднее будет показано, что доказательство общезначимости или противоречивости формул —очень важная задача. В логике высказываний ввиду конечности числа интерпретаций мы путем полного перебора всех возможных интерпретаций всегда можем решить, общезначима (противоречива) ли формула. § 2.4. Нормальные формы в логике высказываний Как выяснится позднее, часто необходимо преобразовывать фор- формулы из одной формы в другую, особенно—в «нормальную фор- форму». Преобразования выполняются путем замены в данной фор- формуле некоторой ее подформулы на некоторую формулу, «эквива-
22 ЛОГИКА ВЫСКАЗЫВАНИЙ [ГЛ. 2 лентную» заменяемой, и повторением этой процедуры до тех пор, пока не получится желательная форма. «Эквивалентность» вводится следующим образом. Определение. Говорят, что две формулы F и G эквива- эквивалентны или что F эквивалентна G (обозначается F=G), тогда и только тогда, когда истинностные значения F и G совпадают при каждой интерпретации F и G. Таблица 2.5 Истинностная таблица (Р -> Q) и (~ Р v Q) р И И л л Q И л И л (/>-► (?) И л И И (- Р V Q) И л И И Пример 2.5. Мы можем проверить путем рассмотрения истинностной таблицы (табл. 2.5), что (Р—*-Q) эквивалентна (~Р VQ). Нам нужен достаточный запас эквивалентных формул, чтобы проводить преобразования формул. Пусть |j| обозначает форму- Таблица 2.6 B.1) ()A(F) B.2) F -*G = ~F v G B.3) (a) F v G = G v F; (Ъ) F aG = G AF B.4) (a) (F v G) v H = Fv (G v H); (b) (F A G) A H = F A (G A B.5) (a) Fv(GaH) = (FvG)a(FvH); (b) F л (GvH) = (F л G) v( 26 (b| f () B.6) Q B.7) (a)Fv|=| B.8) (a) F v ~F = H B.9) ~(~F) = F B.10) (a) ~(F v G)= G; (b) (b) л ~F = \ лу, которая всегда истинна, и П —формулу, которая всегда ложна. Тогда мы имеем несколько полезных пар эквивалентных формул, приведенных в табл. 2.6, где F, G и Н суть формулы. Для простоты мы будем называть каждую из этих пар «законом». Законы в табл. 2.6 могут быть проверены с помощью истин- истинностных таблиц. Законы B.3а), B.3Ь) часто называются ком- коммутативными законами; B.4а), B.4Ь)—ассоциативными закона- законами; B.5а), B.5Ь)—дистрибутивными законами и B.10а), B.10Ь) — законами де Моргана. §2.4] НОРМАЛЬНЫЕ ФОРМЫ В ЛОГИКЕ ВЫСКАЗЫВАНИЙ 23 Вследствие ассоциативных законов скобки в (F \/ G) \/ Н или F V (G V Щ могут быть опущены. Иными словами, мы можем написать F \/ G \/ Н вместо {F \J G)\J Н и F V (G V Н). Более общо, мы можем без всякой двусмысленности писать Рг \/ F2 \/ . . . ... V F „. где Fx' F2, ..., Fn суть формулы. F1\/F2y ... ... V Fn истинна, если по крайней мере одна из F,-, l^i^n, истинна; в противном случае она ложна. F1 V F2 \/ . . . \/ Fп на- называется дизъюнкцией формул F1, .. ., Fn. Аналогично мы можем написать формулу F1 /\ F2 /\ • • • Л Fn> которая истинна, если все Flt . . .; Fп истинны, и ложна в противном случае. F1 Д F2 Д . . . ... Д Fn называется конъюнкцией формул Fx, .. ., Fn. Отметим, что порядок, в котором Ft встречаются в дизъюнк- дизъюнкции иди конъюнкции, несуществен. Например, /Ч V ^2 V F3 = FX\J F3 V F2 = F2 V F1 V F3 = F3 \/'f2 V?t = = F2\/ Fa \/ F, = Fa Vfi VF2. Сейчас мы следующим образом определим нормальные формы* Определение. Литера есть атом или отрицание атома. Определение. Говорят, что формула F находится в конъ- конъюнктивной форме, тогда и только тогда, когда F имеет вид F ^ тл д, где каждая из Flt F2 Fn есть дизъюнкция литер. Пример 2.6. Пусть Р, Q и R — атомы. Тогда F^±(P\/ V ~ Q V R) Л (~Р V Q) есть формула в конъюнктивной нор- нормальной форме. Для этой формулы Рг={Р \/ ~ Q V R) и F2 = = (~ Р V Q). Ясно, что Fl есть дизъюнкция литер Р, ~Q и /? и F2 есть дизъюнкция литер ~Р и Q. Определение. Говорят, что формула F находится в диз- дизъюнктивной нормальной форме, тогда и только тогда, когда F имеет вид F^^F1\/ ... V Fn, п~^\, где каждая из Fx, F2, . .. ..., Fn есть конъюнкция литер. Пример 2.7. Пусть Р, Q и 7? — атомы. Тогда F^=z(~ P /\ Л Q) V (Р Л ~ Q Л ~ Л) есть формула в дизъюнктивной нормаль- нормальной форме. Для этой формулы Fx = (~ Р Д Q) и F2 = (Р Д ~ Q Д Л ~ R). Ясно, что Ft есть конъюнкция литер ~ Р и Q и F2 есть конъюнкция литер Р, ~Q и ~ R. Всякая формула может быть преобразована в нормальную форму. Это легко достигается использованием законов, приве- приведенных в табл. 2.6. Ниже приведен эскиз процедуры преобразо- преобразования: Шаг 1. Используем законы: B.1) F<->G = (F-^G)A(G-^F), B.2) F^G= ~F V G, чтобы устранить (элиминировать) логические связки <-> и —<■. Шаг 2. Несколько раз используем закон B.9) ~(r-F) = F
24 ЛОГИКА]ВЫСКАЗЫВАНИЙ [ГЛ. 2 и законы де Моргана: B.10а) ~(F VG) = ~F A ~ G, B.10b) ~ (F A G) = ~ F V ~--G, чтобы перенести знак отрицания непосредствгнно к атомам. Шаг 3. Несколько раз используем дистрибутивные законы: B.5а) F\J(GAH) = {F\JG)A{F\JH), B.5b) F A (G V H) = (F A G) V (F Л Н) и другие законы, чтобы получить нормальную форму. Пример 2.8. Получить дизъюнктивную нормальную форму для формулы (Р V ~ Q) —>■ R- Так как (PV ~Q) — Л=~(Я V ~Q) V Я по B.2) = (~/>A~(~Q))V ^ по B.10а) = (~PA"Q) V >R no B.9), то дизъюнктивная нормальная форма для (Р\/~ Q)—>-R есть (~Р AQ) V R. Пример 2.9. Получить конъюнктивную нормальную форму для формулы (Р A(Q—> R)) —>-5. (Р Л (Q — Л)) — 5=(Р а (~ Q V Л)) — S (A(QV))V = (~PV~(~ Q V R)) V P V Q) Л (~ Р V ~ /?)) V 5 PVQ))AE V ( Конъюнктивная нормальная форма для (Р A(Q —*■ R)) V~PV Q)A(S\/~P\/~R). § 2.5. Логические следствия по B.2) по B.2) по B.10Ь) по B.10а) по B.9) по B.5а) по B.3а) по B.5а) по B.4а). 5 есть В математике, так же как в обычной жизни, нам часто нужно решить, следует ли одно утверждение из нескольких других. Это приводит к понятию «логического следствия». Прежде чем дать соответствующее определение, рассмотрим следующий пример. Пример 2.10. Предположим, что курс акций падает, если предварительные процентные ставки растут. Предположим также, что большинство людей несчастны, когда курс акций падает. Положим, что предварительные процентные ставки растут. Из этого можно заключить, что большинство людей несчастны. § 2.5] ЛОГИЧЕСКИЕ СЛЕДСТВИЯ 25 Чтобы установить это заключение, обозначим утверждения следующим образом. P^i Предварительные процентные ставки растут. S ^± Курс акций падает. U ^ Большинство людей несчастны. В этом примере четыре утверждения. A) Если предварительные процентные ставки растут, то курс акций падает. B) Если курс акций падает, то большинство людей несчастны. C) Предварительные процентные ставки растут. D) Большинство людей несчастны. Эти утверждения сначала выразим в следующей символи- символической форме: (Г) Р-^5, B') S-+U, C') Р, D') U. Мы покажем, что D') истинно, как только (Г) А B') истинно. Сперва преобразуем формулу ((Р —*■ S) A (S —>■ U) А Р) ставляющую (Г) А B') А C')) в нормальную форму: ((Р -* S)A(S — U)A />)=((~ Р V S) A (~ S V U) А Р) по = (P/\(~PVS)A(~-S\/V)) no = (((PA~P)V(PAS))A(~SVU)) no = ((□ V(PAS))A(~SVU)) = (PAS)A{~S\/U) = {PASA~S)\/(PASMJ) = (PAD)V(PASAU) = D\/(PASAU) no no по no no no А C') (пред- (предB.2) B.3b) B.5b) B.8b) B.6a) B.5b) B.8b) B.7b) B.6a) Следовательно, если ((Р—>■ S)A(S—>■ U)AP) истинна, то (PASAU) истинна. Так как (Рf\SAU) истинна, только если Р, S и U все истинны, мы заключаем, что U истинна. Так как U истинна, как только (Р —<-S), (S —>■ U) и Р истинны, то U назы- называется в логике логическим следствием (Р-^-5), E —* U) и Р. Более формально мы определяем логическое следствие следую- следующим образом. Определение. Пусть даны формулы Fx, F2, . . ., Fn и фор- формула G. Говорят, что G есть логическое следствие формул Flt ..., Fn (или G логически следует из Flt ..., Fn), тогда и только тогда, когда для всякой интерпретации /, в которой F1AFiA- • ■ А^
26 ЛОГИКА ВЫСКАЗЫВАНИЙ ГЛ. истинна, G также истинна. Flt F2, ■ ■ ■, Fn называются аксиомами (или постулатами, или посылками) G. Теорема 2.1. Пусть даны формулы Flt ..., Fnu формула G. Тогда G есть логическое следствие F±, ..., Fn тогда и только тогда, когда формула ((F1A ■ ■ ■ A^J —»• G) общезначима. Доказательство (=>). Предположим, что G есть логиче- логическое следствие формул Flt ..., Fn. Пусть / есть произвольная интерпретация. Если Flt ■ ■ ■, Fп истинны в /, то по4 определе- определению логического следствия G истинна в /. Следовательно, ((Z7! Л • • • Л Fn) —>- G) истинна в /. С другой^стороны, если не все формулы Flt .. ., Fп истинны в /, т. е. одна из них ложна в /, то ((F1 Л • • • Л Fn) —>■ G) истинна в /. Таким образом, мы пока- показали, что ((Fl Л • • • Л Fn) —>■ G) истинна при всякой интерпрета- интерпретации, т. е. ((Fl Л ■ ■ • Л Fn) —>■ G)—общезначимая формула. (<=) Предположим, что (Fi Л • • • Л Fn) —- G—общезначимая формула. Для всякой интерпретации /, если (/^ Л ■ • • Л Fn) истинна в /, то G должна быть истинна в /. Следовательно, G есть логическое следствие Flt ..., Fn, что и требовалось доказать. Теорема 2.2. Пусть даны формулы Flt . .., Fnu формула G. Тогда G есть логическое следствие Fx, ..., Fn тогда и только тогда, когда {Fx A F2 Л • ■ • AFn Л~ G) противоречива. Доказательство. По теореме 2.1 G — логическое следствие Flt ■.., Fn тогда и только тогда, когда формула ((F1A • ■ • AFn)—^-G) общезначима. Следовательно, G—логическое следствие формул Flt ..., Fn тогда и только тогда, когда отрицание ((/^Л ••■ AFn) —>- противоречиво. Так как мы заключаем, что теорема 2.2 истинна. Теоремы 2.1 и 2.2 очень важны. Из них вытекает: доказа- доказательство того, что отдельная формула есть логическое следствие конечного множества формул, эквивалентно доказательству того, что некоторая связанная с ними формула общезначима или про- противоречива. Если G есть логическое следствие формул Fu ..., Fn, то формула ((Fi ... Fn)-+G) называется теоремой, a G назы- называется также заключением теоремы. В математике так же, как и в других областях, многие проблемы могут быть сформулиро- сформулированы как проблемы доказательства теорем. Это будет разъясне- разъяснено в следующем параграфе. Прежде чем перейти к этому пара- параграфу рассмотрим простой пример, показывающий, как можно использовать теоремы 2.1 и 2.2. 5 ЛОГИЧЕСКИЕ СЛЕДСТВИЯ Пример 2.11. Рассмотрим формулы 27 Покажем, что G есть логическое следствие Z7, и F2. Истинностная р И И Л л таблица Q ' И Л и л для (Р—♦ P-Q И л и и О).л- -Q Л И Л и -Си (Р Т абли р ->■ Q)A~Q Л Л л и ца 2.7 ~р Л Л и и Метод 1. Мы можем использовать метод истинностных таблиц чтобы показать, что G истинна в каждой модели формулы (Р —*■ Q)A A~Q- Из табл. 2.7 мы видим, что есть только одна модель для (P^Q)A~Q> а именно \~ Р, ~ Q}. Формула ~Р истинна в этой модели. Таким образом, по определению логического следст- следствия мы заключаем, что Р есть логическое следствие (Р —»■ Q) и ~ Q. Метод 2. Мы можем использовать теорему 2.1. Это может быть сделано просто путем расширения истинностной таблицы Таблица 2.8 Истинностная таблица для ((Р —>■ Q)A~Q) —>■ ~ Р ~Q (Р ->-Q)A~Q ~Р И И л л И л И л И л И И л И л И л л л И л л И И И И И И в табл. 2.7, т. е. путем вычисления истинностных значений фор- мулы((Р—*Q)A~ Q)-*~ P. Табл. 2.8 показывает, что ((Р-> Q)A А ~ Q) —>■ ~ Р истинна при всех интерпретациях. Следовательно, Р-^ Q)A~ Q) —* ~ Р общезначима и, согласно теореме 2.1, Р есть логическое следствие (Р—>- Q) и ~ Q.
28 ЛОГИКА ВЫСКАЗЫВАНИИ [гл. а Q)VD)V~P Q ((Л = (PVQ)V~P Q Мы можем также доказать общезначимость формулы путем преобразования ее в конъюнктивную нормальную форму: ((Р — Q)A ~ Q) ^ ~ Р = ~ ((Р — Q)A ~ Q) V ~ Р по B.2) = ~((~PVQ)A~Q)V~P по B.2) по B.5Ь) поB.8Ь) по B.6а) по B.10Ь) по B.3а) по B.4а) по B.8а) = Н по B.7а) Таким образом, ((Р —*■ Q)A~ Q)—*- ~ Р общезначима. Метод 3. Мы можем использовать теорему 2.2. В этом слу- случае мы докажем, что ((Р-+ Q)A~Q)A(~(~/3)) = (/3— Q)A~ QAP противоречива. Опять, как и в методе 2, мы можем использовать метод истин- истинностных таблиц, чтобы показать, что (Р —■> Q)A~ QAP ложна в каждой интерпретации. Из табл. 2.9 мы заключаем, что (Р —»- Q)A Истинностная таблица для (Я- Таблица ■Q)A~QAP 2.9 и и л л Q И Л И Л Р -+Q и л и и ~Q Л И л и (Р -* Q)A~QAP Л Л Л Л есть AQA противоречива и, согласно теореме 2.2, логическое следствие формул (Р —>■ Q) и ~ Q. Мы можем также доказать противоречивость формулы (P—*Q)A Л~ QAP путем ее преобразования в дизъюнктивную нормаль- нормальную форму: (Я— Q)A~ QA/> = (~ PVQ)A~ QAP = (~РЛ~ QA^)V(QA~ QAP) = DVD = D Таким образом, (Р—>■ Q)A~ QA? противоречива. no B.2) no B.5b) no B.8b) no B.6a). § 2.6 ПРИМЕНЕНИЯ ЛОГИКИ ВЫСКАЗЫВАНИЙ 29 § 2.6. Применения логики высказываний После обсуждения различных понятий в предшествующих пара- параграфах, мы рассмотрим сейчас применения логики высказываний. Они лучше всего иллюстрируются примерами. Пример 2.12. Допустим, что если конгресс отказывается принять новые законы, то забастовка не будет окончена, если только она не длится более года и президент фирмы не уходит в отставку. Закончится ли забастовка, если конгресс отказывается действовать и забастовка только что началась? Сперва преобразуем утверждения в символы: Р: Конгресс отказывается действовать. Q: Забастовка оканчивается. R: Президент фирмы уходит в отставку. 5: Забастовка длится более года. Тогда факты, данные в примере, могут быть представлены сле- следующими формулами: Fr: (Р —>- (~ Q\/(R А$))) ^=± Если конгресс отказывается при- принять новые законы, то забастовка не будет окончена, если она не длится более года и президент фирмы не уходит в отставку. F2: Р ^ Конгресс отказывается'действовать. Z^: ~ 5~:;3абастовка только что5началась. Можем ли мы заключить из фактов Flt F2 и F3, что заба- забастовка не будет окончена, т. е. сможем ли мы показать, что ~ Q есть логическое следствие Flt F2 и F3? По теореме 2.1 это экви- эквивалентно тому, что ((Р —(~ QV(RAS)))APA~S)-+~ Q — общезначимая формула. Истинностные значения указанной фор- формулы при всех интерпретациях приведены в табл. 2.10. Из табл. 2.10 видно, что не существует интерпретации, при которой данная - формула ложна. Следовательно, формула ((Р-*(~ QV(/?AS)))APA~S)--~ Q общезначима. Поэтому ~ Q есть логическое следствие Fu F2 и F3, т. е. мы можем получить заключение ~ Q из Flt F2 и F3. Следова- Следовательно, забастовка не будет окончена. Пример' 2.13 (проблема химического синтеза). Предполо- Предположим, что мы можем провести следующие химические реакции: С + О2-.СО2,
30 ЛОГИКА ВЫСКАЗЫВАНИЙ [ГЛ. 2 Предположим, что у нас есть некоторые количества MgO, H2, О2 и С. Покажем, что мы сможем получить Н2СО3 Таблица 2.10 Истинностная таблица для -^~Q, где Flz=t p и и и и и и и и л л л л л л л л Q и и и и л л л л и и и и л л л л R и и л л и и л л и и л л и и л л S и л и л и л и л и л и л и л и л Ft и л л л и и и и и и и и и и и и F, и и и и и и и и л л л л л л л л F, л и л и л и л и л и л и л и л и ~Q (F л л л л и и и и л л л л ч и и и ,AF2AF3)^-~Q и и и и и и и и и и и и и и и и Для этой задачи мы можем рассмотреть MgO, H2, О2 и С как атомарные формулы. Тогда указанные выше химические реак- реакции могут быть представлены следующими формулами: Л,: (MgOAH2)-*(MgAH2O), Л2: (СДО2) —СО2, Л3: (СО2ДН2О) —H2COS. Так как мы имеем MgO, H2, О2 и С, то эти факты могут быть представлены следующими формулами: At: MgO, А&: Н„ А6: О„ Л,:. С. Сейчас нашу задачу можно рассматривать как задачу дока- доказательства, что Н2СО3 есть логическое следствие Alt ..., Л7. Последнее по теореме 2.2 истинно, если (At/\ . . . ЛЛ7)Д ~Н2СО § 2.6 ПРИМЕНЕНИЯ ЛОГИКИ ВЫСКАЗЫВАНИЙ 31 противоречива. Мы докажем это, преобразуя формулу (Л1Л--.ЛД,Л~Н1СО8) в дизъюнктивную нормальную форму. (ЛХЛ • • • ЛЛ,Л~ Н2СО3) = ((MgOAH2) — (MgAH2O))A((CAO2) — СО,) Л ((СО, Л Н,О) — Н2СО3) AMgOAH2AO2ACA~ Н2СО3 = (~MgOV~H2VMg)A(~MgOv~H2 VH2O)A(~CV~O2VCO2) A(~CO2V~H2OVH2CO3) AMgOAH,ДО2ЛСД ~ H2CO3 = (~MgOV~H2VMg)A(~MgOv~H2 VH2O)AMgOAH2A(~CV~O2VCO2) лсдо2 A(~ CO2V ~ H2OvH2CO3) л ~ H2CO3 gA2 A(~CO2V~H2O)A~H2CO3 = (-CO2V-H2O)AH2OACO2AMg O Ag2 = DAMgAMgOAH2ACAO2 A ~ H2CO3 Так как □ всегда дожно, формула (ЛХЛ • • • ЛЛ,Л ~ Н2СО3) противоречива. Следовательно, Н2СО3 есть логическое следствие из Alt .. ., Л,, т. е. мы можем получить Н2СО3 из MgO, Н2, О2 и С. Использованная выше процедура доказательства противо- противоречивости формулы путем ее преобразования в □ иногда назы- называется методом умножения, потому что процесс преобразования очень похож на раскрытие скобок в произведении сумм. При- Пример 2.13 — очень простая задача химического синтеза. В дейст- действительности есть сотни химических реакций. Чтобы эффективно, использовать ЭВМ, нам нужна эффективная машинная программа доказательства теорем. Это будет обсуждаться подробно в гла- главах 4—9. В приведенных выше примерах мы показали, что логика высказываний может применяться ко многим задачам. Метод, состоит в том, чтобы сначала описать задачи формулами, а затем доказать, что эти формулы общезначимы или противоречивы. Мы использовали метод истинностных таблиц и метод умножения для доказательств общезначимости (или противоречивости). В гла- главах 4—9 для таких доказательств будут даны более эффектив- эффективные методы.
32 ЛОГИКА ВЫСКАЗЫВАНИЙ (ГЛ. 2 ЛИТЕРАТУРА Просвещение, 1968. Гильберт и Аккерман (Hilbert D., Ackermann W.) 1. Основы теоретической логики.—М.: ИЛ 1947 К лини (Kleene S. С.) 1. Математическая логика.—М.: Мир, 1973. Мендельсон (Mendelson E.) 1. Введение в математическую логику,—М ■ Наука 1976 Столл (Stoll R. R.) У ' 1. Множества. Логика. Аксиоматические теории — М Уайтхеди Рассел (Whitehead A. N., Russell В.) 1. Principia Mathematica. — L.; N. Y.: Cambridge Univ. Press, 1927. УПРАЖНЕНИЯ К § 2.1 1. Записать следующие положения с помощью формул. (a) Данное отношение есть отношение эквивалентности тогда и точько тогда когда оно рефлексивно, симметрично и транзитивно. (b) Если влажность так высока, то либо после полудня либо вечером будет (c) Лечение от рака не будет найдено, пока не определены его причины и не найдены новые лекарства. (d) Требуется храбрость и мастерство, чтобы подняться на эту гору. (e) Если этот человек вкладывает столько усилий в избирательную компа- компанию, то он, вероятно, будет избран. 2. Пусть Я z~ Ему нужен доктор, Q z=l Ему нужен адвокат, R -— С ним произошел несчастный случай, 5 ^ Он болен, U =i Он ранен. Запишите следующие формулы по-русски: (a) (S (с) (P (е) ~ P)A(R-+Q), (b) (d) К § 2.2 3. Заполните следующую истинностную таблицу (табл. 2.11) для формулы (-PvQ)a(-(Pa -<?)). К§ 2.3 4. Для каждой из следующих формул определите, верно ли, что она обще- общезначима, необщезначима, противоречива, непротиворечива или обладает некото- рои комбинацией этих свойств: (a) ~(_p)_^pt (с) ~(PVQ)V ~Q, (е) (P-^Q)-+(~Q^^P)t (g) Pv(P—>- Q), (i) P\/(Q —>■ ~ P), (k) ~PA(~(P-*Q)), (m)~ P—,P. (b) P- (d) (P^ @ (P- (j) (^V-Q)A(-PvQ), A) P^-P, ■Q) —(Q-*P). УПРАЖНЕНИЯ 33 Таблица 2.11 ~P ~Q (Pa~Q) ~(PA~Q) (~PVQ)A(- (РЛ- Q)) И и л л и л и л 5. Рассмотрите следующее утверждение. Если конгресс отказывается принять новые законы, то забастовка не будет окончена, если только она не длится более года и президент фирмы не уходит в отставку; и либо конгресс примет новые законы, либо забастовка не окон- окончится, хотя и продолжается более года. Противоречиво ли это утверждение? Объясните. К § 2.4 в. Преобразуйте следующие формулы в дизъюнктивную нормальную форму: (a) (~PaQ)—►/?, (Ь) Я—-((QA/?)—-S), (с) ~(Pv~Q)A(S-+r), (d) (P—►(?) — /?, (е) -(PaQ)A(PvQ). 7. Преобразуйте следующие формулы в конъюнктивную нормальную форму: (a) Pv(~PAQAR), (Ь) ~ (P-^Q)V(PvQ), {С) ^(p_^Q)) (d) {P^Q)_+R> (е) (~ PAQ)V(PA~ Q). 8. Возможна ли формула, которая находится и в конъюнктивной нормаль- нормальной форме, и в дизъюнктивной нормальной форме? Если да, то приведите пример. 9. Проверьте эквивалентность следующих формул, преобразуя формулы с обеих сторон от знака = к одной и той же нормальной форме: (QAR)), ~Qa(PvQ), (a) РаЯ = Р и PvP=P, (b) (P_+Q)A(P-^tf) = (P-^ (c) (P_+Q)_^(PAQ) = (^p (d) PaQa(~Pv~Q) = ~ Pa (e) Pv(P—(PaQ)) = ~Pv~) К § 2.5 и 2.6 10. Докажите, что (~ Q —>■ ~ Р) есть логическое следствие (Р —>■ Q). 11. Если конгресс отказывается принять новые законы, то забастовка не будет окончена, кроме, случая, когда она длится более года и президент фирмы уйдет в отставку. Допустим, что конгресс отказывается действовать, забастовка оканчивается и президент фирмы не уходит. Длилась ли забастовка более года? 12. Рассмотрите следующие утверждения: F\ Z^L Том не может быть хорошим студентом, если неверно, что он спо- способный и его отец помогает ему. F<i Z^i Том — хороший студент, только1 если его отец помогает ему. Покажите, что F2 есть логическое следствие Fv 2 Н. Чень, Р. Ли
34 ЛОГИКА ВЫСКАЗЫВАНИЙ [ГЛ. 2 вие 13. Покажите, что для следующих утверждений F2 есть логическое следст- F1 zzl Если президент не имеет соответствующего авторитета или если ои ие желает взять на себя ответственность, то порядок не будет восстановлен и распространение волнений не прекратится до тех пор, пока участникам волнений это не надоест и власти не начнут прими- примирительные действия. f2 ^It Если президент не желает взять на себя ответственность и участ- участникам волнений это не надоест, то волнения будут расширяться. 14. Покажите, что Q есть логическое следствие (Я называемое правило модус поненс (modus ponens). Q) и Я. Это так ГЛАВА 3 ЛОГИКА ПЕРВОГО ПОРЯДКА § 3.1. Введение Исходные элементы в логике высказываний—это атомы. Из атомов мы строим формулы. Затем мы используем формулы, чтобы выразить различные сложные мысли. Как сказано в главе 2, в этой простой логике атом представляет повествовательное пред- предложение, которое может быть или истинно или ложно, но не то и другое вместе. Атом рассматривается как единое целое. Его структура и состав не анализируются. Однако есть много мыслей, которые не могут быть рассмотрены таким простым способом. Например, рассмотрим следующее умозаключение: Каждый человек смертен. Так как Конфуций человек, то он смертен. Приведенное рассуждение интуитивно корректно. Однако если мы введем обозначения Р: Каждый человек смертен, Q: Конфуций — человек, R: Конфуций смертен, то R не есть логическое следствие Р и Q в рамках логики вы- высказываний. Это происходит потому, что в логике высказываний структура Р, Q и R не используется. В этой главе мы введем логику первого порядка, которая по сравнению с логикой вы- высказываний имеет еще три логических понятия (называемые тер- термами, предикатами и кванторами). Позднее станет ясно, что большая часть повседневного и математического языка можетбыть формализована логикой первого порядка. Так же, как и в логике высказываний, мы сначала определим атомы логики первого порядка. Прежде чем дать формальное определение атома, рассмотрим несколько примеров. Допустим, что мы желаем представить утверждение «х боль- больше 3». Сначала мы определим предикат БОЛЬШЕ (х, у), который означает «х больше у». (Отметим, что предикат есть отношение1).) Тогда выражение «х больше 3» представляется выражением БОЛЬ- БОЛЬШЕ (х, 3). г) Это не вполне точно; см. ниже определение предиката как функции, принимающей значение И на наборах, удовлетворяющих данному отношению " (и Л на наборах, не удовлетворяющих v). — Прим ред. 2' Зак. 112
36 ЛОГИКА ПЕРВОГО ПОРЯДКА [ГЛ. 3- Аналогично мы представим «х любит у» предикатом ЛЮБИТ (х, у). Тогда «Джон любит Мэри» может быть представлено вы- выражением ЛЮБИТ (Джон, Мэри). В логике первого порядка мы также можем использовать функциональные символы. Например, мы можем использовать плюс (х, у), чтобы обозначить «х-\-у», и отец (х), что означает «Отец человека х». Предложение «х-\-1 больше х» и «Отец Джона любит Джона» можно символически представить в виде БОЛЬШЕ (плюс (х, 1), х) и ЛЮБИТ (отец (Джон), Джон). В приведенных примерах все выражения БОЛЬШЕ (х, 3), ЛЮ- ЛЮБИТ (Джон, Мэри), БОЛЬШЕ (плюс (х, 1), х) и ЛЮБИТ (отец (Джон), Джон) являются атомами и логики первого порядка, где БОЛЬШЕ и ЛЮБИТ — предикатные символы; х—переменная; 3, Джон и Мэри — индивидные символы или константы; и отец и плюс — функциональные символы. Вообще говоря, для построения атомов нам разрешается использовать следующие четыре типа символов: (i) Индивидные символы или константы. Это обычно имена объектов такие, как Мэри, Джон и 3. (и) Символы предметных переменных. Это обычно строчные буквы х, у, z, . . ., возможно, с индексами. (iii) Функциональные символы. Это обычно строчные буквы /, g, h, . . . или осмысленные слова из строчных букв такие, как отец и плюс. (iv) Предикатные символы. Это обычно прописные буквы Р, Q, R, ... или осмысленные слова из прописных букв такие, как БОЛЬШЕ или ЛЮБИТ. Всякая функция или предикатный символ имеет определенное число аргументов. Если функциональный символ / имеет п аргу- аргументов, то / называется п-местным функциональным символом. Отметим, что индивидный символ или константа может рассматри- рассматриваться как функциональный символ без аргументов. Аналогично, если предикатный символ Р имеет п аргументов, то Р называется п-местным предикатным символом. Например, отец—одноместный функциональный символ, а БОЛЬШЕ и ЛЮБИТ—двухместные предикатные символы. Функция есть отображение, которое отображает список кон- констант в данную константу. Например, отец—функция, которая отображает человека по имени Джон в человека, который есть отец Джона. Следовательно, отец (Джон) представляет человека, даже если его имя неизвестно. В логике первого порядка мы называем выражение отец (Джон) термом. Более формально, мы имеем следующее Определение. Термы определяются рекурсивно следу- следующим образом: (i) Константа есть терм. (И) Переменная есть терм. § з 1] ВВЕДЕНИЕ 37 (iii) Если f есть я-местный функциональный символ и tlt ... ..., tn—термы, то f(tu ..., tn)—терм. (iv) Никаких термов, кроме порожденных применением ука- указанных выше правил, нет. Пример 3.1. Так как х и 1—термы и плюс — двухместный функциональный символ, то плюс (х, 1) есть терм согласно при- приведенному определению. Читатель может видеть далее, что плюс (плюс (х, 1), х) и отец (отец (Джон))—также термы; первый обозначает (х-\- l)-\-x, a второй—дедушку Джона. Предикат есть отображение, которое отображает список кон- констант в И или Л. Например, БОЛЬШЕ есть предикат. БОЛЬШЕ E, 3) есть И, но БОЛЬШЕ A, 3) есть Л. Определив термы, мы можем теперь дать формальное определение атома логики пер- первого порядка. Определение. Если Р — n-местный предикатный символ и t1,...,tn—термы, то P(tt, . ..., tn)—атом. Как только определены атомы, мы можем использовать пять логических связок, которые даны в главе 2 для построения фор- формул. Более того, так как мы ввели переменные, мы используем два специальных символа V и 3, чтобы характеризовать перемен- переменные. Символы V и 3 называются соответственно кванторами (все) общности и существования. Если х — переменная, то (Vx) читается как «для всех х», «для каждого х» или «для всякого х», тогда как (Эх) читается «существует х», «для некоторых х» или «по крайней мере для одного х»1). Рассмотрим несколько примеров, чтобы увидеть, как могут быть использованы кванторы. Пример 3.2. Запишем следующие утверждения: (a) Каждое рациональное число есть вещественное число. (b) Существует число, которое является простым. (c) Для каждого числа х существует такое число у, что х < у. Обозначим «х есть простое число» через Р(х), «х есть рациональ- рациональное число» через Q (х), «х есть вещественное число» через R (х) и «х меньше у» через МЕНЬШЕ (х, у). Тогда указанные выше ут- утверждения могут быть записаны соответственно выр ажениями: (a') (Vx)(Q(x)^R(x)), (b') (Эх)Р(х), (с') (Vx)Cy) МЕНЬШЕ (х, у). Каждое из выражений (а'), (Ь') и (с') называется формулой. Прежде чем дать формальное определение формулы, мы должны установить различие между связанными переменными и свободными переменными. Чтобы сделать это, мы сначала определим область действия квантора, входящего в формулу, как ту формулу, *) (ух) и (э*) будем называть кванторными комплексами. — Прим. через-
ЛОГИКА ПЕРВОГО ПОРЯДКА [ГЛ. 3 к которой этот квантор применяется. Например, область дейст- действия квантора существования в формуле (Ух) (Эу) МЕНЬШЕ (х, у) есть МЕНЬШЕ (х, у), а область действия квантора всеобщности — формула (Эу) МЕНЬШЕ (х, уI). Область действия квантора все- всеобщности в формуле (Ух) (Q (х) —*■ R (х)) есть (Q (х) —*■ R (х)). Определение. Вхождение переменной х в формулу назы- называется связанным тогда и только тогда, когда оно совпадает с вхождением в кванторный комплекс (Ух) или (Зх) или нахо- находится в области действия такого комплекса. Вхождение перемен- переменной в формулу свободно тогда и только тогда, когда оно не яв- является связанным. Определение. Переменная свободна в формуле, если хотя бы одно ее вхождение в эту формулу свободно. Переменная свя- связана в формуле, если хотя бы одно ее вхождение в эту формулу связано. В формуле (Ух) Р (х, у) переменная х связана, так как оба вхождения х связаны. Однако переменная у свободна, так как единственное вхождение у свободно. Отметим, что переменная в формуле может быть свободной и связанной одновременно. Например, у и свободна и связана в формуле (Ух) Р(х, у)/\ A(Vy)Q(y)- Теперь мы можем формально определить понятие формулы с использованием атомов, логических связок и кванторов. Определение. Правильно построенные формулы или, коро- короче, формулы логики первого порядка рекурсивно определяются следующим образом: (i) Атом есть формула. (Отметим, что «атом» — это сокращение для атомарной формулы.) (И) Если F и G — формулы, то ~ (F), (F\/G), (Fj\G), (F —>-G) и (F*->G)— формулы. (iii) Если F — формула, а х—свободная переменная в F, то (Ух) F и Cx)F—формулы. (iv) Формулы порождаются только конечным числом примене- применений правил (i), (и) и (iii). Во всей книге круглые скобки могут быть опущены в соот- соответствии с соглашениями, которые были установлены в главе 2. Мы расширим эти соглашения, считая, что кванторы имеют на- наименьший ранг. Например, (Зх)А\/В обозначает (((Эх)А)\/(В)). Пример 3.3. Переведем утверждение «Каждый человек смертен. Конфуций—человек. Следовательно, Конфуций смертен» в формулу. Обозначим «х есть человек» через ЧЕЛОВЕК (х) и «х смертен» через СМЕРТЕН (х). Тогда утверждение «каждый человек смер- смертен» может быть представлено формулой (Ух) (ЧЕЛОВЕК (х) —■ СМЕРТЕН (х)), Здесь в тексте была ошибка. — Прим. перев. 3.2] ИНТЕРПРЕТАЦИИ ФОРМУЛ В ЛОГИКЕ ПЕРВОГО ПОРЯДКА 39 утверждение «Конфуций—человек» — формулой ЧЕЛОВЕК (Конфуций) и «Конфуций смертен»—формулой СМЕРТЕН (Конфуций). Утверждение в целом теперь может быть представлено фор- формулой (Ух) (ЧЕЛОВЕК {х)-» СМЕРТЕН (х))Д Д ЧЕЛОВЕК (Конфуций) -* СМЕРТЕН (Конфуций). Пример 3.4. Основные аксиомы натуральных чисел таковы: А{. Для каждого числа существует одно и только одно число, непосредственно следующее за ним. А2: Нет числа, за которым непосредственно следует 0. Л3: Для каждого числа, отличного от нуля, существует одно и только одно непосредственно предшествующее ему число. Пусть f (х) и g(x) представляют соответственно число, непосред- непосредственно следующее за х и непосредственно предшествующее х. Пусть «х равно у» обозначается через Е(х, у). Тогда аксиомы могут быть представлены следующими формулами: А[: (Ух)(Эу)(Е(у, f (х))А(Щ(Е (z, f(x))-^ E (у, z))), К: ~(Cx)E@,f(x))), А-3: (Ух)(~Е(х,0)-+((Эу)(Е(у,ё(х))Л A(yz)(E(z,g(x))-+E(y,z))))) § 3.2. Интерпретации формул в логике первого порядка В логике высказываний интерпретация есть приписывание ато- атомам истинностных значений. В логике первого порядка мы должны сделать больше, так как в игру вступают переменные. Чтобы определить интерпретацию для формулы логики первого порядка, мы должны указать предметную область (область значений пред- предметных переменных) и значения констант, функциональных и пре- предикатных символов, встречающихся в формуле. Ниже следует формальное определение интерпретации формулы логики первого порядка. Определение. Интерпретация формулы F логики первого порядка состоит из непустой (предметной) области D и указания «оценки» (значения) всех констант, функциональных символов и предикатных символов, встречающихся в F. 1 • Каждой константе мы ставим в соответствие некоторый элемент из D. 2. Каждому я-местному функциональному символу мы ставим в соответствие отображение из Dn в D. (Заметим, что D" = {()\DD})
40 ЛОГИКА ПЕРВОГО ПОРЯДКА ГЛ. 3 3. Каждому я-местному предикатному символу мы ставим в соответствие отображение D" в {И, Л). Иногда, чтобы акцентировать внимание на области D, мы го- говорим об интерпретации формулы на D. Когда мы ищем «оценку», т. е. определяем истинностное значение формулы в интерпретации на области D, (Ух) будет интерпретироваться как «для всех эле- элементов х из D» и (Эх) — как «существует элемент х из D». Для каждой интерпретации формулы на области D формула может получить истинностное значение Я или Л согласно следую- следующим правилам: 1. Если заданы значения формул G и Н, то истинностные значения формул ~ G, (G f\H), (G\JH), (G-+Н) и (G<->#) полу- получаются с помощью табл. 2.1 в главе 2. 2. (Vx) G получает значение И, если G получает значение И для каждого х из D; в противном случае она получает значение Л. 3. Cx)G получает значение И, если G получает значение И хотя бы для одного х из D; в противном случае она получает значение Л. Мы отметим, что формула, содержащая свободные переменные, не может получить истинностное значение. В остальной части книги мы будем предполагать, что формула либо не содержит свободных переменных, либо свободные переменные рассматрива- рассматриваются как константы. Пример 3.5. Рассмотрим формулы (Ух)Р(х) и (Эх)~Р(х). Пусть интерпретация такова: Область: D = {\,2\. Оценка для Я: Р(\) РB) И Л Читатель легко убедится, что (Vx)P(x) есть Л в этой интер- интерпретации потому, что Р(х) не есть Я как для х=1, так и для х = 2. С другой стороны, так как ~ РB) есть Я в этой интер- интерпретации, (Зх)~Р(х) есть Я в этой интерпретации. Пример 3.6. Рассмотрим формулу (Vx)Cy)P(x, у). Определим интерпретацию следующим образом: D = {\, 2), , 2) Р{2, РB, 2) Я Л Л И 3.2 ИНТЕРПРЕТАЦИИ ФОРМУЛ В ЛОГИКЕ ПЕРВОГО ПОРЯДКА 41 Если х=\, мы можем видеть, что существует такой у (а именно 1), что Р A, у) есть И. Если х = 2, также существует такой у, что Я B, у) есть И. Следовательно, в указанной интерпретации для каждого х из D существует такой у, что Р (х, у) есть И, т. е. (>fx) (Эу) Р (х, у) есть И в этой интерпретации. Пример 3.7. Рассмотрим формулу G: (V*)(P(x)->Q (/(*), а)). В G имеется одна константа а, один одноместный функцио- функциональный символ f, один одноместный предикатный символ Р и один двухместный предикатный символ Q. Ниже приводится интер- интерпретация / формулы G. Область: D = {\, 2). Оценки для а: у. Оценки для f: /A) /B) 1 Оценки для Р и Q: РB) , 2) QB, 2) я Если х Если х = 1, то Р(х) = 2, то Р(х) Q(/(x), a)=P(l) — Q(/(l), а) , а) Так как Я (х) —>■ Q (f (x), а) истинно для всех элементов х из области D, то формула (Vx) (Р(х) —»- Q(f(x), а)) истинна в интер- интерпретации /. Пример 3.8. Оценим следующие формулы в интерпретации из примера 3.7: (a) Px)(P(f(x))AQ(x,f(a))), (b) (Эх) (Я (х) A Q (х, а)), (c) (Vx)(ly)(P(x)AQ(x, у)).
42 ЛОГИКА ПЕРВОГО ПОРЯДКА ГЛ. 3 Для (а): если х = 1, то Ptf(x))AQ(x.f{a))=P{f{l))/\Q(l,f(a)) = PB)AQ.A- /A)) = PB)]AQ(l, 2) = И АИ = И; если х = 2, то Р (/ (х)) /\Q(x,f (a)) = Р (/ B)) Д Q B, / A)) = PA)AQB, 1) Так как в области D существует элемент, а именно х=1, такой, что P(f(x)) A Q(x, f(a)) истинна, то формула (Эх) (Я (/(*)) Л Л Q (x, f{a))) истинна при интерпретации /. Для (Ь): если х=\, то Р(х) A Q{x, а) = РA)Д Q,(l, 1) = Л АИ = Л; если х — 2, :о Так как в D не существует такого элемента, что Р(х) AQ(x, a истинна, то формула фх) (Р (х) A Q (х, о.)) будет ложной при интерпретации /. Для (с): если х=\, то Р(х) = РA) = Л. Следовательно, Р (х) AQ(x, У) = Л для (/=1 и для у—2. Так как существует х, а именно х=1, такое, что (Эу) (Р (х) Д Q (х, у)) ложно, формула (Vx) (Эу) (Р(х) Л Q (*, У)) ложна при интерпретации /, т. е. эта формула опровергается интерпретацией /. Как только определены интерпретации, все понятия, опреде- определенные в главе 2 (такие, как общезначимость, противоречивость, логическое следствие), могут быть аналогично определены для формул логики первого порядка. Определение. Формула G непротиворечива (выполнима) тогда и только тогда, когда существует такая интерпретация /, что G имеет значение И в I. Если формула G есть И в интер- интерпретации /, то мы говорим, что / есть модель формулы G и / удовлетворяет G. Определение. Формула G противоречива (невыполнима) тогда и только тогда, когда не существует интерпретации, кото- которая удовлетворяет G. Определение. Формула G общезначима тогда и только тогда, когда не существует никакой интерпретации, которая удов- удовлетворяет формуле G. § з.з ПРЕДВАРЕННЫЕ НОРМАЛЬНЫЕ ФОРМЫ 43 Определение. Формула G есть логическое следствие формул F й Fx, F2 р у Fn тогда и только тогда, когда для каждой интер- интерFF / G x, 2, , n д р претации /, если FyA---AFn истинна в /, то G также истин- истинна в /. Отношения между общезначимостью (противоречивостью) и логическим следствием, установленные в теоремах §§2.1 и 2.2, верны также и в логике первого порядка. В действительности логика первого порядка может рассматриваться как расширение логики высказываний. Если формула в логике первого порядка не содержит переменных и кванторов, ее можно рассматривать просто как формулу в логике высказываний. Пример 3.9. Читателю предлагается доказать в качестве упражнения следующее: A) B) C) D) Пр F,: F2: (Vx)P (Vx)P Р(а)- (Vx)P имер (Vx) (/ Р(а). (X) (х) /„\ 3. '(А Л —► -(О V( 10. :)- РУ)~Р{У) (By) P (у) Эд;) Р (х))] (Эу) - Р (у)) Рассмотрим ■*-Q(x)), противоречива: общезначима,- непротиворечива; общезначима. формулы Мы сейчас докажем, что формула Q (а) есть логическое след- следствие формул Z7! и F2. Рассмотрим любую интерпретацию /, которая удовлетворяет (Vx) (Р(х) —>- Q{x)) А Р (а). Конечно, в этой интерпретации Р (а) есть И. Пусть Q (а) не есть И в этой интерпретации, тогда ~ Р(a)\/Q(a), т. е. P(a)^Q(a), есть Л в I. Это значит, что (Vjc) (Р (х) —*- Q (х)) есть Л в I, что невозможно. Следовательно, Q{a) должна быть И в каждой интерпретации, которая удовлет- удовлетворяет (Vx) (Р (х) —+ Q (х)) А Р (а). Это означает, что Q (а) есть логическое следствие из F1 и F2. Так как в логике первого порядка имеется бесконечное число областей, то, вообще говоря, имеется бесконечное число интер- интерпретаций формулы. Следовательно, в отличие от логики выска- высказываний, невозможно доказать общезначимость или противоречи- противоречивость формулы оценкой формулы при всех возможных интерпре- интерпретациях. В следующих главах мы дадим процедуры для проверки невыполнимости формул в логике первого порядка. § 3.3. Предваренные Нормальные формы в логике первого порядка В логике высказываний мы ввели две нормальные формы — конъюнктивную нормальную форму и дизъюнктивную нормаль- нормальную форму. В логике первого порядка также имеется нормаль-
44 ЛОГИКА ПЕРВОГО ПОРЯДКА [ГЛ. 3 ная форма, называемая «предваренной нормальной формой». Цель рассмотрения предваренной нормальной формы—-упрощение про- процедуры доказательств. Мы рассмотрим это впоследствии. Определение. Говорят, что формула F в логике первого порядка находится в предваренной нормальной форме, тогда и только тогда, когда формула F имеет вид (ОЛ) .. . (Qnxn) где каждое (О,хг), t=l, ... , п, есть или (Vxr) или (Эх,-), и М есть формула, не содержащая кванторов. (QjXj) ... (О„х„) назы- называется префиксом, а М — матрицей формулы F. Приведем несколько формул, находящихся в предваренной нормальной форме: (Vx)(V</)(P(x, y)AQ(y)), (Vx)(Vt/)CZ)(Q(x, y)-^R(z)). Для данной формулы мы рассмотрим метод ее преобразования в предваренную нормальную форму. Для этого сначала надо рас- рассмотреть некоторые основные пары формул, эквивалентных в ло- логике первого порядка. Мы напоминаем, что две формулы F и G эквивалентны (это записывается в виде F = G) тогда и только тогда, когда истинностные значения F и G одни и те же при любой интерпретации. Основные пары эквивалентных формул, приведенные в табл. 2.6 главы 2, эквивалентны и в логике пер- первого порядка. Кроме них, существуют другие пары эквивалент- эквивалентных формул, содержащих кванторы. Мы рассмотрим теперь такие дополнительные пары эквивалентных формул. Пусть F есть фор- формула, содержащая свободную переменную х. Чтобы подчеркнуть, что свободная переменная х входит в F, мы представим F в виде F [х]. Пусть G есть формула, которая не содержит переменной х. Тогда мы имеем следующие пары эквивалентных формул, где Q есть или V или 3. Для простоты мы будем называть каждую из следующих пар эквивалентных формул «законом»: C.1а) (Qx)F[x]vG = (Qx)(F[x]\jG); C.1b) (Qx)F[x]/\G = C.2а) ~((Vx)F[x]) = C.2b) ~(( Законы C.1а) и C.1b), очевидно, истинны, так как G не со- содержит х и, следовательно, может быть внесена в область дей- действия квантора Q. Законы C.2а) и C.2Ь) нетрудно доказать. Пусть / — произвольная интерпретация с областью D. Если ~ ((V*) F [х]) истинна в /, то (Vx) F [х] ложна в /. Это означает, что существует такой элемент е в D, что F [е] ложна, т.е. ~ F [е] истинна в /. Следовательно, (Зх)(~ F [х]) истинна в /. С другой з.э ПРЕДВАРЕННЫЕ НОРМАЛЬНЫЕ ФОРМЫ 45 стороны, если ~ ((Vx) F [х]) ложна в /, то (Vx)F[x] истинна в /. Это означает, что F [х] истинна для каждого элемента х в D, т е. ~ F [х] ложна для каждого элемента х в D. Следовательно, Cx)(~F[x]) ложна в /. Так как ~((Vx)F[x]) и Cx)(~F[x]) всегда принимают одно и то же истинностное значение при про- произвольной интерпретации, то по определению ~ ((Vx) F [х]) = = (Зх) (~F [x]). Поэтому закон C.2а) доказан. Аналогично можно доказать закон C.2Ь). Предположим, что F[x] и Н[х]—две формулы, содержащие х. Имеются два других закона: C.3а) (Vx) F [x]A(Vx) Я [х] = (Vx) (ВДдЯ [*]), (З.ЗЬ) (Эх)F [х|VCx) Я [х] = (Эх) (F [х]\/Н[х]),. т. е. квантор всеобщности V и квантор существования 3 можно распределять по Л и V соответственно. Доказательства законов C.3а) и (З.ЗЬ) нетрудны. Мы предо- предоставим их читателю. Однако квантор всеобщности V и квантор существования 3 нгльзя распределять по V и Л соответствен- соответственно, т. е. (Vx) F [х] V (Vx) Я [х] ф (Vx) (F [х] V Я [*]) ' и (Зх) F [х] Д (Эх) Я [jc] ф (Эх) (F [х] Д Н [х]). В случаях, подобных этим, мы должны поступать специаль- специальным образом. Так как каждая связанная переменная в формуле может рассматриваться лишь как место для подстановки какой угодно переменной, то каждую связанную переменную х можно переименовать в z и формула (Vx) H [х] перейдет в (Vz)H[z], т. е. ^х)Я[х] = ^г)Я[г]. Предположим, что мы выбираем пе- переменную z, которая не встречается в ^[х]. Тогда (Vx) F [х] V (Vx) Я [х] = (Vx) F [х] V (Уг) Я [г] (путем замены всех х, входящих в (Vx)H[x], на г) = (Vx) (Vz) (F [x] V Я [г]) (по 3.1а). Аналогично, мы имеем (Зх) F [х] Д (Зх) Я [х] = (Зх) F [х] Д (Зг) Я [z] (путем замены всех х, входящих в (Зх)Я[х], на z) = (Зх)C2)(/=-[х]ДЯ[2]) (по 3.1Ь). Следовательно, для этих двух случаев мы все еще можем вынести все кванторы в этой формуле влево. В общем случае мы имеем C.4а) (QlX) F [х] V (Qtx) Я [х] = (Qtx) (Q,z) (F [x] V Я [z]), C.4b) (Qsx) F [x] Д (Q4x) Я [x] = (Qax) (Q4z) (F [x] Д Я [z])f
46 ЛОГИКА ПЕРВОГО ПОРЯДКА [ГЛ. где Qj, Q2, Q3 и Q4 суть V или 3, а 2 не входит в F[x]. Ко- Конечно, если О! = О2 = 3 и Q3 = Q4 = V, то не обязательно пере- переименовывать переменную х в (Q2x)#[x] или (Qtx)H[x]. Мы можем прямо использовать C.3). Используя законы B.1)—B.10) и законы C.1)—C.4), мы всегда можем преобразовать данную формулу в предварительную нор- нормальную ,форму. Ниже мы наметим процедуру преобразования. Преобразование формул в предваренную нормальную форму. Шаг 1. Используем законы (G — F), B.1) B.2) чтобы исключить логические связки <-» и Шаг 2. Повторно используем закон B.9) законы де Моргана () KFiKG)=~.F V.~G и законы ~((Vx)F[x]) = Cx)(~F[x]), ~(Cx)F[x])=(Vx)(~F[x]), чтобы пронести знак отрицания внутрь формулы. Шаг 3. Переименовываем связанные переменные, необходимо. Шаг 4. Используем законы B. B. C C если C C C C , C. , C. 10а) 10b) .2а) .2b) это .la) ЛЬ) .За) .ЗЬ) 4а) 4Ь) (Qx)F[x]AG = (Qx)(F[x]AG), (Ух) F [х] А (Ух) Н [х] = (ух) (F [х] А Н [х]), (Зх) F[x] VCx) Н [х] = (Эх) (F [х] V Я [х]), (Q,x) F [х] V (Q,x) Я [х] = (Q,x) (Q,z) (f [х] V Я [z]), (Q3x)F [x] Л (Q4x) Я [х] = (Q3x) (Q4z) (F [х] Л Я [г]), чтобы вынести кванторы в самое начало формулы для получения формулы, находящейся в предваренной нормальной форме. Пример 3.11. Приведем формулу (Vx) Р (х) —>■ (Зх) Q (х) к предваренной нормальной форме: (Vx) Р (х) -+ (Зх) Q (х) = ~ ((Vx) P (х)) V (Зх) Q (х) (по 2.2) = Cх)[(~ Р,(х)) V (Зх) Q (х) (по 3.2а) = (Зх) (~ Р (х) V Q (х)) (по З.ЗЬ). Следовательно, предваренная нормальная форма формулы (Vx) Р (х) — (Зх) Q (х)-это (Зх) (~ Р (х) V Q (х)). ПРИЛОЖЕНИЯ ЛОГИКИ ПЕРВОГО ПОРЯДКА 47 Пример 3.12. Получим предваренную нормальную форму для формулы (Vx) (Уу) ((Зг) Р(х, z)AP (У, z)) — (Эй) Q (х, у, и)). (Vx) (Vt/) (Cz) Р (х, г) Д Р (у, г)) -* Cu) Q (х, у, и)) = (Vx)(Vt/)(~(Cz)P(x, г)ЛР(у, г))) VC«)Q(x, у, и)) (по 2.2) = (Vjc) (Уу) ((Vz) (~ Р (х, г) V ~ Р (У, z)) V C«) Q (х, у, и)) поC.2Ь) и B.10Ь) = (Vx)(V//)(V2)C«)(~P(x, 2) \J~P(y, 2) \/Q(x, у, и)) используя C.1а), выносим кванторы влево Следовательно, последняя формула есть предваренная нормаль- нормальная форма первой формулы. § 3.4. Приложения логики первого порядка В этом параграфе мы дадим ряд примеров, иллюстрирующих некоторые приложения логики первого порядка к решению за- задач. Как и в логике высказываний, сперва надо записать задачи с помощью формул, а затем доказать, что формулы общезна- общезначимы или противоречивы. Пример 3.13. Рассмотрим пример 3.3. Даны две аксиомы А,: (Ух) (ЧЕЛОВЕК (х) — СМЕРТЕН (*)), Л2: ЧЕЛОВЕК (Конфуций). Из Л, и А2 получить, что Конфуций смертен, т. е. показать что СМЕРТЕН (Конфуций) есть логическое следствие А1 и А2. Мы имеем Л, Л А2: (Ух) (ЧЕЛОВЕК (х) -+СМЕРТЕН (х)) Л ЧЕЛОВЕК (Конфуций). Если А1 А Аг истинна в интерпретации /, то обе формулы Л, и Аг истинны в /. Так как (ЧЕЛОВЕК (х) — СМЕРТЕН (х)) истинна для всех х, то, когда х заменяется на «Конфуций», (ЧЕЛОВЕК (Конфуций) ->- СМЕРТЕН (Конфуций)) истинна в /, т. е. ~ ЧЕЛОВЕК (Конфуций) V СМЕРТЕН (Конфуций) истинна в /. Однако ~ ЧЕЛОВЕК (Конфуций) ложна в /, так как ЧЕ- ЧЕЛОВЕК (Конфуций) истинна в /. Следовательно, СМЕРТЕН (Конфуций) должна быть истинной в /. Следовательно, мы по- показали, что СМЕРТЕН (Конфуций) истинна в /, если (^ Л А2) истинна в /. По определению СМЕРТЕН (Конфуций) есть логи- логическое следствие Ах и Л2. Пример 3.14. Никакой торговец подержанными автомо- автомобилями не покупает подержанный автомобиль для своей семьи.
48 ЛОГИКА ПЕРВОГО ПОРЯДКА гл. : Некоторые люди, которые покупают подержанные автомобили для своих семей, абсолютно нечестны. Заключаем, что некото- некоторые абсолютно нечестные люди не являются торговцами подер- подержанными автомобилями. Пусть U (х), В(х) и D(x) обозначают «х—торговец подер- подержанными автомобилями», «х купил подержанный автомобиль для своей семьи» и «х абсолютно нечестен» соответственно. Тогда мы имеем A,: <>fx)(U{x)-+~B(x)), А2: Cx)(B(x)AD(x)). Мы должны доказать, что А3: Cx)(D(x)A~U(x)) есть логическое следствие Ах и А2. Предположим, что Ах и А2 истинны в интерпретации / с областью D. Так как Аг истинна в /, то существует такой эле- элемент х из D, который мы обозначим через а, что B(a)/\D(a) истинна в /. Следовательно, В (а) истинна в /, т. е. ~,В(а) ложна в /. /4j может быть записана в следующей форме: A,: (yx)(~U(x)V~B(x)). Так как Ах истинна в /, а ~ В (а) ложна в /, то ~ U (а) должна быть истинна в /. Однако так как B(a)/\D(a) истинна в /, то D(a) истинна в /. Следовательно, D(a) A~ U (а) истинна в /. Таким образом, А3, т. е. (Зх) (D(x) Д~ U (х)), истинна в /. Сле- Следовательно, А3—логическое следствие Ах и А2. Пример 3.15. Некоторые пациенты любят своих докторов. Ни один пациент не любит знахаря. Следовательно, никакой доктор не является знахарем. Обозначим: Р(х): х — пациент, D (х): х—доктор, Q (х): х—знахарь, L (х, у): х любит у. Тогда факты и заключения можно записать в виде символов сле- следующим образом: /V (Эх) (Р (х) А (Щ (D (у) - L (х, у))), /V (Щ (Р (х) -+ (Vу) (Q (y)-^~L (х, у))), G: Теперь мы покажем, что G есть логическое следствие из /•", и Fa. Пусть / — произвольная интерпретация с областью D. Предпо- Предположим, что F1 и F% истинны в /. Так как Flt т. е. (Вх)(Р (х)А A (Vt/) (D (у) —>- L (х, у))), истинна в /, то в D существует такой элемент, который мы обозначим через е, что (P(e)A(Vy) (D {у) —«■■ УПРАЖНЕНИЯ 4* —*-L(e, у))) истинна в /. Это значит, что как Р(е), так и (iy)(D(y) —>■ L(e, у)) истинны в /. С другой стороны, так как (Р(х) —>-(Vi/)(Q (у) —>- ~L(x, у))) истинна в / для всех элементов х из D, то несомненно (Р (е) —»- (Vt/) (Q (t/) —>- ~ L (е, у))) истинна в /. Так как Р (е) истинна в /, то (Vy) (Q (у) —»- ~ L (е, у)) должна быть истинна в /. Следовательно, мы знаем, что для каждого элемента у из D как (D (у) —>■ L (е, у)), так и (Q (у) —»- ~ L (е, у)) истинны в /. Если D(y) ложна в /, то (D (у) -+ ~ Q (у)) истинна в /. Если D (у) истинна в /, то L (е, у) должна быть истинна в /, так как (D(у)'—>-L(е, у)) истинна в /. Следовательно, Q(y) должна быть ложна в /, так как (Q (у) —»- L (е, у)) истинна в /. Следовательно, (D (у)—>■ ~ Q (у)) истинна в /. Поэтому (D (у) —► —>- ^- Q (у)) истинна для любого у из D, т. е. (V#) (D (у) -+~Q (у)) истинна в /. Таким образом, мы показали, что если Fx и Fz истинны в /, то (Vt/) (D (у) —>■ ~ Q (у)) истинна в /. Тем самым установлено, что G есть логическое следствие F, и F2. В приведенных выше примерах мы показали, что заключения следуют из данных фактов. Обоснование того, как заключение следует из аксиом, называется доказательством. Процедура на- нахождения доказательств называется процедурой доказательства. В главах 4—9 мы дадим такие процедуры доказательств, которые для нахождения доказательства механически используют правила вывода. Эти процедуры доказательств очень эффективны. Читатель легко обнаружит, что три предыдущих примера чрез- чрезвычайно легко доказать, если использовать такие процедуры доказательств. ЛИТЕРАТУРА Гильберт иАккерман (Hilbert D., Ackermann W.) 1. Основы теоретической логики.— М.: ИЛ, 1947. К л и н и (KJeene S. С.) 1. Математическая логика.— М.: Мир, 1973. К орфаг (Korfhage R. R.) 1. Logic and Algorithms.—N. Y.: Wiley, 1966. Мендельсон (Mendelson E.) 1. Введение в математическую логику.— М.: Наука, 1976. С то л л (Stoll R. R.) 1. Множества. Логика. Аксиоматические теории.—М.: Просвещение, 1968. Уайтхед и Рассел (Whitehead A. N., Russell В.) 1. Principia M thematica.—L.; N. Y.: Cambridge Univ Press, 1927. УПРАЖНЕНИЯ К § 3.1 1. Пусть Р (х) и Q (х) означают высказывания «х— рациональное число» и «*—действительное число» соответственно. Записать символами следующие предложения:
50 ЛОГИКА ПЕРВОГО ПОРЯДКА ГЛ. и Е (х, у) означают «х—точка», ==уу> соответственно. Перевести 1.1. Каждое рациональное число есть действительное число. 1.2. Некоторое действительное число есть рациональное число. 1.3. Не каждое действительное число есть рациональное число. 2. Пусть С (х) означает «х—торговец подержанными автомобилями» и Я (х) означает «х—честный человек». Перевести следующие выражения иа русский язык: 2.1. (Эх)С(х), 2.2. (Э*)Я(х), 2.3. (ух)(С(х)-^~Я(х)), 2.4. (эх)(С(х)лЯ(х)), 2.5. (Эх)(Я(х)->С(х)). 3. Пусть Р(х), L(x), R(x, у, г) «х—линия», «2 проходит через .* и </» и следующее. Для любых двух точек существует одна и только одна линия, проходя- проходящая через эти точки. 4. Абелева группа — это множество А с бинарным оператором -)-, кото- который имеет определенные свойства. Пусть Р (х, у, г) а Е (х, у) представляют x-j-г/ = г и х = у соответственно. Выразить следующие аксиомы абелевых групп символами. (a) Для любых х и у в А существует такое г в А, что х-\-у = г (замкнутость). (b) Если х-^у = г и x-\-y = w, то г — w (однозначность). (c) (x + </) + 2 = *-|-(</ + z) (ассоциативность). (d) x-\-y = y-\-х (симметричность). (e) Для любых х и у в А существует такое г, что х-\-г—у (правое решение). К § 3.2 5. Для следующей интерпретации (D = {a, b}): Р (а, а) Р (а, Ь) Р(Ъ,а) Р (Ь, Ь) И Л Л и определить истинностные значения следующих формул: (а) (V*) (ЗУ) Р (х, у), (Ь) (Vx) (V.(/) P (х, у), (с) (Эх) (vy) Р (х, у), (d) (Зу) ~ Р (а, у), (е) (vx) (Щ (Р (х, у) ^ PJiy, х)), (f) (Vx) Р'(х, х). 6. Рассмотрим следующую формулу: А: (э-г) Р (х) — (Vx) P (х). a) Доказать, что эта формула всегда истинна, если область D содержит только один элемент. b) Пусть D = {a, b). Найти интерпретацию с облааью D, в которой А имеет значение Л. 7. Рассмотрим следующую интерпретацию: Область: £>={1, 2}. Значение констант а и Ь: УПРАЖНЕНИЯ 51 Значение функции /: /0) /B) Значение предиката Р: Р A.2) Р B, 1) Р B, 2) И И Л Л Найти истинностные значения следующих формул в указанной интерпре- интерпретации: A) P(a,f(a))AP(b,f(b)), B) (ух) (ЗУ) Р {У, х), C) (vx) (W) (Р (х, y)-*P(f (х), f (У)))- 8. Пусть Fx и F2 таковы: Pi. <ух) (Р (х) -> Q (х)), F2: ~ Q(a). Доказать, что ~ Р (а) есть логическое следствие Fi и F2. К § 3.3 9. Преобразовать следующие формулы в предваренную нормальную форму: A) (vx) (Р (х) —- (зу) Q (х, у)), B) (эх) (~ ((зу) Р (х, у)) — (Cz)'Q (г) — /? (х))), C) (vx) (Vy) ((Эг) Р (х, у£) Л (Cu) Q (х, и) -у Cv) Q [у, v))). . К § 3.4 10. Рассмотрим следующие утверждения: Fх- Каждый студент честен. F2: Джон нечестен. Из приведенных выше утверждений получить, что Джои не студент. 11. Рассмотрим следующие предпосылки: A) Каждый атлет силен. B) Каждый, кто силен и умен, добьется успеха в своей карьере. C) Петр — атлет. D) Петр умей. Попытайтесь заключить, что Петр добьется успеха в своей карьере. 12. Предположим, что Святого Франциска любит каждый, кто любит кого-нибудь. Также предположим, что каждый кого-нибудь да любит. Выве- Вывести, что Святого Франциска любит каждый.
ГЛАВА 4 ТЕОРЕМА ЭРБРАНА § 4.1. Введение В предыдущих главах мы обсудили, как решать задачи путем доказательства теорем. В этой и следующей главах мы будем рассматривать процедуры поиска доказательства. На самом деле поиск общей разрешающей процедуры для проверки общезначи- общезначимости формулы начат давно. Первым пытался найти такую про- процедуру Лейбниц A646—1716), в дальнейшем возобновили попытки Пеано (примерно на грани XX века) и школа Гильберта в 1920-х годах. Это продолжалось до тех пор, пока Чёрч [1] и Тьюринг [1] независимо не доказали, что не существует никакой общей разрешающей процедуры, никакого алгоритма, проверяющего общезначимость формул в логике первого порядка. Тем не менее существуют алгоритмы поиска доказательства, которые могут подтвердить, что формула общезначима, если она на самом деле общезначима. Для необщезначимых формул эти алгоритмы, вообще говоря, не заканчивают свою работу. Прини- Принимая во внимание результат Чёрча и Тьюринга, это лучшее, что мы можем ожидать от алгоритма поиска доказательства. Очень важный подход к автоматическому доказательству тео- теорем был дан Эрбраном в 1930 г.:). По определению общезначимая формула есть формула, которая истинна при всех интерпретациях. Эрбран разработал алгоритм нахождения интерпретации, которая опровергает данную формулу. Однако если данная формула на самом деле общезначима, то никакой интерпретации не сущест- существует и алгоритм оканчивает работу за конечное число шагов. Метод Эрбрана служит основой для большинства современных автоматических алгоритмов поиска доказательства. Гилмор [1] одним из первых реализовал процедуру Эрбрана на вычислительной машине. Поскольку формула общезначима тогда и только тогда, когда ее отрицание противоречиво, его программа предназначена обнаруживать противоречивость отри- отрицания данной формулы. Во время выполнения его программы порождаются пропозициональные формулы, которые периодически х) Сравнение методов Эрбрана и Генцена и характеристика генцено-эр- браиовского этапа теории содержится в Дополнении А.— Прим. ред. СКУЛЕМОВСКИЕ СТАНДАРТНЫЕ ФОРМЫ 53 проверяются на противоречивость. Если отрицание данной фор- формулы противоречиво, то программа Гилмора в конце концов обнаруживает этот факт. Программа Гилмора справилась с дока- доказательством нескольких простых формул, но столкнулась с боль- большими трудностями в доказательстве других формул логики первого порядка. Внимательное изучение его программы пока- показало, что его метод проверки противоречивости пропозициональ- пропозициональных формул неэффективен. Метод Гилмора был улучшен Деви- сом и Патнемом [1] несколько месяцев спустя после того, как был опубликован. Однако их улучшение было еще недостаточно. Многие общезначимые формулы логики первого порядка все еще не могут быть доказаны на вычислительной машине в разумное время. Главный скачок был сделан Робинсоном [1], который ввел так называемый метод резолюций. Процедура поиска дока- доказательства методом резолюций много эффективней, чем любая описанная ранее процедура1). После введения метода резолюций были предложены некоторые стратегии в целях увеличения его эффективности. Такими стратегиями являются семантическая резолюция (Слэйгл [1]; Мельцер [1]; Робинсон [2]; Ковальский и Хейес [1]), лок- резолюция (Б ой ер [1]), стратегия линейной резолюции (Лавленд [1], [2]; Лакхем [1]; Андерсон и Бледсоу [1]; Ейтс, Рафаэль и Харт [1]; Рейтер [1]; Ковальский и Кюнер [1]), стратегия пред- предпочтения единичных (У о с, Карсон и Г. Робинсон [1]; Чень [1]) и стратегия поддержки (У о с, Г. Робинсон и Карсон [I]J). В этой главе мы будем доказывать теорему Эрбрана. Метод резолюций и некоторые его усовершенствования будут обсуждаться в последующих главах. § 4.2. Скулемовские стандартные формы Процедуры поиска доказательства по Эрбрану или методу резолюций, которые будут обсуждаться ниже, на самом деле являются процедурами поиска опровержения, т. е. вместо дока- доказательства общезначимости формулы доказывается, что отрицание формулы противоречиво. Это только вопрос удобства — при ис- использовании процедур опровержения не происходит потери общности. Кроме того, эти процедуры опровержения применяются к «стандартной форме» формулы. Эта стандартная форма была введена Де висом и Патнемом [1], [и мы будем исполь- использовать ее на протяжении всей книги. *) Точнее, упомянутый скачок состоял в появлении в 1965 г. «локальных методов с метапеременностью», одним из которых является метод резолюций (см. Дополнение к).—Прим. ред. 2) См. Дополнение В.— Прим. ред.
54 ТЕОРЕМА ЭРБРАНаВ [ГЛ. 4 По существу Девис и Патнем использовали следующие идеи: 1. Формула логики первого порядка может быть сведена к предваренной нормальной форме, в которой матрица не содер- содержит никаких кванторов, а префикс есть последовательность кванторов. 2. Поскольку матрица не содержит кванторов, она не может быть сведена к коньюнктивной нормальной форме. 3. Сохраняя противоречивость формулы, в ней можно элими- элиминировать кванторы существования путем использования скуле- мовских функций. В главе 3 мы уже обсуждали, как свести формулу к предва- предваренной нормальной форме. При помощи техники, данной в главе 2, мы также умеем сводить матрицу к конъюктивной нормальной форме. Мы сейчас обсудим, как элиминировать кванторы суще- существования. Пусть формула F находится в предваренной нормальной форме (Ол) . ■ • (Qnxn)M, где М есть конъюнктивная нормальная форма. Положим, Qr есть квантор существования в префиксе (QjX,) ... (Qnxn), l^r^n. Если никакой квантор всеобщности не стоит в префиксе левее Qr, мы выберем новую константу с, отличную от других констант, входящих в М, заменим все хг, встречающиеся в М, на с и вычеркнем (Qrxr) из префикса. Если QSl, ..., QSm—список всех кванторов всеобщности, встречаю- встречающихся левее Qr, I ^s, < s2 < • • . < sm < г, мы выберем новый m-местный функциональный символ /, отличный от других функциональных символов, заменим все хг в М на / (xs,, xSl, ■ • •, xSm) и вычеркнем (Qrxr) из префикса. Затем весь этот процесс при- применим для всех кванторов существования в префиксе; последняя из полученных формул есть скулемовская стандартная форма — для краткости, стандартная форма "формулы F. Константы и функции, используемые для замены переменных квантора суще- существования, называются скулемовскими функциями. Пример 4.1. Получить стандартную форму формулы (Эх) (У у) (Уг)'(Зи) (Щ Cw)P[(x:y, г, и, v, w). В этой формуле левее (Эх) нет никаких кванторов всеобщно- всеобщности, левее (Эы) стоят (Уу) и (Vz), а левее Cw) стоят (Уу), (Уг) и (Уу)- Следовательно, мы заменим переменную х на константу а, переменную и — на двухместную функцию f(y, z), переменную w— на трехместную функцию g(y, г, v). Таким образом, мы получаем следующую стандартную форму написанной выше формулы: СИ РУ) (yz> W Р («- У' 2' / (#' 2)' v' S (У, *, v)). Пример [4.2. Получить стандартную форму формулы (Ух) (Эу) (Зг) ((- Р (х, y)AQ (х, z))\/R(x, y\ г)). § 4-2, СКУЛЕМОВСКИЕ СТАНДАРТНЫЕ ФОРМЫ 55 Сперва сведем матрицу к конъюнктивной нормальной форме: (Ух) C//) C2) ((~ Р (х, y)VR (х, у, z))MQ (х, 2)VR (х, у, г))). Затем, так как перед (Зу) и (Зг) есть (Ух), то переменные у и г заменяются соответственно одноместными функциями / (х) и g(x). Таким образом, мы получаем следующую стандартную форму: {Vx)({~P(x,f(x))\/R(x, f(x), g(x)))A(Q(x, g(x)) \/R(x,f(x), g(x)))). Определение. Дизъюнкт есть дизъюнкция литер. Иногда, когда это удобно, мы будем рассматривать мно- множество литер как синоним дизъюнкта. Например, PVQV~ R = = {Р, Q, ~ R}. Дизъюнкт, содержащий г литер, называется r-литерным дизъюнктом. Однолитерный дизъюнкт называется единичным дизъюнктом. Когда дизъюнкт не содержит никаких литер, мы называем его пустым дизъюнктом. Так как пустой дизъюнкт не содержит литер, которые могли бы быть истинными при любых интерпретациях, то пустой дизъюнкт всегда ложен. Пустой дизъюнкт обозначается посредством □• Дизъюнкции ~Р(х, f(x))VR(x, f(x), g(x)) и Q(x, g(x))\/ V R (x, f{x), g(x)) в стандартной форме из примера 4.2 суть дизъюнкты. Считаем, что множество дизъюнктов S есть конъ- конъюнкция всех дизъюнктов из S, где каждая переменная в S счи- считается управляемой квантором всеобщности. Благодаря этому соглашению стандартная форма может быть просто представ- представлена множеством дизъюнктов. Например, стандартная форма в примере 4.2 может быть представлена множеством {~ Я (*, / (*)) V Я (х, f(x),g (х)), Q (х, g[(x)) V R (x, f[(x), g (*))}. Как мы говорили в начале этого параграфа, мы можем эли- элиминировать кванторы существования, сохраняя противоречивость формулы. Покажем это в следующей теореме. Теорема 4.1. Пусть S—множество дизъюнктов, которые представляют стандартную форму формулы F. Тогда F противо- противоречива в том и только в том случае, когда S противоречива. Доказательство. Без потери общности можно положить, что F находится в предваренной нормальной форме, т. е. F = = (C^Xj) (Qn^n) M [xt, ..., х„]. (Мы используем М \хх, ... ..., х„], чтобы указать, что матрица М содержит переменные хх, ..., хп.) Пусть Qr — первый квантор существования. Пусть F1 = (Vx1) ... (Ухг_.) (Qr+lxr+l) ... (Qnxn) М [хх, ..., хг_„ /(Xj xr_j), xr+1, . . ., хп], где f—скулемовская функция, со- соответствующая хг, 1 ^г^/г. Мы хотим показать, что F противо- противоречива тогда и только тогда, когда /71 противоречива. Предполо- Предположим, что F противоречива. Если Fx непротиворечива, то сущест- существует такая интерпретация /, что F, истинна в /, т. е. для всех хх, ... xr_j существует по крайней мере один элемент (а именно
56 ТЕОРЕМА ЭРБРАНА ГЛ. S 4.2 СКУЛЕМОВСКИЕ СТАНДАРТНЫЕ ФОРМЫ 57 /4*1 xr-i))> Для которого (Qr+1xr+1) ... (Qnxn)M[xr, ... ■ ■ ■, xr_x, f (хг, ..., хг_,), хг+1, ..., хп] истинна в /. Таким обра- образом, F истинна в /, что противоречит предположению, что F про- противоречива. Следовательно, Рг должна быть противоречива. С другой стороны, предположим, что Ft противоречива. Если F непротиворечива, то существует такая интерпретация / на области D, что F истинна в /, т. е. для всех xlt ..., хг_г су- существует такой элемент хг, что (Q,+Ix,+1) ... (Qnxn) M[xu ... . .., xr_l, xr, xr+1, . . ., х„] истинна в /. Расширим интерпретацию /, включая функцию f, которая отображает (xlt ..., хг_г) на хг для всех хг, ...,хг_1 в D, т.е. f(xu ..., xr_1) = xr. Пусть это расширение / обозначается /'. Ясно, что для всех xlt ..., хг_х (Qr+1xr + 1) ... {Qnxn)M[xlt ...,xr_l,f{x1,...,xr_,),xr+1, ...,xn] истинна в /', т. е. Fx истинна в /', что противоречит предпо- предположению, что Z7, противоречива. Следовательно, F должна быть противоречивой. Предположим теперь, что в F имеется т кван- кванторов существования. Пусть F0 = F. Пусть Fk получается из Fk_t заменой первого квантора существования в Fk_t скулемовской функцией, k=\, ..., т. Ясно, что S — Fm. Используя те же рассуждения, что даны были выше, мы можем показать, что Fk_1 противоречива тогда и только тогда, когда Fk противоречива при k — 1, ..., т. Следовательно, мы заключаем, что F противо- противоречива тогда и только тогда, когда S противоречива, что и тре- требовалось доказать. Пусть S — стандартная форма формулы F. Если F противоре- противоречива, то по теореме 4.1 F = S. Если F непротиворечива, заме- заметим, что, вообще говоря, F не эквивалентна S. Например, пусть F ^ (Эх) Р (х) и S^=tP(a). Ясно, что S есть стандартная форма формулы F. Однако пусть / есть следующая интерпретация: Область: D = \\, 2}. Значения для а: возможно. Дальше, если мы имеем F = F1/\... /\Fn, мы можем отдельно получить множество дизъюнктов Sh где каждый S; представляет стандартную форму Fh t=l, ..., п. Затем пусть S = S1 и • •. [)Sn. С помощью рассуждений, подобных тем, кото- которые даны в доказательстве теоремы 4.1, нетрудно увидеть, что F противоречива тогда и только тогда, когда S противоречива. Пример 4.3. В этом примере мы покажем, как выразить следующую теорему в стандартной форме. Если х-х — е для всех х в группе G, где • есть бинарный оператор и е есть единица группы G, то G коммутативна. Мы сначала формализуем эту теорему вместе с некоторыми основными аксиомами теории групп и затем представим отри- отрицание этой теоремы множеством дизъюнктов. Мы знаем, что группа G удовлетворяет следующим четырем аксиомам: А{. x,y£G влечет x-y£G (свойство замкнутости); Л2: х, у, г £ G влечет x-(y-z) = (x-y)-z (свойство ассоциатив- ассоциативности); А3: хе = е-х — х для всех x£G (свойство существования единичного элемента); Л4: для каждого x£G существует элемент x-1£G такой, что х-х~1 =х~г-х = е (свойство существования обратного элемента). Пусть Р (х, у, z) обозначает x-y = z и i(x) обозначает х. Тогда вышестоящие аксиомы примут вид: А[: (Vx)(Vy)Cz)P(x,y,z); А-2: (Ух) (Уу) (Vz) (Yu) (Vo) (Vo>) (P(х, у, и)А АР {у, 2, v)AP{u, z,w)-^P{x, о, а»))Л A(Vjc) (Уу) (Vz) (Vu) (Vo) (Va>) (P (x, у, и)АР (У, г, v)A AP(x,v,w)-^P(u, z, w)); A'3: (Ух) P (x, e, x)A(Vx) P (e, x, x); A't: (Ух)Р(х, i(x), e)A(Vx)P(i(x),x, e). Значения для Р: P(l) Л B) И Тогда ясно, что F истинна в /, но S ложна в /. Таким обра- образом, F #5. Отметим, что формула может иметь более чем одну стандарт- стандартную форму. Ради простоты, когда мы преобразуем формулу F в стандартную форму S, мы будем заменять кванторы существо- существования скулемовскими функциями настолько простыми, насколько Заключение теоремы такое: В: Если х-х = е для всех x£G, то G коммутативна, т.е. u-v = v-u для всех и, v£G. В может быть представлено формулой В': (Ух) Р (х, х, е) — ((Vu) (Vo) (Vo>) (P(u, v, w) -+ P (v, u, w))). Теперь вся теорема представляется формулой F = А[А- ■ ■ /\ Л А1 —*■ В'. Таким образом, ~ F = А[АА'»ЛАзЛА'1А~ В'. Чтобы получить множество дизъюнктов S для ~F, мы сперва получим множество дизъюнктов S,- для каждой аксиомы А\, t=l, 2, 3, 4,
58 ТЕОРЕМА ЭРБРАНА ГЛ. 4 следующим образом: S't: {P(x,y,f(x,y))\; S; {-Р (х, у, u)V~ P (у, г, y)V~ P (и, z, w)\JP(x, v, да), ~Р(дс, у, u)V~ Р'.(У, 2, o)V~ P(x, р, w)yP{u, z, w)}; S's: {P(x, е, х), Р(е, х, х)\; Si. \P(x,i(x),e), P(i(x),x,e)\. Так как ~ Я' = ~ ((Ух) Р (х, х, е) -+ ((Уи) (Vv) (Уда) (Р (и, v, w) -*_P (о, и, w)))) = ~(~\Ух)Р(х, х, e)V((Vu)(Vo)(Va»)(~P(u, v, w)\JP(v, и, w)))) = (Ух) P (x, x, e)A ~((V«) (Vo) (Уда) (~ Я (ы, v,w)y P (v, u, w))) = (Ух) P (x, x, e) А (Эй) Cv) (Щ (P (u, v, w) Д'~ P (v, u, w)), то множество дизъюнктов для ~ В' дается ниже. Т: \Р(х*х,е), Р(а,Ь,с), ~Р(Ь,а,с)\. Таким образом, множество S = Sj |jS2uS3uS4 (J 71 есть мно" жество, состоящее из следующих дизъюнктов: A) Р(х, у, f{x, у)), B) ~Р(лс, у, и)\/~Р(у, г, v)V~P(u, z, w)V P(x, v, w), C) ~Р(х, у, u)V~P(y, z, v)\/~P(x, v, w)V P(u, z, w), D) P(x, e, x), E) P(e, x, x), F) P(x, i(x), e), G) P(i(x), x, e), (8) P(x, x, e), (9) P(a, b, c), A0) ~ P(b, a, c). В примере 4.3 мы показали, как получить множество дизъюнк- дизъюнктов 5 для формулы ~/\ Из теорем 2.2 и 4.1 мы знаем, что F общезначима тогда и только тогда, когда S противоречива. Как говорили в начале этого параграфа, для доказательства теорем мы будем использовать процедуру опровержения. Таким образом, с этого места мы будем предполагать, что на входе процедуры опровержения стоит всегда множество дизъюнктов (такое, как множество S, полученное в приведенном выше примере). Дальше мы будем использовать для множества дизъюнктов термины «не- «невыполнимо» («выполнимо») вместо «противоречиво» («непротиво- («непротиворечиво»). $ 4.3 ЭРБРАНОВСКИЙ УНИВЕРСУМ МНОЖЕСТВА ДИЗЪЮНКТОВ 59 § 4.3. Эрбрановский универсум множества дизъюнктов По определению множество дизъюнктов невыполнимо тогда и только тогда, когда оно ложно при всех интерпретациях на всех областях. Так как неудобно и невозможно рассматривать все интерпретации на всех областях, было бы удобно, если бы мы могли фиксировать одну такую специальную область Н, что S невыполнимо тогда и только тогда, когда 5 ложно при всех интерпретациях на этой области. К счастью, такая область су- существует. Ее называют эрбрановским универсумом множества S и определяют следующим образом. Определение. Пусть Но—множество констант, встречаю- встречающихся в S. Если никакая константа не встречается в S, то Яо состоит из одной константы, скажем Н0 = {а\. Для t = 0, 1, 2, ... пусть Hi+1 есть объединение Я,- и множества всех термов вида fn{tlt ..., tn) (при всех п) для всех функций f", встречающихся в S, где tj (/ = 1, ..., п) принадлежит Hj. Тогда каждое H-t называется множеством констант i-vo уровня для S и Нт назы- называется эрбрановским универсумом S. Пример 4.4. Пусть S = {P(a), ~ P(x) V P(f(x))\: Тогда о{4 г = {а, f(a)\; , = {а, f(a), {a)), f(f{f{a))), ...}. Пример 4.5. Пусть S={P(jc)VQ(*), #(z), T{y) V- W(y)\. Так как не существует никаких констант в S, положим Н0={а}. Не существует никаких функциональных символов в S, следо- следовательно, Я = Яо = Нг= ... ={а\. Пример 4.6. Пусть 5 = {P(f(x), a, g(y), Ь)\. Тогда Я0={а, Ь}; Hl = {a,b,f(a),f(b), g(a), g(b)\; Н, = {а, b, f (a), f(b), g(a), g(b), f(f(a)), f(f(b)), f(g(a)), f(g(b)), g(f(a)), g(f(b)), g(g(a)), g(g(b))\; Впоследствии под выражением мы понимаем терм, множество термов, множество атомов, литеру, дизъюнкт, множество дизъюнк- дизъюнктов. Когда в выражении не встречаются никакие переменные, мы иногда называем выражение основным выражением, чтобы подчеркнуть этот факт. Таким образом, мы можем использовать основной терм, основной атом, основную литеру и основной дизъюнкт, чтобы подчеркнуть, что никакие переменные не встре- встречаются в соответствующих выражениях.
60 ТЕОРЕМА ЭРБРАНА [ГЛ. * Затем подвыражение выражения Е есть выражение, которое встречается в Е. Определение. Пусть S есть множество дизъюнктов. Тогда множество основных атомов вида P"(tx, ..., tn) для всех «-мест- «-местных предикатов Я", встречающихся в S, где t1, . . ., tn — элементы эрбрановского универсума S, называется множеством атомо&~„ множества S или эрбрановским базисом S. Определение. Основной пример дизъюнкта С множества дизъюнктов S есть дизъюнкт, полученный заменой переменных; в С на члены эрбрановского универсума S. Пример 4.7. Пусть S,= {P(x), Q (/ (у)) V R (у)}. С=Р(х) — дизъюнкт в S и Н = {а, f(a), f(f(a)), ...}—эрбрановский уни- универсум S. Тогда Р(а) и Р (/ (/ (а))) суть основные примеры С. Мы сейчас рассмотрим интерпретации над эрбрановским уни- универсумом. Пусть S — множество дизъюнктов. Как обсуждалось в главе 3, интерпретация над эрбрановским универсумом мно- множества S есть значение констант, функциональных символов и предикатных символов, встречающихся в S. Далее мы определим специальную интерпретацию над эрбрановским универсумом, назы- называемую Я-интерпретацией множества 5. Определение. Пусть S — множество дизъюнктов, Я— эрбрановский универсум S и / — интерпретация S над Я. Гово- Говорим, что / есть Н-интерпретация множества S, если она удов- удовлетворяет следующим условиям: J. / отображает все константы из S в самих.себя. 2. Пусть / есть n-местный функциональный символ и h1 . . ., /г„ —элементы Я. В / через / обозначается функция, которая, отображает (/г,, ..., hn) (элемент из Я") в f(hlt ..., hn) (эле- (элемент из Я). При этом не возникает никаких ограничений при придании значения любому n-местному предикатному символу в S. Пусть А = {А1, А2, ..., Ап, . . .) — эрбрановский базис множества 5. Я-интерпретацию / удобно представлять в виде = {ти тг, ., тп, где /Пу есть или Aj или ~Aj для /=1,2, ... Смысл этого мно- множества в том, что если т;- есть Aj, то атому Aj присвоено зна- значение «истинно», в противном случае—значение «ложно». Пример 4.8. Рассмотрим множество S = {P(x) V Q(x)y R(f(y))\- Эрбрановский универсум Я для 5 есть Я = {a, f(a), f(f(a)), ...}. В S входят три предикатных символа: Р, Q и R. Следовательно, эрбрановский базис S есть , Q(a), R(a), P(f(a)), Q(f(a)), R(f(a)), ...}. $4.3] ЭРБРАНОВСКИЙ УНИВЕРСУМ МНОЖЕСТВА • ДИЗЪЮНКТОВ Некоторые Я-итерпретации множества S суть Л = {Я(о), Q(a), R(a), P(f(a)), Q(f(a)), R(f(a)), ...}, tf( Q(f()) = {Р(а), Q(o), 61 /?(a), P(f(a)), Q(f(a)). ~R(f(a)), .. .}. Интерпретацию множества дизъюнктов S не обязательно зада- задавать над эрбрановским универсумом — интерпретация может не быть Я-интерпретацией. Пусть, например,S = \P{x), Q{y,f{y,a))\. Тогда возможна следующая интерпретация над областью D={1, 2}: D={1,2}; я A) и a f( 2 Я B) Л 1.1) 1 Q( ;i, Л / о A, 2 2) Q A, и /B, 2 2) 1) QB, Л / 1) B, 1 2) Q B, 2) Для такой интерпретации можно определить Я-интерпрета- Я-интерпретацию /*, соответствующую /. Проиллюстрируем это на том же примере. Сперва мы найдем эрбрановский базис S: А = {Р(а), Q(a,a), P(f(a, a)), Q(a, f(a, a)), Q(f(a, a), a), Q(f(a,a), f(a, a)), ...}. Затем мы оценим каждый член А, используя написанную выше таблицу. Р{а)= Я B) = Л, Q(a, a) = QB, 2)= Я, P{f {a, a)) = P(/B, 2)) = РA) = Я, Q (a, f (a, a)) = Q B, / B, 2)) = Q B, 1) = Л, Q(f(a,a), a) = Q(/B,2), 2) = QA, 2) = Я, Q(f(a,a), f(a,a)) = Q(fB, 2), /B, 2)) = QA, 1) = Л. Следовательно, Я-интерпретация /*, соответствующая /, есть / ={~ Р(а), Q(a, a), P(f(a, a)), ~Q(a, f(a,a)), Q(f(a,a), a), ~Q(f(a,a), f(a,a)), ...}. Если в S отсутствуют константы, то элемент а, используе мый, чтобы начать эрбрановский универсум, может быть отобра' жен в произвольный элемент области D. В этом случае, ее" ли D более чем одноэлементна, то существует более одной Я-ин" терпретации, соответствующей /. Пусть, например, S — {P(x),
62 ТЕОРЕМА ЭРБРАНА [ГЛ. 4 Q(y, f (у, z))} и пусть для S выбрана следующая интерпретация: /A, 1 1) /A, 2 D = \ 2) 1.2}; /B, 2 1) /B, 1 2) P(l) И PB) Л Q(i, i) Q(i, я 2) QB, 1) QB, 2) И Тогда / будут соответствовать две Я-интерпретации: у. = <~Р(а), Q(fl> а), Р(/(а, а)), ~ Q(a, f(a,a)), Q(f(a, a), a), ~ Q(/(fl, а), /(а, а)), ...}, если а = 2; /•={Я(а), ~Q{a,a), P (f (a, a)), ~Q(a, /(а, a)), ~Q(f(a, a), a), ч~ <2(/(я, а), /(а, а)), ...}, если а=1. Мы можем формализовать упомянутые выше понятия следующим образом: Определение. Пусть /—интерпретация на области D. Н-интерпретацией /*, соответствующей I, является интерпрета- интерпретация, которая удовлетворяет следующим условиям. Пусть hlt ..., hn—элементы эрбрановского универсума Я. Пусть каждый h,- отображается в некоторый d,- в D. Если P(d1} ■■■,dn) получает в интерпретации / значение И (Л), то Р (hlt .. ., hn) также получает значение И (соответственно Л) в /*. В действительности нетрудно доказать следующую аемму. (Доказательство оставляем в качестве упражнения.) Лемма 4.1. Если интерпретация I на некоторой области D удовлетворяет множеству дизъюнктов S, то любая из Н-интер- претаций /*, соответствующих I, также удовлетворяет S. Теорема 4.2. Множество дизъюнктов S невыполнимо тогда и только тогда, когда S ложно при всех Я-интерпретациях в S. Доказательство. (=Ф) Первая половина предложенной выше теоремы очевидна, так как по определению S невыполнимо тогда и только тогда, когда S ложно при всех интерпретациях на любой области. (.$=) Чтобы доказать вторую половину предложенной теоремы, предположим, что 5 ложно при всех Я-интерпретациях в S. Поло- Положим, что S выполнимо. Тогда существует такая интерпретация / на некоторой области D, что S истинно при /. Пусть /• есть Я-интерпретация, соответствующая /. Согласно лемме 4.1 S истинно при /*. Это противоречит предположению, что S ложно при всех Я-интерпретациях в S. Следовательно, S должно быть невыполнимо, что и требовалось доказать. 4.4 СЕМАНТИЧЕСКИЕ ДЕРЕВЬЯ 63 Таким образом, мы достигли цели, установленной в начале этого параграфа, т. е. нам необходимо рассматривать только интерпретации над эрбрановским универсумом (или, более стро- строго,— Я-интерпретации) для проверки того, выполнимо множество дизъюнктов или нет. Поэтому впредь, упоминая интерпретацию, мы будем иметь в виду Я-интерпретацию. Пусть 0 обозначает пустое множество. Каждое следующее высказывание очевидно, и мы оставим их доказательство чита- читателю. 1. Основной пример С дизъюнкта С выполняется в интер- интерпретации / тогда и только тогда, когда существует основная литера L' в С' такая, что L' есть также в /, т. е. С' Л / ф 0■ 2. Дизъюнкт С выполняется в интерпретации / тогда и только тогда, когда каждый основной пример С выполняется в интерпретации /. 3. Дизъюнкт опровергается интерпретацией / тогда и только тогда, когда существует по крайней мере один такой основной пример С" для С, что С не выполняется в /. 4. Множество дизъюнктов S невыполнимо тогда и только тогда, когда для каждой интерпретации / существует по край- крайней мере один такой основной пример С некоторого дизъюнкта С в S, что С не выполняется в интерпретации /. Пример 4.9. 1. Рассмотрим дизъюнкт C=~P{x)\J Q(f(x)). Пусть /j, /3 и /3 определяются следующим образом: ). ~ P(f(f(a))), Q(a), P(f(a)), Q(f(a)), ~Q(a), P(f(a)), )), Q(f(f(a))), P(f(f(a))), Читатель может увидеть, что С выполняется в интерпретациях 1г и /8, но опровергается в интерпретации /3. 2. Рассмотрим S = {P(x), ~ P(a)\. Существуют только две Я-интерпретации: S опровергается двумя интерпретациями и, следовательно, не- невыполнимо. § 4.4. Семантические деревья Введя эрбрановский универсум, мы сейчас рассмотрим семан- семантические деревья (Робинсон [3]; Ковальский и X ей ее [1]). Как будет видно впоследствии, нахождение доказательства для множества дизъюнктов эквивалентно построению семантического дерева.
ТЕОРЕМА ЭРБРАНА ГЛ. 4 Определение. Если А — атом, то говорят, что две литеры А и ~ А контрарны друг другу, и множество {А, ~ А} назы- называется контрарной парой. Отметим, что дизъюнкт есть тавтоло- тавтология, если он содержит контрарную пару. Впоследствии, используя термин «тавтология», мы будем иметь в виду дизъюнкт, являю- являющийся тавтологией. Определение. Пусть S—множество дизъюнктов и А—его эрбрановский базис. Семантическое дерево для S есть растущее вниз дерево Т, в котором каждому ребру приписано конечное множество атомов или отрицаний атомов из А таким образом, что: (i) Из каждого узла N выходит только конечное число ребер Llt .... Ln. Пусть Qi — конъюнкция всех литер, приписанных к Lh i=l, ..., п. Тогда Qj V Q2 V-. • V Qn—общезначимая пропозициональная формула. (п) Пусть для каждого узла N I (N) есть объединение всех множеств, приписанных ребрам ветви, ведущей к N. Тогда I (N) не содержит контрарных пар. Определение. Пусть А — {Аи Аг, ...,А„,-...\ — эрбра- яовекий базис множества 5. Говорят, что семантическое дерево для S будет полным тогда и только тогда, когда для каждого R р (Ъ) Рис. i (i=l, 2, ...) и каждого конечного узла N семантического дерева (т. е. для узла, из которого не выходит никаких ребер) I (N) содержит либо Л,-, либо ~Л,-. Пример 4.10. Пусть Л = {Р, Q, R\—эрбрановский базис множества S. Тогда каждое из двух деревьев на рис. 1 есть полное семантическое дерево для S. Пример 4.11. Рассмотрим S = {P(x), P(a)\. Эрбрановский базис множества S есть \Р(а)\. Полное семантическое дерево для S показано на рис. 2. § 4.4] СЕМАНТИЧЕСКИЕ ДЕРЕВЬЯ 65 Пример 4.12. Рассмотрим S = {P(x), Q{f(x))\. Эрбрановский базис множества S есть {Р{а), Q(a), P(f(a)), Q'tf(a)), P(f(f(a))), Q(f(f(a))), ...}. Рис. д показывает семантическое дерево для S. Заметим, что для каждого узла N в семантическом дереие для S / (N) есть подмножество некоторой интерпретации для S' Р(а) Р(а) Р(а) ■Ир (а)) Рис. 2. Рис. 3. По этой причине / (N) будет называться частичной интерпрета- интерпретацией для S. Когда эрбрановский базис множества S бесконечен, всякое полное семантическое дерево для S будет тоже бесконечно. Легко видеть, что полное семантическое дерево для S соответствует исчерпывающему перебору всех возможных интерпретаций для S. Если S невыполнимо, то S не сможет быть истинным в каждой из этих интерпретаций. Таким образом, мы можем остановить рост дерева из узла N, ее ни I {N) опровергает S. Это порож- порождает следующие определения. Определение. Узел N называется опровергающим, если / (N) опровергает некоторый основной пример дизъюнкта в. S, но для любого предшествующего N узла N' 1{N') не опровер- опровергает никакого основного примера дизъюнкта в S. Определение. Говорят, что семантическое дерево Т будет закрытым, тогда и только тогда, когда каждая ветвь Т оканчи- оканчивается опровергающим узлом. Определение. Узел N закрытого семантического дерева называется выводящим узлом, если все непосредственно следую- следующие за N узлы являются опровергающими. Пример 4.13. Пусть S = {P, Q\/R, ~P V~Q, ~PV~R\. Эрбрановский базис множества S есть Л = {Р, Q, R\. Рис. 4, а есть полное семантическое дерево для S, тогда как рис. 4, b есть закрытое семантическое дерево для S. 3 Зак. 112
66 ТЕОРЕМА ЭРБРАНА ГЛ. 4 ■Р(ау (а) Рис. 4. Рис. 5. «Ра 4.14. Рассмотрим S = {P(x), ~ Р (х) \/ Q (f (x))r )}. Эрбрановский базис множества S есть А = {Р(а), Q(a), P(f(a)), Q(f(a)), ...}. На рис. 5 изображено семантическое дерево для S. § 4.5. Теорема Эрбрана Теорема Эрбрана — очень важная теорема математической ло- логики; она является основой большинства современных машин- машинных алгоритмов доказательства теорем. Теорема Эрбрана тесно связана с теоремой 4.2, данной в § 4.3, т. е. чтобы проверить, является ли множество дизъюнктов невыполнимым, нам необхо- необходимо рассмотреть только интерпретации над эрбрановским уни- универсумом S. Если S ложно при всех интерпретациях над эрбра- эрбрановским универсумом S, то мы можем заключить, что S невы- невыполнимо. Так как обычно существует много, возможно бесконеч- бесконечное число, таких интерпретаций, мы организуем их некоторым систематическим способом. Это можно сделать, используя семан- семантические деревья. Мы дадим два варианта теоремы Эрбрана. Второй вариант наиболее часто встречается в литературе. Однако в этой книге используется первый вариант. Теорема 4.3 (теорема Эрбрана, вариант I). Множество дизъюнктов S невыполнимо тогда и только тогда, когда любому полному семантическому дереву S соответствует конечное замкну- замкнутое семантическое деревох). Доказательство. (=>) Допустим, что S невыполнимо. Пусть Т — полное семантическое дерево для S. Для каждой ветви В дерева Т пусть /в—множество всех литер, приписанных всем ребрам ветви В. Тогда 1В есть интерпретация для S. Так как S невыполнимо, то IB должна опровергать основной пример- *) To есть любая ветвь полно/о дерева ведет в опровергающий узел,— Прим. ред. $4.5 ТЕОРЕМА ЭРБРАНА 67 С' дизъюнкта С в S. Однако так как С конечно, то на В дол- должен существовать опровергающий узел Nв (лежащий на конеч- конечном расстоянии от корня). Поскольку каждая ветвь Т имеет опровергающий узел, то существует замкнутое семантическое дерево Т' для S. Далее, так как из каждого узла в Т' выходит только конечное число ребер, то 7" должно быть конечным (т. е. число узлов в 7" конечно), иначе, согласно лемме Кёнига (Кнут [1]), мы могли бы найти бесконечную ветвь, не содержа- содержащую опровергающих узлов]). Таким образом, мы заканчиваем доказательство первой половины теоремы. (<=) Наоборот, если для каждого полного семантического дерева Т для S существует конечное закрытое семантическое дерево, то каждая ветвь Т содержит опровергающий узел. Это означает, что каждая интерпретация опровергает S. Следова- Следовательно, S невыполнимо. Это завершает доказательство второй половины теоремы. Теорема 4.4 (теорема Эрбрана, вариант II). Множество дизъюнктов S невыполнимо тогда и только тогда, когда суще- существует конечное невыполнимое множество S' основных примеров дизъюнктов S. Доказательство. (=>) Предположим, что S невыпол- невыполнимо. Пусть Т—полное семантическое дерево для S. Тогда по теореме Эрбрана (вариант I) существует конечное закрытое семан- семантическое дерево Т", соответствующее Т. Пусть S'— множество всех основных примеров дизъюнктов, которые опровергаются во всех опровергающих узлах Т". S' конечно, так как в 7" конечное число опровергающих узлов. Так как S' ложно в каж- каждой интерпретации S', то S' невыполнимо. (<=) Предположим, что существует конечное невыполнимое множество S' основных примеров дизъюнктов в S. Так как каж- каждая интерпретация / для S содержит интерпретацию /' множе- множества S' и /' опровергает S', то / должна также опровергать S'. Однако S' опровергается в каждой интерпретации /'. Сле- Следовательно, S' опровергается в каждой интерпретации / мно- множества S. Поэтому S опровергается в каждой интерпретации множества S'; значит, S невыполнимо. Пример 4.15. Пусть S = {P(x), ~~P(f(a))}. Это множество S невыполнимо. Следовательно, по теореме Эрбрана существует конечное невыполнимое множество S' основных примеров дизъ- дизъюнктов множества S. Мы нашли, что одно из этих множеств есть S' { {P(f(a)), ~Я(/(а))}. Пример 4.16. Пусть S = {~ Р (х) \у Q{f{x), x), P(g(b)), Q (у, z)}. Это множество S невыполнимо. Одно из невыполни- а) Лемму Кёнига см., например, в книге К ли ни С. К- Математическая логика.—М.: Мир, 1973.— Прим. ред. 3* Зак. 112
68 ТЕОРЕМА ЭРБРАНА ГЛ. 4 мых множеств основных примеров дизъюнктов множества S есть S' = ~PXg(b))VQ(f(g(b)),g(b)), P(g(b)), ~Q(f(g(b)), g(b))\. Пример 4.17. Пусть множество S содержит следующие дизъ- дизъюнкты: S = {~P(x, у, и) V ~Р(у, z, v) V ~P{x, v, w)\j P(u, г, w), ~Р(х, у, u)\J ~Р(у, г, v)\f ~P(u, г, ш) V Р(х, v, w), P(g(x, у), х, у), Р (х, h(x, у), у), Р(х, у, f(x, у)), ~P[k(x), х, k(x))\. Это множество S также невыполнимо. Однако нелегко обнаружить вручную конечное невыполнимое множество 5' основных примеров дизъюнктов множества S. Один путь нахождения такого множества S' состоит в порождении замкнутого семантического дерева 7" для S. Тогда множество S' всех основных примеров, опровергае- опровергаемых во всех опровергающих узлах 7", и есть искомое множество. Это множество S' приводится ниже. Читатель может проверить, что каждый основной дизъюнкт в 5' есть основной пример неко- некоторого дизъюнкта множества S и что S' невыполнимо. S' = {P(a, h(a, a), а), ~P(k(h(a, a)), h(a, a), k(h(a, a))), P(g(a, k(h(a, a))), a, k(h(a, a))), ~P(g(a, k (h (a, a))), a, k (h (a, a))) V ~P(a,h(a, а), а) V~P(g(a, k(h[a, a))), a, k(h(a, a))) \J P (k(h(a, a)), A (a, a), k(h(a, a)))} § 4.6. Применение теоремы Эрбрана Второй вариант теоремы Эрбрана предполагает процедуру опро- опровержения. Это значит, что если надо показать невыполнимость множества дизъюнктов S и мы имеем машинную процедуру, которая может успешно порождать множества S[, ..., S'n, ... основных примеров дизъюнктов из S и успешно устанавливать их невы- невыполнимость, то эта процедура, как гарантируется теоремой Эрбрана, укажет нам такое конечное Лг, что S'N невыполнимо. Гилмор был одним из первых, кто применил вышеуказанную идею (Гилмор [1]). В 1960 г. он написал машинную программу, которая успешно производила множества 5„, S^, . . ., где S'c—мно- S'c—множество всех основных примеров, полученных заменой переменных в S константами из Я,- — множества констант t'-ro уровня для S. Так как каждое S[ есть конъюнкция основных дизъюнктов, чита- читатель может использовать любой метод, пригодный в логике выс- высказываний, чтобы проверить ее невыполнимость. Гилмор исполь- использовал мультипликативный метод, т. е. приводил каждое порож- порожденное множество S- к дизъюнктивной нормальной форме. После § 4.6 ПРИМЕНЕНИЕ ТЕОРЕМЫ ЭРБРАНА 69 этого всякая конъюнкция в дизъюнктивной нормальной форме, содержащая контрарные пары, выбрасывалась. Если некоторое S' оказывалось пустым, то невыполнимость S,- оказывалась уста- установленной. Пример 4.18. Рассмотрим , ~P(a)\; Таким образом, доказывается, что 5 невыполнимо. Пример 4.19. Рассмотрим ~P{x)VQ{f(x)), ~Q(f(a))}\ = P(a) = (P(a) = П V Л(~ л ~ п = р р о (а) (а) А ' Hf(a)))A ~\Q(fW)) V Q(f(a)) (Р (а) Л Q(f(a)) А Q(f (a)) Таким образом, доказывается, что S невыполнимо. Мультипликативный метод, использованный Гилмором, неэф- неэффективен. Как легко видеть, даже для малого множества из десяти двухлитерных основных дизъюнктов существует 210 конъюнкций. Чтобы преодолеть эту неэффективность, Девис и Патнем [1] ввели более эффективный метод для проверки невыполнимости множества основных дизъюнктов. Мы сейчас опишем некоторую модификацию их метода. Метод Девиса и Патнема. Пусть S—множество дизъюнктов. По существу метод состоит из следующих четырех правил: I. Правило тавтологии. Вычеркнем все тавтологичные основ- основные дизъюнкты из S. Оставшееся множество S' невыполнимо тогда и только тогда, когда и S невыполнимо. II. Правило однолитерных дизъюнктов. Если существует еди- единичный основной дизъюнкт L в S, то S' получается из S вычер- вычеркиванием тех основных дизъюнктов в S, которые содержат L. Если S' пусто, то S выполнимо. В противном случае построим множество S", выбрасывая из S' вхождения ~L. 5" невыполнимо тогда и только тогда, когда и S невыполнимо. Отметим, что если ~ L—единичный основной дизъюнкт, то при вычеркивании ~L он превратится в □. III. Правило чистых литер. Назовем литеру L в основном Дизъюнкте из S чистой в S тогда и только тогда, когда литера ~ L не появится ни в каком основном дизъюнкте wiS. Если литера L чистая в S, то вычеркнем все основные дизъюнкты, содержащие L. Оставшееся множество S' невыполнимо тогда и только тогда, когда и S невыполнимо.
70 ТЕОРЕМА ЭРБРАНА 1ГЛ. 4 IV. Правило расщепления. Если множество 5 можно предста- представить в виде (Ai V L) Л ■. ■ Л (AmV L) A (BrV ~ L) Л ■ ■ ■ Л (BnV ~ L) Л R, где Ait В, и R свободны от L и ~L, то получим множества1) S1 = A1A ■ ■ ■ А Ат A R и Si = B1 /\ ... ABnAR-S невыполнимо тогда и только тогда, когда (Sx V S2) невыполнимо, т. е. и S1 и 5S невыполнимы. Мы можем теперь показать, что вышеуказанные правила обра- обратимы, т. е., если первоначальное множество S невыполнимо, то оставшееся после применения одного из правил множество все еще невыполнимо и наоборот. Длл правила I. Так как тавтология удовлетворяется для каждой интерпретации, S' невыполнимо тогда и только тогда, когда и 5 невыполнимо. Для правила II. Если S' пустое, то все основные дизъюнкты из 5 содержат L. Следовательно, всякая интерпретация, содер- содержащая L, может удовлетворять 5. Поэтому S выполнимо. Мы еще должны показать, что 5" невыполнимо тогда и только тогда, когда и S невыполнимо. Предположим, что 5" невыполнимо. Если 5 выполнимо, то существует модель М из 5, содержащая L. Для 5" модель М должна удовлетворять всем дизъюнктам, которые не содержат L. Далее, так как М опровергает ~ L, модели М должны удовлетворять все дизъюнкты, которые первоначально содержали ~ L. Следовательно, М должна удовлетворять 5". Это противоречит предположению, что 5" невыполнимо. Поэтому 5 должно быть невыполнимо. Наоборот, предположим, что 5 невы- невыполнимо. Если 5" выполнимо, то существует модель М" на 5". Таким образом, всякая интерпретация S, содержащая М" и L, должна быть моделью S. Это противоречит предположению, что 5 не имеет модели. Поэтому 5" должно быть невыполнимо. Сле- Следовательно, 5" невыполнимо тогда и только тогда, когда и S невыполнимо. Для правила III. Предположим, что S' невыполнимо. Тогда 5 должно быть невыполнимо, так как 5' есть подмножество 5. Наоборот, предположим, что S невыполнимо. Если S' выполнимо, то существует модель М для S'. Следовательно, ни L, ни ~ L не находятся в S', ни L ни ~ L не находятся в М. Таким обра- образом, всякая интерпретация 5, которая содержит М и L, есть модель S. Это противоречит предположению, что S не имеет модели. Поэтому S' должно быть невыполнимо. Следовательно, S' невыполнимо тогда и только тогда, когда S невыполнимо. Для правила IV. Предположим, что S невыполнимо. Если (S1 \/ S2) выполнимо, то или S, или 52 имеет модель. Если 5t(S2) имеет модель М, то всякая интерпретация S, содержащая ~ L(L), Будем их называть множествами расщепления.— Прим. перев. J4.6] ПРИМЕНЕНИЕ ТЕОРЕМЫ ЭРБРАНА 71 есть модель S. Это противоречит предположению, что S не имеет модели. Следовательно, (S1 \/ 52) невыполнимо. Предположим, что (Sx V S2) невыполнимо. Если S выполнимо, то S должно иметь модель М. Если М содержит ~ L(L), то М может удов- удовлетворять Sx (S2). Это противоречит предположению, что (Sj V S2) невыполнимо. Поэтому S должно быть невыполнимо. Следова- Следовательно, S невыполнимо тогда и только тогда, когда существует (S, V St). Вышеуказанные правила очень важны. Мы увидим в после- последующих главах, что эти правила имеют более широкую область применимости. А сейчас дадим несколько примеров, чтобы про- продемонстрировать использование этих правил. Пример 4.20. Показать, что S=(P V Q V ~ R) А (Р V ~ Q) Л Л ~ Р A R A U невыполнимо. A) (Р V Q V ~ R) А (Р V ~ Q) А - Р A R A U, B) (Q V - R) A (~ Q) Л R Л U правило II с ~ Р, C) ~ R A R A U правило II с ~ Q, D) □ Л U правило II с ~ R. Так как последняя формула содержит пустой дизъюнкт П. то S невыполнимо. Пример 4.21. Показать, что S = (P V Q) Л ~ Q А (~Р V V Q V ~ R) выполнимо. A) (Р V Q) Л ~ Q Л (~ Р V Q V - R), B) Р А (~Р V ~ R) правило II с ~ Q, C) ~R правило II с Я, D) Щ правило 11с — /?. Последнее множество есть пустое множество. Следовательно, S выполнимо. Пример 4.22. Показать, что S = (P V ~Q) A (~ P V Q) Л Л (Q V ~ R) A (~ Q V ~ R) выполнимо. A) (Р V ~ Q) А (~ Р V Q) Л (Q V - R) A (~ Q V ~ R), B) (~ Q A (Q V ~ R) A (~ Q V ~ /?)) V (Q Л (Q V ~ R) A (~ Q V ~ /?)) правило IV с Р, C) ~ R \J ~ R правило II с ~ Q и Q, D) Ш V Ш правило II с ~ R. Так как оба множества расщепления выполнимы, то и S выпол- выполнимо. Пример 4.23. Показать, что S = (P V Q) Л (Р V ~ Q) Л Л (R V Q) A (R V ~ 0) выполнимо. (!) (^ V Q) А (Р V - Q) Л (/? V Q) Л (/? V ~ Q), B) (/? VQ)A(/? V ~Q) правило III с Р, C) Щ правило III с R. Таким образом, S выполнимо.
72 ТЕОРЕМА ЭРБРАНА ГЛ. 4 Вышеизложенный метод для проверки невыполнимости (про- (противоречивости) более эффективен, чем мультипликативный метод. Этот метод может быть применен к любым формулам в логике высказываний, т. е. сперва сводим данную пропозициональную формулу к конъюнктивной нормальной форме и затем применяем данные выше четыре правила *). Читателю предлагается применить этот метод к примеру 2.13 главы 2. ЛИТЕРАТУРА Андерсон и Бледсоу (Anderson R., Bledsoe W. W.) 1. A linear format for resolution with merging and a new technique for establishing completeness.— J. Assoc. Comput. Mach., 1970, 17, p. 525 — 534. Бойер (Boyer R. S.) 1. Locking: A Restriction of Resolution: Ph.D. Thesis.—Austin: University of Texas, 1971. Ван (Wang H.) 1. На пути к механической математике.—Киберн. сб., 5. М.: ИЛ, 1962. Г и л м о р (Gilmore P. С.) 1. A proof method for quantification theory: Its justification and realization.— IBM J. Res. Develop., 1960, p. 28—35. Д е в и с (Davis M.) 1. Уаранение лишнего из механических доказательств.— Киберн. сб., нов. сер., 7. М.: Мир, 1970, с. 160—179. Девис и Патнем (Davis M., Putnam H.) 1. A computing procedure for quantification theory,— J. Assoc. Comput. Mach., 1960, 7, p. 201—215. Ейтс, Рафаэль и Харт (Yates R., Raphael В., Hart T.) 1. Resolution graphs.—Artificial Intelligence, 1970, 1, p. 257—290. Ковальский и Кюнер (Kowalski R., Kuehner D.) 1. Linear resolution with selection function.—Metamathematics Unit., Edin- Edinburgh University, Scotland, 1970. Ковальский и Хейес (Kowalski R., Hayes P.) 1. Семантические деревья в автоматическом поиске доказательств.— Киберн. сб., нов. сер., 9. М.: Мир, 1972. Кнут (Knuth D. Е.) 1. Искусство программирования для ЭВМ.— М.: Мир, 1976. 1) Легко видеть, что правила II и III являются частными случаями пра- правила IV, соответствующими вырождению одного из множеств расщепления. Естественно также считать, что при применении расщепления по литере L дизъюнкты, содержащие противоречие La —L, выбрасываются. Таким обра- образом, правило I оказывается включенным в правило IV. Метод распознавания тавтологичности, основанный на правиле расщепления в качестве единствен- единственного правила, весьма интересен в теоретическом и практическом отношениях и активно изучается. См., в частности, работы: Га ли л (Galil Z). On enume- enumeration procedures for theorem proving.—Automata Lang, and Programming, Edin- Edinburgh, 1976, p. 335—381 и Данцин Е. Я. Параметры, определяющие время распознавания тавтологичности методом расщеплений—Семиотика и инфор- информатика A979, 12, с. 8—17), а также работы Е. Я. Данцина, Ю. Н. Курье- рова и С. Ю. Маслова в сб. Тезисы докладов и сообщений всесоюзной кон- конференции «Методы математической логики в проблемах искусственного интел- интеллекта и систематическое программирование»^. I, Паланга, 1980.— Прим. ред УПРАЖНЕНИЯ 73 Лав ленд (Loveland D. W.) 1. A linear format for resolution.—Proc. IRIA Symp. Automatic Demonstra- Demonstration, Versailles, France, 1968. N. Y.: Springer, 1970, p. 147—162. 2. Some linear Herbrand proof procedures: An analysis.— Dept. Computer Science, Carnegie-Mellon University, 1970. Л а к x e м (Luckham D.) 1. Refinements in resolution theory.— Proc. IRIA Symp. Automatic Demon- Demonstration, Versailles, France, 1968. N. Y.: Springer, 1970, p. 163—190. M e л ь ц e p (Meltzer В.) 1. Theorem-proving for computers: Some results on resolution and renaming.— Computer J., 1966, 8, p. 341—343. Правиц Д., Правнц X. и Вогера (Prawitz D., Prawitz H., Voghera N.) 1. A mechanical proof procedure and its realization in an electronic compu- computer.—J. Assoc. Comput. Mach., 1960, 7, p. 102—128. Рейтер (Reiter R.) 1. Two results on ordering for resolution with merging and linear format.— J. Assoc. Comput. Mach., 1971, 18, p. 630—646. Робинсон Дж. (Robinson J. A.) 1. Машинно-ориентированная логика, основанная на принципе резолю- резолюции.— Киберн. сб., нов. сер., 7. М.: Мир., 1970. 2. Automatic deduction with hyper-resolution.— Internet. J. Comput. Math.,. 1965, 1, p. 227-234. 3. The generalized resolution principle.— In: Machine Intelligence, 1968, 3/Ed, D. Michie. N. Y.: American Elsevier, 1968, p. 77—94. Слэйгл (Slagle J. R.) 1. Automatic theorem proving with renamable and semantic resolution.— J. Assoc. Comput. Mach., 1967, 14, p. 687—697. Тьюринг (Turing A. M.) 1. On computable numbers, with an application to the Entscheidungsprob- lem.— Proc. London Math. Soc, 1936, 42, № 2, p. 230—265. Уос, Карсон и Робинсон Г. (Wos L., Carson D., Robinson G. A.) 1. The unit preference strategy in theorem proving.— Proc. AFIPS 1964 Fall Joint Computer Conf., 1964, 26, p. «16—621. Уос, Робинсон Г. и Карсон (Wos L., Robinson Q. A., Carson D. F.} 1. Efficiency and completeness of the set of support strategy in theorem proving.—J. Assoc. Comput. Mach., 1965, 12, p. 536—541. Ч е н ь (Chang С L.) 1. The unit proof and the input proof in theorem proving.— J. Assoc. Com- Comput. Mach., 1970, 17, p. 698—707. Чёрч (Church A.) 1. An unsolvable problem [of number theory.— Amer. J. Math. 1936, 58r p. 345—363. УПРАЖНЕНИЯ К § 4.2 1. Найти стандартную форму для каждой из следующих формул: (a)i~*((V*) Р (х) -^ (Эу) (Vz) Q (У, г)); (Ь) (у*) ((- Е (х, 0) —► ((эу) (Е (у, g (х)) Л (уг) (£;(г, g (х)) —► Е (у, г))))); 2. Предположим, что C*) (Vy) M [х, у] есть предваренная нормальная форма формулы F, где М [х, у]—матрица, которая содержит только пере- переменные хну. Пусть / — функциональный символ, не встречающийся в М [х, у]. Доказать, что F общезначима тогда и только тогда, когда (зх) М [х, } (х)} общезначима.
74 ТЕОРЕМА ЭРБРАНА [ГЛ. 4 3. Пусть Sx и S2 — стандартные формы формул F1 и F2 соответственно. Если Si = S2, то истинно ли F1 — F2? Объясните. 4. Рассмотрим следующие утверждения: Т7!: Каждый, кто хранит деньги, получает проценты. F2: Если не выплачивается никаких процентов, то никто не хранит деньги. Пусть S (х, у), М (х), I (х) и Е (х, у) представляют «хранит у», «х — деньги», ч-х—проценты» и «х получает уъ соответственно. A) Записать символами ^i и F2. B) Найти стандартные формы Fx и ~ .F2. К § 4.3 5. Пусть S = {P (/(*), а, g (/(*), Ь))}. A) Найти Яо и Wt. !2) Найти все основные примеры S на Яо. 3) Найти все основные примеры S на Hi. 6. Доказать лемму 4.1 этой главы. 7. Пусть F обозначает формулу. Пусть S — стандартная форма для —F. Найти необходимые и достаточные условия для F такие, что эрбрановский универсум S конечен. 8. Рассмотрим следующий дизъюнкт С и интерпретацию /: С: P(x)vQ (x, f (x)) I: ~P(a), ~P(f(a)), ~ P (f (J (a))) ~Q{a, a), Q(a, f(a)), ~ Q (a, f (f (a))) ~Q{f{a), a), Q(f(a), f (a)), ~Q(f(a), f(f(a))), ...}. Верно ли, что / удовлетворяет С? 9. Рассмотрим следующее множество S дизъюнктов: Пусть интерпретация / определяется так, как указано ниже: / = {P(a), P(f(a)), P(!(f(a))), ..., Q (a), ~ Q (/ (a)), Q Ц (f (a))), ...}. Верно ли, что / удовлетворяет S? 10. Рассмотрим S = {P(x), ~ P (f (у))}. 1. Построить Яо, Hi, Я2 и Я3 для S. 2. Возможно ли найти интерпретацию, которая удовлетворяет S? Если да, приведите одну. Если нет, то почему? Q}. Построить замкнутое семантическое Q (х, а), ~ Q (у, а)). К §4.4 11. Пусть S = {P, ~P V Q, дерево для S. 12. Рассмотрим S = {P (х), ~ Р (х) Построить множество атомов S. Построить полное семантическое дерево S. Построить замкнутое семантическое дерево S. К § 4.5 13. Рассмотреть S={P(x, a, g(x, bj), ~P (f (у), z, g(f(a), Ь))}. Найти невыполнимое множество 5' основных примеров дизъюнктов в 5. 14. Пусть S = {P(x), Q(x, f(x))V ~ P (x), ~Q(g(y), г)}. Найти невы- невыполнимое множество S' основных примеров дизъюнктов в 5. упражнения 75 К §4.6 15. Используя правило, предположенное Девисом и Патиемом, доказать, что следующие формулы невыполнимы: A) (~ Р V Q) A ~ Q А Р; B) (Р v Q) Л (R V Q) Л ~ R Л ~ Q; C) (Р v Q) Л (~ Р V Q) Л (~ R V ~ Q) Л (R V Q). 16. Используя правила, предложенные Девисом и Патнемом, доказать что следующие формулы выполнимы: A) Р Л Q Л R; B) (Р v Q) A(~PvQ) AR; C) (Pv Q) A ~Q.
ГЛАВА 5 МЕТОД РЕЗОЛЮЦИЙ § 5.1. Введение В предыдущих главах мы рассмотрели теорему Эрбрана. Основываясь на этой теореме, мы описали процедуру поиска опровержения. Однако процедура Эрбрана имеет один сущест- существенный недостаток: она требует порождения множества S[, S2, . .. основных примеров дизъюнктов. В большинстве случаев эта по- последовательность растет экспоненциально. Чтобы увидеть это, рассмотрим один простой пример. Рассмотрим S = {P(x, g(x),y,h(x,y), z, k(x, у, z)), ~ P{u,v, e(v), w, f{v,w),x)}. Так как HY = {a, g(a), h(a, a), k(a, a, a), e(a), f(a, a)}, число элементов в S'o, S[, ... есть 2, 1512, ... соответственно. Интересно отметить, что самое первое невыполнимое множество — это S'6. Однако Н'ъ имеет порядка 1064 элементов. Следовательно, 5s имеет порядка 10266 элементов. При современной машинной технике невозможно даже поместить S'b в ЭВМ, не говоря уже о проверке его невыполнимости. Чтобы избежать порождения множеств основных примеров, как требуется в процедуре Эрбрана, мы введем в этой главе метод резолюций, следуя Дж. Робинсону [1]. Этот метод может применяться к любому множеству дизъюнктов (не обяза- обязательно основных) с целью проверки его невыполнимости. Основная идея метода резолюций состоит в том, чтобы про- проверить, содержит ли S пустой дизъюнкт □• Если S содержит П. то S невыполнимо. Если S не содержит П. то проверяется сле- следующий факт: может ли Q быть получен из S. Будет ясно позд- позднее, что по теореме Эрбрана (вариант I) проверка получения □ эквивалентна подсчету числа узлов замкнутого семантического дерева для S. По теореме 4.3 S невыполнимо тогда и только тогда, когда существует конечное замкнутое семантическое де- дерево Т для S. Ясно, что S содержит □ тогда и только тогда, когда Т состоит только из одного узла —корневого узла. Если 5 § 5.2 МЕТОД РЕЗОЛЮЦИЙ ДЛЯ ЛОГИКИ ВЫСКАЗЫВАНИЙ не содержит П. то Т должно содержать более чем один узел. Однако если мы сможем свести число узлов в Т к одному, то в конце концов □ обязательно появится. В этом и состоит ме- метод резолюций. На самом деле мы можем его рассматривать как специальное правило вывода, используемое для порождения из 5 новых дизъюнктов. Если мы добавим эти новые дизъюнкты в S, то некоторые узлы в исходном Т окажутся опровергающими узлами. Таким образом, число узлов в Т может быть уменьшено и пустой дизъюнкт □ будет в конце концов получен. В этой главе мы сперва рассмотрим метод резолюций для логики высказываний. Затем мы распространим его на логику первого порядка. § 5.2. Метод резолюций для логики высказываний Метод резолюций, в сущности,— это обобщение правила одно- литерных дизъюнктов Девиса и Патнема, данного в § 4.6 главы 4. Рассмотрим следующие дизъюнкты: С,: Р, С2: -PVQ. Используя правило однолитерных дизъюнктов, из С1 и Са мы можем получить дизъюнкт С3: Q. Правило однолитерных дизъюнктов требуется нам, чтобы сперва определить, имеется ли контрарная пара литеры (напри- (например, Р)вС,и литеры (например, ~ Р) в С2, затем вычеркнуть эту пару из CY и С2, чтобы получить дизъюнкт С3, который есть Q. Обобщая вышеуказанное правило и применяя его к любой паре дизъюнктов (не обязательно единичных), мы получим сле- следующее правило, которое назовем правилом резолюций. Для любых двух дизъюнктов С, и С2, если существует лите- литера Li в Clt которая контрарна литере L2 в С2, то, вычеркнув Lx и L2 из Сг и С2 соответственно, построим дизъюнкцию остав- оставшихся дизъюнктов. Построенный дизъюнкт есть резольвента Сг U С2. Пример 5.1. Рассмотрим следующие дизъюнкты: С: PVR, PVQ. Дизъюнкт Сх имеет литеру Р, которая контрарна литере ~Р в Са. Следовательно, вычеркивая Р и ~Р из Сх и С2 соотве ' ственно и составляя дизъюнкцию оставшихся дизъюнктов R и О мы получим резольвенту RVQ.
78 МЕТОД РЕЗОЛЮЦИЙ ГЛ. 5 Пример 5.2. Рассмотрим дизъюнкты С,: ~P\/QVR, С2: -QVS. Резольвента Ct и С2 есть ~ Р\/ R\/S. Пример 5.3. Рассмотрим дизъюнкты С2: -PVQ, -PVR. Так как не существует никакой литеры в CL, которая конт- контрарна какой-нибудь литере в С2, то не существует никакой ре- резольвенты Cj и С8. Важным свойством резольвенты является то, что любая ре- резольвента двух дизъюнктов С1 и С2 есть логическое следствие С1 и С2. Это устанавливается в следующей теореме. Теорема 5.1. Пусть даны два дизъюнкта Сг и С2. Тогда резольвента С дизъюнктов Ct и С2 есть логическое следствие С, и С2. Доказательство. Пусть С1г С2 и С означают следующее: C1 = L\jC[, С2= ~ L\/C2 и С = С[\/С2, где С[ и С2—дизъюнкции литер. Предположим, что Сх и С2 истинны в интерпретации /. Мы хотим доказать, что резольвента С дизъюнктов Сх и С2 также истинна в /. Чтобы доказать это, отметим, что L или ~ L лож- ложно в /. Положим, что L ложно в /. Тогда Ct не должен быть единичным дизъюнктом, иначе Сх был бы ложен в /. Следова- Следовательно, С[ должен быть истинен в /. Таким образом, резоль- резольвента С, т. е. С'^уС'ъ, истинна в /. Аналогично мы можем пока- показать, что если ~ L ложно в /, то С2 должен быть истинен в /. Следовательно, C[\JC2 должна быть истинна в /, что и требо- требовалось доказать. Если мы имеем два единичных дизъюнкта, то их резольвента, если она существует, есть пустой дизъюнкт □• Более существен- существенно, что для невыполнимого множества дизъюнктов применениями правила резолюций можно породить □• Этот результат будет доказан в § 5.6 этой главы. Л пока определим понятие вывода. Определение. Пусть S—множество дизъюнктов. Резо- Резолютивный вывод С из S есть такая конечная последовательность Clt C2, ..., Ck дизъюнктов, что каждый С/ или принадлежит S или является резольвентой дизъюнктов, предшествующих С,, и Ck = C. Вывод □ из S называется опровержением (или доказа- доказательством невыполнимости) S. Мы говорим, что дизъюнкт С может быть выведен или полу- получен из S, если существует вывод С из 5. Будет дано несколько примеров, демонстрирующих использование метода резолюций для доказательства невыполнимости множества дизъюнктов. $5.3] ПОДСТАНОВКА И УНИФИКАЦИЯ 79 Пример 5.4. Рассмотрим множество A) -PVQ, ) B) ~Q, S. C) Р } Из A) и B) мы можем, получить резольвенту D) ~Я. Из D) и C) мы можем получить резольвенту E) П. Так как П получается из S применениями правила резолю- резолюций, то, согласно теореме 5.1, □ есть логическое следствие S. Следовательно, S невыполнимо. Пример 5.5. Для множества A) PVQ, I B) -PVQ, [ <, C) PV-Q, ■ D) -PV-Q мы породим следующие резольвенты: E) Q из A) и B), F) ~Q из C) и D), G) □ из E) и F). Так как получен □, то 'S невыполнимо. Указанный вывод представлен деревом на рис. 6, которое называется деревом вывода. Правило резолюций — очень мощное правило вывода. Впослед- Впоследствии мы определим его для логики первого порядка. Мы также покажем полноту метода резолюций Pvn *>pvtl Pv~GL ~Pv~Q, Для доказательства невыполнимости множества дизъюнктов, т. е. данное х множество дизъюнктов S невыполни- * мо тогда и только тогда, когда су- существует резолютивный вывод пустого дизъюнкта □ из S. В § 5.7 мы будем Р"с 6 применять метод резолюций к различ- различным примерам, так что читатель сможет оценить его полезность. § 5.3. Подстановка и унификация В предыдущем параграфе мы рассмотрели метод резолюций Для логики высказываний. В последующих параграфах мы будем распространять его на логику первого порядка. В § 5.2 мы от-
80 МЕТОД РЕЗОЛЮЦИЙ ГЛ. 5 метили, что существенным в применении правила резолюции является нахождение в дизъюнкте литеры, которая контрарна литере в другом дизъюнкте. Для дизъюнктов, не содержащих переменных, это очень просто. Однако для дизъюнктов, содер- содержащих переменные, это усложняется. Например, рассмотрим дизъюнкты С,: P{x)VQ(x), С2: ~P(f(x))VR(x). Не существует никакой литеры в Сх, контрарной какой-нибудь литере в С2. Однако если мы подставим f(a) вместо х в Сх и а вместо х в С2, то получим С[: P(f(a))VQ(f(a)), С2: R Мы знаем, что С[ и С'г являются основными примерами Сх и С2 соответственно, а Р (f (а)) и ~P(f (а)) контрарны друг другу. Следовательно, из С[ и С2 мы можем получить резольвенту С3: Q(f(a))VR(a). В общем случае, подставив f(x) вместо х в Clt мы получим СГ: P(f(x))VQ(f(x)). Снова С1 есть пример Сг. В то же время литера Р (f(x)) в С[ контрарна литере ~P(f(x)) в С2. Следовательно, мы можем получить резольвенту из С{ и С2: С3: Q{f{x))VR(x). C's есть пример дизъюнкта С3. Подставляя подходящие термы вместо переменных в С, и С2, как указано выше, мы можем порождать новые дизъюнкты из Сх и С2. Кроме того, дизъюнкт С3 является наиболее общим дизъюнктом в том смысле, что все другие дизъюнкты, порожденные вышеуказанным процессом, суть примеры С3. С3 тоже будем называть резольвентой Сх и С2. Впоследствии мы рассмотрим, как порождать резольвенты из дизъюнктов (возможно, содержащих переменные). Так как полу- получение резольвент из дизъюнктов часто требует подстановок вместо переменных, то мы дадим следующие определения. Определение. Подстановка — это конечное множество вида \tjvt, ..., tjvn}, где каждая и, — переменная, каждый tt — терм, отличный от vh все v-t различны. Если tx tn — основные термы, то подстановка называется основной. Подстановка, кото- которая не содержит элементов, называется пустой и обозначается е. Мы будем использовать греческие буквы для записи подстановки. Пример 5.6. Следующие два множества являются подста- подстановками: \f(z)/x, у/г}, {а/х, g(y)/y, f(g(b))/z}. § 5.3 ПОДСТАНОВКА И УНИФИКАЦИЯ 81 Определение. Пусть 9 = {/1/t»1, ..., tjvn\— подстановка и Е—выражение. Тогда £9 — выражение, полученное из Е за- заменой одновременно всех вхождений переменной и,-A ^ t^n) в Е на терм t{. £9 называется примером Е. Заметим, что опре- определение примера совместимо с определением основного примера дизъюнкта, данным в главе 4. Пример 5.7. Пусть 9 = {а/х, f(b)/y, c/z} и Е=Р(х, у, г). Тогда EQ = P(a, f(b), с). Определение. Пусть Q = {t1/x1, .. ., tn/xn) и Х = {ы1/г/1>. . . ит/ут\—две подстановки. Тогда композиция 9 и к есть под- подстановка (обозначим Qok), которая получается из множества {t^/x^ ..., tnk/xn, ujyu ..., ujyj вы еркиванием всех элементов tjk/Xj, для которых tjK = x,-, и всех элементов ui/yi таких, что у( £ {л^, хг, ..., хп}. Пример 5.8. Пусть Q = {tjxu t2/x2\ = {f(y)/x, z/y], >- = {u1/y1, u2/y2, u3/y3\ = {a/x, b/y, y/z}. Тогда {t^/x,, t2k/x2, ujyu u2/y2, u3/y3) = {f{b)/x, у/у, а/х, b/y, y/z). Однако так как ^2?1 = л;2, то t2k/x2 (т. е. у/у) должно быть вычерк- вычеркнуто из множества. К тому же так как ух и уг содержатся среди {х1г хг, х3], то ujyx и и2/у2 (т. е. а/х и b/у) должны быть вы- вычеркнуты. Таким образом, мы получаем Qok={f(b)/x, y/z}. Необходимо заметить, что композиция подстановок ассоциа- ассоциативна и что пустая подстановка е есть одновременно и левое и правое тождество, т. е. (9oX)ofi = 9o(Xoji) и ео9 = 9ое для всех 9, к и ц. В процедуре доказательства по методу резолюций, для того чтобы отождествлять контрарные пары литер, мы очень часто должны унифицировать (склеивать) два или более выражения, т. е. мы должны находить подстановку, которая может сделать несколько выражений тождественными. Итак, мы сейчас рассмот- рассмотрим унификацию выражений. Определение. Подстановка 9 называется унификатором для множества {Е1У ..., Ек) тогда и только тогда, когда £'19= = .Е29= ... =Еф. Говорят, что множество {Е1, ...,Ек) унифи- унифицируемо, если для него существует унификатор. Определение. Унификатор а для множества выражений {Ег, ..., Ek} будет наиболее общим унификатором тогда и только тогда, когда для каждого унификатора 9 для этого множества существует такая подстановка к, что в = аок. Пример 5.9. Множество {Р(а, у), Р(х, /F))} унифицируемо, так как подстановка 9 = {а/х, f(b)/y} является его унификатором.
82 МЕТОД РЕЗОЛЮЦИЙ ГЛ. 5 § 5.4. Алгоритм унификации В этом параграфе мы дадим алгоритм унификации для на- нахождения наиболее общего унификатора для конечного унифи- унифицируемого множества непустых выражений. Когда множество не унифицируемо, алгоритм будет выявлять также и этот факт. Рассмотрим Р{а) и Р(х). Эти два выражения не тождественны. Рассогласование в том, что а встречается в Р(а), а переменная х в Р (х). Чтобы отождествить Р (а) и Р (х), мы сперва должны найти рассогласование, а затем попытаться его исключить. Для Р(а) и Р(х) рассогласование будет {а, х\. Так как х—перемен- х—переменная, то х можно заменить на а, и таким образом рассогласова ние будет исключено. В этом и заключается идея, на которой основан алгоритм унификации. Определение. Множество рассогласований непустого множества выражений W получается выявлением первой (слева) позиции, на которой не для всех выражений из W стоит один и тот же символ, и затем выписыванием из каждого выражения в W подвыражения, которое начинается с символа, занимающего эту позицию. Множество этих подвыражений и есть множество рассогласований в W. Пример 5.10. Если W есть {Р(х, f(y, г)), Р{х, а), Р(х, g(h(k(x))))\, то первая позиция, в которой не все выраже- выражения из W состоят из одинаковых символов, есть пятая, так как все выражения имеют одинаковыми первые четыре символа Я (л;,. Таким образом, множество рассогласований состоит из соответ- соответствующих подвыражений (подчеркнутые термы), которые начи- начинаются с пятой позиции, и это в действительности множество {f (У, z). a, g(h(k(x)))}. Алгоритм унификации Шаг 1. Множество k = 0, Wk=W и ок = е. Шаг 2. Если Wk — единичный дизъюнкт, то остановка: ак— наиболее общий унификатор для W. В противном случае найдем множество Dk рассогласований для Wk. Шаг 3. Если существуют такие элементы vk и tk в Dk, что vk — переменная, не входящая в tk, то перейти к шагу 4. В про- противном случае остановка: W не унифицируемо. Шаг 4. Пусть ok+1 = ak{tk/vk\ и Wk+1 = Wk{tk/vk\. (Заметим, ЧТО tt^7 — Ц^(Т ^ Шаг 5. Присвоить значение k-\-\ и перейти к шагу 2. Пример 5.11. Найти наиболее общий унификатор для W = {P{a, х, f(g(y))), Р(г. /(z). f("))}• 1. о0 = е и Wa = W. Так как Wa — не1! единичный дизъюнкт, то а„ не является наиболее общим унификатором для W. § 5.4] АЛГОРИТМ УНИФИКАЦИИ 83 2. Множество рассогласований D0 = {a, z\. В Da существует переменная vo = z, которая не встречается в to = a. 3. Пусть = {P(a,x,f(g(y))), P(z,f(z),f(u))\{a/z} = {P(a,x,f(g(y))), P(a, Па), /("))}■ 4. W1—^не единичный дизъюнкт, так как нашли множество рассогласований D1 для W^. 5. Из D1 мы найдем, что vl = x и t1 = f(a). 6. Пусть {f(a)/x} = {a/z, f(a)/x], = {Р(а, х, f(g(y))), P(a,f(a), f(u))\{f(a)/x\ = {P(a,f(a), f(g(y))), P(a,f(a), f(u))\. 7. W2 — не единичный дизъюнкт, так как мы нашли множе- множество рассогласований D2 для W2: D2 — {g(y), и}. Из Da мы най- найдем, что v2 = u и t2 = g(y). 8. Пусть a3 = a2o{t2/v2\='{a/z, f{a)/x\o{g(y)/u} = = {alz, f(a)/x, g(y)/u\, Ws = W2{t2/v2} = {P{a, f(a), f(g(y))), P(a, f(a), f(u))\{g(y)/u} = {P(a, f(a), f(g(y))), P(a, f{a), = {P(a, f(a), 9. Так как №3—единичный дизъюнкт, то os = {a/z, f{a)/x, g(y)/u} есть наиболее общий унификатор для W. Пример 5.12. Определим, унифицируемо ли множество W = {Q(f(a), g(x)), Q(y,y)}. 1. Пусть ао = е и W0=W. 2. Wo — не единичный дизъюнкт, так как мы нашли множе- множество рассогласований Do для Wo: D0 = {f{a), у}. Из Д, мы знаем, что vo = y и tB^f(a). 3. Пусть ), Q{y, y)}{f{a)/y)
84 МЕТОД РЕЗОЛЮЦИЙ ГЛ. 5 4. Wl — не единичный дизъюнкт, так как мы нашли множе- множество рассогласований Dx для Wr: D1 = {g(x), f(a)}.. 5. Тем не менее нет элемента, который был бы переменной. Следовательно, алгоритм унификации завершается, и мы заклю- заключаем, что W не унифицируемо. Отметим, что вышеуказанный алгоритм унификации всегда кончает работу для любого конечного непустого множества вы- выражений, так как иначе породилась бы бесконечная последо- последовательность Wo0, Waly Wa2, ... конечных непустых множеств, обладающая тем свойством, что каждое последующее множество содержит на одну переменную меньше, чем предшествующее (а именно, Wak содержит vk, но Wak+1 его не содержит). Но это невозможно, так как W содержит только конечное число различных переменных. Ранее указывалось, что для унифицируемого W алгоритм унификации всегда будет находить наиболее общий унификатор. Это доказывается в следующей теореме. Теорема 5.2 (теорема унификации). Если W — конечное не- непустое унифицируемое множество выражений, то алгоритм унификации будет всегда кончать работу на шаге 2 и последнее ak будет наиболее общим унификатором для W. Доказательство. Так как W унифицируемо, то обозна- обозначим 9 любой его унификатор. Индукцией по k покажем, что существует такая подстановка Kk, что Q — okoXk. Пусть & = 0, положим Хо = 9. Тогда 9 = a0o?i0, так как ао = е. Предположим теперь, что Q = akoKk имеет место для O^k^n. Если Won — единичный дизъюнкт, то алгоритм унификации остановится на шаге 2. Так как Q = anoXn, то ап будет наиболее общим унифи- унификатором для W. Если Wan — не единичный дизъюнкт, то алго- алгоритм унификации будет находить множество рассогласований Dn для Wan. Так как 9 — опоХ„ — унификатор для W, то Кп должно унифицировать Dn. Однако так как Dn — множество рассогласо- рассогласований, то в Dn должна существовать переменная. Пусть tn — любой другой элемент, отличный от vn. Тогда, так как Хп уни- унифицирует Dn, то vnkn=tnXn. Затем, если vn встречается в tn, то vnkn встречается в tnkn. Однако это невозможно, так как vn и tn различны, и vnkn=tnhn. Следовательно, vn не встречается в tn. Поэтому алгоритм унификации не остановится на шаге 3, а пе- перейдет к шагу 4 — к множеству an+1 = ano{tjvn}. Пусть Кп+1 = = Хп — {tnXjvn\. Тогда, так как vn не встречается в tn, то Таким образом, мы имеем 8 5.5 МЕТОД РЕЗОЛЮЦИЙ ДЛЯ ЛОГИКИ ПЕРВОГО ПОРЯДКА 85 Значит, K = {tJvn\°K+i- Следовательно, Поэтому для всех k ^ 0 существует такая подстановка kk, что Q=tokokk. Так как алгоритм унификации должен кончить работу и так как он не окончился на шаге 3, то он должен окончиться на шаге 2. Кроме того, так как Q — okoXk для всех k, то послед- последнее ak будет наиболее общим унификатором для W, что и тре- требовалось доказать. § 5.5. Метод резолюций для логики первого порядка Введя в последнем параграфе алгоритм унификации, мы сможем сейчас рассмотреть метод резолюций для логики первого порядка. Определение. Если две или более литер (с одинаковым знаком) дизъюнкта С имеют наиболее общий унификатор а, то Со называется склейкой С. Если Со—единичный дизъюнкт, то склейка называется единичной склейкой. Пример 5.13. [Пусть С=Р{х) V P(f{y)yr\y ~Q(x). Тогда первая и вторая литеры (подчеркнутые) имею( наиболее общий унификатор a={f(y)lx). Следовательно, Ca=Pf(y)) V ~ Q{f(y)) есть склейка С. Определение. Пусть d и С2—два дизъюнкта (называе- (называемые дизъюнктами-посылками), которые не имеют никаких общих переменных. Пусть Lx и L2—две литеры в С1 и С2 соответственно. Если L1 и ~ L2 имеют наиболее общий унификатор а, то дизъ- дизъюнкт (da —L^UtCaOr — LaCT) называется (бинарной) резольвентой d и Сг. Литеры Lx и La называются отрезаемыми литерами. Пример 5.14. Пусть d = Р (*) V Q (*) и С2 = ~ Р (a) V R (х). Так как х входит в d и Сг, то мы заменим переменную в С,, и пусть С2 = ~ Р(а) V R(y)- Выбираем Lt = P(x) и Ls = ~ Р(а). Так как ~L2 = P(a), то Lt и ~ L2 имеют наиболее общий уни- унификатор о = {а/х}. Следовательно, (da—bxa) U (Сга—Ьга) = ({Р(а), Q(a)\-{P(a)})U({~P{a), R,{y))-{~ РШ = {Q (a)} U {R (У)} = {Q[(a), R(y)} = Q(a)VR (у). Таким образом, Q(a)\/ R (у)—бинарная резольвента d и С2. Р (х) и ~ Р (а) — отрезаемые литеры. Определение. Резольвентой дизъюнктов-посылок d и d является одна из следующих резольвент: 1) бинарная резольвента d и С2, 2) бинарная резольвента d и склейки С2,
86 МЕТОД РЕЗОЛЮЦИЙ ГЛ. 5 3) бинарная резольвента С2 и склейки Clf 4) бинарная резольвента склейки Сх и склейки С21). Пример 5.15. Пусть Сх = Р(х) V Р(f (у)) V R (g(у)) и С2 = = ~P(f(g(a)))VQ(b). Склейка Сх есть Ci=* Ptf(y))V R(g(y)). Бинарная резольвента Сх и С2 есть /?(g(g(a))) V Q (Ь). Следова- Следовательно, R (g(g(a))) V <Э(Ь) есть резольвента Сх и С2. Правило резолюций есть правило вывода, которое порождает резольвенты для множества дизъюнктов. Это правило было вве- введено в 1965 г. Робинсоном. Оно более эффективно, чем предыду- предыдущие процедуры доказательств такие, как прямое применение теоремы Эрбрана, используемое Гилмором, и теоремы Девиса и Патнема. Кроме того, метод резолюций полон, т. е. при помощи правила резолюций для любого невыполнимого множества дизъ- дизъюнктов можно породить пустой дизъюнкт □. Прежде чем дока- доказать это утверждение, рассмотрим один пример из планиметрии. Пример 5.16. Показать, что внутренние накрест лежащие углы, образованные диагональю трапеции, равны. Чтобы доказать эту теорему, мы сперва аксиоматизируем ее. Пусть Т (х, у, и, v) обозначает, что xyuv—трапеция с верхней левой вершиной х, верхней правой вершиной у, нижней правой вершиной и и нижней левой вершиной и. Пусть Р (х, у, и, v) обозначает, что отрезок ху параллелен отрезку uv, и пусть Рис. 7. Е(х, у, z, и, v, w) означает, что угол хуг равен углу uvw. То- Тогда мы имеем следующие аксиомы: Лх: (Ух) (Уу) (Уи) (Vu) [Т (х, у, и, v) —► определение трапе- -+Р(х, у, и, v)) ции, Аг:(Ух)(Уу)~(Уи)^)[Р(х,у,и,р)':-+ внутренние накрест —>■ Ё(х, у, v, 'm,i v, у)] лежащие углы для параллельных линий равны, А3: Т (а, Ь, с, d) дана на рис. 7. Из этих аксиом мы должны уметь вывести, что Е (a, b, d, с, d,b) истинно, т. е. A1lAA2AAs-^E(a, b, d, с, d, Ь) 1) Возможно введение ограничений на использование склеек; см. п. 3 Дополнения В.—Прим. ред. § 5.6 ПОЛНОТА МЕТОДА .РЕЗОЛЮЦИЙ 87 есть истинная формула. Так как мы хотим доказать это путем опровержения выполнимости, мы отрицаем заключение и дока- докажем, что Лх Л Л2 Л AsA~E(a, b, d, с, d, b) невыполнимо. Чтобы это сделать, преобразуем выражение в стан- стандартную форму следующим образом: S=*{~T{x, у, и, v)V Р{х, у, и, v), ~P{x, у, и, и) V V Е(х, у, v, и, v, у), Т(а, Ь, с, d), ~E(a, b, d, с, d, b)}. Эта стандартная форма S есть множество из четырех дизъюнктов. Теперь методом резолюций докажем, что множество S невыпол- невыполнимо: A) ~ Т (х, у, и, v) V Р(х, у, и, v) дизъюнкт в S, B) ~Р{х, у, и, v)\/E(x, у, v, и, v, у) дизъюнкт в S, C) Т(а, Ь, с, d) дизъюнкт в S, D) ~Е(а, b, d, с, d, b) дизъюнкт в S, E) ~Р(а, Ь, с, d) резольвента B) и D), F) ~ Т (а, Ь, с, d) резольвента A) и E), G) □ резольвента C) и F). Так как последний выведенный из S дизъюнкт пустой, то мы заключаем, что S невыполнимо. Шаги доказательства легко можно представить деревом на рис. 8. Это дерево на- называется деревом вывода, т. е. дерево вывода из множества S дизъюнктов есть растущее (вверх) дерево, каждому начальному узлу которого при- приписывается дизъюнкт из S и каждому следующе- следующему узлу приписывается резольвента дизъюнктов, приписанных к его непосредственным предшествен- предшественникам. Дерево вывода мы называем деревом вы- вывода дизъюнкта R, если R приписан корневому узлу дерева вывода. Так как дерево вывода есть просто дерево, представляющее вывод, впоследствии мы будем использовать тер- термины «вывод» и «дерево вывода» как взаимозаменяемые. Рис. 8. § 5.6. Полнота метода резолюций В главе 4 мы представили понятие семантических деревьев для доказательства теоремы Эрбрана. В этом параграфе мы будем использовать семантическое дерево для доказательства полноты метода резолюций. Действительно, существует тесная связь между семантическим деревом и резолютивным выводом, что демонстри- демонстрируется следующим примером.
МЕТОД РЕЗОЛЮЦИЙ ГЛ. 5 Пример 5.17. Рассмотрим следующее множество 5 дизъ- дизъюнктов: A) Л B) -PVQ, C) ~P\/~Q. Эрбрановский базис 5 есть {Р, Q}. Пусть Т — замкнутое се- семантическое дерево, показанное на рис. 9, а. Т имеет замкнутое семантическое поддерево 7", показанное на рис. 9, Ь. Узел B) на рис. 9, b есть выводящий узел. Два его последователя — узлы D) и E)—опровергающие узлы. Дизъюнкты, соответствующие (а) (О B) х C) Р (с) (d) Рис. 9. (а) Т. (Ь) (~ , v ~ Q), дает - 7" Метод резолюций, примененный к (~ Р V Q) и - Р. (с) Т". Метод резолюций, примененный к Р и ~ Р, дает Q. (d) Г". узлам D) и E), будут ~PV~Q и ~PVQ соответственно. Как можно увидеть, эти два дизъюнкта должны иметь контрарную пару литер и, следовательно, могут служить посылками правила резолюций. Объединяя ~ Р \f ~ Q и ~ Р V Q, мы получаем ~Р. Заметим, что ~ Р опровергается частичной интерпретацией, соответствующей узлу B). Если мы добавим в S дизъюнкт <~Р, то мы будем иметь замкнутое семантическое дерево Т" для S(j\~P\, показанное на рис. 9, с. На рис. 9, с узелA)—выво- узелA)—выводящий узел. Тем временем мы можем получить П, применяя правило резолюции к Р и ~Р. Подставляя □ в Su{~P}t мы получим замкнутое семантическое дерево Т"' для 5и{~Р} U U {□}> показанное на рис. 9, d. Описанное «стягивание» семан- семантического дерева в действительности соответствует следующему резолютивному выводу: D) ~Р резольвента B) и C), E) □ резольвента D) и A). $5.6 ПОЛНОТА МЕТОДА РЕЗОЛЮЦИЙ 89 В последующем мы будем использовать описанную идею, чтобы доказать полноту метода резолюций, т. е., построив замк- замкнутое семантическое дерево для невыполнимого множества дизъ- дизъюнктов, мы постепенно можем «стянуть» это дерево с одновре- одновременным получением резолютивного доказательства. Прежде чем доказать теорему полноты, мы докажем лемму, называемую леммой подъема. Лемма 5.1 (лемма подъема). Если С[ и С'2—примеры С1 и С2 соответственно и если С—резольвента С[ и С'2, то сущест- существует такая резольвента С из Сх и С2, что С есть пример С. Доказательство. Перенумеруем, если необходимо, пере- переменные в С1 и С2 так, чтобы С1 и С2 не имели общих пере- переменных. Пусть L[ и L2—отрезаемые литеры, и пусть С = (Civ — Цу) U (Civ—Liv), где v —наиболее общий унификатор L[ и ~ L'2. Так как С[ и С'2 — примеры Ct и С2 соответственно, то существует такая под- подстановка 9, что Ci = Ct9 и C'2 = C2Q. Пусть L), ..., //'—литеры в С,-, соответствующие L\ (т.е. L)Q= ... =Z/''9 = L;), . t=l, 2. Если г,-> 1, получаем наиболее общий унификатор X,- для {Ц, ..., LrJ), и пусть Li = L\ki, i=l, 2. (Заметим, что Цк{, .. ., L^i будут те же самые, так как X, — наиболее общий унификатор.) Тогда L,- есть литера в склейке СД- для С(. Если ri=l, пусть Xj = e и L, = LJA,,-. Пусть А, = А,1 U А,2. Таким образом, ясно, что L\ есть пример L,-. Так как L[ и ~Z4 унифицируемы- то и Lx и ~ L2 унифицируемы. Пусть а — наиболее общий уни, фикатор для L, и ~ L2. Пусть С = ((СД) a — L.o) и ({С2Х) o—L2o) = ((CA)a-({LJ, ...,Lri}X)o)u((C2X)o-({Ll, ..., Lr2'\ X) a) = (СЛЬа)—{LJ, ..., L[l){Xoo))[}{C2{Xoo) -{L\, ...,ai(H). С—резольвента Сх и С2. Ясно, что С есть пример С, так как С = (Civ—L[v) U (Civ — L2v) = ((C:9) v-{{L\, . . ., L['} 9) v) и ((C2Q)V-({L\, . . ., Lr2'\ 9) v) =(C1(9ov)-{LJ, ..., Ll'HOov)) U(C2(9ov)-{Li, ...,L2r2}(9ov)) и Хоа более общий, чем 9ov. Таким образом, мы завершаем д оказательство леммы.
90 МЕТОД РЕЗОЛЮЦИЙ ГЛ. Е Теорема 5.3 (полнота метода резолюций). Множество S дизъюнктов невыполнимо тогда и только тогда, когда сущест- существует вывод пустого дизъюнкта р из S. Доказательство. (=>) Предположим, что S невыполнимо. Пусть А—{АХ, А2, А3, ...}—множество атомов S. Пусть 7 — замкнутое семантическое дерево, показанное на рис. 10. По А теореме Эрбрана (вариант 1) 7 содер- содержит конечное замкнутое семантическое дерево 7'. Если 7' состоит только из одного (корневого), узла, то р должен принадлежать S, поскольку никакой дру- другой дизъюнкт не может опровергаться в корне семантического дерева. Очевидно, в этом случае теорема истинна. Пред- Предположим, что 7' состоит более чем из одного узла. Тогда 7' имеет по крайней мере один выводящий узел, так как, если бы его не было, то каждый узел имел бы по крайней мере одного неопровергающего потомка. Тогда мы могли бы найти бесконечную ветвь, выходящую из 7', что противоречило бы конечности 7'. Пусть N — выводящий узел в 7'. Пусть jV, и N2 — опровергающие узлы, лежащие непосредственно ниже N. Пусть f(N) = im. -f» Рис. Ш. *.. т2, ...,wJ> n+i }■ Так как jV,h N2— опровергающие узлы, а ./V—неопровергающий узел, то должны существовать два таких основных примера С[ и С'г дизъюнктов С] и С2, что С[ и С'г ложны в /(Л/,) и /(jV2) соответственно, но С[ и С2 не опровергаются I (N). Сле- Следовательно, С[ должно содержать ~т„+] и С2 должно содержать тп+х. Пусть Z-i = ~mw+, и L!> = mn+J. Отрезая литеры L[ и Ц, мы можем получить резольвенту С для С[ и С2, а именно, С долж б С должно быть ложно в /(Л7), так как (С{ — /.,') и (С'г — L2) ложны в I (N). По лемме 5.1 существует такая резольвента С из ^ и С\, что С" — основной пример С. Пусть 7"—замкнутое семанти- семантическое дерево для (S\){C\), полученнсе из 7' вычеркиванием любого узла или ребра, которое находится ниже первого узла, где резольвента С опровергается. Ясно, что число узлов в 7" меньше, чем число узлов в 7". Применяя вышеуказанный процесс к 7" снова, мы можем получить другую резольвенту дизъюнктов в (S и {С}). Подставляя эту резольвенту в (S и {С}), мы сможем получить другое замкнутое семантическое дерево с меньшим числом узлов. Этот процесс повторяется снова и снова до тех 5.7' ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ МЕТОДА РЕЗОЛЮЦИИ 91 пор, пока не будет порождено замкнутое семантическое дерево, состоящее только из корневого узла. Это возможно, только когда выведен р. Следовательно, существует вывод р из 5. (<=) Наоборот, предположим, что существует вывод р из 5 Пусть /?!, /?2, ..., Rk — резольвенты в выводе. Предположим, что S выполнимо на модели М. Однако если модель удовлет- удовлетворяет дизъюнктам Ct и С2, она также должна удовлетворять любой их резольвенте (теорема 5.1). Следовательно, М удовлет- удовлетворяет дизъюнктам Ru R2, ..., Rk. Однако последнее невоз- невозможно, так как одна из этих резольвент есть р. Поэтому 5 должно быть невыполнимо, что и требовалось доказать. § 5.7. Примеры использования метода резолюций В предыдущих главах мы использовали различные методы для доказательства противоречивости формул. В этом параграфе мы рассмотрим примеры, чтобы продемонстрировать, как можно эффективно использовать метод резолюций для доказательства теорем. Пример 5.18. Пересмотрим пример 2.10. Мы имели четыре утверждения: (Г) P-+S, B') S^U, ■A3') Р, D') U. Чтобы показать, что D') следует из A'), B') и C'), мы сперва преобразуем все утверждения в стандартную форму. Таким об- образом, имеем A) ~P\/S, B) ~S v U. C) Р, D) U. Докажем путем опровержения, что U — логическое следствие из A), B) и C). Отрицаем D) и получаем следующее доказатель- доказательство: отрицание заключения, резольвента C) и A), резольвента E) и B), резольвента F) и D). A)' B) C) D) < E) F) G) ~5 V U. Р, ~и S и □
92 МЕТОД РЕЗОЛЮЦИЯ S Ь.Г ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ МЕТОДА РЕЗОЛЮЦИЙ 93 Пример 5.19. Пересмотрим пример 2.12 в главе 2. Мы имеем три формулы Z7,, F2 и F3. Хотим доказать, что ~Q — логическое следствие Z7, Л F2 A F3. Отрицаем ~ Q и преобра- преобразуем /71 Л Ft Л F3 Л Q в стандартную форму. Это приводит к следующему множеству дизъюнктов: B) ~P C) Р D) —S E) Q Q V R, \ из Flt из F2, из F3, отрицание заключения. Используя резолюцию, мы получим следующее доказательство: F) ~Q VS резольвента C) и B), G) 5 резольвента F) и E), (8) □ резольвента G) и D). Пример 5.20. Рассмотрим следующее множество формул: /\: {Vx)(C{x)-+(W(x)AR(x))), F2: (Зх)(С(х)ЛО(х)), G: Cx)(O(x)AR(x)). Наша задача—доказать, что G является логическим следствием F1 и F%. Преобразуем Flt F2 и ~G в стандартную форму и полу- получим следующие пять дизъюнктов: A) ~C(x)VW(x), \ B) ~C(x)VR(x) \ mtl' C) С {а), \ D) О (а) E) ~О(х) \/~ R(x) из из F, Это множество дизъюнктов невыполнимо. Это можно дока- доказать при помощи метода резолюций следующим образом: F) R (а) резольвента C) и B), G) ~ R (а) резольвента E) и D), (8) □ резольвента G) и F). Таким образом, G—логическое следствие Fl и F^. Пример 5.21. Пересмотрим пример 3.15. Мы имеем /V (Эх) (Р(х) А (Щ (D (у) — L (х, у))), F2: (Vx)(P(x)-+(Vy){Q[y)^~L(x, у))), G: ( из -G. Как обычно, Ft, F2 и ~ G преобразуем в следующие дизъюнкты: A) Р(а), \ B) ~D(y)\/L(a, у) \ H3tl' C) ^>P(x)\/~Q(y)\/~L(x, у) из F2, D) D(b), \ E) Q(b) \ Используя метод резолюций, получим следующее доказательство: F) L(a, b) резольвента D) и B), G) ~ Q (у) V ~ L (а, у) резольвента C) и A), (8) ~L(a, b) резольвента E) и G), (9) □ резольвента F) и (8). Метод резолюций совершенно естествен. Попытаемся пере- перевести предыдущее доказательство на русский язык: (a) Из Fx мы можем предположить, что существует пациент а, который любит каждого доктора (дизъюнкты A) и B)). (b) Предположим, что заключение неверно, т. е. предполо- предположим, что b — одновременно и доктор и знахарь (дизъюнкты D) и E)). (c) Так как пациент а любит каждого доктора, то а любит Ъ (дизъюнкт F)). (d) Так как а—пациент, то а не любит никакого знахаря (дизъюнкт G)). (e) Однако Ь — знахарь. Следовательно, а не любит b (дизъ- (дизъюнкт (8)). (f) Это невозможно из-за (с). Таким образом, мы закончили доказательство. Пример 5.22. Посылки: Таможенные чиновники обыски- обыскивают каждого, кто въезжает в страну, кроме высокопоставлен- высокопоставленных лиц. Некоторые люди, способствующие провозу наркотиков, въезжали в страну и были обысканы исключительно людьми, также способствующими провозу наркотиков. Никто из высоко- высокопоставленных лиц не способствовал провозу наркотиков. Заключение. Некоторые из таможенников способствовали про- провозу наркотиков. Пусть Е (х) означает «х въезжал в страну», V(x) означает «х был высокопоставленным лицом», 5 (х, у) означает «у обыски- обыскивал х», С (х) означает «х был таможенником» и Р(х) означает «х способствовал провозу наркотиков». Посылки представятся следующими формулами: (Ух) (Е (х) Л ~ V (х) -+ (Зу) (S (х, у) А С (у))), (Эх) (Р (х) АЕ(х)А (УУ) (S (х, у)-+Р (у))),
94 МЕТОД РЕЗОЛЮЦИЙ [ГЛ. а заключение—формулой (Зх)(Р(х)АС(х)). Преобразуя посылки в дизъюнкты, мы получим: ()()W() y(, f( B)~E(x)\/V(x)\/C(f(x)), C) P(a), D) E(d), E)~S(a, y)y P(y), (G)~P{x)\/ ~V{x). Отрицание заключения Доказательство методом резолюций выглядит следующим об- образом: () (9) A0) A1) ■V(a) V (а) у С (f (a)) С {f (а)) V(a)\/S(a,f(a)) A2) S(a, f(a)) A3) P(f(a)) A4)~С(/(а)) A5) □ из C) и F), из B) и D), из (8) и (9), из A) и D), из (8) и A1), из A2) и E), из A3) и G), из A0) и A4). Заключение доказано. Пример 5.23. Посылка такая: каждый, кто хранит деньги, получает проценты. Заключение: если не существует процентов, то никто не хранит денег. Пусть S(x, у), М(х), I (х) и Е(х, у) означают «х хранит деньги у», <а есть деньги», «х есть процен- проценты» и «х получает у» соответственно. Тогда посылка записыва- записывается в виде (V*) ((Зу) (S (х, у) AM (у)) -+ (Эу) (/ (у) А Е (х, у))), а заключение — в виде ~ (Эх) I (х) -+ (Ух) (Уу) (S (х, у)-^~1 Переводя посылку в дизъюнкты, имеем (\)~S(x, y)\J ~M(y)\f I (f(x)), B) ~ 5 (x, y) \/ ~ M (y) \/ E (x, f (x)). Отрицание заключения: ()(), D) S(a, b), (?) М (b). § 5.7: ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ МЕТОДА РЕЗОЛЮЦИЙ 95 Дальнейшее доказательство на самом деле очень просто: F)~S(x, y)V~M(y) из C) и A), G)~М(Ь) из F) и D), (8) D из G) и E). Таким образом, заключение доказано. Пример 5.24. Посылка: Студенты суть граждане. Заключение: Голоса студентов суть голоса граждан. Пусть S(x), C(x) и V(x, у) означают <а—студент», <а—граж- <а—гражданин» и «х есть голос у» соответственно. Тогда посылка и зак- заключение запишутся следующим образом: (V0)(S(iOi-*C(iO) (Ух) ((Эу) (S (у) А V (x, у)) — (Эг) (С (г) А V (х, г))) Стандартная форма посылки есть (посылка), (заключение). Так как - {(Ух) ((Эу) (S (у) А V (х, у)) — (Эх) (С (z) A V (х, г)))) = - ((Ух) ((Уу) (~S (у) V- V (х, у)) V (Щ (С (z) A V (х, г)))) = - ({Ух) (Уу) C2) (~S(y)V~V (х, у) V (С (z) A V (x, z)))) = Cx)Cy)(yz)(S(y)AV(x, y)A(~C(z)V~V(x, z))), имеем три дизъюнкта для отрицания заключения; B) S(b), C) V(a, b), D)~C(z)\/~V(a, z). Доказательство заканчивается следующим образом: E) С(Ъ) из A) и B), F)~V(a, Ъ) из E) и D), G) □ из F) и C). Снова, хотя указанное доказательство строится вполне ме- механически, оно в действительности очень естественно. На самом деле мы можем перевести это доказательство на русский язык следующим образом. Предположим, что b—студент, а есть го- голос b и а не является голосом какого-либо гражданина. Так как b—студент, то b должен быть гражданином. Кроме того, а не должен быть голосом 6, так как b — гражданин. Это невоз- невозможно. Таким образом, мы закончим доказательство.
96 МЕТОД РЕЗОЛЮЦИЙ ГЛ. • § 5.8. Стратегия вычеркивания В предыдущих параграфах мы уже показали полноту метода резолюций. Этод метод более эффективен, чем предшествующие методы такие, как метод Эрбрана, используемый Гилмором. Од- Однако неограниченное применение правила резолюций может выз- вызвать порождение большого количества не относящихся к делу и излишних дизъюнктов. Чтобы убедиться в этом, рассмотрим простой пример. Предположим, что мы хотим показать методом резолюций, что множество S — {PyQ, ~ Р V Q, ^V~Q. ~ Ру ~ Q} невыполнимо. Выполнение метода резолюций для множества 5 состоит в вычислении всех резольвент всех пар дизъюнктов из S, добавлении этих резольвент к множеству S, вычислении всех следующих резольвент и повторении этого про- процесса, до тех пор пока не найдется пустой дизъюнкт □. Это значит, что мы порождаем секвенции 5°, S1, 52, . . ., где S° = S, Sn = {резольвенты Сх и С2 \С1 £ (S° U • ■ ■ U S"'1) и CagS"}, и-----= = 1, 2, 3, ... Эта процедура называется методом насыщения уровня. Чтобы запрограммировать этот метод на ЭВМ, мы мо- можем сперва записать дизъюнкты E°и ■•• US"'1) по порядку, а затем вычислять резольвенты, сравнивая каждый дизъюнкт С\ € (S° U • • • U S"~l) с дизъюнктом С2 £ 5", который расположен после Сх. Когда резольвента вычислена, она присоединяется к концу списка, порожденного к этому времени. Это есть то же самое, что мы делаем при порождении следующего списка дизъюнктов: 5°: A) PyQ,' B)~PVQ, C) Р V ~ Q. D) ~ Р v ~ Q S1: E) Q из A) и B), F) Р из A) и C), G) Q V ~Q из A) и D), (8) Р\/ ~ Р из A) и D), (9) Qy ~Q из B) и C), A0) Р V ~ Р из B) и C), A1)~ Р из B) и D), A2) ~ Q из C) и D); S2: A3) PyQ из A) и G), A4) Р У Q из A) и (8), A5) PyQ из A) и (9), A6) PVQ из A) и A0), A7) Q из A) и A1), A8) Р из A) и A2), A9) Q из B) и F), B0) ~ PyQ из B) и G), B1) ~ PyQ из B) и (8), 5.8 СТРАТЕГИЯ ВЫЧЕРКИВАНИЯ 97 B2)- Ру Q из B) и (9), B3) ~ Р VQ из B) и A0), B4) ~Р из B) и A2), B5) Р из C) и E), B6) P\/~Q ' из C) и G), B7) Р V ~ Q из C) и (8), B8) Ру ~Q из C) и (9), B9) PV ~Q из C) и A0), C0) ~Q из C) и A1), C1) ~ Р из D) и E), C2) ~Q из D) и F), C3) ~ P\J ~Q из D) и G), C4) ~ P\J ~Q из D) и (8), C5)~ Ру ~Q из D) и (9), C6)~PV~Q из D) и A0), C7) Q из E) и G), C8) Q из E) и (9), C9) □ из E) и A2). Было порождено много не относящихся к делу и лишних дизъюнктов. Например, G), (8), (9) и A0)—тавтологии. Так как тавтология истинна в любой интерпретации, то, если мы вы- вычеркиваем тавтологию из невыполнимого множества дизъюнктов, оставшееся множество все еще должно быть невыполнимо. Сле- Следовательно, тавтология есть не относящийся к делу дизъюнкт и не должна порождаться. Если же она порождается, то (за иск- исключением очень немногих случаев) ее следует вычеркнуть. Иначе она может взаимодействовать с другими дизъюнктами и произ- производить другие нежелаемые лишние дизъюнкты. Таковы, напри- например, дизъюнкты A3) —A6), B0) —B3), B6) —B9), C3) —C6) и C7) — C8). Далее дизъюнкты Р, Q, —Р и ~Q порождаются неоднократно. На самом деле, чтобы получить доказательство для S, нам нужно породить дизъюнкты E), A2) и C9). Для ре- решения этой проблемы избыточности рассмотрим в этом параг- параграфе стратегию вычеркивания. Прежде чем мы опишем ее, рас- рассмотрим следующее определение. Определение. Дизьюнкт С является поддизъюнктом D (или поглощает D) тогда и только тогда, когда существует та- такая подстановка а, что Со е D. D называется наддизъюнктом. Пример 5.25. Пусть С = Р(х) и D=P(a)y Q(a). Если а= ~ {а/х}, то Са=Р(а). Так как Ca^D, то С—поддизъюнкт D. Заметим, что если D идентично С, или D есть пример С, то D есть наддизъюнкт С. Стратегия вычеркивания состоит в вы- вычеркивании любых тавтологий и наддизъюнктов, где только воз- возможно х). Стратегия вычеркивания есть обобщение правила тав- тавтологии Девиса и Патнема, данного в § 4.6. Полнота стратегии х) Ср. ОПД-стратегию из п. 3 Дополнения В.—Прим. ред. 4 Зак. 112
98 МЕТОД РЕЗОЛЮЦИЙ ГЛ. 5 вычеркивания зависит от того, как вычеркиваются тавтологии и наддизъюнкты. (См. Ко в а лье к и й [1].) Стратегия вычерки- вычеркивания будет полной, если ее использовать вместе с методом на- насыщения уровней следующим образом: Сперва выписываются дизъюнкты E° U . . . U5") по порядку; затем вычисляются ре- резольвенты путем сравнения каждого дизъюнкта Сг £ E° и •••■ US"") с дизъюнктом C26S"-1, который записывается после С1. Когда резольвента вычислена, она записывается в конец списка, как только она порождается, если она не тавтология и не погло- поглощается каким-нибудь дизъюнктом из списка. В противном слу- случае она вычеркивается. Доказательство полноты этой стратегии вычеркивания оставляется читателю в качестве упражнения. Мы применим эту стратегию вычеркивания к вышеприведенному и получим следующий список: (I) B)~ C) D)- S1: E) F) G)- ~P P - P Q P ~ p -Q О VQ, v~ v~ Q. Q ) из из из из из о. ■->> A) A) B) C) E) и и и и и B), C), D), D), (8). Отметим, что этот список много короче порожденного ранее. Следовательно, стратегия вычеркивания может улучшить эффек- эффективность метода резолюций. Чтобы использовать стратегию вычеркивания, мы должны уметь решать, является ли дизъюнкт тавтологией или является ли один из дизъюнктов поддизъюнктом другого. Очень легко оп- определить, является ли дизъюнкт тавтологией, проверяя, при- присутствуют ли в нем контрарные пары. Однако проверка под- дизъюнктности не так проста. Мы сейчас опишем алгоритм этой проверки. Пусть С и D—дизъюнкты. Пусть Q = {a1/xl, . . ., ajxn}, где xlt ...,xn—переменные, встречающиеся в D, и ct а„—но- а„—новые различные константы, не встречающиеся в С или D. По- Положим D = LX V £2 V • • • V £ffl. Тогда D9 = L19 V Lfi V . • ■ \/LmQ. Заметим, что DQ—основной дизъюнкт. ~DQ = ~LX0 Л • • ■ Л ~£т9- Следующий алгоритм проверяет, является ли С поддизъюнктом D. Алгоритм поглощения Шаг 1. Пусть И7 = {~ Lfi, ..., ~ LJd}. Шаг 2. Полагаем k = 0 и U° = {C\. Шаг 3. Если Uk содержит Q, то конец; С—поддизгюнкт D. В противном случае полагаем 1/к+1 = {резольвента С1 и С^С^ GU* и с,ещ. § 5.8 СТРАТЕГИЯ ВЫЧЕРКИВАНИЯ 99 Шаг 4. Если Uk+1 пусто, то конец; С не есть поддизъюнкт D В противном случае полагаем & = £-{-1 и переходим к ша- гУ 3 *). Отметим, что в этом алгоритме каждый дизъюнкт в Uk+1 на одну литеру меньше, чем дизъюнкт в £/*, из которого он полу- получен. Поэтому в последовательности U°, U1, ... должно в конце концов появиться множество, содержащее □, или р пустое. Алгоритм поглощения корректен, т. е. С является поддизъюнктом D тогда и только тогда, когда этот алгоритм кончает работу на шаге 3. Это доказывается следующим образом. Если С—под- С—поддизъюнкт D, то существует такая подстановка а, что Ca^D. Следовательно, С (аоб) с DB. Таким образом, литеры в С (аоб) могут быть отрезаны путем использования единичных основных дизъюнк- дизъюнктов в W. Однако С(ао0) есть пример С. Следова- Следовательно, литеры в С могут быть отрезаны исполь- использованием единичных дизъюнктов в W. Это означает, что мы в конце концов найдем Uk, содержащее □. Поэтому ал- алгоритм закончится на шаге 3. Обратно, если алгоритм закан- заканчивается на шаге 3, то мы получаем опровержение, показанное на рис. 11, где Во, ...,ВГ—единичные дизъюнкты из W. Ri~ резольвента С и Во, и /?,- — резольвента /?,_i и 5,- 1 для i== = 2, ...,г. Пусть а0 — наиболее общий унификатор, полученный при применении правила резолюций к С и Во, пусть а,- — наиболее общий унификатор для R; и В{, 1=1, . .., г. Тогда С(а0оа1о... .. . оаг) = {~50, ~Ви .. ., ~ Br}^DQ. Пусть Х = о0оо1о .. .оог. Тогда CX^DQ. Пусть а—подстановка, полученная из X заме- заменой в каждой компоненте "к а{ на xt для t=l, ...,n. Тогда Ca^D. Следовательно, С — поддизъюнкт D, что и требовалось доказать. Пример 5.26. Пусть С= — Р(х) V Q{f(x), а) и D = = ~ P(h(y)) V Q(f(h(y)), a) V ~ Р(г). Узнать, будет ли С под- поддизъюнктом D. 1. у и z — переменные в D. Пусть Q = {b/y, c/z\. Заметим, что b и с отсутствуют в С и D. Тогда D6= ~P(ftF)) V Q(f(h(b)), a)V V~P(c). Поэтому ~DQ = P(h(b))A~Q(f{h{b)), а) АР (с). д) Заметим, что гораздо более экономный алгоритм поглощения [можно получить, используя представление литер и термов в виде графов. См. Д а- выдов Г. В., Маслов С. Ю., Минц Г. Е., Оревков В. П. и t-лисеико А. О. Машинный алгоритм установления выводимости на ос- основе обратного метода. —Зап. научн. семинаров ЛОМИ АН СССР, 1969, 16, со—15; иПатерсон и Уэгмеи (Paterson M. S., Wegman M. N.). Unear Unification. — J. of Computerjand System Sciences, 1978, 16, p. 158—167.— <* Зак. иг.
100 МЕТОД РЕЗОЛЮЦИЙ [ГЛ. 5 Следовательно, W = {P(h(b)), ~Q(f(h(b)), a), P(c)}, [/• = {~/>WVQ(/W, a)}. 2. Так как U" не содержит □, получим U^iQtfihib)), a), ~P(h(b)), Q(f(c), a)}. 3. Так как U1 не пусто и не содержит П, то мы получим {} {} 4. Так как U2 содержит П. то алгоритм кончает работу, и мы заключаем, что С является поддизъюнктом D. Пример 5.27.Пусть С= Р(х, х) и£>= P(f (х), у) \J P{y,f{x)). Определить, будет ли С поддизъюнктом D. \. х я у—переменные в D. Выберем новые константы а и Ьу отличные от любых констант в С и D. Пусть в = {а/х, Ь/у}. Тогда DQ = P(f(a), b)VP(b, f(a)), ~DQ=~P(f(a), b)A~P(b, f(a)). Таким образом, W = {~P(f(a), b), ~P(b, f(c))}, U° = {P(x, x)}. 2. Так как U° не содержит [Л, то мы получим 3. Так как U1 пусто, то алгоритм кончает работу, мы зак- заключаем, что С не является поддизъюнктом D. ЛИТЕРАТУРА Ковальский (Kowalski R.) 1. Studies in the Completeness and Efficiency of Theorem-Proving by Resolu- Resolution: Ph. D. Thesis.—Univ. ofEdinburgh, Scotland, 1970. Ковальский и Хейес (Kowalski R., Hayes P. J.) 1. Семантические деревья в автоматическом поиске доказательств. — Ки- берн. сб. (нов. сер.), 9. М.: Мир, 1972. Робинсон Дж. (Robinson J. A.) 1. Машинно-ориентированная логика, основанная на принципе резолю- резолюции— Киберн. сб. (нов. сер.), 7. М.: Мир, 1970. 2. Generalized resolution principle. —In: Machine Intelligence, 3/Ed. D. Mi- chie. N. Y., 1968, p. 77 — 94. УПРАЖНЕНИЯ К § 5.2 1. С помощью резолюции доказать, что следующее множество дизъюнк- дизъюнктов невыполнимо: Р v Q V R, ~Р V R, ~Q, — R. 2. С помощью резолюции дли множества S = {P v Q, ~ Q V R, ~Р V 0, — R} получить пустой дизъюнкт из S. УПРАЖНЕНИЯ 101 К § 5.3 3. Пусть В = {а/х, b/y, g (х, у)/г} — подстановка и E = P(h(x), г). Най- Найти ЕВ. 4. Пусть Q1 = {a/x, f(z)/y, у/г} и ea = {6/x, z/y, g(x)/z]. Найти произве- произведение 9i на Э2. 5. Доказать следующую теорему. Пусть 6, X и (х — подстановки. Тогда F°X)°M. = 0°(Я°и.) (ассоциативность). К § 5.4 6. Определить, унифицируемо ли каждое из следующих множеств. Если да, то получить наиболее общий унификатор. A) W = {Q(a), Q(b)}; B) W = {Q(a, x), Q(a, a)}; C) W = {Q(a, x, f(x)), Q(a, y, </)}; D) W = {Q(x,y, z), Q(u, h(v, v), u)}; E) W = {P(x1, g(x}), x2, h(xu x2), x3, k(xx, x2, x3)), Р{Уи Уг> е(уг), y3, f (уг, Уз). У*)}- К § 5.5 7. Определить, имеют ли следующие дизъюнкты склейки. Если да, дать склейки. A) P(x)vQ(y)vP(f(x)); B) Р (х) v P (a) vQ(f(x))vQ(f (a)); C) Р(х, y)vP(a, f(d)); D) P(a)vP(b)vP(x); E) P(x)vP(f(y))vQ(x, у). 8. Найти все возможные резольвенты (если есть) следующих пар дизъюнктов: A) C = ~P(x)vQ(x, b), D = P(a)vQ(a, b); B) C=~P(x)vQ(x, x), D=~Q(a, f (a)); C) C=~P(x, y, u)v~P((/, 2, v)v~P(x, v, w)yP(u, z, w), D=P(g(x, y), x, y); D) С=~Я(у, z, v)wP(w, z, w), D = P(w, h(x, x), w). К § 5.7 9. Пересмотрите пример 2.13 в § 2.6. На этот раз покажите, что Н2СО может быть получено при помощи резолюции. 10. В упражнении 14 к главе 2 вас просили показать, что Q есть логи- логическое следствие Р и (Р —>- Q). Можете ли вы доказать это снова, используя метод резолюций? П. Пересмотрите упражнение 12 к главе 3. На этот раз используйте метод резолюций. 12. Рассмотрите пример 4.16. Докажите при помощи метода резолюций, что множество дизъюнктов в этом примере невыполнимо. 13. Используя метод резолюций, докажите, что множество дизъюнктов в упражнении 14 к главе 4 невыполнимо. 14. С помощью резолюции докажите, что (~Q—»■ ~ Р) есть логическое следствие (Р—► Q). К § 5.8 15. Пусть С=Р(х, y)vQ (z) и D=Q(a)vP(b, b)vR(u). Определить, будет ли С поддизъюнктом D. 16. Пусть С = Р(х, y)vR(y, х) и D=P(a, y)wR (г, b). Доказать, что L не будет поддизъюнктом D. 17. Пусть С = ~Р (x)vP(f(x)) и D=~P (x)vP (f(f(x))). Показать, что включает в себя D, но С не будет поддизъюнктом D.
ГЛАВА 6 СЕМАНТИЧЕСКАЯ РЕЗОЛЮЦИЯ И ЛОК-РЕЗОЛЮЦИЯ § 6.1. Введение В предыдущей главе мы рассматривали метод резолюций как правило вывода, которое может быть использовано для порож- порождения новых дизъюнктов из уже имеющихся. Мы видели также, что неограниченное применение резолюции может порождать много лишних и ненужных дизъюнктов наряду с полезными. Хотя можно использовать стратегию выбрасывания, чтобы вы- выбросить некоторые из этих ненужных и бесполезных дизъюнк- дизъюнктов после того, как они порождены, на их порождение уже будет потеряно время. Далее, если порождены бесполезные дизъюнкты, то нужны большие ресурсы машинного времени и памяти для того, чтобы определить, что эти дизъюнкты дейст- действительно лишние и ненужные. Поэтому для получения эффек- эффективных процедур доказательства теорем мы должны не допус- допустить порождения большого числа бесполезных дизъюнктов. Это приводит к обсуждению стратегий резолюции. Имеется много важных стратегий резолюции. Каждая стра- стратегия имеет свои преимущества. В этой книге мы рассмотрим три важные стратегии: семантическую резолюцию, лок-резолю- цию и линейную резолюцию1). Семантическая резолюция была предложена Слэйглом [1]. Она объединяет гиперрезолюцию Робинсона [1], резолюцию с переименованием по Мельцеру [1] и стратегию поддержки Уоса, Г. Робинсона и Кар- сона [1]. Лок-резолюция была предложена Бойером [1]. Это — очень эффективное правило. Линейная резолюция была предложена независимо Лавлендом [1] и Лакхемом [1 Позднее она была усилена Андерсоном и Бледсоу [1 Рейтером [1], Лавлендом [1], а также Ковальским и Кюнером [1]. Семантическая резолюция, лок-резолюция и линейная резолюция полны, т. е. каждую из них можно исполь- использовать для вывода пустого дизъюнкта □ из противоречивого множества дизъюнктов. Мы рассмотрим семантическую резолюцию и лок-резолюцию в этой главе, а линейную резолюцию—в главе 7. В той же ') См. также Дополнение В, в котором формулируются усиления иекото" рых стратегий и даются дополнительные комментарии.— Прим. ред. § 6.2 НЕФОРМАЛЬНОЕ ВВЕДЕНИЕ ВСЕМАНТИЧЕСКУЮ РЕВОЛЮЦИЮ ЮЗ главе мы рассмотрим и один из подслучаев линейной резолюции, а именно начальную резолюцию. Чень [1] показал, что на- начальная резолюция эквивалентна другому виду резолюции, а именно, единичной резолюции. В главе 8 будет дана особая трактовка отношения равенства. Наконец, в главе 9 будут вве- введены некоторые другие типы процедур доказательства, включая резолюцию с ограничением на переменную (Чень [2]). § 6.2» Неформальное введение в семантическую резолюцию Рассмотрим следующий пример. Пример 6.1. Пусть S = {~PV~QVR, PVR, QVR, ~R\- При доказательстве противоречивости множества S с использо- использованием обычного принципа резолюции будут порождены следую- следующие дизъюнкты: A) -PV-QVR, B) PVR, C) QVR, D) ~Я, E) -QVR 'PVR P\J~Q Р Q F) ~ G) ~ (8) (9) A0) -QVR A1) -PVR A2) A3) R ~Q A4) ~Р A5) □ Среди всех порожденных дизъюнктов только F) и A2) дейст- действительно используются в доказательстве. Все остальные дизъюнкты лишние и ненужные. Можно ли ввести какие-то механизмы, ко- которые могли бы ограничить количество порождаемых бесполез- бесполезных дизъюнктов? Оказывается, что такие механизмы действи- действительно имеются, и сейчас мы подробно их обсудим. Вообразим, что мы можем каким-то образом разбить множе- множество дизъюнктов на две группы —5t и 52. Вообразим далее, что мы не разрешаем, чтобы обе посылки резолюции принадлежали одной и той же группе. Это очевидным образом ограничит коли- количество порождаемых дизъюнктов. Например, разделим дизъюнкты из примера 6.1 на группы Sx (дизъюнкт B) и дизъюнкт C)) и 52 (дизъюнкт A) и дизъюнкт D)). Так как оба дизъюнкта A) и D) принадлежат 52, они не могут
104 СЕМАНТИЧЕСКАЯ РЕЗОЛЮЦИЯ И ЛОК-РЕЗОЛЮЦИЯ ГЛ. 6 участвовать в одном применении резолюции A) и D). Как мы увидим, эта блокировка не повлияет на нашу способность вывести пустой дизъюнкт □• Возникает вопрос", как делить дизъюнкты на две группы? В семантической резолюции мы используем интерпретации, чтобы отделять дизъюнкты. Вот почему этот вид резолюции называется семантической резолюцией. Заметим, что в примере 6.1 оба дизъюнкта B), C) опровергаются в интерпретации / = {~Р, ~Q, ~R}, в то время как A) и D) выполнены в /. Читатель должен помнить, что мы рассматриваем противоречивые множе- множества дизъюнктов. Никакая интерпретация не может выполнить или опровергнуть все эти дизъюнкты. Поэтому каждая интер- интерпретация делит 5 на два непустых множества дизъюнктов. В следующем параграфе мы увидим, что может быть использо- использована любая интерпретация. До сих пор нам удалось заблокировать резолюцию с посыл- посылками A) и D). Можем ли мы наложить дальнейшие ограничения, чтобы было заблокировано больше резолюций? Заметим, что в примере 6.1 возможна резолюция каждого из дизъюнктов B), C) с D). Мы покажем, что и эти резолюции можно заблокиро- заблокировать. Чтобы заблокировать их, мы можем использовать одну остро- остроумную схему, а именно упорядочение предикатных символов. Допустим, что мы упорядочиваем все предикатные символы из 5 следующим образом: P>Q>R. Пусть мы потребовали далее, чтобы при применении резолю- резолюции к двум дизъюнктам (один из Slt один из S2) удаляемая ли- литера в дизъюнкте из Sx содержала наибольший предикатный символ из этого дизъюнкта. При таком ограничении невозможна резолюция ни дизъюнкта B) g D), ни дизъюнкта C) с D), так как R не является наибольшей литерой ни в B), ни в C). Изложенные идеи—использование интерпретации для раз- разбиения дизъюнктов на две группы и упорядочения для умень- уменьшения числа возможных резолюций — являются важными поня- понятиями в семантической резолюции. Мы разработаем эти идеи позже. Тем временем мы введем еще одно важное понятие. Пример 6.2. Рассмотрим дизъюнкты из примера 6.1: A) ~Pv~QVP, B) PVR, C) QVR, D) ~R. Пусть / = {~Р, ~Q, ~R\, и пусть предикатные символы расположены в порядке Р > Q > R. Применяя два ограничения, 6.3] ФОРМАЛЬНОЕ ОПРЕДЕЛЕНИЕ И ПРИМЕРЫ 105 обсуждавшиеся выше, мы можем породить только два дизъюнкта E) ~Q\/R из A) и B), F) ~P\/R из A) и C). Оба эти дизъюнкта выполнены в интерпретации /, поэтому мы помещаем их в 52 и применяем к ним правило резолюции, спаривая их с дизъюнктами из 5Х. Мы находим, что E) можно спарить с C) и F)—с B). Оба эти варианта дают один и тот же дизъюнкт R: G) R (8) R из C) и E), из B) и F). Рис. 12. Дизъюнкт R ложен в /, следовательно, мы помещаем его bS, и спариваем с дизъюнктами из S2. Мы находим, что ~R попадает в 52. Поэтому, спаривая R и ~R, мы получаем пустой дизъюнкт. На рис. 12 показано два способа, которыми был выведен R. Оба эти вы- вывода дизъюнкта R используют дизъ- дизъюнкты A), B) и C). Они отличаются тем, что используют эти дизъюнкты в различном порядке. Так как для доказательства нужен только один из этих способов, порождение обоих совершенно избыточно. Чтобы избежать этой избыточности, мы вводим понятие клаша (clash). Идея клаша состоит в том, чтобы породить дизъюнкт R непосредственно из A), B) и C), не проходя через «промежу- «промежуточные» дизъюнкты E) или F). Множество {A), B), C)} назы- называется' клашем. Подробное описание клаша будет дано в следу- следующем параграфе. Позднее также будет показано, что мы можем сочетать понятия интерпретации и упорядочения предикатных символов с понятием клаша, чтобы сильно ограничить количество применений резолюции. § 6.3. Формальное определение и примеры семантической резолюции Определение. Пусть / — интерпретация. Пусть Р—упо- Р—упорядочение предикатных символов. Конечное множество дизъюнк- дизъюнктов \Elt ..., Еф N}, q~^\, называется семантическим клашем относительно Р и / (короче, Р1-клашем), если Е1 Eq (на- (называемые электронами) и N (называемый ядром) удовлетворяют следующим условиям: 1. Еи . . ., Eq ложны в /. 2. Пусть Rt^N. Для каждого £=1, ..., q имеется резоль- резольвента Ri+1 дизъюнктов /?,. и £,-.
106 СЕМАНТИЧЕСКАЯ РЕЗОЛЮЦИЯ И ЛОК-РЕЗОЛЮЦИЯ [ГЛ. 6 3. Та литера в Е,- (i=l, ..., q), к которой применяется ре- резолюция, содержит наибольший предикатный символ в £,-. р 4. Rq+1 ложен в / 4. Rq+1 ложе ) Дизъюнкт Ra+1 называется PI-резольвентой (Р/-клаша {Elt... EN}) Пример 6.3. Пусть Е1 = А1уА3, Е2 = A2\JА3, N = ~AX\J V~A2yA3. Пусть / = {~Л1, ~Л2, ~А3\ и Р —упорядочение, в котором ■Ai > ^2 > ^з- Тогда {Elt £2, N} есть Р/-клаш. /'/-резольвента этого клаша есть А3. Отметим, что А3 ложен в /. Пример 6.4. В примере 6.3 ни {Е1У N}, ни {Е2, N} не есть Р/-клаш. Например, мы видим, что резольвента дизъюнктов Е1 и N есть дизъюнкт ~Аг\/А3, который истинен в /. Таким ■образом, {£1( N} не есть Р/-клаш. Мы также можем видеть, что если мы заменим Р на упорядочение, в котором Л3> Л2 > Аи то {£,, £2, N) не есть Р/-клаш, так как не выполнено третье усло- условие из определения. Пример 6.5. Пусть N= Q (x)VQ(a)\/~R R (b)VS (c). Пусть I = {Q(a), Q(b), Q(c), ~R(a), ~R(b), ~R(c), ~S(a), ~S(b), ~S(c)\. Пусть P—упорядочение предикатных символов' в котором Q > R > 5. Пусть Rx = N. Имеется резольвента дизъюнк" тов R1 и Elt а именно ~R(y)\/~R(b)\/S(c). Назовем ее R2. Имеется резольвента дизъюнктов R% и Е2, а именно 5 (с). Обо- Обозначим S(c) через R3. Ra ложна в /. Так как {£х, £2, N\ удов- удовлетворяет всем четырем условиям, он есть Р/-клаш. Р/-резоль- вента этого клаша есть 5 (с). В Р/-клаше {Elt E2, ..., Ея, N} дизъюнкт Е1 считается первым электроном, Ег—вторым, ..., Ея—последним. В дейст- действительности порядок этих электронов несуществен. Мы можем изменить нумерацию и считать любой из этих электронов пер- первым, любой из оставшихся электронов—вторым и т. д. Незави- Независимо от того, какой порядок электронов мы используем, мы всегда получим одну и ту же Р/-резольвенту данного клашаа). J) Следует принять во внимание, что при некоторых / одинЦи тот же электрон может при различных подстановках приводить как к истинным, -гак и к ложным в / дизъюнктам. Поэтому при организации процесса поиска вывода следует или выбирать простые / (такие, как в приводимых ниже примерах или в стратегии гиперрезолюции) или допускать применения клаш- правила без гарантии ложности электронов. Более того, целесообразно рас- рассматривать понятие клаш-правила вообще без привязки к какой-нибудь интерпретации (см. правило RR из Дополнения В).— Прим. ред. 2) С учетом предыдущего примечания перестановочность электронов тоже не всегда гарантирована.— Прим. ред. § 6.4 ПОЛНОТА СЕМАНТИЧЕСКОЙ РЕЗОЛЮЦИИ 107 Поэтому мы можем избежать порождения слишком многих выво- выводов одной и той же резольвенты, как указывалось в примере 6.2. Это одна из причин введения понятия клаша. Определение. Пусть / — интерпретация некоторого мно- множества 5 дизъюнктов, Р—некоторое упорядочение предикатных символов, входящих в 5. Вывод из множества S называется PI- вьсводом, если каждый дизъюнкт из этого вывода либо принад- принадлежит S, либо является Р/-резольвентой. Пример 6.6. Пусть 5 = {Л1уЛ2, Al\J~Ai, ~Ax\jAt, ~Л1\/~Л2}. Пусть 1 = {А1, ~А2) и Р — упорядочение преди- предикатных символов, в котором Ах<с А3. Вывод, изображенный на Рис. 13. рис. 13, является Р/-выводом дизъюнкта □ из S. В нем имеются три Р/-резольвенты, а именно ~Л1( Л2 и □• Интересный факт о семантической резолюции состоит в том, что мы можем использовать любое упорядочение и любую интер- интерпретацию. Например, если в примере 6.6 мы положим /= = {~Alt ~Л2} и Ах > Л2, то получим Р/-вывод дизъюнкта □ из S, изображенный на рис. 14. В действительности Р/-резолю- ция полна, т. е. для любого противоречивого множества дизъюнк- дизъюнктов мы всегда можем вывести пустой дизъюнкт □ с использова- использованием некоторой Р/-резолюции. Мы посвятим следующий параг- параграф доказательству этого факта. § 6.4. Полнота семантической резолюции Лемма 6.1. Если Р—упорядочение предикатных символов в конечном противоречивом множестве S основных дизъюнктов, а I—интерпретация множества S, то имеется Р1-вывод дизъюнк- дизъюнкта □ из S. Доказательство. Эту лемму можно доказать по индук- индукции. Пусть Л—множество атомов для 5. Если Л состоит из единственного элемента Q, то среди элементов множества 5 имеются дизъюнкты Q и ~Q. Очевидно, что резольвента О и ~Q есть □• Так как один из дизъюнктов Q, ~Q должен быть ложен в / и так как □ ложен в /, то □ есть Р/-резольвента.- Поэтому лемма 6.1 верна для этого случая.
108 СЕМАНТИЧЕСКАЯ РЕЗОЛЮЦИЯ И ЛОК-РЕЗОЛЮЦИЯ ГЛ. Допустим, что лемма 6.1 верна, когда А состоит из i эле- элементов, 1^г^п. Для завершения индукции мы рассматри- рассматриваем А, состоящее ровно из п + 1 элемента. Возможны два случая. Случай 1. S содержит единичный дизъюнкт L, который ложен в / (L является литерой). Пусть S'—множество, получаемое из 5 выбрасыванием тех дизъюнктов, которые содержат литеру L, и вычеркиванием ~L из остальных дизъюнктов. Очевидно, что S' противоречиво. (См. правило однолитерных дизъюнктов в § 4.6.) Так как S' содержит п или менее атомов, то по индук- индукционному предположению имеется Р/-вывод D' дизъюнкта □ из множества S'. Из вывода D' мы можем получить Р/-вывод дизъюнкта □ из S. Это делается следующим образом. Во-пер- Во-первых, для каждого Р/-клаша \Е[, ..., E'q, N \, где£1, .. .,E'q,N' — дизъюнкты, помещенные в исходные узлы вывода D', заменим клаш {Е{, ..., E'q, N'} на Р/-клаш {Е[, ..., E'q, L, N), если N' получен из дизъюнкта N в D' вычеркиванием литеры L (здесь Е[, ..., E'q, L — электроны, N — ядро). Во-вторых, если Е\ по- получен из дизъюнкта £,- в 5 вычеркиванием литеры ~L, то припишем Р/-клаш {L, Е() над узлом, где находится E't. Ясно, что после выполнения описанного процесса мы получим PI- вывод дизъюнкта □ из множества 5. Случай 2. 5 не содержит единичного дизъюнкта, ложного в /. В этом случае выберем элемент В из множества А атомов для .S такой, что В содержит наименьший предикатный символ. Одна из литер В, ~В ложна в /. Пусть L — тот элемент мно- множества \В, ~В}, который ложен в /. Пусть S'—множество, получаемое из 5 выбрасыванием тех дизъюнктов, которые содер- содержат литеру ~L, и вычеркиванием L из остальных дизъюнктов. $' противоречиво. Так как 5' содержит не более п атомов, по индукционному предположению имеется Р/-вывод D' дизъюнкта О из S'. Пусть Dx — вывод, полученный из D' путем возвра- возвращения литеры L в те дизъюнкты, из которых она была вычерк- вычеркнута. Dt все еще является Р/-выводом, так как литера L содер- содержит наименьший предикатный символ и ложна в /. D1 является Р/-ВЫВОДОМ дизъюнкта П или дизъюнкта L. В первом случае доказательство закончено. В последнем случае рассмотрим мно- множество (Sll{^}). Так как (S U {L}) содержит единичный дизъюнкт L, ложный в /, то в силу доказательства случая 1, данного выше, имеется Р/-вывод D2 дизъюнкта Q из (S|j{M). Комби- Комбинируя Dx и D2) мы можем получить Р/-вывод дизъюнкта Q из S. Это завершает доказательство леммы 6.1. Теорема 6.1 (полнота Р/-резо л юции). Если Р—упо- Р—упорядочение предикатных символов в конечном противоречивом мно- множестве S дизъюнктов и I—интерпретация множества S, то имеется PI-вывод дизъюнкта Q из S. Доказательство. Так как 5 противоречиво, то по тео- теореме Эрбрана (второй вариант) имеется конечное противоречи- ГИПЕРРЕЗОЛЮЦИЯ И СТРАТЕГИЯ ПОДДЕРЖКИ 109 вое множество S' основных частных случаев дизъюнктов из 5. По лемме 6.1 имеется Р/-вывод D' дизъюнкта □ из множе- множества S'. Мы покажем теперь, как перестроить Р/-вывод D' в Р/-ВЫВОД дизъюнкта □ из множества 5. Для этого мы просто поместим в каждый узел вывода D' некоторый дизъюнкт, «мажорирующий» основной дизъюнкт, уже находящийся в этом узле. В каждый начальный узел поместим дизъюнкт из S, част- частным случаем которого является основной дизъюнкт, уже нахо- находящийся там. Затем, если дизъюнкты уже помещены в узлы, непосредственно предшествующие данному начальному узлу, и при этом составляют Р/-клаш, то помещаем в рассматриваемый узел Р/-резольвенту, частным случаем которой является основ- основной дизъюнкт, уже находящийся там. Дизъюнкт, помещаемый в конечный узел, должен быть пустым, так как пуст дизъюнкт, уже находящийся там. Легко видеть, что это дерево вывода вместе с помещенными туда дизъюнктами является Р/-выводом дизъюнкта □ из множества 5. Это завершает доказательство. Отметим, что стратегию выбрасывания, приведенную в §5.8, можно использовать вместе с Р/-резолюцией, не теряя свойства полноты г). § 6.5. Гиперрезолюция и стратегия поддержки — частные случаи семантической резолюции В этом параграфе мы введем два специальных типа интер- интерпретаций, которые будут использованы в семантической резо- резолюции. Один из этих типов приводит к гиперрезолюции, другой—-к стратегии поддержки. А. Гиперрезолюция Рассмотрим интерпретацию /, в которой любая литера явля- является отрицанием атома. Если используется эта интерпретация, то любой электрон и любая Р/-резольвента должны содержать только атомы (без отрицаний). Аналогично, если любая литера в / является атомом, то любой электрон и любая Р/-резоль- вента должны содержать только отрицания атомов. Гиперрезо- Гиперрезолюция основана на этих соображениях. Определение. Дизъюнкт называется положительным, если он не содержит знаки отрицания. Дизъюнкт называется отри- отрицательным, если любая входящая в него литера содержит знак отрицания. Дизъюнкт называется смешанным, если он не явля- является ни положительным, ни отрицательным. Определение. Положительная гиперрезолюция—это част- частный случай Р/-резолюции, в котором любая литера в интер- х) Можно доказать, что дальнейшим усилением теоремы 6.1 является теорема 3 Дополнения В.— Прим. ред.
по СЕМАНТИЧЕСКАЯ; РЕЗОЛЮЦИЯ И ЛОКРЕЗОЛЮЦИЯ [ГЛ. 6 претации / содержит знак отрицания. Она называется положи- положительной гиперрезолюцией, поскольку все электроны и /'/-резоль- /'/-резольвенты в этом случае положительны. Определение. Отрицательная гиперрезолюция—это част- частный случай Р/-резолюции, в котором интерпретация / не содержит знака отрицания. Она называется отрицательной ги- гиперрезолюцией, поскольку все электроны и PJ-резольвенты в этом случае отрицательны. Из теоремы 6.1 мы видим, что как положительная, так и отрицательная гиперрезолюция полны. Пример 6.7. Для следующего противоречивого множества дизъюнктов S = {Q(a)WR(x), ~Q(x)VR(x), ~R(a)V~S(a), S(x)\ пусть Р—упорядочение R < Q'< S. Тогда мы получаем поло- положительный и отрицательный гипервыводы, приводимые соответ- соответственно на рис. 15, а и 15, Ь. Часто случается, что аксиомы некоторой теоремы представ- представлены некоторыми положительными и смешанными дизъюнктами, Six) CKa)vR(x) \ R(x)vR(a) Рис. 15. а отрицание заключения — отрицательным дизъюнктом. В этом случае положительная гиперрезолюция соответствует, грубо говоря, мышлению «прямой волной», в то время как отрица- отрицательная гиперрезолюция соответствует «обратной волне». Это можно лучше пояснить на следующем примере. Пример 6.8. Пусть аксиомами будут Q, R и ~Q V ~/?jV.'S- Пусть отрицание заключения есть ~ S. Тогда мы имеем следую- следующие четыре дизъюнкта: A) Q, B) R, C) ~QV ~# V S. D) ~S. $ 6.5 ГИПЕРРЕЗОЛЮЦИЯ И СТРАТЕГИЯ ПОДДЕРЖКИ 111 Пусть упорядочение предикатных символов задано списком Q > R > S. Тогда рис. 16 является положительным гипервыво- гипервыводом дизъюнкта П- Читатель может видеть, что этот вывод начинается с аксиом и выводит S, что противоречит отрицанию ~S заключения. Вывод, изображенный на рис. 16, Ь, является отрицательным R ~Q.v~PvS Рис. 16. гипервыводом дизъюнкта П- На этот раз вывод начинается с отрицания заключения. Допустив, что заключение ложно, мы выводим противоречие из этого допущения. Б. Стратегия поддержки Стратегия поддержки была предложена У ос ом, Г. Робин- Робинсоном и Карсоном [1]. Как указывалось в предыдущих гла- главах, теорема состоит из множества Alt Аг, ..., Ап аксиом и заключения В. Чтобы доказать эту теорему, мы доказываем по существу, что формула А1 /\ А2 А • • • Л Ап /\ ~В противоречива. Так как формула А1 Л А2 /\ ... /\ Ап обычно выполнима, может быть целесообразно избегать спаривания дизъюнктов, порожден- порожденных формулой А1 Л А2 Л • • • Л А„. Именно этого пытается достичь стратегия поддержки. Определение. Подмножество Т множества S дизъюнктов называется множеством поддержки для S, если S — Т выполнимо. Резолюция с поддержкой—-это применение правила резолюции к паре дизъюнктов, не принадлежащих одновременно S^—Т. Вывод с поддержкой — это вывод, в котором любое применение резолюции есть резолюция с поддержкой. Мы докажем теперь, что резолюция с поддержкой полна. Это легко можно сделать с помощью теоремы 6.1. Теорема 6.2 (полнота стратегии поддержки). Если S — конечное противоречивое множество дизъюнктов и Т — подмно- подмножество S такое, что S—Т выполнимо, то имеется вывод с под- поддержкой пустого дизъюнкта □ из множества S, в котором Т является множеством поддержки. Доказательство. Так как множество S — Т выполнимо, имеется интерпретация /, выполняющая 5—Т. Выберем любое
112 СЕМАНТИЧЕСКАЯ РЕЗОЛЮЦИЯ И ЛОК-РЕЗОЛЮЦИЯ ГЛ. 6 упорядочение Р предикатных символов из S. По теореме 6.1 имеется Р/-вывод D дизъюнкта □ из множества 51). Рассмотрим произвольный клаш {Еи Ег, ..., Е„, N} из D. PJ-резольвента этого клаша получается путем спаривания Е1 с N, затем Ег — с полу- полученной резольвентой и т. д. Каждое применение резолюции содержит некоторый электрон Е{. Однако электрон ложен в /. Поэтому для любого существующего применения правила резо- резолюции обе посылки не могут принадлежать S — Т. Таким обра- образом, можно преобразовать вывод D в некоторый вывод с под- поддержкой дизъюнкта □ из множества S, что и требовалось доказать. Пример 6.9. Пусть S—множество, состоящее из следую- следующих дизъюнктов: A) P{g(xlt г/i), *i, #i), B) ~P(xt, h(x2, yt), у2), C) ~P(x3,ys,us) \/P{y3,z3,v3) \J~P(x3,v3,ws) V P(u3, z3, w3) D) ~Я(ВД, xt, *(*«)). Пусть T—множество, состоящее из дизъюнкта D). Тогда следующий вывод является выводом с Т в качестве множества поддержки. Мы видим, что правило резолюции не применяется внутри A), B), C). E) ~Р(хя, у3, k(z3)) V Р(у3, z3, v3) \/~Р{х3, v3, k{z3)) резольвента дизъюнктов D) и C), F) ~Я(х,> У» k(h{y3, v3)))\/~P(x3, v3, k(h(y3, i»,))) резольвента дизъюнктов E) и B), G) □ резольвента дизъюнктов F) и A). § 6.6. Семантическая резолюция с использованием упорядоченных дизъюнктов В этом параграфе мы рассмотрим некоторые упорядочения, отличные от упорядочений предикатных символов. Для логики высказываний вполне эффективны упорядочения предикатных символов, используемые в сочетании с семантической резолю- резолюцией. Для любого электрона Е нетрудно выделить отрезаемую литеру в Е. Рассмотрим, например, Е1 = А1\/А3, Е2 = А2\/А3, N = ~ЛХ\/ ~А2\/Аа в примере 6.3. Используя / = {~Л1; ~Л2, ~Л3} и упорядочение Р, в котором Л1>Л2>Л3, мы легко решим, что отрезать нужно соответственно литеры А1 и А.г в Е1 и Е2. Однако в логике первого порядка, где появляются переменные, в электроне Е может оказаться несколько литер, х) С учетом примечания на с. 106 Р/-вывод не гарантирует автоматичес- автоматического выполнения условия стратегии поддержки (/ навязана нам множеством 5 — Т, т. е. может быть сложной). — Прим. ред. § б.б ИСПОЛЬЗОВАНИЕ УПОРЯДОЧЕННЫХ ДИЗЪЮНКТОВ 113 содержащих один и тот же предикатный символ, наибольший в Е. Каждая из этих литер является кандидатом для примене- применения правила резолюции. Это лучше всего проиллюстрировать следующим примером. Пример 6.10. Рассмотрим E = Q(a) VQ(b)\/Q(c) \JQ(d), N ) Пусть / — интерпретация, в которой любая литера отрица- отрицательна, а Р—любое упорядочение предикатных символов. Тогда {Е, N] очевидным образом является Р/-клашем. Так как все четыре литеры в Е содержат один и тот же предикатный сим- символ Q, каждую из них можно отрезать, применяя правило резолюции со второй посылкой N. Поэтому из Р/-клаша {Е, N} мы можем получить четыре Р/-резольвенты, а именно Q (Ь) V VQ (с) V Q (d), Q(a)WQ (с) V Q (d), Q (a)VQ (b) V Q (d) и Q (a)V WQ(b)VQ(c). Из предыдущего примера видно, что с помощью одного только упорядочения предикатных символов мы можем ока- оказаться не в состоянии однозначно выделить литеру в электроне. Поэтому мы можем быть вынуждены породить более одной семан- семантической резольвенты из данного семантического клаша. Чтобы улучшить эту ситуацию, мы рассмотрим упорядоченные дизъюнкты (Рейтер [1]; Слэйгл и Нортон [I]I). Идея введения упорядоченных дизъюнктов состоит в рас- рассмотрении дизъюнкта как последовательности, а не просто мно- множества литер. Поступая таким образом, мы устанавливаем поря- порядок всех литер в дизъюнкте. Мы принимаем соглашение, что литера L2 больше, чем литера Llt в дизъюнкте С в точности тогда, когда L2 следует за Ьг в последовательности, указанной в задании этого дизъюнкта. Таким образом, последняя литера в дизъюнкте всегда будет считаться наибольшей в этом дизъюнкте. Например, если мы считаем А3\/А±\/А2 упорядоченным дизъ- дизъюнктом, то А2 — наибольшая литера. Мы теперь формально даем следующее определение. Определение. Упорядоченный дизъюнкт—это последова- последовательность различных литер. Упорядоченный дизъюнкт интерпретируется как дизъюнкция всех своих литер. Единственное отличие состоит в том, что порядок литер в (неупорядоченном) дизъюнкте безразличен, в то время как в упорядоченном дизъюнкте он намеренно фиксирован. Упорядоченный дизъюнкт будет записываться так же, как дизъ- дизъюнкция литер. Это не вызовет недоразумений, так как мы будем употреблять эпитет «упорядоченный» всегда, когда будет идти речь об упорядоченном дизъюнкте. х) Ср. п. 2 Дополнения В.—Прим. ред.
114 СЕМАНТИЧЕСКАЯ РЕЗОЛЮЦИЯ И ЛОК-РЕЗОЛЮЦИЯ ГЛ. Определение. Говорят, что литера L2 больше, чем лите- литера Z.J. в упорядоченном дизъюнкте (или что Lx меньше, чем L2), если L2 следует за Ьх в упорядочении этого дизъюнкта. Мы рассмотрим семантическую резолюцию с использованием упорядоченных дизъюнктов. Сначала, однако, мы определим упорядоченную резолюцию для упорядоченных дизъюнктов. Определение. Если две или более литер (одного и того же знака) в упорядоченном дизъюнкте С имеют наиболее общий унификатор о, то упорядоченный дизъюнкт, получаемый из по- последовательности Со выбрасыванием всех литер, совпадающих с меньшими литерами, называется упорядоченной склейкой дизъ- дизъюнкта С. Пример 6.11. Рассмотрим упорядоченный дизъюнкт С = = P(x)\/Q (x)\J P(a)_ Первая и последняя литеры (подчеркнутые) в С имеют наиболее общий унификатор о — {а/х]. Следовательно, Ca=P(a)\/Q (a)\jP(a). В этой последовательности Сет имеется две одинаковые литеры. Так как вторая литера Р(а) совпадает с меньшей литерой, а именно с первой Р (а), то мы выбрасыва- выбрасываем вторую Р (а) из Сет и получаем последовательность Р (а)\/ \/Q(a), которая является упорядоченной склейкой дизъюнкта С. Отметим, что Q(a \/P(d) не является упорядоченной склейкой дизъюнкта С, так как она получается из Со выбрасыванием первой Р(а). Определение. Пусть С1 и С2 — упорядоченные дизъюнкты без общих переменных. Пусть L1 и L2 — литеры в С1 и С2 соот- соответственно. Если Lx и ~L2 имеют наиболее общий унификатор о и если С есть упорядоченный дизъюнкт, получаемый соедине- . нием последовательностей do и С2о, вычеркиванием Lfi и L2a и выбрасыванием любой литеры, совпадающей с меньшей лите- литерой в остающейся последовательности, то С называется упоря- упорядоченной бинарной резольвентой Сх с С2. Литеры L^ и L2 назы- называются отрезаемыми литерами. Приведенное определение совпадает с определением бинарной резольвенты, данном в § 5.5 главы 5, за исключением того, что в упорядоченной бинарной резольвенте задан порядок литер. Отметим, что мы используем оборот «резольвента С1 с С2», чтобы подчеркнуть, что она, вообще говоря, отлична от упорядоченной бинарной резольвенты С2 с Сх. Пример 6.12. Рассмотрим упорядоченные дизъюнкты C1 = P(x)\JQ(x)\/R{x) и C2=~P(a)VQ(a). Выберем L1 = P{x) и Z,2 = ~P(a). Так как ~L2 = P(а), дизъ- дизъюнкты Z-! и ~L2 имеют наиболее общий унификатор о = {а/х\. Сначала, соединяя последовательности Сго и С2о, мы получаем последовательность P(a)\jQ (а) VR (а) V ~ Р{а) V Q (а). Затем, удаляя из этой последовательности Lxct и L2ct, мы получим по- последовательность Q{a)\/R{a)\/Q{a). Наконец, используя совпа- § 6.6 ИСПОЛЬЗОВАНИЕ УПОРЯДОЧЕННЫХ ДИЗЪЮНКТОВ 115 дение второго Q(a) в дизъюнкте Q (a)\/R (a)\/Q (а) с меньшей литерой, а именно с первой Q (а), мы выбрасываем вторую Q (а) и получаем Q(a)\/R(a). Последовательность Q(a)\/R(a) явля- является упорядоченной бинарной резольвентой дизъюнкта С1 с С2. Отрезаемые литеры — это Р(х) и ~Я(а). Определение. Упорядоченная резольвента упорядоченного дизъюнкта С1 с упорядоченным дизъюнктом С2 — это одна из следующих четырех упорядоченных бинарных резольвент: 1) упорядоченная бинарная резольвента Сх с С2; 2) упорядоченная бинарная резольвента Сх с некоторой упо- упорядоченной склейкой дизъюнкта С2; 3) упорядоченная бинарная резольвента некоторой упорядо- упорядоченной склейки дизъюнкта С1 с дизъюнктом С2, 4) упорядоченная бинарная резольвента некоторой упорядо- упорядоченной склейки дизъюнкта С1 с некоторой упорядоченной склей- склейкой дизъюнкта С2 х). Пример 6.13. Рассмотрим упорядоченные дизъюнкты Упорядоченной склейкой дизъюнкта Сх является С'1=Р(а)\/ VQ (a)\/R (а). Упорядоченной бинарной резольвентой С[ с С2 является Q(a)\JR(a). Поэтому Q(a)\/R(a) является упорядо- упорядоченной резольвентой Сг с С2. Упорядоченная резолюция—это правило вывода, порождающее упорядоченные резольвенты, исходя из некоторого множества упорядоченных дизъюнктов. Нетрудно видеть, что упорядочен- упорядоченная резолюция полна. Иными словами, упорядоченная резолю- резолюция всегда породит пустой дизъюнкт П. исходя из противоре- противоречивого множества упорядоченных дизъюнктов. Доказательство предоставляется читателю в качестве упражнения. Мы уже определили упорядоченную резолюцию. Сейчас мы рассмотрим семантическую резолюцию для упорядоченных дизъ- дизъюнктов. Мы все еще будем использовать понятия интерпретации и клаша. Однако вместо упорядочения предикатных символов мы будем использовать понятие упорядоченного дизъюнкта. Как отмечено в начале этого параграфа, это дает преимущество, ибо теперь мы всегда можем однозначно выделить отрезаемую ли- литеру в электроне. Определение. Пусть / — интерпретация. Конечная после- последовательность (Elt E2, ..., Е„, N), q^\, упорядоченных дизъ- дизъюнктов называется упорядоченным семантическим клашем отно- относительно / (сокращенно, 01-клашем), если Elt Е2, ..., Еч (на- х) Ограничения на использование склеек см. в п. 3 Дополнения В. — Прим. ред.
116 СЕМАНТИЧЕСКАЯ РЕЗОЛЮЦИЯ И ЛОК-РЕЗОЛЮЦИЯ ГЛ. 6 зываемые упорядоченными электронами) и N (называемый упо- упорядоченным ядром) удовлетворяют следующим условиям: 1. Elt Ег, ..., EQ ложны в /. 2. Пусть Rq = N. Для каждого i = q, q—\, ..., 1 имеется упорядоченная резольвента /?,-_i дизъюнкта Е{ с Rt. 3. Отрезаемая литера в £,• является «последней литерой» в Е;, t= 1, ..., q; отрезаемая литера в R/—это «наибольшая литера», имеющая частный случай, истинный в /. 4. Ro ложен в /. #„ называется 01-резольвентой 0/-клаша (Ег, Е2, ..., EQ, N). Приведенное определение, за исключением условия 3, ана- аналогично определению Р/-резольвенты, данному в § 6.3. Мы теперь дадим пример, иллюстрирующий нахождение 0/-клаша. Пример 6.14. Рассмотрим упорядоченные дизъюнкты: A) Аг\/А2, B) А,\/А3, C) ~ASV~A2\JA1. Пусть I = {~Alt ~Л2, ~Л3}. Так как A) и B) ложны в /, их можно использовать в качестве упорядоченных электронов. Так как в C) имеется литера, истинная в /, C) можно исполь- использовать в качестве упорядоченного ядра. Поэтому положим N = = ~Aa\/~Ai\/A1. В N имеется две литеры, истинные в /, а именно ~А3 и ~Л2. Поэтому нам нужны два упорядоченных электрона. Пусть R2 = N, т. е. #2 = ~Л3\/~Л2VАу. Наиболь- Наибольшая литера в R2, имеющая частный случай, истинный в / (а именно саму эту литеру), — это ~Л2. Так как ~Л3 и последняя литера из A) могут быть отрезаны, мы имеем Ea = A1\/Aa. Упорядоченную резольвенту Rt дизъюнкта Е2 с R2 можно за- задать в виде Rx — Ax\/~A3. Наибольшая литера в Rlt имеющая частный случай (саму себя), истинный в /, — это ~Л3. Так как ~Л3 и последняя литера в B) могут быть отрезаны, мы имеем £'1 = /41V^3- Упорядоченная резольвента Ro дизъюнкта Е1 с Rt задана в виде R0 = A1. Так как Ro ложен в /, мы заключаем, что (£\, Е2, N) или (B), A), C)) является 0/-клашем и А1 есть О/-резольвента этого клаша. Из приведенного выше примера мы можем усмотреть, что порядок упорядоченных электронов определяется порядком ли- литер в упорядоченном ядре. Поэтому в приведенном примере ' (A), B), C)) не будет 0/-клашем. Пример 6.15. Рассмотрим дизъюнкты, данные в примере 6.10: A) B) Q(a)VQ(b)VQ(c)VQ(d), Q() Допустим, что мы рассматриваем A) и B) как упорядочен- упорядоченные дизъюнкты. Пусть / — интерпретация, в которой любая ли- 6.6] ИСПОЛЬЗОВАНИЕ УПОРЯДОЧЕННЫХ ДИЗЪЮНКТОВ 117 тера отрицательна. Так как A) ложен в /, можно использовать A) в качестве электрона. Отрезая последнюю литеру из A) и ~Q (х), мы получаем упорядоченную резольвенту Q(a)\/Q(b)\/ VQ(c), которая ложна в /. Поэтому (A), B)) является 0/-кла- шем с A) и B) в качестве упорядоченного электрона и упоря- упорядоченного ядра соответственно. Для этого клаша имеется только одна 0/-резольвента в противоположность четырем Р/-резоль- вентам с использованием упорядочения предикатных символов. Определение. Пусть / — интерпретация некоторого мно- множества S упорядоченных дизъюнктов. Вывод из множества S называется 01-выводом, если каждый участвующий в нем упоря- упорядоченный дизъюнкт либо входит в S, либо является ОЛрезоль- вентой. Пример 6.16. Рассмотрим следующие упорядоченные дизъ- дизъюнкты: A) Q(a)VR(x), B) ~Q(x)V^(x), C) ~#(je)V~S(a), D) S(x). Пусть / — интерпретация, в которой каждая литера отрица- отрицательна. Тогда вывод, приведенный на рис. 17, является 0/-вы водом дизъюнкта □ из S. Пример 6.17. Рассмотрим множество S, состоящее из упо- упорядоченных дизъюнктов Q (a)VQ (fe)VQ (c)VQ (d) и ~Q(x), при- приведенное в примере 6.10. S противоречиво. Пусть / — интер- интерпретация, в которой любая литера отрицательна. Тогда вывод, R(x) S(x) ~R(a)v~S(a) &(x)vP(x) R(a)v~S(a) Рис. 18. изображенный на рис. 18, является 0/-выводом дизъюнкта □ из S. Были порождены только четыре упорядоченных 0/-резоль- венты. Если бы, однако, была использована Р/-резолюция, то метод насыщения уровня породил бы 40 Р/-резольвент до того, как мог быть найден □• Слэйгл и Нортон [1] экспериментировали с 0/-резолю- цией; их результаты указывают на то, что она весьма эффек- эффективна. Многие теоремы могут быть доказаны путем О/-резолю-
118 СЕМАНТИЧЕСКАЯ РЕЗОЛЮЦИЯ И ЛОК-РЕЗОЛЮЦИЯ [ГЛ. 6 ции; однако, к сожалению, О/-резолюция неполна1). Следующий контрпример приведен у Андерсона [1]. Пример 6.18. Рассмотрим следующее множество S упоря- упорядоченных дизъюнктов: A) PVQ, B) QVR, C) R\JW, D) E) F) Пусть / — интерпретация, в которой любая литера отрица- отрицательна. Таким образом, дизъюнкты A)—C) могут быть исполь- использованы как упорядоченные электроны, а дизъюнкты D) — F) — как упорядоченные ядра. Из дизъюнктов D) — F) мы можем получить следующие О/-резольвенты: G) R\JP из О/-клаша (C), A), E)), (8) P\/Q из О/-клаша (A), B), F)). Из дизъюнктов A) — (8) мы можем получить следующую 01- резольвенту: (9) Q\/R из О/-клаша (B), G), D)). Мы отмечаем, что дизъюнкты (8) и (9) не принадлежат S. Поэтому из дизъюнктов A) — (9) мы не можем породить ника- никаких новых 0/-резольвент. Иными словами, □ не может быть порожден с помощью 0/-резолюции. Однако S противоречиво. Следовательно, О/-резолюция неполна. § 6.7. Реализация семантической резолюции В этом параграфе мы рассмотрим реализацию /'/-резолю- /'/-резолюции. Хотя 0/-резолюция неполна, мы можем использовать по- понятие упорядоченного дизъюнкта для реализации Р/-резолюции. Мы назовем положительным упорядоченным дизъюнктом такой упорядоченный дизъюнкт, который вообще не содержит знака отрицания, и отрицательным упорядоченным дизъюнктом—такой упорядоченный дизъюнкт, в котором любая литера содержит знак отрицания. Неположительный (неотрицательный) упорядо- упорядоченный дизъюнкт — это упорядоченный дизъюнкт, не являющийся положительным (отрицательным). Чтобы избавиться от необхо- необходимости указывать интерпретацию каждый раз, когда исполь- используется Р/-резолюция, мы будем рассматривать только положи- положительную гиперрезолюцию. (Отрицательную гиперрезолюцию можно рассмотреть похожим образом.) Итак, нам нужно рас- х) См. п. 4 Дополнения В.—Прим. ред. S 6.7] РЕАЛИЗАЦИЯ СЕМАНТИЧЕСКОЙ РЕЗОЛЮЦИИ 119 сматривать в качестве электронов только положительные упо- упорядоченные дизъюнкты, а в качестве ядер — только неположи- неположительные. Мы принимаем соглашение о том, что во всех неполо- неположительных упорядоченных дизъюнктах все отрицательные литеры помещаются после положительных литер. Пусть S — некоторое множество упорядоченных дизъюнктов. Пусть Р — упорядочение предикатных символов из S. Следующий алгоритм может вычис- вычислять положительные гиперрезольвенты. Порождение положительных гиперрезольвент Шаг 0. Пусть М (соответственно N)— множество всех поло- положительных (соответственно неположительных) упорядоченных дизъюнктов из S. Шаг 1. Положить / = 1. Шаг 2. Пусть Ло = 0 и B0 = N. Шаг 3. Положить i = 0. Шаг 4. Если Л,- содержит П. то закончить: найдено проти- противоречие. В противном случае перейти к следующему шагу. Шаг 5. Если б,- пусто, перейти к шагу 8. В противном слу- случае перейти к следующему шагу. Шаг 6. Вычислить множество Wl + 1 = {упорядоченные резольвенты d с С2, где Сх есть упорядоченный дизъюнкт или упорядоченная склейка упорядо- упорядоченного дизъюнкта из М, а С2 есть упорядоченный дизъюнкт из Bit причем отрезаемая литера из Сх содержит «наибольший» предикатный символ из С\, а отрезаемая литера из Сг есть «последняя» литера в С2\. Пусть Л, + 1 (соответственно Bi + 1) — множество всех положи- положительных (соответственно неположительных) упорядоченных дизъ- дизъюнктов из Wi+1. Шаг 7. Положить i = i-\-l и перейти к шагу 4. Шаг 8. Положить Т = Ло и • • ■ U А{ и М = Т U М. Шаг 9. Положить j = j + 1. Шаг 10. Вычислить множество /? = {упорядоченные резольвенты Сх с С2, где С\ — упорядо- упорядоченный дизъюнкт или упорядоченная склейка упорядоченного дизъюнкта из Г, а С2 — упорядоченный дизъюнкт из N, причем отрезаемая литера из С1 содержит «наибольший» предикатный символ в Сх}. (Отметим, что в приведенном определении множества R отре- отрезаемая литера в С, может быть произвольной, а не обязательно последней литерой.) Пусть Ао (соответственно Во) — множество всех положительных (соответственно неположительных) упоря- упорядоченных дизъюнктов из R. Шаг П. Перейти к шагу 3. В описанном выше алгоритме В,- при каждом / в конце концов станет пустым, так как наибольшее число отрицатель-
120 СЕМАНТИЧЕСКАЯ РЕЗОЛЮЦИЯ И ЛОК-РЕЗОЛЮЦИЯ ГЛ. 6 $ 6.7 РЕАЛИЗАЦИЯ СЕМАНТИЧЕСКОЙ РЕЗОЛЮЦИИ 121 ных литер в любом упорядоченном дизъюнкте из В{ убывает на единицу при увеличении i на единицу. Все дизъюнкты в каж- каждом At являются положительными гиперрезольвентами. Нетрудно видеть, что если S противоречиво, то □ можно породить с по- помощью описанного алгоритма. Стратегия выбрасывания также может быть включена в этот алгоритм без потери свойства пол- полноты, т. е. для множеств Т и М, полученных на шаге 8 алго- алгоритма, любой дизъюнкт в Т или М, поглощаемый другими дизъюнктами из Т или М, может быть выброшен. (Отметим, что в Т 1) М нет тавтологий, так как все дизъюнкты из Т \J M положительны.) В следующем примере, однако, мы не исполь- используем стратегии выбрасывания. Пример 6.19. Пусть S — множество упорядоченных дизъ- дизъюнктов, заданное списком S = {Ps\/Pi, P5V-P4, Pi\/P1, ~PiV V~P2, P3\/~Pe, ~Л> P2\J~P&\/~P3). Для простоты мы обозначим Plt Рг, ..., Р6 соответственно через 1, 2, ..., 6. Поэтому S запишется в виде {6V4, 5V4, 4 Vl, ~1V~2, 3V V~6, ~4, 2V~5V~3}. Пусть Р — упорядочение предикатных символов, в котором 1 < 2 < 3 < 4 < 5 < 6. Из S мы получаем 4, 5V4, 4V4> ~2, 3V~6, ~4, 2V Теперь мы применяем описанный выше алгоритм» 1. /=1. a) Л„ = 0, 5o = yV = {~l\/~2, 3V~6, ~4, 2V~5V~3}. b) Так как Ао не содержит □ и В, непусто, мы применяем шаг 6 и получаем , 1}, A, ={4V3, 1}, Bt =0. с) Так как Вх пусто, мы переходим к шагу 8 и полагаем Т ==Л0иЛ1 = {4уЗ, 1}, М = Г1_Ш = {4\/3, 1, 6V4, 5V4, 4V1}. 2. 1 = 2. a) Вычисляя R, получаем R = {3, ~2}. Из R получаем А0={3}, Я„ = {~2}. b) Так как Ао не содержит □ и В„ непусто, применяем шаг 6 и получаем №1 = 0, А1=0, В1 = 0. c) Так как Вх пусто, полагаем Т =А}[)А1 = {3\, М = 7 UiM = {3, 4V3, 1, 6V4, 5V4, 4VU- 3. / = 3. / = 3. а) Применяем шаг 10, мы получаем # = {2V~5}, Ao=-0, {25} S0 = {2V~5}. b) Так как Ао не содержит □ и Во непусто, применяем шаг 6 и получаем W1 = {4V2}) А1 = {4\/2}, В1 = 0. c) Так как Вх пусто, полагаем Т =Л0иЛ1 = {4у2}, M = TUM = {4V2, 3, 4V3, 1, 6V4, 5V4, 4V1}. 4. / = 4. a) Применяя шаг 10, мы получаем R = {2\, Ао = {2\, Во= 0. b) Так как Во пусто, полагаем Т~А0 = {2\, M = TUM = {2, 4V2, 3, 4V3, 1, 6V4, 5V4, 4V1}. 5. / = 5. a) Применяя шаг 10, получаем i? = {~l}, Ло = 0, Бо = {~1}. b) Так как Ао не содержит П и Во непусто, применяем шаг 6 и получаем Wl = {B\, Л1 = {П}, Вх = 0. c) Так как Аг содержит П, заканчиваем применение алго- алгоритма: получено противоречие. Мы породили шесть положительных гиперрезольвент, а именно П, 2, 4V2, 3, 4V3 и 1. Чтобы получить гипервывод дизъюнкта П. мы сначала про- пролеживаем предков этого дизъюнкта на рис. 19, который затем 4v) 4V) 1V~2 Рис. 20. легко преобразуется в гипервывод дизъюнкта П. изображенный на рис. 20. Отметим, что все гиперрезольвенты, порожденные этим алгоритмом, используются в доказательстве. В этом при- примере алгоритм не породил резольвент, не относящихся к делу или устранимых.
122 СЕМАНТИЧЕСКАЯ РЕЗОЛЮЦИЯ И ЛОК-РЕЗОЛЮЦИЯ [ГЛ. 6 § 6.8. Лок-резолюция х) Лок-резолюция введена Бойером [1]. Это—уточнение резо- резолюции, использующее понятие, аналогичное понятию упорядо- упорядоченного дизъюнкта. Идея лок-резолюции состоит, по существу, в использовании индексов для упорядочения литер в дизъюнктах из данного множества S дизъюнктов. Иными словами, она вклю- включает индексацию каждого вхождения литеры в S некоторым целым числом; разные вхождения одной и той же литеры S могут быть индексированы по-разному. После этого отрезать разрешается только литеры с наименьшим индексом в каждом из дизъюнктов. Литеры в резольвентах наследуют свои индексы из посылок. Если литера в резольвенте может унаследовать более одного индекса, то ей ставится в соответствие наименьший индекс. Перед тем, как дать формальное определение лок-резолюции, рассмотрим следующий пример. Пример 6.20. Рассмотрим следующие два дизъюнкта: A) i B) s Целое число, помещенное под литерой,— это индекс, постав- поставленный в соответствие этой литере. Литеры Р и Q в дизъюнкте A) имеют соответственно, индексы 1 и 2. Мы будем использовать jP, 2Q и з~Р> tQ для указания литер Р, Q и ~Р, Q в дизъюнк- дизъюнктах A) и B). Так как индекс ХР ниже, чем 2Q, то разрешено отрезать ХР. Аналогично, так как индекс 3~Р ниже, чем 4Q, можно отрезать з~^*- Таким образом, применяя правило резо- резолюции к дизъюнктам A) и B) по ХР и 3~Р> мы получаем сле- следующий дизъюнкт: C) Литера 2Q и 4Q одна и та же. Так как 2 меньше, чем 4, Q получает индекс 2. Поэтому мы получаем D) 2Q. Дизъюнкт D) называется лок-резольвентой дизъюнктов A) и B). Отметим, что если бы литеры в дизъюнкте B) были индек- индексированы иначе, а именно B*) 4~PV3Q, то литерой в дизъюнкте B), которую разрешено отрезать, была бы 3Q. Однако к 1Р и 3Q нельзя применить правило резолюции. Поэтому не существует лок-резольвенты дизъюнктов A) и B*). Определение. Пусть С—дизъюнкт, в котором каждая из литер индексирована целым числом. Если две или более литер См. п. 5 Дополнения В.— Прим. ред. § 6.8: ЛОК-РЕЗОЛЮЦИЯ 123 (одного знака) в С имеют наиболее общий унификатор ст, то дизъюнкт, получаемый из Сет выбрасыванием каждой литеры, совпадающей с литерой более низкого индекса, называется лок- склейкой дизъюнкта С. Пример 6.21. Пусть С = 2P(x)V8Q (а) V цР{а) V 6 Q{x). Лите- Литеры 2Р(х) и иР(а) имеют наиболее общий унификатор ст = {а/х}, т. е. Co = 2P(a)\/sQ(a)\/llP(a)\/bQ(x). В Со, с точностью до индекса, 2Р{а) совпадает с пР(а). Так как цР(а) имеет более высокий индекс, чем 2Р(а), выброшена будет UP(а). Аналогично, так как eQ{a) имеет более высокий индекс, чем5<2(а), выброшена будет sQ(a). Поэтому, выбрасывая цР(а) и sQ(a), мы получим 2Р(а)\'5Q(a), который является лок-склейкой дизъюнкта С. Если в некотором дизъюнкте имеется несколько вхождений одной и той же литеры, то мы всегда сохраняем только литеру с самым низким индексом и выбрасываем все остальные совпа- совпадающие с ней литеры. Эта операция называется отождествлением вниз для совпадающих литер. Так в приведенном выше примере мы отождествили вниз 2Р(а) и цР(^), а также sQ(a) и &Q(a). Определение. Пусть d и С2—два дизъюнкта без общих переменных, в которых все литеры индексированы. Пусть Lx и L2 — литеры с «самыми низкими» индексами в С1 и С2 соответ- соответственно. Если Z.J и ~ L2 имеют наиболее общий унификатор ст и если С—дизъюнкт, полученный из {С^Х/С^а) удалением Lxo и L2ct с последующим отождествлением вниз для всех совпадаю- совпадающих литер в остающемся дизъюнкте, то С называется бинарной лок-резольвентой Сх и С2. Литеры Lx и £2 называются отрезае- отрезаемыми литерами. Пример 6.22. Рассмотрим дизъюнкты С1 = 1Р(х)\/ 2Q (x)\/3R(x) и С2 = 4~ Р (a)V5Q (a)- Так как хР(х) и 4~ Р(а) имеют самые низкие индексы соответственно в С\ и С2, мы выбираем Ll= P(x) и L2=~P(a). Литеры Lt и ~ L2 имеют наиболее общий уни- унификатор а = {а/х}. Поэтому (C1o\/C2o) = 1P{a)\/iQ(a)\/3R(a)\/ V4~ P(a)VbQ (а)- Удаляя Lxa и L2ct, т. е. xP(a) и 4~Р(а), из (C1ctVC2(T). MbI получаем 2Q (a)\/3R(a)\/bQ(a). Теперь 2Q(o) и bQ(a)—совпадающие литеры с разными индексами. Отождест- Отождествляя вниз литеры ?Q(a) и 5Q (a) в 2Q(a)V3#(a)V5Q (a)> мы полу- получаем дизъюнкт 2Q (a)\/sR(a), который является бинарной лок- резольвентой d и С2. Отрезаемые литеры хР(х) и 4~Р(а). Определение. Пусть С1 и С2—два дизъюнкта, в которых все литеры индексированы. Лок-резольвента Сх и С2 — это одна из следующих бинарных лок-резольвент: 1) бинарная лок-резольвента С1 и С2; 2) бинарная лок-резольвента Сх и лок-склейки С2; 3) бинарная лок-резольвента лок-склейки С1 и С2; 4) бинарная лок-резольвента лок-склейки С1 и лок-склейки С2. Определение. Пусть S—множество дизъюнктов, в кото- котором каждая литера индексирована целым числом. Вывод из мно-
124 СЕМАНТИЧЕСКАЯ РЕЗОЛЮЦИЯ И ЛОК-РЕЗОЛЮЦИЯ ГЛ. 6 жества S называется лок-выводом тогда и только тогда, когда любой дизъюнкт в этом выводе является либо членом S, либо лок-резольвентой. Пример 6.23. Рассмотрим'следующее множество S дизъюнк- дизъюнктов: A) 1P\/,Q, B) sPVi-Q, CN~/>V5Q, D)8~PV,~Q. Из дизъюнктов A)—D) можно получить только одну лок- резольвенту: E) 6~ Р из C) и D). Из дизъюнктов A) — E) получаются только две лок-резоль венты: F) 2Q из A) и E), G) 4~Q из B) и E). Наконец, применяя правила резолюции к дизъюнктам F) и G), мы получаем (8) П. Таким ^образом, мы получаем вывод пустого дизъюнкта П, показанный на рис. 21. Отметим, что были порождены всего три лок-резольвенты. Однако если бы была использована обычная (неограниченная) резолюция, то по методу насыщения уровня до получения П были бы порождены 37 резольвент (см. § 5.8). Пример 6.24. Рассмотрим следующее множество дизъюнктов: A) B) C) D) E) a)V ,P{f{y), у), d)\J гР(у, f(y)), У)У sP(f(y), y), У)У *Р(У, f(y)), y)V7~P(y, a). 6.9 ПОЛНОТА ЛОК-РЕЗОЛЮЦИИ 125 Из S мы можем получить следующий лок-вывод дизъюнкта □'• F) G) (8) (9) A0) A1) bP(a, a)\/10~P(x, f(a)) ~P(x, а)\/10~Р(у, f(a)) P f лок-резольвента A)иE), , )/10(у f()) лок-резольвента C) и E), , f(a))\/10~P(y, f(a)) лок-резольвента F) и G), (8) B) sP{a, а) Р(х, а) ( лок-резольвента (8) и B), лок-резольвента (8) и D), лок-резольвента (9) и A0). § 6.9. Полнота лок-резолюции В этом параграфе мы докажем полноту лок-резолюции. Как обычно, сначала будет доказана полнота лок-резолюции для основного случая, которая затем будет «поднята» до общего слу- случая. Произвольный частный случай дизъюнкта С, в котором индексированы все литеры, получается с помощью подстановок вместо переменных и последующего отождествления вниз для совпадающих литер. Иными словами, если a—подстановка, то мы сначала получаем Сет, а затем отождествляем вниз совпадаю- совпадающие литеры в Со для получения частного случая дизъюнкта С. Пусть, например, С = 1Р(х)\/2Р(у). Если о = {а/х, а/у}, то соот- соответствующим частным случаем С является iP(a). При таком соглашении следующая лемма очевидна. Мы предоставляем ее доказательство читателю. (Использовать лемму 5.1.) Лемма 6.2. Пусть С1 и С2—два дизъюнкта, в которых все литеры индексированы. Если С[ и С'2 являются частными случаями соответственно дизъюнктов С1 и С2 и если С есть лок-резоль- лок-резольвента С[ и С'2, то имеется лок-резольвента С дизъюнктов Сг и С2 такая, что С есть частный случай С. Теперь мы докажем полноту лок-резолюции для основного случая. Лемма 6.3. Пусть S — некоторое множество основных дизъюнк- дизъюнктов, причем все литеры в S индексированы целыми числами. Если S противоречиво, то имеется лок-вывод пустого дизъюнкта □ из S. Доказательство. Пусть k(S) равно по определению сум- суммарному числу вхождений литер в S минус количество дизъюнк- дизъюнктов в S. В работе Андерсона и Бледсоу [1J число k(S) называется избытком литер. Мы докажем лемму 6.3 индукцией по k(S). Если □ принадлежит S, лемма 6.3 очевидна. Предпо- Предположим, что □ не принадлежит S. Если &(S) = 0, то S состоит из одних только единичных дизъюнктов. Так как S противо- противоречиво, имеется литера L такая, что ,-L и ;~L принадлежат S, где i и / — индексы литер ,L и ;-~Z, соответственно. Очевидно, что □ есть лок-резольвента ,L и у-~£- Таким образом, лем- лемма 6.3 верна при k(S) = O. Предположим, что лемма 6.3 верна для k(S)<n. Для завершения индукции мы рассмотрим случай, когда k(S) = n и п > 0. Так как k(S) > 0, в множестве S
126 СЕМАНТИЧЕСКАЯ РЕЗОЛЮЦИЯ И ЛОК-РЕЗОЛЮЦИЯ ГЛ. 6 имеется хотя бы один неединичный дизъюнкт. Пусть г — наиболь- наибольший индекс, имеющийся в неединичных дизъюнктах из S. Пусть С = С'\/rL — неединичный дизъюнкт, в котором имеется литера rL с индексом г, причем С"— непустой дизъюнкт. Пусть Sx = = (S-{C})U{C'\ и S2 = (S-{C})U{rL}. Очевидно, что S, и S2 в отдельности противоречивы. Однако k(S1)<n и &(S2)<n. Следовательно, по индукционному предположению имеются лок- выводы D[ и D2 пустого дизъюнкта □ из S1 и S2 соответственно. Пусть £>! — вывод, получаемый из D[ путем возвращения rL назад в С". Очевидно, что D'—снова лок-вывод, так как г — наивыс- наивысший индекс в дизъюнктах, помещенных в любой неначальный узел из Dt. D1 является лок-выводом дизъюнкта П или rL из множества S. Если верно первое, то все уже в порядке. Если верно второе, то, сочетая Dt и D2, мы получаем лок-вывод дизъюнкта П из S. Это завершает доказательство леммы 6.3. Теорема 6.3 (полнота лок-резолюции). Пусть S — множество дизъюнктов, в котором каждая литера индексирована целым числом. Если S противоречиво, то имеется лок-вывод пустого дизъюнкта □ из S. Доказательство. Так как S противоречиво, то по вто- второму варианту теоремы Эрбрана имеется конечное противоречи- противоречивое множество S' основных частных случаев дизъюнктов из S. По лемме 6.3 имеется лок-вывод D' дизъюнкта □ из S'. Исполь- Используя лемму 6.2 и прием, аналогичный использованному в дока- доказательстве теоремы 6.1, мы можем перестроить D' так, чтобы получить лок-вывод дизъюнкта □ из S. Это завершает доказа- доказательство. Хотя лок-резолюция полна сама по себе, она несовместима с большинством других стратегий (см. Б ой ер [1]). Например, сочетание лок-резолюции и стратегии выбрасывания неполно1). Лок-резолюция несовместима также со стратегией поддержки (см. упражнения 20 и 21 к этой главе). Лок-резолюция—очень ограничительное уточнение резолюции. Бойер привел много при- примеров, чтобы показать, что лок-резолюция—действительно очень ффгктивног правило вывода. ЛИТЕРАТУРА А н д"е р с о н (Anderson R.) 1. SIGART Newsletter.—October 1971. Андерсон и Бледсоу (Anderson R., Bledsoe W. W.) 1. A linear format for resolution with merging and a new technique for establishing completeness.— J. Assoc. Comput. Mach., 1970, 17, p. 525—534. x) Неполно даже сочетание лок-стратегии со стратегией избегания про- противоречивых дизъюнктов. О целесообразности использования лок-стратегии и о выборе индексации, повышающей ее сочетаемость с другими стратегиями, см. п. 5 Дополнения В.—Прим. ред. упражнения 127 Бойер (Boyer R. S.) 1. Locking: A Restriction of Resolution: Ph. D. Thesis.—University of Texas at Austin, Texas, 1971. Ковальский и Кюнер (Kowalski R., Kuehner D.) 1. Linear resolution with selection function.—Artificial Intelligence, 1971, 2, p. 227—260. Лав ленд (Loveland D. W.) 1. A linear format for resolution.—Proc. IRIA Symp. Automatic Demonst- Demonstration, Versailles, France, 1968. N. Y., 1970, p. 147—162. 2. Some linear Herbrand proof procedures; an analysis.—Dept. of Compu- Computer Science, Carnegie-Mellon University, 1970'. 3. A unifying view of some linear Herbrand procedures.— J. Assoc. Comput. Mach., 1972, 19, p. 366—384. Лакхем (Luckham D.) 1. Refinements in resolution theory.— Proc. IRIA Symp. Automatic Demonst- Demonstration, Versailles, France, 1968. N. Y., 1970, p. 163-190. Мельцер (Meltzer B.) 1. Theorem-proving for computers: some results on resolution and renaming.— Computer J., 1966, 8, p. 341—343. Рейтер (Reiter R.) I. Two results on ordering for resolution with merging and linear format.— J. Assoc. Comput. Mach., 1971, 18, p. 630-646. Робинсон (Robinson J. A.) 1. Automatic deduction with hyper-resolution.— Internet. J. Comput. Math., 1965, 1, p. 227—234. С л э й г л (Slagle J. R.) 1. Automatic theorem proving with renamable and semantic resolution.— J. Assoc. Comput. Mach., 1967, 14, p. 687—697. Слэйгл и Нортон (Slagle J. R., Norton L.) 1. Experiments with an automated theorem prover having partial ordering rules.—Division of Computer Research and Technology, National Inst. Health, Bethesda, Maryland, 1971. Уос, Робинсон Г. и Карсон (Wos L., Robinson G. A., Carson D. F.) 1. Efficiency and completeness of the set of support strategy in theorem proving.— J. Assoc. Comput. Mach., 1965, 12, p. 536—541. УПРАЖНЕНИЯ К § 6.3 1. Определить, образуют ли Р/-клаши следующие множества дизъюнктов, интерпретации и упорядочения атомов. Если да, то найти Pi-резольвенты. Если нет — обосновать. (a) Е1 = Р, E2 = Q, E3 = R, N= ~ Pv ~ Q v ~ R V~ W; I ={~P, ~Q, ~R, W); P <Q < R<W. (b) E1 = A1vA3, E2 = A2vA3, N = ~ A^ ~ A2\/A3; J ={-,4^ ~Л2> ~Л8}; Аг> А2 > As. (c) E1 = A1vA3, E2 = A2vA3, yV = I ={~ЛЬ ~Л2, ~А3}; A > A > A (d) eI=p\o), E2 = Q(a, b)\/S(b, c), N = ~ P (x)v~ Q (*, </)V R (x)\ I ={~P(a),P (b), ~ Q (a, b), ~ S (b, с), ~ R (a)}; P > Q > R >S. 2. Доказать следующую теорему. Для случая основных дизъюнктов ядро 'N Р/-клаша истинно в /, а для общего (неосновного) случая сущест- существует хотя бы один частный случай W ядра N, истинный в /.
128 СЕМАНТИЧЕСКАЯ РЕЗОЛЮЦИЯ И ЛОК-РЕЗОЛЮЦИЯ ГЛ. 6 3. Пусть 5 = {Р, Qv~P, Rv~P, ~ Pv~ Qv~ мощью семантической резолюции, что 5 противоречиво. Рассмотреть следующие случаи: (a) 1 = {~Р, ~Q (b) / = {Р, Q, R}, Q > (c) / = {~Р, ~Q, Я}, Доказать с по- по■я Р > Q> R; > R; >Q>P. К § 6.4 4. Доказать теорему 6.1, используя семантические деревья, т. е. метод, описанный в доказательстве теоремы 5.3. (Заглянуть в работу Коваль- Ковальского и Хейеса [1].) 5. Доказать, что стратегия выбрасывания совместима с Р/-резолюцией, т. е. комбинация стратегии выбрасывания и Р/-резолюции полна. К § 6.5 6. Пусть 5 = {PvQ, ~PvQ, Pv~Q, ~Pv~Q}. Пусть P > Q. Дока зать противоречивость 5 с помощью (а) положительной гиперрезолюции и (Ь) отрицательной гиперрезолюции. 7. Рассмотрим пример 5.16. В этом примере мы имеем следующее мно- множество 5 дизъюнктов: S = {~T(x, у, и, v)vP(x, у, и, v), ~Р(х, у, и, v)y vE(x, у, v, и, v, у), Т (а, Ь, с, d), ~ Е (а, Ь, d, с, d, b)}. Доказать противоречивость 5 с помощью (а) положительной гиперрезолюции, (Ь) отрицательной гиперрезолюции. Переведите каждый шаг этих доказа- доказательств на русский язык. Который из выводов соответствует рассуждению «прямой волной» (рассуждению «обратной волной»)? 8. Пусть дано множество A) М(а, s(c), s(b)), B) Р(а), C) М (х, х, s (х)), D) ~ М (х, у, z)v М(у, х, z), E) ~ М (х,- у, z)vD (x, z), F) ~P(x)v~M(y, z, u)v~D(x, u)v D (x, y)v D (x, z), G) ~£>(a, b). Пусть множество поддержки состоит из единственного дизъюнкта G). Дока- Доказать противоречивость 5 с помощью стратегии поддержки. 9. Рассмотрим снова пример 5.21. Мы имеем следующее множество дизъ- дизъюнктов: I'(x,y), Пусть множество поддержки состоит из дизъюнктов D) и E). Доказать про- противоречивость указанного выше множества дизъюнктов. Переведите все дока- доказательство иа русский язык. К § 6.6 10. Рассмотрим следующее множество упорядоченных дизъюнктов: S = {P v Q,~PvQ, Pv~Q,~Pv~Q}. Пусть / = {Р, Q}. Доказать с помощью О/-резолюцнн, что 5 противоречиво П. В примере 6.18 мы привели контрпример, показывающий, что О/-ре- золюция неполна. Можете ли вы дать другой контрпример? A) B)' C)' D) E) P -D ~P D Q (a), (</) (x) F) F) V V L (a, </), ~QQ/)v упражнения 129 К § 6.7 12. Пусть 5 = {~Р V~QV~R,P,Q, R}. (a) Использовать алгоритм, упомянутый в § 6.7, для доказательства про- противоречивости множества 5. (b) Использовать вновь тот же алгоритм, но без понятия упорядоченного дизъюнкта, т. е. не вводить на шаге 6 ограничения: отрезаемая литера в С2 — последняя в С2. (c) Сравнить количество дизъюнктов, порожденных в каждом из этих случаев. 13. Использовать алгоритм из § 6.7 для доказательства теорем приме- примера 5.21 и примера 5.22 (Ь). 14. Показать, что если множество 5 упорядоченных дизъюнктов противо- противоречиво, то дизъюнкт □ можно породить с помощью алгоритма из § 6.7. К § 6.8 15. Пусть 5 = {Р, Q, R, W, ~ Р V ~ Q V ~ R V ~ Щ. (a) Сколько резольвент будет порождено из 5 методом насыщения уровня до того, как □ будет порожден с помощью обычной резолюции? (b) Назначить индексы литерам из 5. Если используется лок-резолюция, то сколько лок-резольвент будет порождено из 5 методом насыщения уровня до того, как будет порожден □? (c) Сравнить количество дизъюнктов, порожденных в каждом из этих случаев. 16. Рассмотрим множество S дизъюнктов, приведенное в примере 6.18. Назначим индексы литерам из 5 следующим образом: A) C) E) 7Р V iQ, aR V 3W, B) D) F) V tR, Я V t~ Q V , Вывести пустой дизъюнкт Q из 5 с помощью лок-резолюции. 17. Рассмотрим множество дизъюнктов (взятое из примера 5.22): A) !~£(x)v,V(x) v^(x,/(x)), B) 4~£(x)v,V(x)v,Ctf(x)), C) ,P (a), D) ,£(fl). E) ,~S(fl,v)Vi,P(»), F) n~ P (X) V 12~ V (X), G) i3~P(*)Vi4~C(x). Вывести из этого множества пустой дизъюнкт □ с помощью Лок-резолюции. К § 6.9 18. Доказать лемму 6.2. 19. Для произвольного множества 5 дизъюнктов (a) описать такой метод индексации всех литер из S, что множество всех лок-резольвеит, порожденных из 5, равно множеству всех обычных резоль- резольвент, порожденных из 5, т. е. промоделировать резолюцию лок-резолюцией; (b) промоделировать положительную гиперрезолюцию лок-резолюцией. 20. Привести контрпример, показывающий, что комбинация стратегии выбрасывания и лок-резолюции неполна. 21. Привести контрпример, показывающий, что комбинация стратегии под- поддержки и лок-резолюции неполна. 5 Ч. Чень, Р. Ли
ГЛАВА 7 ЛИНЕЙНАЯ РЕЗОЛЮЦИЯ § 7.1. Введение Доказывая равенство, мы часто начинаем с его левой части, применяем к ней правило вывода для получения какого-то дру- другого выражения, затем снова применяем некоторое правило вывода к только что полученному выражению и т. д. до тех пор, пока левая часть не совпадет с выражением в правой части равенства. Идея линейной резолюции аналогична такого рода цепочке рассуждений. Линейный вывод начинается с некоторого дизъюнкта, применяет к нему и некоторому другому дизъюнкту правило резолюции для получения резольвенты и применяет резолюцию к этой резольвенте и некоторому дизъюнкту, пока не будет получен пустой дизъюнкт □• 2: Особую привлекательность линейному выводу придает его простая структура. Далее, линейная резолюция полна и совмес- совместима со стратегией поддержки1). Кроме того, ниже будет пока- показано, что вместе с ней удобно применять эвристические методы. Линейная резолюция была независимо предложена Лав лен- лендом [4] и Лакхемом [1]. Она была позднее усилена Андер- Андерсоном и Бледсоу [1], Ейтсом, Рафаэлем и Хар- том [1], Рейтером [1], Лавлендом [6], а также Коваль- Ковальским и Кюнером [1]. В этой главе мы рассмотрим вариант, описанный Ковальским и Кюнером [1] и Лавлен- Лавлендом [4], так как его легко реализовать на ЭВМ. § 7.2. Линейная резолюция Определение. Для данного множества 5 дизъюнктов и дизъюнкта Со из 5 линейный вывод дизъюнкта Сп (исходя) из множества S с верхним дизъюнктом Со—это вывод, имеющий вид, изображенный на рис. 22, где: 1) для / = 0, 1, ..., п — 1 дизъюнкт С,-+1 есть резольвента дизъюнкта С{ (называемого центральным дизъюнктом) и Bt (назы- (называемого боковым дизъюнктом), причем 2) каждый Bt либо принадлежит 5 либо есть Су для некото- некоторого / < I. х) Линейная резолюция полна в гораздо более ограниченном смысле, чем стратегии предыдущей главы. Это порождает сильные сомнения в целесооб- целесообразности линейной резолюции. См. п. 1 Дополнения В.— Прим. ред. 7.2 ЛИНЕЙНАЯ РЕЗОЛЮЦИЯ 131 Пример 7.1. Пусть 5 = {PyQ. ~ Р V Q, PV~Q, ~Р V~Q}- Тогда рис. 23—линейный вывод дизъюнкта П из 5 с верхним дизъюнктом Р V Q- Имеется четыре боковых дизъ- PvQ.0 Pvg Рис. 22. Рис. 23. юнкта. Три из них принадлежат 5, а четвертый (подчеркну- (подчеркнутый) Q — резольвента, выведенная перед тем, как получен П- Пример 7.2. Рассмотрим множество дизъюнктов 5 = = {М{а, s(c), s(b)),P(a),M{x,x, s(x)), ~ M{x,y, z)\j M{y, z, x) ~P(w) v~M(x,y,z) v~D(w,z) vD(w,x) vB. (w,y) Рис. 24. ~M(x, у, z)\/D(x, г), ~D(a, b), ~P{x)\J~ M{y, z, u)\J V~D{x, u) V D(x, y) \/ D(x,z)\. Рис. 24 —линейный вывод дизъ- дизъюнкта □ из S. Линейный вывод, введенный в этом параграфе, является пер- первоначальным вариантом и позднее будет модифицирован в OL- вывод, рассматриваемый в § 7.4. Доказательство полноты линей- линейной резолюции дано в § 7.5. 5* Зак. 112
132 ЛИНЕЙНАЯ РЕЗОЛЮЦИЯ ГЛ. 7 § 7.3. Входная резолюция и единичная резолюция Когда мы рассматриваем уточнение резолюции, нам хочется, чтобы оно было полным, т.е. гарантировало выводимость пустого дизъюнкта из любого противоречивого множества дизъюнктов. Однако при автоматическом доказательстве теорем важна также эффективность (в смысле затрачиваемого времени или памяти). Мы можем иногда захотеть поступиться полнотой ради эффек- эффективности. Иными словами, имеются уточнения резолюции, кото- которые эффективны, но неполны. Уточнение резолюции может оказаться полезным, несмотря на свою неполноту, если оно эффективно и достаточно мощно для того, чтобы доказать боль- большой класс теорем. В этом параграфе мы рассмотрим некоторые неполные, но эффективные уточнения резолюции, а именно вход- входную резолюцию и единичную резолюцию. Входная резолюция — подслучай линейной резолюции. Ее гораздо легче реализовать, и она эффективнее чем линейная резолюция, хотя и неполна. Мы покажем, что входная резолюция эквивалентна единичной резо- резолюции. Иными словами, теоремы, доказуемые с помощью вход- входной резолюции, доказуемы также с помощью единичной резолю- резолюции и обратно. Для данного исходного множества S дизъюнктов мы назовем каждый член множества S входным дизъюнктом. Определение. Входная резолюция—это применение пра- правила резолюции, в котором одна из двух посылок—входной дизъ- дизъюнкт. Входной вывод (называемый иногда S-входным выводом для явного указания входного множества S)—это вывод, в котором любое применение резолюции является входной резолюцией. Входное опровержение—это входной вывод дизъюнкта □ из S. Входной вывод в действительности является линейным выво- выводом, в котором любой боковой дизъюнкт является входным дизъ- дизъюнктом, а потому это подслучай линейного вывода. Пример 7.3. Рассмотрим следующее множество дизъюнктов: ~ Р {х, у, и) V ~ Р (У, г, v)\J~P {х, v,w)y P (и, г, а»), Р(ё(х, У), х, у), Р (х, h(x, у), у), ~Р (*(*), х, k(x)). На рис. 25 изображено входное опровержение из этого мно- множества. Определение. Единичная резолюция—это резолюция, в которой по крайней мере одна из посылок—единичный дизъюнкт или единичная склейка некоторого дизъюнкта. Единичный вывод — это вывод, в котором любая резолюция является единичной резо- резолюцией. Единичное опровержение—это единичный вывод дизъ- дизъюнкта □ > §7.3 ВХОДНАЯ РЕЗОЛЮЦИЯ И ЕДИНИЧНАЯ РЕЗОЛЮЦИЯ 133 Единичная резолюция—это по существу обобщение одноли- терного правила Девиса и Патнема (см. § 4.6) на логику первого порядка. Это правило особенно важно потому, что для^ получе- получения дизъюнкта □ из данного множества дизъюнктов мы должны ~P(x,i/,u)v~P(u,z,v)v~P(x,v,u>)vP(uj,w) J J о j>P(g(x,y),x,y) P(g(x,y),x,y) P(x,f>(x,y),y) ~P(y,z,u)y~P(gly,u), v,w) v P(u, z,w) ,z,v)v P(w,2,u>) P(W,f>(V,U),W) a Рис. 25. последовательно получать более короткие дизъюнкты, а единич- единичная резолюция дает способ быстрого продвижения к более корот- коротким дизъюнктам. Единичная резолюция интенсивно применялась Уосом, Карсоном и Г. Робинсоном [1]. Мы докажем теперь, что единичная резолюция и входная резолюция эквива- эквивалентны (Ч ен ь [1]). Лемма 7.1. Для данного множества S основных дизъюнктов единичное опровержение имеется тогда и только тогда, . когда имеется входное опровержение. Доказательство. Лемма 7.1. доказывается по индукции. Пусть А—множество атомов для S. Если А состоит из единст- единственного элемента (который мы обозначим через Q), то среди элементов множества S имеются единичные дизъюнклы Q. и ~Q. Очевидно, что резольвентой Q и ~Q является пустой дизъ- дизъюнкт □ • Получающийся вывод является как единичным, так и входным опровержением. Следовательно, лемма 7.1 справедлива для этого случая. Предположим, что лемма 7.1 верна, когда А cogtoht из i элементов, 1 ^t ^п. Для завершения индукции мы рассмотрим случай, когда А состоит в точности из п+ 1 эле- элемента. (=Ф) Если имеется единичное опровержение из 5, то 5 должно содержать хотя бы один единичный дизъюнкт L, где L—литера. Пусть 5'—множество, получаемое из S выбрасыванием дизъюнк- дизъюнктов, содержащих литеру L, и выбрасыванием ~L из остальных дизъюнктов. Так как имеется единичное опровержение из S, то очевидным образом должно существовать единичное опроверже- опровержение из S'. (Доказательство этого утверждения предоставляется читателю в качестве упражнения.) Но S' содержит п или менее
134 ЛИНЕЙНАЯ РЕЗОЛЮЦИЯ ГЛ. 7 атомов. По индукционному предположению имеется S'-входное опровержение D'. Пусть D—вывод, получаемый из D' путем возвращения литеры ~L назад в дизъюнкты, из которых она была выброшена. Пусть Т—дизъюнкт, помещенный в корень вывода D. Очевидно, что D является 5-входным выводом Т из 5. Дизъ- Дизъюнкт Т—это □ или ~ L. Если Т есть П, все уже сделано. Если Т есть ~ L, то мы получаем □ путем резолюции с L, который является входным дизъюнктом. Таким образом, опровер- опровержение, полученное из D и правила резолюции, примененного к Т и L, является входным опровержением из S. Поэтому мы завершили доказательство первой части леммы 7.1. (Ф=) Обратно, если имеется входное опровержение из S, то 5 должно содержать хотя бы один единичный дизъюнкт L, где L — литера (такова, например, входная посылка последнего примене- применения резолюции.— Прим. перев.). Положим S' = {5 U [Res (С, L) | С £ S]}—все дизъюнкты, содержащие L или ~ L), где Res (С, L) обозначает резольвенту дизъюнктов С и L. Так как имеется 5-входное опровержение из S, то должно найтись S'-вход- S'-входное опровержение из S'. Но S' содержит п или менее атомов. По индукционному предположению имеется единичное опровер- опровержение из S'. Однако каждый дизъюнкт из S' является либо членом S, либо резольвентой, полученной применением единич- единичной резолюции к дизъюнкту L и некоторому дизъюнкту из S. Поэтому имеется единичное опровержение из S. Это завершает доказательство второй половины леммы 7.1. Теорема 7.1 (эквивалентность входной и единичной резо- резолюции). Для данного множества S дизъюнктов единичное опро- опровержение имеется тогда и только тогда, когда имеется входное опровержение. Доказательство. (=Ф) Если имеется единичное опровер- опровержение Dj из множества S, то из Dt мы можем получить основ- основное единичное опровержение D[, заменяя дизъюнкт С, помещен- помещенный в узел вывода Dlt на подходящий основной частный случай С" дизъюнкта С. Пусть S'—множество основных дизъюнктов, поме- помещенных в начальные узлы вывода D[. По лемме 7.1 имеется вход- входное опровержение D'2 из S'. Из D'2 мы можем получить входное опровержение D2 из S, используя лемму о подъеме (лемма 5.1). (ф=) Доказательство второй половины леммы 7.1 получается из доказательства первой половины путем замены слова «вход- «входное» на «единичное» и наоборот. Для данного множества 5 дизъюнктов, имеющего входное опровержение, мы можем по лемме 7.1 получить □ из S, при- применяя единичную резолюцию. Так как единичную резолюцию легче применять, чем входную, мы реализовали только единичную §7.4 ИСПОЛЬЗОВАНИЕ УПОРЯДОЧЕННЫХ ДИЗЪЮНКТОВ 135 Pv~H резолюцию. Программа на языке ЛИСП, реализующая единичную резолюцию, описана в Приложении А. Было показано, что эта программа весьма эффективна. § 7.4. Линейная резолюция, использующая упорядоченные дизъюнкты и информацию об отрезанных литерах Мы можем усилить линейную резолюцию, вводя в нее два понятия. Одно из них—понятие упорядоченного дизъюнкта. Как отмечено в главе 6, включение этого понятия в семантическую резо- резолюцию значительно усиливает эффективность. Мы обнаружим позд- позднее, что это верно также и для линейной резолюции. Далее, в противоположность случаю семантической резолюции, включение понятия упорядоченного дизъюнкта в линейную резолюцию не разрушает ее полноты. Другое понятие использует информацию об отрезанных литерах. В действительности информация, кото- которую дают эти литеры, весьма полезна. Как обнаружил Лав ленд [1], [2], [6], а также Ковальский и Кюнер [1], эту информацию можно использовать для улучшения линейной резолюции. Перед тем как ввести механизм ис- использования информации об отрезанных литерах, изучим сначала один довольно простой случай. Рассмотрим следующее множество дизъюнктов: S={P\/Q, P\/~Q, ~PVQ, ~PV~Q}. Рис. 26 изоб- изображает линейное опровержение из S. Заметим, что один из боковых дизъюнк- дизъюнктов (дизъюнкт Р) не является входным дизъюнктом. В действительности легко ви- видеть, что для этого множества дизъюнктов нет единичного опро- опровержения. Следовательно, согласно теореме 7.1 нет также и вход- входного опровержения. Поэтому неизбежно использование одного из центральных дизъюнктов в качестве бокового дизъюнкта. Было бы приятно найти необходимое и достаточное условие, при котором боковой дизъюнкт должен быть одним из ранее порож- порожденных центральных дизъюнктов. Иными словами, боковой дизъ- дизъюнкт является ранее порожденным центральным дизъюнктом тогда и только тогда, когда выполнено это условие. Мы покажем, что если информация об отрезанных литерах запи- записывается надлежащим образом и используется понятие упорядо- упорядоченного дизъюнкта, то мы можем четко определить это условие. Позднее станет ясно, что использование этого условия срежет число возможных резолюций. В действительности оно позволит нам сделать больше. Если мы решили, что боковой дизъюнкт должен быть ранее порожденным центральным дизъюнктом, то Рис. 26.
136 ЛИНЕЙНАЯ РЕЗОЛЮЦИЯ ГЛ. 7 ■нам не нужно будет даже решать, какой центральный дизъюнкт использовать. Мы просто выполняем некоторую операцию на этом дизъюнкте и получим новый дизъюнкт. Поэтому нам не нужно будет хранить предшествующие центральные дизъюнкты в машинной памяти. Это сильно упрощает машинную реализацию линейной резолюции. Мы обсудим теперь механизм записи информации об отрезан- отрезанных литерах. Пусть Сх и С2—следующие упорядоченные дизъюнкты: Имеется упорядоченная резольвента (а именно Р\/R) дизъ- дизъюнкта Сх с С2, где Q и ~Q—отрезаемые литеры. Так как Q и ~Q контрарны,нам нужно записать только одну из них. Допустим, что мы решили записать Q , последнюю литеру из Сг. Тогда упорядоченную резольвенту можно представить в виде Py\Q^yR, где литера в рамке (обрамленная литера)—это отрезаемая литера. Именно так мы сохраняем в памяти информацию об отрезанных литерах. Иными словами,отрезанная литера изображается литерой в рамке, добавляемой к упорядоченному дизъюнкту. Литеры в рамке служат только для учета от- отрезанных литер; они не участвуют в дальнейших применениях правила резолюции. В рамках описанной схемы мы будем выбрасывать обрамленную ли- литеру, если за ней не следует ника- никакая необрамленная литера. Позднее будет объяснено, почему это допус- допустимо. Алгоритм, применяющий как по- понятие упорядоченного дизъюнкта, так и информацию об отрезанных ли- литерах, называется OL-выводом (orde- (ordered linear deduction). Перед изложе- изложением точного алгоритма мы сначала опишем его на примере. Пример 7.4. Рассмотрим следующее множество упорядочен- упорядоченных дизъюнктов: S = {P\JQ, Py~Q, ~PVQ, ~PV~Q}. Ли- Линейный вывод, использующий информацию от отрезанных лите- литерах и понятие упорядоченного дизъюнкта, изображен на рис. 27, где центральные дизъюнкты получены следующим образом. 1. Мы начинаем с упорядоченного дизъюнкта PyQ в качест- ве'верхнего дизъюнкта. Последняя литера этого упорядоченного дизъюнкта есть Q, и она может быть отрезана вместе с ~Q в процессе применения правила резолюции со второй посылкой PV~Q. Поэтому, выполняя это применение и записывая литеру Q в рамке, мы получаем упорядоченную резольвенту, представлен- § 7.4] ИСПОЛЬЗОВАНИЕ УПОРЯДОЧЕННЫХ ДИЗЪЮНКТОВ 137: ную в виде PvEl- Так как за [Q| не следует никакая необрамлен- необрамленная-литера, она выбрасывается. Поэтому мы получаем Р, что показано на рис. 27. 2. Последняя литера упорядоченного дизъюнкта, полученного только что в п. 1, есть Р, и она может быть отрезана вместе с ~Р применением правила резолюции со второй^посылкой ~P\/Q. Выполняя [это применение и обрамляя [Р, мы лолучаем |P|VQ. 3. Последняя литера в\Р\ VQ есть Q,n она может быть отрезана применением резолюции со второй посылкой ~P\J~Q. Выполняя это применение и записывая Q, мы получаем |Р|у[01\/~/^ 4. Итак, мы получили дизъюнкт [P]v[Q|V~P- Этот дизъюнкт обладает интересной чертой. Заметим, что последняя литера ~Р' дизъюнкта [Р]V[QlV ~ P контрарна одной из его обрамленных литер,, а именно \Р\. Это и есть условие, которое мы хотели найти раньше. Иными словами, боковой дизъюнкт на этом шаге должен быть центральным дизъюнктом. В нашем случае это дизъюнкт Р. При- Применяя резолюцию [P]v[QlV~/3 с Р и отрезая ~Р, мы получаем 0V[QlvEE]. Однако ни за одной из этих обрамленных литер не следует необрамленная литера. Поэтому, выбрасывая их, мы получаем Q. Как уже подчеркивалось выше, дизъюнкт [P]v[QlV~^ особент ный, так как его последняя литера контрарна одной из его офрамь ленных литер. Каждый раз, когда порождается такого рода дизъюнкт, мы будем использовать некоторый центральный дизъ- johkt в качестве бокового. Мы будем называть такого рода дизъ- дизъюнкт редуцируемым. Определение. Упорядоченный дизгюнкт С является реду- редуцируемым упорядоченным дизгкнктом, если последняя литера в С унифицируема с отрицанием некоторой обрамленной литеры из С. В действительности, если порожден редуцируемый упорядо- упорядоченный дизъюнкт.то нам не нужно просматривать память в поисках упорядоченного дизъюнкта, который надо взять в качестве второй посылки резолюции; мы можем просто выбросить последнюю литеру из нашего упорядоченного дизъюнкта. Например, если порожден [P]v|Q|V~P, to мы просто выбрасываем ~р и* 0V[Q]V'~^) и получаем [P]v[Ql- Так как за 0 и [Q] не следует никакая необрамленная литера, они обе выбрасываются, и, таким образом, мы получаем □• Мы назовем операцию этого вида редукцией редуцируемого упорядоченного дизъюнкта. Определение. Пусть С—редуцируемый упорядоченный дизъюнкт. Пусть его последняя литера L унифицируема с некото- некоторой обрамленной литерой, и а—их наиболее общий унификатор. Редукция дизъюнкта С—это упорядоченный дизъюнкт,получаемый
138 ЛИНЕЙНАЯ РЕЗОЛЮЦИЯ ГЛ. 7 из Со путем выбрасывания литеры Lo и всех последовательных обрамленных литер, за которыми не следуют необрамленные литеры. После того как редукция редуцируемых дизъюнктов включена в OL-выводы, нам не нужно больше запоминать промежуточные дизъюнкты. Этот важный аспект OL-выводов делает их особенно подходящими для машинной реализации. Заметим, что обнару- обнаружение редуцируемого упорядоченного дизъюнкта уже уменьшает выбор резолюций. Введение механизма редукции эффективно сводит ее к одной-единственной резолюции. OL-вывод—это по существу то же самое, что Лав ленд [1]—[3], [6] называет методом элиминации моделей. OL-вывод — это также по существу специальный SL- вывод в смысле Ковальского и Кюнера [1]. Мы сейчас определим OL-вы- OL-вывод формально. В дальнейшем упорядоченный дизъюнкт может ■содержать как обрамленные, так и необрамленные литеры.Чтобы учесть это, мы повторим определения упорядоченной склейки, упорядоченной бинарной резольвенты и упорядоченной резоль- резольвенты, данные в §6.6. Если в упорядоченном дизъюнкте имеется более одного вхож- вхождения одной и той же необрамленной литеры, то мы всегда сохраняем самое левое из них и выбрасываем все другие сов- совпадающие необрамленные литеры. Эта операция называется отождествлением влево для- совпадающих необрамленных литер. Например, производя в PVQ\/{r\\/S\/Q\/P отождествление влево для совпадающих необрамленных литер, мы получим Определение. Пусть две или более необрамленные литеры (одного знака) в упорядоченном дизъюнкте С имеют наиболее общий унификатор а. Тогда упорядоченный дизъюнкт, получае- получаемый из последовательности Со путем отождествления влево для всех совпадающих литер в Со и выбрасыванием любой обрамленной литеры, за которой не следуют в оставшемся дизъюнкте необрам- необрамленные литеры, называется упорядоченной склейкой дизъюнкта С. Опр еде ледие . Пусть Ct и С2— упорядоченные дизъюнкты, не имеющие общих переменных, a Lx и L2— необрамленные ли- литеры в Сх и Са соответственно. Пусть Lx n~L2 имеют наиболее общий унификатор а. Пусть С* —упорядоченный дизъюнкт, получаемый соединением последовательностей Схо и С2о, обрам- обрамлением литеры L^o, выбрасыванием L2o и отождествлением влево для всех совпадающих необрамленных литер в остающейся последовательности. Пусть С получается из С* путем выбрасы- выбрасывания всех обрамленных литер, за которыми в С* не следуют ;необрамленные литеры. С называется упорядоченной бинарной резольвентой Сх с С2. Литеры Lx и L2 называются отрезаемыми литерами. ИСПОЛЬЗОВАНИЕ УПОРЯДОЧЕННЫХ ДИЗЪЮНКТОВ 139 Определение. Упорядоченная резольвента упорядоченного дизъюнкта С\ с упорядоченным дизъюнктом С2 — это любая из следующих упорядоченных бинарных резольвент: 1) упорядоченная бинарная резольвента С\ с С2; 2) упорядоченная бинарная резольвента Сх с некоторой упо- упорядоченной склейкой дизъюнкта С2; 3) упорядоченная бинарная резольвента некоторой упорядо- упорядоченной склейки Сх с дизъюнктом С2; 4) упорядоченная бинарная резольвента некоторой упорядо- упорядоченной склейки дизъюнкта Сх с некоторой упорядоченной склей- склейкой дизъюнкта С2. Определение. Для данного множества S упорядоченных дизъюнктов и для упорядоченного дизъюнкта Со из S назовем OL-выводом дизъюнкта Сп (исходя) из S с верх- верхним упорядоченным дизъюнктом Со любой вы- вывод, имеющий вид, изображенный на рис. 28 и удовлетворяющий следующим условиям: 1. Для i = 0,l,2,...,n—1 дизъюнкт С,-+1 есть упорядоченная резольвента дизъюнкта С,- (на- (называемого центральным упорядоченным дизъюнк- дизъюнктом) с дизъюнктом Bt (называемым боковым упорядоченным дизъюнктом); литера, отрезае- отрезаемая в С,-(или в упорядоченной склейке С(),— ' это последняя литера. 2. Каждый Bi — либо упорядоченный Рис 28.. дизъюнкт из S, либо частный случай некото- некоторого Су, /<i. 5,-является частным случаем некоторого Cfy /<*, тогда и только тогда, когда С,-—редуцируемый упорядоченный дизъюнкт. В этом случае С,-+1—редукция дизъюнкта С,-. 3. В вывод не входят тавтологии. Определение упорядоченного дизъюнкта можно использовать в доказательстве следующей леммы. Мы предоставляем это дока- доказательство читателю. Лемма 7.2. Если в некотором OL-выводе С,- является реду- редуцируемым упорядоченным дизъюнктом, то существует центральный упорядоченный дизъюнкт С,-, /<i, такой, что редукция Ci+1 дизъюнкта С,- является упорядоченной резольвентой С,- с некоторым частным случаем дизъюнкта Cj. Итак, условия из определения OL-вывода можно сформулиро- сформулировать следующим образом: 1. Каждый дизъюнкт В{ либо принадлежит S, либо являете» частным случаем некоторого Cy,/<t. 2. Если С;—редуцируемый упорядоченный дизъюнкт, тоС,-+1 есть редукция дизъюнкта С,-. В противном случае С,-+1 есть упорядоченная резольвента дизъюнкта С,- с некоторым В{, при- принадлежащим S, причем отрезаемая литера в С,- последняя. 3. В вывод не входят тавтологии.
140 ЛИНЕЙНАЯ РЕЗОЛЮЦИЯ ГЛ. 7 Определение. OL-опровержение есть OL-вывод дизъюнк- дизъюнкта П. Пример 7.5. Рассмотрим множество упорядоченных дизъюнк- дизъюнктов S = {PVQ, ~QVR, RV~P, ~QV~#, ~/>V~4 Тогда рис. 29 является OL-выводом дизъюнкта □ из 5 с верх- верхним упорядоченным дизъюнктом Р V Q- Отметим, что С, и С,— редуцируемые упорядоченные дизъюнкты. Хотя на этих шагах не нужно никакой резолюции, читатель, прослеживая штрихо- штриховые линии, может найти дизъюнкты, которые должны были бы служить боковыми. Например, В2 есть Р V Q. т. е. верхний ~2>(а,6) ~D(a,b)\ v*~P'(a)v~MF,6,*)v~l)(a, г) ~D(a,b)\v~P(a)v~M(b,b,z)v\~d(a,z)\vM(a,(/,f) D Рис. 30. дизъюнкт Со, а Въ есть Р, т. е. С3, выведенный в этом опро- опровержении. Пример 7.6. В примере 7.2 мы изложили пример линей- линейного вывода, не использующего понятия упорядоченного дизъ- дизъюнкта и информации об отрезанных литерах. На рис. 30 пока- показан OL-вывод дизъюнкта □ из S. § 7.5] ПОЛНОТА ЛИНЕЙНОЙ РЕЗОЛЮЦИИ 141 § 7.5. Полнота линейной резолюции В этом параграфе мы докажем полноту OL-выводов. Сначала нам нужно доказать следующую лемму. Лемма 7.3. Если С—основной упорядоченный дизъюнкт, принадлежащий противоречивому множеству S упорядоченных основных дизъюнктов, и если S — {С} выполнимо, то имеется OL- опровержение из S с верхним упорядоченным дизъюнктом С. Доказательство. Мы докажем эту лемму индукцией по количеству элементов в множестве А атомов для S. Если А со- состоит из единственного элемента Q, то среди элементов S име- имеются упорядоченные дизъюнкты Q и ~ Q. Их резольвентой, очевидно, является □• Так как S—{.С} выполнимо, то либо Q, либо ~Q должно совпадать с С. Итак, лемма 7.3 верна в этом случае. Допустим, что лемма 7.3 верна, когда А состоит из i эле- элементов при l<t<n. Для завершения индукции рассмотрим А, состоящее в точности из п+1 элемента. Случай 1. С—единичный дизъюнкт. Пусть Cz=±L, где L — литера. Пусть S' — множество, полученное из S выбрасыванием упорядоченных дизъюнктов, содержащих L, и выбрасыванием ~L Е' 6 j>Bn_; _; fv-z.) (а) (b) Рис. 31. из остальных упорядоченных дизъюнктов. S' должно быть про- противоречиво. Пусть Т" — противоречивое подмножество S' такое, что каждое собственное подмножество множества 7" выполнимо. (Такое множество можно получить, перебирая всевозможные подмножества множества S'.) 7" должно содержать упорядочен- упорядоченный дизъюнкт £", который был получен из некоторого дизъ- дизъюнкта, принадлежащего множеству S, путем выбрасывания ли- литеры ~ L: в противном случае 7" было бы подмножеством множества S—{С}. Тогда S — {С} было бы противоречивым во- вопреки тому, что оно выполнимо. Теперь мы имеем упорядоченный дизъюнкт £" в противоречивом множестве 7" дизъюнктов, причем
142 ЛИНЕЙНАЯ РЕЗОЛЮЦИЯ [ГЛ. 7 Т'—{£"} выполнимо. Так как Т' содержит п или менее атомов, согласно индукционному предположению имеется OL-опроверже- ние D' из Т' с верхним упорядоченным дизъюнктом £"; оно изображено на рис. 31, а. Возвращая литеру ~L на место, т. е. в конец всех упорядоченных дизъюнктов, откуда она была выброшена, за исключением верхнего упорядоченного дизъюнкта £", и получая £" путем резолюции L с Е, мы получаем вывод D дизъюнкта □ или (~/.), изображенный на рис. 31, Ъ. На рис. 31, Ъ символ (V ~ Ц означает добавление литеры ~L на ее место в конце упорядоченных дизъюнктов, из которых она была выброшена. Теперь мы должны показать, что D тоже является OL-выводом. Заметим, что никакой дизъюнкт из D не является тавтоло- тавтологией, так как D получается из вывода D', который не содержит ни тавтологий, ни литеры L. Отметим также, что если ~ L не входит в качестве последней литеры в центральные дизъюнкты, то резолюции в D те же, что в D'. Если ~L входит в качестве последней литеры в некоторый центральный дизъюнкт, то ~/. (Q) (b) Рис. 32. надо отрезать. В таком случае мы заменяем часть вывода D, изображенную на рис. 32, а, на вывод, изображенный на рис. 32, Ъ. Очевидно, что дизъюнкт Щ V C,-(V ~L) редуцируемый и что редукция дает |Z] V Ct. После того как такие замены сделаны во всех нужных ме- местах рис. 31, Ъ, получается OL-вывод D* дизъюнкта □ или Щ V ~ L из S с верхним упорядоченным дизъюнктом С. Если D*— вывод дизъюнкта П, то все уже сделано. В противном случае искомое OL-опровержение—это D* плюс резолюция Щ\/ ~L с L. Случай 2. С — не единичный дизъюнкт. В этом случае пусть L—первая (самая левая) литера в С, т. е. С — /. V С", где С — непустой упорядоченный дизъюнкт. Пусть S'—множество, по- получаемое из S выбрасыванием упорядоченных дизъюнктов, со- содержащих ~ L, и выбрасыванием L из всех оставшихся упоря- упорядоченных дизъюнктов. S' противоречиво. Мы покажем, что S'—{С} выполнимо. Пусть J—интерпретация, выполняющая S 7.6] ЛИНЕЙНЫЙ ВЫВОД И ПОИСК В ДЕРЕВЕ 143 S—|С}. (Такая интерпретация существует из-за выполнимости 5—{С}.) Так как S невыполнимо, то С должен быть ложен в /. Поэтому L ложна в /. Следовательно, S' — {С} истинно в /. Итак, S'—{С} выполнимо. Так как S' содержит п или менее атомов, то по индукционному предположению найдется OL-вы- OL-вывод D' дизъюнкта □ из S' с верхним упорядоченным дизъюнк- дизъюнктом С. Возвращая литеру L на место во все упорядоченные дизъюнкты, из которых она была выброшена, мы получим OL- вывод Dj дизъюнкта L из S с верхним упорядоченным дизъ- дизъюнктом С. Далее, {L}U(S —{С}) противоречиво, a S—{С} вы- выполнимо. Как уже доказано в случае 1, имеется OL-вывод D2 дизъюнкта □ из {L}U(S — {С}) с верхним упорядоченным дизъ- дизъюнктом {L}. Помещая Dx над D2, мы получим OL-опровержение из S с верхним упорядоченным дизъюнктом С. Это завершает доказательство. Теорема 7.2 (полнота OL-вывода). Если С—упорядоченный дизъюнкт, принадлежащий противоречивому множеству S упо- упорядоченных дизъюнктов, и если S — {С} выполнимо, то имеется OL-опровержение из S с верхним упорядоченным дизъюнктом С. Доказательство. Так как S противоречиво, a S—{С} выполнимо, то по теореме Эрбрана (вторая форма) имеется ко- конечное множество S' основных частных случаев упорядоченных дизъюнктов из S и основной частный случай С дизъюнкта. С такие, что S' противоречиво, С принадлежит S' и S'—{С'} выполнимо. По лемме 7.3 меется OL-опровержение D' из S' с верхним упорядоченным дииъюнктом С. Используя лемму о подъ- подъеме (аналогичную лемме 5.el), мы можем преобразовать D' в OL- опровержение из S с верхним упорядоченным дизъюнктом С. Это завершает доказательство. Легко доказать, что OL-резолюция влечет резолюцию с мно- множеством поддержки. Иными словами, теорема 7.2 влечет тео- теорему 6.2. Мы оставляем это читателю в качестве упражнения. § 7.6. Линейный вывод и поиск в дереве В оставшихся параграфах мы рассмотрим очень важную проб- проблему линейного вывода—его эффективную реализацию. Пусть мы уже выбрали верхний дизъюнкт Со. Мы можем тогда выделить все возможные боковые дизъюнкты. После при- применения резолюции к Со с этими боковыми дизъюнктами мы получаем резольвенты /?1( ..., Rm. Каждый из дизъюнктов /?,A ^ i s^m) является возможным центральным дизъюнктом, который может привести к доказательству. Если один из /?,- — пустой дизъюнкт, то все уже в порядке. В противном случае для любого i мы находим все возможные боковые дизъюнкты, подходящие для резолюции с R,- в качестве центрального дизъ- дизъюнкта, и продолжаем этот процесс до тех пор, пока не будет
144 ЛИНЕЙНАЯ РЕЗОЛЮЦИЯ ГЛ. 7 порожден пустой дизъюнкт1). Для удобства описания этого про- процесса дерево линейного вывода, изображенное на рис. 28, будет представлено в виде пути, изображенного на рис. 33. Иными словами, боковой дизъюнкт Bt помещается сбоку от ребра, Pvd а С,- есть резольвента дизъюнктов С,-_! и •£,-_1. Ниже мы реали- реализуем OL-вывод. Рассмотрим сначала простой пример. (В этом примере тавто- тавтологии включены в рассмотрение с иллюстративной целью.) Рас- Рассмотрим следующее множество дизъюнктов: A) PVQ, B)~PVQ, C) PV~Q, D)~ Р v ~ Q. Выберем A) в качестве верхнего дизъюнкта Со. Упорядоченные дизъюнкты, пригодные на первом шаге в качестве боковых,— это C) и D). Производя соответствующие применения резолюции, получаем дерево, изображенное на рис. 34. Мы породили два центральных дизъюнкта. Для каждого из них мы выделяем все возможные боковые дизъюнкты и расши- расширяем рис. 34 до рис. 35. Когда порождается упорядоченная резольвента, мы всегда проверяем ее на редуцируемость. В случае положительного от- ответа мы всегда редуцируем ее до соответствующей редукции. На рис. 35 дизъюнкт Р V [Q] V EEI V ~ Q редуцируем. Его ре- редукцией является Р. Поэтому рис. 35 можно упростить до рис. 36. Теперь имеется четыре возможных центральных дизъюнкта. Для каждого из них снова выделяем все возможные боковые х) Заметим, что при использовании стратегий предыдущей главы нам не приходилось отдельно просматривать различные ветви процесса (см. сноску на с. 131 и п. 1 Дополнения В).— Прим. ред. § 7.6. ЛИНЕЙНЫЙ ВЫВОД И ПОИСК В ДЕРЕВЕ 145 дизъюнкты. Таким образом, мы получаем дерево, изображенное на рис. 37. Упорядоченные резольвенты [p]v|Q|V~^h[p] VhQlV ~ P редуцируемы. Редуцируя их, мы получим дерево, изображенное на рис. 38. Процесс закончен, так как уже порожден пустой PvQ Рис. 35. дизъюнкт. Самая левая ветвь дерева, изображенного на рис. 38, соответствует OL-опровержению, изображенному на рис. 39. Читатель может теперь видеть, что проблему нахождения OL-вывода можно рассматривать как проблему поиска в дереве. Многие методы, развитые для поиска в дереве, могут быть при- применены к OL-выводу. Благодаря настойчивым усилиям исследо- исследователей в этой области мы наблюдаем большой прогресс. Исчер- Исчерпывающее исследование общих методов поиска в дереве см. у Слэйгла [2] и Нильсона [1]. Метод, использованный для развертывания дерева в описан- описанном выше примере (рис. 38), называется методом поиска в ши- ширину. В терминологии поиска в дереве Со это верхний узел дерева. Боковые дизъюнкты можно рассматривать как операторы, исполь- используемые для развертывания последовательных узлов дерева. Пусть С— упорядоченный дизъюнкт, обозначающий некоторый узел. Выделим все возможные боковые дизъюнкты и применим к ним правило резолюции с С в качестве центрального дизъюнкта. Полученные упорядоченные резольвенты Rlt ..., Rm (и соответ- соответственно узлы) будем называть непосредственными наследниками узла С. Когда порождены все возможные непосредственные узлы- наследники узла С, мы скажем, что узел С развернут. Иначе говоря, развертывание узла означает порождение всех его непо- непосредственных наследников. Пусть S—доказываемое множество упорядоченных дизъюнктов. Пусть Со—упорядоченный дизъюнкт из S, выбранный в качестве верхнего дизъюнкта. Тогда метод поиска в ширину описывается следующим образом. Метод поиска в ширину Шаг 1. Положим CLIST = (C0). Шаг 2. Если CLIST пуст, заканчиваем процесс, не найдя доказательства. В противном случае продолжаем.
146 ЛИНЕЙНАЯ РЕЗОЛЮЦИЯ ГЛ. 7 PvQ. Pv Рис. 37. Pvd pv~a § 7.6 ЛИНЕЙНЫЙ ВЫВОД И ПОИСК В ДЕРЕВЕ 147 ZZ/аг З. Пусть С — первый упорядоченный дизъюнкт в CLIST. Выбросим С из CLIST. Шаг 4. Найдем все упорядоченные дизъюнкты из S, которые могут быть боковыми дизъюнктами для центрального дизъюнкта С. Если таких боковых дизъюнктов не существует, перейдем к шагу 2. В противном случае построим упорядоченные револьвенты Rlt ..., Rm дизъюнкта С со всеми этими боковыми дизъюнктами. Пусть R'i—редукция дизъюнкта Rh если последний редуцируем. Если R. нередуцируем, пусть R*=R;. Шаг 5. Если один из дизъюнктов R*q, \ ^.q ^.m, пуст, то заканчиваем, найдя доказательство; в противном случае продол- продолжаем. Шаг 6. Помещаем RZ, ..., R^ (в произвольном порядке) в конец CLIST и переходим к шагу 2. Минимальное доказательство из S с верхним дизъюнктом Со — это OL-опровержение (из S с верхним дизъюнктом Со), со- содержащее наименьшее число применений правила резолюции. Метод поиска в ширину всегда найдет такое минимальное дока- доказательство, если доказательство вообще существует. Очевидно, однако, что этот метод поиска в ширину может породить много не относящихся к делу и лишних дизъюнктов до того,,как будет найден пустой дизъюнкт. Это очевидно в приведенном выше примере. Другой путь поиска в дереве—это метод поиска в глу- глубину. Идея состоит в том, что, в отличие от метода поиска в ширину, который разворачивает узлы сверху вниз, метод поиска в глубину разворачивает узлы слева направо. Метод поиска в глубину почти совпадает с методом поиска в ширину, за исклю- исключением того, что на шаге 5 мы помещаем RI, .... R*m в начало CLIST, а не в конец. Кроме того, мы должны задать границу глубины для метода поиска в глубину, чтобы предотвратить развертывание узлов по неправильному пути (ветви), т. е. по пути, который не может привести к пустому дизъюнкту. Глубина дизъюнкта в OL-выводе определяется следующим образом. Определение. Глубина дизъюнкта Со в OL-выводе с верх- верхним упорядоченным дизъюнктом Со равна нулю. Если глубина некоторого упорядоченного дизъюнкта С равна k и R есть упо- упорядоченная резольвента дизъюнкта С с некоторым боковым дизъ- дизъюнктом, то глубина дизъюнкта R равна &+1. Длина доказатель- доказательства (опровержения) с верхним дизъюнктом Со—это глубина пустого дизъюнкта. Пусть d*—заранее заданное пороговое число. Метод поиска в глубину можно теперь описать следующим образом. Метод поиска в глубину Шаг 1. Положим CLIST = (C0). Шаг 2. Если CLIST пуст, закончим, не найдя доказательства. В противном случае продолжим.
148 ЛИНЕЙНАЯ РЕЗОЛЮЦИЯ [ГЛ. 7 Шаг 3. Пусть С—первый упорядоченный дизъюнкт в списке CLIST. Выбросим С из CLIST. Если глубина С больше чем d*. перейдем к шагу 2. В противном случае продолжим. Шаг 4. Найдем все упорядоченные дизъюнкты в S, которые могут быть боковыми дизъюнктами для С. Если таких боковых дизъюнктов нет, перейдем к шагу 2. В противном случае построим упорядоченные резольвенты Rlt ..., Rm дизъюнкта С с его бо- боковыми дизъюнктами. Пусть R* есть редукция дизъюнкта Rh если R; редуцируем. В противном случае положим #; = #.. Шаг 5. Если какой-либо из дизъюнктов R*, 1<</<т, пуст, то заканчиваем, получив доказательство. В противном случае'' продолжаем. Шаг 6. Поместим #*, ..., R*m (в произвольном порядке) в начало списка CLIST и перейдем к шагу 2. Очевидно, что применение метода поиска в глубину с d* = 2 к дереву, изображенному на рис. 38, породит дерево, изобра- изображенное на рис. 40. Очевидно, что дерево на рис. 40 меньше, чем на рис. 38. Хотя в общем случае метод поиска в глубину осуществляет поиск по меньшему дереву, чем метод поиска в ширину, мы ]P]\ / D pva A _/ x P V \Q 1 i/mD /\ \ Рис \P\v\3\vP . 40. /p\i~& /~Pv& /~P4~Q, P Риг- 41 хотим улучшить его еще больше. Мы заметим, что в методе поиска в глубину узел разворачивается полностью, если он вообще выбирается для развертывания. Иными словами, поро- порождаются все возможные узлы-наследники. Мы однако можем изменить это и порождать по одному узлу зараз. Рассмотрим рис. 40. Верхний узел этого дерева есть Р V Q. У него имеются два узла-наследника, а именно Р и Р V [Q] V ~ Z3. Предполо- Предположим, что порожден только Р. Теперь он является центральным узлом. У него два узла-наследника. Предположим, что порожден только 0 V Q. Он также имеет два узла-наследника, а именно □ и \Р\ V Ш V Р. Если порожден только П, то мы получаем пустой дизъюнкт. Весь этот процесс описан деревом, изображенным на рис. 41, §7.?: ЭВРИСТИКИ ПОИСКА В ДЕРЕВЕ 149 которое еще меньше, чем дерево на рис. 40. Ввиду предыдущих соображений мы следующим образом зададим (при данном по- пороговом числе d*) модифицированный метод поиска в глубину. Модифицированный метод поиска в глубину Шаг 1. Найдем все дизъюнкты из S, которые могут быть боковыми дизъюнктами для Со. Если таких дизъюнктов нет, заканчиваем, не найдя доказательства. В противном случае пусть В\, ..., В„—все эти боковые дизъюнкты. Построим пары (Со, В1), ..., (Со, Вг0). Пусть CLIST—список всех этих пар, расположенных в произвольном порядке. Шаг 2. Если CLIST пуст, заканчиваем, не найдя доказа- доказательства. В противном случае продолжаем. Шаг 3. Пусть (С, В) — первая пара из CLIST. Выбрасываем (С, В) из CLIST. Если глубина С больше, чем d*, переходим к шагу 2. В противном случае продолжаем. Шаг 4. Строим все упорядоченные резольвенты Rt, ..., Rm дизъюнкта С с В. Пусть Rl—редукция дизъюнкта Rit если он редуцируем. В противном случае полагаем R* = /?,-. Шаг 5. Если некоторый R*q, 1 <<7<m,—пустой дизъюнкт, то заканчиваем, найдя доказательство. В противном случае продолжаем. Шаг 6. Для каждого t = 1,2, ...,т находим упорядоченные дизъюнкты в S, которые могут быть боковыми дизъюнктами для R*. Если таких дизъюнктов не существует, выбрасываем R*. В противном случае пусть Вп, Bi2, .... Bis.—все такие боковые дизъюнкты. Строим пары {R*u, BJ, ..., (R*it BiSj). Помещаем все эти пары (в произвольном порядке) в начало CLIST и пе- переходим к шагу 2. В большинстве ситуаций как обычный, так и модифициро- модифицированный метод поиска в глубину лучше, чем метод поиска в ши- ширину. Если множество S упорядоченных дизъюнктов имеет до- доказательство длины, меньшей чем d*, то оба варианта метода поиска в глубину гарантируют нахождение доказательства. Хотя модифицированный метод поиска в глубину труднее для реализации, чем обычный, он имеет очевидные преимущества. В следующем параграфе предполагается, что используется мо- модифицированный метод поиска в глубину. § 7.7. Эвристики поиска в дереве В этом параграфе мы обсудим «эвристики», которые можно использовать для ускорения работы по модифицированному ме- методу поиска в глубину. Использование эвристики может при- привести к тому, что доказательство не будет найдено, хотя оно и существует. Тем не менее иногда оно является необходимым
150 ЛИНЕЙНАЯ РЕЗОЛЮЦИЯ ГЛ. ? инструментом для доказательства большой или трудной теоремы, т. е. теоремы с длинным доказательством. В области доказа- доказательства теорем имеется много эвристик, и мы сейчас обсудим некоторые из них. Отметим, что хотя описываемые ниже эври- эвристики вводятся для использования в рамках модифицированного метода поиска в глубину, их можно применять не только к ли- линейной резолюции, но также и к другим видам резолюции. A. Стратегия выбрасывания Говорят, что упорядоченный дизъюнкт С\ поглощает другой упорядоченный дизъюнкт С2, если дизъюнкт, состоящий из не- обрамленных литер в Сг, поглощает дизъюнкт, состоящий из необрамленных литер в С2. Упорядоченный дизъюнкт назы- называется тавтологией, если он содержит контрарную пару необ- необрамленных литер. Так как тавтологии и поглощаемые дизъ- дизъюнкты лишние, мы должны выбрасывать их, как только это ста- становится возможным. В модифицированном методе поиска в глубину мы должны в конце шага 4 проверить, является ли R*, i=l, ..., т, тавтологией. Если R*— тавтология, то выбра- выбрасываем его. Кроме того, следует выбросить R*c, если в CLIST имеется пара (С, В) такая, что R* поглощается дизъюнктом С. B. Стратегия предпочтения кратчайших (дизъюнктов) В модифицированном методе поиска в глубину пары из CLIST располагаются в произвольном порядке. В действительности следует располагать пары из CLIST в таком порядке, чтобы потенциально «хорошие» пары появлялись раньше «плохих». Таким образом, на шаге 3 этого метода при извлечении первой пары из CLIST мы можем быть уверены, что у нас хорошая пара, которая может быстро привести к пустому дизъюнкту. Определим длину length {Е) упорядоченного дизъюнкта Е как количество необрамленных литер в Е. Пусть (С, В) — пара из CLIST. Пусть R обозначает упорядоченную резольвенту С с В. Так как length (/?) указывает минимальное число применений правила резолюции, необходимых для перехода от R к пустому дизъюнкту, мы можем использовать length (R) как индикатор качества пары (С, В). Иными словами, чем меньше величина length (R), тем лучше пара (С, В). В действительности нам не надо на практике вычислять R, чтобы вычислить length G?). Достаточно будет оценки для length (R). Очевидно, что length (#);< length;(C) + length (Б)—2. G.1) Более того, так как нам нужно только относительное число, мы можем использовать просто (length (С) -f length (В)) как меру качества. Положим f (С, В) = length (С) + length (В). G.2) § 7.7 ЭВРИСТИКИ ПОИСКА В ДЕРЕВЕ 151 Тогда f(C, В) будет использовано для оценки качества пары (С, В). В модифицированном методе поиска в глубину непосредственно перед шагом 3 мы можем упорядочить пары в CLIST, помещая пары с маленькими величинами / перед па- парами с большими величинами f. Эта схема упорядочения была предложена Слэйглом[1] и называется стратегией предпо- предпочтения кратчайших. С. Использование эвристических оценочных функций В предшествующем обсуждении единственной мерой качества дизъюнкта было число содержащихся в нем литер. Это, конечно, слишком просто. Определим п*(С, В) для пары (С, В) из списка CLIST, построенного по модифицированному методу поиска в глубину, как число применений правила резолюции в мини- минимальном доказательстве (опровержении) с верхним упорядочен- упорядоченным дизъюнктом С и первым боковым дизъюнктом В. Если п*(С, В) известно, то мы можем использовать п*{С, В) для упорядочения пар в CLIST. Однако в общем случае h*(C, В) неизвестно. Поэтому приходится оценивать h* (С, В). Пусть h (С, В)—какая- то оценка величины h*(C, В). Обычно h (С, В) получается из множества известных данных. В дальнейшем мы рассмотрим вопрос о получении h (С, В). Предположим, что h(C, В) можно выразить в виде h(C, B) = wo + wJ1(C, B)+...+wJn(C, В), G.3) где каждая fh i=\, ..., я,—вещественная функция от С и Б, a wt—вес, сопоставленный величине /,-. Каждая из /(- называется характеристикой пары (С, В). Обычно характеристики выбира- выбираются заранее экспериментатором, который считает, что они имеют отношение к п* (С, В). Мы можем, например, использовать не- некоторые из характеристик, указанных в табл. 7.1. Таблица 7.1 1. Число необрамлениых литер в С. 2. Число обрамлеииых литер в С. 3. Число боковых дизъюнктов для С. 4. Число коистант в последней литере из С. 5. Число функциональных символов в последней литере из С. 6. Число обрамленных литер в С, поглощающих последнюю литеру из С. 7. Число различных переменных в С и В. 8. 1 ength (С) + length (В) — 2. 9. Число констант в С/A + число переменных в С). 10. Число коистаит в С/A -j-число различных переменных в С). 11. Глубина С. 12. Число необрамлеиных литер, входящих как в С, так и в В. 13. Число литер в В, имеющих обрамленное дополнение в С. 14. Число различных предикатных символов в С и В.
152 ЛИНЕЙНАЯ РЕЗОЛЮЦИЯ [ГЛ. 7 § 7.8] ОЦЕНКИ ДЛЯ ОЦЕНОЧНЫХ ФУНКЦИЙ 153 В действительности h(C, В) может быть фукцией, линейной или нелинейной, от /, (С, В), ..., /„(С, В). Для иллюстрации мы будем в дальнейшем рассматривать только линейные функ- функции. Функцию h(C, В) можно использовать для упорядочения пар в CLIST, т. е. для помещения пар с меньшими значениями h перед парами с большими значениями h. Мы назовем эту h(C, В) эвристической оценочной функцией или, короче, оценоч- оценочной функцией. В следующем параграфе мы дадим метод полу- получения h(C, В). § 7.8. Оценки для оценочных функций Как уже сказано в п. 7.7 С, мы предполагаем, что Л (С, B) = wo + wJ1(C, B)+...+wJa(C, В). В этом параграфе мы обсуждаем два следующих важных вопроса: 1. Как мы можем определить подходящие величины w0, ... ..., wn, если дано множество характеристик? 2. Как нам узнать, является ли некоторое множество харак- характеристик хорошим (тесно связанным с h* (С, В))? Мы ответим сейчас на первый вопрос. Допустим, что мы собрали некоторое множество пар (С1( Вг) (Cq, B9). Допу- Допустим также, что мы знаем величины h*(Cu BJ, ..., h*(Cq, Bq). Проблема состоит в нахождении w0, wu ..., wn таких, что ми- минимально выражение [h* (С,-, B^-iw. + wJ, (С,-, В,)+ ... +wjn (С,-, Bt))]\ G.4) Это—так называемая оценка по наименьшим квадратам (Дрейпер и Смит [1]). Определим матрицы F, Н [и W' сле- следующим образом: /t (Съ BJ ... /„ (Съ вг) /t(С2> в2) ... /„(С2) в2) F = h* (Съ В,) Л*(С2, В2) V (Са, Ва) ■ ■■in (с„, вя) W = Тогда величина W, минимизирующая выражение G.4), да- дается формулой где матрица F' транспонированная kF, а матрица (F'F)'1 об- обратная к (F'F). Оценочную функцию можно получить, подстав- подставляя W в G.3). Пример 7.7. Рассмотрим дерево, изображенное на рис. 38. Перерисуем его на рис. 42, занумеровав все дизъюнкты. Рис. 42. = {F'F)~lF'H, G.5) В этом примере мы используем характеристики, определен ные следующим образом: Л (С, 5) = length (С)-{-length E)-2, f2(C, 5) = число обрамленных литер в С, /3(С, 5) = число необрамленных литер, входящих как в С, так и в В, ft (С, 5) = число литер в В, имеющих обрамленное дополнение в С, /5(С, 5) = число обрамленных литер в С, поглощающих послед- последнюю литеру из С. Вычисляя величины характеристик для каждой пары из де- дерева, изображенного на рис. 42, мы получим табл. 7.2. Вычисляя по формуле G.5), мы получаем ^0 = 0,30, а;1=1,68, ш>2 = 0,76, а», = -0,24, G.6) а»4 = —1,44, оу5 = 0,60. Таким образом, мы имеем ft (С, 5) = 0,30+1,68/1(С, 5) + 0,7б/2(С, 5)—0,24/, (С, В, -1,44/4(С, 5) + 0,60/5(С,5). G.7)
1Б4 ЛИНЕЙНАЯ РЕЗОЛЮЦИЯ ГЛ. 7 Таблица 7.2 § 7.8: ОЦЕНКИ ДЛЯ ОЦЕНОЧНЫХ ФУНКЦИЙ 155 i пара <С/Р В.) U (С,-. В.) f, (С,.. В(.) f, (С,.. В,-) ^ (С,.. В(.) /, (С,., В(.) ft» (С,., В,.) 1 2 3 4 5 6 7 8 9 10 И 12 13 14 1,2) .1,3) D,6) D,7) E,8) E,9) A0,14) A0,15) A1,16) A1,17) A2,18) A2,19) A3,20) A3,21) 2 2 1 1 2 2 1 1 1 1 2 2 1 1 0 0 0 0 1 1 1 2 1 1 2 2 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 2 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 3 4 2 2 4 3 1 3 3 1 3 4 2 2 Если мы воспользуемся этой функцией h(C, В), чтобы упо- упорядочить пары в CLIST непосредственно перед шагом 3 моди- модифицированного метода поиска в глубину, то этот метод даст де- дерево, изображенное на рис. 43,а или 43,Ь. В приведенном выше примере 7.7 мы показали, как получить оценочную функцию. Она приспособлена для множеств основных PvQ. PvQ. (b) Рис. 43. дизъюнктов и основана на одном примере. Очевидно, что чем больше примеров мы используем для построения оценочной функции, тем лучше она будет. Тем не менее мы применим сей- сейчас оценочную функцию, полученную в примере 7.7, к новому примеру, чтобы смотреть, насколько хороша оценка. Пример 7.8. Рассмотрим следующее множество упорядочен- упорядоченных дизъюнктов: B) р\, C) />„ D) ~Pl\f~Pt, E) ~ Р3 V Pit F) ~ Р3 V />8, G) ~ Я, V Я.. Используем A) в качестве верхнего дизъюнкта. Имеется три упорядоченных дизъюнкта, способных быть боковыми дизъюнк- дизъюнктами для A). Это D), E) и F). Воспользуемся функцией h (С, В) из равенства G.7) для следующего вычисления: ЛA,4) = 0,30 + 1,68-C + 2 —2)+0,76.0—0,24-1— — 1,44-0—0,60-0 = 3,42, ЛA,5) = 0,30+1,68-C + 2—2)+0,76-0—0,24-0 — — 1,44-0—0,60-0 = 3,66, /i(l,6) = 0,30+1,68-C+2 — 2) +0,76-0—0,24-0— — 1,44.0—0,60-0 = 3,66. Так как величина h A,4) наименьшая, мы выбираем дизъюнкт D) в качестве бокового для дизъюнкта A): G) ~/>х V~/>2 из A) и D). Оставшаяся часть доказательства тривиальна. Читатель может легко видеть, что следующие шаги завершают доказательство: (8) ~ Рг из G) и C), (9) □ из (8) и B). В этом примере не было порождено дизъюнктов, не относя- относящихся к делу. Заметим, что если бы оценочная функция заста- заставила нас выбрать дизъюнкт E) или F) в качестве бокового для дизъюнкта A), то были бы порождены дизъюнкты, не относя- относящиеся к делу. Таким образом, мы показали, что в этом приме- примере оценочная функция полезна. Мы можем теперь ответить на второй вопрос: как узнать, яв- является ли хорошим некоторое множество характеристик? Очевид- Очевидно, что если некоторое множество характеристик хорошее, то пос- после использования большого количества примеров для построения оценочной функции она должна обобщаться на новые примеры. Иными словами, эта оценочная функция должна хорошо себя показывать на новых примерах. Если она не обобщается на но- новые задачи, то экспериментатор должен проанализировать данные
156 ЛИНЕЙНАЯ РЕЗОЛЮЦИЯ ГЛ. 7 УПРАЖНЕНИЯ 157 и рассмотреть новые характеристики. Превосходное обсуждение построения оценочных функций для доказательства теорем чи- читатель найдет у Слэйгла и Фарре\ла [1]. ЛИТЕРАТУРА Андерсон и Бледсоу (Anderson R., Bledsoe W. W.) 1. A linear format for resolution with merging and a new technique for establishing completeness. —J, Assoc. Comput. Mach., 1970, 17, p. 525— 534. Дрейпер и Смит (Draper N. R., Smith H.) 1. Applied Regression Analysis. —N. Y.: Wiley, 1966. -Ейтс, Рафаэль и Харт (Yates R., Raphael В., Hart T.) 1. Resolution graphs.—Artificial Intelligence, 1970, 1, 257—289. Ковальски й и Кюне р (Kowalski R., Kuehner D.) 1. Linear resolution with selection function. —Artifical Intelligence, 1971, 2, p. 227 — 260.- Лавленд (Loveland D. W.) 1. Mechanical theorem proving by model elimination. — J. Assoc. Comput. Mach., 1968, 15, p. 236—251. 2. A simplified format for the model elimination theorem-proving proce- procedure.—J. Assoc. Comput. Mach., 1969, 16, p. 349—363. 3. Theorem provers combining model elimination and resolution. — In: Ma- Machine Intelligence, 4/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1969, p. 73—86. 4. A linear format for resolution.—Prcc. IRIA Symp. Automatic Demonst- Demonstration, Versailles, France, 1968. N. Y.: Springer, 1970, p. 147—162. 5. Some linear Herbrand proof procedures: an analysis.—Carnegie-Mellon University, Dept. of Computer Science, 1970. 6. A unifying view of some linear Herbrand procedures. — J. Assoc. Com- Comput. Mach., 1972, 19, p. 366—384. Л а к x ем (Luckham D.) 1. Refinement theorems in resolution theory.—Prcc. IRIA Symp. Auto- Automatic Demonstration, Versailles, France, 1968. N. Y.: Springer, 1970, p. 163—190. Ни ль сон (Nilsson N. J.) 1. Искусственный интеллект. Методы поиска решений.—М.: Мир, 1973. Рейтер (Reiter R.) 1. Two results on ordering for resolution with merging and linear format.— J. Assoc. Comput. Mach., 1971, 18, p. 630—646. Слэй г л (Slagle J. R.) 1. A proposed preference strategy using sufficiency resolution for answe- answering question.—UCRL 14361, Ltwrence Radiation Lab., Liveirr.cre, Ca- California, 1965. 2. Искусственный интеллект. Подход на сснсЕе эвристического програм- программирования.—М.: Мир, 1973. Слэйгл и Фаррел (Slagle J. R., Farrell C. D.) 1. Experiments in automatic learning for a multipurpose heuristic prog- program.— Comrn. Assoc. Comput. Mach., 1971, 14, p. 91 — 99. Уос, Карсон и Робинсон Г. (Wos L., Carson D. E., Robinson G. A.) 1. The unit preference strategy in theorem proving. — Proc. AFIPS 1964 Fall Joint Computer ConL, 1964, 26, p. 616 — 621. чен ь (Chang С. L.) 1. The unit proof and the input prcof in theorem proving. —J. Asscc. Ccm- put. Mach., 1970, 17, p. 698—707. УПРАЖНЕНИЯ К §7.2 1. Использовать линейную резолюцию для доказательства противоречи- противоречивости следующих множеств дизъюнктов: (a) S = {~P v Q, Р V R, ~Q, -#}; (b) S = {P v Q V R, ~P, ~Q, ~R v W, ~W); (c) S = {P v Q, Q V R, RV W, ~Rv ~P, ~W V ~Q, ~Q V ~R}. 2. Использовать линейную резолюцию для доказательства противоречи вости следующего множества дизъюнктов: (а) ~Е (х) V V (х) v S (х, f (х)); (b) ~£ (х) V V (х) v С (J (д)); () (е) ~S (а, у) у Р (у); (g) ~Р(х) V ~С(х). ) (f) ~P (х) V ~ V (х); Использовать дизъюнкт (g) в качестве верхнего дизъюнкта. 3. Доказать противоречивость следующего множества дизъюнктов с по- помощью линейной резолюции. Использовать последний дизъюнкт в качестве верхнего: (a) Р (х, I (х), е); (b) ~S (х) v ~S (у) v ~Р (х, / (у), г) V S (г); (c) S (а); (d) ~S(«). К §7.3 4. Доказать противоречивость следующих множеств дизъюнктов с по- помощью входной резолюции: (а) Р (/ (х), х, е), Р (е, х, х), о ч -Р (х, у, и) V ~Р (У, г, и) V ~Р (и, г, да) V Р (х, о, да), ""■ (х, у, и) v (, у ) -Р (а, х, е); -Р (г/, г, у) v ~Р (х, v, ш) v P (и, г, да), (Ь) Л (X, X), Л (х, г/) v ~Z) (у, г) v D (х, г), P(x)vD (g (x), x), Р (х) v i (/, g(x)), Р (х) v L (g (x), x), L (I, a), ~P (x) v ~D(x, a), -L (I, x) V ~L(x, a) vP(/(x)), <,~L (/, x) V ~L (x, a)V D(f (x), x). 5. Снова рассмотреть упражнение 4. На этот раз использовать единич- единичную резолюцию. 6. Пусть S — противоречивее множество основных дизъюнктов. Пусть L—единичный дизъюнкт из S. Пусть S' — множество, полученное из S вы- выбрасыванием дизъюнктов, содержащих L, и выбрасыванием ~L из оставших- оставшихся дизъюнктов. Доказать, что если имеется единичное опровержение из S, то должно найтись единичное опровержение из S'.
158 ЛИНЕЙНАЯ РЕЗОЛЮЦИЯ [ГЛ. 7 К § 7.4 7. Доказать с помощью OL-вывода противоречивость следующего мно- множества упорядоченных дизъюнктов: Р (е, х, х), Р {х, е, х), Р (*. I (х), в), Р (/ (х), х, е), S(b), ~ S (х) v ~S (у) v ~Р (дг, / (у), z)v S (г), ~Р (х, у, u) v ~Р (у, г, у) v ~Р (x, v, w) v Р (и, г, v), ~Р (л:, у, и) V ~Р (у, г, у) v ~Р (и, г, w) w P (х, v, w), ~S (/(&)). 8. Доказать с помощью OL-вывода противоречивость следующего мно- множества дизъюнктов: Р (/(*), х, е), Р (е, х, х), ~Р (л:, у, и) v ~Р (у, г, и) v ~.Р (и, г, w) v P (x, v, w), ~Р (х, у, и) v ~Р (у, z, v) v ~.Р (д:, v, w) v Р {и, г, w), ~Р(а, е, а). 9. Доказать лемму 7.2. 10. Доказать, что теорема 7.2 влечет теорему 6.2. К § 7.6 11. Рассмотрим следующее множество упорядоченных дизъюнктов: S = {P v Q, P v ~Q v R, P v ~Q v ~R, ~P v /?, ~Р v ~i?}. Пусть Pv Q будет верхним упорядоченным дизъюнктом. Пусть d* = 6. Доказать противоречивость S с помощью: (а) метода поиска в ширину; (Ь) метода поиска в глубину; (с) модифицированного метода поиска в глу- глубину. К § 7.8 12. Пусть S—следующее множество упорядоченных днзьюнктов: Р V Q V R, Р v Q V ~#, Р v ~Q V Я, Р v ~Q v ~#, ~PvQvR, ~Ру QV ~R, ~Pv~Qv R, ~Pv~Qv ~R. Пусть P v Q V ^ — верхний упорядоченный дизъюнкт. Используя оценочную функцию, заданную равенством G.7), для упорядоченных пар bCLIST, найти дерево, на котором будет работать модифицированный метод поиска в глу- глубину. ГЛАВА 8 РЕЗОЛЮЦИЯ С РАВЕНСТВОМ § 8.1. Введение Равенство—очень важное отношение, и многие теоремы мо- могут быть легко записаны с его помощью. Например, для фор- формализации теории чисел достаточно использовать единственный предикат—равенство, единственную функцию—функцию сле- следования и единственную константу 0 (Мельцер [1]). Отно- щение равенства имеет много специальных свойств: оно реф- рефлексивно, симметрично и транзитивно. Сверх того, мы можем также подставлять равные индивиды вместо равных. Если ра- равенство используется для записи некоторой теоремы-, то, кроме аксиом для самой конкретной теоремы, нам обычно нужна со- совокупность дополнительных аксиом, описывающих эти свойства равенства. Это объясняется на следующем примере. Пример 8.1. Рассмотрим теорему: если хох = е для всехх в группе G, то G коммутативна. (Здесь о—бинарная операция и е—единица в G; см. пример 4.3.) В дальнейшем Ах, А2, А3 и Л4—это четыре аксиомы для группы G, а В—заключение тео- теоремы: А{. х, y£G влечет xoy£G (свойство замкнутости); А2' х, у, z£G влечет xo(yoz) = (xoy)oz (свойство ассоциа- ассоциативности); Л3: хое = еох = х для всех x£G (свойство единицы); Л4: для любого x£G существует элемент x~*£G такой, что ~1 = х~1ох = е (свойство обращения); В: если хох = е для всех x£G, то G коммутативна, т. е. = voti для всех и, v£G. Допустим, что мы используем предикат равенства для записи этой теоремы. Допустим также, что мы применяем обычные соглашения и используем х = у, хфу и (хоу) для обозначения литер — (х, у), ~ = (х, у) и функции о(х, у) соответственно. Тогда приведенные выше аксиомы и заключение можно запи- записать в виде А[: (Vx)(Vy)Cz)(xoy=z); А'2: (Ух)(Уу)(Уг)[xo{yoz) = (хоу)ог); А'3: (Ух)(хое = х А еох = х)\ Л4: (Ух)(((хо1(х) = е) A (i (x)oX = e)); В': Ух {хох^е) —* ((Ум) (V») (ыо» = vou)).
160 РЕЗОЛЮЦИЯ С РАВЕНСТВОМ ГЛ. 8 Теперь, поступая, как в главе 4, т. е. отрицая В' и приво- приводя А[ Л А'2 Л А'3 Л А1 Л ~5' к стандартной форме с помощью скулемовских функций /, а и Ь, мы получаем множество S, состоящее из следующих дизъюнктов: A) xoy = f(x, у), B) x°(y°z) = (xoy)oz, C) хое = х, D) еох = х, E) xoi(x) = e, F) i(x)ox = e, G) хох = е, (8) Это множество S несколько проще, чем множество, полу- полученное в примере 4.3. Однако с использованием одной только резолюции мы не можем доказать, что S противоречиво. Не- Неприятность состоит в том, что S не содержит явной формули- формулировки свойств равенства. Чтобы формулизовать теорему пол- полностью, нам нужны дополнительные аксиомы, описывающие свойства равенства. Эти дополнительные аксиомы для данной теоремы заданы следующим образом: (9) х = х A0) хфу\/ A1) хфу\/ у A2) хфу\/ хфиу у = и, A3) хфуу ифх\/ и = у, A4) хфу\/!(х, z) = f(y, г), A5) хФУУ1{г, x) = f(z, у), A6) хфу V A7) хфу\/ A8) (рефлексивность равенства), (симметричность равенства), (транзитивность равенства), (подстановочность равенства). Пусть теперь К обозначает множество, состоящее из дизъ- дизъюнктов (9) —-A8). Тогда (S U /С) —противоречивое множество, что может быть доказано методом резолюции. Из приведенного выше примера видно, что если используется только резолюция, то нам нужны дополнительные аксиомы, вы- выражающие свойства отношения равенства. Иными словами, вся- всякий раз, когда используется равенство, мы должны задать ак- аксиомы, описывающие рефлексивность, симметричность, транзи- транзитивность и подстановочность равенства. Такой подход весьма неуклюж. Он не только требует больше дизъюнктов для пред- представления теоремы, но и создает тенденцию порождения много- многочисленных бесполезных резольвент. Было предложено много средств для решения этой проблемы и избавления от причиня- причиняющих хлопоты аксиом равенства вроде (9)—A8). Например, Дарлингтон [1] использовал аксиому подстановки из логики § 8.2 НЕВЫПОЛНИМОСТЬ В СПЕЦИАЛЬНЫХ КЛАССАХ МОДЕЛЕЙ 161 второго порядка, Дж. Робинсон [1] ввел обобщенный прин- принцип резолюции, обеспечивающий встроенное равенство, а Г. Ро- Робинсон и Уос [1] предложили для обращения с равенством правило парамодуляции. Имеется также система, введенная 3 и- бертом [1], и ^-резолюция, предложенная Мор р исом [1] для трактовки равенства. В этой главе мы рассмотрим парамодуляцию, так как она проста и естественна. Мы увидим позднее, что па- рамодуляция может заменить упомянутые выше аксиомы, выра- выражающие симметричность, транзитивность и подстановочность равенства. Мы увидим также, что в сочетании с резолюцией парамодуляции можно использовать для весьма естественного и эффективного доказательства теорем. § 8.2. Невыполнимость в специальных классах моделей Мы знаем, что множество S дизъюнктов противоречиво тогда и только тогда, когда S ложно во всех своих интерпретациях (Я-интерпретациях). Однако имеется много интересных множеств дизъюнктов, которые истинны в некоторых интерпретациях, но ложные других. Таково, например, множество S из примера 8.1. Хотя S не является противоречивым, оно ложно в любой ин- интерпретации, выполняющей К. В этом параграфе мы хотели бы охарактеризовать такие множества S. Это делается с помощью ограничения моделями из специального класса. Как и раньше, мы группируем материал вокруг понятий противоречивости и опровержения; опровергаемая формула приводится к стандарт- стандартной форме. В общем случае мы даем следующее определение. Определение. Для данного множества S дизъюнктов пусть W обозначает множество всех интерпретаций для S. Пусть Q — непустое подмножество множества W. Тогда говорят, что S яв- является Q-противоречивым, если S ложно в любом элементе мно- множества Q. Разумеется, для того чтобы сделать это определение осмыслен- осмысленным, мы должны иметь какой-то способ задания Q. Если мно- множество Q конечно, мы можем перечислить все его элементы. Бесконечное Q обычно определяется конъюнкцией аксиом неко- некоторой теории. Рассмотрим снова пример 8.1. Пусть Q — класс всех интерпретаций, выполняющих К, т. е. класс всех моделей множества К. Тогда S ложно в любом элементе множества Q, так как (SuK) противоречиво. Поэтому S является Q-противо- Q-противоречивым. В данном случае, так как К—множество аксиом теории равенства, a Q —множество всех моделей для К, то S будет на- называться Е-противоречивым, где Е символизирует равенство (equality). Многие авторы рассматривали специальные классы моделей различных теорий. Например, модели теории равенства рассмот- раны у Г. Робинсона и Уоса [1], модели частичного по- 6 Ч. Чень, Р. Ли
162 РЕЗОЛЮЦИЯ С РАВЕНСТВОМ ГЛ. 8 рядка и теорий множеств — у Слэйгла [1], модели теорий, заданных двухлитерными дизъюнктами, — у Диксона [1]. Так как рассмотрение теории равенств и других теорий проводится с помощью аналогичных подходов, мы рассмотрим в этой книге только модели теории равенства. Теперь мы следующим образом формально определим £-про- тиворечивые множества. Определение. Е-интерпретация I множества S дизъюнк- дизъюнктов—это интерпретация множества S, удовлетворяющая следу- следующим четырем условиям. Пусть а, р" и у — любые термы из эрбра- новского универсума множества S, и пусть L — литера из / Тогда 1)(а=аN/; 2) если (а = РN/, то (P = a)g/; 3) если (а = РN/ и ф = у)£1, то (а = у)£1; 4) если (а = Р)£ / и L' — результат замены некоторого вхожде- вхождения терма а в L на р, то L'g /. В действительности читатель может легко усмотреть, что Е- интерпретация — это в точности интерпретация, удовлетворяющая симметричности, транзитивности и подстановочности равенства, т. е. модель теории равенства. Определение. Множество S дизъюнктов называется Е-вы- полнимым тогда и только тогда, когда имеется ^-интерпретация, выполняющая все дизъюнкты из S. В противном случае S назы- называется f-невыполнимым или Е-противоречивым. Пример 8.2. Рассмотрим Sz=±\P(a), ~ P{b),a = b). Имеет- Имеется 64 интерпретации множества S. Среди них ^-интерпретациями являются только следующие шесть: {Р(а), Р(Ь), а = а, Ь = Ь, а = Ь, Ь = а\, {~Р(а), ~ Р(Ь), а = а, Ь = Ь, а = Ъ, Ь = а\, \Р(а), Рф), а = а, Ь = Ь, афЬ, Ьфа), \Р(а), ~Рф), а = а, Ь = Ь, афЬ, Ьфа}, {- Р{а), Рф),а = а,Ь = Ь, афЬ, Ьфа), \~Р{а), ~Рф),а = а,Ь=Ь,афЬ,Ьфа\. Очевидно, что S ложно в каждой из этих шести £-интерпре- таций. Поэтому S является ^-противоречивым. Отметим, что S не является противоречивым, так как интерпретация, содержащая Р(а), ~ Рф) и а = Ь, будет выполнять S. В дальнейшем мы обобщим теорему Эрбрана на £-противоре- чивые множества. Определение. Пусть S —множество равенств. Множество F аксиом рефлексивности для функций из S—это множество, вво- имое определением F^{f(xl,...,xn) = f(x1, ...,xn)\ для всех «-местных функциональных символов /, входящих в S' § 8.3 ПАРАМОДУЛЯЦИЯ - ПРАВИЛО ВЫВОДА ДЛЯ РАВЕНСТВА 163 Определение. Пусть S—множество дизъюнктов. Тогда множество аксиом равенства для S—это множество, состоящее из следующих дизъюнктов: A) х = х; B) хфу\1у = х\ C) хфу\/у=г\/х = г; D) х1фх0У~Р{хи .. .,Xj, ..., xn)\J Р {хг, ...,х0,. ..,*„)./ = = 1,...,я, для любого и-местного предикатного символа Р, входящего в S; E) Xy#*0V/(*i, •■■,*/, ■• ■.*„) = /(*! .*о, ••-.*«)./==!. ••■ . . ., п, для любого «-местного функционального символа /, вхо- входящего в S. Теорема 8.1. Пусть S—некоторо» множество дизъюнктов, а К—множество аксиом равенства для S. Тогда S является Е-про- тиворечивым тогда и только тогда, когда (SljA^) противоречиво. Доказательство. (=>) Допустим, что S является £-про- тиворечивым, а (S (J /С) выполнимо. Тогда существует интерпре- интерпретация /, выполняющая (S\jK). Так как / выполняет К, то / удовлетворяет всем четырем условиям на ^-интерпретацию. По- Поэтому / является ^-интерпретацией. Но / выполняет S. Это противоречит предположению о ^противоречивости множества S. Следовательно, (S(j/C) должно быть противоречиво. (<=) Допустим, что (S и К) противоречиво, но S является Е- выполнимым. Тогда существует ^-интерпретация lt: такая, что IE выполняет S. Очевидно, что 1Е выполняет также и /С. Следова- Следовательно, 1Е выполняет (S U /С). Это противоречит предположению о том, что (S|j/C) противоречиво. Поэтому S должно быть Е- противоречиво, что и требовалось доказать. Теорема 8.2. Множество S дизъюнктов является Е-проти- воречивым тогда и только тогда, когда имеется конечное подмно- подмножество S' основных частных случаев дизъюнктов из S такое, что S' является Е-противоречивым. Доказательство. (=Ф) Пусть К — множество аксиом ра- равенства для S. Тогда (S и/С) .противоречиво по теореме 8.1. По теореме Эрбрана имеется конечное множество S' частных случаев дизъюнктов H3S такое, 4to(S' U К) противоречиво. Следовательно, по теореме 8.1 множество S' является £-противоречивым. (<=) Так как S' является ^-противоречивым, то любая £-ин- терпретация опровергает S', т. е. любая ^-интерпретация опро- опровергает S. Поэтому S явпяется ^-противоречивым, что и требо- требовалось доказать. § 8.3. Парамодуляция — правило вывода для равенства Как установлено в предыдущих главах, дизъюнкт □ можно вывести из противоречивого множества дизъюнктов с помощью резолюции. В этом параграфе мы введем парамодуляцию. Позд- С" Зак. 112
64 РЕЗОЛЮЦИЯ С РАВЕНСТВОМ ГЛ. 8 нее будет показано, что, используя как резолюцию, так и па- парамодуляцию, мы всегда можем вывести □ из Е-противоречивого множества дизъюнктов. Рассмотрим следующие дизъюнкты: С,: Р(а), С2: а = Ь. Так как С2—это равенство а = Ь, мы подставляем Ь вместо а в Сх и получаем дизъюнкт С3: Р(Ь). В общем случае правило подстановки для равенства можно сформулировать так: если дизъюнкт Сг содержит терм t, а еди- единичный дизъюнкт С2 есть t = s, то выводим из них новый дизъюнкт, подставляя s вместо одного-единственного вхождения t в С1. Парамодуляция — это по существу обобщение описанного пра- правила подстановки для равенства. Оно может быть применено к любой паре дизъюнктов (не обязательно единичных). Если выражение Е (например, дизъюнкт, литера или терм) содержит терм t, то для удобства мы иногда будем обозначать его через £[/]. Кроме того, если одно-единственное вхождение терма t за- заменяется на терм s, то результат будет обозначен через E(s). При таком соглашении парамодуляцию для основных дизъюнктов можно сформулировать так: если С\ есть L[t]\/Ci, где L(t) — литера, содержащая терм t, а С[—некоторый дизъюнкт, и если С2 есть t = s\/C't, где С2—некоторый дизъюнкт, то выводим следующий дизъюнкт, нвзываемый их парамодулянтом'. Пример 8.3. Рассмотрим следующие дизъюнкты: С\: P(a)VQ(b), С2: a = b\/R(b). Пусть L есть Р(а), С[ есть Q{b) и С'г есть R (Ь). Так как L содержит а, запишем его в виде L[a]. Дизъюнкт С2 содержит литеру-равенство а — b. Поэтому L[b] есть Р{Ь). Следовательно, парамодулянт дизъюнктов С\ и С2 есть P(b)\/Q(b)VR[(b). Конечно, парамодуляцию можно определить также и для дизъюнктов общего вида. В этом случае мы обычно должны сде- сделать подстановку до того, как применить парамодуляцию. Рас- Рассмотрим дизъюнкты Сх: P(x)VQ(b), С2: a = bWR(b). § 8.3 ПАРАМОДУЛЯЦИЯ — ПРАВИЛО ВЫВОДА ДЛЯ РАВЕНСТВА 165 Дизъюнкт С\ не содержит терма а. Однако если заменить х на а, то мы получим частный случай дизъюнкта Ct С'г. P(a)\Q(b). Теперь из С[ и С2 мы можем получить парамодулянт С',: P(b)\/Q(b)VR(b). С3 мы будем считать также парамодулянтом дизъюнктов С\ и С2. Теперь мы даем формальное определение парамодуляции. Определение. Пусть Сх и С2—дизъюнкты (называемые посылками), неимеющиеобщих переменных. Если С\ есть L [t]\/C[ и С2 есть r = sVC2, где L[t] — литера, содержащая терм t, а С[ и С2—дизъюнкты, и если t и г имеют наиболее общий унифика- унификатор а, то разрешается вывести дизъюнкт La [so]u da и С'2а, где La [sa] обозначает результат замены одного-единственного вхождения ta в La на sa. Этот выведенный дизъюнкт называется бинарным парамодулянтом дизъюнктов С\ и С2; литеры L nr = s называются литерами парамодуляции. Иногда мы будем говорить, что мы применяем парамодуляцию из С2 в Ct. Пример 8.4. Рассмотрим дизъюнкты С г- P(g(fix)))VQ(x)> В этом примере L есть Р (g (f (х))), ГС[ [есть Q (х), г есть / (g (b)), s есть а и С'г есть R(g(c)). L содержит терм f(x), который может быть унифицирован с г. Пусть t есть/(х). Наиболее общий уни- унификатор термов t и г—это o = {g(b)/x\. Поэтому Lafifcr] есть P(g(f(g(b))))- Следовательно, La[sa] есть P(g(a)). Так как С[а есть Q(g(b)) и С'га есть R(g(c)), мы получаем бинарный парамо- парамодулянт P(g(a))\/Q(g{b))\/R[{g(c)). Литеры парамодуляции—это P{g(f{x))) и f{g{b)) — a. Определение. Парамодулянт дизъюнктов Сх и С2 (назы- (называемых посылками) — это один из следующих бинарных парамо- дулянтов: 1) бинарный парамодулянт Сг и С2; 2) бинарный парамодулянт Ct и некоторой склейки С2; 3) бинарный парамодулянт некоторой склейки С\ и С2; 4) бинарный парамодулянт Сх и некоторой склейки С2. Парамодуляция — это правило вывода для отношения равен- равенства. Это правило было введено Г. Робинсоном и Уосом[1]. Можно показать, что сочетание резолюции и парамодуляции полно для ^-противоречивых множеств дизъюнктов. Иными словами,
It* РЕЗОЛЮЦИЯ С РАВЕНСТВОМ ГЛ. 8 используя резолюцию и парамодуляцию, мы всегда можем поро- породить пустой дизъюнкт □ из ^-противоречивого множества дизъ- дизъюнктов. Далее, многие уточнения парамодуляции х) все еще полны при использовании в сочетании с резолюцией. Это будет обсуж- обсуждаться в следующих параграфах. § 8.4. Гиперпарамодуляция Как и в случае революции, целью уточнения парамодуляции является увеличение эффективности. Многие уточнения парамо- парамодуляции были рассмотрены Ченем [1], Ченем и Слэйглом [1], Ковальским [1], Уосом и Г. Робинсоном [1] и Андерсоном [2]. Уточнения парамодуляции несколько слабее уточнений резолюции. Для парамодуляции нет полных аналогов /•/-резолюции (§ 6.3) и OL-резолюции (§ 7.4). Но, к счастью, гиперрезолюция и линейная резолюция могут быть обобщены на парамодуляцию. В этом параграфе мы рассмотрим сначала гипер- парамодуляцию. Затем в следующих параграфах мы рассмотрим единичную, входную и линейную парамодуляцию. Определение. Пусть Р—упорядочение предикатных сим- символов, содержащее все предикатные символы из дизъюнктов С\ и С2. Тогда парамодулянт дизъюнктов Ct и С2 называется Р-ги- перпарамодулянтом, если выполнены следующие два условия: 1. С1 и С2 — положительные дизъюнкты. 2. Литеры парамодуляции в С, и С2 содержат наибольшие предикатные символы в Сг и С2 соответственно. С другой стороны, Р-гиперрезольвента— это Р/-резольвента для интерпретации /, в которой каждая литера содержит знак отрицания. Отметим, что в этом случае электроны и Р-гипер- резольвенты положительны. Определение. Пусть Р — упорядочение предикатных сим- символов, входящих в множество S дизъюнктов. Тогда Р-гипервывод с резолюцией и парамодуляцией—это вывод, каждый дизъюнкт которого либо принадлежит S, либо является Р-гиперрезольвен- той или Р-гиперпарамодулянтом. Р-гиперопровержение с резолю- резолюцией и парамодуляцией—это Р-гипервывод пустого дизьюнкта □ с резолюцией и парамодуляцией. Пример 8.5. Рассмотрим S^=±{~ Q (a)V~ R {a)\Ja = b, Q(a)Wa = b, R(a), f(a)=£f(b), f(x) = f(x)\. Пусть Р-следующее упорядочение предикатных символов: Q>R>=. Для этого примера мы получаем Р-гиперопровержение с резолюцией и па- парамодуляцией, изображенное на рис. 44, где г* указывает, что Р-гиперпарамодуляция применяется слева направо, а гл указы- указывает, что применяется Р-гиперрезолюция. ]) Под уточнением имеется в виду введение дополнительных ограничений иа применение парамодуляции. ~Прим. ред. 8.4 ГИПЕРПАРАМОДУЛЯЦИЯ 167 Т е ор е м а 8.3 (полнота Р-гиперпарамодуляции). Если Р — упо- упорядочение предикатных символов в конечном Е-противоречивом множестве S дизъюнктов, то имеется Р-гиперопровержение с ре- резолюцией и парамодуляцией из множества (S и {х — х\ U F), где F — совокупность аксиом рефлексивности для функций из S. Доказательство. Пусть К—множество аксиом равенства для S. Так к£к S является ^"противоречивым, то по теореме 8.1 множество (Su/C) противо- ~~ " R(a) речиво. Пусть /—интерпре- ii(a)va Q(a)v~P(a)va=b f(a)*f(b) тация множества S, в кото- которой любая литера отрица- отрицательна. По теореме 6.1 име- имеется Р/-опровержение D (по- (посредством одной только ре- резолюции) из множества (S(j/C).Mbi покажем теперь, что любой положительный дизъюнкт из D можно выве- вывести из (S\j{x = x\(jF). Для каждого Р/-клаша (El,Ei, ... ..., Ev N)bD дизъюнкты Elt Е2, ..., Eq могут принадлежать К, только если они имеют вид х = х, так как никакой дизъюнкт из К, кроме х = х, не является по- положительным, а £,, Ег, ...,£„ положительны1). Если ядро N- принадлежит S, то Р/-резольвента этого клаша искомая. Если N принадлежит К ( и N не есть х = х), то мы имеем следующие четыре возможных случая. Случай 1. N есть хфу\/у = х. В этом случае q=\, Ег есть tl = t2\/F'1,TAe.tl\it2 — термы (не обязательно основные), а Е[ — некоторый дизъюнкт. Резольвента этого клаша ti=t1\/E[ явля- является также Р-гиперпарамодулянтом дизъюнктов Е1 и х — х2). Случай 2. N есть хфу\/уф z\Jx = z. В этом случае <? = 2, Ел есть tl = t2\/E'l и Е2 есть s, = s2V-^2. где Е[ и £2—дизъюнкты, а /,, t2, s,, s2 — термы такие, что имеется наиболее общий уни- унификатор о, для которого ^2ct = s1ct. Разольвента этого клаша есть ^1a = s20\/.£'i<JV£2cr, которая является также Р-гиперпарамоду- Р-гиперпарамодулянтом дизъюнктов Et и Ег. Случай 3. N имеет вид xf фхо\/~ Р(х V P{xlt . . . ,х0, . . ., хп). В этом случае q = 2, £ Ег есть P(slt . . ., Sy, . . ., sn)\/E'2, где Е\ и Е'г t .. ., xJt . .., хп) V есть tJ- = t0\/E'1 и дизъюнкты, a t y nJ \ гд, /t tn, s,, .. . ,Sj, . .., sn—термы такие, что имеется наиболее общий унификатор о, для которого tjG = SjO. Резольвента этого клаша ') Здесь в доказательстве авторов содержалась неточность.—Прим. перев. 2) Таким образом, можно считать, что в определении парамодуляции до- допускается смена ролей г и s. Ниже авторы пользуются этим более широ- широким пониманием парамодуляции (в частности, в доказательстве леммы 8.2).— Прим. ред.
168 РЕЗОЛЮЦИЯ С РАВЕНСТВОМ ГЛ. 8 есть Е[а\/Е'га\/Р (sta, ..., sy_1a, toa, sJ+1a, ..., sna), а она является также и Р-гиперпарамодулянтом дизъюнктов Et и Е2. Случай 4. N имеет вид х1Фх0\Ц{х1, ...,*,,...,х„) = /{х1, ... ■ у,х0, ...,хп). В этом случае q=\ и £t есть tj = to\/Ei, где Е[—дизъюнкт, а tj и t0—термы. Резольвента этого клаша Е[\/ \Zf(xlt .. ., tj, . . . ,хп) = f(xlt . . ., t0, . . ., хп), а она является также и Р-гиперпарамодулянтом дизъюнкта £\ и f(x1,...,xn) = = /(*i, ••-,*„). Таким образом, мы показали, что любой положительный дизъюнкт, встречающийся в опровержении D, может быть выве- выведен из (S\j{x = x\uF) с использованием Р-гиперрезолюции и Р- гиперпарамодуляции. Это завершает доказательство. Теорема 8.3 говорит, что для применения резолюции нам достаточно рассматривать только такие клаши, в которых элек- электроны положительны, а для парамодуляции достаточно рассмат- рассматривать только положительные дизъюнкты. Эта процедура поиска вывода устранит максимально возможное число ненужных вы- вычислений, особенно в случаях, когда входное множество дизъ- дизъюнктов содержит мало положительных дизъюнктов. Кроме того, упорядочение Р предикатных символов может играть важную роль в процедуре поиска вывода. При желании мы можем исполь- использовать резолюцию интенсивнее, чем парамодуляцию (или наобо- наоборот), объявляя символ равенства наименьшим (или наибольшим) предикатным символом в упорядочении Р. Если символ равен- равенства j= — наименьший предикатный символ в упорядочении Р, мы получаем весьма интересное следствие теоремы 8.3. Следствие 8.1. Если Р—упорядочение предикатных сим- символов, входящих в конечное Е-противоречивое множество S дизъ- дизъюнктов, причем символ равенства наименьший в Р, a F—сово- F—совокупность аксиом рефлексивности для всех функций изБ, то имеется вывод дизъюнкта П из множества (S (J {х = х\ U F) с помощью резолюции и парамодуляции, в котором 1) все резольвенты являются Р-гиперрезольвентами, 2) парамодуляция применяется только из дизъюнктов, целиком состоящих из положительных литер-равенств, в положительные дизъюнкты. Отметим, что если мы используем Р-гиперпарамодуляцию и Р-гиперрезолюцию, то для получения доказательства требуется множество F аксиом рефлексивности для функций. Рассмотрим, например, S^±{a = b, f(a) =/=f{b)}. Множество S является £-про- тиворечивым. Однако нет Р-гиперопровержения с резолюцией и парамодуляцией из множества (S[) \х = х\). С другой стороны, имеется Р-гиперопровержение с резолюцией и парамодуляцией из множества (S(j {x = x\\J F), где F^{f() f)\1) х) F способствует сочетаемости стратегий с парамодуляцией, но во мно- многих случаях может быть опущено (см., например, Б ранд (Brand D.). Pro- § 8.5 ВХОДНАЯ И ЕДИНИЧНАЯ ПАРАМОДУЛЯЦИИ 169 § 8.5. Входная и единичная парамодуляции Материал, излагаемый в этом параграфе, обобщает § 7.3. Пусть S—первоначальное входное множество дизъюнктов. Со- Согласно данному ранее определению каждый дизъюнкт из S на- называется входным. В дальнейшем буквы Я и 3* обозначают соответственно резолюцию и пара- модуляцию. Входная парамодуляция—это парамодуляция, в которой одна из посылок—входной дизъюнкт. Парамодуляция называется единичной, если хотя бы одна посылка или склейка посылки, при- применяемая для получения парамодулянта, являет- является единичной. Входной (единичный) вывод по правилу 5s — это вывод, получаемый применением только вход- входной (единичной) парамодуляции. Входной (еди- (единичный) вывод по 31 и Р—это вывод, получен- полученный применением как входной (единичной) ре- резолюции, так и входной (единичной) парамоду- парамодуляции. Входное (единичное) опровержение—это входной (единичный) вывод пустого дизъюнкта. Лемма 8.1. Если множество S основных дизъюнктов имеет входное опровержение по 5i и S*, то оно имеет единичное опро- опровержение по 91 и 9*. Доказательство. Пусть D — изображенное на рис. 45 входное опровержение из S, где Со, Во, ..., £n_i—входные дизъюнкты. Пусть D,—часть фигуры D, состоящая из С,-, С/+1, .... С„и BitBi+1, ...,£„_! (t = 0, 1, 2, .... п—1). Если Bj (г = 0, 1, ..., п—1)—-единичные основные дизъюнкты, то все в порядке. В противном случае входное опровержение D можно преобразовать в единичное опровержение с помощью следующей^процедуры: Рис ving theorems^with the modification method.—SIAM J. Comput., 1975, 4, №; Дегтярев*5А. И. Стратегия строгой парамодуляции. — Семиотика и инфор- информатика, 1979, № 12). Так, без привлечения аксиом рефлексивности может быть доказан следующий почти полный аналог гиперпарамодуляции, опирающийся на теорему 1 из Дополнения В. Пусть П—упорядочение предикатных сим- символов и их отрицаний вида Ф > ~ Р2 > ■ . . > ~ Рь > Р\ >;•••> P'k+l< гДе Pi, . . . , P'k+i — перестановка символов =, -Р-,, . . ., Р^. П-парамодуляция из С2 в Сх требует, чтобы литеры парамодуляции были наибольшими в своих дизъ- дизъюнктах (С2 ПРИ эт°м обязательно положителен). П-парамодуляция полна в со- сочетании с П-стратегией (т. е. разрешением отрезать при применении резолю- резолюции лишь наибольшие литеры посылок) и не требует аксиом рефлексивности.— Прим. ред.
170 РЕЗОЛЮЦИЯ С РАВЕНСТВОМ ГЛ. 8 1. Пусть г—наибольшее число такое, что Вг — неединичный основной дизъюнкт, а Б,—единичный основной дизъюнкт для i = r+^ r+?> ■■' «-1-Пусть f/r+1 = {Sr+1, Br+2, .... Bn_J. 2. Пусть ^ — литера из Вг, участвующая в резолюции или парамодуляции. 3. Сведем Вг к единичному дизъюнкту Lr, используя мно- множество Ur+1. Это возможно, так как Br—{Lr\ содержится в Сг+1, а Сг+1 можно свести к пустому дизъюнкту, используя множество Ог+1. 4. Пусть С'г+1 — резольвента или парамодулянт дизъюнктов Сг и Lr, причем С'г+1 соответствует дизъюнкту Сг+1. Очевидно, что С'г+1 содержится в Сг+1 и может быть сведен к пустому дизъюнкту с помощью Ur+1, так как это верно для С,+1. Пусть D'r+1—такое опровержение. 5. Заменим Dr+1 на D'r+1 и Вг на Ьг. 6. Полагаем Vr = Ur+1 U {Lr\ и r = r— 1 и переходим назад к шагу 2. Повторяя описанный выше процесс, мы в конце концов по- получим дизъюнкт С[, который является резольвентой или пара- модулянтом дизъюнктов Со и LB. Но С; можно свести к □, используя Uг. Так как £/t—множество основных дизъюнктов и каждый L,- получен из В,- использованием единичной резолюции и единичной парамодуляции, то ясно, что мы можем получить из S единичное опровержение. Это завершает наше доказатель- доказательство. Теорема 8.4. Если некоторое множество S дизъюнктов имеет входное опровержение по правилам 91 и !Р, то S вместе с аксиомами рефлексивности для своих функций имеет единичное опровержение по правилам 91 и 9*. Доказательство. Так как S имеет входное опроверже- опровержение Dx по правилам 91 и 5\ то имеется основная подстановка 0 (подставляющая основные термы вместо переменных) такая, что Dfi—входное опровержение по правилам 91 и Э3. Пусть S' — множество всех основных дизъюнктов, находящихся в исходных узлах фигуры DtG. По лемме 8.1 множество S' имеет основное единичное опровержение D2 по правилам 91 и ?. Исходя из единичного опровержения D2, мы можем получить единичное опровержение из множества S и аксиом рефлексивности для его функций. Это делается следующим образом. В каждом исход- исходном узле фигуры D'2 заменим основной дизъюнкт С" на дизъюнкт С, принадлежащий множеству S, такой, что С" есть частный случай дизъюнкта С. (Если С—основной единичный дизъюнкт, то С должен быть единичным дизъюнктом или иметь единичную склейку.) Для основного дизъюнкта В', находяще- находящегося в неисходном узле N фигуры D'2, если Л^ и N2—непосред- N2—непосредственные предшественники узла N и если Bt и В2—дизъюнкты, которые уже были получены описанным способом для Afx и N2 § 8.5 ВХОДНАЯ И ЕДИНИЧНАЯ ПАРАМОДУЛЯЦИИ 171 соответственно, то мы заменим основной дизъюнкт В' и узел N следующим образом. Если В'—единичная резольвента, заме- заменяем В' на единичную резольвенту В дизъюнктов Вх и В2 та- такую, что В' есть частный случай дизъюнкта В. (Если В'—основ- В'—основной единичный дизъюнкт, то В должен быть единичным дизъюнк- дизъюнктом или иметь единичную склейку.) Пусть В' — единичный парамодулянт основных дизъюнктов В[ и В'2, помещенных соот- соответственно в узлы Nt и N2. Допустим, что В' получен парамо- дуляцией от В{ и В'2. В этом случае, производя парамодуляцию- от нескольких (возможно, нуля) аксиом рефлексивности к В2г мы можем получить такой частный случай В*2 дизъюнкта В2, что по правилу парамодуляции от В1 к В*2 мы можем получить дизъюнкт В, частным случаем которого является В'. (Если В* есть основной единичный дизъюнкт, то В должен быть единичным дизъюнктом или иметь единичную склейку.) Заменим В' и N на вывод дизъюнкта В. (Отметим, что последний вывод является единичным.) Таким образом, мы можем ^получить единичное опровержение по правилам 91 и S* из S и аксиом рефлексив- рефлексивности для его функций. Это завершает доказательство. Мы подозреваем, что верно и обращение теоремы 8.4. В на- настоящий момент мы не имеем его доказательства. Однако в даль- дальнейшем будет показано, что если S состоит только из единичных дизъюнктов, то S имеет входное опровержение. Это очень важно во многих системах. Например, в системе правил трансформации (Куинлен и Хант [1]) каждое правило можно рассматри- рассматривать как единичный дизъюнкт (аксиому). В этом случае мы мо- можем использовать входную стратегию. На приводимых ниже рисунках знак г\ указывает, что па- рамодуляция [применяется справа налево, а знак г\—что она (О применяется слева направо. Знак г\ показывает, что применя- применяется резолюция. Мы сформулируем теперь лемму, доказатель- доказательство которой дано в приложении В. Лемма 8.2. Пусть в выводе по правилам 9L и 5s, изобра- изображенном на рис. 46, а, основной единичный дизъюнкт М выведен путем парамодуляции'из основного дизъюнкта S!=:s2 в основной- единичный дизъюнкт М', и пусть основной дизъюнкт L выведен
172 РЕЗОЛЮЦИЯ С РАВЕНСТВОМ ГЛ. 8 (с использованием резолюции или парамодуляции) из основных единичных дизъюнктов V и М. Тогда вывод, изображенный на рис. 46, а, можно преобразовать в один из видов, изображен- изображенных на рис. 46, Ь, 46, с. },- Ветвь дерева вывода—это путь, связывающий какой-либо исходный узел с корнем дерева. Например, жирная линия на рис. 47, а—ветвь. Узел N некоторого дерева вывода называется боковым узлом для некоторой ветви, если он не находится на этой ветви, но присоединяется к ней одним ребром. Например узлы 1 и 2 на рис. 47, а боковые для ветви, обозначенной жир- жирной линией. Дизъюнкт называется боковым для ветви В, если он помещен в узел, боковой для В. Лемма 8.3. Если С—дизъюнкт в некотором Е-противоре- чивом множестве S основных единичных дизъюнктов, содержащем все | основные частные случаи дизъюнкта х — х, и множество S — {С} является Е-выполнимым, то S имеет входное опроверже- опровержение по правилам ZA и Э3 с верхним дизъюнктом С. Доказательство. Согласно теореме 8.3 S имеет опро- опровержение D по правилам Si и 3*. (Мы отмечаем, что так как S состоит только из основных единичных дизъюнктов, правило резолюции^применяется в D только на последнем шаге, когда получается пустой дизъюнкт □•) Так как множество S — {С} является £-выполнимым, то С должен встретиться в D хотя бы один раз. Следующая процедура преобразует D во входное опровержение с верхним дизъюнктом С. 1. Пусть В—ветвь, начинающаяся в узле, в котором поме- помещено некоторое вхождение дизъюнкта С. Без потери общности мы можем предположить, что в выводе D любая парамодуляция вне ветви В применяется справа налево. 2. Проверим, есть ли неисходный узел, боковой для В. Если такого нет, то дерево, которое у нас есть, уже представляет собой входное опровержение с верхним дизъюнктом С. В про- противном случае выберем один из таких боковых узлов N. 3. Пусть Nx и Л^2 — непосредственные предшественники узла N. 4. Применяя лемму 8.2 к N, N, и Nt, мы можем устранить узел N. 5. Перейти обратно к шагу 2. Применяя к D описанную выше процедуру, мы можем по- получить входное опровержение по правилам &{ и 5* с верхним дизъюнктом С. Это завершает доказательство. Пример 8.6. На рис. 47 мы иллюстрируем с использова- использованием леммы 8.2 последовательность преобразований, переводя- переводящих невходное опровержение во входное опровержение. Теорема 8.5. Если С—дизъюнкт в Е-противоречивом мно- множестве S единичных дизъюнктов, включающем х = х и аксиомы рефлексивности для функций, и если S—{С} является Е-выпол- § 8.5] ВХОДНАЯ И ЕДИНИЧНАЯ ПАРАМОДУЛЯЦИИ 173 нимым, то S имеет входное опровержение по правилам §Я и !Р с верхним дизъюнктом С. Доказательство. Так как S является ^-противоречивым, a S — {С}—£-выполнимым, то по теореме 8.2 имеется конечное множество S' основных частных случаев дизъюнктов из S и ~P(f(c)) a=f(b) ■~P(f(b)) P(d) a=f(b) P(f(b)) ~P(d) P(d) (c) (d) Рис. 47. a=f(b) b = c g(a)=f(c) P(d) основной частный случай С" дизъюнкта С такой, что С' при- принадлежит S', множество S' является ^-противоречивым и S' — {С} является £-выполнимым. Добавим к S' все основные частные случаи дизъюнкта х = х. После этого в силу леммы 8.3 множество S' имеет входное опровержение D' по правилам Si и 5s с верхним дизъюнктом С. Используя доказательство (ме- (методом подъема), аналогичное доказательству теоремы 8.4, мы можем получить из входного опровержения D' входное опровер- опровержение из множества S по правилам Э1 и Р с верхним дизъюнк- дизъюнктом С, что и требовалось доказать.
174 РЕЗОЛЮЦИЯ С РАВЕНСТВОМ ГЛ. 8 § 8.6. Линейная парамодуляция Определение. Для данного множества S дизъюнктов и данного дизъюнкта Со, принадлежащего S, линейным выводом дизъюнкта Сп из множества S по правилам Э1 и 3* называется вывод вида, изображенного на рис. 48, удовлетворяющий сле- следующим условиям: 1. Для / = 0, ..., п — 1 дизъюнкт С,+1 есть резольвента или парамодулянт дизъюнкта С,- (называемого центральным дизъюнктом) и В( (называемого боковым дизъюнктом). 2. Каждый В,- либо принадлежит S, либо совпадает с Су для некоторого /< i. Мы отметим, что линейный вывод по правилам Э1 и 93 явля- является входным выводом по правилам НА и 5s, если В; принадле- принадлежит S для 1 = 0, ..., п—-1. Линейное опровержение по правилам Э1 и 9*—-это линейный вывод дизъюнкта □ по правилам 5? иУ Пример 8.7. Пусть S — {~Q(c)Vc = d, ~Q (с)\/f (с) ф f (d), Q(c)\Ja = b, Q(c)V/(«)=/=/(^). /(*) = /(*)}. Тогда линейный вывод 0.@ f{X) = H(c)va = b (l(c)vf(a)*f(b) f(x)=f{x) Рис. 48. D Рис. 49. из множества S с верхним дизъюнктом ~Q(c)\/c = d изображен на рис. 49. Там имеется шесть боковых дизъюнктов. Пять из них принадлежат S, в то время как один, а именно ~Q(c), —это дизъюнкт, выведенный ранее. Лемма 8.4. Если С— дизъюнкт, принадлежащий Е-непро- тиворечивому множеству S основных дизъюнктов, содержащему все основные частные случаи дизъюнкта х = х, и если S—{С} является Е-выполнимым, то S имеет линейное опровержение по правилам Ш, и 9* с верхним дизъюнктом С. Доказательство. Пусть k(S) равно по определению общему числу вхождений литер в S минус число дизъюнктов § 8.6" ЛИНЕЙНАЯ ПАРАМОДУЛЯЦИЯ в S. Мы докажем лемму 8.4 индукцией по k(S). Если k(S) = O, то S целиком состоит из основных единичных дизъюнктов. Та- Таким образом, по лемме 8.3 множество S имеет входное опро- опровержение по правилам ZA и 9* с верхним дизъюнктом С. Так как входное опровержение является линейным опровержением, то лемма 8.4 имеет место для k(S) = O. Допустим, что лемма 8.4 верна для k(S)<n. Чтобы завершить индукцию, мы рассмотрим случай, когда k(S) = n и п > 0. Так как &(S)>0, в S имеется неединичный дизъюнкт. Если С — неединичный дизъюнкт, поло- положим C = A\/L, где А—-непустой основной дизъюнкт, a L—• основная литера. Пусть S1 = (S—{С})и{Л} и S2 = (S — {С}) U Щ. Ясно, что S[ и S, в отдельности ^-противоречивы, a St—{Л} и S2 — {L\ ^-выполнимы. Однако k(Sj)<Cn и k(S2)<Cn. Следова- Следовательно, по индукционному предположению множества Sx и S2 имеют линейные опровержения Dx и D2 по правилам &{ и 51 с верхними дизъюнктами Л и L соответственно. Пусть D[ — ли- линейный вывод, полученный из Dy путем возвращения L назад к Л. Если D[—линейное опровержение по правилам Ш и 5s, то все в порядке. Если нет, то D[—линейный вывод дизъюнкта L из множества S по правилам НА и 5\ Комбинируя D[ и D2, мы получим линейное опровержение для множества S по правилам оЯ и 5s с верхним дизъюнктом С. Поэтому лемма 8.4 верна для этого случая. Если С — единичный дизъюнкт, то С не может быть частным случаем дизъюнкта х = х, так как (S — {С}) явля- является £-выполнимым, a S является ^-противоречивым. В этом случае мы выбираем неединичный дизъюнкт В в (S —{С)}. Не умаляя общности, мы можем считать, что (S — {В}) является £-выполнимым, так как в противном случае мы могли бы вы- выбросить В из S. Так как (S — {С}) является £-выполнимым и В входит в (S — {С}), мы можем выбрать в В литеру L такую, что B — A\/L и ((S — {B})U{^^) — {С} является £-выполнимым. Пусть S1 = (S — {B})\J{A\ и S2 = (S —{B})U{Z.}. Ясно, что Sl и S2 являются ^-противоречивыми, a (St — {С}) и (S2 —{L}) являются £-выполнимыми. Однако k(Sl)<_n и k (S2) < п. Снова применяя индукционное предположение, мы можем показать, что имеется линейное опровержение для S по прави- правилам Э1 и 5s с верхним дизъюнктом С. Это завершает доказа- доказательство. Теперь, применяя рассуждение, аналогичное использованному в доказательстве теоремы 8.5, мы можем поднять лемму 8.4 до общего (неосновного) случая. Теорема 8.6 (полнота линейной парамодуля- ции). Если С—дизъюнкт, принадлежащий некоторому Е-про- тиворечивому множеству дизъюнктов, включающему х = х и аксиомы рефлексивности для функций, причем множество S — {С} является Е-противоречивым, то S имеет линейное опро- опровержение по правилам Э1 и 9* с верхним дизъюнктом С.
176 РЕЗОЛЮЦИЯ С РАВЕНСТВОМ ГЛ. 8 AFIPS 1970 Spring Joint ЛИТЕРАТУРА Андерсон (Anderson R.) 1. Completeness results for ^-resolution.—Proc. Computer Conf., 1970, p. 653—656. 2. Completeness of the locking restriction for paramodulation.—Dept. of Computer Science, Uni/. of Houston, Texas, 1971. Дарлингтон (Darlington J. L.) 1. Automatic theorem proving with equality substitutions and mathematical induction.— In: Machine Intelligence, 3/Ed. D. Michie. N.Y.: American Elsevier, 1968, p. 113—127. Диксон (Dixon J.) 1. Z-resolution: theorem-proving with compiled axioms.— J. Assoc. Comput. Mach., 1971, 18. 2. Experiments with a Z-resolution program.—Division of Computer Re- Research and Technology, National Institutes of Health, Bethesda, Mary- Maryland, 1971. Зиберт (Sibert E. E.) 1. A machine oriented logic incorporating the equality relation.—In: Machine Intelligence, 4/Ed. B. Meltzer and D. Michie. N.Y.: American Elsevier, 1969, p. 103—134. Ковальский (Kowalski R.) 1. The case for using equality axioms in automatic demonstration.— Proc. Symp. Automatic Demonstration, N.Y.: Springer, 1970, p. 112—127. Куинлен и Хант (Quinlan J. R., Hunt E. B.) 1. A formal deductive problem-solving system.— J. Assoc. Comput. Macn., 1968, 15, p. 625-646. Мельцер (Meltzer B.) 1. A new look at mathematics and its mechanization.— In: Machine Intel- Intelligence, 3/Ed. D. Michie. N.Y.: American Elsevier, 1968, p. 63—70. Моррис (Morris J. B.) 1. ^-resolution: Extension of resolution to include the equality.— Proc. Inter. Joint Conf. Artificial Intelligence, Washington, D. C, 1969, 287-294. Нортон (Norton L. M.) 1. Experiments with a heuristic theorem-proving for the predicate'calculus with equality.—Artificial Intelligence, 1971, 2, p. 261—284. Робинсон Г. и Уос (Robinson G. A., Wos L.)] 1. Paramodulation and theorem proving in first order theories with'equa- lity,—In.: Machine Intelligence, 4/Ed. B. Meltzer and D. Michie.iN.Y.: American Elsevier, 1969, p. 135—150. Робинсон Дж. (Robinson J. A.) 1. The generalized resolution principle.— In: Machine Intelligence, 3/Ed. D. Michie. N.Y.: American Elsevier, 1968, p. 77—94. Слэйгл (Slagle J. R.) 1. Automatic theorem proving with built-in theories including equality, partial ordering and sets.—J. Assoc. Comput. Mach., 1971, 18. Слэйгл и Нортон (Slagle J. R., Norton L.) 1. Experiments with an automated theorem proving having partial ordering rules.— Division of Computer Research and Technol., National Inst. of Health, Bethesda, Maryland, 1971. Уос и Робинсон Г. (Wos L., Robinson G. A.) 1. Paramodulation and set of support.—Proc. Symp. Automatic Demon- Demonstration. N.Y.: Springer, 1970, p. 276—310. Уос, Робинсон Г., Карсон и Шелла (Wos L., Robinson G. A., Carson D. F., Shalla L.) 1. The concept of demodulation in theorem proving.— J. Assoc. Comput. Mach., 1967, 14, p. 698—709. УПРАЖНЕНИЯ 177 Ч е н ь (Chang С L.) 1. Renamable paramodulation for automatic theorem proving with equa- equality.—Artificial Intelligence, 1970, 1, p. 247—256. Чень и Слэйгл (Chang С. L., Slagle J. R.) 1. Completeness of linear refutation for theories with equality.— J. Assoc. Comput. Mach., 1971, 18, p. 126-136. УПРАЖНЕНИЯ К § 8.1 1. Показать с помощью правила резолюции, что множество (S(JK) из примера 8.^противоречиво. К § 8.2 2. Пусть S^l{P(a, Ъ), ~Р (Ъ, а), а—Ь}. Найти все ^-интерпретации множества S. Является ли S ^-противоречивым? Почему? 3. Пусть S ^ {Р (x)vx = b, ~P (а), Р(Ь)}. Найти ^противоречивое мно- множество S' основных частных случаев дизъюнктов из S. К § 8.3 4. Пусть C^Ptfix, g(x)))vQ(x), i'a^ a=bvg(a) = av?l(a, g(a)) = b. Найти все парамодулянты дизъюнктов С1 и С2. К § 8.4 5. Рассмотрим следующее множество S дизъюнктов: A) R(a)vR(b), B) ~D(y)vL(a, у), C) ~R(x)V~Q(y)V~L(x, У), D) D(fl)v~Q(fl), E) QF)v~/?(ft), F) a = b. Пусть Р — следующее упорядочение предикатных символов: = > L > D > >[Q > R- Найти Р-гиперопровержение для S по правилам резолюции и па- рамодуляции. 6. Повторить упражнение 5 для следующего упорядочения: R > Q > } L>=. К § 8.5 7. Можно ли найти входное опровержение по правилам 5$ и $* для множества S, приведенного в упражнении 5? 8. Можно ли найти единичное опровержение по правилам 5! и У Для множества S, приведенного в упражнении 5? 9. Пусть D — входное опровержение по правилам ^ и 5\ изображенное на рис. 50. Преобразовать D в единичное опровержение по правилам 5i и 5s- 10. Пусть D — единичное опровержение по правилам 5i и 53. изображен- изображенное на рис. 51. Преобразовать D во входное опровержение по правилам 5i и 5* с верхним дизъюнктом а—Ь. 11. Показать с помощью входной резолюции и входной парамодуляции ^-противоречивость множества S из примера 8.1.
178 РЕЗОЛЮЦИЯ С РАВЕНСТВОМ P(a,f(a))vCUc) [гл. 8 P(a)vP(b,b) с=а Р(а) P(a> 12. Рассмотрим следующие правила трансформации: A) х + у=у + х; B) +(у + ) ( + C) (х + у)-у = х; D) х = (х + у)-у; E) (х-у) + г=(х+г)-у; F) (х + у)-г = (х-) + у Доказать следующие равенства с помощью входной парамодуляции: (а) (а + Ь) + с = а + (Ь + с); (Ь) (а-Ь) + с = а+(с-Ь); (с) (а—с) — F— с)=а — Ь\ (d) ( + ) (b (е) +(ft) () + ft К § 8.6 13. Рассмотрим следующее множество S дизъюнктов: A) P(b)vQ(a), B) P(a)v~Q(b), C) ~P(a)VQ(&), D) ~P(b)v~Q(a), E) a = b. Пусть верхним дизъюнктом будет E). Найти линейное опровержение для S по правилам 91 и 5s- 14. Повторить упражнение 13, используя A) в качестве верхнего дизъюнкта. ГЛАВА 9 НЕКОТОРЫЕ ПРОЦЕДУРЫ ДОКАЗАТЕЛЬСТВА, ОСНОВАННЫЕ НА ТЕОРЕМЕ ЭРБРАНА § 9.1. Введение В главе 4 мы привели эрбрановскую процедуру (см. § 4.6) для установления противоречивости множества дизъюнктов. Для данного множества S дизъюнктов процедура порождает последо- последовательность S'lt S'2, S'3, ... в некотором произвольно выбранном порядке и последовательно проверяет множества S'{ на противо- противоречивость; здесь S'c — некоторое множество основных частных случаев дизъюнктов из S. В § 5.1 было объяснено, что эта процедура имеет фундаментальный недостаток: в большин- большинстве случаев первое противоречивое множество S'k в этой после- последовательности оказывается очень большим. Чтобы избежать такого порождения основных частных случаев, были предложены два основных подхода. Один состоит в применении разработан- разработанного Дж. Робинсоном метода резолюций, подробно обсуждав- обсуждавшегося в предыдущих главах. Второй — использовать идею, пред- предложенную Правицем [1]. Идея Правица состоит в том, что вместо порождения основных частных случаев дизъюнктов из S в некотором произвольно определенном порядке мы должны искать путем вычисления такие значения, которые после под- подстановки вместо переменных в S давали бы противоречивое мно- множество основных частных случаев. По существу идея Правица основана на наблюдении, что множество S дизъюнктов противо- противоречиво тогда и только тогда, когда имеется такое множество М копий (вариантов) дизъюнктов из S и такая основная подста- подстановка 8, что М8 противоречиво1). Это наблюдение является в действительности иной формой теоремы Эрбрана. Правиц [1], [2], Девис [1], Чинланд, Девис, Хинмен и Макилрой [1], Лавленд [1], [3] и Чень [1], [^"предла- [^"предлагали процедуры нахождения таких М и 0. В этой главе мы рассмотрим некоторые из этих процедур. Сначала мы кратко опишем процедуру Правица. Затем мы рассмотрим V-резолюцик и некоторые процедуры, работающие с деревьями. См. п. 2.5 Дополнения А.— Прим. ред.
180 НЕКОТОРЫЕ ПРОЦЕДУРЫ ДОКАЗАТЕЛЬСТВА ГЛ. § 9.2. Процедура Правица Перед тем как привести процедуру Правица, мы рассмотрим пример. Предположим, что мы имеем следующее множество дизъюнктов: A) Р(х), \ B)~Р(а)\/~Рф). / Предположим, что мы хотим найти противоречивое множе- множество S' основных частных случаев дизъюнктов из S. Так как переменная х связана (подразумеваемым) квантором всеобщности, мы можем заменить х любым основным термом, включая а и Ь. Если мы сделаем в точности это, мы получим следующее мно- множество дизъюнктов: A') Р(а), ) B') Рф), \ S' Множество S' полностью состоит из основных дизъюнктов и противоречиво. Поэтому S противоречиво в силу теоремы Эрбрана. В рассмотренном выше случае дизъюнкт A) из S имеет два частных случая в S'. Мы можем рассмотреть следующее мно- множество дизъюнктов М*: A*) P(xt), B*) C*) P(a)V~ P(b). Под копией (вариантом) дизъюнкта С мы понимаем сам С или любой дизъюнкт, получаемый из С переименованием пере- переменных. В М* любой дизъюнкт является копией некоторого дизъюнкта из S, а именно, М* состоит из двух копий дизъюнкта Р (х) и одной копии дизъюнкта ~ Р(а) V~ Рф)- Если мы заме- заменим хх на а и х2 на Ь, то мы получим S'. Иными словами, если мы положим 8* = {a/xlt b/x2}, то M*8* = S', а последнее множество противоречиво. Таким образом, М* особенно инте- интересует нас, и мы дадим ему формальное определение. Определение. Для данного противоречивого множества S дизъюнктов множество М* дизъюнктов называется подстановочно противоречивым (сокращенно Yl-противо речивым) множеством для S, если М* удовлетворяет следующим условиям: 1. Любой дизъюнкт из М* есть копия некоторого дизъюнкта из S. 2. Никакие два дизъюнкта из М* не имеют общих переменных. 3. Существует основная подстановка 8* такая, что М*6* противоречиво. (Напомним, что основная подстановка—это подстановка основных термов вместо переменных.) §9.2] ПРОЦЕДУРА ПРАВИЦА 181 Подстановка 6* называется решением множества М*. Читатель, возможно, уже заметил, что переменные из М* не трактуются как связанные квантором всеобщности. В дейст- действительности каждую переменную из М* разрешается замещать всего одним основным термом1). Этого ограничения мы будем придерживаться на протяжении всей этой главы. £Так как при данном S мы не знаем заранее S', то М* нельзя построить сразу. Однако обычно множество М* не очень велико. Поэтому сначала мы строим М произвольным образом как мно- множество, состоящее из нескольких копий каждого дизъюнкта из S. Переименовываем переменные в М так, чтобы никакие дизъюнкты из М не имели общих переменных. Очевидно, что если М больше М*, то мы также можем найти основную под- подстановку 6 такую, что Мб противоречиво. М называется якобы П-противоречивым множеством для S, а 8 называется решением множества М, если Мб действительно противоречиво. Следую- Следующая процедура была первоначально предложена Правицем, чтобы искать решение такого множества М. Шаг 1. Преобразовать М в дизъюнктивную нормальную форму N. Шаг 2. Найти подстановку элементов эрбрановского универ- универсума вместо переменных, которая сделала бы противоречивой любую конъюнкцию из Af. Шаг 3. Если имеется такая подстановка 6, то она является искомым решением множества М. В противном случае М не имеет решений. Пример 9.1. Рассмотрим S = {P(x)\f Q(y), ~ P{a), ~Q(b)}. Пусть М—множество, содержащее ровно по одной копии каж- каждого дизъюнкта из S. Иными словами, М — {Р(х) V Q(y), ~ Р(а), ~ Q (Ь)}. Так как никакие дизъюнкты из М не имеют общих пере- переменных, то нам не нужно переименовывать переменные в дизъ- дизъюнктах из М. Можно записать М также в виде М — [Р(х)\/ \JQ(y)]A~P(a)A~Q(b). Преобразуя М в дизъюнктивную нормальную форму, мы пол>чим [Р(х) A~P(a)A~Q Ф)] V [Q (у) А ~ Р(а) А ~ Q ф)]. Ясно, что если заменить х на а, то первая конъюнкция, а именно [Р(х) Л~ Р{о) А ~ Q (Ь)], станет противоречивой. Аналогично, после замены у на b станет противоречивой вто- вторая конъюнкция [Q (у) А ~ Р(а) Л~ Q Ф)]- Поэтому имеется основная подстановка, а именно 6 = {а/х, Ь/у\, являющаяся решением множества М. Иными словами, множество М8= ={Р(а) V Q(b), ~ Р(а), ~ Q ф)} противоречиво. В приведенном выше примере было легко найти подстановку 6. В общем случае мы должны разработать алгоритм нахождения такой 8. Введем сначала следующее определение. *) См. п. 2.5 Дополнения А.— Прим. ред.
182 НЕКОТОРЫЕ ПРОЦЕДУРЫ ДОКАЗАТЕЛЬСТВА СГЛ. 9 9.3] ПРОЦЕДУРА V-РЕЗОЛЮЦИИ 183 Определение. Подстановка 0 называется опровергающей подстановкой для конъюнкции С литер, если в С имеются две литеры Lx и L2 такие, что 6 есть наиболее общий унификатор литер Lx и ~ L2. Рассмотрим пример 9.1. Мы замечаем, что {а/х\ является опровергающей подстановкой для конъюнкции [Р(х) Л~ Р(а)А A~Q(b)], а {b/у} — опровергающей подстановкой для [Q{y)A Л~ Р{а) Л~ Q Ф)]- Комбинируя {а/х} и {b/у}, мы получаем искомую подстановку Q — {a/x, b/y}, которая является решением множества М. У читателя может сейчас создаться впечатление, что для нахождения решения множества М нужно только найти опро- опровергающую подстановку для каждой конъюнкции в дизъюнк- дизъюнктивной нормальной форме, а затем объединить все эти опровер- опровергающие подстановки. Читателя следует, однако, предупредить, что иногда подстановки нельзя объединить. Это иллюстрируется следующим примером. Пример 9.2. Рассмотрим S = {P {x) \/ Q{x), ~ Р(а), ~С}ф)}. Пусть М—множество, содержащее ровно по одной копии каж- каждого дизъюнкта из S, т.е. М = {Р{х) V Q (х), ~ P(a), ~ Q{b)}. Так как никакие дизъюнкты из М не имеют общих перемен- переменных, нам не нужно переименовывать переменные. Запишем М в виде М = [Р(х) V Q (х)]А ~ Р{а)А~<2Ф). Преобразуя М в дизъюнктивную нормальную форму, получим [Р(х) A~P(a)A~Q ф)] V [Q (*) Л- Р(а) Л~ Q(ty]. Теперь {а/х} является опровергающей подстановкой для первой конъюнкции [Р(х) Л~ Р(а) А ~ Q Ф)], а {b/х}—опро- {b/х}—опровергающая подстановка для второй конъюнкции [<3(х)Л~ Р(а)А A-^-Q(b)]. Очевидно, что подстановки {а/х} и {b/х} нельзя объединить, так как х нельзя заменить одновременно на а и на Ь. Поэтому М не имеет решения. Для проверки возможности объединить подстановки мы дадим следующее Определение. Пусть Q1 = {tn/vu, ..., tlnjvlni} 0Г= = {trl/vrl, .... trnr/vrnr\ — подстановки, г > 2. Исходя из9х 9Г, определяем два выражения Ех = (иХ1, .. ., vIril, ..., vrl, ..., vrnr) и E2 — {tllt ..., tlni, ..., trl, ..., trnr). Тогда ex, ...,8Г назы- называются совместимыми, если Е1 и Е2 унифицируемы. Наиболее общий унификатор для {.Zrj, E2} называется комбинацией подста- подстановок Qj, ..., 8Г. Подстановки 6Х, ..., 6Г называются несовмести- несовместимыми, если они не являются совместимыми. Пример 9.3. Рассмотрим Qt = {a/x} и % = {f(a)/x}. В этом случае имеем Ег = (х,х) и Е2 — (а, f(a)). Так как Et и Е2 не унифицируемы, подстановки 9Х и 92 несовместимы. Пример 9.4. Пусть 9Х = {#(«/)/*} и 92 = {f(x)ly}. В этом случае имеем Е1 = (х, у) и E2 = (g(y), f(x)). Так как Et и Е2 не унифицируемы, 8Х и 92 несовместимы. Пример 9.5. Пусть Q1 = {f(g{xl))/xi, f(x,)/xt\ и 92 = ~{xjx3, g(Xi)/x2}. Для этого случая El = {x3, xt, x3, х2) и £2 = =(f(s(xl)), f(x2), xt, g(^j)). Так как £х и Е2 унифицируемы, 6Х и 02 совместимы. Комбинация подстановок 0Х и 02 есть () f(())/ (*} Теперь можно следующим образом описать процедуру Правица. Шаг 1. Преобразовать М в дизъюнктивную нормальную форму Сх V С2 V • • ■ V Сп. Шаг 2. Для каждой конъюнкции С,- в этой дизъюнктивной нормальной форме найти все опровергающие подстановки «а- •••• aiQi. Шаг 3. Исходя из а,х, ..., а,-а/> i= 1, ..., п, найти oc,w такие, что alSi, ..., anSn совместимы. Если такие a,-^ i= 1, . .., п, суще- существуют, то комбинация 8 подстановок alSj, . . ., anSn является искомой подстановкой, т. е. решением множества М. В про- противном случае М не имеет решения. Пример 9.6. Рассмотрим S — {P(x), ~ Р(а) V ~ Рф)\. Пусть М — множество, состоящее из двух копий дизъюнкта Р(х) и одной копии дизъюнкта -v. Р (а) V ~ Р Ф)■ Иными словами, М = {Р(х), Р (х), ~ Р(а) V ~ Р Ф)}- Переименовывая переменные дизъюнктов изМ, получаем М = {Р(х1), Р(х2), ~ Р (а) V ~ Рф)}- Теперь никакие дизъюнкты из М не имеют общих переменных. Запишем М в виде М = Р (л:х) Л Р (х2) Л [~ Р {а) V ~ Р ф)]. Преобразуя М в дизъюнктивную нормальную форму, получаем [P(Xl) /\Р(х2) Л ~ Р(а)] V [РЫ А Р{хг) А -РФ))- Пусть Ясно, что ахх = {а/л;1} и aI2 = {a/x2} являются опровергаю- опровергающими подстановками для Сх. Аналогично, а21 = {Ь/л:х} и а22= ={Ь/х2} — опровергающие подстановки для С2. Мы знаем, что ах1 и а22 совместимы, и их комбинацией является {a/xlt b/x2}. Таким образом, эта подстановка {а/хх, Ь/х2} является искомым решением множества М. Отметим, что а12 и а21 тоже совместимы, и их комбинацией является {b/x1,a/xi}. Поэтому {b/xlt а/хг} — также решение множества М. § 9.3. Процедура V-резолюции Большое достоинство процедуры Правица в том, что она порождает только подстановки, действительно нужные для по- получения противоречивого множества основных дизъюнктов Однако использование дизъюнктивной нормальной формы неиз- неизбежно приводит к потере эффективности. Легко видеть, что
184 НЕКОТОРЫЕ ПРОЦЕДУРЫ ДОКАЗАТЕЛЬСТВА [ГЛ. 9 <9.3] ПРОЦЕДУРА V-РЕЗОЛЮЦИИ 185 даже для множества М, состоящего из десяти двухлитерных дизъюнктов, количество конъюнкций в дизъюнктивной нормаль- нормальной форме для М равно 210. Чтобы обойти эту трудность, Правиц [2] предложил впоследствии другую процедуру.' Девис [1], Чинланд, Девис, Хинмен и Макилрой [1], Лавленд [1] и Чень [1], [2] также предлагали свои процедуры, пытаясь сохранить достоинства первоначальной про- процедуры Правица, но избежать использования дизъюнктивной нормальной формы. В этом параграфе мы рассмотрим V-резо- люцию, предложенную Ченем [2], так как она тесно связана с резолюцией. Мы сначала приведем простой пример V-резолюции. Рассмот- Рассмотрим следующее множество дизъюнктов: A) P{x), B)~P(a)V \ Пусть М — множество, состоящее из одной копии дизъюнкта A) и одной копии дизъюнкта B), т. е. Br)~P{a)V~P(b). М Мы можем применить резолюцию к (Г) и B'). Если мы за- заменим х1 на а, то из (Г) и B') получим C') ~Р{Ь). Так как в методе V-резолюции мы не разрешаем заменять хх в (Г) на какой-либо другой основной терм, мы не можем снова применить правило резолюции к C') и (Г). Наш алгоритм может поместить в М еще одну копию дизъюнкта A), например D') Р(х,1 Теперь мы можем заменить х2 на Ь и применить "правило резолюции к C') и D'), получая пустой дизъюнкт. Чтобы предотвратить применение резолюции к дизъюнктам C') и (Г), мы будем использовать V-резолюцию, где запоминаются сделанные подстановки вместо переменных. В методе V-резолю- 1ии каждый дизъюнкт оснащен некоторой подстановкой. Мы полагаем по определению, что каждый дизъюнкт из М оснащен пустой подстановкой е. Таким образом, каждый дизъюнкт С представляется в виде С|6, где 6—некоторая подстановка. В рассмотренном выше случае, так как дизъюнкты (Г) и B') чринадлежат М, они представлены соответственно в виде A") Р(х,)\г, B")~P(a)\J~P(b)\e. Дизъюнкт C') представлен в виде {У)~Рф){а/х1}, Отметим, что {a/xj в дизъюнкте C") — это подстановка, по- полученная применением резолюции к A") и B") с отрезанием литер P{Xj) и ~Р(а). Когда мы применяем резолюцию к C") и A"), нам нужна другая подстановка {Ь/хх}. Мы замечаем, что эта подстановка несовместима с {a/xj. Поэтому такое примене- применение резолюции будет заблокировано. Однако так как в М по- помещен дизъюнкт D'), он будет представлен в виде D") Р(х2)\г. Теперь мы можем применить резолюцию к C") и D"), получая E") □ \{a/xlt Ь/х,}, где {a/xlt Ь/хг} указывает подстановку, которую мы должны сделать вместо переменных хх и х2 для того, чтобы применить резолюцию к этим дизъюнктам. Определение. Если две или более литер (одного знака) в дизъюнкте С|6 имеют наиболее общий унификатор а и если 6 и а совместимы, а <р — их комбинация, то Со|ф называется V-склейкой дизъюнкта С|8. Пример 9.7. Рассмотрим дизъюнкт С|6, заданный в виде Р(а) V Р (х) V Q(b)\{b/y\. Так как Р(а) и Р(х) имеют наиболее общий унификатор а = {а/х} и так как {b/у} и {а/х} совместимы, а ц> = {а/х, Ь/у} — их комбинация, то P(a)\J Q{b)\{a/x, b/y} яв- является V-склейкой дизъюнкта С|6. Определение. Пусть С1 16Х и С2|82—два дизъюнкта, 0! и 82 совместимы, a—их комбинация; пусть в Cj и С2 соответ- соответственно имеются литеры Lx и L2 такие, что Lx и ~L2 имеют наиболее общий унификатор а, причем а и а совместимы, а 8 — их комбинация. Тогда мы выводим дизъюнкт {(CjCr — Ьга) (J U(C2a-L2a)}|6. Этот дизъюнкт называется бинарной V-резольвентой (посы- (посылок) C1\Q1 и С2102. Литеры Lx и L2 называются отрезаемыми литерами. Пример 9.8. Рассмотрим два дизъюнкта Ci\Qi и С2|82, заданные соответственно в виде ~ Р(а) V Q (a. b) \ {а/х} и Р(х) V Q(x, b)\{bly). Пусть Ll и L2—это соответственно ~ Р(а) и Р(х). Так как подстановки {а/х} и {b/у} совместимы, и а= = {а/х, Ъ/у) — их комбинация, Ьг и ~ L2 имеют наиболее общий унификатор а = {а/х}, причем а и а совместимы, а 8 = {а/х, Ь/у} — их комбинация, мы получаем бинарную V-резольвенту в виде Q(a, b)\{a/x, b/y}. Отрезаемые литеры—это ~ Р(а) и Р(х).
186 НЕКОТОРЫЕ ПРОЦЕДУРЫ ДОКАЗАТЕЛЬСТВА [ГЛ. S9.3] ПРОЦЕДУРА V-РЕЗОЛЮЦИИ 187 Определение. V'- резольвента дизъюнктов C1\Q1 и С21 82— это любая из следующих бинарных V-резольвент: 1) бинарная V-резольвента дизъюнктов С, | 8Х и С2|62; 2) бинарная V-резольвента дизъюнкта C1\Q1 и некоторой V-склейки дизъюнкта С2|82; 3) бинарная V-резольвента некоторой V-склейки дизъюнкта d j 0x и дизъюнкта С2|62; 4) бинарная V-резольвента некоторой V-склейки дизъюнкта Cl\Q1 и некоторой V-склейки дизъюнкта С2|82. Мы отметим, что V-резолюция отличается от резолюции только необходимостью проверять совместимость подстановок. V-резолюция называется также резолюцией с ограничением на переменные, так как переменные трактуются скорее как неиз- неизвестные, чем как связанные квантором всеобщности. V-резолю- V-резолюция, подобно резолюции, полна в том смысле, что если якобы П-противоречивое множество М имеет решение, то пустой дизъ- дизъюнкт можно вывести, многократно применяя к М правило V-резолюции. Положим по определению /?°(М) М () , /?' (М)= R'^1 (М) U {V-резольвенты всех пар дизъюнктов из R'-^M)} для 1=1,2, ... Тогда очевидна следующая Теорема 9.1. Если М имеет решение, то для некоторого конечного п пустой дизъюнкт принадлежит множеству R" (М). В дополнение к полноте V-резолюции в нее могут быть включены многие уточнения резолюции, введенные в главе 6, такие, как гиперрезолюция, множество поддержки и линейная резолюция. Определения V-гиперрезолюции, V-резолюции с мно- множеством поддержки и линейной V-резолюции почти совпадают с определениями их аналогов для обычной резолюции; нужно только заменить резолюцию (резольвенту) на V-резолюцию (V-резольвенту). Различия между резолюцией и V-резолюцией таковы. Если требуется доказать некоторое множество S дизъюнктов, то резо- резолюция работает на самом множестве S, в то время как V-ре- V-резолюция работает на якобы П-противоречивом множестве М для S. Кроме того, в методе резолюции переменные трактуются как связанные квантором всеобщности, в то время как в V-ре- V-резолюции они трактуются как неизвестные параметры. Ввиду этих различий между резолюцией и V-резолюцией имеется за- заметное различие в эффективности. Это хорошо иллюстрирует следующий пример. Дополнительное экспериментальное под- подтверждение читатель может найти у Ченя [2]. Пример 9.9. Рассмотрим следующие два дизъюнкта: С,: ~Р(х)\ P(f(x)), С2: Р (а). Используя резолюцию, мы породим из Сг и С2 бесконечное количество дизъюнктов Р(f (a)), P(f (f (а))), Р(f (f (f (а)))),... Однако если мы используем по одной копии каждого из дизъюнктов Сц С2 и снабдим каждую копию пустой подстановкой е, имеем С[: ~Р(х)\/ P(f(x))\z, С',: Р(а)\г. Применяя теперь V-резолюцию, мы можем породить из С[ и С-2 только один дизъюнкт, а именно Р (f (a)) | {а/х}. Таким об- образом, видим, что можно ограничить порождение резольвент, рассматривая конечное число копий дизъюнктов и применяя V-резолюцию. Для данного множества S дизъюнктов, подлежащего про- проверке (на противоречивость), можно следующим образом опи- описать процесс, использующий V-резолюцию. Начинаем с произ- произвольного якобы П-противоречивого множества М для S. (Отме- (Отметим, что переменные каждого дизъюнкта из М должны быть переименованы так, чтобы никакие дизъюнкты не имели общих переменных.) Применяем V'-резолюцию к М. Если порожден пустой дизъюнкт, то мы обрываем процесс. В противном случае мы по- помещаем в М дополнительные копии дизъюнктов из S и снова повторяем процесс. (Когда в М добавляются копии, переменные новых копий следует переименовать так, чтобы никакие дизъ- дизъюнкты в увеличенном множестве М не имели общих переменных.) Этот цикл повторяется снова и снова до тех пор, пока либо будет порожден пустой дизъюнкт, либо будет превзойдена неко- некоторая граница на память или время. Для многих теорем обычно достаточно небольшого числа копий каждого дизъюнкта S. Допустим, что S = {C1; .... Cg\. Исходное множество М легко задать с помощью множества чисел {пг, ..., п \, где /г,- указы- указывает количество копий дизъюнкта С,-, i=\, • • •, g, которые надо поместить в М. Эта символика будет использоваться до конца настоящей главы. Теперь мы дадим несколько примеров, чтобы проиллюстрировать использование V-резолюции. Пример 9.10. Пусть S = {Р(х), ~ Р (а) \/ ~ Р (Ь)\. Мы хотим показать, что множество S противоречиво. Пусть первое якобы П-противоречивое множество М для S задано списком {2,1}. Иными словами, М = {Р(х), Р(х), ~ Р(a) w - Р (Ь)\. Чтобы никакие дизъюнкты из М не имели общих переменных, мы переименуем переменные в каждом дизъюнкте и получим M = {P(Xi), Р(х2), ~ Р(а)у ~ Р{Ь)}. Теперь, оснащая каждый дизъюнкт из М пустой подстановкой 8, имеем М = {Р(хЛ) \ г, Р(х2)\е, ~ Р (а) V ~ Рф)\ е}- Применяя к дизъюнктам из М правило V-резолюции, получаем следующее доказательство: A) Р{Хг)\г, ) B) Р(х,)\г, \м C) ~Р{а)\'~Р(Ь)\г, J
1881 НЕКОТОРЫЕ ПРОЦЕДУРЫ ДОКАЗАТЕЛЬСТВА [ГЛ. 9 § 9.3] ПРОЦЕДУРА V-РЕЗОЛЮЦИИ 189 D) ~ Р(ЩЦа/х^ V-резольвента дизъюнктов A) и C), E) □ \{alxx, b/x2] V-резольвента [дизъюнктов B) и D). Так как подстановка {a/xx, b/x2) ассоциирована с пустым дизъюнктом □, она является решением М. Пример 9.11. Доказать теорему: «левая единица группы является также и правой единицей». Пусть Р(х, у, г) означает xoy = z, где о — групповая операция. Тогда отрицание нашей теоремы можно представить в виде следующего множества S дизъюнктов: А: Р(Цх),х,е), В: Р(е?х,х), С: ~Р (х, у, и) V ~ Р\(У, z, v) V.'~ P (и, z,w)V P (x, v, w), D:2~P(x, у, u)\J~P{y, z, v)\/~\P(x, v, w)\V P(u, [z, [w), E: ~ P(a, e, a). Пусть якобы П-противоречивое множество S для М задано списком {2, 2, 1, 1, 1}. Тогда используя V-резолюцию, имеем следующее доказательство, где мы употребляем 1,2 16 для обозначения переменных хг, х2, ..., х1в: A': P(i(l), 1, ё)\г, A": P(iB), 2, е)\е, В': \Р\{е, 3, 3);|>, В": Р[(е, 4, 4)| е, С: ~РE, 6, 8)V~PF, 7, 9)V~P(8, 7, 10» РE,9, 10)|е, D':~P{ll, 12, 14)V~PA2, 13, 15)V~P(H, 15, 16) V \/Р(\4, 13, 16) | е, Е'\ ~Р{а, е, а)\е, F: — />A1, 12,a) \j~P(\2,e, 15)V~P(H, 15,а)|{а/14, е/13, а/16} из Е' и D', G: ~РA1, е, а)|{а/14, е/13, а/16, е/12, е/3, в/15} из F и В', Н: ~РE, 6, 8)V~PF, 7, e)V~P(8, 7, а)\ {а/14, е/13, а/16, е/12, е/3, г/15, 5/11, г/9, а/10} из G и С, /: ~РE, 6, e)V-PF, а, в)|{а/14, е/13, а/16, [е/12, е/3, е/15, 5/11, е/9, а/10, г/8, а/7, а/4} из Я и В", J: ~РA, а, в) | {а/14, г/13, а/16, е/12, е/3, е/15, i A)/11, е/9, а/10, г/8, а/7, а/4, i(l)/5, 1/6} из / и А', К: П I {а/14, е/13, а/16, е/12, е/3, в/15, [i (i (а))/11, е/9, [а/10, г/8, а/7, а/4, t(i(a))/5, i(a)/6, i{a)/\, a/2} из У и Л". Отметим, что Л' и Л"—две копии дизъюнкта Л, В' и 5" — две копии дизъюнкта В, а С", Л' и £'—копии соответственно дизъюнктов С, D и Е. Пример 9.12 (задача изоморфизма графов). Рассмотрим два направленных графа, изображенных на рис. 52. Мы знаем, что граф Gt изоморфен (топологически эквивалентен) графу G2, так как преобразование {х~>-а, y—+d, z—+b, ы—*с) может отобра- отобразить Gj на G2. Предположим теперь, что этот факт нам неиз- неизвестен, и мы хотим найти преобразование, которое отображает Gt на G2. Мы делаем это с помощью V-резолюции. Во-первых, Рис. 52. мы должны сформулировать эту проблему. Пусть С (п„ л2) озна- означает, что имеется направленное ребро от пг к пг. Тогда граф Gx можно представить следующей формулой: Ах: С{х, и)/\С(х, z)AC{y, и)]АС{г,у)ЛС{и, г)-А С (г, и). Граф G2 можно представить следующей формулой: Л2: С(а, Ь)АС(а, с)]Д СF, с)ДС(с, b)]A\C(d, с) д С F, d). Таким образом, установление изоморфизма между Gx и G2 эквивалентно установлению истинности формулы Преобразуя обычным образом к стандартному виду отрицание этой формулы, получаем следующее множество S дизъюнктов: S = {C(a, Ь), С (а, с), С(Ь, с), С[(с, Ь), С (d, с), C{b, d), ~С(х, и)~у~[С](х, z) V~[C(y, u)V~C{z, y)V~C(u, z) V~,CB, и)}. Пусть якобы [П-противоречивое множество М для S задано списком {1, 1, 1, 1, 1, 1, 1}. Тогда, применяя V-резолюцию,. получим следующее доказательство: A) С(а,Ь)\г, B) С(а,с)\г, C) С (Ь, с) | е, D) С(с,Ь)\г, E) C(d,c)\e, F) C(b,d)\e, G) ~С(*. u)V~C{x, z)V~C(y, u)V~C(z, у) \/~C{u, z)\J~C{z, ц)|е, М
190 НЕКОТОРЫЕ ПРОЦЕДУРЫ ДОКАЗАТЕЛЬСТВА ГЛ. 9 (8) ~С{а, z)V~C(y, c)V~C(z, y)\J~C{c, г) У~С{г, с)\{а/х, с/и} из G) и B), (9) ~ С {у, с) V ~ С (Ь, у) V ~ С (с, Ь)\/~С (Ь, с)\{а/х, с/и, b/z} из (8) и A), A0) ~С(Ь, d)\J~C{c, b)V~C(b, c)\{a/x, с/и, b/z, d/y} из (9) и E), A1) ~С(с, b)\J~C{b, с)\{а/х, с/и, b/z, d/y} из A0) и F), A2) ~С(Ь, с)\{а/х, с/и, b/z, d/y} из A1) и D), A3) П\{а/х, с/и, b/z, d/y} из A2) и C). Так как с пустым дизъюнктом □ связана подстановка {а/х, с/и, b/z, d/y}, мы можем получить из нее преобразование, в котором вершина х отображается на а вершина и на с, вер- вершина z на b и вершина у на d. Очевидно, что это преобразова- преобразование может отобразить Gl на G2. Таким образом, Gl изоморфен G2. Идею V-резолюции можно применить и к парамодуляции. Это делается следующим образом с помощью модификации определе- определения парамодуляции, данного в § 8.3. Определение. Пусть Cl\Q1 и С2|92 — два дизъюнкта. Пусть 8, и 92 совместимы, а — их комбинация, С, есть L[t]\/С{, С2 есть r = s'\/C2, где L [t] — литера, содержащая терм t, С[ и С'2 — дизъюнкции литер. Если t и г имеют наиболее общий унифика- унификатор а, причем а и а совместимы, a 8 —их комбинация, то вы- выводим дизъюнкт Lo[sa]\jC[aUC'2a\Q, где Lo[so] обозначает результат замены одного-единственного вхождения to в Lo на so. Указанный выше выведенный дизъюнкт называется бинарным V-парамодулянтом дизъюнктов Сх 10Т и С2 [ 92; литеры L и r — s называются литерами парамодуляции. Приведенное определение бинарной V-парамодуляции совпа- совпадает с определением бинарной парамодуляции с точностью до необходимости проверять совместимость подстановок. Определен ие. V-парамодулянт дизъюнктов Cl | Qt и С21 82— это один из следующих бинарных V-парамодулянтов: 1) бинарный V-парамодулянт дизъюнктов С, 10Х и С2|62; 2) б тарный V-парамодулянт дчзъюнкта С, | 9t и некоторой V-склейки дизъюнкта С2|9„; 3) бинарный V-парамодулянт некоторой V-склейки дизъюнкта £, | 0, и дизъюнкта С21 92; 4) бинарный V-парамодулянт некоторой V-склейки дизъ- дизъюнктов CJ9, и некоторой V-склейки дизъюнкта С2|82. Пусть S—множество, включающее дизъюнкт х — х и аксиомы рефлексивности для функций. Пусть М — некоторое множество, состоящее из копий дизъ- дизъюнктов из S. Положим по определению 9.4 ПСЕВДОСЕМАНТИЧЕСКИЕ ДЕРЕВЬЯ 191 м (RP)°(M) = M, (RP)'(M) = (RP)'~1 U {V-резольвенты и V-парамодулянты всех пар дизъюнктов из (RP)''1 (M)\, i=\, 2, ... Тогда имеем следующую теорему. Теорема 9.2. Если имеется основная подстановка 9 такая, что множество MQ является Е-противоречивым, то пустой дизъ- дизъюнкт принадлежит множеству (RP)" (M) для некоторого конеч- конечного п. Пример 9.13. Пусть S = {P(x)\/ Q(x), ~P(a), ~Q(/(a)), x = f(x)\. Показать, что S является ^-противоречивым. Пусть М задано списком {1, 1, 1, 1}. Иными словами, М = {Р (х)\/ Q(x), ~P(a), ~ Q(f(a)), x = f(x)}. Так как мы не разрешаем, чтобы дизъюнкты из М имели общие переменные, переименуем пере- переменные и получим М = {Р (xj V Q (*i)> ~ Р (а). ~ Q (/V°)). x2 = f(x2)}. Далее, оснащая каждый дизъюнкт из М пустой под- подстановкой е, имеем М = {Р(х1) V Q (*j) | е, ~ Р(а) \ г, ~ Q (/(a)) | г, х.2 = [(х2)\г}. Применяя к М правила V-парамодуляции и V-резолюции, получаем следующее доказательство: A) P{Xl)vQ *i)|e B) ~P(a)|8, C) ~Q(f(a))|e, D) x2 = f(x2)\s, E) Q(a)\{a/xl\ V-резольвента дизъюнктов A) и B), F) Q (/(a)) | {a/xx, a/x2} V-парамодулянт дизъюнктов D) и E), G) n|{a/*i, a/x2} V-резольвента дизъюнктов (З) и F). § 9.4. Псевдосемантические деревья В § 4.4 мы ввели понятие семантического дерева. По теореме Эрбрана (теорема 4.3) множество S дизъюнктов является проти- противоречивым тогда и только тогда, когда имеется конечное замк- замкнутое семантическое дерево для S. Поэтому для того, чтобы доказать противоречивость S, мы можем попытаться найти ко- конечное замкнутое семантическое дерево для S. В действитель- действительности мы можем даже ослабить некоторые условия на семанти- семантическое дерево. Иными словами, мы можем определить псевдосе- псевдосемантические деревья и доказать противоречивость S, породив замкнутое псевдосемантическое дерево. Псевдосемантическое дерево должно удовлетворять меньшему количеству условий, чем семантическое дерево, поэтому его обычно легче строить. Определение. Пусть S—данное множество дизъюнктов и A = {Alt A2, As, ...} — множество атомов для S. (Бинарное) псевдосемантическое дерево для S—это разворачивающееся сверху вниз дерево Т, каждому ребру которого приписано Лу- или ~ Af
192 НЕКОТОРЫЕ ПРОЦЕДУРЫ ДОКАЗАТЕЛЬСТВА ГЛ.9 таким образом, что из каждого узла ./V исходят ровно два ре- ребра Lx и L2, и если Qx и Q2—литеры, приписанные соответст- соответственно ребрам Lx и L2, то Qx \/ Q2—тавтология. В дальнейшем, если N—узел некоторого псевдосеман- псевдосемантического дерева для множества S дизъюнктов, то через / (N) мы обозначим множество всех литер, приписанных ребрам ветви, идущей от самого верхнего узла дерева к узлу N. В семанти- семантических деревьях множество I (N) должно быть конституантой, т. е. оно не может содержать контрарных пар. Это не так для псевдосемантических деревьев. Пример 9.14. Пусть S = {P(x), ~Р (а)}. Множество атомов для S есть \Р(а)\. Некоторые псевдосемантические деревья для Р(а) ■Р(а) Р(а) Р(а) Р(а) (а) СЬ) ■Р(а) Рис. 53. «S изображены на рис. 53. Мы отметим, что дерево, изображен- изображенное на рис. 53, а, является также и семантическим деревом. Определение. Узел N в псевдосемантическом дереве для множества S дизъюнктов называется опровергающим узлом, если имеется основной частный случай С некоторого дизъюнкта из S такой, что I (N) (J С противоречиво, но ни для какого пред- предшественника N' узла N нет основного частного случая С" дизъ- дизъюнкта из S такого, что I(N'){]C противоречиво. Определение. Говорят, что псевдосемантическое дерево Т закрыто, если любая ветвь дерева Т заканчивается на опровер- опровергающем узле. Пример 9.15. Пусть S — {P, ~Q, Q}. Множество атомов для S есть \Р, Q}. Некоторые замкнутые псевдосемантические деревья для S изображены на рис. 54. Мы отметим, что дерево, показанное на рис. 54, а, является также и замкнутым семан- семантическим деревом. Мы отметим, что в каждое замкнутое псевдосемантическое де- дерево вложено некоторое замкнутое семантическое дерево. Иными словами, мы можем построить замкнутое семантическое дерево по замкнутому псевдосемантическому дереву. Следующая теорема является обобщением теоремы 4.3 (первая форма теоремы Эрбрана). §9.4 ПСЕВДОСЕМАНТИЧЕСКИЕ ДЕРЕВЬЯ 193 Теорема 9.3. Множество S дизъюнктов противоречиво тогда и только тогда, когда имеется замкнутое псевдосемантическое дерево для S. Доказательство. (=ф) По теореме Эрбрана из противо- противоречивости S следует, что S имеет замкнутое семантическое де- дерево. Однако замкнутое семантическое дерево является также (а) Рис. 54. Ъ f и замкнутым псевдэсемантическим деревом. Пээтому первая по- половина теоремы 9.3 очевидна. (<=) Так как S имеет замкнутое псевдосемантическое дерево Т, то имеется множество S' основных частных случаев дизъюнктов из S таких, что Т является также замкнутым псевдосемантиче- псевдосемантическим деревом для S'. Мы покажем теперь, что S' противоречиво, индукцией по числу п различных ато- « мов в S'. Если п = 0, то ясно, что S' противоречиво. Допустим, что противо- противоречивость S' установлена для случая, когда S' состоит из i различных ато- атомов, O^i^n. Для завершения ин- индукции рассмотрим S', состоящее ровно из п -\-1 различного атома. Пусть Q и ~Q — литеры, приписанные ребрам, исходящим непосредственно из вершины дерева Т. Пусть Т, и Т2 — поддеревья, изображенные на рис. 55. Пусть S[ — множество, полученное из S' выбрасы- выбрасыванием всех дизъюнктов, содержащих Q, и выбрасыванием ~Q из оставшихся дизъюнктов. Аналогично, множество S2 полу- получается из S' выбрасыванием всех дизъюнктов, содержащих ~-Q, и выбрасыванием Q из оставшихся дизъюнктов. Для любого узла ./V в 7\, если литеры Q и ~Q приписаны ребрам, выходя- выходящим непосредственно из N, выбросим эти два ребра и присо- присоединим к узлу Af поддерево, которое следует за ребром, которому было приписано Q. Пусть Т[ — псевдосемантическое дерево, по- полученное из 7\ с помощью только что описанного процесса. Аналогично, пусть Т'г — псевдосемантическое дерево, полученное из Т2 с помощью аналогичного процесса, в котором Q и ~Q заменяются соответственно на ~Q и Q. Ясно, что Т{ и Т'2 — замкнутые псевдосемантические деревья для S{ и S'2 соответ- 7 Ч. Чень, Р. Ли
194 НЕКОТОРЫЕ ПРОЦЕДУРЫ ДОКАЗАТЕЛЬСТВА [ГЛ. 9- ственно. Так как S[ и S'2 состоят из не более чем п атомов, то по индукционному предположению как S[, так и S'2 противоре- противоречивы. Поэтому S' противоречиво. Следовательно, S противоре- противоречиво. Это завершает доказательство теоремы 9.3. § 9.5. Процедура порождения замкнутых псевдосемантических деревьев Понятие псевдосемантического дерева может быть использо- использовано для нахождения решения данного якобы П-противоречивого множества М для некоторого множества S дизъюнктов. Если М содержит только основные дизъюнкты, то замкнутое псевдосе- псевдосемантическое дерево, а в действительности замкнутое семантиче- семантическое дерево может быть легко найдено следующим образом. На- Начинаем с верхнего узла. Выбираем атом А, входящий в М. Выращиваем два ребра, исходящих из верхнего узла. Приписы- Приписываем одному из этих узлов литеру А, другому ~А. Для дерева, порожденного к данному моменту, находим висячий узел N, т. е. узел, из которого не растут ребра. Проверяем, имеется ли дизъюнкт в М, который ложен в / (N). Если имеется, то N — опровергающий узел, и помечаем его крестиком «х ». В про- противном случае N не является опровергающим узлом. В этом случае выращиваем из N два ребра. Приписываем одному из них другой атом А', входящий в М, а второму ~Л'. Этот процесс повторяется снова и снова до тех пор, пока все конце- концевые узлы не станут опровергающими узлами. Если это произо- произошло, окончательное дерево является замкнутым семантическим деревом. Описанная процедура пригодна для множества М, содержа- содержащего только основные дизъюнкты. Для общего случая, когда М содержит переменные, процедуру нужно изменить. Точнее, мы должны иметь способ проверки того, является ли висячий узел опровергающим. Кроме того, мы должны иметь механизм под- подстановки вместо переменных. В дальнейшем увидим, что обе эти задачи могут быть легко решены с помощью единичной ^-резолюции, т. е. бинарной V-резопюции, в которой одна из посылок является единичным дизъюнк- дизъюнктом. Далее, мы можем применять метод кР(х ) поиска в глубину для порождения за- замкнутого псевдосемантического дерева. Иными словами, при выборе висячего уз- узла выбираем самый левый. В процессе исполнения описываемой ниже процеду- процедуры мы можем прийти к ситуации, когда невозможна подстановка, переводящая висячий узел в опровер- опровергающий узел. В этом случае мы должны вернуться в предыду- § 9.5 ПОРОЖДЕНИЕ ЗАМКНУТЫХ ДЕРЕВЬЕВ 195 щий отмеченный висячий узел и вырастить из него два ребра. Чтобы облегчить процедуру возврата, выберем в качестве пред- представления произвольной ветви дерева список литер, приписан- приписанных этой ветви. Рассмотрим, например, дерево, изображенное на рис. 56, где узлы В, D и Е висячие. Ветвь от А к В пред- представляется одночленным списком [~Р(х,)], ветвь от А к D — списком [Р(х1), ~ Р (х2)]> ветвь от Л к Е—списком [Р(х1), Р(х2)]. Мы следующим образом опишем теперь алгоритм порождения замкнутого псевдосемантического дерева. Порождение замкнутого псевдосемантического дерева Шаг 0. Пусть М — якобы П-противоречивое множество для некоторого множества S дизъюнктов. Пусть W — множество всех различных положительных литер, входящих в М. (W могло бы быть множеством всех- отрицательных литер, входящих в М. Мы используем меньшее из этих двух множеств.) Шаг 7. Пусть t = 0, #° = {e}, BRANCH = (NIL) и BACKUP = = (NIL), где NIL—-пустой список. Шаг 2. Если список BRANCH пуст, закончим применение алгоритма. Окончательное дерево—это замкнутое псевдосеманти- псевдосемантическое дерево и любая подстановка из множества R' является решением множества М. В противном случае продолжим. Шаг 3. Пусть В — первый элемент в списке BRANCH. Вы- Выбросим В из BRANCH. Шаг 4. Для каждой подстановки 9 £ R'и каждого дизъюнкта С из М вычислим /С (С, 6) следующим образом. Положим U (8) = = {L|0 для всех литер L из В). Проверим, можно ли вывести пустой дизъюнкт из (U @) UJC I e}) с помощью единичной V-pe- золюции. Если ответ положительный, выводим все возможные оснащенные пустые дизъюнкты. К (С, 0)— это по определению множество подстановок, связанных с этими оснащенными пустыми дизъюнктами. В противном случае /С (С, 6) означает пустое мно- множество. После того как К {С, 0) вычислено для любых 0 £ R' и С£М, обозначим через К объединение всех множеств К {С, Q) для всех 0 в R' и всех С в М, т. е. К = U U К (С, 0). Шаг 5. Если К пусто, переходим к следующему шагу. В про- противном случае помещаем пару (В, R') в начало списка BACKUP, полагаем /?' + х = /С, г = t —f— 1 и переходим к шагу 2. Шаг 6. Выбираем элемент L из W такой, что сам L или отрицание L не входит в В. Если это невозможно, переходим к шагу 8. Шаг 7. Пусть В1 и В2—два списка, получаемые добавлением соответственно L и ~ L в конец списка В. Помещаем В1 и В2 7* Зак. 112
196 НЕКОТОРЫЕ ПРОЦЕДУРЫ ДОКАЗАТЕЛЬСТВА ГЛ. 9 (в произвольном порядке) в начало списка BRANCH. Перехо- Переходим к шагу 2. Шаг 8. Если список BACKUP пуст, заканчиваем применение алгоритма, в этом случае множество М не имеет решения (т. е. нужно увеличить М и начать всю работу алгоритма сначала). В противном случае продолжить работу. Шаг 9. Пусть (Р, К) — первая пара из BACKUP. Выбросим (Р, К) из BACKUP. Положим i = i—\, R' = K, B = P и перей- перейдем к шагу 6. Читатель может показать, что описанный выше алгоритм всегда найдет решение множества М, если оно существует. Идея алгоритма состоит в том, что в случае, когда М имеет решение, имеется основная подстановка 6 такая, что MQ противоречиво. Так как /W9— противоречивое множество основных дизъюнктов, легко найти замкнутое псевдосемантическое дерево для MQ. Описанный алгоритм сочетает поиск такой подстановки и порож- порождение замкнутого псевдосемантического дерева. Теперь мы дадим пример, иллюстрирующий алгоритм. Пример 9.16. Пусть S = {P(x), ~ Р(а)\/~ Р(b)\. Пусть М задано списком {2, 1}. Иными словами, М = {Р (х), Р(х), ~ Р (a) V~ P Ф)\- После переименования переменных имеем М = {Р (х,), Р{х2), ~ Р (а)\/ ~ Р ф)}. Так как различные по- положительные литеры, встречающиеся в М, — это Р (х,) и Р (х2), то получаем W = {Р (х,), Р(х2)}. Теперь применяем ал- алгоритм. 1. i = o, Я° = {г}, BRANCH = (NIL) и BACKUP = NIL. 2. Первый элемент списка BRANCH есть NIL. Поэтому B=NIL и BRANCH заменяется на ( ). Ясно, что после шага 4 будет найдено пустое К- Выберем Р (*,) из W. Таким образом, fl, = [-/>(*,)], fl, = [/>(*,)] и BRANCH = {[~P(Xl)], [/>(*,)]). Соответствующее дерево показано на рис. 57, а. 3. Теперь fi = [~ />(*,)] и BRANCH = ([Р {х,)]). Рассмотрим каждую подстановку 6 в R0 и каждый дизъюнкт С в М. Если 9 = е и С =/>(*,), то f/(9) = {~/3(x])|e} и (U (9) U {С | е}) = = {~P(x,)|e, Р(х,)\г\. Из (U(Q)U{C\e\) выводим П е. По- Поэтому К (С, 6) = {е} для C = P(Xj) и 9 = е. Аналогично можем получить К (С, 9) = {л:1/х2} для С = Р(х.2) и 9 = е; К (С, 9) пусто для С= ~ Р(а)\/~ Р(Ь) и 9 = е. Поэтому /С = {е, xjx2}. Так как К непусто, получим BACKUP = (([- Р (*,)], {е})), ^х = {е, {xjxj} и 1 = 1. Соответствующее дерево изображено на рис. 57, Ь, где висячий узел на конце ветви, которой приписано [~Я (*,)], от- отмечен как опровергающий узел. 4. На этот раз В = [Р(х,)] и BRANCH = ( ). Мы находим, что К пусто. Поэтому выбираем элемент Р (х2) из W. (Отметим, что ни Р (х2), ни ~Р (х2) не входит в В.) Итак, В1 — [Я(хх), ~Р (х2)], В2 = [Р (Xl), Р (х2)] и BRANCH = ([Р (Xl), ~ Р (х2)], [Р (х,), Р (х2)]). Соответствующее дерево изображено на рис. 57, с. 9.5] ПОРОЖДЕНИЕ ЗАМКНУТЫХ ДЕРЕВЬЕВ 197 (Ь) Рис. 57. 5 в = \Р{хХ ~P(xj\ и BRANCH = ([P(x1), P(xt)]). Мы находим, L,™ КНв. \*Ы\- Так как К непусто получаем BACKUP = (([Р К), -/>(*,)], {e.W*.}}). ([—p(*i)];• j«»b /?2 = {е, {хУ^}} и i = 2. Соответствующее дерево изображено на рис. 57, d.
198 НЕКОТОРЫЕ ПРОЦЕДУРЫ ДОКАЗАТЕЛЬСТВА ГЛ. 9 6. В = [Р(х1), Р(х2)] и BRANCH = ( ). Мы находим, что ^^а/Ху, Ых2}{Ых1У а/х2\\. Так как К непусто, получаем ACKUP=(([P(x1)P(x)]{e{x/x}})([P()P()]{{} [(^)] W)), R* = i\a/xlt b/xt\, {b/xlt а/х2\\ и 1 = 3. Соответ- Соответствующее дерево изображено на рис. 57, е. 7. Так как список BRANCH пуст, мы завершаем применение алгоритма. Каждая подстановка из R3 есть решение множества М. Пусть Т — окончательное дерево, изображенное на рис. 57, е. Пусть Г0— дерево, получаемое из Т заменой каждой литеры L из Т на L0. Дерево TQ изображено на рис. 57, / для 0 == {а/х1, Ь/х2} или на рис. 57, g для Q = {b/xly alx2\, Г0 —замкнутое псевдосе- псевдосемантическое дерево для S. Поэтому мы делаем вывод, что S противоречиво. Имеется несколько путей улучшения описанного выше алго- алгоритма. Вот некоторые и* них. Во-первых, мы можем разработать эвристические схемы вы- выбора литер из множества W (см. шаг 6 алгоритма). Например, мы можем предпочитать литеры из более коротких дизъюнктов, входящих в М, литерам из более длинных дизъюнктов. Может оказаться, что выбор литер в «хорошем» порядке может дать нам возможность быстрее завершить применение алгоритма. Во-вторых, на каждом шаге следует упрощать, насколько это возможно, множества R', порожденные алгоритмом. Это де- делается с использованием следующего определения. Определение. Пусть \ = {tjvl, ...y tjvn\ — подстановка. Пусть 6—другая подстановка. Исходя из К, положим Е = = \t1 = v1, ..., tn = vn\. Тогда говорят, что 6 ограничишельнее, чем X, если £9 либо пусто, либо содержит только тождества. Пример 9.17. К = {а/х1\ и 0 = {а/*1( Ь/х2}. Исходя из Я, полагаем Е — {а — х^. Тогда £0 = {а = а}, т.е. состоит из един- единственного тождества. Поэтому 0 ограничительнее, чем Я. Метод упрощения множества R' состоит в следующем. Для любых 0Х и 02 из R', если 0Х ограничительнее, чем 02, то 0Х сле- следует выбросить из R'. Например, подстановка {xjx2\ должна быть выброшена в примере 9.16 из множества R1, так как она ограничительнее, чем 8. В-третьих, так как эффективность алгоритма существенно зависит от эффективности выполнения шага 4, этот шаг — сердце алгоритма. На шаге 4 для каждой подстановки 0 £ R' и каждого дизъюнкта С в М мы можем вычислять К (С, 0) следующим образом. Пусть U @) определено указанным выше способом. Пусть п—число литер в С. Положим по определению Q-(C, 0) = {СИ, Q*^, 0) = {единичные V-резольвенты дизъюнктов С1 и С2, где C^UiQ), C2£Qk(C, 0) и отрезаемая литера в С2 — первая в С2} для /г = п, п—1, ..., 1. $ 9.6 ОБОБЩЕНИЕ ПРАВИЛА РАСЩЕПЛЕНИЯ 199 После того как вычислено Q°(C, 0), определяем К {С, 0). К (С, 0) = {а такие, что оснащенные пустые дизъюнкты □!<* принадлежат Q°(C, 0)}. Наконец, если алгоритм возвращается (backs up) через шаги 9, 6, 7, 2, 3 и 4, то К перевычисляется снова. В этом случае мы должны устроить работу так, чтобы ранее вычисленные под- подстановки не вычислялись снова. § 9.6. Обобщение правила расщепления, введенного Девисом и Патнемом Принцип расщепления состоит в разбиении трудной и длин- длинной теоремы на маленькие и более простые частные случаи с по- последующим доказательством путем отдельного рассмотрения каж- каждого случая. Несколько методов разбиения было предложено Правицем [2], Бледсоу [1], Слэйглом и Кониве- ром [1], Эрнстом [1], а также Уосом, Г. Робинсоном, Карсоном и Шеллой [1]. Правило расщепления, содержа- содержащееся в методе Девиса и Патнема, рассматривалось также в § 4.6. Метод Девиса и Патнема определен только для основных дизъ- дизъюнктов. В этом параграфе мы обобщим метод Девиса и Патнема на произвольные (неосновные) дизъюнкты. Для литеры L и множества S основных дизъюнктов мы будем использовать S(L), чтобы обозначить множество, полученное из S выбрасыванием всех дизъюнктов, содержащих L, и выбрасы- выбрасыванием ~L из оставшихся дизъюнктов. В правиле расщепления, введенном Девисом и Патнемом, для литеры Lx из некоторого множества S основных дизъюнктов мы вычисляем S (£J и S (~Lt). Мы знаем, что S противоречиво тогда и только тогда, когда противоречивы оба множества S(L,) и S(~Lj). Цель применения правила расщепления — расщепить 5, которое не удается дока- доказать с помощью правила однолитерных дизъюнктов, на два мень- меньших множества, которые, как мы надеемся, могут быть доказаны с помощью однолитерного правила. Конечно, множества S (Lj) и S^Li) можно расщеплять снова. Пусть L2 — литера в S(Lj. Ясно, что мы можем вычислить S^J^^ и ^(L^^L,,). Обоз- Обозначим S^J^z) и S(Ll)(~L2) через S(L1, L2) и S(Llt ~L2) соответственно. Таким образом, 5(LJ противоречиво тогда и только тогда, когда оба множества S(Llt L2) и S(Lr, ~L2) про- противоречивы. Правило расщепления применяется до тех пор, пока не окажется, что все меньшие множества можно доказать по правилу однолитерных дизъюнктов. В общем случае процесс расщепления можно представить в виде дерева, изображенного на рис. 58, где S(Ll, ..., Lq) представляет множество (. . .((S(Lj))(L2)).. .). Читатель может
200 НЕКОТОРЫЕ ПРОЦЕДУРЫ ДОКАЗАТЕЛЬСТВА [ГЛ. 9 S(~L,) Рис. 58. легко увидеть, что это дерево похоже на псевдосемантическое дерево. Для расщепления этого дерева мы можем использовать метод поиска в глубину. Иными словами, на каждом шаге мы пытаемся доказать самое левое множество по правилу одноли- терных дизъюнктов. Если мы добьемся успеха, то переходим к самому левому из оставших- оставшихся множеств. В противном слу- случае разбиваем испытуемое мно- множество и т. д. Отметим, что S(Llt . . ., Lq) можно получить непосредственно из множества S, выбрасывая все дизъюнкты, содержащие хотя бы одну из ли- литер Lj, \^j ^iq, и выбрасывая все литеры ~LU ..., ~L? из оставшегося множества. Чтобы обобщить метод Де- Девиса и Патнема на неосновные дизъюнкты, мы дадим следующий алгоритм, аналогичный описан- описанному в предыдущем параграфе. А. Обобщенный метод Девиса и Патнема Шаг 0. Пусть М — якобы П-противоречивое множество для некоторого множества S дизъюнктов. Пусть W—множество всех различных положительных дизъюнктов, входящих в М. (W может быть и множеством всех различных отрицательных дизъюнктов входящих в М. Мы используем меньшее из этих двух множеств.) Шаг 1. Пусть i = 0, Я° = {е}, BRANCH = (NIL) и BACKUP= = (NIL), где NIL — пустой список. Шаг 2. Если список BRANCH пуст, закончим применение алгоритма; любая подстановка из R' является решением мно- множества М. В противном случае продолжаем. Шаг 3. Пусть В — последний элемент в списке BRANCH. Выбрасываем В из BRANCH. Шаг 4. Пусть B = (LU ..., Lq). Для каждого Q £ R' вычис- вычислим К F) следующим образом. Пусть М F) — множество, полу- получаемое из MQ выбрасыванием всех дизъюнктов, содержащих хотя бы одну из литер Ly-0, l^/^<7> и выбрасыванием всех литер ~L16, ..., ~L,j0 из оставшегося множества. Оснастим каждый дизъюнкт из MQ пустой подстановкой е. Используем единичную V-резолюцию, чтобы вывести оснащенный пустой дизъ- дизъюнкт из множества ({LJ9, ..., Lq\<d\\JM(Q)). Если мы можем вывести оснащенный пустой дизъюнкт, то /С@) будет по опре- определению множеством подстановок, приписанных всем таким вы- выведенным оснащенным пустым дизъюнктам. В противном случае ЛИТЕРАТУРА 201 /С (в) пусто. После того как /С F) вычислено для каждого 6 g R1', полагаем /С= U /С@). 6SR' Шаг 5. Если К пусто, переходим к следующему шагу. В про- противном случае помещаем пару (В, R') в начало списка BACKUP, полагаем R' + 1 = K, / ===== / —f— 1 и переходим к шагу 2. Шаг 6. Выбираем из W элемент L такой, что L или отри- отрицание L не входят в В. Если это невозможно, переходим к шагу 8. В противном случае продолжаем. Шаг 7. Пусть Вл и В2—-два списка, получаемые дописыва- дописыванием соответственно L и ~L к концу списка В. Помещаем Вг и В2 (в произвольном порядке) в начало списка BRANCH. Пере- Переходим к шагу 2. Шаг 8. Если список BACKUP пуст, закончим применение алгоритма; множество М не имеет решения. (Оно должно быть расширено перед тем, как запускать весь алгоритм сначала.) В противном случае продолжаем. Шаг 9. Пусть (Р, К)—лервая пара в BACKUP. Выбрасы- Выбрасываем (Р, К) из BACKUP. Полагаем i = t—-I, Rl' = K, B = P и переходим к шагу 6. За исключением шага 4, этот алгоритм совпадает с описан- описанным в предыдущем параграфе. Можно доказать, что и этот ал- алгоритм найдет решение множества М, если оно существует. На шаге 4 мы используем «единичную V-резолюцию», которая соответствует правилу однолитерных дизъюнктов Девиса — Пат- Патнема. Процесс расщепления вынуждается заданным в алгоритме процессом порождения дерева. Мы отметим, что этот метод весьма близок к методу редукции матрицы, предложенному П р а в и- цем [2]. Для эффективной реализации шага 4 можно использо- использовать материал, приведенный' в приложении А. ЛИТЕРАТУРА Бледсоу (Bledsoe W. W.) 1. Splitting and reduction heuristics in automatic theorem proving.— Artifi- Artificial Intelligence, 1971, 2, p. 57—78. Д е в и с (Davis M.) 1. Устранение лишнего из механических доказательств.- Кибернет. сб., нов. сер., 7. М.: Мир, 1970. Лавленд (Loveland D. W.) 1. Mechanical theorem proving by model elimination.—J. Assoc. Comput Mach., 1968, 15, p. 236—251. 2. Some linear Herbrand proof procedures: an analysis.— Dept. Computer Science, Carnegie-Mellon University, 1970. 3. A unifying view of some linear Herbrand procedures.— J. Assoc Com- Comput. Mach., 1972, 19, p. 366—384. Правиц Д. (Prawitz D.) 1. An improved proof procedure.—Theoria, i960, 33, p. 246—254. 2. Достижения и проблемы в развитии процедур механического доказа- доказательства.— Кибернет. сб., нов. сер., 9. М.: Мир, 1972, с. 52—65.
202 НЕКОТОРЫЕ ПРОЦЕДУРЫ ДОКАЗАТЕЛЬСТВА ГЛ. 9 Слэйгл и Конивер (Slagle J. R., Koniver D.) 1. Finding resolution proofs and using duplicate goals in AND/OR trees. — Information Sci., 1971, 4, p. 315-342. Уос, Робинсон Г., Карсон и Шелла (Wos L., Robinson G. A., Carson D. F., Shalla L.) 1. The concept of demodulation in theorem proving.— J. Assoc. Comput. Mach., 1967, 15, p. 698—709. Чень (Chang С L.) 1. Theorem pro\ing by generation of pseudo-semantic trees.— Division of Computer Research and Technology, National Institutes of Health, Bethesda, Maryland, 1971. 2. Theorem proving with variable-constrained resolution.—Information Sci., 1972, 4, p. 217—231. Чинланд, Девис, Хинмен и Макилрой (Chinlund Т. J., Davis M., Hinman P. G., Mcilroy M. D.) 1. Theorem proving by matching.—Bell Laboratory, 1964. Эрнст (Ernst G.) 1. The utility of independent subgoals in theorem proving.— Information and Control, 1971, 18, p. 237—252. УПРАЖНЕНИЯ К § 9.2 1. Рассмотрим S = {~P(x), P(x)\/Q(x, f (b)), P(x)\'~Q(a, f (x))}. Пусть М-—множество, состоящее из двух копий дизъюнкта ~Р (х), одной копии P(x)\/Q{x, f (b)) и одной копии Р (x)v~Q (a, f (x)). Найги решение мно- множества М. 2. Рассмотрим следующее множество S дизъюнктов: P(g(x, у), х, у), Р(х, h(x, у), у), -Р(х, у, и)\/~Р(у, -P(k(x), х, г, v)\j~P(x, v, w)\yP(u, z, w), Пусть М — множество, состоящее из одной копии каждого дизъюнкта из 5. Найти решение множества М. К § 9.3 3. Доказать с помощью V-резолюции П-противоречивость множества М из упражнения 1. 4. Доказать с помощью V-резолюции П-противоречивость множества М из упражнения 2. Рис. 59. 5. Доказать теорему 9.1. 6. Доказать изоморфность двух ориентированных графов, изображенных на рис. 59. УПРАЖНЕНИЯ К § 9.5 7. Пусть 5—множество, состоящее из следующик дизъюнктов: PvQ, QvR, RvW, 203 ~W\/~Q, ~Qv~R. Используя процедуру из § 9.5, найти замкнутое псевдосемантическое дерево для 5. 8. Пусть 5 —множество, состоящее из следующих дизъюнктов: р и. ~D(y)vL(a, у), ~P(x)\/~Q(y)v~L(x, у),. D (Ь), Q(b). Используя процедуру из § 9.5, найти замкнутое псевдосемантическое дерево для 5. Можно ли преобразовать это дерево в доказательство по правилу- резолюции (вернуться к примеру 5.17). К § 9.6 9. Доказать противоречивости множества 5 из упражнения 7 с помощью алгоритма из § 9.6. 10. Доказать противоречивость множества 5 из упражнения 8 с помощью алгоритма из § 9.6.
ГЛАВА 10 АНАЛИЗ ПРОГРАММ § 10.1. Введение В этой и следующей главах мы рассмотрим приложения мате- математической логики к анализу и синтезу программ. Говоря об ана- анализе программ, мы имеем в виду, что задана программа, и хотим знать отношение вход —выход. В задаче синтеза программ нам да- дано отношение вход — выход, и мы хотим синтезировать программу, реализующую это отношение вход—выход. И действительно инте- интересно показать, что математическая логика—очень полезный инструмент решения этих задач. В общем случае в связи с данной программой мы можем за- задавать следующие вопросы: 1. Задача о завершении работы: закончит ли программа ра- работу при данном входе? 2. Задача о реакции: если при данном входе программа завер- завершает работу, каков будет выход этой программы? 3. Задача о правильности: при данном входе будет ли выход этой программы удовлетворять спецификации (отношению вход — выход) программы? 4. Задача об эквивалентности: будут ли две данные про- программы давать одни и те же результаты, если их входы одни и те же? 5. Задача о специализации. Пусть дана программа Р, напи- написанная в расчете на некоторое множество J входов. Если мы заинтересованы лишь в некотором непустом подмножестве J* множества J, как мы можем упростить Р и получить другую программу Р*, работающую на J* быстрее, чем Р х)? Флойд [1] указал, что математическая логика может быть использована для анализа программ. Это было выяснено еще подробнее в важных работах Манны [1], [21. Манна [Дописал завершение, корректность и эквивалентность программ как три разные задачи и дал три различных алгоритма для этих задач. В работе Манны [2| было указано, что задача о завершении работы является основной. Задачи о корректности и эквивалент- эквивалентности можно в действительности сформулировать в виде задач о завершении работы. х) Следует иметь в виду, что при допущении самых простых программных средств (например, сложения, вычитания и условного перехода) все эти за- задачи оказываются алгоритмически неразрешимыми (общедоступное изложение этой проблематики см. в книге: Трахтенброт Б. А. Алгоритмы и вычис- вычислительные автоматы.—М.: Советское радио, 1974).— Прим. ред. § Ю.2 НЕФОРМАЛЬНОЕ ОБСУЖДЕНИЕ 205 Наш подход основан на результатах Флойда и Манны. С са- самого начала отметим, что мы можем использовать логические формулы для описания исполнения программы. Рассматривая эти формулы как аксиомы, мы можем выводить логические следствия из этих аксиом. (Это было отмечено у Ли и Ченя [1].) Неко- Некоторые логические следствия служат базисом для описания отно- отношения вход—выход. В частности, имеется дизъюнкт, называемый стоп -дизъюнктом, который оказывается автоматически выводи- выводимым (с помощью метода резолюций) тогда и только тогда, когда программа завершает работу. Этот дизъюнкт сообщает нам не только о том, что программа завершает работу, но и о том, как она завершает работу. Таким образом, используя этот стоп- дизъюнкт, мы можем видеть, удовлетворяет ли программа спе- спецификации и эквивалентна ли она некоторой другой программе. Мы предположим, что наши программы могут быть представ- представлены граф-схемами. Имеются программы (например, рекурсивно обращающиеся к себе), которые нельзя представить граф-схемами. Однако эти программы можно_ транслировать в граф-схемные программы. Существование компиляторов для языка ЛИСП (М а к- карти [1]) неявно устанавливает этот факт. Перед тем как погрузился в формальные определения и ма- математику, мы дадим в следующем параграфе неформальное описа- описание нашего подхода. § 10.2. Неформальное обсуждение Рассмотрим граф-схему программы, изображенную на рис. 60. В этой программе х1 и х2 — входные переменные, у—програм- у—программная переменная, г— выходная переменная. Для упрощения нашего обсуждения мы представим эту программу в виде ориен- Рис. 60.
206 АНАЛИЗ ПРОГРАММ [ГЛ. 10 Рис. 61. тированного графа, изображенного на рис. 61. В этом ориенти- ориентированном графе каждый узел представляет контрольную течку. На каждом ребре, ведущем из узла i в узел /, имеется преди- предикат, указывающий условие, при котором управление переходит из узла i в узел /. Рассмотрим, например, узел 1. Если оказы- оказывается, что х1 меньше, чем у, то переменной z присваивается хх и программа завершает работу (узел Я —это стоп-узел); в про- противном случае переменной у присваивается х\ и управление переходит в узел 2. ^Зададим себе следующий вопрос. Как управление может пе- перейти в узел 1? Условием, очевидно, является хг > 0. После того как управление перешло в узел 1, переменной у при- присваивается х2+1. Поэтому мы можем сказать, что если управ- управление переходит в узел 1, то истинно (х1 > 0)/\{у = х2 + 1). Это условие можно обозначить с помощью предиката Ql(x1, х2, у). Аналогичным образом мы можем обозначить через Q2{xlt xit у) условие, при котором управление переходит в узел 2. Из рис. 61 мы знаем, что если управление находится в узле 1 и хг не меньше, чем у, то управление будет передано из узла 1 в узел 2 по ребру D) и переменной у будет присвоено х\. Те- Теперь этот факт можно выразить с помощью логической формулы Qi(*i, х„ y)Axt<y-^Qt(xlt х2, xf). Аналогичным образом мы можем описать передачу управле- управления на узел 2 через ребра B) и E) следующими формулами: Xi>0-»Qt(xlt xt, %x+l), Q2(xu xt, у)Лу> 16 ■—&(*!, х2, у2). В действительности мы видим, что вся программа может быть описана некоторым множеством логических формул. Каж- Каждая формула соответствует проходу по некоторому ребру граф- схемы. Эти формулы служат основой для анализа исполнения ю.з] ФОРМАЛЬНОЕ ОПРЕДЕЛЕНИЕ ПРОГРАММ 207 программы. Например, если мы знаем, что для данных-л, и х2 не существует у такого, что формулы Qx(xlt x2, у) и хх<,у могут быть истинны одновременно, то управление никогда не будет передано на узел Н с узла 1. Если мы знаем, кроме того, что Q2(xlt х2, у) не может быть истинно вместе с г/> 16, то управление не может перейти с узла 2 на узел Н по ребру F). Тогда мы можем с уверенностью сказать, что программа никогда не завершит работу. Анализируя корректность программ, мы применяем тот же тип рассуждений. Если мы можем доказать, что каждый раз, когда программа завершает работу, будет удов- удовлетворяться спецификация программы, т. е. отношение между входными и выходными переменными, то скажем, что программа корректна. В следующем параграфе мы дадим формальное определение программ. § 10.3. Формальное определение программ Ниже мы будем представлять программы ориентированными графами (Басекер и Саати [1]). Определение. Ориентированный граф состоит из непус- непустого множества V, множества А, не пересекающегося с V, и отображения D из А на VxV. Элементы множеств V и А называются соответственно узлами и ребрами, a D называется отображением направленной инцидентности, связанным с дан- данным ориентированным графом. Если а£А и D(a) = (v, v'), то говорят, что v является начальным узлом ребра a, a v' — его конечным узлом. Для наших целей число узлов и ребгр предпо- предполагается конечным. Упорядоченный граф обычно обозначается через (V, A, D) или (V, А), если D не используется явно. Путь в ориентированном графе—это последовательность ребер а,, а2, ..-, ап, где каждое ребро а,- имеет начальный узел u,-_j и конечный узел vt. Определение. Программа состоит из входного вектора x~=(xlt --., xL) (или вектора входных переменных), программного вектора у = (у, Ум) (или вектора программных переменных), выходного вектора z = (zlt .. ., zN) (вектора выходных переменных) и конечного ориентированного графа (V, А) такого, что выпол- выполнены следующие условия: 1. В графе (V, А) имеется ровно один узел S£V, называе- называемый стартовым узлом, не являющийся конечным узлом ника- никакого ребра; имеется ровно один узел H£V, называемый стоп- узлом, который не является начальным узлом никакого ребра, и каждый узел v находится на некотором пути от S к Н. 2. В графе (V, А) каждому ребру а, не входящему в Н, поставлена в соответствие бескванторная формула Ра(х, у) и.
208 АНАЛИЗ ПРОГРАММ ГЛ. 10 присваивание г/-<— fa(x, у). Каждому ребру а, входящему в стоп- узел Я, поставлена в соответствие бескванторная формула Ра(х, у) и присваивание z+—fa(x, у) (Ра называется контроль- контрольным предикатом, поставленным в соответствие ребру а, а Ра (х, у)— контрольной формулой, поставленной в соответствие ребру а, короче'—для а). 3. Для каждого узла v (юфН) пусть Of, а2, ■■■, аг — все ребра, выходящие из v, и пусть Ра1, Ра2, ..., Раг — контроль- контрольные предикаты для ребер а,, а2, ..., аг соответственно. Тогда для всех х и у одна и только одна из формул Ра1 (х, у), Раг(х< У)' •••! P<ir{x' У) принимает значение И. Иногда имеется только одно ребро, исходящее из определен- определенного узла. В этом случае можно считать, что контрольная фор- формула для этого ребра —просто И, и спокойно игнорировать ее. Пример 10.1. Рассмотрим программу умножения двух не- неотрицательных целых чисел хх и хг. Единственный доступный контрольный предикат — это проверка равенства чисел нулю, а единственные используемые функции — это сложение и вычи- вычитание. Программа такова: г/х— 0 У 2 *~Ч 1: [Иг/2 = 0, then[Zl — ух, halt]; У**-У*—U gotol]], где хх и х2—входные переменные, ух и г/2 — программные пере- переменные и z—выходная переменная. Эту программу можно представить ориентированным графом, изображенным на рис. 62. Мы проверим теперь, удовлетворяет ли этот граф всем усло- условиям из определения программы. Заметим, что есть один стар- стартовый узел и один стоп-узел, и любой узел находится на неко- некотором пути от 5 к Н. Следовательно, выполнено условие 1. Каждому ребру поставлены в соответствие некоторая формула и некоторое присваивание. Следовательно, выполнено условие 2. Наконец, имеется ровно одно ребро, а именно а, выходящее из S; для всевозможных значений xlt х2, ух и у2 формула И всегда истинна. Что касается узла 1, то имеется два ребра, а именно b и с, выходящие из этого узла. Для всех значений xi> Х2' У\ и Уг верна одна и только одна из формул у2 = 0, у2 ф 0. Поэтому выполнено условие 3. Мы видим, что этот граф удовлетворяет всем условиям, наложенным на программу. По- Поэтому он действительно представляет программу. §10.4 ЛОГИЧЕСКИЕ ФОРМУЛЫ 209 о Снова рассмотрим ориентированный граф, изображенный на рис. 62. Если даны значения хх и х2, программа исполняется следующим образом. Пусть вначале управление находится в узле S. Сначала оно будет передано в узел 1. При этом пере- переменной ух будет присвоен 0, а переменной у2—значе- у2—значение х2. Теперь проверяют- проверяются у2 = 0 и у2ф®. Если у2 — 0, то переменной z при- присваивается ух, управление передается в Я и програм- ма завершает работу. Если у2 Ф 0, то переменной у1 при- присваивается ух-\-хх, перемен- переменной уг — значение у2—1 и управление проходит через ребро b и возвращается 0 0 Рис. 62. в узел 1. Снова проверяются у2 = 0 и у.,фО и весь процесс повторяется. Этот процесс будет продолжаться вечно, если в какой-то точке управление не пе- перейдет к узлу //. В общем случае для данного входа х исполнение заданной программы происходит сопасно следующему алгоритму. Шаг 1. Всегда предполагается, что первоначально управле- управление находится в узле S. Шаг 2. Пусть / = 0, vJ' — S и пусть у1—значение вектора программных переменных. Шаг 3. Если v>=H, то исполнение завершается; в против- противном случае переходим к следующему шагу. Шаг 4. Пусть ау-—ребро, начальным узлом которого являет- является v>, и формула Рп.(х' yJ) истинна. Пусть vJ+1—конечный узел ребра п;. Тогда управление движется по ребру а;- в узел vJ+l и выполняется одно из следующих присваиваний: 1. yJ+1 -<— fa.(x> У1)' если vJ+1 не Н, 2. z +— fa (x, у>), если vJ + 1 есть Н. Шаг 5. Полагаем / = /+1 и переходим к шагу 3. § 10.4. Логические формулы, описывающие исполнение программы Согласно неформальному описанию в § 10.2 правила испол- исполнения программ можно удобно описывать логическими форму- формулами. Это делается с помощью остроумного понятия, определяе- определяемого ниже.
210 АНАЛИЗ ПРОГРАММ ГЛ. 10 Определение. Для каждого узла и,- в программе опреде- определим Qi(x, #)(или Q,(x, z), если v, = H) как условие перехода управления (от узла S) к узлу vh причем входному вектору присвоено х, а значение программного (соответственно выход- выходного) вектора становится у (соответственно г). Это условие на- называется условием доступа к v{. Иными словами, условие Qi(x, у) имеет значение И всякий раз, когда управление переходит к узлу v;. Предикат Q, называется предикатом доступа к узлу v,-. Так как всегда предполагается, что первоначально управле- управление находится в уз те S, мы можем считать, что Qs(x, у) есть просто И. Поскольку переход управления к узлу Н указывает, что программа завершает работу, предикат Qh играет важную роль в анализе программ, как мы увидим в следующих пара- параграфах. В дальнейшем Qh будет называться стоп-предикатом. Пусть а — ребро программы с начальным узлом и,- и конечным узлом Vj. Пусть Ра{х, у) и fa(x, у)— контрольная формула и при- присваивание, поставленные в соответствие ребру а. Если управление перешло к у,- (и, следовательно, Q,(x, г,) есть И) и Ра (х, у) также есть И, то управление будет передано по ребру а в узел Vj, причем переменным у будет присвоено fa(x,~y) (и, следовательно, Q,-(x, fa (x, у)) есть Я). Итак, мы мо- можем следующим образом описать с помощью формул исполнение программы. Определение. Пусть а—ребро в программе. Пусть vt и V:—соответственно начальный и конечный узлы ребра а. Пусть Ра(х, у) и fa(x, у)—контрольная формула и присваивание, по- поставленные в соответствие ребру а. Тогда мы следующим обра- образом определяем формулу Wa, поставленную в соответствие реб- ребру а: Wa- Qt (*. У) Л Ра (*• У) — Qj {X, fa (X, У)). Wa называется описывающей формулой для ребра а. Если мы используем для представления Wa дизъюнкт Са, то Сп назы- называется описывающим дизъюнктом для ребра а. Отметим, что если vt = S, то Q,-(%,«/) = #, как уже указано раньше. Поэтому, если vi = S, то Wa переходит в формулу Pa(x,y)^Q/(X,fa{x, У))- Пример 10.2. Снова рассмотрим программу, изображенную на рис. 62. Описывающие формулы для ребер a, b и с таковы: Wa: 1, х2, 0, xt), Wb: Qt(xu x3, у.2 — Wc: хг, ух 10.5 АНАЛИЗ ПРОГРАММ С ПОМОЩЬЮ РЕЗОЛЮЦИИ 211 Определение. Пусть аг, а2, ..., ац—все ребра в прог- программе Р. Тогда (Уг/) (W Л Wa2/\- --AWa ) называется описывающей формулой программы Р, где при каждом i, \^.i^.R, формула Wa.—описывающая формула ребра а{. (Отметим, что входные переменные трактуются в описывающей формуле как константы.) В дальнейшем описывающую формулу программы Р будем обозначать через Ау. Как обычно, будем представлять АР в виде множества дизъюнктов. АР можно рассматривать как множество аксиом. Позднее будет показано, что мы можем выводить из Ар логические следствия. Однако сначала мы должны убедиться, что АР непротиворечива. Теорема 10.1. Для данной программы Р пусть АР —мно- —множество дизъюнктов, представляющих описывающую формулц про- программы Р. Тогда АР выполнима. Доказательство. Отметим, что для каждого ребра а со- соответствующий описывающий дизъюнкт содержит положительную литеру, а именно Qj(x, fa(x, у)). Поэтому в АР любой дизъюнкт содержит положительную литеру. Пусть vu v2, ..., vm—все уз- узлы из Р, за исключением стартового узла S. Пусть / — интер- интерпретация, в которой любой литере Q,(x, у), 1 sgCt г^Ст, присвоено значение И. Очевидно, что любой дизъюнкт из Ар принимает в / значение И, а поэтому АР принимает в / значение И. Таким образом, Ар выполнима, что и требовалось доказать. В следующем параграфе мы покажем, как можно анализиро- анализировать программу, выводя из АР логические следствия. § 10.5. Анализ программ с помощью резолюции Пример 10.3. Рассмотрим программу, изображенную на рис. 63, где х—входное целое число, у—программная перемен- переменная и D(x, п) означает, что я—делитель х.
.212 АНАЛИЗ ПРОГРАММ ГЛ. 10 Описывающие дизъюнкты этой программы таковы: A) С,: ~D(x, 7)\/Q1(x, x), B) С2: D(x, 7)VQh(x,.u), C) С3: -QAx, y)V~D(y, 9)\/Q2(x, у), D) C4: ~Qt(x, y)VD{y, 9)\/QH(x, b), E) C5: ~Qs{x,y)\/D(y, ll)VQh(x,c), F) C,: ~Qt(x,y)V~D(y, U)VQH(x,d). Мы можем использовать метод резолюций, чтобы выводить .логические следствия из этих дизъюнктов. Например, трактуя входную переменную х как константу, мы можем породить сле- следующие результаты: G) ~D(x, 7)\/~D(x, 9)\/Q2(x, x) (8) ~D(x, 7)\J~D{x, 9)\/~D(x, U)\/QH(x,d) (9) ~D(x,7)\/D(x,9)\/QH(x,b) из A) и (З), из G) и F), из A) и D). В действительности мы можем вывести интересные и инфор- информативные логические следствия: A0) D(x,7)VQH(x,a), A1) ~D(x,7)\jD(x, 9)\/Qh(x, b), A2) ~D(x,7)\/~D(x, 9)\/D(x, U)\/QH(x,c), A3) ~D(x, 7)V~D(x, 9)V~D(x, W)\jQH(x, d). На дизъюнкты A0)—A3) можно смотреть как на полное опи- описание отношения вход—выход для программы. Их можно интер- интерпретировать следующим образом. Дизъюнкт A0): если 7 не является делителем входной пере- переменной х, то программа завершает работу с выходом а. Дизъюнкт A1): если 7 является делителем х, но 9 не явля- является делителем х, то программа завершает работу с выходом Ь. Дизъюнкт A2): если и 7, и 9 являются делителями х, но 11 •не является делителем х, то программа завершает работу с вы- выходом с. Дизъюнкт A3): если 7, 9 и 11 являются делителями х, то программа завершает работу с выходом d. Дизъюнкты A0) — A3) имеют следующие общие черты: (a) Единственный предикат доступа, входящий в них,— это Qh. (b) Ни один из них не содержит программных переменных. (c) Каждый дизъюнкт соответствует некоторому пути в про- программе, начинающемуся в узле S и оканчивающемуся в узле Н. Например, дизъюнкт A0) соответствует пути, состоящему только из ребра B), в то время как дизъюнкт A2) соответствует пути, состоящему из ребер A), C) и E). Ясно, что эти дизъюнкты дают нам много информации об отношении вход — выход для программы. В общем случае, если § 10.5] АНАЛИЗ ПРОГРАММ С ПОМОЩЬЮ РЕЗОЛЮЦИИ 213 программа не содержит циклов, то нетрудно вывести все эти дизъюнкты. Пусть Р—программа без циклов. Пусть о15 о2, . . ., aR — путь в Р от S к Н. Пусть Са_, \^.i^R,— описывающий дизъ- дизъюнкт ребра о,-. Пусть S и v1 — соответственно начальный и ко- конечный узлы ребра ох, пусть vR и Н—начальный и конечный узлы ребра aR, и пусть vi_1 и у,- — начальный и конечный узлы ребра а,-, 2 ^ i ^ R—1. Очевидно, что дизъюнкт COi содержит Qx, дизъюнкт Са2 содержит ~Qj и соответствующие ли- литеры унифицируемы. Поэто- Поэтому имеется резольвента дизъюнктов Сах и С„2, при построении которой отреза- Уг~* X. р р ется Q1. Пусть С\ озна- чает COi, а С2—резольвенту дизъюнктов С1 и С„2. Дизъ- Дизъюнкт С2 содержит Q2. Та- Таким образом, мы можем применить правило резолю- резолюС С Э уг Рис. 64. ции к Саз. Этот процесс можно повторить. В общем С С Т Са Тогда ^ аз р случае пусть Ci+1 — резольвента дизъюнктов С,- и CR_l — это дизъюнкт, описывающий путь alt a2, ..., aR. Чита- Читатель может сам убедиться в том, что дизъюнкты A0) — A3) мож- можно получить таким образом. Если в программу включен цикл, отношение вход — выход нельзя получить столь простым путем, как это описано выше. В этом случае нужно применить некоторую подходящую схему индукции. Пример 10.4. Рассмотрим программу, изображенную на рис. 64, где л', и х2—входные переменные, у1 и у2 — программ- программные переменные и z—выходная переменная. Дизъюнкты, описывающие эту программу, таковы: A) Са: Q B) Cb:~Q, C) CC:~Q l V-^ii Х2, I \Xlt Х2, 1 (*i i Х2 , Хи У и У и х»), «/2)V«/2 = 0^ y2)Vi/2^0 VQh(^i, ^2, Л h 1, г/2— 1), )• Для этого примера мы воспользуемся следующей схемой ин- индукции: i(*i, x2,x}, y2)) i(x1i x2, xlt ya) ?!(*!, Х2, Хх+Х2, 0).
214 АНАЛИЗ ПРОГРАММ ГЛ. 10 Приведенная выше аксиома может быть разбита на 3 дизъ- дизъюнкта, в которых f—скулемовская функция: D) у, > 0V~Qi (*,, х„ xlt y,)yf{yt) > 0 \/Q (xlt х2, хг + х2, 0), E) yt>0V~Qi(xJ, х2, xlt yt)VQAxlt х2, х,,/Ы) VQ, (xlt xs, x,+x2, 0), F) y,>OV~Qi(jflf x2, xlf yt)V~QAxitxt, xx+\, f(y2) — 1) VQi(*i, x2, xt + x2, 0). Допустим также, что G) x2 > 0. Дальнейшие аксиомы, нужные нам, таковы: (8) 0 = 0, (9) «>0V«=^0. Из A)—(9) мы можем породить следующие резольвенты: A0) ~QAxi,xt, xltxt)Vf(x,)>0VQi(x1, x2,Xl + x2,0) из D) и G), A1) ~Qt (xlt x2, xu x2)\/Q1 (xlt х2, xlt f(x2))vQi (*i, x2, х^х2, 0) из E) и G), A2) ~QAxi,xt, х1г *,)V~Q!(*i. *».*i+!./(*.)—1) VQi («,, *a, xt + x3, 0) из F) и G), A3) f(x2)>0\jQl(x1, x2, x± + xt, 0) из A) и A0), A4) Q1(x1, x2, х1г f{x,))\/QAXi, xt, Xj+x2, 0) из A) и A1), A5) -C,(^,^,^ + 1, /(*,)—IJVQita,*,, ■*! + *„ 0) из A) и A2), A6) /(*,) = 0v<?i(*i, x» xt + \, f(x,)~l)VQAx1,x2,x1+x2,0) из B) и A4), A7) /(x.) Ф0VQi (Jfi, Jf.,Jfi + Jf,,O) из (9) и A3), A8) Qxta.Xi.Jtx+l, /(*,) — l)VQl (*!,*„ *!+*., 0) из A6) и A7), A9) QAXi,xt,x1+x,,0) из A5) и A8), B0) 0ф0\/Ян(х1, х2, х^+хг) из C) и A9), B1) QH(xlt x,,x1 + xt) из (8) и B0). Дизъюнкт B1) показывает, что задача этой программы — складывать два числа ху и хг. Пример 10.5. Рассмотрим рис. 65. Читатель может легко увидеть, что мы можем вывести сле- следующие логические следствия из формул, описывающих эту программу, и других необходимых аксиом: A) ~(*1<*3)V £//(*!, Х2, X! + Xs), B) (x1^x2)\/Qh(xu х2, х1—х2). , 10.6] ЗАВЕРШЕНИЕ РАБОТЫ И РЕАКЦИЯ ПРОГРАММ 215 b't Эти логические следствия показывают, что если хх меньше или равен х2, то выход есть сумма х1 и х2; в противном слу- случае он равен разности х1 и х2. § 10.6. Завершение работы и реакция программ В этом параграфе мы обсудим следующие задачи. Если дана программа и спецификация входа, как мы Можем ре- решить, завершает ли программа работу (проблема остановки)? Если дана программа и спецификация входа, причем про- программа завершает работу, каков выход программы (проблема реакции)? Как мы увидим, эти две проблемы тесно связаны. В дейст- действительности мы убьем этих двух мух одним ударом. Очевидно, что для ответа на поставленные выше вопросы нам нужна некоторая информация. В общем случае нам нужна следующая информация. 1. Аксиомы, описывающие исполнение программы. Они уже обсуждались в § 10.4. Как и раньше, мы обозначим через Ар описывающую формулу программы. 2. Аксиомы, относящиеся к контрольным предикатам и функ- функциям, участвующим в присваиваниях. Например, нам могут понадобиться аксиомы равенства или какая-то подходящая схема индукции. Мы обозначим это через As. 3. Аксиомы о входе. Например, мы можем потребовать, что- чтобы вход был положительным целым числом, или при использо- использовании языка ЛИСП мы можем потребовать, чтобы вход был S- выражением. Мы будем обозначать аксиомы этого рода через А/. Мы предположим-, что AS/\A, непротиворечива. Нам надо еще обеспечить непротиворечивость конъюнкции Ap/\As/\Ar. Теорема 10.2. Пусть для данной программы Р через S обо- обозначено множество дизъюнктов, представляющее конъюнкцию Apf\Asf\At. Тогда S выполнимо. Доказательство. Пусть S,, S2 и S3—множества дизъ- дизъюнктов, представляющие соответственно Ар, As и Аг. По тео-
216 АНАЛИЗ ПРОГРАММ ГЛ. 10 реме 10.1 множество Ар непротиворечиво, причем интерпрета- интерпретация 1и которая дает значение Я всем литерам Q, (х, у), выпол- выполняет S^ Так как As/\Ar непротиворечива, имеется интерпрета- интерпретация /3, выполняющая S2/\S3. Так как S2 и S3 не содержат предикактов доступа Qh то мы можем определить интерпретацию / как объединение /, и /2. Интерпретация / выполняет 5,, S2 и S3. Таким образом, S выполнимо, что и требовалось доказать. iaK как AP/\AS/\A[—это полное описание программы и вхо- входа, программа завершает работу тогда и только тогда1), когда (Эг) QH (х, z) является логическим следствием конъюнкции AP/\AS /\А[. Поэтому на проблему остановки можно смотреть как на проблему поиска вывода. Однако, как увидит читатель, мы можем достичь большего, чем просто доказательства остановки программы. В действитель- действительности мы постараемся вывести логическое следствие, которое не только сообщит нам, что программа останавливается, но и ска- скажет, как она останавливается. Рассмотрим снова программу из примера 10.3. Читатель мо- может легко увидеть, что дизъюнкт QH(x, a)\/QH(x,b)\/QH(x, c)\/QH (x, d) является логическим следствием аксиом этой программы. Поэтому он примет значение Я, если эти аксиомы примут значение Я. Так как дизъюнкт—это дизъюнкция литер, то по крайней мере одна из литер примет значение И. Это означает, что когда программа будет исполняться при произвольном входе х, управление будет пере- передано по некоторому пути на узел Я, и программа завершит работу. Таким образом, этот дизъюнкт говорит нам, что про- программа остановится и после остановки ее выходом будет а, Ь, с или d. В примере 10.4 в добавление к аксиомам Ар, описывающим программу, мы имеем также условие х2 > 0. Мы можем рассмат- рассматривать его как аксиому Аг, специфицирующую вход. Схема индук- индукции нужна для функций «+» и «—». Аксиомы As включают эту схему индукции, 0 = 0 и и > 0\/иф0. Так как QH(xu x2, х1+х2) является логическим следствием конъюнкции Ap/\Asf\Ar, мы заключаем, что программа остановится для ,v2, больших 0, и когда она остановится, ее выходом будет х±-\-хг. Определение. Дизъюнкт, содержащий только стоп-преди- кат QH, мы будем называть стоп-дизъюнктом. Хотя мы знаем, что программа останавливается тогда и только тогда, когда существует стоп-дизъюнкт, являющийся логическим следствием конъюнкции Ap/\Asf\Ar, мы все же хотим иметь уверенность, что этот конкретный дизъюнкт можно вывести «ме- ') Об аксиомах сказано слишком мало для того, чтсбы это утверждение можно было считать строго установленным.— При м. перев. § 10.6 ЗАВЕРШЕНИЕ РАБОТЫ И РЕАКЦИЯ ПРОГРАММ 217 ханически». В дальнейшем мы докажем, что с помощью принципа резолюции мы всегда можем вывести такое логическое следствие. Чтобы доказать это, нам нужна следующая лемма. Лемма 10.1 (лемма об остановке программы). Для данной программы Р пусть At—формула, полученная из описывающей формулы Ар путем вычеркивания всех литер, содержащих QH. Тогда Р завершает работу в том и только в том случае, когда At/\As /\АГ противоречива. Доказательство. (=>) Допустим, что Р завершает ра- работу. В этом случае для любого значения х существует ребро а в программе Р такое, что управление переходит по ребру а в узел Я. Пусть v,- — начальный узел ребра а. Так как терминаль- терминальный узел ребра а есть Я, то описывающей формулой ребра а является Q,- (х, ~у)/\Ра (х, y)-^QH{x,fa (x, у)), где Ра(х, у) и fa(x, у) — соответственно контрольная формула и функция присваивания, поставленные в соответствие • ребру а. Так как управление проходит через а от узла v( к узлу Я, обе формулы Q,(x, у) и Ра (х, у) должны принять значение Я. По- Поэтому формула ~ Q,(x, у) V~ Pa(x, у) ложна. Однако она при- принадлежит АТ. Поэтому Ат /\ As /\ Аг ложна. Следовательно, Ат /, As /\ А, противоречива. (<=) Допустим, что Ат/\ As/\ Аг противоречива. Мы хотим показать, что Р завершает работу. По теореме 10.2 мы знаем, что Ар A As Л А, выполнима. Более того, из доказательства тео- теоремы 10.2 мы знаем, что мы можем построить модель М конъ- конъюнкции Ар /\ As /\ Aj такую, что каждый атом, содержащий предикат доступа Qh имеет в /И значение Я. Так как Ат /\ As /\ А, невыполнима, модель М опровергает конъюнкцию Ат Л As Л А,. Так как модель М выполняет As /\ Аг, она должна опровергать Ат. Так как М не содержит отрицания какого-либо Q,, она должна опровергать некоторый дизъюнкт С'а из Ат такой, что С'а не содержит положительных литер. Ясно, что С'а должен быть получен из некоторого дизъюнкта Са в А? путем выбрасывания Некоторой литеры, содержащей QH. Пусть Са записан в виде ~ Qi (x, ~У)\/ ~Ра {х, ~у) \/ QH (*, fa (x, у)). Тогда С'а есть {x, У)- Так как С'а ложен в М, то обе формулы Qt(x, у) и Ра (х, у) имеют значение Т. Поэтому управление будет передано из узла V; на узел Я, и программа завершит работу, что и требова- требовалось доказать.
218 АНАЛИЗ ПРОГРАММ [ГЛ. 10 Пример 10.6. Рассмотрим программу, изображенную на рис. 66. Для этой программы формула Ат задана так: Wa: Q, (х, х), QA)>0) Для этого примера сама Ат противоречива. Поэтому про- программа завершит работу. Теорема 10.3 (теорема о реакции программы). Пусть Р — программа. Пусть S обозначает множество дизъюнктов, пред- представляющее формулу Ар Л As Л А,. Программа Р [завершает ра- работу тогда и только тогда, когда существует вывод стоп-дизъ- юнкта из множества S (по правилу резолюции). Ь Рис. 66. Доказательство. (=>) Пусть S' — множество дизъюнктов, представляющее конъюнкцию АТ /\ As /\ А,. Так как Р завер- завершает работу, то, согласно лемме 10.1, множество S' противоре- противоречиво. Поэтому имеется вывод D' пустого дизъюнкта Q из S'. Пусть D — вывод, полученный из D' возвращением литер, содер- содержащих QH, назад в дизъюнкты, из которых они были выброшены. Очевидно, что D — вывод стоп-дизъюнкта, содержащего только стоп-предикаты. Это завершает доказательство первой половины теоремы 10.3. (<=) Допустим, что имеется вывод D некоторого стоп-дизъ- стоп-дизъюнкта из множества S. Пусть S'— множество дизъюнктов, полу- полученное из S выбрасыванием всех стоп-предикатов. Очевидно, что тот же самый вывод D (если выбросить и из него стоп-предикаты) породит пустой дизъюнкт из S'. Поэтому S' противоречиво. Но S'—множество дизъюнктов, представляющее конъюнкцию Ат ,\ /\AS А А,. Согласно лемме 10.1 программа Р завершает работу, что и требовалось доказать. Если мы интересуемся только тем, завершает ли программа свою работу (но не тем, как она ее завершает), то мы можем использовать лемму 10.1. Отметим, что программа завершает ра- работу тогда и только тогда, когда (Эг) QH (x, z) является логиче- логическим следствием формулы Ар A As /\ А,. Следовательно, мы мо- можем также пытаться доказать, что формула Ар A As /\ А, /\ Л( Vz) ~ Qh(x, z) противоречива1). ]) То, что из Ар Л As л А, в исчислении предикатов (первого порядка) следует какой-то стоп-дизъюнкт, нужно рассматривать не как утвержде. § Ю.7" СТРАТЕГИЯ ПОДДЕРЖКИ И ВЫВОД СТОП-ДИЗЪЮНКТА 219 § 10.7. Стратегия поддержки и вывод стоп-дизъюнкта Очевидно, что если мы интересуемся только стоп-дизъюнктом, то нам не нужно перечислять всевозможные резольвенты, по- поскольку многие из них не внесут никакого вклада в порождение этого дизъюнкта. В этом параграфе мы обсудим эффективные способы вывода стоп-дизъюнкта, т. е. способы его вывода без порождения слишком большого числа посторонних дизъюнктов. Так как стоп-дизъюнкт всегда содержит стоп-предикат QH, интуиция подсказывает, что мы можем ограничить возможные применения правила резолюции, потребовав, чтобы любое приме- применение содержало QH хотя бы в одной из посылок. Так как обычно количество таких дизъюнктов вначале невелико, мы надеемся, что это сильно ограничит число порожденных промежуточных дизъ- дизъюнктов. Естественный вопрос — обеспечит ли такого рода стратегия порождение стоп-дизъюнкта. Интересно показать, что эта привлекательная с интуитивной точки зрения стратегия действительно полна при порождении стоп-дизъюнкта. Причина в том, что это — в точности стратегия поддержки, которую мы обсуждали в главе 6. Сейчас мы кратко напомним стратегию поддержки. Пусть S — противоречивое множество дизъюнктов. Пусть Т — подмножество множества S. Т можно рассматривать как мно- множество поддержки, если S — Т непротиворечиво. Резолюция с под- поддержкой— это применение правила резолюции к двум дизъюнк- дизъюнктам, не принадлежащим одновременно множеству S — Т. Вывод с поддержкой—это вывод, состоящий целиком из резолюций с поддержкой. В нашем случае пусть S обозначает множество дизъюнктов, редставляющее конъюнкцию Ар A As А А,. Г —подмножество S, ние о программе Р, а как пожелание к As и А, (см. сноску на с. 2!6). Поэтому математическое содержание этого параграфа сводится к следующим утверж- утверждениям: 1) Если из S выводимо (Vat,)... (удс£)(эг,)...(Эгл-) <?(*ь ..., *д, г„ ..., гл-), то из S выводим некоторый основной дизъюнкт Q (аи ..., ai, t\, ..., ^)v \j .■ .\/ Q{au ... , a[_, tlt ... , tj{), где alt ..., a^—скулемовские кон- константы. 2) Если основной дизъюнкт D логически следует из 5, то неограничен- неограниченной резолюцией из 5 можно вывести поддизъюнкт D' дизъюнкта D (это верно для любого выполнимого 5 и любого D). Если при этом в D входят константы, не встречающиеся в 5, то на соответствующих местах в D' стоят переменные. 3) Если к тому же в D входит только один предикат, то упомянутое D' можно вывести, придерживаясь естественной стратегии отрезания литер с этим предикатом лишь в последнюю очередь (в нашей ситуации отрезать Qh вообще не придется). Таким образом, авторские утверждения можно усилить, а программист- программистская специфика оказывается не'по существу. Переосмысление материала в этом духе полезно и для следующей главы.— Прим. ред.
220 АНАЛИЗ ПРОГРАММ ГЛ. 10 10.8] ПРАВИЛЬНОСТЬ И ЭКВИВАЛЕНТНОСТЬ ПРОГРАММ 221! в котором любой дизъюнкт содержит стоп-предикат QH. Пусть S' и 7" — множества дизъюнктов, полученные из S и Т выбра- выбрасыванием QH. Очевидно, что S'—7" составляет выполнимое мно- множество дизъюнктов, и поэтому 7" может быть множеством под- поддержки для вывода пустого дизъюнкта из S'. Так как вывод стоп-дизъюнкта из S соответствует выводу пустого дизъюнкта из S', мы видим, что можем вывести стоп-дизъюнкт из 5, при- придерживаясь стратегии поддержки, причем каждый дизъюнкт в мно- множестве поддержки содержит QH. Пример 10.7. Рассмотрим случай из примера 10.3. Мы имеем следующее м ножество описывающих дизъюнктов: A) ~D{x, 7)\/ QAx, х), B) D(x,7)\/ QH(x,a), C) ~ Q, (х, y)V~D (у, 9) V Q2(x, у), D) ~ <?! (х, y)V D (у, 9) V QH(x, Ь), E) ~Qt{x, y)\/D{y, \\)\/QH(x, с), F) ~QA*> y)V~D(y, \\)VQH(x, d). Допустим, что мы имеем также следующие дизъюнкты, пред- представляющие ограничения на вход: G) D(x, 7), (8) D(x, 9). Дизъюнкты B), D), E) и F) составляют множество поддержки. Следующий вывод является выводом с поддержкой. Читатель увидит, что каждое применение резолюции содержит хотя бы один дизъюнкт, содержащий QH. (9) ~ Qt(x, y)\fQH{x, c)VQH(x. d) из E) и F), A0) ~ Q,(x, y)V~D(y, 9)\/QH(x, c)\/QH(x, d) из (9) и (З), A1) ~D{x, 7)V~D(x, 9)\/QH{x, c)\/Qn(x, d) из A0) и A), A2) ~D(x,9)VQH(x,c)VQn(x,d) из A1) и G), A3) QH(x, c)VQH(x, d) из A2) и (8). Мы ни в коем случае не утверждаем, что стратегия под- поддержки наилучшая для вывода стоп-дизъюнкта. Однако для читателя, заинтересованного в реализации анализа программ, заметим, что стратегию поддержки наверняка легко реализовать. § 10.8. Правильность и эквивалентность программ В этом параграфе мы рассмотрим правильность и эквива- эквивалентность программ. Программа правильна, если она завершает работу и удовлетворяет спецификации (отношению вход — выход). Аналогично, программа эквивалентна некоторой другой про- программе, если при одном и том же входе обе они заканчивают работу и дают один и тот же выход. Так как конъюнкция AP/\AS/\AI—полное описание программы и входа, мы можем сформулировать высказанные идеи следующим образом. Определение. Пусть R(x, z)— отношение, описывающее спецификацию программы. Программа называется правильной относительно R(x, г), если C~z)(QH(x, г)Д /? (Зё, z)) —логическое следствие формулы ApAAs/\Af. Определение. Пусть Ар и АгР — описывающие формулы для программ Р1 и Я2. Тогда говорят, что программы Р1 и Р* эквивалентны друг другу, если (Эг) (Qk (x, ~z)/\ Q% (x, ~z)) является логическим следствием формулы Ap/\A'pf\Asf\A!, где Q^ и Q%— стоп-предикаты для Р1 и Р%. Пример 10.8. Рассмотрим программу из примера 10.4. Допустим, что у нас есть следующие ограничения на вход: (!)*:> 0, B) х2 > 0. Мы имеем также аксиому C) ~ (Xl > 0)V~ (xt > 0)\/(Xl + x.2 > *,). Из примера 10.4 мы знаем, что можем вывести D) QH{Xi, хг, хх+х2). Пусть спецификация программы—формула z > xt. Чтобы показать, что программа правильна, мы докажем, что E) Cz)(QH(x,, дг„ г)/\(г>х1)) является логическим следствием выписанных выше дизъюнктов. Сначала, используя обычную технику доказательства теорем, Чиы отрицаем E) и получаем F) ~ QH{xu xt, z)V~{z>x1). Затем, используя правило резолюции, мы следующим обра- образом показываем, что дизъюнкты A) — D) и F) противоречивы: G) ~(*,>0)V (*! + *,>*,) из A) и C), (8) Xl + x2>Xl из G) и B), (9) ~(*1 + *2>*1) из D) и F), (Ю) □ из (9) и (8). Таким образом, E) — логическое следствие из A), B), C) и D). Так как дизъюнкты A), B) и C) принадлежат А,, а дизъ- дизъюнкт D) есть логическое следствие формулы АР/\А3/\А„ то E) — логическое следствие формулы AP/\AS/\A,. Поэтому мы заключаем, что программа правильна по отношению к данной спецификации.
222 АНАЛИЗ ПРОГРАММ ГЛ. 10 10.9 СПЕЦИАЛИЗАЦИЯ ПРОГРАММ 223 § 10.9. Специализация программ Мы часто будем встречаться со следующим вопросом. Мы на- написали программу Р, которая должна была допускать некоторое множество / входных данных. Однако позднее мы интересуемся только ограниченным подмножеством /* множества /. Разумеется, Р все еще может воспринимать /* и выдавать выходные данные. Однако, так как /* меньше, чем /, мы должны быть в состоя- состоянии модифицировать программу Р таким образом, чтобы моди- модифицированная программа Р* могла работать быстрее на множе- множестве /*. Вопрос в том, как мы можем модифицировать про- программу Р. Эту задачу рассматривали Диксон [1], [2], Футамура [1], Чень, Ли и Диксон [1]. Диксон написал программу под названием Specializer для выполнения модификации. Specializer делает следующее. Пусть Р — программа, имеющая N входных переменных (аргументов). Допустим, что конкретные значения присвоены М аргументам. Тогда программа Р* имеет только N— М аргументов. Остальные переменные «зафиксированы», и Р* — это специализированный вариант программы Р для конкрет- конкретных значений фиксированных аргументов. Преимущества спе- специализации те же, чт<> у компиляции: Р* обычно работает бы- быстрее, чем Р, и может требовать меньшего объема памяти, чем Р. Specializer Диксона написан на языке ЛИСП. Он может специализировать программы только на ЛИСП. Ограничение на вход указывается путем фиксации значений некоторых входных переменных. Грубо говоря, Specializer выполняет следующие две операции: A) удаление команд, которые могут быть исполнены, и заменой их на соответствующие значения; B) устранение одной из ветвей условного оператора, если она не нужна. «Pattern specializer», также введенный Диксоном A), использует более общий подход. Ниже мы опишем некоторую процедуру специализации. Как и раньше, Ар обозначает описывающую формулу программы Р, As обозначает аксиомы, относящиеся к контрольным предика- предикатам и функциям присваивания в Р, А) обозначает аксиомы, описывающие ограниченный вход /*. Пусть S обозначает мно- множество дизъюнктов, представляющее формулу AP/\AS/\A). Процедура специализации Шаг 1. Используя правило резолюции, вывести стоп-дизъюнкт Сн из S. Шаг 2. Пусть D — вывод дизъюнкта Сн. Шаг 3. Пусть Р* — программа, полученная из Р выбрасыва- выбрасыванием каждого ребра, описывающий дизъюнкт которого не исполь- используется в D, и упрощением результирующей программы. Р* — это специализация программы Р для входа /*. Пример 10.9. Рассмотрим снова программу Р из при- примера 10.3. Эта программа рассчитана на любое целое число. Пусть мы знаем, что х меньше, чем 10. Найдем специализацию про- программы для такого входа х). Для этой программы Ар задано дизъюнктами A)—F) при- примера 10.8. As задано в виде G) х< 10V-£>(*, П). А} задано в виде (8) х< 10. Дизъюнкт G) означает, что если х< 10, то 11 не является де- делителем х. Из AP/\AS/\A) мы получим следующий вывод D стоп-дизъюнкта: (9) ~D(x, П) (Ю) ~ Qt(x, y)\/QH{x, с) A1) ~ <?,(*, y)VQ2(x, y)VQn(x, b) A2) ~ <?,(*, y)\/QH{x, c)\/QH(x, b) A3) Qx(x, x)VQn(x, а) A4) QH(x, a)\/QH{x, b)VQH(x, с) из G) и (8), из E) и (9), из C) и D), из A0) иA1), из A) и B), из A2) и A3). A4) является стоп-дизъюнктом, а это показывает, что выхо- выходом может быть a, b или с (но не d). Так как С6 не исполь- используется в выводе, можно выбросить ребро F). Мы получим про- программу Р*, изображенную на рис. 67. Очевидно, что Р* можно упростить дальше до программы, изображенной на рис. 68. У) -х Пример 10.10. Рассмотрим снова рис. 63. Пусть на этот раз мы знаем, что если 9 —делитель х, то 11—не делитель х. Посмотрим, как это упрощает программу. . *) Из изложения этого примера устранено дублирование с приме- примером 10.3.— Прим. ред.
224 АНАЛИЗ ПРОГРАММ [ГЛ. 10 УПРАЖНЕНИЯ 225 Описывающие дизъюнкты^те же самые. А} задано в виде G) ~D{x, 9)V~£>(x, 11). (8) (9) A0) (I I) A2) A3) Мы имеем следующий вывод: Q,(x, x)VQH(x, а) из A) и B), D(x, 9)VQ2(x, x)VQH{x, а) из (8) и C), D(x, l\)V~D(x, 9)\/QI1(x, a)\jOH{x,c) из (9) и E), D(x,9)VQH(x, a)VQn(x, с) из A0) и G), QAx, x)\yQH(x, a)\/QH(x,b)\/QH(x,c) из A1) и D), QH(x, a)VQH(x, b)\/QH(x, с) из A2) и (8). Дизъюнкт F) снова не используется в приведенном выше выводе. Поэтому программа может быть окончательно упрощена до вида, изображенного на рис. 68. ЛИТЕРАТУРА Басекер и Саати (Busacker R. G., Saaty T. L.) 1. Finite Graphs and Networks: an Introduction with Applications.— N. Y.: McGraw-Hill, 1965. Диксон (Dixon J.) 1. An Improved Method for Solving Deductive Problems on a Computer by Compiled Axioms: Ph. D. Thesis.— Davis (California), University of Ca- California, 1970. 2. The specializes a method of automatically writting computer programs.— Division of Computer Research and Technology, National Inst. of Health, Bethesda. Maryland, 1971. Ли и Ч е н ь (Lee R. С. Т., Chang С. L.) 1. Program analysis and theorem proving.— Division of Computer Research and Technology, National Inst. of Health, Bethesda, Maryland, 1971. Манна (Manna Z.) 1. The correctness of programs.—J. Comput. System Sci., 1969, 3, p. 119— 127. 2. Properties of programs and the first-order predicate calculus.— J. Assoc. Comput. Mach., 1969, 16, p. 244—255. Маккарти (McCarthy, J.) 1. LISP 1.5 Programmers Manual.—Cambridge (Mass): The MIT Press, 1962. Ф л ой д (Floyd R. W.) 1. Assigning meaning to programs.— Proc. Symp. Appl. Math., 1967, 19, p. 19—32. Футамура (Futamura Y.) 1. Partial evaluation of computer programs: an approach to a compiler-com- compiler-compiler.—J. Inst. Electronics and Communication Engineers Japan, 1971. Чень, Ли и Диксон (Chang С L., Lee R. С. Т., Dixon J.) 1. Specialization of programs by theorem proving.—Division of Computer Research and Technology, National Inst. of Health, Bethesda, Mary- Maryland, 1971 УПРАЖНЕНИЯ к § ю.з 1. Рассмотрим следующую программу: If дгх > 0, then [у*— *а+1. g° *° 1]; else [г/ч— лтх+ 1, go to 2]; 1: If*i < у, then [г ч—y + xlt halt]; else [j/ч— у2, go to 2]; 2: г ч— i/ + *2> halt. Представить эту программу ориентированным графом. К § Ю.4 2. Рассмотрим программу, изображенную на рис. 61. Найти описываю- описывающие дизъюнкты для ребер этой программы. 3. Рассмотрим программу из упражнения 1. Дать описывающую формулу. К § Ю.5 4. Из описывающих дизъюнктов, которые вы получили в упражнении 3, выведите дизъюнкты, описывающие отношение вход—выход для этой про- граммы. к § Ю.6 5. Рассмотрим программу, изображенную иа рис. 69. 1. Дать описывающие дизъюнкты дуг (а), (Ь) и (с). 2. Доказать, что эта программа завершит работу, если xt и х2 — поло- положительные целые числа. Рис. 69. Рис. 70. 6. Из описывающих дизъюнктов программы, рассмотренной в упражне- упражнении 1, вывести стоп-дизъюикт. К § Ю.7 7. Рассмотрим снова пример 10.4. Использовать стратегию поддержки для вывода стоп-дизъюикта. 8 Ч. Чень, Р. Ли
226 АНАЛИЗ ПРОГРАММ [ГЛ. 10 8. Рассмотрим снова пример 10.7. Выберем F) в качестве верхнего дизъюнкта. Использовать линейный вьшод для получения пустого дизъюнкта. К § 10.8 9. В упражнении 1 пусть спецификация программы выражена условием «если *! < х2+1, то выход есть xl-f х2 + 1». Доказать, что программа пра- правильна. К § 10.9 10. Рассмотрим программу, изображенную на рис. 70. Показать, что ребро B) может быть выброшено, с помощью формальной техники доказа- доказательства теорем. ГЛАВА 11 ДЕДУКТИВНЫЙ ПОИСК ОТВЕТОВ НА ВОПРОСЫ, РЕШЕНИЕ ЗАДАЧ И СИНТЕЗ ПРОГРАММ § 11.1. Введение В этой главе мы обсудим возможности применения доказа- доказательства теорем к поиску ответов на вопросы, решению задач и синтезу программ. Вначале 1961 г. Маккарти [1] впервые указал на важность математической логики при использовании ЭВМ для выполнения этих задач. Это соображение было позднее развито многими авторами. Например, Блек [1], Дарлинг- Дарлингтон [1] и Слэйгл [1] спроектировали системы ответов на вопросы, использующие методы доказательства теорем. Слэйгл [1] использовал метод сочетания переменных, который позднее применен К. Грином и Рафаэлем в их системе (К- Грин и Рафаэль [1]; К. Грин [1] — [3]). Он показал также, что дедуктивную систему ответов на вопросы можно использовать и как систему для решения задач. Например, его программа решила задачу об обезьяне и бананах (модифицированный ва- вариант вопроса Маккарти [1]), задачу о Микадо (Се.йфир [1]), задачу об эндшпиле (Маккарти [3]) и задачу о компи- компиляторе описаний состояний (Саймон [1]). К. Грин и Рафаэль сделали большой шаг вперед в области ответов на вопросы, указав, что методы автоматического дока- доказательства теорем такие, как метод резолюций, могут быть использованы при проектировании систем ответов на вопросы и решения задач. Важная идея К. Грина и Рафаэля состоит в том, что множество фактов, необходимых для ответов на во- вопросы (или решения задач), можно рассматривать как аксиомы (посылки) некоторой теоремы, а сам вопрос — как заключение- этой теоремы. Уолдингер и Ли [1] разработали программу PROW (написание программ), которая автоматически пишет программы. Они показали также, что их программы могут быть использо- использованы для ответов на вопросы и решения задач. Имеются два вида систем для ответов на вопросы: системы общего назначения и системы специального назначения. В си- системах специального назначения данные обычно относятся к спе- специальной области и множество допустимых вопросов весьма ограничено. Типичные системы специального назначения — это система Бейсбол (Б. Грин, Вулф, Чомский и Лофери [1]), отвечающая на вопросы о бейсболе в Соединенных Штатах Аме- 8* Зак. 112
228 ДЕДУКТИВНЫЙ ПОИСК ОТВЕТОВ [ГЛ. 11 рики, и система Линдсея [1], отвечающая на вопросы о семей- семейных отношениях. Основные задачи при проектировании систем специального назначения для ответов на вопросы—это оптимальное размеще- размещение данных в памяти и создание эффективных специализирован- специализированных подпрограмм, обеспечивающих быструю работу и небольшой объем требуемой памяти. Мы интересуемся главным образом системами общего назна- назначения для ответов на вопросы, в которых база данных не кон- конкретизирована заранее и множество допустимых вопросов ши- широкое. Зачастую главной чертой системы общего назначения является ее дедуктивная сила. Вот почему математическая логика играет такую важную роль в дедуктивных ответах на вопросы. В этой книге мы делим вопросы на четыре класса в соот- соответствии с формой ответа на вопрос. 1. Класс А. Вопросы, требующие ответа «да» или «нет». Например, ответом может быть «да, Джеймс в Вашингтоне» или «нет, Джеймс не в Вашингтоне». .2. Класс В. Вопросы, требующие в качестве ответа «где», «кто» или «при каких условиях». Например, ответом может быть «Джон в Париже», «Джон — муж Мэри» или «Джон должен бежать, если идет дождь». 3. Класс С. Вопросы, требующие ответа в виде последова- последовательности действий. Например, ответом может быть «поезжай в Нью-Йорк поездом, а затем в Париж самолетом». Здесь ука- указаны два действия и их порядок существен. 4. Класс D. Вопросы, включающие проверку условий (ветв- (ветвление). Например, следующий ответ типичен: «если ходит авто- автобус, то поезжай в Нью-Йорк автобусом, если нет — поезжай в Нью-Йорк поездом». Что касается систем для решения задач и написания про- программ, то они не слишком отличаются от систем ответов на вопросы. Зачастую системы, написанные для одной из этих целей, можно использовать и для других. Например, система PROW Уолдингера и Ли предназначена для написания про- программ. Однако она может быть использована и для ответов на вопросы. Аналогично, система Дедуком, спроектированная Слэйглом [1], предназначена для ответов на вопросы, но она может быть использована и для решения задач. В этой книге мы будем использовать термины «ответы на вопросы», «решение задач» и «синтез программ» довольно свободно. Грубо говоря, в практических приложениях системы ответов на вопросы зани- занимаются вопросами класса А и класса В, системы решения за- задач— вопросами класса С, а системы синтеза программ — вопро- вопросами класса D. В дальнейшем мы обсудим, как эти четыре класса вопросов можно охватить с использованием методов доказате льства теорем. § 11.2] ВОПРОСЫ КЛАССАТА 229 § 11.2. Вопросы класса А Так как ответ на вопрос класса А—это только «да» или «нет», то задача ответа на вопрос—это просто задача доказа- доказательства теоремы, где данные факты считаются аксиомами тео- теоремы, а сам вопрос представлен как заключение этой теоремы. Пример 11.1. Рассмотрим здесь очень простой случай. Пусть мы имеем следующие факты: Fr: Любой человек смертен. Fa: Конфуций—человек. Вопрос, который мы хотим задать, таков: Q: Смертен ли Конфуций? Чтобы ответить на этот вопрос, мы пытаемся доказать, что утверждение «Конфуций смертен» является логическим следствием из Z7, и F2. Если это сделано, то ответ—«да». Пусть Р(х) и R(x) представляют соответственно предикаты «л;—человек» и «х смертен». Данные факты представляются следующими дизъюнктами: A) ~P(x)VR(x), B) Р (Конфуций). Заключение теоремы представлено дизъюнктом C) R (Конфуций). Мы отрицаем C) и получаем D) ~R (Конфуций). Читатель может легко показать, что дизъюнкты A), B) и D) образуют противоречивое множество дизъюнктов. Поэтому C) является логическим следствием из A) и B). Следовательно, ответ должен быть «да, Конфуций смертен». Иногда мы не можем доказать теорему, соответствующую данному вопросу. В этом случае мы пытаемся опровергнуть ее. Если мы добъемся успеха, то ответ—«нет». Пример 11.2. Пусть даны следующие факты: /V Если кто-то в Париже, то он не в Мсскве. F2: Джон в Париже. Вопрос: Q: Джон в Москве? Пусть Р(х, у) означает «х находится в у». Тогда факты таковы: A) ~Р(х, Париж) V ~Р(х, Москва), B) Р (Джон, Париж).
230 ДЕДУКТИВНЫЙ ПОИСК ОТВЕТОВ ГЛ. II Теорема, соответствующая нашему вопросу,— это C) Р (Джон, Москва). Легко заметить, что дизъюнкт C) не является логическим следствием дизъюнктов A) и B), а отрицание дизъюнкта C) является их следствием. Поэтому нашим ответом должно быть «нет, Джон не в Москве». Если мы не можем ни доказать теорему, ни опровергнуть ее, то нашим ответом должно быть «недостаточно информации». § 11.3. Вопросы класса В Мы начнем с очень простого примера. Пример 11.3. Пусть дан факт «Джон—муж Мэри» и задан вопрос «Кто муж Мэри?» Пусть Р(х,у) означает «л: есть муж у». Тогда данный факт есть A) Р (Джон, Мэри). Затем для ответа на наш вопрос мы устанавливаем следую- следующее заключение: B) (Эх)Р(х, Мэри). Если мы можем доказать, что B) является логическим след- следствием факта A), то мы по крайней мере знаем, что ответ су- существует. Читатель может легко усмотреть, что, прослеживая подстановку, сделанную вместо переменной, мы можем решить, чему равен х. Чтобы доказать эту теорему, мы сначала отрицаем B). Таким образом мы имеем C) ~Р(х, Мэри). Применяя правило резолюции к A) и C), мы получаем про- противоречие, и теорема доказана. В процессе применения прави- правила х заменяется на «Джон». Если включен подходящий меха- механизм прослеживания, то мы можем выявить эту информацию, н нашим ответом будет «Джон — муж Мэри». Очень простой способ прослеживания переменной—-это добав- добавление к дизъюнкту C) предиката, называемого ЛЛ^-предикатом (от answer—ответ). Таким образом, в приведенном примере мы можем иметь D) ~Я(*. M3?h)\;ANS(x). Дизъюнкт D) означает: «кто бы ни был мужем Мэри, он наш ответ». Отметим, что дизъюнкт D) эквивалентен формуле E) (Ух)(Р{х, Мэри) — ANS(x)). §11 3 ВОПРОСЫ КЛАССА В 231 И снова мы применяем резолюцию к A) и D). На этот раз вместо пустого дизъюнкта мы получаем F) ANS (Джон). Поэтому наш ответ—«Джон—муж Мэри». Мы замечаем, что ANS (Джон) — логическое следствие дизъюнктов A) и D). Таким образом, мы преобразовали первоначальную задачу доказатель- доказательства теорем в задачу вывода логических следствий. Вывод дизъюнкта, содержащего только ЛЛ^5-предикат, напо- напоминает вывод стоп-дизъюнкта, рассмотренный в главе 10. Этот прекрасный путь прослеживания переменных был впервые изо- изобретен К- Грином [3]. По аналогии со стоп-дизъюнктом мы будем называть дизъюнкт, содержащий /Ш5-предикат, дизъюнк- дизъюнктом-ответом. Пример 11.4. Рассмотрим следующие факты: /•\: Для всех х, у и z, если х—отец у и г-—отец х, то г — дед у. F2: У каждого есть отец. Мы зададим вопрос: «для каждого х, кто является, дедом *?» Пусть Р(х, у) и Q (х, у) обозначают соответственно «х—отец у» и «х — дед у». Тогда описанные выше факты выражены дизъ- дизъюнктами: A) ~Р{х, y)\/~P(z, x)VQ(z, у), B) P(f(x), x), где f(x) означает отца х. Мы можем иметь еще один дизъюнкт, соответствующий нашему вопросу: C) ~Q(y, x)VANS(y). Дизъюнкт C) означает, что для всех х и для всех у, если у есть дед х, то у—наш ответ. Теперь мы порождаем следующие резольвенты: D) ~P(z, f(y))VQ(z, у) E) Q(f(f(y)),y) F) ANS {f (f(x))) из A) и B), из D) и B), из E) и C). Наш ответ поэтому таков: «отец отца х есть дед х». В математике часто ищут решение путем доказательства существования решения. Например, для нахождения решения некоторого уравнения мы можем сначала доказать, что такое решение существует. Извлекая информацию из этого доказа- доказательства, мы можем обычно получить решение. В следующем примере мы покажем, как автоматическое доказательство теорем может быть использовано для решения достаточно сложной математической задачи.
232 ДЕДУКТИВНЫЙ ПОИСК ОТВЕТОВ [ГЛ. 11 Пример 11.5. Нам дана система, описываемая следующими аксиомами: A) (Vx)((Vy)(Vz)((x + y) + z=:x + (y+z)) ассоциативность, B) (Ух)(Уг/)(Эг)(z-\-x = y) существование левого решения, C) (Ул:) (Уг/) (Эг) (х -f- z = у) существование правого решения. Наша задача—найти правую единицу этой системы. Иными словами, нам требуется найти такой х, что г/-f-л: = г/для всех у. Обозначим «x + y—z» через Р(х, у, г). Тогда аксиомы можно представить следующими дизъюнктами: A) ~ Р(х, у, и)\/~Р(у, z, v) V ~ Р(х, v, а») V Я (и, z, w) B) P(g(x, у), х, у), C) Р(х, h(x, у), у). Чтобы найти правую единицу, мы добавляем следующий дизъюнкт: D) ~P(f(x), х, f(x))VANS(x). Дизъюнкт D) означает, что если имеется х такой, что г/ + -\-х = у для всех у, то х является ответом. (Заметим, что / в дизъюнкте D) — скулемовская функция.) E) ~Р (у, z, v)\/~P (g(у, и), v, w) VР (и, г,ы>) из A) и B) F) -Я (и, z, v)\JP(w, z, w) из E) и B), G) P(w,h(v,v),w) из C) и F), (8) ANS(h(v, v)) из G) и D) Дизъюнкт (8) показывает, что для любого v выражение h(v, v) есть правая единица. Следующая таблица определяет конкретную ассоциативную систему с левыми и правыми решениями: + а Ь с а а Ь с Ь Ь с а с с а Ь Легко видеть, что h(a, a) = h(b, b) = h(c, с) = а. Легко видеть также, что «а» действительно является правой единицей, так как = а, b-\-a — b, § П.4 ВОПРОСЫ КЛАССА С 233 § 11.4. Вопросы класса С Для вопросов этого типа наша задача состоит в нахождении последовательности действий, достигающей некоторой цели. Самое важное понятие, участвующее в нахождении ответов на вопросы этого типа,— это так называемый метод «состояний и их преобразований» (К. Грин [3]). Считается, что каждый из рассматриваемых объектов находится в данный момент в опре- определенном состоянии. Для достижения цели мы должны изменить нынешнее состояние объекта в желаемое состояние. Это требует некоторого действия. Ъ Будет показано, как можно использовать автоматическое доказательство теорем для ^ис. 71. нахождения таких действий. Пример 11.6. Рассмотрим рис. 71. Допустим, что началь- начальным состоянием субъекта d является st и d вначале находится в точке а. Если мы обозначим «х находится в точке у в состоя- состоянии г» через Р (х, у, z), то сформулированный факт запишется в виде A) P(d, a, s,). Пусть любой субъект, находящийся в состоянии г, может быть перемещен из точки у1 в точку у2 действием /х. Мы можем считать f1 функцией, аргументами которой являются х, у1У у2 и z. Значением /, (х, ух, у2, z) является новое состояние, которое возникает после того, как х, находившийся первоначально в состоянии z, передвинут из у1 в у2 действием /х. Это записы- записывается формулой B) (Vx)(Vyi)(Vy2)(Vz) (/>(*, уи z)-*P(x,yt,fAx, У,, у2, г))). Теперь мы можем использовать A) и B), чтобы ответить на вопрос: «Как мы можем переместить объект d из точки а в точ- точку ft?» Мы имеем два дизъюнкта, представляющих данные факты: C) P{d,a,Sl), D) ~Р(х, уи z)\/P(x, y2, fi(x, у,, у2, z)). Дизъюнкт E) ~P(d, b, z)VANS(z) представляет наш вопрос. Из C), D) и E) мы порождаем сле- следующие резольвенты: F) P(d, yt,fAd. a,yt, 5,)) из C) и D), G) ANSif^d, a, b, s,)) из E) и F). Таким образом, наш ответ включает одно действие, а именно применение /t для перемещения субъекта d из а в Ь.
234 ДЕДУКТИВНЫЙ ПОИСК ОТВЕТОВ ГЛ. II Рис. 72. В приведенном выше примере ответ на наш вопрос включает только одно действие. В следующем примере мы увидим, что тот же прием можно использовать и в случае, когда ответ тре- требует последовательности действий. Пример 11.7. Рассмотрим рис. 72. Субъект d расположен первоначально в точке а. Допустим, что нет прямого пути между а и с. Вопрос: «Как мы можем передвинуть d из а в с?» Допустим еще, что для перемеще- с ния субъекта d из а в b требуется дей- действие /х, а для его перемещения из Ь в с—действие f2. Задачу можно аксио- аксиоматизировать следующим образом: A) P(d, a, Sl), B) ~P(d, a, z)vP(d, b, h(d, a, b, г)), C) ~P{d, b, z)VP(d, c, h{d, b, с, г)). Дизъюнкт D) ~P(d, с, z)VANSiz) соответствует вопросу. Из A), B), C) и D) мы выводим следующие резольвенты: E) P(d, b, h(d, a, b,Sl)) из A) и B), F) P{d, с, ft(d, b, с, h(d, a, b, Sl))) из E) и C), G) ANS(f2(d, b, c, h(d, a, b, s,))) из F) и D). Дизьюнкт G) можно интерпретировать как выполнение двух действий—fl и f2. Иными словами, мы сначала применяем дей- действие fl для перемещения субъекта d из а в Ь, а затем применяем действие /„ для перемещения d из b в с. Теперь мы можем перейти к решению знаменитой задачи об обезьяне и банане (Маккарти [3], С л эй г л [1], К. Грин [3], Уолдингер и Ли [1]). Пример 11.8. В задаче говорится об обезьяне, которая хочет съесть банан, подвешенный к потолку комнаты. Рост обезьяны недостаточен для того, чтобы она могла дотянуться до банана. Однако она может ходить по комнате, переносить стул, находящийся в этой комнате, может забраться на стул и достать банан. Предикаты здесь таковы: Р(х, у, z, s) означает, что в состоянии s обезьяна находится в точке х, банан—в точке у, а стул — в точке г. Ris) означает, что в состоянии s обезьяна может достать банан. 11.4] ВОПРОСЫ КЛАССА С 235 Функции, участвующие в описании задачи: walk (у, z, s): состояние, которое получается, если обезьяна находилась сначала в состоянии s и перешла из точки у в точку z. carry (у, z, s): состояние, которое получается, если обезьяна находилась сначала в состоянии s и перешла из точки у в точку г, неся с собой стул. climb is): состояние, которое получается, если обезьяна на- находилась в состоянии s и влезла на стул. Мы предположим, что первоначально обезьяна находилась в точке а, банан — в точке Ь, стул — в точке с и обезьяна была в состоянии sl. Таким образом, мы имеем следующие аксиомы: A) ~Я(л:, у, z, s)\/P(z, у, z, walkix, z, s)), B) ~Pix, у, x, s)VP{y, У, У, carry(х, у, s)), C) ~Р(Ь, b, b, s)VR (climb {$)), D) Я (a, b, c, Sl). Разъясним смысл этих дизъюнктов. Дизъюнкт A) означает, что в любом состоянии обезьяна может перейти из точки х в точку z. Дизъюнкт B) означает, что если обезьяна находится около стула, который стоит в точке х, то она может перенести его в любую точку у. Дизъюнкт C) означает, что если стул и обезьяна находятся под бананом, то обезьяна может влезть на стул и достать банан. Дизъюнкт D) описывает исходную си- ситуацию. Дизъюнкт E) ~R{s)\/ANS(s) соответствует нашему вопросу. Из A), B), C), D) и E) мы выводим следующие резольвенты: F) ~Pib,b,b,s)\/ANSiclimbis)) из E) и C), G) ~Я(*. Ь, х, s)VANS [climb (carry{х, b, s))) из F) и B), (8) ~P(x,b,z,s) VANS (climb (carry(z, b, walk (x, z, s)))) из G) и A), (9) ANS (climb (carry (с, b, walk (a, c, sx)))) из (8) и D). Дизъюнкт (9) дает нам ответ. Его можно интерпретировать как выполнение следующих действий (начинаем с самой внутрен- внутренней функции в дизъюнкте (9) и движемся наружу): 1. Обезьяна идет из точки а в точку с. 2. Обезъяна идет из с в Ь, неся с собой стул. 3. Обезъяна влезает на стул. После этих действий обезьяна достает банан.
236 ДЕДУКТИВНЫЙ ПОИСК ОТВЕТОВ ГЛ. 11 § 11.5. Вопросы класса D Рассмотрим сначала очень простой пример. Пример 11.9. Допустим, что у нас есть следующие факты. Fj. Если Джону меньше пяти лет, он должен принимать лекарство а. F2. Если Джону не меньше пяти лет, он должен принимать лекарство Ъ. Наш вопрос: «Какое лекарство должен принимать Джон?» Пусть Р (х) и R(x,y) означают соответственно «человеку х меньше 5 лет» и «х должен принимать лекарство у». Тогда мы имеем A) ~/>(Джон)УЯ(Джон, а), B) Р (Джон) V R (Джон, Ь). Нашему вопросу соответствует дизъюнкт C) ~ #(Джон, x)\/ANS(x). Из A), B) и C) мы порождаем следующие резольвенты: D) ~Р(Джон)уЛЛЛ$(а) из A) и C), P(JX)ANS(b из B) и C), из D) и E). Джон должен принимать либо () (Дн)уЛЛЛ$(а) E) P(JXmoH)\/ANS(b) '6) ANS(a)VANS(b) Дизъюнкт F) говорит, что лекарство а, либо лекарство Ъ. Очевидно, что этот ответ, извлеченный из дизъюнкта F), далек от удовлетворительного. Нам хотелось бы иметь возмож- возможность сказать, при каком условии Джон должен принимать лекарство а, и при каком условии—лекарство Ь. ~Р(Джон) Р(Дмон) ~ff(AMOH,y)vANS(y) Р (Джон) v ANS (b) ANS(a) VANS (b) Рис. 73. Ta. Заметим, что дизъюнкт F) имеет вид ANS (a)\/ANS(b). Мы можем задать следующий вопрос: «При каком условии будет истинно ANS(aO» или «При каком условии ANS(a) будет логи- логическим следствием дизъюнктов A), B) и C)?». Аналогичный вопрос можно задавать для дизъюнкта ANS(b). Ниже мы пока- § 11.5] ВОПРОСЫ КЛАССА D 237 жем, как можно получить информацию, анализируя вывод дизъюнкта-ответа F). Вывод дизъюнкта F) изображен на рис. 73, где каждый узел соответствует дизъюнкту, участвующему в выводе, а переменные в дизъюнктах, приписанных исходным узлам, переименованы так, что дизъюнкты не имеют общих переменных. Обозначим это дерево вывода через То. Теперь мы проанализируем То с помощью следующего алгоритма извлечения информации. Алгоритм извлечения информации Шаг 1. Пусть дизъюнкт С в дереве Го есть резольвента дизъюнктов С\ и С2 с отрезаемыми литерами соответственно Lj и L2, и пусть 6 — наиболее общий унификатор литер Ly и ~ L2. ~Р(Джон) Р(Джон) ~ff(fiMon,x)vANS(x) чй[Джон,а) уД(Джон,й) ~й(Джйн,у)чАН8(у) 3> G) (Т) (з) /?(Джон,я) 5) Р(Джан)\1АМ8(Ъ) Р(Джт\ ANS(a)vANSlb) Рис. 74. 7\. Тогда на ребре, ведущем от С,- к С, i=l; 2, напишем отрица- отрицание литеры L,-6 и подстановку 6. (Если 6 —пустая подстановка, то напишем только отрицание Lfi.) В нашем примере дизъюнкт D) — резольвента дизъюнкта C) и дизъюнкта A). Отрезаемая литера в C) — это ~ R (Джон, х). Отрезаемая литера в A)—это R (Джон, а). Наиболее общий унификатор отрезаемых литер — {а/х\. Поэтому мы приписываем R (Джон, а) и подстановку Р(Джон) Р(Джон) Рис. 75. Г2. х-^-а ребру, ведущему от C) к D). Аналогично мы добавляем ~#(Джон,а) и подстановку х-<— а к ребру, ведущему от A) к D). Проделав то же для всех остальных ребер, мы получим дерево Tlt изображенное на рис. 74.
238 ДЕДУКТИВНЫЙ ПОИСК ОТВЕТОВ ГЛ. 11 Шаг 2. Перевернем дерево 7\, добавим стрелки к ребрам и выбросим все дизъюнкты, приписанные узлам. Мы получим тогда дерево Т2, изображенное на рис. 75, где помечены все висячие узлы. Шаг 3. В дереве Т2 мы удалим теперь все узлы (и связан- связанные с ними ребра), соответствующие дузъюнктам, не содержащим предиката ANS. В нашем примере будут удалены узлы В, С и связанные с ними ребра, так как дизъюнкты A) и B) не содержат преди- предиката ANS. Результирующее дерево Т3 изображено на рис. 76. Шаг 4. Пусть Л^, N2 Nm—висячие узлы дерева Т3. Для каждого Nh i=l, ..., гп, пусть I(N,■) обозначает конъюнкцию литер, приписанных пути от самого верхнего узла kNj. Пусть C(Nj) — дизъ- дизъюнкт, соответствующий узлу Л^,-. Находим в дизъ- дизъюнкте-ответе литеру L (Ni) такую, что L(Nt) — ло- логическое следствие конъ- конъюнкции I(Ni)AC(Ni). Рис. 76. т3. (Позднее в § 11.9 будет доказано, что такая литера существует.) Припишем Ь(М;) к узлу N,-. В нашем примере С(Л) = ~ #(Джон, х)\/ANS(x) и L(A) = ^=ANS(a), так как / (А) — Р (Джон)Л R (Джон, а). Аналогично, легко видеть, что L (B) = ANS(b). Полученное таким образом дерево Т4 изображено на рис. 77. Р(Джои) Р(Джон) Я (Джон, а) Я{Джон,Ъ) ■ Ь Р(Джон) Р(Джон) Р(Джон) Р(Джон) А" (Джон, я) Рис. 77. Tt. ANS(b) ANS [a) ANSlb) Рис. 78. 7Y Шаг 5. Запишем в виде Nt, N2, ..., Nq список всех узлов дерева Тл таких, что из Nit l^i^q, ведет только одно ребро а,-. Пусть Ь(ал) — литера, приписанная ребру а,-. Удалим из дерева Tt литеры L(at), l^ii^q, и обозначим результи- результирующее дерево через Ть. Для нашего примера Тъ изображено на рис. 78. Заметим, что рис. 78 удобно рассматривать как дерево ре- решений. Если истинно Я (Джон), то истинно ANS(a). В против- § 11.5 ВОПРОСЫ КЛАССА D 239 ном случае истинно ANS(b). Таким образом, наш ответ таков: «Если Джону меньше пяти лет, то он должен принимать ле- лекарство а. В противном случае принимать лекарство Ь». Читатель легко увидит, что приведенный алгоритм изьле чения информации корректен в применении к нашему примеру, т. е. что дерево решений Тъ правильное. Формальное доказа- доказательство корректности этого алгоритма будет дано в§ 11.9. Пока что мы приведем неформальное обсуждение. На шаге 4 мы приписали ANS(a) узлу А после того, как было обнаружено, что ANS (а)—-логическое следствие из Я(Джон)Л#(Джон, а)Л(~ /?(Джон, jc)VMNS(a:)). Так как дизъ- дизъюнкт ~ ^(Джон, x)\jANS (х) входит в число входных дизъюнк- дизъюнктов, он предполагается всегда истинным. Поэтому ANS(а) истинно всегда, когда истинно Р (Джон)AR(Джон, а). Рассмотрим, од- однако, рис. 75. Узел В соответствует дизъюнкту A). Так как он не содержит предиката ANS, все входящие в него литеры будут отрезаны при получении дизъюнкта-ответа. Так как отрицания всех этих дизъюнктов содержатся в 1(В), где / (£) = {Я(Джон), ~ ./?(Джон, а)}, нетрудно показать, что R (Джон, а) является логическим следствием из /'(Джон) и дизъюнкта A). Так как дизъюнкт A) предполагается истинным в нашем примере, ^(Джон, а) должно быть истинно, если истинно /'(Джон). Поэтому из того, что истинность Я (Джон) и R (Джон, а) влечет истинность ANS(a), мы получаем, что истинность Я (Джон) вле- влечет истинность ANS(a). Аналогично мы можем показать, что истинность ~ Р (Джон) влечет истинность ANS(b). Это доказы- доказывает, что дерево решений Тъ правильное. Рассмотрим другой пример. Пример 11.10. Рассмотрим рис. 79. Пусть субъект d хочет попасть в точку с из точки а. Он может попасть в с из Ь с по- помощью действия /2 или действия /3 в зависимости от выполнения Q(s) f3 Рис. 79. некоторого условия Q. Он может также достичь точки b из точки а с помощью некоторого действия fl. Пусть субъект d сначала находится в точке а. Мы спрашиваем, как найти путь, по которому субъект d может достичь точки с из точки а. Пусть Р (х, у, s) означает «х находится в точке у в состоянии s». Тогда наши факты символизируются дизъюнктами A) ~ Р {х, a, s)\fP (x, b, /x {x, a, b, s)), B) ~ Р (х, Ъ, s)V~ Q (s)VP(x, с, U (x, b, с, s)),
240 ~P(d,c,s)vANS(s) ДЕДУКТИВНЫЙ ПОИСК ОТВЕТОВ ~P(x,b,u)vQ(u) ~P(y,b,v)\ 4P(x,c,f3(x,b,c,u)) \iP(y,c,fz(y,b^c',u)) [ГЛ. 11 Рис.-80. ANS(f3(a,b,c, f, (d,a,b,s,))) ANS(fz ( Рис. 81. C) ~P{x,b,s)VQ(s)\/P{x,c,h(x,b,c,s)), D) P(d,a,Sl), а вопрос — дизъюнктом E) ~P(d,c,s)VANS(s). S 1J.6] ПОЛНОТА РЕЗОЛЮЦИИ 241 Из A)—E) мы порождаем следующие резольвенты: F) ~P(d, Ь, u)\fQ(u)VANS(fa(d, b, с, и)) G) ~P(d, b, v)V~Q(v)\/ANS(f2(d, b, с, v)) (8) ~ P(d, b, v)\/ANS(f3(d, b, с, v)) \jANS{f2{d,b,c,v)) (9) ~P{d, a, v)\fANS(f3(d, b, c, fx(d, a, b, w))) A0) \>ANS(f2(d, b, c, ft{d, a, b, mi))) d.bchid.^bsJ)) VANS (ft (d, b, c, f, (d, a, b, Sj))) из E) и C), из E) и B), из F) и G), из (8) и A), из (9) и D). Дизъюнкт A0) — это дизъюнкт-ответ. Его вывод изображен на рис. 80. Применяя к этому дереву алгоритм извлечения информации, мы получаем дерево решений, изображенное на рис. 81. Это дерево дает нам следующий ответ. 1. Субъект d переходит из а в b с помощью действия fx. 2. Если выполнено условие Q, то d идет вес помощью действия f2. 3. В противном случае d идет вес помощью действия /3. § 11.6. Полнота резолюции для получения ответов на вопросы В предшествующих параграфах мы привели примеры исполь- использования метода резолюций для получения ответов на вопросы. В этом параграфе мы покажем, что метод резолюций полон в задаче ответа на вопросы. Иными словами, если вопрос допу- допускает ответ, то дизъюнкт-ответ будет порожден повторными при- применениями правила резолюции. i Допустим, что факты, из которых должен быть выведен от- ответ, представлены множеством S1 дизъюнктов. Пусть вопрос формулируется следующим образом: «Найти значения хх, х2,. . ., хп такие, что верно отношение Q(x1,x2, ..., хп)». Мы скажем, что вопрос допускает ответ, если формула (Эл^) (Злг2) ■•■ CxJ Q (х1У х2, . .., хп)—логическое следствие множества 5Х. Пусть S2 обозначает множество, состоящее из следующего дизъюнкта: ~Q(x1, x2, ..., xn)Vi4WS(x1( x2, ..., хп). Теорема 11.1. Пусть S = SXUS2, где St и S2 определены выше. Вопрос допускает ответ тогда и только тогда, когда имеется вывод дизъюнкта-ответа из множества S. Доказательство. (=>) Если вопрос допускает ответ, то формула (Зх^ ... CxJ Q (xu ..., хп) является логическим след- следствием из S1( где S1 — множество дизъюнктов, представляющих факты. Поэтому конъюнкция 5ХД~ Q (хх, ..., хп) противоречива, т. е. существует вывод пустого дизъюнкта □. Добавляя ANS(xx, хг, ...,х„)к ~Q (хх, ха, ..., хп), имеем ~Q (xlt x2, .. ., хп)
242 ДЕДУКТИВНЫЙ ПОИСК ОТВЕТОВ [ГЛ. 11 \/ANS(xlt х2, ..., хп). Так как предикат ANfS не входит в 5ц тот же вывод, который выводит пустой дизъюнкт из 5ХЛ~ Q(xlt x2, ...,хп), теперь будет выводить дизъюнкт-ответ из S1A(~Q(x1, хг, . .., xn)\/ANS(xlt x2, ..., хп)). Это завершает доказательство первой половины теоремы 11.1. (<=) Эта часть доказательства легка и предоставляется чита- читателю в качестве упражнения. Интересно отметить, что задача о том, допускает ли ответ данный вопрос, аналогична задаче о том, завершает ли работу данная программа. В обоих случаях правило резолюции полно. Кроме того, оно не только говорит нам, допускает ли ответ данный вопрос (или завершает ли работу данная программа), но и сообщает нам, каков ответ (или как программа завершает работу). § 11.7. Принципы синтеза программ В главе 10 мы обсуждали применение методов доказательства теорем к анализу программ. Под анализом программы мы пони- понимаем следующую задачу: нам дана программа, и мы хотим найти ее отношение вход—выход. В задаче синтеза программы (Уолдингер и Ли [1], К- Грин [2], Манна и Уол- дингер [1], Нильсон [1], Ли, Чень и Уолдингер [1]) мы обращаем этот процесс, т. е. нам дана спецификация (опи- (описание) программы, а наша задача—синтезировать программу, реализующую эту спецификацию :). Читатель, возможно, уже заметил, что методы, упомянутые в предшествующих параграфах, можно использовать для созда- создания программ. Так как мы используем формальные методы доказательства теорем, программа, полученная таким образом, будет свободна от логических ошибок. Сначала мы приведем пример, когда программа пишется на языке машины. Пример 11.11. Представим себе машину с тремя регистрами а, Ь, и с и одним накопителем. Мы хотели бы написать про- программу для сложения содержимых регистров а и b и передачи результата в регистр с. Пусть са, cb, ее и асе представляют соответственно содер- содержимое регистров а, Ь, с и накопителя. Пусть d —исходное состояние машины. Мы будем использовать следующие функции: load(x, s): состояние, наступающее после того, как в состоя- состоянии s содержимое регистра х загружается в нако- накопитель; х) Критика такой постановки задачи и изложение более реалистической постановки приводится в статье «Некоторые приложения теории доказательств к поиску программ для ЭВМ» в книге: Крайзель Г. Работы по теории доказательств.—М.: Мир, 1981, с. 239—256.— Прим. перев. § 11.7] ПРИНЦИПЫ СИНТЕЗА ПРОГРАММ 243 add(x, s): состояние, наступающее после того, как в состоя- состоянии s содержимое регистра х прибавляется к со- содержимому накопителя; store (x, s): состояние, наступающее после того, как в состоя- состоянии s содержимое накопителя помещается в ре- регистр х. Пусть Р(и, х, у, z, s) означает, что в состоянии s содержимые накопителя и регистров а, Ь, с равны соответственно и, х, у и г. Нашу задачу можно аксиоматизировать следующим образом: A) ~ Р(и, х, у, z, s)\/P{x, х, у, z, load(a, s)), B) ~ Р(и, х, у, z, s)\/P(u + y, х, у, z, add{b, s)), C) ~ Р(и, х, у, z, s)\/P(u, х, у, и, store(c, s)), D) Р(асс, са, cb, cc, d), E) ~Я(«, х, у, х + у, s)\jANS(s). Используя резолюцию, мы выводим следующие резольвенты: F) — Р(х + у, х, у, z, s)\/ANS(store(c, s)) из E) и C), G) ~ Р(х, х, у, z, s)\/ANS{store(c, add(b, s))) из F) и B), (8) ~ P{u,x,y,z, s)V ANS (store {с, add{b, load {a, s)))) из G) и A), (9) ANS (store (c, add (b, load (a, d)))) из (8) и D). Вывод дизъюнкта (9) изображен на рис. 82. Применяя к этому дереву алгоритм извлечения информации, мы можем получить дерево, изображенное на рис. 83. Подстановки вместо s4, ss, s2 и sx на рис. 83 составляют программу^ могут быть истолкованы следующим образом: vP{u2,x2,y2,u2,store(c,sz)) Рис. 82. Sj-«— Load(a,s() add(b,s3) sf-r-stpre(c,s2) Рис. 83.
244 ДЕДУКТИВНЫЙ ПОИСК ОТВЕТОВ ГЛ. II § 11-7 ПРИНЦИПЫ СИНТЕЗА ПРОГРАММ 245 s s a 1. Загрузить содержимое регистра а в накопитель. 2. Прибавить содержимое регистра b к содержимому нако- накопителя. 3. Поместить содержимое накопителя в регистр с. Пример 11.12. Напишем программу, проверяющую, де- делится ли х хотя бы на одно из чисел 7, 9. Если х делится и на 7, и на 9, пусть выходом будет а. Если х делится на 7, но не на 9, пусть выходом будет Ь. Если х не делится на 7, но делится на 9, пусть выходом будет с. В остальных случаях пусть выходом будет d. Мы будем использовать Р{х,у) и R(x,z) для обозначения условий «х делится на у» и «при входе х выход есть z». Про- Программа теперь аксиоматизируется следующим образом: A) ~ Р(х, 7)V~ P{x, 9)V#(*. a), B) ~Р{хъ 7)WP(x, 9)V#(x, Ь), C) Р(х, 7)V~P(x, 9)VR{x, с), D) P(x,7)\/P(x,9)vR(x,d), E) — /?(jc, z)\/ANS(z). Из A), B), C), D) и E) мы выводим следующие резольвенты: F) G) (8) (9) A0) Р{х, 7)\/Р(х, 9)\/ANS{d) P(x,7)\jP(x,9)\/ANS(c) Я(лг, 7)\/Р(х, 9)\/ANS(b) Р(х, 7)V~ P(x, 9)\/ANS(a) Р(х, 7) \/ANS(c)\/ANS{d) Я(лг, 7)\jANS(a)\/ANS(b) A2) из E) и D), из E) и C), из E) и B), из E) и A), из F) и G), из (8) и (9), из A0) и A1). Вывод дизъюнкта A2) изображен на рис. 84. Применяя алго- алгоритм извлечения информации к этому дереву, получаем дерево, изображенное на рис. 85. Так как в этом дереве у1, у3, уъ и yi играют роль выходной переменной z, переименуем их в г. Так как хх и jc, играют роль входной переменной jc, переименуем hx в х. После этого упрощения обозначений мы можем выбро- Ьить подстановки хь<— х1У х3+—х1 и jc, +— хъ. Таким образом, получаем дерево Т*, изображенное на рис. 86. Из Т* мы полу- получаем программу, изображенную на рис. 87, объявляя самый верхний узел стартовым, устраняя узлы F), G), (8) и (9) и объявляя узел E) стоп-узлом. В приведенном выше примере мы показали, что можем по- получать программы из выводов дизъюнктов-ответов. Однако мы покажем сейчас, что не все программы, полученные таким путем, выполнимы. Можно получить и невыполнимую программу. Это иллюстрируется ниже.
24G ДЕДУКТИВНЫЙ ПОИСК ОТВЕТОВ [ГЛ. 11 § U.8] ПРИМИТИВНАЯ РЕЗОЛЮЦИЯ 247 Р(х,,7) а?., -«-.г, ANS(d) ANS(c) ANS(b) ANS(a) Рис. 85. »P(x,7) P(x,9) Рис. 86. Представим себе, что мы хотим проверять целые числа на положительность. Если число положительно, выход равен 1. в противном случае он равен 0. Пусть Р(х) и R(x,z) означают соответственно «х положи- положителен» и «при входе х выход равен г». Тогда наши аксиомы таковы: A) ~P(x)\/R(x, 1), B) P(x)VR(x,0), C) ~R(x, z)VANS(z). Далее получаем: D) R(x, \)VR(x,0) E) R(x,0)WANS(\) F) ANS{\)\/ANS@) из A) и B), из D) и C), из E) и C). Рис. 88. Рис. 87. Мы вывели правильное заключение: дизъюнкт F) говорит нам, что выход равен 1 или 0. Однако анализ этого вывода дизъюнкта F) даст нам невыполнимую программу, изображенную на рис. 88. Программа, соответствующая дереву, изображенному на рис. 88, по существу сводится к следующему: 1. Если выход должен быть равен 0, положить его равным 0. 2. В противном случае положить его равным 1. Однако, так как выход заранее не известен, эта программа невыполнима. Следует запретить выводы, порождающие такие невыполнимые программы. Чтобы достичь этого, пользовате- пользователя просят объявить некоторые символы примитивными или непри- непримитивными. Затем используем новое правило вывода, называемое примитивной резолюцией. Программа, которую мы получим, используя это специальное правило вывода, будет содержать только примитивные символы и потому будет выполнима. § 11.8. Примитивная резолюция и алгоритм А* (алгоритм синтеза программ) В этом пункте мы сначала определим примитивную резолю- резолюцию. Затем мы опишем алгоритм построения программ по при- примитивным выводам. Мы снова подчеркиваем, что, как уже было сказано в главе 10, наши программы, построенные таким обра- образом, не могут рекурсивно обращаться к самим себе. Предположим, что пользователь нашей программы для созда- создания программ представляет спецификацию своей программы.
248 ДЕДУКТИВНЫЙ ПОИСК ОТВЕТОВ [ГЛ. 11 11.8] ПРИМИТИВНАЯ РЕЗОЛЮЦИЯ Пусть R (хи х2, .... хг, аг+1, ..., ат, ги гг, ..., zn) обозначает «z1( z2, . •., zn—выходные переменные, когда хх, ..., хГ — вход- входные переменные, а аг+1, .... ат—входные константы». Тогда среди наших аксиом, описывающих спецификацию, мы имеем следующую формулу: (Vx.HV*,) . . . (V*,) (Vzx) (Vz2) .. . (VzB) (/?(*lf x2, ...,xr,a+1,.. ...,am,zu ..., zn)-*ANS{zlt .... zn)). Пользователь должен указать символы, которым разрешено появляться в его программе. Они называются примитивными символами. Чататель может заметить, что нам не нужно прослеживать все переменные, входящие в вывод. В действительности нам нужно только проследить переменные в дизъюнктах, содержащих предикат ANS. Определение. Дизъюнкт, содержащий предикат ANS, называется жизненным дизъюнктом. Переменная называется жизненной, если она входит в жизненный дизъюнкт. Пример 11.13. Пусть С= ~ Р(х, z/)V~ Q {y)VANS (у), D=P[x,u)\jR[x). Резольвента С и D есть В= ~ Q (u)\/R (x)\/ANS (и). В является жизненным дизъюнктом, а переменные и и х в дизъюнкте В — жизненными переменными. Определение. Пусть резольвента С дизъюнктов С, и С2 задана в виде 249 С = —1,G) и (С2<т—L2a), где Lj и L2 — отрезаемые литеры и а—унификатор Ll и ~Z.2. Тогда С называется примитивной резольвентой дизъюнктов С1 и С2, если выполнено одно из следующих условий: 1. С1 и С2 — нежизненные дизъюнкты. 2. Ct — жизненный дизъюнкт, С2 — нет, и все константы и функциональные символы, подставляемые в а вместо жизненных переменных, являются примитивными. 3. Как С,, так и С2 — жизненные дизъюнкты, и все констан- константы, функциональные и предикатные символы, входящие в Lfi и L2o, являются примитивными. Определение. Примитивный вывод — это вывод, в кото- котором любая резольвента является примитивной. Если нарушено условие 2, то может встретиться команда вида y+—plus(x, z), в которой функция plus не является примитивной и потому не- невыполнима. Если нарушено условие 3, то может встретиться команда вида If х < у, then go to a, где предикат < не является примитивным и потому невыполним. Пример 11.14. Рассмотрим снова пример из § 11.7, где мы хотели проверять целые числа на положительность, так, чтобы выход был 1, если число положительно, и 0 в против- противном случае. Мы обозначили через Р(х) и #(л:, z) условия «х по- положительно» и «при входе х выход равен z». Наши аксиомы таковы: A) ~P(x)vR{x, 1), B) P(x)\/R(x, 0), C) ~/?(х, z)\/ANS{z). Мы объявляем символы Я, 0 и 1, и только их, примитив- примитивными символами. Рассмотрим следующий вывод: D) R(x, l)VR{x, 0) из A) и B), E) R{x, O)V^WS(l) из D) и C), F) ANSA)\/ANS(O) из E) и C). Читатель легко увидит, что резольвента F) дизъюнктов E) и C) не является примитивной. Оба последних дизъюнкта жиз- жизненные, но R (x, z) не при- примитивна. Поэтому нарушено условие 3 из определения. Если бы было разрешено применение резолюции к дизъюнктам E) и C), то окончательная программа обязательно содержала бы проверку условия R(x, z), Рис.89, а она невыполнима. Однако читатель легко увидит, что следующий вывод явля- является примитивным. D) ~P{x)\/ANS(\) из A) и C), E) P(x)VANS{0) из B) и C), F) ANS(\)\JANS(O) из D) и E). Этот вывод дизъюнкта F) дает программу, изображенную на рис. 89, а она может быть исполнена. Если дизъюнкт-ответ можно вывести с помощью примитив- примитивной резолюции, то можно построить выполнимую программу. Ниже мы приведем алгоритм А*, который строит программу по Р(х) Р(х)
250 ДЕДУКТИВНЫЙ ПОИСК ОТВЕТОВ [ГЛ. 11 $ 11.8] ПРИМИТИВНАЯ РЕЗОЛЮЦИЯ 251 примитивному выводу дизъюнкта-ответа. Алгоритм А* очень по- похож на алгоритм извлечения информации, приведенный в § 11.5, с тем исключением, что он специально приспособлен к синтезу программ. Мы используем определение программы, данное в гла- главе 10. Иными словами, мы считаем, что программа — это ориен- ориентированный граф. Следует подчеркнуть, что наш алгоритм ра- работает только с программами без циклов. Синтез итеративных программ будет рассмотрен в § 11.10. Как будет показано в § 11.11, можно улучшить алгоритм А* и построить более эффективный алгоритм А. Преимущество ал- алгоритма А состоит в том, что путем его анализа легко можно получить доказательство правильности нашего подхода. Алгоритм А* (алгоритм синтеза программ) Шаг 1. Пусть 7\— примитивное дерево вывода дизъюнкта- ответа из некоторого множества дизъюнктов, включающего дизъ- дизъюнкт ~R(xt, ...,xr, ar+1, ...,am, zx zn)\jANS(zlt ...,zn). В этом выводе входные переменные хи ..., хг не могут заме- замещаться другими термами, т. е. должны трактоваться как кон- константы. Переменные zt, --.,zn не могут входить ни в какой терм, подставляемый вместо переменной. Кроме того, перемен- переменные в дизъюнктах (кроме ~R{xt, . . .,хг, аг+1, . .., ат, zu . .. ,zn)V \ZANS(zlt...,zn)), приписанных начальным узлам дерева 71,, должны быть переименованы таким образом, чтобы эти дизъ- дизъюнкты не имели общих переменных. Шаг 2. Пусть в дереве Т, дизъюнкт С есть резольвента дизъюнктов С\ и С2 с отрезаемыми литерами Lx и L2 в С\ и С2 соответственно, причем о—унификатор Lx и ~L2. Тогда ребру, ведущему от С,- к С, i—\, 2, припишем отрицание дизъюнкта LjO и подстановку ст. (Заметим, что если ст—пустая подстанов- подстановка, нам нужно писать только отрицание L,ct.) Результирующее дерево обозначим через Т2. Шаг 3. Удалим все части дерева Т2, соответствующие не- нежизненным дизъюнктам- из Г2. Вычеркнем все дизъюнкты, при- приписанные узлам оставшегося дерева. Перевернем полученное дерево и добавим стрелки. Результирующее дерево обозначим через Тя. Шаг 4. Если какое-то ребро а является единственным реб- ребром, выходящим из некоторой вершины N, то вычеркнем лите- литеру La, приписанную ребру а. Проделаем это для всех возмож- возможных а, и обозначим результирующее дерево через Т4. Шаг 5. Объявим самый верхний узел дерева 7\ (соответству- (соответствующий дизъюнкту-ответу) стартовым узлом S, а все самые ниж- нижние узлы (соответствующие дизъюнкту — стоп-узлом Н. Окончательный ориентированный граф Тъ, по- полученный этим методом, —это программа, где х1У ...,хг—вход- ...,хг—входные переменные, z1? . .., zn — выходные переменные и все осталь- остальные переменные программные. Пример 11.15. Рассмотрим следующую спецификацию программы. 1. Если х2 больше 10, но не больше 100, то выход равен х+\. 2. Если х2 больше 100, то выход равен х—1. 3. В остальных случаях выход равен х. Пусть f(x) обозначает х2. Пусть Р (х, у) обозначает «х боль- больше у». Пусть R(x, z) обозначает, что при входе х выход равен г. Мы имеем тогда следующие дизъюнкты, в которых Р, /, +и — являются единственными примитивными символами: R(ys, ys), О) - B) ~ C) P(f(y3), \0)VP(f(y3), D) ~R{x, z)vANS(z). аг+1 , ...,ая, zu ...,zn)\/ANS{zl zj) Из A)—D) мы порождаем следующие примитивные резоль- резольвенты: E) ~P(f(x), W)\yP(f(x), \00)\jANS(x+l) из A) и D), F) ~P(f(x), \00)\/ANS{x— 1) из B) и D), G) P(f(x), 10)VP(f(x), \00)\/ANS(x) из C) и D), (8) P[{f(x), 100)VANS(x+\)\/ANS{x) из E) и G), (9) ANS(x+l)\/ANS(x—l)\/ANS{x) из F) и (8) Дальше мы применяем алгоритм А*, чтобы синтезировать программу. Шаг 1. 7\ изображено на рис. 90. Шаг 2. Тг изображено на рис. 91. Шаг 3. В дереве Т2 на рис. 91 дизъюнкты A), B) и C) не И являются жизненными. Теперь мы вычеркнем из Т2 эти узлы и связанные с ними ребра, а также дизъюнкты, приписанные узлам оставшегося дерева, после чего перевернем дерево и до- добавим стрелки. Рис. 92 — это результирующее дерево. Шаг 4. Теперь мы вычеркнем литеры, соответствующие реб- ребрам, соединяющим E) с D), G) с D) и F) с D). Результирую- Результирующее дерево Г4 изображено на рис. 93. Шаг 5. Верхний узел дерева, изображенного на рис. 93,— это 9. Обозначим его через S. Обозначим все самые нижние уз- узлы через Н. Результирующее дерево Т5 изображено на рис. 94.
252 ДЕДУКТИВНЫЙ ПОИСК ОТВЕТОВ [ГЛ 11 § 11.8] ПРИМИТИВНАЯ РЕЗОЛЮЦИЯ 253 ~R(x,l)vANS(z) г) (?) , 100) f) Рис. 90. Tv P{f(ys),W) vP(f(y,),WO) G) ^R(x,x+tr\ -R(x^)vANSiz) vRtyj,^ © ® /R(x,x+I) \~ /г-^-x+i yj-*-x '7<~P(f<x),fO)vP(f(x), WO) >2J. vAHS(x+l) i3) ~R(x,z)vANSB) © <R(x,x)/R{x,x) ~\ yj vANS(x) ■~P(f(yz),100) @ 4(X,X-lK n(x), WO) Vj "^Rfx z)vAN^(? 0*) /R(x,x-t) /г-*-х-1 <~Plflx),tOO) J skHSix-1) P(f(x),10)\ /~P(f(x),W) rjSP(f(x),WO) ~P(f(x),WO) P(f(x), 100) ANS(X+t)vANS(x-l)vAHS(x) Рис. 91. 7V P if(x), tOO)/ \P(f(x), WO) P(f(x),W)/ \~P(f(x),iO) R(x,x-1) p(f{x),10) R(x,x+t) ■P(f{x),W0)/ \f>(flx),W0) г^-х-1 Рис. 92. Г3. Рис. 93. Т.. В приведенном выше примере нет программных переменных Мы дадим теперь пример, в котором у нас есть переменные, отличные от входных и выходных переменных. Пример 11.16. Пусть спецификация нашей программы такова: A) ~R{x, a, y)WR(x, b, M*> У)), B) ~R{x, b, y)V~Q(y)VR(x, с, ft(x, с, у)), C) ~#(*. b, y)\/Q{y)VR(x, с, f,(x, с, у)), D) R{d, а, ё), E) ~R(d, с, z)WANS(z). В этой программе R(xlt хг, z) обозначает «при входах х1 и jc2 выход равен z», a Q, а, Ь, с, d, e, flt f2 и /3 — примитивные символы. P(f(x),lO) ■Pif(x),100)/ \P (fix), W) ■PWxU х-1 Рис. 95.
254 ДЕДУКТИВНЫЙ ПОИСК ОТВЕТОВ [ГЛ. II 11.9] ПРАВИЛЬНОСТЬ АЛГОРИТМА А* 255 У читателя не возникнет трудностей при проверке того, что следующий вывод является примитивным: F) ~#(d, Ь, ya)\/Q(ya)WANS(fa(d, с, у3)) изE)иC), G) ~#(d, b, y2)\/~Q(y2)vANS(f2(d, с, y2)) из E) и B), (8) ~R{d, b, y2)\/ANS(f3(d, c, y2))\jANS{f2(d,c,y2)) из F) и G), (9) ~R(d,a, yx) \/ANS(f2(d,c, ft (d, yj)) V yANSif^d.chid.y,))) из (8) и A), A0) ANS(f2(d, с, fAd, e)))vANS(f3(d, c, f,(d, e))) из (9) и D). Применяя к этому выводу алгоритм А*, получим программу, изображенную на рис. 95. В этой программе ух, у2 и уя явля- являются программными переменными. Замечаем, что у этой прог- программы нет входных переменных. Это произошло потому, что дизъюнкт E) не содержит входных переменных. § 11.9. Правильность алгоритма А* Читатель может без труда убедиться, что программа, кото- которую дает алгоритм А*, удовлетворяет всем условиям, наложен- наложенным на программу в главе 10. Кроме того, такая программа выполнима. Это можно усмотреть из следующей теоремы. Теорема 11.2. Пусть D—примитивный вывод дизъюнкта- ответа. Пусть PD—программа, полученная применением алго- алгоритма А* к D. Тогда PD содержит только примитивные символы. На шаге 3 алгоритма А* будут вычерк- вычеркнуты все подстановки, содержащие непри- непримитивные константы и функциональные символы, так как будут вычеркнуты все части вывода D, соответствующие нежизнен- нежизненным дизъюнктам. Поэтому все константы и функциональные символы, входящие в PD, являются примитив- примитивными. С другой стороны, в дереве Т3, описанном в алгоритме А*, имеются некоторые непримитивные контрольные литеры (т. е. литеры, содержащие непримитивные предикатные символы). Пусть L; — непримитивный символ, приписанный ребру, изобра- изображенному на рис. 96. Так как L,- непримитивен, то, согласно определению прими- примитивной резольвенты, один из дизъюнктов Ch D( не является жизненным. Не умаляя общности, мы допустим, что D, — нежиз- нежизненный дизъюнкт. Поэтому часть дерева, соответствующая дизъ- дизъюнкту Dh удаляется на шаге 3 алгоритма. Далее, на шаге 4 удаляется L,-. Это означает, что из Т3 удаляется любой непри- непримитивный символ, и окончательная программа Рп содержит только примитивные символы, что и требовалось доказать. Рис. 96. Ниже мы покажем, что алгоритм А* дает правильную про- программу, т. е. что построенная таким образом программа даст правильный выход. Перед тем, как дать формальное доказа- доказательство, рассмотрим программу из примера 11.16, изображен- изображенную на рис. 95. В этой программе после того, как управление передано уз- узлу 8, у2 заменяется на fl(d, e). Если истинно ~Q(/i(d, e)), то управление передается узлу 6 и выходной переменной оконча- окончательно присваивается f3(d, с, ft(d, e)). Спрашиваем теперь, ка- каково же правильное присваивание на выходе, т. е. верен ли результат согласно спецификации программы. Докажем теперь, что дизъюнкт ANS(f3(d, с, ft(d, e))) явля- является логическим следствием спецификации программы и дизъ- дизъюнкта ~Q(f1(d, e)). Во-первых, запишем спецификацию про- программы: A) ~R{x, a, y)VR(x, b, ft{x, у)), B) ~R(x, b, y)V~Q(y)\/R(x, с, f2(x, с, у)), C) ~R(x, b, y)VQ(y)VR(x, c, fs(x, с, у)), D) R(d, a, e), E) ~R(d, c, z)\jANS(z). В дополнение к этим дизъюнктам имеем F) -Qfoid, e)). Из A) — F) порождаем следующие дизъюнкты: G) ~R(x, b, f,(d, e))\jR(x, с, f3(x, с, ^ (d, e))) из (З) и F), (8) ~/?(d, a, e)WR(d, c, f,(d, c, /t (d, e))) из G) и A), (9) R (d, c, f3 (d, c, U (d, e))) из (8) и D), A0) ANS(f3(d, с, ft(d, e))) из (9) и E). Так как дизъюнкт A0) выведен из дизъюнктов A) — F) по правилу резолюции, то ANS(f3(d, с, /\(d, e))) является логи- логическим следствием спецификации программы и дизъюнкта ~Q (/х (d, е)). С другой стороны, если истинно Q(/1(d, e)), то переменной z присваивается /2 (d, с, f^(d, ё)). Нетрудно видеть, что и это присваивание правильно. В дальнейшем пусть А обозначает множество дизъюнктов, представляющее спецификацию программы. Пусть D — прими- примитивный вывод дизъюнкта-ответа из А. Пусть PD—программа, выданная алгоритмом А*. Пусть последовательность ребер alt а2, .. . ,ая обозначает путь от узла S к узлу Н в программе PD. Пусть у1 обозначает значение вектора программных пере- переменных после того, как управление прошло ребра Oj, a2, ...,ah i—\,2,...,q—1. Пусть команда подстановки, приписанная ребру aq, —это z*—\a (x, у4'1)- Тогда значением выходного
256 ДЕДУКТИВНЫЙ ПОИСК ОТВЕТОВ [ГЛ. 11 вектора z после того, как управление пройдет ребра о,, а2, ... . ...отбудет fag{x, 'у"-1). На пути at, а2, ■■■,aq не любому ребру обязательно при- приписана контрольная литера. Пусть aix, аи, ...,а,- , \ ^k^.q,— те ребра, которым приписаны литеры. Пусть Li.(x,~y)— конт- контрольная литера, приписанная ребру щ.. Тогда условие того, что управление пойдет по_пути ал, ...,aq, представляется в ви- виде Lit (х,_ у^-^Л ■ ■ -ALik {х, г/Ч-1). Пусть / = {/,,-,(х, у'.), ... ...,Lik(x, г/'*)}. Если программа PD правильна, то из истин- истинности всех литер в / следует, что переменной z должно быть присвоено значение fOq(x, у9'1). Таким образом, мы должны доказать, что ANS(fa^(x, и"'1)) является логическим следствием формул A[j I. Теор'ема 11.3. Для любого пути аи а2, ...,aq из узла S в узел Н дизъюнкт ANS(fa^x, у9'1)) является логическим след- следствием из А{) I. Доказательство. Пусть рассматривается путь в дереве Тъ, изображенный на рис. 97, причем ребра а\ и поддеревья (s) Рис. 97. Г5. Рис. 98. Т,. Dh i=l, ...,q, могут отсутствовать. (Т5 получено на шаге 5 алгоритма А*.) Заметим, что Тъ получено из дерева Тг, изобра- изображенного на рис. 98, где D-(t = l, ..., q) —дизъюнкт, выведен- выведенный из А. (Т2 — это дерево, полученное на шаге 2 алгоритма А*.) Пусть Lj(x, у) — литера, приписанная ребру а,-дерева Т2 при i=\,...,q. Пусть /• = {Li (x, #°), .. .,Lg(x, у9'1)}. Так как не- некоторые литеры из /* вычеркиваются во время шагов 3 и 4 ал- алгоритма А*, множество / содержится в /*. Подстановка, при- приписанная ребру а,- в Т2, та же самая, что в Тъ. Пусть Cq — дизъ- § 11.9 ПРАВИЛЬНОСТЬ АЛГОРИТМА А* 257 юнкт, приписанный узлу Н. Ся должен иметь вид ~R(x,~z)\/ANS{z). Так как Т2—вывод дизъюнкта-ответа, все литеры в Cq, кро- кроме ANS(z), должны быть отрезаны. Однако отрицания частных случаев этих отрезанных дизъюнктов приписаны нашему пути, т. е. содержатся в /*. Поэтому ANStfa^x, у4'1)) является ло- логическим следствием множества (CqUl*)- Так как СЯ£А, дизъ- дизъюнкт ANS(fa (x, у4'1)) является также логическим следствием множества (A (J /*). Теперь мы рассмотрим следующий процесс индукции. 1. Положим j = q и Ij = I*. Таким образом, ANS (fa (x,yQ-1)) является логическим следствием множества (A U /у). 2. Положим по определению ; = ( Ij—{Lj(x, у'-1)}, если Lj(x, г/') не входит в /, f'1 \ 1}- в противном случае. Мы хотим показать, что Lj{x, yl'1) является логическим следствием множества (Aulj-i). Ясно, что если Lj(x, г//'~1) принадлежит/, то это очевидным образом верно, так как Lj(x, у]'~г) принадлежит /у_х. Если Lj(x, yj~x) не принадлежит /, это произошло потому, что Lj{x, у7'1) было выброшено на шаге 4 алгоритма А*. Однако это возможно, только если Dj в Т2 был нежизненным дизъюнк- дизъюнктом. (В этом случае в Ть будут отсутствовать a'k и^.)Таккак DJ не содержит предиката ANS, все литеры в D'j должны быть отрезаны. Так как литера Lj (x, у) приписана ребру at, литера ~Lj{x, у) должна быть приписана ребру а) дерева Т2. Таким образом, Lj(x, у7) является частным случаем некоторой ли- литеры из DJ. По определению шага 2 алгоритма А* отрицания частных случаев всех других литер из D'j должны входить в //_!• Поэтому Lj(x, yf'1) является следствием множества {D,*}U ^/-i- Так как D] выведен из А по правилу резолюции, D] является логическим следствием множества А. Поэтому Lj(x, yt'1)—логическое следствие множества Aulj-i- Однако мы показали, что ANS (/о (х, у9'1)) является логическим след- следствием множества Ли//. Поэтому ANS(fa (x, 'у4'1)) является логическим следствием множества Aulj-i- 3. Положим / = / — 1 и перейдем к 2. Используя описанный процесс индукции, мы можем, нако- наконец, показать, что ANS(fa (x, у9'1))—логическое следствие 9 Ч. Чень, Р. Ли
258 ДЕДУКТИВНЫЙ ПОИСК ОТВЕТОВ [ГЛ. II множества A U /0- Так как ясно, что /0 = /, то ANS (fa (х, у9'1))— логическое следствие множества (Ли/), что и требовалось доказать. § 11.10. Применение аксиом индукции к синтезу^программ Алгоритм А*, приведенный в предыдущем параграфе, дает лишь программы, не содержащие циклов. Чтобы порождать ите- итеративные программы, мы должны применить какой-то принцип индукции. Говоря об использовании принципа индукции, мы имеем в виду, что вместо вывода главного дизъюнкта-ответа оказывается достаточно вывести некоторые вспомогательные дизъюнкты-ответы. Каждый вспомогательный дизъюнкт-ответ порождает некоторую подпрограмму. Затем эти подпрограммы связываются в программу. Рассмотрим сначала пример. Пример 11.17. Мы хотим иметь программу, вычисляющую функцию «факториал», которая определена следующим образом /@ Пусть R(x, у) обозначает y = f(x). Тогда мы имеем следую- следующие аксиомы: A) /?@, 1), B) -/?(*, y)VR(x+\, (х+1)-у). Теперь воспользуемся знаменитой аксиомой индукции для натуральных чисел, которую мы выразим следующим образом: C) {3y)R{0, y)A(yx)(Cy1)R(x,1y1)-*{3ytyR{x+l, у,)) — (V*)Cy)/?'(x, у). . Приведенная выше аксиома индукции подсказывает нам вместо прямого вопроса «чему равно f(x)b>, следующие два вопроса. 1. Каково значение/@)? 2. Если мы знаем значение f(x), то каково значение f(x+l)? Чтобы ответить на первый вопрос, мы используем следую- следующую аксиому: D) ~#@, z)VANS(z). Чтобы ответить на второй вопрос, мы используем следую- следующие аксиомы: E) /?(&,&),' F) ~R{y1+l,z)VANS(z), где ух и у2 в E) и F) трактуются как константы. Если используется аксиома индукции C), то программа будет иметь вид, изображенный на рис. 99. На этом рисунке подпро- § 11.10 ПРИМЕНЕНИЕ АКСИОМ ИНДУКЦИИ К СИНТЕЗУ ПРОГРАММ 259 грамма А вычисляет значение /@), а подпрограмма В вычис- вычисляет значение f(y1 + l) при допущении, что yi = f(y1). Нетрудно видеть, что подпрограмма А соответствует команде z-<— 1, полу- полученной из дизъюнктов A) и D), а подпрограмма В — команде полученной из дизъюнктов B), E) и F). Окончательная программа, связывающая подпрограммы А и В, изображена на рис. 100. Приведенная выше программа содержит только одну вход- входную переменную. В следующем примере у нас будет программа с двумя входными переменными. Пример 11.18. Мы хотим написать программу, склады- складывающую два натуральных числа. Единственная примитивная {Выход под- подпрограммы А есть уг ) У1 ^Подпрограмм ff| программы В т есть уг ) Рис. 99. Рис. 100. функция—это добавление 1 к числу. Имеем следующие опре- определения: . Имеем следующие A) B) Пусть R(xltxs,y) обозначает у = хх аксиомы: C) R(x,0,x), D) ~/?(xlf xt, z)VR{xltxt+\, z+l). Используем следующую аксиому индукции: E) (yx){3y)R{x,0,y) A (V*x) (V*,)((By,) R(xlt х„ у,))-*■ Cyt)R(xltxt+l, y2)) 1, xt, y). K. 112
260 ДЕДУКТИВНЫЙ ПОИСК ОТВЕТОВ [ГЛ. 11 Таким образом, имеем два множества аксиом. Первое из них относится к значению * + 0: F) ~R(yu0,z)VANS{z). Второе множество аксиом таково: G) (8) )[(), где у1 и уг в G) и (8) трактуются как константы. Мы снова пишем подпрограмму А, соответствующую .''дизъ- .''дизъюнкту F), и подпрограмму В, соответствующую дизъюнктам G (Подпрограмма В ГГ~Я 1 вычисляет у3){ПодпрограммаВ\ Уз Рис. 101. и (8). Программа, связывающая подпрограммы А и В, изобра- изображена на рис. 101. Чтобы получить подпрограмму А, применяем резолюцию к C) и F): (9) из C) и F). Для получения подпрограммы В используем дизъюнкты G) и (8): A0) R{yuy2+U Уз + Ц из G) и D), A1) ANS(ys+l) из A0) и (8). Поэтому подпрограмма В состоит из следующей команды: Окончательная программа изображена на рис. Ю2. § или АЛГОРИТМ А 261 Принцип индукции, который мы использовали в двух примерах, при- приведенных выше, называется «итера- «итеративной индукцией подъема». Грубо говоря, это значит, что если неко- некоторое свойство имеет место для нуля и наследуется от л: и х+1, то это свойство имеет место для всех х. Мы можем также использовать «итеративную индукцию спуска». Это значит, что если некоторое свойство имеет место для какого- то х и наследуется от л: к х—1, то оно имеет место для х — 0. Более подробное обсуждение принципов индукции смотри Манны и Уолдинг^ера [1], Берстола [1], Парка [1 Рис. 102. Уз I § 11.11. Алгоритм А (усовершенствованный алгоритм синтеза программ) В § 11.8 был описан алгоритм А*. Здесь мы покажем, что алгоритм А* можно модифицировать в гораздо более эффектив- эффективный алгоритм А. Рассмотрим сначала пример. Пример 11.19. Рассмотрим следующую спецификацию программы. A) Если ху^.х2, то выход равен х^ B) В противном случае вывод равен х2. Пусть Р(х1,х2) означает xt^x2. Пусть R(xl,xt,z) означает «при входах х1 и хг выход равен г». Тогда имеем A) ~ P{xlt x2) V R(xlt x2, X,), B) Р(хих2) V R{xlt х2,х,), C) ~R(xltxt,z)VANS(z), D) ~P(Xl,x2)VANS(Xl) из C) и A), E) P(Xl,x2)VANS(x2) из C) и B). Если мы применим резолюцию к дизъюнктам D) и E), то будет получен дизъюнкт-ответ. При этом в окончательной программе произойдет ветвление, так как оба дизъюнкта D) и E) жизненные. Мы можем воспользоваться этой информацией, запо- запоминая информацию о ветвлении в предикате ANS. Иными сло- словами, вместо ANS(Xl)\y ANS(x2) мы можем получить в качестве резольвенты ANS(P(Xl, xt)-+ ANS(Xl); ~P(Xl,x2)-^ANS(x2)).
262 ДЕДУКТИВНЫЙ ПОИСК ОТВЕТОВ [ГЛ. 11 Выражение внутри внешнего ЛЛ^5-предиката—это нужная нам программа. После того как эта информация записана, нам уже не нужно больше анализировать дерево вывода. Так как ветвление возникает только в случае, когда в соот- соответствующей примитивной резолюции участвуют два жизненных дизъюнкта, мы следующим образом изменим теперь определение примитивной резолюции. Определение. Модифицированная примитивная резо- резолюция двух дизъюнктов С1 и С2 определяется следующим образом. 1. Если не оба дизъюнкта Сг и цированная примитивная резолюция резолюцией. 2. Если Сх и С2—жизненные дизъюнкты, запишем их в виде С[ V ANS(E1) и С2 V ANS(Et) соответственно. Пусть Lx и L2— отрезаемые литеры вС, и С2. Пусть 0—-наиболее общий уни- унификатор литер Lx и ~L2. Тогда модифицированная примитив- примитивная резольвента дизъюнктов Сх и С2—это с=(с;э—ljs) и (С2е—L29) и ans{ С2 жизненные, то модифи- совпадает с примитивной Определение. Модифицированный примитивный вывод — это вывод, в котором любое применение резолюции является модифицированной примитивной резолюцией. Алгоритм А (усовершенствованный алгоритм "синтеза программ) Шаг 1. Используя модифицированную примитивную резолю- резолюцию, вывести дизъюнкт-ответ С из множества дизъюнктов, вклю- включающего дизъюнкт — R(xx, ..., хг, аг+1, ..., ат, г„ ..., г„) V V ANS(z1 zn), причем вместо входных переменных xt, ..., хТ не могут подставляться в выводе другие термы, т. е. хг, ...,хг должны трактоваться как константы, а выходные переменные ги ..., zn не должны входить в термы, подставляемые вместо какой-либо переменной. Шаг 2. Пусть S—стартовый узел. Строим пару (S, С). Пусть PLIST = (E, С)). Шаг 3. Если PL 1ST пуст, заканчиваем работу. Окончатель- Окончательное дерево и есть искомая программа. В противном случае продолжаем. Шаг 4. Пусть (V, Е) — первая пара в списке PLIST. Удаляем {V, Е) из PLIST. Шаг 5. Если V не содержит знака —*- и имеет вид ANS(tlt t2, ...,tn), проводим ребро а от V к стоп-узлу Я, приписываем ребру а присваивания z1 -*— tlt z2-^— t2, ..., zn -«— tn и переходим к шагу 3. В противном случае продолжаем. пли АЛГОРИТМ А 263 Шаг 6. Е должен иметь вид ANS(L —>■ Et; ~ L —+ Е2). В этом случае проводим из V два ребра а2 и а2. Приписываем этим ребрам соответственно литеры L и ~ L. Пусть Vl и V2—узлы, расположенные на концах ребер ах и а2 соответственно. Поме- Помещаем пары (Vlt Et) и (V2, E2) в список PLIST. Переходим к шау 3. Очевидно, что алгоритм А эквивалентен алгоритму А*. По- Поэтому алгоритм А также правилен. Иными словами, он всегда порождает программу, удовлетворяющую спецификации. Пример 11.20. В примере 11.12 мы имели следующее множество дизъюнктов: A) ~/>(jc,7)V~/)(*.9)V/?(*.a), B) ~P{x,7)\J P{x,9)\/ R(x,b), C) P{x,7)\J ~P (x, 9) V R (x, c), D) P(x,7)W P(x,9)V R(x,d), E) ~R(x,z)\/ANS(z). Читатель может убедиться, что A) — A2) является модифи- модифицированным примитивным выводом. F) - Р(х, 7) V - Р (х, 9) V ANS(a) из A) и E), G) ~Р(х, 7) V,P(x, 9) V ANS(b) из B) и E), (8) Р (х, 7) V ~ Р (х, 9) V ANS (с) (9) Р (х, 7) V Р (х, 9) V ANS (d) A0) ~Р(х,Т)- ■ "ж'° "ч из B) и E), из C) и E), из D) и E), ( ) ( ANS(P(x,9)-^ANS(a); - Р (х, 9) -* ANS (b)) из F) и G), A1) Р(х, 7) \/ANS(P(x, 9)^ ANS (с); ~Р(х, 9)-^ANS(d)) из (8) и (9), A2) ANS{P(x, 7)^[ANS(P(x, 9)-^ ANS (a); '~P(x, 9) — ANS(b))\ ~ P (x, 7) -+\ANS (P (x, 9) — ANS (c); ~P(x, 9)-+ANS{d))) из A0) и A1). Применяя алгоритм А к дизъюнкту A2), мы можем полу- получить программу, изображенную на рис. 87. Пример 11.21. Рассмотрим снова пример 11.16. Мы имеем следующее множество дизъюнктов: A) ~ R (х, а, у) V R(x, Ь, Ь(х, у)), B) ~ R(x,b,y)\/~Q (у) V R (х, с, ft (x, с, у)), C) ~ R (х, b,y)WQ (У) V R (х, с, /, (х/с, у)), D) R (d, а, е),
264 ДЕДУКТИВНЫЙ ПОИСК ОТВЕТОВ [ГЛ. 1 R(d, с, z) V ANS(z), R (d, Ь, у,) V Q (у3) V ANS (/з (d, с, у3)) R d b из E) и C), ) (/з (, у3)) () (), R (d, b, у,) V ~ Q (у2) V ANS (/2 (d, с, у,)) из E) и B), R (d, b, у2) V ANS (~ Q (г/2) — ЛЛ^ (/, (d, с, г/2)); Q (&) — ^^VS (/2 (d, с, у,))) из F) и G) R (d, а, ух) v 4#S (~ <?(Д (d, г/,)) -* E) F) G) (8) (9) (/з(^,/,(^/,))); QVi(d,yi))-+ANS(f,(d,c,f1{d,y1)))) из (8) и A), A0) ANS(~ Q (Д (d, в)) -+ Л^> (/, (d, с, U (d, в))); Q (Л (d, в)) — Л MS (/г (d, с, Д (d, e)))) из (9) и D) Снова применяя алгоритм А к дизъюнкту A0), мы можем получить программу, изображенную на рис. 103. Читатель fg(d,c,ff(d,e)) Рис. 103. может усмотреть, что она эквивалентна программе, изображенной на рис. 95. ЛИТЕРАТУРА Б л эк (Black F.) 1. A deductive question-answering system.—In: Semantic Information Pro- Proceeding/Ed. M.Minsky. Cambridge (Mass.): The M. I. T. Press, 1964. p. 354-402. Бе р с то л (Berstall R. M.) 1. Proving properties of programs by structural induction.— Comput. J., 1969, J2, p. 41-48. Грин Б.,Вулф, ЧомскийиЛофери (Green В., Jr., Wolf А. К., Chomsky C, Laughary K.) 1. Бейсбол — программа, автоматически отвечающая на вопросы.— В кн. Вычислительные машины и мышление/Ред. Э. Фейгенбаум, Дж. Фельд- Фельдман. М.: Мир, 1967, с. 221—233. Грин К. (Q г е еп С.) 1. Theorem proving by resolution as a basis for question-answering systems.— In: Machine Intelligence, 4/Ed. B. Meltzer and D. Michie. N. Y.: Ame- American Eisevier, 1969, p. 183—205. 2. The Application of Theorem Proving to Question Answering Systems: Ph. D. Thesis.— Stanford University, Stanford, California, 1969. 3 Application of theorem-proving to problem solving.— Proc. 1st Internet. Joint. Conf. Artificial Intelligence, 1969, p. 219—239. УПРАЖНЕНИЯ 265 Грии К- и Рафаэль (Green С, Raphael В.) 1. The use of theorem proving techniques in question-answering systems.— In: Proc. 23rd National Conf. ACM. Princeton (N. J.): Brandon Systems Press, 1968, p. 169—181. Дарлингтон (Darlington J. L.) 1. Machine methods for proving logical arguments expressed in English.— Machine Translation, 1965, 8, p. 41—67. Ли, Чень и Уолдингер (Lee R. С. Т., Chang С. L., Waldinger R. J.) 1. An improved program-synthesizing algorithm and its correctness.— Divi- Division of Computer Research and Technology, National Institutes of Health, Bethesda, Maryland, 1972. Ли идеей (Lindsay R. K-) 1. Память, способная к выводам, как основа машин, понимающих чело- человеческий язык.— В кн.: Вычислительные машины и мышление/Ред. Э. Фе-йгенбаум, Дж. Фельдман. М.: Мир, 1967, с. 233—254. Маккарти (McCarthy J.) 1. Programs with common sense.— Proc. Symp. Mechanization Thought Process, 1. London: H.M.S.O., 1961, p. 75—84. 2. LISP 1.5 Programmers Mannual.— Cambridge (Mass.): M. I. T. Press, 1962. 3. Situations, actions and causal laws.— Memo, Stanford Artificial Intelli- Intelligence Project, Stanford University, Stanford, California, 1963. Манна и Уолдингер (Manna Z., Waldinger R.) 1. Toward automatic program synthesis.— Comm. Assoc. Comput. Mach., 1971, 14, p. 151 — 165. Нильсон (Nilsson N. J.) 1. Искусственный интеллект. Методы поиска решений.— М.: Мир, 1973. Парк (Park D.) 1. Fixpoint induction and proofs of programs properties.— In: Machine Intelligence, 5/Ed. B. Meltzer and D. Michie. N. Y.: American Eisevier, 1970, p. 59—78. Саймон (Simon H. A.) 1. Experiments with a heuristic compiler.— J. Assoc. Comput. Mach., 1963, 10, p. 493-506. С е й ф и р (Safier F.) 1. The Mikado as an advice taker problem.— Memo, Stanford Artificial Intelligence Project, Stanford University, Stanford, California, 1963. Слэйгл (Slagle J. R.) 1. Experiments witli a deductive question-answering program.— Comm. ACM, 1965, 8, p. 792—798. Уолдингер (Waldinger R. J.) 1. Constructing Programs Automatically Using Theorem Proving: Ph. D. Thesis.—Carnegie-Mellon University, Pittsburgh, Pennsylvania, 1969. Уолдингер и Ли (Waldinger R. J., Lee R. С. Т.) 1. PROW: A step toward automatic program writing.— Proc. 1st Internet. Joint Conf. Artificial Intelligence, 1969, p. 241—252. УПРАЖНЕНИЯ К § П.2 1. Пусть мы имеем следующие факты: F Дождь идет или жарко. Если дождь идет, то жарко. 3 Если дождь не идет, то не жарко. Ответьте на следующий вопрос: Верно ли, что если жарко, то не должен идти дождь? 2. Пусть у нас есть две посылки: (a) Шутят для того, чтобы забавлять. (b) Никакое постановление конгресса США не является шуткой.
266 ДЕДУКТИВНЫЙ ПОИСК ОТВЕТОВ [ГЛ. 1! Можете ли вы ответить на следующий вопрос: Верно ли, что никакое постановление конгресса США не издано для того, чтобы забавлять? Если вы можете ответить на этот вопрос, дайте обоснование. Если нет — объясните, почему. к § п.з 3. Пусть у нас есть следующие факты: Каждый, кто въехал в нашу страну и не был БШ (большой шишкой), подвергался досмотру таможенников. Уильям—торговец наркотиками. Уильям въехал в нашу страну. Уильяма досматривали только торговцы наркотиками. Никакой торговец наркотиками не был БШ. Решите следующую задачу: найти человека, который был и [торговцем наркотиками, и таможенником. К § П.4 4. Рассмотрим следующую задачу. Имеются три коробки—1, 2 и 3. Коробка 1 содержит предмет А, коробка 2—предмет В, коробка 3 пуста. Мы можем перемещать предмет в коробку, только если эта коробка пуста. Используйте технику доказательства теорем, чтобы показать, что мы можем поменять местами содержимое коробок 1 и 2. К § П.5 5. Рассмотрим следующую задачу (Уолдингер и Ли [1]). Имеется две коробки, в одной из них банан, другая пуста. Обезьяна может свободно перемещаться, и она не знает, где находится банан. Однако если она нахо- находится рядом с коробкой, то может заглянуть в нее и узнать, там ли банан. Используйте методы доказательства теорем, описанные в§ 11.5, чтобы опре- определить, что должна делать обезьяна. Пусть Р (х, у, s) означает «достигнуто состояние s, в котором обезьяна находится в точке х, а банан — в точке yi>. Пусть find(s) означает «в состоянии s обезьяна может найти банан». Пусть walk (х, s) обозначает новое состояние, возникающее, когда обезь- обезьяна приходит в точку х из состояния S. К § П.6 6. В § 10.7 мы показали, что стратегия поддержки полна относительно выводимости стоп-дизъюнкта. Показать, что это верно и для дизъюнкта- ответа. 7. Снова рассмотрите примеры 11.7 и 11.8. На этот раз используйте в обоих случаях линейную резолюцию. К § П.8 8л Рассмотрим снова пример 11.14. Воспользуйтесь этим примером, чтобы показать, что сочетание линейной резолюции и примитивной резолюции неполно. упражнения 267 9. Рассмотрим следующее множество S дизъюнктов, представляющее спецификацию программы: A) ~ R(a,s) V ~Q(s)V R (b, /i (a, b, s)), B) ~ R (a, s) V Q (s)jV R (c, f2 (a, c, s)), C) ~ R(b,s)V R (d, /3 (b, d, s)), D) ~ R(c, s)vR (d, fi (c, d, s)), E) R (a, s), F) ~ R(d,'s) V ANS(s). Выведите из S дизъюнкт-ответ. Используйте алгоритм А* для получе- получения программы. В этом примере примитивные символы — /?, а, Ь, с, d, jlt [2, f3 и /4.< к § п.ю 10. В примере 11.18 мы использовали «итеративную индукцию подъема», чтобы синтезировать программу сложения двух натуральных чисел. На этот раз используйте «итеративную индукцию спуска». К § П.П П. Снова рассмотрите упражнение 9. Используйте алгоритм А вместо алгоритма А* для синтеза нужной программы.
ГЛАВА 12 ЗАКЛЮЧИТЕЛЬНЫЕ ЗАМЕЧАНИЯ В предыдущих главах мы обсуждали автоматическое доказа- доказательство теорем и его приложения. В этой заключительной главе рассмотрим некоторые открытые вопросы, относящиеся к автома- автоматическому доказательству теорем. Основной вопрос—это эффективность процедур поиска дока- доказательства. В этой книге мы ввели много стратегий исчисления резолюций, каждая из которых обладает, по нашему мнению, свои- своими преимуществами. Конечно, для конкректной теоремы некоторые стратегии могут работать хорошо, а другие могут показать себя плохо. Любое изучение эффективности этих стратегий, как экспе- экспериментальное, так и теоретическое, будет большим вкладом в развитие автоматического доказательства теорем. Очень важна проблема эвристик. Этот вопрос очень кратко обсуждался в § 7.7 настоящей книги. Дальнейшую информацию о применении эвристик в доказательстве теорем читатель может получить в работах Ковальского [1], Ковальского и Кюнера [1], Сиклосси и Маринова [1], Нортона [2], Брайса и Дерксена [1], Слэйгла и Фарелла [1]. Имеется также много эвристик для конкретных задач (Бледсоу [1], Нортон [1], Гелернтер [1]). Мы наде- надеемся, что эта книга создаст основу, к которой легко будет до- добавить все эти эвристики. Автоматизация логики высших порядков—другой важный вопрос автоматического доказательства теорем. Введением в ло- логику высших порядков могут служить книга Гильберта и Аккермана [1] и работа Генки на [1]. Было замечено, что есть много задач, которые формулируются в логике высшего порядка компактнее и удобнее, чем в логике первого порядка (Робинсон [1]). В последнее время было опубликовано много й б Э [1] [] р у статей об автоматизации логики высших порядков (Эндрюс [1], Д [1] Д [1] Г [1] Хн [1], Петжиков- рд арлингтон [1], Девис [1], Гулд [1], обинсон [1]—[3], Хюэ [1], Луккези [1], кий [1], Петжиковский и Йенсен [1]). (др Хенше Д Р [[ [] у [] ский [1], Петжиковский и Йенсен [1]). Однако нужны дальнейшие исследования в этом направлении. Другой вид логики, который мы не обсуждали, — это модаль- модальная логика. Было показано, что модальная логика важна в про- проектировании систем, решающих задачи (Маккарти [1], [2]). Основательное исследование модальной логики можно найти ЛИТЕРАТУРА 269 у Крипке [1], Льюиса и Ленгфорда [1], Снайдера [1], фон Вригта [I]1). Пока что нет алгоритмического языка, специально приспо- приспособленного для доказательства теорем 2). Большинство имеющихся программ доказательства теорем написано на языках вроде ЛИСП, приспособленных к оперированию со списками. Однако мы считаем, что есть нужда в языке, который будет учитывать конкретную структуру данных и правила преобразований, входящие в си- системы доказательства теорем (Робинсон [1]). Что касается приложения доказательства теорем к ответам на вопросы, то очевидно, что для данного вопроса система не должна проводить полного поиска по всем фактам для ответа на вопрос. Она должна использовать только факты, имеющие отношение к этому вопросу. Поэтому организация данных имеет решающее значение для успеха вопросно-ответной системы. С интуитивной точки зрения мы считаем, что в памяти машины можно сгруппировать вместе похожие факты. Это приводит к кластерному анализу, и читатель может посмотреть работу Августина и Минкера [1]. Наконец, в приложениях доказательства теорем к поиску ответов на вопросы нам часто бывает нужно переводить пред- предложения разговорного языка в формулы логики первого порядка. Такой перевод никак нельзя счесть тривиальным. Вполне правдо- правдоподобно, что использование «хороших» предикатов может позво- позволить нам дать простое представление проблемы и таким обра- образом даст возможность просто решить ее. Хотя были получены некоторые результаты (Сандевол [1]), в этой области тре- требуется еще большая работа. Эта область связана также с общей задачей представления. Обстоятельное обсуждение этой задачи имеется у Фейгенбаума [1] и.[Амарела [1]. ЛИТЕРАТУРА А в г у с т и н и"'Минкер (Augustin J. G., Minker J.) 1. An analysis of some graph theoretical cluster techniques. — J. Assoc. Comput. Mach., 1970, 17, p. 571—588. А м а р е л (Amarel S.) 1. On representations of problems of reasoning about actions. — In: Machine Intelligence, 3/Ed. D. Michie. N. Y.: American Elsevier, 1968, p. 131—171. Бледсоу (Bledsoe W. W.) 1. Splitting and reduction heuristics in automatic theorem proving. — Arti- Artificial Intelligence, 1971, 2, p. 57—78. Брайс и Дерксен (Brice С, Derksen J.) 1. A heuristically guided equality rule in a resolution theorem prover.— Tech. Note 45. Stanford Research Institute, Stanford, California, 1971. x) См. также книгу: Фейс Р. Модальная логика.—М.: Наука, 1974. Заметим, что за пределами обсуждения остались и другие логические и не логические исчисления — см. Дополнение А.—Прим. ред. 2) С тех пор появился язык PROLOG.—Прим. перев.
270 ЗАКЛЮЧИТЕЛЬНЫЕ ЗАМЕЧАНИЯ [ГЛ. 12 Вригт, фон (Wrigth G. H. von) 1. An Essay in Modal Logic—Amsterdam: North-Holland, 1951. Гелернтер (Gelernter H.) 1. Realization of a geometry theorem proving machine.—Proc. IFIP Con- Congress 1959, p. 273—282. Г е н к и н (Henkin L.) 1. Completeness in the theory of types. — J. Symbolic Logic, 1950, 15, p. 81—91. Гильберт и Аккерман (Hilbert D., Ackermann W.) 1. Основы теоретической логики.—M.: ИЛ, 1947. Гулд (Gould W. Е.) 1. A matching procedure for omega logic. — Air Force Cambridge Research Laboratory, Report AFCRL-66-781, 1966. Дарлингтон (Darlington J. L.) 1. A partial mechanization of second order logic —In: Machine Intelli- Intelligence, 6/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1971, p. 91 — 100. Д е в и с (Davis M.) 1. Invited commentary on new directions in mechanical theorem proving.— Proc. IFIP Congress 1968, 1, Amsterdam: North-Holland, 1968, p. 67—68. Ковальский (Kowalski R.) 1. Search strategies for theorem proving. — In: Machine Intelligence, 5/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1970, p. 181—201. Ковальский и Кюнер (Kowalski R., Kuehner D.) 1. Linear resolution with selection function,—Artificial Intelligence, 1971, 2, p. 227—260. К р и пк e (Kripke S.) 1. Semantic considerations in modal logic— Acta Philos. Fenn., 1963, 16, p. 83-94. Луккези (Lucchesi С L.) 1. The undecidability of the unification for third order language. — CSRR 2059, Dept. of Applied Analysis and Computer Science, University of Waterloo, Waterloo, Canada, 1972. Льюис и Ленгфорд (Lewis С. I., Langford С. Н.) 1. Symbolic Logic—N. Y.: Dover Press, 1959. Маккарти (McCarthy J.) 1. Programs with common sense.—Proc. Symp. Mechanization Thought Process, 1. London: H.M.S.O., 1961, p. 75—84. 2. Situations, actions and causal laws. — Memo, Stanford Artificial Intelli- Intelligence Project, Stanford University, Stanford, California, 1963. Нортон (Norton L. M.) 1. Adept-A Heuristic Program for Proving Theorems of Group Theory: Ph. D. Thesis.—Massachusetts Inst. Technology, Cambridge, Massa- Massachusetts, 1966. 2. Experiments with a heuristic theorem-proving for the predicate calculus with equality. —Artificial Intelligence, 1971, 2, p. 261—284. Пет ж'и к о в с к и й (Pietrzykowski Т.) 1. A complete mechanization of second order logic.—CSRR 2038, Dept. of Applied Analysis and Compu ter Science, University of Waterloo, Water- Waterloo, Canada, 1971. Петжиковский и|Йенсен (Pietrzykowski Т., Jensen D.) 1. A complete mechanization of co-order logic —Dept. of Applied Analysis and Computer Science, University of Waterloo, Waterloo, Canada, 1972, Робинсон (Robinson J. A.) 1. New directions in mechanical theorem proving. — Proc. IFIP Congress, 1968, 1, p. 63—68. 2. Mechanizing higher order llogic — In: Machine Intelligence, 4/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1969, p. 151—170. ЛИТЕРАТУРА 271 3. A note on mechanizing higher order logic. — In: Machine Intelligence, 5/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1970, p. 123—133. Сандевол (Sandewall E.) 1. PCF-2, a first order calculus for expressing conceptual information.— Dept. of Computer Science, Uppsala University, Uppsala, Sweden, 1972. Сиклосси и Маринов (Siklossy L., Marinov V.) 1. Heuristic search and exhaustive search. —Proc. 2nd Int. Conf. Artificial Intelligence, London, 1971, p. 601—607. Слэйгл и Фаррел (Slagle J. R., Farrell С D.) 1. Experiments in automatic learning for a multipurpose heuristic program.— Comm. ACM, 1971, 14, p. 91-99. С найдер (Snyder D. P.) 1. Modal Logic and its Applications.— Princeton (N. J.): Van Nostrand- Reinhold, 1971. Фейгенбаум (Feigenbaum E.) 1. Artificial Intelligence: Themes in the second decade. —In: Information Processing 68, 2/Ed. A.J.H. Morrell. Amsterdam: North-Holland, 1969, p. 1008—1022. Хеншен (Henschen J. L.) 1. A Resolution Style Proof Procedure for Higher Order Logic: Ph. D. The- Thesis.— University of Illinois, Urbana-Champaign, Illinois, 1971. Хюэ (Huet G. P.) 1. The undecidability of the existence of a unifying substitution between two terms in the simple theory of types. — Jennings Computer Center, Case Western Reserve University, Cleveland, Ohio, 1972. Э н д р ю с (Andrews P. B.) 1. Resolution in type theory. —J. Symbolic Logic, 1971, 36, p. 414—432.
^,, ПРИЛОЖЕНИЕ А резолюцию с посылками из St и S2 в поисках непосредственного противоречия. Если такого противоречия не найдено, то выби- выбираются (по одному) дизъюнкты из S3. Пусть Ck—дизъюнкт, вы- выбранный на k-м шаге. TPU пытается породить какой-либо еди- единичный дизъюнкт из Ck, 5X и S2 с множеством Wck поддержки для Ск. Если не было порождено ни одного единичного дизъ- дизъюнкта, то TPU выбирает в S3 другой дизъюнкт и повторяет процесс. Если порождены какие-то единичные дизъюнкты, то TPU применяет критерий поглощения и, если возможно, крите- критерий функциональной глубины. TPU сохраняет только те дизъ- дизъюнкты, которые выдерживают эти критерии. TPU пытается при- применить резолюцию к этим вновь порожденным дизъюнктам и дизъюнктам из St и S2. Если найдено противоречие, программа останавливается; в противном случае она выбирает другой дизъ- дизъюнкт из S3 и повторяет процесс. На каждом шаге процесса ме- метод выбора дизъюнкта из S3 может оказаться критическим для эффективности программы. В TPU дизъюнкты из Ss выбираются последовательно. Когда S3 исчерпано, дизъюнкты выбираются снова в том же самом порядке. В программу включена страте- стратегия поддержки. Каждый дизъюнкт из S3 имеет свое собственное множество поддержки. Различные дизъюнкты могут иметь раз- различные множества поддержки. Они обновляются на каждом шаге. Параметр N3 используется для того, чтобы сообщать про- программе, когда применять критерий функциональной глубины. Если мы хотим применять критерий функциональной глубины во всем доказательстве, мы можем положить N3 = Q. С другой стороны, если этот критерий нам не нужен, мы можем положить N3 = N2-\-l. И, разумеется, можно взять в качестве N3 любое число между 0 и N2-\-l. Кроме того, TPU использует следующий прием для того, чтобы избежать повторного порождения одного и того же еди- единичного дизъюнкта. Если, например, даны дизъюнкты. A) Р, B) Q, C) ~/>v~QV#, то TPU породит следующие резольвенты: D) ~Q\JR из A) и C)) E) ~/>V/? из B) и C), F) R из A) и E). В программе TPU, для того чтобы применить правило резо- резолюции к единичному дизъюнкту, скажем т, и неединичному дизъюнкту, скажем л', мы сначала находим последний единич- единичный дизъюнкт, скажем т', использованный для получения дизъ- дизъюнкта п'. Если т меньше, чем т', то мы применяем правило резолюции к т и л', в противном случае не применяем. Так, А. 2] КРАТКИЙ КОММЕНТАРИЙ 275 в только что приведенном примере правило резолюции не при- применяется к дизъюнктам 2 и 4, так как последний единичный дизъюнкт, использованный для получения дизъюнкта 4,—это дизъюнкт 1, за которым следует дизъюнкт 2, т. е. т = 2, т'=\ и т не меньше, чем т'. § А.2. Краткий комментарий к программе a. Предикаты и функции представлены в польской (бесско- (бесскобочной) записи. Например, выражение f(xlt ..., хп) представ- представлено списком (fx1- ■ хп), предикат Р{хг, ..., хп)—списком (Рхг ■ ■ ■ хп), отрицательная литера ~P(xlt ..., хп)—списком (NOT/5*!- • -хп), дизъюнкт представлен списком (N V С), где N—• натуральное число, V—список всеобщностных переменных, вхо- входящих в дизъюнкт С, который является списком списков, пред- представляющих литеры. Например, если дизъюнкт 1 имеет вид P{f(x, ё(У))у z) V~Q (а), то он представлен списком (l(XYZ) ((P(F X (G Y))Z)(NOTQ А))). Множество дизъюнктов представ- представляется списком списков, представляющих дизъюнкты. b. В нашей программе перед применением резолюции к двум дизъюнктам Ct и С2 переменные из Сх и С2 переименовываются в переменные из списка XLIST и YLIST соответственно. Мы предположим, что количество переменных в дизъюнкте не боль- больше 7. Кроме того, переменные ZZ1, . .., ZZ7 не должны исполь- использоваться в дизъюнкте. c. RENAME (С XY) составлена для переименования перемен- переменных из дизъюнкта С в переменные из списка XY, совпадающего с XLIST или YLIST. d. INSIDE(A E) составлена для проверки того, входит ли А в выражение Е. Если да, то выдается Т, если нет — NIL. e. DISAGREE (El E2) составлена для построения множества несогласованности списков Е1 и Е2, имеющих одинаковую длину. f. UNIFICATION (El E2) составлена для нахождения на- наиболее общего унификатора выражений Е1 и Е2. Если Е1 и Е2 не унифицируемы, то выдается N0; в противном случае выдается наиболее общий унификатор выражений Е1 и Е2. Если {tjv1, ..., tjvn) — наиболее общий унификатор, он представляется в виде списка ((VJ. . .(vntn)). g. DELETEV (X Y VAR) составлен для нахождения списка ((X (J Y)—VAR), где X, Y и VAR—списки, представляющие множества переменных. h. URESOLVE (C1C2N) составлена для применения правила резолюции к дизъюнктам С1 и С2, где С1—единичный дизъюнкт, С2—единичный или неединичный дизъюнкт и N—натуральное число. Пусть С1 и С2 занумерованы соответственно числами L1 и L2. Если возможно применение резолюции к С1 и С2, дающее пустой дизъюнкт, т. е. если они противоречивы, то вы-
276 ПРИЛОЖЕНИЕ А дается список (CONTRADICTION LI L2). В противном случае выдается список (RES HIST M), где RES—список Rlt ..., Rq всех резольвент дизъюнктов С1 и С2, a HIST—список, пока- показывающий, какая литера из С2 отрезается при получении Rit t=l, ..., q, a M = N-f-<7. Резольвенты Rlt ..., Rq получают соответственно номера iV-f-1, ..., N-\-q. Упорядочение литер в каждом из R/ соответствует упорядочению в С2. Например, если C1 = A(X)((NOT[QJX))), C2-E( )((PA)(QA)(PB)(QB))) и) [N=10, то программа выдаст (RESHIST^M), где RES = (A1( )((PA)(PB)(QB)))A2( )((PA)(Q:A);(PB)))), HIST = (A1 1 5 2)A2 1 5 4)), M=12. В списке HIST подсписок A1 15 2) указывает, что ре- резольвента 11 получена отрезанием дизъюнкта 1 и второй литеры дизъюнкта 5, а A2 1 5 4) указывает, что резольвента 12 получена отрезанием дизъюнкта 1 и 4-й литеры дизъюнкта 5. Отметим, что С1—это дизъюнкт 1, а С2—дизъюнкт 5. i. GUNIT(S1 S2 WCN) составлена для порождения единич- единичных дизъюнктов, из С, S1 и S2 с W в качестве множества под- поддержки для С, где S1—список положительных единичных дизъ- дизъюнктов, S2—список отрицательных единичных дизъюнктов, W— некоторый список единичных дизъюнктов, С—неединичный дизъ- дизъюнкт, N —натуральное число. Выход этой функции—список порожденных единичных дизъюнктов. j. PNSORT(RES) составлена для сортировки списка RES единичных дизъюнктов на два списка, один из которых состоит из положительных единичных дизъюнктов, другой — из отрица- отрицательных единичных дизъюнктов. k. FDEPTH (С) составлена для вычисления функциональной глубины единичного дизъюнкта С. 1. FTEST (RES N4) составлена для выполнения проверки списка RES единичных дизъюнктов на функциональную глубину, m. SUBSUME (Cl C2) составлена для проверки того, погло- поглощает ли единичный дизъюнкт С1 другой единичный дизъюнкт С2. При положительном ответе он выдает Т, при отрицательном NIL. п. STEST (URES) составлена для выполнения проверки на поглощение. Иными словами, будет выброшен любой единичный дизъюнкт из RES, который поглощается другим единичным дизъюнктом из U или RES. о. CONTRADICT (UV) составлена для нахождения непосред- непосредственного противоречия между U и V, где U—список положи- положительных единичных дизъюнктов, V—список отрицательных еди- единичных дизъюнктов. p. DTREE (Z HIST N1) составлена для прослеживания еди- единичного опровержения после того, как найдено противоречие (пустой дизъюнкт). Здесь Z имеет вид («CONTRADICTION» M N), § а.з] ТЕКСТ ПРОГРАММЫ 277 указывающий, что дизъюнкт М и дизъюнкт N образуют непо- непосредственное противоречие. HIST — это список, указывающий (способом, описанным в (h)) соотношения между всеми дизъюнк- дизъюнктами, которые были порождены программой, N1—натуральное число, указывающее количество входных дизъюнктов. q. TRU(S1S2S3WN1 N2N3N4) составлена для выполнения процедуры, описываемой граф-схемой из § А 1 этого приложения. § А.З. Текст программы OEFPROP XL 1ST (NIL «1 Х2 * i ** *5 *' *7' VALUE) OEFPROP YLIST (MR Yl *? yi ^4 Y5 Y6 У 7 > VALUE) (OEFPROP 2L1ST (MIL ?21 222 223 ?2« 225 226 22?) VALUE» (QEFPROP RENAME <l*mBO* (C X*) (PROGIVAR 2) (SETO 2 2LIST) (SETQ VAR (COR C) ) BKC0N0 ((r»ULL VAR) (GO B2)>> (SETO с (SUBST (CAR i!) (CAR VAR) СЛ (SETa г (соя 2)> (SETO VAR (COR VAR)) (GO Bl) 82<seto г xy) (SETO VAR (CAOR C>) B3C0N0 ((NULL VAR) (RETURN C>)> (SETO С (SURSt (CAR ?) (CAR VAR) C)> (seto г (cor ?)) (SETO VAR (CDR VAR)) (GO S3) )) EXPR.) (OEFPROP INSIDE (LAMBDA (A E) (COND ((ATOM E) (E0 At)) ((INSIDE A (CAR Г)> 1) (T (INSIDE A I'.'DR E>))>> EXPR) OEFPROP DISAGREE (LAMBDA (El E2> (CDKD ((NULL El) NIL) ((OR (ATOM El) (ATOM E?)) (COND ((E3UAL El E2> NIL) (T (LIST El E2))>) ((EOUAL (CAR El) (CAR E2>> (DISAGREE (CDR El) (CDR E2.) ) ) ((OR (ATOM (CAR Г11) (ATOM (CAR E2)>> (LIST (CAR El) (CAR E2)>) (T (DISAGREE, (CAR El) (CAR E2))))) EXPR) (OEFPROP UNIFICATION (LA43DA (El E2>. (PROG (D U 01 u?> (CDND ((NOT (EQUAL (LENGTH El) (LENGTH E2)))(RETURN (QUOTE ND))H BKSETO 0 (DISAGREE El F2) ) (CDND ((NULL D) (RETURN (REVERSE U)))) (SETO Э1 (CAR 0)) (SETO 02 (CAD" 0)) (CDND ((OR (MEMBER 01 XLISt) (MEMBER 01 YLIST)) E0 B3>>> (COMD ((OR (MEMBER D2 XL1ST) (MEMBER D2 YLIST)) (SO Й4>>) B2(9ETU4n (flUOTE ND>) B3(C0ND (I1NS1UE Dl 02) (GO B2))J (SETO U (CONS D U)) (SETO El (SUBST 02 Dl ED) (SETQ E2 (SUBST 02 Dl E2)> (GO Bl) 84IC0ND ((INSIOE 02 01) (CO B2)>) (SETQ U (CDNS (REVERSE 0) U>) (SETO El (SUaST 01 02 El)) (SETO E2 (SUBST 01 02 E2)) (GO Bl))) EXPR)
278 ПРИЛОЖЕНИЕ А (DEFPROP OELETEV (LAMBDA (X Y VAR) (PROC (VAR1 TX ТХ1 XI) (SETO X (APPENO X Г)> BKCONO ((NULL VAR) (RETURN X))} (SETQ VAR1 (CAR VAR)) (SETQ TX X) (SETQ xl NIL) B2IC0N0 ((NULL TX) (CO B«>)> (SETO TXi (САЯ TX)) (CONO ((EO TXI VaRI) (CO B3)U (SETQ XI (CONS TXI XI)) (SETO ГХ (СОЯ TX)) (GO B2> B3(SET0 X (APPEND XI (COR TX)D B«(SETO VAR (COR VAR)) (CO 81))) EXPR) 1OCFPROP URESOLVE (LAMBDA (Cl C2 N) (PROC (LI L? VC1 VC2 X Г S1CN uN|f R RES'VAR VI V2 H HIST (SETO Cl (RENAME Cl XLIST)) (SETQ C2 (RFNAME C2 rLIST)) (SETO LI (CAR CD) (SETQ L2 (CAR C2>> (SETO VC1 (CAOR CD) (SETQ VC2 (CAOR C2)) (SETQ C? (CAOOR C2J> (SETQ X (CAR (САООЯ CD)) (SETO SIGN -1) (CONO ((tO (CAR X) (QUOTE NOT)) (CO 87))) (SETQ SIGN 1) BKCOND ((NULL C2> (RETURN (LIST (REVERSE RES) (REVERSE HIST) N)>>> (SETQ у (CAR C2>) (CONO ((EO (CAR Г) (QUOTE NOT)) (CO 82))) (GO 86) B2ISETQ U^IF (UNIFICATION X (COR »))) B3IC0ND ((EQUAL UNIT (OUOTE NO)) (CO B6))> (SETQ R (APPENO (REVERSE TC?) (COR C2)>) (CONO ((NULL Я XRETURN (LIST (OUOTE CONTRADICTION» U L2)H) (SETO VAR NIL) B4(C0N0 ((NULL UNIT) (CO 85))) (SETQ VI (CAAR UNIfD (SETQ v? (CAOAR UNIFD (SETO VAR (CONS VI VAR)) (SETO R (SUP.ST V2 VI R)) (SETQ UNIf (COR UNIM) (GO 84) B51SETQ N (ADO1 N>) (SETO H (LIST N LI L2 (AOOl (LENCTH TC2DD (SETO R (LIST N OELETEV VCt. VC2 VaR) R)) (SETQ RES (CONS R RES)) <SETQ HIST (CONS H HIST)) BAISETQ TC2 (CONS V TC2)) (SETQ C2 (COR C2>) B7<COND ((NULL C2> (RETURN (LIST (REVERSE RES) (RtVEASE HIST) N>)>) (SETO Y (CAR C2)> (CDND ((EO (CAR Y) (OUOTE NOT)) (CO B*>>) (SETQ UNIF (UNIFICATION (COR X) Г)) (GO B3)M EXPR) § A.3] ТЕКСТ ПРОГРАММЫ 279 (OfFPROP CUNIT (LAMBDA (Si S2 " С N) (PROC (L Si SS3 Hi V U RES HIST N X) (COND ((NULL и> (RETURN (LIST HES HIST N>>)) (SETQ i (LEN6TH (CADDR CD) (SETO S3 (LIST (LIST 1ИИИЙ CD) (SETO SS3 S3) BKCOND ((NULL H) (C-0 B7))) (SETO Ml (CArt M>) B2(rOND ((NULL SS3) (CO B«))> (SETS V (CAR SS3I) (COND (FREATERP (CAR Ml) (CAR V)) (CO B3>>> (SETO U (URESOLVE HI (CADR V) N>> (COND ((NULL (CAR UD (CO B3))) (SETQ RES (APPENO RES (CAR UD) (SETO HIST (APPEND HIST (CADR U>>> (SETQ N (CAOOR U)) B3(SETQ SS3 (COR SS3D (GO B2) B4(C0N0 ((E6UAL (SUR1 D 1) (GO BAD) (SETQ M (CAR Ml)) B5IC0ND ((NULL RES) (GO 06))) (SETO X (CONS (LIST M (CAR RES)) X)) (SETQ RES (COR RES)) (CO S5) B6(SETQ H (COR ")) (SETQ SS3 S3) (CO Bl) B7(SETQ L (SUB1 L>> (CONO KEOUAL L 1) (RETURN (LIST RES HIST N>>>> (SETQ S3 X) (SETQ SSJ S3) (SETQ X NIL) (SETO M (APPENO SI S2D (Г.0 BID) EXPR) 1OEFPROP PNSORT (lamboa (RES) (PROC (C "OS NEC) BKCOND ((NULL RES) (RETURN (LIST (REVERSE POS) (REVERSE NEC))))) (SETQ с (CAAR (CODAR RES))) (CONO ((EQUAL (CAR C) (QuOtE noTD (go B3D) (SETQ POS (CONS (CAR RES) POSI) B2(SETQ RES (COR RES)) (CO Bl) 83<SE.TQ NEC (CONS (CaR RES) NEC)) (CO B?)l) EXPR) <OEFPROP FOEPTH (LAMBOA (C) (PROC (H U) (SETQ С (CAR (CA30R C))) (CONO KEOUAL (CAR C) (OUOTE NOT)) (CO Bl))) (SETQ С (COR C>) (CO B?) BKSETQ С (CODR CD B2(SET0 N 0) B3(C0N0 ((NULL C) (GO B5) ) ) (COND ((ATOM (CAR CD (CO B4))> (SETO и (APPEND (CQAR C) U)) 64(SET0 С (COR O) (CO B3) 85(CONO ((NULL U) (RETURN N)>)
280 ПРИЛОЖЕНИЕ А (SETQ м D001 N1) (SETU С U) (SETQ и NIL) (GO 33))) EXPR) (DEFPROP FTEST (la«BO» (RES NO (PROG (С U) BKCOND ((NULL RES) (RETURN (REVERSE U)))) (SETQ С (C»R 4fS)) (COND ((GREJTERP (F0EPT4 C) NO E0 B2)>) (SETQ и (CONS' С U>) B2ISETQ RCS (COP RE1!) ) (GO Bl))) EXPR) (OEFPROP SUBSUME (Lambda (Cl C2) (PROG (? V»R U) (SETQ Cl (RENAME Cl XLISTM <SETQ Cl (C»R (CAOOR CD)) (SETQ г «LIST) (SETQ VAR (C»0R C?)) (SETQ C? (C»R (CAODR C2))) BKCOND ((NULL V«R) (GO B2>>> (SETQ c? (SU8ST (CAR i) (CAR VAR) C2M (SETQ VAR (CDR VAR)) (GO Bl) B2ISETQ и (UNIFICATION Cl C2>> <COND ((EOU»l LI (QUOTE NO)) (RETURN NIL))» (RETURN T>>> EXPR) (DEFPROP STEST (LAMBDA (U R£S) (PROG (R V H XI Y I) BKC0N0 ((NULL RES) (GO B5)>> (SETQ R (CAR RES)) (SETQ г (APPEND U V) ) B2(C0ND ((NULL ?> (GO B3))) (CONO ((SUflSU"»E (C»R ?) R) (GO 84))) (SETQ 2 (CDR ?)) (GO B?) B3ISET0 V (CONS R V) ) B4ISET0 RES (COR RES)) (GO Bl) B5IC0N0 ((NULL V) (RETURN M>>> (SETQ XI (C»R V>) (SETQ i (COR V)) BSICOND ( (NULL ?) (GO ВЯМ) (CONO ((SUBSUME XI (C<R 2>> (GO.87))) (setq у icons (с»я г> г)) (CDR i)I ТЕКСТ ПРОГРАММЫ 281 B7(seto г (GO B6) B8(SETQ и (SETO V (CONS XI U)) (REVERSE Y)l (SETO у NIL) (GO S5)>> E*PR) (DEFPROP C0NTR10ICT (L»MBO* (U W) (PROG (XI Y RES) BKCONO ((OR (NULL U) (NULL V)) (RETURN NIL))) (SETQ XI (CAR U>) (SETQ Y V) B2(C0ND ( (NULL Y) (GO B.4>>> (SETO RES (URESOLVE XI (CAR Y> -1)) _,.,,» (CONO ((EOU»L (C*R RES) (OUflTE CONTRADICTION)) (RETURN ACS})> (SET3 Y (COR Y)) (GO B?) B3(SETQ и (CDR U)) (GO BID) EXPR) (OEFPROP OTRTE (L»WBC>» (? WIST N1) (PRnG (X TX XI К Ml И2 И N) (SETQ HIST (RrvtRSE HIST)) (SETQ X (CDR ?)) (SET3 г (LIST H) (CONO ((GRE»TERP (C»H'x) (CAOR X)) (GO ВИ))) (SETO X (REVERSE »)) SECOND ((GREATERP (ODR X) N1) (GO Bl))) (SETQ X (LIST (CAR X))) BKCOND ((NULL x) (RETURN *))> (SETQ XI (СД4 X)) B?(COND ((EOUAL XI (CA«R HIST)) (CD B3))) (SETO HIST (COR HIST)) (GO 62) B3(SETQ X (CDR V)) (SETO H (CAR HIST)) (SETQ 2 (CONS H 2)) (SETO HIST (COR HIST)) (SETQ Hi (CAOR HI) (SETQ h2 (CADOR H) ) (COND ((GREATERP Ml N1) (GO B5>>> B<(CO»)D ((GREATERP H2 N1) (GO B6))) (GO Bl) B5(SET3 M 1) (SET3 "M Ml) (GO 37) B6(<;ETQ N 2) (SET3 M M2) B7(C040 ((NULL X) (GD Bfl))) (SETQ XI (CAR X) ) (COND ((EQUAL XI H) (GO В1Э))) (CONO ((GREATERP XI M) (GO 8?)/)) B8(SETa x (APPEND (REVERSE TX) ICONS H У)>) (GO BID B»(SETQ TX (CONS XI TX)) (SETS X (COR X)) (GO B7) Bie(SET(J X (APPTNO (REVF.RSE TX) X)) BIKSETJ) Tx NIL) (COND KEOUAL N 2) (GO Bl))) (GO £*)>) EXPR) <OEFPROP TPU (LAMBDA (Sl"S2 S3 W N1 N2 N3 N4) (PROG (S HI TS Ul U N К СК ИСК V POS NEC HIST Y XI X) (SETO S UPPEHO SI S2>> (SETO S (REVERSE SI) BKCOND ((NULL U) @0 B6)>) (SET3 Ml (CAR MM B?(SETQ TS S) (CONO ((NULL WD (GP B5>>> 831C0N0 ((EQ (CAR Ml) (CA«R TS)) (COB4I1 (SETO TS (COR TS)) D (CO B3)
282 ПРИЛОЖЕНИЕ А В* (SETS Ul (CONS (СДЯ TS> Ul>) (SETQ wl (CDR Ml)) (GO B2) 85ISET0 и (CONS Ul U)) (SETQ и (CDR W>> (SETO 111 NIL) (CD Bl) B6(SETO M (REVERSE JM (SETO N N1) (SETO U (CONTR»OICT SlS2>> (COND ((NOT (NULL U)) (RETURN UM> (SCTO к 1) B7IC0N3 ((GREATERP К N2) (RETURN (QUOTE CS IS NOT РЦОУЕОМ))) (SETO CK <CAH S3)) (SETO HCK (CAR W>> (SETO V (CUNIT SI S? UCK CK N)) (COND (( NULL (CAP V)) (CO Bl?))) (SETO N (CADOR V)) (SETO HIST (APPEND HIST (CADR V))) (SETO v (CAR V)) (COND ((lESSP К N3) (CO 88))) (SETO V (FTEST V N4)) BSfSETQ V (PNSORT V)) (SETO POS (STEST SI (CAR V))) (SETO NEC (STEST S? (CADR V))) (CONO ((NULL (APPEND POS NEC)) (GO BUM) (SETO U (CONTRADICT. Si NEC)). (CONO ((NOT (NULL U>) (RETURN (DTREE U MIST N1)))) (SETO U (CONTRaOICT POS S2M (CONO ((NOT (NULL U>> (RETURN (ОТЯЕЕ U HIST N1)))) (SETO SI (APPEND SI POS)) (SETO S2 (APPENO S2 NEC)) (SETO H (COR U)) (SETO V (APPENO POS NEC)) B»(COND ((NULL U) (GO 810))) (SETQ xl (APPENO Y (CAR H>)) (SETO X (CONS XI »)) (SETO M (COR «)) (GO B9) SIBISETO M (APPEND (REVERSE X) (LIST Y>>) (SETO X NIL) B1KSET0 S3 (APPENO (COR S3) (LIST CK))) (SETO К (ADD1 KM (GO 87) B12(SET0 W (APPENO (CDR W) (LIST NIL))) (GO BID) ) EXPR) § A.4. Иллюстрации Теперь мы приведем примеры, иллюстрирующие использова- использование программы TRU. Мы используем систему PDP-10 LISP 1.6, описанную у Куама [1]. Если читатель использует LISP 1.5 (Маккарти, Абрахаме, Эдварде, Харт и Левин [1], Вейсман [1]), то он должен заменить (DEFPROP name body EXPR) на DEFINE (((name body))) и заменить выражения вроде (DEFPROP XLIST (NIL XI X2 X3 X4 X5 X6 X7) VALUE) на CSET(XLIST(X1 X2 X3 X4 X5 X6 X7)). Пример 1. Доказать, что в ассоциативной системе с пра- правыми и левыми решениями имеется правая единица. § А. 4] ИЛЛЮСТРАЦИИ 283 Эту теорему можно представить следующим множеством дизъюнктов: A) P(g(x, у), х, у), B) Р(х, h(x, у), у), {3)~P(k(x), х, k(x)), D)~Р(*. у, u)V~P(y, z, v)\/ ~'P(x, v, w)VkP(u, z, w)t E)~ P(x, y, u) V ~P (У, z, o) V ~P(u, z, w) V P(jc, у, a»). Чтобы доказать эту теорему, мы вводим в ЭВМ следующее выражение: (TPU @(A(XY)((P(GXY)XY))) B(XY)((PX(HXY)Y)))) @(C(X)((N0TP(KX)X(KX))))) @ (D (X Y Z U V W) ((NOT P X Y U) (NOT P Y Z V) (NOT PXVW)(PUZW))) (E(XYZUVW)((NOT PXYU)(NOT PYZV) (NOT PUZV)(PXVW)))) @ (C) NIL) @ 5 @ 2 @ 3 @ 0) Мы замечаем, что перед каждым аргументом программы TPU вставлено @. Если Е — некоторое S-выражение, то @Е .обозначает (QUOTE E) в системе PDP-10 LISP. После заверше- завершения работы над выписанным выше выражением мы^получаем следующий выходу (F 3 4 4)JA1 2 6 2)A5|1 11 1) (CONTRADICTION 1 15)). По этому выходу мы строим опровержение. Мы знаем, что F 3 4 4) указывает, что дизъюнкт 6 получен отрезанием дизъ- дизъюнкта 3 и четвертой литеры дизъюнкта 4; A1 2 6 2) указывает, что дизъюнкт 11 получен отрезанием дизъюнкта 2 и второй литеры дизъюнкта 6;
284 ПРИЛОЖЕНИЕ А A5 1 11 1) указывает, что дизъюнкт 15 получен отрезанием дизъюнкта 1 и первой литеры дизъюнкта 11; (CONTRADICTION 1 15) указывает, что применение пра- правила резолюции к дизъюнктам 1 и 15 дает пустой дизъюнкт. Итак, мы построили опровержение, изображенное на рис. 105. В следующих примерах мы приводим вход и выход для каждой теоремы. Пример 2. Если в ассоциативной системе с единицей квад- квадрат любого элемента равен единице, то эта система коммута- коммутативна. Вход: (TPU @(A(Х)((РЕХХ))) B(Х)((РХЕХ))) C(Х)((РХХЕ))) D( )((РАВС)))) @(E( )(NOT PBAg))) @ (F (X Y Z U V W) ((NOT P X Y U) (NOT P Y Z V) (NOT P X V W) (P U Z W))) G(XYZUVW)((NOT PXYU)(NOT PYZV) (NOT PUZW)(PXVW)))) @(D)NIL) @ 7 @ 4 @ 5 @ 0) Выход: ((8 4 6 1)B1 3 8 l)C0 2 21 1)C2^0 7 2)D2 3 32 1) E5 1 42 l) F2,55 6 1)A12 5 62 3)A30 3 112 1)(CONTRADICTION2 130)) Приме'р З. В группе левая единица является и правой единицей. Вход: (TPU @(A(Х)((РЕХХ))) B(Х)((РAХ)Х § A. 4] ИЛЛЮСТРАЦИИ 285 (()((()ХЕ)))) @(C( )((NOTPAEA)))) @(D(XYZUVW)((NOT PXYU)(NOT PYZV) (NOT PXVW)(PUZW))) E (X Y Z U V W) ((NOT PXYU)(NOT PYZV) (NOT PUZW)(PXVW)))) @ (C) C)) @ 5 @ 4 @ 5 @ 0) Выход: (A3 3 5 4) A6 2 13 2) A7 1 16 2) A8 17 4 4) B3 2 18 3) B4 1 23 2) C0 24 5 4) D6 2 30 2) E6 2 46 1)(CONTRADICTION 1 56)) Пример 4. В группе с левым обращением и левой едини- единицей любой элемент имеет правый обратный. Вход: (TPU @(A(Х)((РЕХХ))) B(ХР1Х)Х (()((()()))) @(C(X)((NOT PAXE)))) @(D(XYZUVW)(NOT PXYU)(NOT PYZV)L (NOT PXVWHPU^ZW))) E(XYZUVjW)((NOT PXYU)(NOT PYZV) (NOT PUZW)(PXVW)))) () @ 5 @ 4 @ 5) @ 0) Выход: (F 3 4 4) A1 2 6 3) A2 1 llf|2)B0 12 5 4) D2 2 20 2) F2 2 42 1) (CONTRADICTION 162)) Пример 5. Если S—непустое подмножество группы такое, что из х, у £ S следует, xy^^S, то единица е принадлежит 5. Вход: (TPUj @((l(X)((PEXX)))j B(Х)((РХЕХ))) C(Х)((РХAХ)Е))) D(Х)((РAХ)ХЕ))) 5 )(SA)))) (( )(()))) @(F( )((NOTSE)))) @ (G (X Y Z) ((NOT S X) (NOT S Y) (NOT P X (I Y) Z) (S Z))) (8(X YZUVW)((NOT PXYU)(NOT PYZV) (NOT PXVWj(PUZW))) (9(X YZUVW)((NOT PXYU)(NOT PYZV) (NOT P U Z W) (P X V W)))> @(F)NIL NIL) @9 @4 @5 @0)
286 ПРИЛОЖЕНИЕ А S A.4] ИЛЛЮСТРАЦИИ Выход: (A0 6 7 4) A4 5 10 2) A8 5 4 1) (CONTRADICTION 3 18)) Выход: (A3 2 6 1) A6 Пример 6. Если 5 — непустое подмножество группы такое, что из х, y£S следует x-y~1^S, то 5 содержит х'1, если оно содержит х. Вход: (TPU @(A(Х)((РЕХХ))) B(Х)((РХЕХ))) C(Х)((РХAХ)Е))) D(Х)((РAХ)ХЕЩ E( )((SB)))) 13 7 3)D3 4 16 3)F6 4 43 3)G5 3 66 2) (CONTRADICT ION 1 287 75) Пример 8. Любое число, большее 1, имеет простой делитель Вход: (TPU @ (( )(())) @(F( )((NOT S(IB))))) @ (G (X Y Z) ((NOT SX)(NOT SY)(NOT P X (I Y)Z)(SZ))) (8(XYZUVW)((NOT PXYU)(NOT PYZV) (NOTPXVW)(PUZW))/ (9(XYZUVW)((NOT PXYU)(NOT PYZV) (NOT PUZW)(PXVW)))) @(E 6) NIL NIL) @9 @4 @5 @0) Выход: (A1 5 7 1)A9 5 11 1)B3 3 19 1)A52 23 7 1)A69 6 152 3) A86 5 169 1) (CONTRADICTION 1 186)) Пр имер 7. Если а — простое число, и а = Ь*/с*, то b делится на а. Вход: (TPU ((( )(())) B(X)((DXX)))) @NIL @(C(X)((PX)D(GX)X))) D(X)((PX)(L1(GX)))) E(X)((PX)(L(GX)X))) F(X)((NOT PX)(NOT DXA))) G (X YZ) ((NOT D X Y) (NOT D Y Z) (D X Z)) (8 (X) ((NOT L 1 X) (NOT L X A) (P (E X)))) (9 (X) ((NOT L 1 X) (NOT L X A) (D (F X) X)))) (( 2)(A 2)A 2)A 2)A 2)A 2)A 2)) 9 20 @ 21 @ 0) @ @ Выход: (A0 2 6 2)A5 10 3 1)A6 10 4 1)A7 16 23 1)B6 17 9 2) B8 16 21 1)C2 25 6 1) (CONTRADICTION 15 47)) 10 5 1)B3 17 8 2) B5 1)C3 32 7 3)D7 28 33 Пример Вход: (TPU @(( 9. Существует бесконечно много простых чисел. ((( )(())) B( )((MA(SC)(SB)))) C(X)((MXX(SX))))) @(D( ) ((NOT DA В)))) @ (E (X Y Z) ((NOT M X Y Z) (M Y X Z))) F (X Y Z) ((NOT M X Y Z) (D X Z))) G (X Y Z U)((NOT P X)(NOT MYZ U)(NOT D X U)(D X Y) (D X Z)))) @(A 2 3 4)A 2 3 4)A 2 3 4)) @ 7 @ 4 @ 5 @ 0) @((()((())))) @(B(X)((NOT LXX)))) @ (C (X Y) (NOT L X Y) (NOT L Y X))) D(XY)((NOT D X (F Y)) (L Y X))) E(X)((PX)(D(HX)X))) F(X)((PX)(P(HX)))) G(X)((PX)(L(HX)X))) (8(X)((NOT PX)(NOT LAX)(L(FA)X)))) 1 21 2I 2I 2I 2)A 2)) 20 21 0) @ @ @
288 ПРИЛОЖЕНИЕ В Выход: (A4 2 8 3)A6 1 14 2)A7 16 5 1)A8 16 6 1)A9 16 7 1)B0 19 3 1)B3 17 4 1) B4 23 8 2) B8 20 24 2) (CONTRADICTION 18 28). ЛИТЕРАТУРА Вейсман (Weissman С.) 1. LISP 1.5 Primer.— Belmort (Calif.): Dickensony, 1967. Куам (Quam L. H.) 1. Stanford LISP 1.6 Manual.—Stanford Artificial Intelligence Project, Stanford Univ., Stanford, California, 1968. Маккарти, Абрахаме, Эдварде, Харт и Левин (McCarthy J., Abrahams P. W., Edwards D. J., Hart T. P., Levin M. I.) " 1. LISP 1.5 Programmer's Manual.—Cambridge (Mass.): The M. I. T. Press, 1962. Ч е н ь (Chang С L.) 1. The unit proof and the input proof in theorem proving.—J. Assoc/ Comput. Mach., 1970, 17, p. 698—707Л Приложение В ДОКАЗАТЕЛЬСТВО ЛЕММЫ 8.2 Случай 1. L выведен парамодуляцией дизъюнктов L' и М a. Дизъюнкт М есть равенство, которое мы запишем в виде t1 = t2, и L получен парамодуляцией от t1 = t2 к V. В этом случае М' — равенство, которое мы запишем в виде г, = г2. Если /х получен из г1 подстановкой терма s2 вместо slt и если /2 есть rt, то вывод, изображенный на рис. 46, может быть представлен рис. 106, а. Очевидно, что L может быть также получен с по- помощью вывода, изображенного на рис. 106,6. Если tx есть rlt а /2 получен из г2 подстановкой терма s8 вместо s1; то вывод, изображенный на рис. 46, может быть представлен рис. 107, а. И снова L может быть получен также с помощью вывода, изо- изображенного на рис. 107,6. Мы отметим, что рис. 106,6 и 107,6 являются входными выводами дизъюнкта L с верхним дизъ- дизъюнктом L'. b. V—равенство, которое мы запишем в виде t = u. L по- получен парамодуляцией от t = u к М. В этом случае, если ни один из термов t, s2 не является частью другого в /И, то вы- вывод с рис. 46, а можно представить рис. 108, а. Очевидно, что L можно также получить с помощью вывода, изображенного на рис. 108,6. Если t является частью терма s2, то рис. 46, а можно представить рис. 109, а. Очевидно, что L можно полу- получить также с помощью вывода, изображенного на рис. 109, 6. Если t является частью терма s2, то рис. 46, а можно пред- представить рис. ПО, а. И снова L можно получить также с по- ДОКАЗАТЕЛЬСТВО ЛЕММЫ 8.2 L'(r,(s2)) 289 L(r2(s,)) rt-r2(st) Рис. 107. M'(t,Si) t=u (a) Рис. 1 8. t=a (a) 10@,5) Ч. Чеяь, Р. Ля Рис. 109.
290 ПРИЛОЖЕНИЕ В (а) Рис. 110. (b) мощью вывода, изображенного на рис. ПО, Ь. Мы отметим, что рис. 108, Ь, 109, Ь и ПО, Ь являются входными выводами дизъ- дизъюнкта L с верхним дизъюнктом V. Случай 2. L выведен применением резолюции к L' и М В этом случае L' есть ~М и L есть □• Вывод, изображен, ный на рис. 46, а, может быть представлен рис. 111, а. Оче_ видно, что L может быть получен также с помощью вывода M(s,) L(s2) (а) (Ь) Рис. изображенного на рис. 111, Ъ. Мы отметим, что рис. 111, Ь яв- является входным выводом дизъюнкта L'c верхним дизъюнктом V. Это завершает доказательство леммы 8.2. ДОПОЛНЕНИЕ ПОИСК ВЫВОДА И АВТОМАТИЗАЦИЯ ДОКАЗАТЕЛЬСТВ А. ТЕОРИЯ ПОИСКА ВЫВОДА И ОБРАТНЫЙ МЕТОД С. Ю. Маслов, Г. Е. Минц § 1. Введение Данная книга почти целиком посвящена проблематике авто- автоматизации поиска вывода в С—классическом исчислении пре- предикатов первого порядка. Это действительно важнейшая дедук- дедуктивная система для того направления в математической логике, которое ориентировано на построение программ, обладающих «интеллектуальными способностями». Тем не менее полноценное понимание всей проблематики в целом требует более широкого контекста. Дело в том, что при попытках автоматизации реше- решения разнообразных классов творческих задач возникают самые различные дедуктивные системы (исчисления). Моделирование таких исчислений в рамках классической логики возможно, но может оказаться неадекватно решаемым задачам, придать им громоздкие и неестественные формулировки, превратить простые задачи в практически нерешаемые (вероятно, читатель уже ощу- ощутил это, вдумываясь в материал главы 11). В частности, именно с этим обстоятельством — практической нецелесообразностью све- сведения произвольных исчислений вообще к логическим, а тем более к исчислению С—связан заметный в последние годы скепсис в отношении применимости математической логики. Таким образом, более общая, чем рассмотренная в книге, постановка проблемы автоматизации доказательств связана с проблемой поиска вывода в самых разнообразных исчислениях. На самом деле возникает необходимость использования как не- неклассических логик (например, многообещающий подход к син- синтезу программ, предложенный Крайзелем [2], опирается на интуиционистское исчисление предикатов), так и дедуктивных систем нелогического типа. Требуемый математический аппарат доставляется теорией поиска вывода; ниже будут изложены не- некоторые этапы идейного развития этой теории (ср. обзор Мас- лова [8]). Рассмотрение будет применимо к весьма широким классам дедуктивных систем, но основным примером будет про- продолжать служить исчисление С. © Издательство «Наука» Главная редакция физико-математической литературы, 1983 10'@,5) Ч. Чень. Р. Ли
292 ДОПОЛНЕНИЕ А В частности, будут изложены элементы так называемого об- обратного метода установления выводимости в логических исчи- исчислениях и даны примеры его теоретических приложений. Параграфы 2 и 3 в основном написаны С. Ю. Масловым, §§ 4 и 5 — Г. Е. Минцем (последние параграфы можно читать независимо от остальной части Дополнения и от книги в целом). § 2. Исчисления и задача поиска вывода 2.1. Исчисление—это способ задания множеств путем ука- указания исходных элементов (аксиом) и правил вывода, каждое из которых описывает, как строить новые элементы из исходных и уже построенных. Список, каждый элемент которого или яв- является аксиомой, или получен из предшествующих элементов списка по одному из правил вывода, называется выводом (а его члены—выводимыми) в исчислении. Пусть мы имеем некоторый класс К творческих задач. В соответствии со спецификой этого класса подбираем исчисление %$к, аксиомами которого являются задачи, решение которых заранее известно, а правила вывода вида Su St, . ., Sm\-S0 (m>0) A) гарантируют решаемость задачи 50 в случае решаемости задач 5j, 52, ..., Sm. Теперь фиксированная задача из нашего класса имеет решение тогда, когда она «выводима» в построенном ис- исчислении. Найти решение задачи—это значит найти один из возможных ее выводов; найти экономное решение — значит найти короткий вывод. Пример. Исчисление для нахождения первообразных. Аксио- Аксиомами этого исчисления являются табличные интегралы. Правила соответствуют интегрированию подстановкой и по частям (а также стандартным пребразованиям элементарных функций, вынесению множителей, интегрированию сумм). Итак, получено некоторое представление творческого про- процесса как процесса поиска вывода (при этом в центре внимания оказывается сколь угодно неформальный процесс поиска, лишь бы только результат этого процесса мог быть предъявлен доста- достаточно формально). Аппаратом рассмотрения является теория поиска вывода—область математической логики, занимающаяся выявлением по исчислению и объекту в языке исчисления струк- структуры возможных выводов этого объекта (выявлением по гипотезе структуры ее возможных доказательств). При этом в первую очередь имеются в виду сужения класса возможных выводов, выявление дедуктивных средств, достаточных для доказательства данной гипотезы, и т. п. 2.2. Секвенциальный вариант исчисления С (см. работу Ген- цена [1]). Алфавит исчисления состоит из знаков ~, /\, V. д, у, =Ф, ( , ) и трех потенциально бесконечных списков — пред- ТЕОРИЯ ПОИСКА ВЫВОДА И ОБРАТНЫЙ МЕТОД 293 метных, предикатных и функциональных переменных (включая константы). Понятия терма и формулы определяются обычным образом (см. главу 3), знак => в состав формул не входит. Г,-—обозначения списков формул (возможно, пустых). Секвенцией называется выражение Г^^фГ,,, не содержащее свободных пере- переменных (и интерпретируемое как импликация от коньюнкции формул из 1\ к дизъюнкции формул из Г2). Аксиомами исчисления С являются всевозможные секвенции вида Г F Г —\ Г FT 1 II 1 ) 1 2 —г х 3> ' > 1 4> где F — произвольная формула. Правила вывода распадаются на шесть групп: Г1; F=»r2, Г3 >h Ь-Гх.^Г,, ~F, Г, Г1=>Г2, F|f Ft, Г3 а) Г,, T2=:>F, Г3 \-Ti.~F, Г2^>Г, б) Г1( Flt F2, Г2=>Г3 В) J-1) **1> * 2=^ ^ 3 > I\, F,, Г1=фГ, \-Ти F.VF,, Г2=>Г3 г) I\, F9, (Vjc)F, Г8=ф 1-I\, (Vx)F, Г,=>Г, ^ 1 =^ 1 2» Г 1 > 1 3 > Г1=ФГ2, F2, Г3 ,,() ,, Cx)F, Г3 (здесь 0 — подстановка вида {t/x}, где / — произвольный основной терм); д) I\, F9, Г2=>Г3 Г1=»Г2, FQ, Г3 , Г2=>Г3 ^>h (здесь 0 — подстановка {а/х\ и а—функциональная константа, не встречающаяся в заключении правила); е) Г,^>Г2, F, Г3; Г4, F, Г5=>Гв I ^ 1> ^ 4> ^5 ^ 1 2> 1 3» 1 6 (правило сечения). Используя последнее правило, легко доказать, что постро- построенное исчисление эквивалентно любой другой формализации классического исчисления предикатов первого порядка. 2.3. Устранение сечений. Чтобы определить по данному объ- объекту S, выводим ли он в данном исчислении ^5, естественно воспользоваться идеей поиска «снизу вверх». Так, по 5 опреде- определяем его возможных непосредственных предшественников (т. е. объекты, из которых S может быть выведен одним применением 10 Ч. Чень, Р. Ли
294 ДОПОЛНЕНИЕ А ТЕОРИЯ ПОИСКА ВЫВОДА И ОБРАТНЫЙ МЕТОД какого-либо правила исчисления Щ. Затем по каждому из полу- получившихся объектов-предшественников, не являющемуся аксиомой исчисления, определяется свое множество непосредственных пред- предшественников и т. д. (вплоть до построения окончательного вы- вывода). Дерево, возникающее в ходе такого процесса, называется деревом поиска вывода, оно превращается в дерево вывода в тот момент, когда все его «листья» оказались аксиомами исчисле- исчисления $. Если посмотреть в этой связи на описанный вариант исчис- исчисления С, то мы убедимся, что все его правила хорошо приспо- приспособлены для нахождения непосредственных предшественников, за исключением правила сечения. Фундаментальный результат Генцена в применении к этому исчислению гарантирует сохра- сохранение множества выводимых объектов при удалении сечения из числа правил (правило называется допустимым, если его добав- добавление не меняет множества выводимых объектов; результат Ген- цена означает допустимость сечения в исчислении с правилами (-=>)_(=> У)). Для секвенций стандартного вида (того самого, приведение к которому предполагается методом резолюций) не составляет труда извлечь из второй формы теоремы Эрбрана следующий частный случай теоремы Генцена. Множество дизъюнктов S невыполнимо тогда и только тогда, когда секвенция S :=> может быть выведена в исчислении, един- единственными правилами которого являются (V=j>), (\J =±>), (Л И (~=>). 295 (>). Напомним, что 5 интерпретируется как конъюнкция всех дизъюнктов из S, где каждая переменная считается управляемой квантором всеобщности. Идея доказательства состоит в подъеме «снизу вверх» путем применения одного лишь правила [V=>) от 5=j> к такой секвенции [5, S1? .... SN=>, B) что в состав "S (J S1 [) ... [) SN входит любой основной дизъюнкт из упомянутого в теореме Эрбрана множества 5'. Противоречи- Противоречивость секвенции B) может быть установлена уже средствами одного лишь исчисления высказываний, для чего мы можем про- продолжать подъем, пользуясь правилами (V=>) и (Л =>)• Процесс ветвится, но на каждой из ветвей мы должны прийти к секвен- секвенции вида Tlt А, Г2, ~А, Г3=> или Г^ ~Л, Г2, А, Г3=>. Од- Однократное «контрприменение» правила (~=>) дает нам теперь аксиому. Детали доказательства предоставляются читателю. Замечание. Легко видеть, что, несколько изменив вид акси- аксиом, мы могли бы ограничиться односторонним («слева от стрелки») вариантом секвенциального исчисления. Используется также односторонний двойственный («справа от стрелки») вариант такого исчисления. Секвенциальные методы имеют более широкую область при- применимости, чем теорема Эрбрана. Можно сказать, что генцено- эрбрановские методы знаменуют собой первый этап теории поиска логического вывода. К настоящему времени для подавляющего большинства важнейших логических и логико-математических исчислений доказана устранимость правила сечения (см., напри- например, книгу Правица [1], обзор Крайзеля [2], учебник Клини [1]). При этом чаще всего удается построить исчисле- исчисления со следующим свойством подформульности: в дереве вывода каждой формулы участвуют лишь ее подформулы. При устране- устранении сечений из исчислений второго порядка и формальной ариф- арифметики можно получить существенную информацию о структуре выводов, хотя свойство подформульности не может быть обеспе- обеспечено и реальный поиск вывода чрезвычайно затруднен. Следует иметь в виду, что устранение сечений облегчает по- поиск вывода, но может привести к резкому удлинению искомого вывода. Так для исчисления высказываний в работе Ц е й т и н а [ 1 ] доказана возможность экспоненциального сокращения выводов при добавлении к правилу резолюций аналога правила сечения. Для классического и интуиционистского исчисления предикатов (с равенством и без) удлинение выводов, возникающее после устранения сечения, вообще не мажорируется никакой «башней» из экспонент (соответствующее сравнение длины резолютивного вывода и вывода в гильбертовском варианте классического исчис- исчисления предикатов см. в Дополнении Б; гильбертовский вариант содержит правило А, А -*В\—В, аналогом которого и является сечение). 2.4. с-правыла. Говоря более общо, поиску «снизу вверх» противоречит наличие таких правил A), у которых при фикси- фиксированном So возможно бесконечное число различных наборов посылок Slt ..., Sm. Такие правила будем называть правилами типа сечения или с-правилами. Проблема устранения с-правил актуальна для самых разных исчислений, в том числе и для нелогических. Так, в упомянутом выше исчислении для первообразных можно говорить об устранении с-правила интегрирования произ- произвольной подстановкой путем замены его разрешением производить подстановку лишь основных элементарных функций, через супер- суперпозицию которых моделируется применение исходного правила (имеется в виду, что в число основных элементарных функций включены двухместные сложение и умножение; при моделировании соответствующих суперпозиций естественно использовать форма- формализм дифференциальных форм). Другой интересный пример этого рода доставляется «исчисле- «исчислением задач на построение циркулем и линейкой-». Дело в том, что вместо бесконечного числа разнообразных пополнений чер- чертежа прямой или окружностью можно ограничиться проведением 10" Зак. 1'2
296 ДОПОЛНЕНИЕ А ТЕОРИЯ ПОИСКА ВЫВОДА И ОБРАТНЫЙ МЕТОД 297 прямых через уже намеченные чертежом точки (их—конечное число) и проведением окружностей с центрами в таких точках и с радиусами, равными расстояниям между такими точками. Воз- Возможность по любому «выводу»-построению указать «вывод», удов- удовлетворяющий сформулированному ограничению, как раз имеет характер метаматематической теоремы об устранимости с-правила. Более того, обычные логические исчисления после устране- устранения сечений продолжают содержать с-правила. Действительно, таковы в исчислении С правила (V=>) и (=>3), контрприменение которых допускает бесконечный перебор при варьировании терма t (фиктивность перебора при контрприменениях (=>V) и (Э=>) очевидна). В результате именно незнание термов выявляется в качестве основной трудности в организации поиска логического вывода. Из возможных путей преодоления этой трудности рас- рассмотрим сначала наиболее естественный. Правила (V=>) и (=> 3) получили в логике название минус- правил, а перестройка выводов, приводящая к устранению бес- бесконечного перебора значений t,— название минус-нормализации. Выяснилось, что без уменьшения множества выходимых в С секвенций можно ограничиться лишь такими применениями минус- правил, при которых в роли t выступают лишь термы, явно входящие в секвенцию-заключение правил (при отсутствии в за- заключении подходящих термов в роли t выступает одна и та же для всех применений фиксированная заранее константа). Воз- Возможны и еще более жесткие ограничения области значений t, равно как и перенесение идеи минус-нормализации на другие логические исчисления (см. работы Кангера [1], Минца [1], Мае лов а [3]). В итоге из важнейших логических исчислений оказались устраненными все с-правила. Эта же идея может применяться и для нелогических исчис- исчислений. Собственно, именно такой характер имеет упомянутое устранение с-правила интегрирования подстановкой. При всей внешней эффективности минус-нормализации целе- целесообразность ее использования во многих случаях весьма сомни- сомнительна. Действительно, если при контрприменении минус-правила мы «на самом деле» должны подставить терм, не входящий в заключение свободно, то, соблюдая ограничения, мы лишь оття- оттянем получение искомого вывода. В этой ситуации ограничение перебора оказывается фиктивным и лишь удлиняет процесс поиска и ухудшает качество результата. Малую осмысленность подобного устранения с-правила демонстрирует и упомянутый пример интег- интегрирования. Некоторые оценки, связанные с методом минус-норма- минус-нормализации, см. у Норгелы [1]. Таким образом, общей чертой расмотренных до сих пор мето- методов устранения с-правил является удлинение результирующего вывода. Вместе с тем привлекательной их особенностью часто является возможность полного сохранения языка исходного ис- исчисления—строгая эквивалентность исчислений без с-правил и их исходных вариантов. Следует также иметь в виду, что подоб- подобные методы не универсальны: с использованием весьма простых наборов дедуктивных средств можно строить исчисления, устра- устранение с-правил из которых невозможно без изменения языка (см. работу Маслова и Норгелы [1]). Стоит однако допустить некоторое хорошо интерпретируемое изменение языка и вида выводимых в исчислении объектов, как окажется возможным пол- полное устранение с-правил из любых исчислений при полном со- сохранении качества результирующего вывода. Эта возможность была указана Кангером [1] (а также независимо Д. Правицем и Н. А. Шаниным) и получила название метода метапеременных. 2.5. Метод метапеременных. Первоначально метод был пред- предложен для устранения минус-правил исчисления С. Обозначение этих правил является, по существу, переменной, не входящей в язык исчисления С и применяемой лишь для описания самого исчисления. Таким образом, t является метапергменной этого исчисления с определенной областью значений (произвольные основные термы; собственно метапеременными этого исчисления являются также Fh Г,-, а и даже х). При этом t обладает той особенностью, что она входит в посылку минус-правил, не входя в заключение (это и является причиной того, что возникает с-пра- вило1)). Обладающие такой особенностью метапеременные назы- называются собственными переменными с-правил. Метод метапеременных состоит в явном введении собственных переменных минус-правил в язык исчисления. Значения таких переменных при контрприменениях правил не уточняются сразу, при этом постепенно строится «снизу вверх» заготовка вывода, для заготовки время от времени проверяется, можно ли подо- подобрать значения метапеременных, превращающие ее в настоящий вывод. Для С этот метод в форме Правица изложен в главе 9. При этом: 1) упомянутое в § 9.2 множество М* копий дизъюнк- дизъюнктов из М и представляет собой «заготовку»; 2) основная подста- подстановка 0* и есть подстановка, превращающая заготовку в вывод (точнее — в секвенцию /И*9*=>, выводимую уже средствами логики высказываний); 3) интерпретация переменных из М* как не свя- связанных квантором всеобщности представляет собой явное введение в язык нового типа переменных с областью значений «основные термы». Заметим, что при нахождении 0* мы могли бы воспользоваться одновременно идеей минус-нормализации, указывая для каждой переменной из М* специальную (зато—конечную) область ее до- х) Обладающая аналогичным свойством метапеременная а из правил C > и (=> V) может быть превращена в метаиеременную с одноэлементной областью задания, что и означает упомянутую фиктивность перебора прн контрприме- контрприменениях C =Ф) и (=>V)-
298 ДОПОЛНЕНИЕ А пустимых значений. Однако на существенное упрощение поиска 6* рассчитывать при этом не приходится, а все недостатки минус- нормализации сохраняются. Поэтому подобное объединение идей, используемое Кангером [1], вряд ли целесообразно. Метод метапеременных может применяться для других исчис- исчислений и для произвольных типов с-правил. Правда, при этом значения метапеременных приходится конкретизировать не только при окончательном завершении заготовки, но и по ходу ее пост- построения (при этом возможна не окончательная конкретизация, а с точностью до новых метапеременных). Технически оформление этой идеи требует перехода к однопосылочным исчислениям и некоторых изменений «семантики» исчисления и объема исполь- используемых дедуктивных средств, но позволяет доказать полную устранимость с-правил без увеличения числа применений правил в результирующем выводе (см. работу Мае лова [7]). Метод метапеременных может показаться чистым жульничест- жульничеством: вместо того чтобы решить проблему подбора нужного терма, мы каждый раз откладываем ее «в долгий ящик». Однако с идеей откладывания связано существенное преимущество: мы отклады- откладываем как раз до того момента, когда для решения проблемы подбора термов собрана необходимая дополнительная информация. Это обстоятельство, позволяющее «перевернуть» направ- направление поиска нужных термов, оказалось наиболее плодотвор- плодотворной идеей, заимствованной современными методами поиска вывода (см. следующий параграф). 2.6. По существу метод метапеременных является широко распространенным методом решения творческих задач, связанных с переборами. Он широко используется внутри математики. На- Например, роль именно этого метода исполняет известный Метод неопределенных коэффициентов (особенно отчетливо видна эта роль в «исчислении первообразных»). Неоднократно существенный про- прогресс в математике достигался как раз явным введением в изу- изучаемый язык метапеременных предшествующего уровня (особенно нагляден в этом отношении переход от арифметики к алгебре, который весь состоит в появлении «языка иксов и игреков» и правил преобразования выражений в этом языке). Вообще, меха- механизм формирования математической абстракции тесно связан с функционированием ее в качестве области значений некоторой метапеременной в математических рассуждениях. Характерно также использование метапеременных в игровых задачах. Так, при расчете шахматной комбинации отождествляются позиции, которые получаются после «немешающих» ходов против- противника. Если же один из не рассматривавшихся специально преды- предыдущих ходов противника оказался существенным для развития комбинации, то значение метапеременной уточняется до необхо- необходимой степени: связанная с упомянутым ходом позиция вычле- вычленяется из метапеременной «позиции после немешающих ходов». ТЕОРИЯ ПОИСКА ВЫВОДА И ОБРАТНЫЙ МЕТОД 299 Соответствующие усовершенствования механизмов переборов связаны обычно с выработкой в языке с введенными метапере- менными подходящих допустимых правил (в частном случае — допустимых схем аксиом). Для исчисления первообразных, напри- например, можно говорить о его пополнении схемами аксиом типа: «любое рациональное выражение интегрируемо в элементарных функциях» или допустимыми правилами типа рекуррентных формул. Другие примеры и математический аппарат сравнения различных способов совершенствования механизмов перебора см. у Мас- лова [9], [10]. §3. Идея метапеременных в локальных методах поиска вывода 3.1. Локальные и глобальные методы. Непосредственное при- применение метапеременных весьма затруднительно: достаточно слож- сложная заготовка требует огромной работы при попытке превратить ее в вывод (причем эта работа оказывается в основном бесполезной при невозможности получения вывода на данном этапе и необхо- необходимости дальнейшего надстраивания заготовки). Это .связано в первую очередь с необходимостью «глобальной обработки» заго- заготовки: подбор подходящих замещений метапеременных требует тщательного согласования информации о самых разных участках заготовки (одна метапеременная может иметь много вхождений в различные ветви дерева поиска вывода). Поэтому возникает необходимость совмещения идеи метапеременных с локальным прин- принципом обработки информации. Для уточнения сказанного заметим, что для любого исчисле- исчисления $ любой метод поиска вывода в нем может быть представ- представлен как способ построения по каждому испытуемому на выводи- выводимость объекту S специального исчисления Ие,s, выводимость в котором специального объекта □ эквивалентна выводимости S в исходном исчислении Ц$. Такое представление особенно естественно для современных методов поиска вывода типа метода резолюций: аксиомами соответствующего исчисления 1Л$*% являются дизъюнкты из S, а единственным правилом — правило резолюции. Нетрудно описать в этих терминах и поиск снизу вверх в каком-нибудь исчислении генценовского типа, например в том же С. Если 2— произвольная секвенция, то единственной аксиомой соответствующего исчисления Hc!"s будет 2, а правила вывода будут переводить объекты вида 21*...*2,-*...*2п в объекты вида а) 2Х* ...*2,_1*2, + 1* .. . *2„, б) 2Х * ... * 2,-_1 * 2J * 2,-+1 * ... * 2„, в) 2Х* ... *2,-_1*2J*2j*2I-+1* ... * 2„, ■где а) соответствует случаю: 2,- является аксиомой С;
300 ДОПОЛНЕНИЕ А б) —случаю: 2,- получается из 2[- по однопосылочному пра- правилу С; в) —случаю: 2,- получается из 2J и 2; по двухпосылочному правилу С. Выведение в этом исчислении пустого объекта как раз соот- соответствует получению аксиом на всех ветвях дерева поиска вывода в С. Аналогично получается исчисление, оформляющее метод мета- переменных, только в языке используется еще один потенциально бесконечный алфавит, а правило типа а) заменяется следующим глобальным: 2:* ... *|2„ (— Q (при условии, что существует подстановка термов вместо метапеременных, превращаю- превращающая все секвенции 2,- в тавтологии). Неестественность этого правила бросается в глаза. Действительно, все упоминавшиеся ранее правила исчислений И-ц, s были «локаль- «локальны»— их применение требовало обработки лишь части информации о построенном к данному моменту дереве поиска вывода (в генце- новском методе требуется лишь знание секвенции 2/( в методе резолюций — лишь двух дизъюнктов-посылок). Таким образом, сложность применения локальных правил исчезающе мала по сравнению со сложностью результирующего вывода. Напротив, сложность применения указанного глобального правила сравнима со сложностью всего процесса установления выводимости 2. Итак, будем делить методы поиска выводов на глобальные и локальные в соответствии с тем, входят ли в состав соответствующего исчис- исчисления И-4), s нелокальные правила. Заметим, что для метода метапеременных в форме Правица ак- аксиомой И с? м является М, локальным правилом — правило пост- построения копий дизъюнктов из М, глобальным правилом — правило перехода от М* к Q при условии П-нротиворечивости М*. 3.2. В настоящее время эффективному моделированию на ЭВМ поддается лишь локальный принцип обработки информации, поэтому очередной этап в машинном поиске вывода был связан с появле- появлением таких локальных методов, которые все-таки могут учитывать основную идею метода метапеременных: не большую уточненность значений термов, чем это необходимо в данный момент поиска. В методе резолюций эта идея осуществляется через понятие наи- наиболее общего унификатора и приводит к тому, что окончательное «основное» значение используемых термов уточняется лишь после получения пустого дизъюнкта. К локальным методам с метапеременностью относятся, кроме метода резолюций, клаш-метод и описываемый ниже обратный метод, а также вторичные методы, получаемые из упомянутых фиксацией той или иной стратегии поиска. ТЕОРИЯ ПОИСКА ВЫВОДА И ОБРАТНЫЙ МЕТОД 301 Отступление. Модификации резолютивного исчисления ,. рез ПС, {Р (х, а, I (*)), ~ Р (х, у, г) V - Р (г, у, и) V Р (х, I (у), и)}, удобные для короткого установления выводимости «трудно выводи- выводимых» формул из Дополнения Б, служат хорошей иллюстрацией п. 2.6. Действительно, поиск допустимых правил этого исчисления легко приводит к правилу Р(х, у, Т (х)) (— Р (х, f(y), T (Г (%))) для любого терма Т. После этого становится понятно, что «мета- теоремой» данного исчисления является формула Vmn3l(\-P{f*{a), /"(«). /'И), использование которой позволяет установить выводимость Ск за линейное по k число шагов. Механизм, которым реально можно было бы установить выводимость рассматриваемых формул, близок к описанному и резко отличается как от собственного метода резолюций, так и от алгоритма Британского музея. 3.3. Формулировка обратного метода для С. Наметим этот метод для технически наиболее простого случая, когда ищется вывод секвенции =>/\ где 1=1 и D,-—дизъюнкты. (Заметим, что роли дизъюнктов в этой стан- стандартизации формул из С двойственна той роль, в которых выс- выступают дизъюнкты в методе резолюций.) Я-членным F-набором называется выражение вида [(ilt 6,);...; (ih, 6Л)] (h^O), A) где l^t'i, ..., 1л^б и 0ц . .., 8Л — подстановки вместо xlt ... ..., хп. Исчисление Исб, f, называемое исчислением благоприят- благоприятных наборов, определяется двумя правилами (для понимания которых следует иметь в виду интерпретацию F-набора A) как формулы Д-ДУ • • • VDiQihyF). Правило А. Если D^ (или D{r\\JDfi)—тавтология, то [(i, 11)] (соответственно [(i, r\); (/, £)]) является благоприятным F-на- бором. Правило Б. Если F-наборы [Нх; A, ^)]. •••. [Н6; (б, £6)] благоприятны, то благоприятен набор [Н^; ...; Нбг|б], где Ъи •••• £в. %> ••■• лв —такие подстановки, что £!%= ...=£бт16. Выводимость в этом исчислении 0-членного набора Q эквива- эквивалентна выводимости F в С (причем, аналогично тому, как это делается в определении наиболее общего унификатора, на каж- каждом шаге можно выбирать минимальные %, ..., ц6). F-наборы указывают общий вид формул, которые могли бы встретиться в дереве вывода секвенции =>F. При этом потен- потенциально бесконечные множества поддеревьев генценовского де-
302 ДОПОЛНЕНИЕ А рева вывода сводятся к конечной совокупности F-наборов (в част- частности, конечное число исходных благоприятных наборов—см. правило А — кодирует все вершины всех возможных деревьев вывода формулы F). Таким образом, этот метод тоже объеди- объединяет локальность с «метапеременностью». Обратный метод был предложен одновременно с методом резолюций и независимо от него (см. работы Маслова [1], [2], [4] — [6]). Первоначально он также предназначался для исчис- исчисления С, и для стандартизованных формул метода резолюций оба метода примерно эквивалентны. Это можно подтвердить теоретическими оценками (например, Мае лов [5]) и машинным экспериментом (Давыдов, Масло в, Минц, Оревков и Слисенко [1]). При этом следует отметить, что наиболее вы- выгодные для обратного метода стандартизации по сути как раз противоположны таковым для резолюций. Гораздо важнее, что обратный метод применим вообще к секвенциям произвольной структуры (как известно, стандартизация формул может их сильно удлинить и ухудшить процесс нахождения вывода). Более того, этот метод нетрудно распространить на произвольные секвен- секвенциальные исчисления без правил сечения. В этом смысле можно сказать, что соотношение рассматриваемых методов вполне ана- аналогично соотношению теоремы Эрбрана для стандартных формул и всего комплекса теорем об устранении сечения. 3.4. Общая схема обратного метода. Для произвольного ис- исчисления Ц$ со свойством подформульности и произвольной сек- секвенции 2 будем строить вывод, определяя сначала структуру верхних секвенций потенциального дерева вывода, затем струк- структуру секвенций, лежащих ниже верхних, и т. д. (таким обра- образом, метод является «обратным» по сравнению с поиском «снизу вверх»). Это достигается построением исчисления И^е благо- благоприятных наборов. Выводимыми объектами этого исчисления {^-наборами) являются пары [L; В], где L—список подформул 2, а В—система зависимостей между элементами из L (точнее, L состоит из номеров некоторых заранее выбранных подформул 2). Для каждой секвенции 2' и каждого 2-набора Н определяется отношение Н лежит в 2?. Формулируются правила А и Б для исходных и для порождаемых благоприятных наборов соответ- соответственно. Для корректности метода достаточно выполнения двух условий: а) для каждого 2-набора Н, порожденного по пра- правилу А, всякая 2', в которой лежит Н, выводима в $; б) если Н порождено из благоприятных наборов по правилу Б и лежит в 2', то 2' выводима в ^5. При подходящем определении поня- понятий гарантируется и полнота метода: 2 выводима в ^3 тогда и только тогда, когда пустой 2-набор благоприятен. Таким образом, для определения конкретизации обратного метода следует указать: 1) алгоритм, нумерующий те подфор- ТЕОРИЯ ПОИСКА ВЫВОДА И ОБРАТНЫЙ МЕТОД 303 мулы из 2, которые нужны для определения 2-набора; 2) язык для задания систем зависимостей; 3) правила А и Б, удовлет- удовлетворяющие условиям а) и б) соответственно. Для обеспечения «метапеременности» следует предусмотреть, чтобы результаты применения правил А и Б лежали как можно в большем числе секвенций. 3.5. Кроме ориентированности на практический поиск вы- вывода, обратный метод обладает рядом черт, которые делают его удобным теоретическим аппаратом построения разрешимых клас- классов и классов сведения. На его основе удается получить обоб- обобщения известных результатов, найти ряд новых разрешимых классов, объединить единой схемой почти все имеющиеся ре- результаты по разрешимым фрагментам классического исчисления предикатов. Для иллюстрации таких возможностей метода до- докажем разрешимость класса формул вида (D1 и D2—дизъюнкты без функциональных знаков) или, чтобы приблизиться к формулировкам из 3.3, вида = Cx1)...Cxa)(Dl(x1, .. хп, ..., *„), .... ft(xlt Нетрудно убедиться, что в качестве исходных благоприятных ^-наборов достаточно рассматривать наборы вида [(ilf {tjx^ ... ..., tjxn})] или [(tlt i, •••. *»/*„})] B) (здесь t'xCll, 2}, t'2€{l, 2}, каждый терм tt является перемен- переменной, каждый терм t\ является переменной или имеет вид fj(tlt ..., tn)). В нашем случае б из правила Б равно 2, по- поэтому из двухчленных наборов можно получить не более чем двухчленный. Поэтому правило Б не выводит из класса набо- наборов вида 2, а таких выборов конечное число. Теперь разреши- разрешимость очевидна. В рассмотренном примере потенциально бесконечное мно- множество возможных выводов формулы F сводится к конечному числу F-наборов. В более сложных случаях прийти к конеч- конечному или бесконечному разрешимому множеству благоприятных наборов сложнее, однако схема доказательства в значительной степени сохраняется. Многочисленные результаты, полученные этим способом, см. у Маслова [2], [4]. В следующих пара- параграфах эта схема детально развернута для доказательства раз- разрешимости одного важного класса формул исчисления С.
304 ДОПОЛНЕНИЕ А § 4. Одна переформулировка обратного метода 4.1. Этот и следующий параграфы посвящены описанию одной из возможных модификаций обратного метода, которая удобна для теоретических применений, и доказательству разрешимости класса формул исчисления С вида (Зх)М, где М—бесквантор- М—бескванторная формула (доказательство представляет собой полный и под- подробный вариант доказательства из работы Маслова и Орев- к ов а [1]). 4.2. Формулировка метода. Будем 'рассматривать формулы вида g .(Эх„) a Dt. A) F-подстановка—это выражение вида {'i/*i tjxa}. B) Выводимыми объектами исчисления UF будут дизъюнкты вида C = Dilol\/...\/Dimom (m>0; 1<ц, ..., im<6), C) где а1, ..., ат—F-подстановки. Понимание дизъюнкта C) будет ■связано с формулой F: положим где V означает (VzJ... (Vzm) для всех переменных zlt ..., zm, входящих в С, но не входящих свободно в F. В частности, qf = F для пустого дизъюнкта □■ Аксиомы исчисления UF заданы приводимым ниже правилом А, а правило Б—единст- Б—единственное правило вывода. Правило А. Если С—тавтология, то С—-аксиома исчисле- исчисления UF. Правило Б. 1 v ... 0^= ... =а6аб. D) Подразумевается, что разрешено получать лишь объекты, имею- имеющие вид C), и при соблюдении этого требования одинаковые дизъюнктивные члены в окончательном результате отождест- отождествляются. Иными словами, если уже получено б штук дизъюнктов, причем конъюнкция их «хвостов» является частным случаем б формулы a Di (ПРИ подстановке сг = а1сг1 = . . . =о&<сР), то пра- «=1 вило Б позволяет «отрезать эти хвосты», сделав нужные под- подстановки и объединив оставшиеся части дизъюнктов. Выводимые в UF дизъюнкты будем называть /•'-благоприят- ными. ТЕОРИЯ ПОИСКА ВЫВОДА И ОБРАТНЫЙ МЕТОД 305 4.3. Корректность обратного метода. Теорема 1. Если дизъюнкт С F-благоприятен, то C\fF доказуема в исчислении предикатов. В частности, если □ бла- благоприятен, то формула F доказуема. Доказательство проводится индукцией по длине вы- вывода в UF. Базис (С—аксиома) очевиден, так как тавтологии доказуемы в исчислении предикатов, а навешивание V-кванто- ров и добавление дизъюнктивных членов сохраняет доказуемость. Индукционный переход. Пусть для посылок пра- правила D) все уже доказано: в исчислении предикатов доказуемы С^Х/ОлХ/F> • • ■> ^WD6a6\/F. Воспользуемся следующими пере- переходами, допустимыми в исчислении предикатов: J.. .Cxn)F't где a = {tjx1, ..., tjxn\, для Л,- = С,а', Bi = Diaiat. Мы полу- получим C^V • • • WCtffiy F, что и требовалось. Проводимое ниже следствие позволяет упрощать формулы, вычеркивая конъюнктивные члены, и служит основой обещан- обещанного разрешающего алгоритма для класса (Зх)М. Следствие 1. Если дизъюнкт С6 F-благоприятен, то в ис- исчислении предикатов Доказательство. Импликация (—<-) очевидна. Доказа- Доказательство обратной импликации, которую мы запишем в виде F' —>- F, использует разбор случаев, соответствующий дизъюнк- дизъюнкции VD6\/F. Второй случай (имеет место F) очевиден, а первый б-i б получается из импликации VD6A А Д- —>- A Dt. i=l i=l 4.4. Теорема, обратная теореме 1, требует некоторой под- подготовки: нужно снять ограничение, наложенное в теореме Эр- брана (см. гл. 4) на «матрицу» предваренной формулы. Теорема 2. Доказуемость формулы вида F = CV{3Xl)...Cxn)M E) с бескванторными С, М эквивалентна тавтологичности некото- некоторой дизъюнкции вида ■■■\/Mak, F) где alt ..., ак—основные подстановки. Доказательство сведется к проверке того, что переход от противоречивости к доказуемости и некоторое расширение класса допустимых формул ничего не меняет в доказательстве теоремы Эрбрана. Читатель, который склонен поверить в это,
306 ДОПОЛНЕНИЕ А ТЕОРИЯ ПОИСКА ВЫВОДА И ОБРАТНЫЙ МЕТОД 307 может пропустить наше доказательство. Мы несколько изменим принятое в § 4.3 определение эрбрановского универсума фор- формулы F и будем считать, что он состоит из термов, которые получаются из входящих в нее термов с помощью подстановки входящих в F констант и свободных переменных вместо свя- связанных переменных, входящих в эти термы. Это несколько уси- усилит нашу формулировку теоремы Эрбрана и не повлияет на доказательство. Основная подстановка—это подстановка термов из эрбрановского универсума. Переход F)/E) делается легко. Займемся обратным переходом. Множество А атомов для формулы F вида E)—это мно- множество литер, не содержащих отрицания и получающихся из литер, входящих в F, основными подстановками вида \t1/xl, . . . ..., tjxn). Построим семантическое дерево <£ГР для F: это бинар- бинарное дерево где A = {L0, Lu ...} и на i-u этаже стоит «разбор случаев» L,-, ~Lj. Зафиксируем перечисление alt о2, ... всех основных подстановок. Узел N дерева <fF назовем опровергающим1), если тавтологична формула K{N)\-+CyMa1\J...\jMok, G) где k—длина узла N (расстояние от исходной вершины), a K(N) — конъюнкция литер, приписанных ребрам, ведущим в N. Случай 1. Найдется такое k, что ©ГР обрывается уже на k-м этаже, т. е. для любого узла N длины k формула G) тав- тавтологична. С помощью допустимого в исчислении высказываний перехода А, — G; ...; Ат ~+ Gl{A, V ■ • • УАЯ) — G мы получаем VK(N)-+C\/Mo1\/...\/Mok, (8) где дизъюнкция берется по всем узлам ./V длины k. Но VK(N) тавтологична (доказать индукцией по k). Отсюда и из (8) полу- получаем F). Случай 2. Дерево £Г р не обрывается. Тогда по лемме Кёнига найдется бесконечный путь, т. е. последовательность х) Следовало бы выбрать териин «доказывающий узел», но мы хотим сохранить старую терминологию. лежащих друг под другом узлов Nt длины i таких, что K{Nt)-*C\/Mal\/...\/Mat (9) — не тавтология. Пусть / — интерпретация, в которой истинны в точности литеры из U K.(N',-). Чтобы установить, что формула E) i ложна в /, а значит, недоказуема, нам осталось только уста- установить, что все формулы вида C\/Mo1\/...\/Mok A0) ложны в /. Действительно, рассмотрим узел Nh i^k, такой, что К {Nj) содержит с точностью до отрицания все литеры из A0). Так как (9) — не тавтология, то K{N;) —>■ A0)—тоже не тавто- тавтология. Так как информации, содержащейся в /С {Nt), доста- достаточно, чтобы оценить A0), мы получаем, что (9) ложна в /. Чуть подробнее. Приведем A0) к дизъюнктивной нормальной форме VKj. Если бы К (N;) содержалась в одной из /Су, то К (N',-) —>- A0) была бы тавтологией. Поэтому для каждого / конъюнкция K(Nt) содержит литеру, контрарную некоторой литере из /Су. Поэтому все /Су ложны в /, а с ними и V/Cy, т. е. A0). Доказательство / закончено. 4.5. Полнота обратного метода. Теорема 3. Если формула C\JF для дизъюнкта С вида C) выводима, то С F-благоприятен. В частности, если F выводима, то □ благоприятен. 6 Доказательство. Обозначим М= д ^;, так что F = t= 1 e= Cxx).. .(Эж„) М, и по теореме 2 найдем тавтологичную дизъ- дизъюнкцию cvaA-<w..-vaA-<v (И) Применим индукцию по k. Если & = 0, то С—аксиома по ■правилу А. При ife > 0 в силу дистрибутивности, примененной iK AAai> тавтологичны б штук формул i {C1\jDjal)\JtsDiG2\;...\fbDiak (/=1, ...,б), i i откуда по индукционному предположению следует F-благоприят- ность дизъюнктов C\jDJa1 (/ = 1, ..., б). Применяя к ним пра- правило Б (с пустой подстановкой а1), получаем F-благоприятность С. Теорема доказана. 4.6. Приведенное только что доказательство может создать у читателя впечатление, что ИР не дает ничего по сравнению с теоремой Эрбрана, так как высота вывода пустого дизъюнкта в И^—это в точности размер эрбрановской дизъюнкции. В дей-
308 ДОПОЛНЕНИЕ А ствительности понятия, связанные с HF, позволяют радикально упрощать формулы. Например, в силу следствия 1 конъюнк- конъюнктивный член, благоприятность которого установлена, можно вы- вычеркнуть из рассматриваемой формулы. § 5. Разрешимость формул вида (длт) М 5.1. Маслов и Оревков [1] установили, что редукция из следствия 1 достаточна для установления выводимости формулы F при п= 1. Начиная с этого места до конца Дополнения А мы рассмат- рассматриваем формулы F вида б (Эх) д D,- (короче, (Зх)М), . A) 1=1 где D,- (i = 1, .... б) — дизъюнкты. Так как в этом параграфе подстановка будет производиться только вместо переменной х, то в обозначении подстановки {t/x} мы не будем упоминать х. Таким образом, Е{t\—это результат подстановки / в выражение Е вместо х. Напомним, что функциональная глубина d(t) терма /—-это максимальная гнездность функциональных символов. Точнее, d(a) = 0 для переменных и констант a; d(f(tlt ..., tn)) = = 14-max{d(/1), ..., d(tn)}. Через d(F) обозначим максимум d (t) для термов /, входящих в F. Через Hd{F) обозначим эр- брановскую дизъюнкцию «глубины d» для F, т. е. формулу (ср. A)) где [tly ..., tk) — полный список термов глубины =^d из эрбра- новского универсума формулы F. F-термы—это термы глубины ^.d(F), построенные из пере- переменных и констант, входящих в F (включая х), с помощью функциональных символов, входящих в F. F-атомы—это атомы, построенные из /""-термов с помощью предикатов, входящих в F. Очевидно, что число /«"-термов, а потому и F-атомов для данной F конечно. Максимально возможная длина ld F-термов глубины d равна (при максимальном числе т аргументов у функ- функциональных символов) d т'—т" i = 1 так как она вычисляется по рекуррентным формулам /0=1, /d+i = 2 + m {ld-\-1). Но F-термов длины / не больше, чем всех слов длины / в алфавите из скобок, запятых, переменных, кон- теория ПОИСКА ВЫВОДА И ОБРАТНЫЙ МЕТОД 309 отант и функциональных символов из F. Теперь аналогично оценивается количество F-атомов. 5.2. Сатурированность. Скажем, что формула F сатуриро- сатурирована, если в каждый дизъюнкт D,- входит (возможно, с отрица- отрицанием) любой ^-атом. Лемма 1. Каждая формула F вида A) эквивалентна сату- сатурированной формуле. Доказательство. Применим эквивалентность D^((D\/ A)A(D\/ ~Л)) ко всем D,- и всем /«"-атомам А. 5.3. Следующие пять лемм понадобятся только в доказатель- доказательстве теоремы 4. Лемма 2. Если t, t', r—термы, d(r) > max \d(t), d(t')\ и t{r} = t' \r], mo t = t'. Доказательство индукцией по d = d(t)-\-d(t'). Случай 1. Переменная х (вместо которой подставляется г) не входит в /. Тогда она не входит ив/', так как иначе d(t) = —d(t {r}) = d(f {r}) ^ d(r) вопреки условию теоремы. Поэтому в случае 1 имеем t=t{r} = t'{r}=t'. Случай 2. Переменная х входит и в /, и в V. Если d = 0, То t = t' = x, т. е. базис индукции обоснован. При d>0 один из термов /, /' (пусть /) имеет вид f(tlt ..., tn). При этом f Фх, так как иначе d(r) = d(t' {r}) = d (t{r})< d (r). Поэтому t' = f(t'lt ..., Q и можно применить индукционное предположе- предположение к парам (/,-, /;), i=\, . . ., п. Лемма доказана. Лемма 3. Пусть Ах, А2—литеры, d(r) > max{d(A), d(B)} и A1{r} = A2{r}. Тогда A1 = Aa. Доказательство. Запишем Л,- (/=1, 2) в виде P(t{, ..., t'n) и применим лемму 1 к парам {t\, t\), i=\, ..., п. Лемма 4. Пусть Т, t, s, t', s'—термы, d(T)> max\d(t), d(t')\ и T = t {s} = f {s'\. Тогда s содержит s' или s' содержит s. Доказательство индукцией по d = max{d(t), d(t')\. Если d = 0, то один из термов /, /' (пусть это /) — переменная х, так что T — s содержит s'. При d>0 имеем t = f(t1, ..., tn), t' = f(t'u •••-Q- T = f(T1, ...,Tn), Ti = ti{s) = fl\s'} и приме- применяем индукционное предположение для того i, для которого d(T) = d(T'/L-1- Лемма доказана. Лемма 5. Пусть г, г', s, s' — термы, Т = г \s} = r' {s'\, m = max{d(r), d(r')\, d(T)>2m, d(s')^d(s). Тогда d(r)>d(r'). Доказательство индукцией по m = max \d(r), d(r')\. Заметим, что переменная х (вместо которой производится под- подстановка { }), входит как в г, так и в г', ибо иначе Г = г или Т = г' и, значит, d(T) ^/л^2т. Это исчерпывает случай т = 0. Если d(r) — O, т.е. r = x, to d(r') = O, ибо иначе т. е. d(s)> d(s'). Если d(r') = 0, то, очевидно, d(r)~^d(r').
310 ДОПОЛНЕНИЕ А Теперь можно считать, что d(r), d(r')>0. Тогда r = — f(rlt ..., rn), r' = f(r'lt ...,r'n) и можно применить индук- индукционное предположение к той из пар (г,-, г\), 1=1, ..., п, которая содержит х. Лемма доказана. Лемма 6. Пусть и, и'—литеры или термы, s, T — термы, u'{s} = u{T\, d(s)>max{d(u), d(u')\, d(T)^d(s) и переменная х входит в и. Тогда найдется терм г такой, что и' —и {г) и r{s} = T. Доказательство. Переменная х входит в и', так как иначе d{u'{s}) = d(u')<d(T)^d(u{T}) вопреки равенству и' {s} = u{T}. Применим индукцию по d(u'). Базис (d(u') = 0). Тогда и' = х. Покажем, что s=T, u — x. Действительно, d(s) — d(u'{s}) = d(u{T})^d(T). Вместе с усло- условием теоремы это дает d(s) = d(T). Так как и' {s} = s содержит Т, это дает s = T, а при ифх мы имели бы d(s) = d(u {Т}) > d(T). Итак, можно положить г = х. Индукционный переход. Если и = х, то сразу полагаем г = и'. Если ифх, то имеем и' = !(иг, ..., и'п); u = f(u1 «„); (i=l, .... п). Из неравенств d(s), d(T) > max'{d(u), d(u')\ следует, что при каждом i (I ^ i ^п), если терм и,- не содержит х, то и и\ не содержит х. Для таких пар «,-, и\ мы имеем ui = u'i = ui{r\ для любых г. Для остальных пар («,-, u't) воспользуемся индук- индукционным предположением и найдем термы г,- такие, что ul{r,\ = u't и r,{s} = 7\ Первое из этих равенств дает d(rt) ^.d(u'i) < d(u') < d(s), а тогда вторые равенства вместе с леммой 2 дают г,- = гу] при l^i, j ^n. Полагаем г = /■,-, что завершает доказательство. 5.4. Основой описываемого ниже разрешающего алгоритма является следующее утверждение. Теорема 4. Пусть сатурированная формула F вида A) выводима, //2d<F> (F) невыводима. Тогда один из дизъюнктов D,- (i=l, ..., б) выводим в UF за не более чем одно применение правила Б. Доказательство. Случай 1. Один из D,- не содержит х. Если этот D{ тавтологичен, то он благоприятен по правилу А исчисления UF. В противном случае получается противоречие с выводимостью F: возьмем интерпретацию /, в которой ложны все атомы, входящие в D,- без отрицания, и истинны все осталь- остальные атомы. Так как D,- — не тавтология, /—действительно интер- интерпретация. В ней ложен Dh а с ним и формула F, которая экви- эквивалентна в случае 1 формуле D,- Л (Зх) д D,-. ТЕОРИЯ ПОИСКА ВЫВОДА И ОБРАТНЫЙ МЕТОД 311 Случай 2. Переменная х входит во все D,- (г=1, ..., б). Ввиду выводимости F по теореме Эрбрана найдется выводимая дизъюнкция вида B). Добавляя в B), если нужно, лишние члены и пользуясь коммутативностью дизъюнкции, мы можем считать, что выполнены следующие условия: (i) если терм tj (/=1, ■ ■., k) содержит терм f, то M\t'} тоже встречается в B); (ii) tj=£tt при ]Ф1 (j, 1=1, ..., k); (Hi) если d{tj)<d(tt), то / < I. (а) В силу A) и дистрибутивности конъюнкции и дизъюнкции формула B) выводима тогда и только тогда, когда тавтологичны все дизъюнкты Da,{MV-..VA*fc{M (l^alf .... afc<6). C) Уменьшая, если нужно, k, будем считать, что (iv) дизъюнкция М {t^ V • • • V М {tk_1\ не тавтологична. В силу (а) и (iv) найдется нетавтологичный дизъюнкт такой, что все дизъюнкты ГУО,|Г}; ...; TVD6{T\, где T = tk, D) тавтологичны. Ввиду (ш) терм Т имеет максимальную глубину среди tj, а тогда ввиду невыводимости H2d^(F) d(T)>2d(F)^d(F), E) так что Т не входит в F. Случай 2.1. Один из дизъюнктов Dt{T} (t=l, . . ., б)— тавтология. Это значит, что для некоторых литер L1( L2, вхо- входящих в Dh имеет место L1{T}= ~L2{7}. Тогда L1 — ~L2 в силу E) и леммы 3, т. е. дизъюнкт D,- — тавтология и, зна- значит, благоприятен по правилу А исчисления И/г. Случай 2.2. Ни один из D^T} не тавтологичен. Ввиду не- тавтологичности дизъюнкта Г нетавтологичны также и все Da .{tj}, /=1, ■••, k—1. Поэтому из тавтологичности дизъюнктов C) следует, что для каждого Р=1, ..., б найдутся 1 <! / <^ fe—1 и литера Ly- в дизъюнкте Da. такие, что Lj{tj\ контрарна неко- некоторой литере из Dfi{t}, т. е. литере LP{T), где Lp входит в Dp. Предположим (для приведения к противоречию), что все литеры ZJ3 (Р=1, . . ., б) не содержат х. Тогда L(l{t} = L& для любого терма t, в частности для t — tlt так что дизъюнкты Lj{tj) VOp{M будут содержать контрарную пару. В частности, при P = «i мы получаем, что дизъюнкт Г V Ax,{^i} = Ax,{MV ■■• • • • V Dak_1 {tk-i\ V Ax,{M тавтологичен вопреки предположе нию о Г. Таким образом, одна из литер IP должна содержать х- Используя равенство L, {ty} = ~ IP \T) и лемму 6 (условия
312 ДОПОЛНЕНИЕ А которой выполнены в силу (iii)), получаем| Lf=~L*{r} и T = r{tj F) для некоторого F-терма г. Ввиду неравенства E) и леммы 4 найдется максимальный терм te (l^.e^.k—1) такой, что T = t{te) G) для какого-нибудь F-терма /. Иными словами, (б) из равенств F) и G) для F-термов г и t следует, что t, содержится в te, в частности, d(te)^d(tj). В силу E) и леммы 5 отсюда следует d{r)>d{t). (8) (в) Докажем, что именно дизъюнкт Dae выводится в UF за одно применение правила Б. Для этого достаточно устано- установить, что (9) A0) является тавтологией при любом Р= 1, . . ., б. Для (9) в свою очередь достаточно установить, что в Dae входит ~L»{t\, где L13—входящая в Dp литера, участвующая в F). В силу F), (8) имеем d(L^{t})<^d(L^\r}) = d(Lj)^d(F), последнее из-за того, что Lj входит в Da.. Поэтому LB {t} является F-атомом, и в силу сатурированности дизъюнкт Dae должен содержать эту литеру или ее отрицание. Но Dae не может содержать L^{t\, так как тогда Г и даже Da.{tj} V Dae{te} был бы тавто- тавтологичен из-за равенства Lj{tj}— ~ L® {t {te}\. Это завершает доказательство теоремы. 5.5. Разрешающий алгоритм. Теперь приведем разрешающий алгоритм для класса формул F вида A), корректность которого следует из теорем 1, 2, 4 и следствия 1. Шаг 1. Проверить H2d^F)(F) на тавтологичность. Если ответ положительный, то F выводима, если ответ отрицательный — пе- перейти к шагу 2. Шаг 2. Пытаемся получить за не более чем одно приме- применение правила Б F-благоприятный набор вида D,- (l^t'^6). Если это невозможно, то F невыводима. Если Dy- благоприятен, 6 то при 6= 1 ( = j)F выводима, а при б > 1 полагаем F— дД- и i 1 переходим к шагу 1. Алгоритм кончит работу за 26 шагов. ТЕОРИЯ ПОИСКА ВЫВОДА И ОБРАТНЫЙ МЕТОД ЛИТЕРАТУРА 313 Г е и ц е н (Gentzen G.) 1. Исследования логических выводов.— В ки.: Математическая теория логического вывода. М.: Наука, 1967, с. 9—74. Давыдов Г. В., М а с л о в С. Ю., Мииц Г. Е., Оревков В. П. и Слисенко А. О. 1. Машинный алгоритм установления выводимости на основе обратно- обратного метода.— Зап. научн. семинаров ЛОМИ АН СССР, 1969, 16, с. 8-19. К а н re p (Kanger S.) 1. Упрощенный метод доказательства для элементарной логики.— В кн.: Математическая теория логического вывода. М.: Наука, 1967, с. 200— 208. К лин и (Kleene S. С.) 1. Введение в метаматематику.— М.: ИЛ, 1957. Крайзель (Kreisel G.) 1. Обзор теории доказательств.—В кн.: Крайзель Г. Исследова- Исследования по теории доказательств. М.: Мир, 1981, с. 9—113. 2. Некоторые приложения теории доказательств к поиску программ для ЭВМ.— В кн.: Крайзель Г. Исследования по теории доказательств. М.: Мир, 1981, с. 239—256. Ма с лов С. Ю. 1. Обратный метод установления выводимости в классическом исчисле- исчислении.—ДАН СССР, 1964, 159, № 1, с. 17—20. 2. Применение обратного метода к теории разрешимых фрагментов классического исчисления.—ДАН СССР, 1966, 171, № б, с. 1282— 1285. 3. Обратимый вариант конструктивного исчисления предикатов.— Зап. научн. семинаров ЛОМИ АН СССР, 1967, 4, с. 96—111. 4. Обратный метод установления выводимости для логических исчисле- исчислений.—Тр. Матем. ин-та АН СССР им. В. А. Стеклова, 98. М.: Нау- Наука, 1968, с. 26—87. 5. Связь между тактиками обратного метода и метода резолюций.— Зап. научн семинаров ЛОМИ АН СССР, 1969, 16, с. 137—146. 6. Proof-search strategies for methods of the resolution.— In: Machine In- Intelligence, 6/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1971, p. 77—90. 7. О поиске вывода в исчислениях общего типа.—Зап. научн. семинаров ЛОМИ АН СССР, 1972, 32, с. 59—65. 8. Теория поиска вывода и некоторые ее применения.— Кибернетика, 1975, № 4, с. 134—144. 9. Информация в исчислении и рационализация переборов.— Киберне- Кибернетика, 1979, № 2, с. 20—26. 10. Теория поиска вывода и вопросы психологии творчества.— Семиотика и информатика, 1979, 13, с. 17—46. МасловС. Ю. и НоргелаС. А. 1. О правилах типа сечеиия в исчислениях общего вида.— Зап. научн. семинаров ЛОМИ АН СССР, 1974, 40. МасловС. Ю. и Оревков В. П. 1. Разрешимые классы, сводящиеся к однокванторному.—-Тр. Матем. ин-та АН СССР им. В. А. Стеклова, 121. М.: Наука, 1972. Минц Г. F. 1. Варьирование тактик поиска вывода в секвенциальных исчислениях.— Зап. научн. семинаров ЛОМИ АН СССР, 1967, 4. НоргелаС. А. 1. Усложнение выводов при введении минус-нормальности.— Теория логического вывода, ч. I. M., 1974.
314 ДОПОЛНЕНИИ Б П pa в и ц (Prawitz D.) 1. Natural deduction.—Stockholm, 1965. Цейтин Г. С. 1. О сложности вывода в исчислении высказываний.— Зап. иаучн. семи- семинаров ЛОМИ АН СССР, 1968, 8, с. 234—259. Б. АЛГОРИТМ БРИТАНСКОГО МУЗЕЯ МОЖЕТ БЫТЬ ЭФФЕКТИВНЕЕ МЕТОДА РЕЗОЛЮЦИЙ В, П. Оревков Говоря об эффективности первых программ поиска логиче- логического вывода в исчислении предикатов, обычно сравнивали время работы этих программ со временем работы над теми же исходны- исходными данными алгоритма Британского музея (см., например, работу Ньюэла, Шоу и Саймона [I]). При этом сравнении выясни- выяснилось, что программы работают секунды (в худшем случае — минуты), а алгоритм Британского музея работал бы годы. Напомним, что алгоритм Британского музея последовательно порождает все возможные выводы в каком-нибудь варианте исчисления предикатов и прекращает работу в тот момент, когда наткнется на вывод исходной формулы. Очевидно, что при такой организации поиска вывода необходимо построить громадное число лишних выводов. Алгоритм Британского музея совершенно непригоден для фактического осуществления поиска вывода даже с использованием любых физически возможных ЭВМ. Во всех современных программах и алгоритмах поиска вы- вывода сокращение времени работы достигается в основном путем введения ограничений на искомый вывод. Основные ограниче- ограничения связаны с теоремой Эрбрана ^ли с теоремой Генцена об устранимости сечения (теорема нормализации). В частности, метод резолюций можно рассматривать как метод поиска вывода противоречия из системы дизъюнктов, имеющего специальный вид. Очевидно, что при фиксированной длине вывода число спе- специализированных выводов, вообще говоря, существенно меньше, чем общее число выводов искомой формулы той же длины. Именно это обстоятельство обычно и имеют в виду, когда гово- говорят об эффективности поиска вывода специального вида по срав- сравнению с поиском произвольного вывода. Однако при этом не учитывается то обстоятельство, что при переходе от произволь- произвольного вывода к специализированному длина вывода может на- настолько увеличиться, что будут перечеркнуты все преимущества поиска специааизированного вывода. В работе Стетмена [1] (подробное изложение опублико- опубликовано в работе Стетмена [2]) показано, что нормализация выводов в исчислении предикатов с равенством дает такое уве- увеличение длины вывода, которое нельзя оценить сверху никакой элементарной по Кальмару функцией от длины исходного вывода, АЛГОРИТМ БРИТАНСКОГО МУЗЕЯ 315 т. е. нельзя оценить сверху функциями вида В работе Оревкова [1] такая же оценка получена для исчисле- исчисления предикатов без равенства и функциональных знаков. В этой же работе с помощью предыдущего результата показано, что увели- увеличение длины вывода при переходе от выводов с правилом сечения к выводам опровержений по методу резолюций тоже нельзя оценить сверху никакой элементарной по Кальмару функцией. Цель настоящего дополнения — дать более простое доказатель- доказательство последнего результата. При этом в качестве исходных вы- выводов будем рассматривать не выводы с правилом сечения, а выводы в более трудном для поиска варианте исчисления предикатов—в гильбертовском варианте. 1. Мы будем рассматривать выводы формул вида (Ух)((Уу)(Эг)(Р{у, х, г) A (V«)(Vo)(Vo))(P(«, у, v) — (Р (v, y,w)-+P (и, г, w)))) -* (Эо.) (Р (х, х, v0) P( )))) где х, у, z, и, v, w, v0, vlt .... vk_1, vk — попарно различные предметные переменные. В дальнейшем эту формулу будем обо- обозначать посредством Ск. Чтобы использовать метод резолюций для поиска вывода формулы Ск, перепишем ее в виде системы дизъюнктов Р\х, а, /(*)), A) ~Р(х, у, z)\/~P(z, у, «)V P(x,f(y), и), B) ~Р(а, a, vo)V~P(a,jo, о,) V • • • V~ P (a, ofc_lt vk), C) где а — 0-местный функциональный знак и /—1-местный функ- функциональный знак. Длиной опровержения F какой-либо системы дизъюнктов будем называть число дизъюнктов в опровержении F, включая пустой дизъюнкт □■ Длину опровержения F будет обозначать посред- посредством 1{F). Теорема 1. Можно построить такое опровержение F си- системы A)— C) по методу резолюций, что где 2_1 = 0, 20=1 и 2,.+1 = 2B') (t>0). Доказательство. Требуемое опровержение строится совершенно однозначно с помощью тактики положительной гипер- гиперрезолюции. В этом опровержении, используя дизъюнкты A) и
Olt) ДОПОЛНЕНИЕ Б B), последовательно порождаются дизъюнкты Р(х, f(a),f(f(x))); ...; Р(х, H-^JW ■■■), H^J(x) ...)) i раз 2' раз до тех пор, пока не будут получены все дизъюнкты вида P(x,H^J(a) ...), ((_.._/(х) ...)), 2y._xra3 2y-раз где / не превосходит k. Затем с помощью этих дизъюнктов и дизъюнкта C) получаем пустой дизъюнкт П- Таким образом, при поиске опровержения системы A)—C) с помощью тактики поло- положительной гиперрезолюции перебор фактически вырождается в длинное вычисление. Теорема 1 доказана. Зададим функцию ф рекурсией у), у). D) Эта рекурсия является однократной рекурсией со вставками и выразима (см. книгу Петер [1], § J0) через примитивную рекур- рекурсию. Очевидно, что для всех натуральных х и у у) + Функция ф и ее представление с помощью рекурсии D) сле- следующим образом связано с системой A)—C). Дизъюнкты A) — B) моделируют рекурсию D). Дизъюнкт C) означает, что вычислим терм ф@, 0) ...)). E) р Опровержение системы A) — C), построенное в доказательстве теоремы 1, моделирует средствами метода резолюций доказатель- доказательство вычислимости терма ф@, п) индукцией по п. В этом дока- доказательстве в качестве индукционного предположения берется не доказываемое утверждение, а утверждение, что при всех нату- натуральных х функция ф вычислима на паре х и и1). В доказательстве теоремы 4 (в п. 4), чтобы построить более короткий вывод формулы Ck, мы будем моделировать непосред- непосредственное доказательство вычислимости терма E) индукцией по k. *) Доказательство теоремы 1 показывает, что при надлежащем выборе дедук- дедуктивной системы для доказательства выводимости выводимость рассматривае- рассматриваемых формул может быть установлена «коротко». В данном случае речь идет о доказательстве выводимости в исчислении предикатов средствами арифме- арифметики, в арифметике такое доказательство имеет фиксированную (не зависящую от k) длину, хотя любой резолютивный вывод очень быстро растет с ростом k (теорема 3 ниже). Основное содержание теоремы 4 в том, что короткие выводы рассматриваемых формул возможны в самом исчислении предикатов.—Ярил*. ред. АЛГОРИТМ БРИТАНСКОГО МУЗЕЯ 317 При этом, как и в предыдущем случае, в качестве индукционного предположения берется не доказываемое утверждение, а более сложная формула. Мы получили еще один пример действия пара- парадокса изобретателя (см., например, книгу Пойа-[1]), состо- состоящего в том, что более сложные планы могут иметь больше шансов на успех. Следует также заметить (об этом сообщил ав- автору Г. Е. Минц), что доказательство вычислимости терма E) индукцией по k во многом аналогично доказательству вычисли- вычислимости примитивно рекурсивных термов конечного типа индук- индукцией по построению термов, приведенному в работах Драга- л и н а [1] и Те йта [1]. Построению короткого вывода формулы Ск в исчислении пре- предикатов посвящен п. 4, а сейчас (в пп. 2 и 3) займемся полу- получением высоких нижних оценок длин опровержений системы A)—C) по методу резолюций. 2. Системой уравнений в термах с п неизвестными tlt ..., tn ист функциональными знаками /\, ..., fm называется список равенств F) где N^l и 7\, ..., TN, в,, .... вд,—термы, составленные из переменных tlt . . ., tn с помощью функциональных знаков /,,... ..., fm, среди которых могут быть и 0-местные функциональные знаки. Решением системы F) называется всякий список термов @J, ..., 0„) такой, что в результате одновременной подстановки термов 0!, ..., 0„ вместо соответствующих переменных в левые и правые части каждого из равенств F) получатся графически равные термы. Решение @Х, ..., 0„) системы F) будем называть универсаль- универсальным, если любое другое решение системы F) можно получить из @lt .... 0„) путем подстановки каких-либо термов вместо пере- переменных. Очевидно, что универсальные решения системы F) отли- отличаются друг от друга только переименованием переменных. Из теоремы об унификации вытекает, что если существует какое- либо решение системы F), то существует и универсальное ре- решение. Пусть Т — какой-либо терм. Определим индукцией по постро- построению терма Г его высоту h(T): а) если Г — предметная переменная или 0-местный функцио- функциональный знак, то /г(Т) = О; б) если терм Т имеет вид g(Tlt .... Тг), где g — /-местный функциональный знак, то
318 ДОПОЛНЕНИЕ Б Высотой системы уравнений в термах Г будем называть наиболь- наибольшую высоту входящих в Г термов. Высотой решения а системы Г также будем называть наибольшую высоту входящих в а термов. В дальнейшем высоту Г будем обозначать через /г (Г), а высо- высоту а—через h (a). Систему уравнений в термах Г будем называть насыщенной,. если Г как множество равенств замкнуто относительно правил = Т' Т\, в;., в;) Очевидно следующее утверждение. Лемма 1. По любой системе уравнений в термах Г с неиз- неизвестными tl9 .. ., tn и функциональными знаками /х, ..., fm можно- построить насыщенную систему Г" с теми же неизвестными и теми же функциональными знаками, удовлетворяющую следующим условиям: а) любое решение системы Г является решением Г" и наоборот* б) h (Г) = h (Г'). Пусть Г —насыщенная система уравнений в термах с неиз- неизвестными tlt ..., tn. Будем говорить, что t; равна tf в Г, если в Г входит равенство ti = tj или i = j. Будем говорить, что tt меньше tj е Г, и писать t( < ?tj, если можно указать такие /' и у", что выполняются следующие условия: а) t; равна tf в Г; б) tj равна tf в Г; в) в Г входит равенство t/' — T, где терм Т начинается с функ- функционального знака и содержит tf. Очевидно, что в любом решении системы Г равные в Г неиз- неизвестные принимают одно и то же значение, а значения меньших в Г неизвестных являются собственными частями больших неиз- неизвестных. Переменную tt будем называть максимальной в Г, если нельзя указать такую переменную tjt чтобы выполнялось tt < г(/. Нетрудно показать, что если система Г имеет решение, то среди неизвестных tlt . . ., tn имеются максимальные в Г неизвестные. В получении нижних оценок длин опровержений системы A) — C) основную роль будет играть следующая ниже лемма. Эта утверждение представляет и самостоятельный интерес. Лемма 2 (о высоте универсального решения). Какова бы ни была система уравнений в термах Г с неизвестными tlt ..., tn, для любого универсального решения а системы Г А(а);<Л[(Г)-я. G) Доказательство. Пусть Г—система уравнений в термах с неизвестными tlf ..., /„. В силу леммы 1 будем считать, что АЛГОРИТМ БРИТАНСКОГО МУЗЕЯ 319 система Г насыщена. Предположим, что система Г имеет реше- решение. Отсюда следует, что в Г нет равенств термов, начинающихся с разных функциональных знаков, и что среди неизвестных tlt .... /„ имеется максимальная в Г. Пусть tt—максимальная в Г неизвестная. Лемму 2 будем доказывать индукцией по п. Пусть п=1. Будем предполагать, что в Г входит равенство ti = T, где терм Т отличен от t-r Это можно сделать, так как в противном случае из насыщенности Г следовало бы, что зна- значением t{ может быть любой терм. Из максимальности t{ в Г вытекает, что tt не входит в Т. Следовательно, терм Т не содер- содержит переменных и является значением t; в любом решении сис- системы Г. Очевидно, что в этом случае выполняется неравенство G). Пусть /г>1. Посредством Г' обозначим систему, которая получается из Г в результате вычеркивания всех равенств, содер- содержащих tt. Система Г' имеет решение, так как из любого реше- решения системы Г решение системы Г' получается вычеркиванием значения tt. nycib а—универсальное решение системы Г'. По индукционному предположению получим, что h (а)<А (Г') (л— 1)<А (Г) (л— 1). (8) Предположим, что в Г входит равенство t; = T, где терм Т не совпадает с t{. Ясно, что в Т могут входить только перемен- переменные, отличные от tt. Добавим к списку а в качестве значения tt результат подстановки в Т вместо неизвестных их значений в о. Полученный таким образом список обозначим через а'. Список а' является универсальным решением Г. Это следует из того, что Г насыщена, что tt максимальна в Г и что а является универ- универсальным решением Г'. Очевидно, что А(<х')<А(а) + А(Г). Отсюда и из (8) следует, что о' удовлетворяет неравенству[|G). Так как универсальные решения Г отличаются от о' только переименованиями переменных, неравенство G) выполняется для произвольного универсального решения системы Г. Лемма 2 доказана. Следует заметить, что в случае системы уравнений в термах с одним 1-местным и любым числом 0-местных функциональных знаков решение системы в термах сводится к решению в нату- натуральных числах системы линейных уравнений с целыми коэффи- коэффициентами. В каждом из этих уравнений отличны от нуля только один или два коэффициента при неизвестных. Решения такой системы определяют высоты значений неизвестных в решении исходной системы уравнений в термах. 3. Обозначим посредством Н множество основных примеров дизъюнктов из системы A) — C). Основную атомарную формулу
320 ДОПОЛНЕНИЕ Б ЯG\, Т2,\Т3) будем называть а-истинной, если В противном случае формулу Р(ТЛ, Тг, Т3) будем называть а-ложной. Основную литеру L будем называть а-истинной, если L является или а-истинной атомарной формулой, или отрица- отрицанием а-ложной формулы. Основной дизъюнкт будем называть а-истинным, если он содержит а-истинную литеру. Нетрудно доказать, что выполняются следующие условия: 1) резольвента двух а-истинных основных дизъюнктов—а-ис- тинный дизъюнкт; 2) если дизъюнкт S является основным примером одного из дизъюнктов A) — B), то S—а-истинный дизъюнкт; 3) если дизъюнкт S является основным примером дизъюнкта C) из системы A) — C) и высоты всех термов в S меньше 2k, то S — а-истинный дизъюнкт; 4) дизъюнкт □ не является а-истинным. Отсюда и из теоремы о полноте принципа резолюции выте- вытекает следующее утверждение. Лемма 3. Каков бы ни был конечный набор Н дизъюнктов из Н, если Н противоречив, то какой-то дизъюнкт из Н содер" жит терм, высота которого не меньше 2k. Теорема 2. В любом противоречивом конечном наборе дизъ- дизъюнктов из Н содержится не менее Bk—1)/2(& + 4) дизъюнктов. Доказательство. Пусть {Slt ..., Sn\ — противоречивый набор дизъюнктов из Н. При каждом i(l^.i^.n) через S,- будем обозначать такой дизъюнкт из системы A) — C), что S,- получа- получается из него в результате подстановки термов вместо перемен- переменных. Переименуем переменные в дизъюнктах Slt ..., Sn таким образом, чтобы различные дизъюнкты не содержали одинаковых переменных, и полученные в результате дизъюнкты соответст- соответственно обозначим через Slt ..., Sn. Очевидно, что в эти дизъ- дизъюнкты входит не более n{k-\-A) переменных. Пусть литера L входит в дизъюнкт S;. Посредством L будем обозначать литеру, которая входит в S, и в которую переходит L в результате под- подстановки термов. Пусть Г—система всех равенств вида А — В, где А и В — такие атомарные формулы, что можно указать литеры L и V', удовлетворяющие следующим условиям: а) каждая из литер L и U .входит в один из дизъюнктов Sj, ...-, Sn; б) А совпадает с \L\; в) В совпадает с \L'\; г) \Ъ\ совпадает с \L'\. Здесь посредством \L\ обозначена такая атомарная формула, что она или ее отрицание совпадает с L. Система Г является системой уравнений в термах, если рассматривать предикатный знак Р как 3-местный функциональный знак. Очевидно, что h (Г) = 2 и что система Г имеет решение, в которое не входит Р. АЛГОРИТМ БРИТАНСКОГО МУЗЕЯ 321 Пусть а—какое-нибудь решение системы Г, не содержащее переменных и знака Р, и пусть литера L входит в один из дизъ- дизъюнктов Su ..., Sn. Через La будем обозначать литеру, которая получается в результате подстановки решения ст в такую лите- литеру V, что V принадлежит какому-нибудь из дизъюнктов Su . .., Sп и L' совпадает с L. Так как о—решение Г, то это обозначение не зависит от выбора V. Пусть S—дизъюнкт, каждая литера которого принадлежит какому-нибудь из дизъюнктов Sx, . . ., Sn. Посредством Sa будем обозначать дизъюнкт, который получается из S в результате замены каждой литеры L на La. Пусть 1/г, U\ и U3—такие дизъюнкты, что U3 является резоль- резольвентой U-l и U2 и что в иг и U2 входят только литеры, содер- содержащиеся в Slt . . ., Sn. Нетрудно показать, что можно построить такой дизъюнкт Uit что все литеры Ui содержатся в U3 и что VI является резольвентой U1 и U1- Отсюда следует, что любое опро- опровержение F системы {S,, . . ., Sn\ можно перестроить в опровер- опровержение Fa системы {Sf, . . ., S°}. Заметим, что при этом / (Fa) ^ / (F). Следовательно, так как система {Sly ..., Sn\ противоречива, будет противоречива и система \S°, ..., S%\. Пусть решение ст0 получается из универсального решения сис- системы Г путем замены всех переменных на а. Из леммы 2 выте- вытекает, что ЛJ Теперь с помощью леммы 3, так как система {5?° S} противоречива, получаем, что Отсюда и следует теорема 2. Теорема 3. Для любого опровержения F системы A) — C) по методу резолюций Доказательство. Пусть F—опровержение системы A) — C). Сначала преобразуем F в опровержение F', заданное в виде дерева. В F' каждый дизъюнкт участвует только один раз в получении резольвенты. Устраним в F' все предметные пере- переменные, оставив только 0-местный функциональный знак а. Для этого будем ко всем дизъюнктам F' последовательно, начиная от П и кончая исходными дизъюнктами, применять унифицирующие под- подстановки, участвовавшие в получении резольвент. В итоге полу- получим опровержение F" некоторого множества Н дизъюнктов из Й- Очевидно, что число дизъюнктов в Я не превосходит 2l w»-1. Отсюда по теореме 2 получим, что Отсюда и следует теорема 3.
322 ДОПОЛНЕНИЕ Б 4. Перейдем теперь к построению достаточно коротких выво- выводов формулы Ck. Выводы будем строить в гильбертовском варианте исчисления предикатов. Аксиомы и правила вывода этого вари- варианта приведены в книге К лини [1], учебнике Мендельсо- Мендельсона [1] и во многих других монографиях и учебниках по матема- математической логике. Напомним, что выражение Г|—Л, где Л— формула, а Г—список формул (Г может быть и пустым), озна- означает, что А выводима из допущений Г. Пусть D — произвольный вывод. Длиной вывода D будем называть число формул в D, а длиной записи D — число вхождений в D предметных переменных, функциональных и предикатных знаков, кванторов V и 3, логи- логических связок —>■, Д. V, ~ и скобок. Длину D будем обозна- обозначать через l(D), а длину записи D — через T{D). Очевидно, что Z(D)<7(D). Теорема 4. Можно указать такие натуральные числа си с2 и с3, что для любого k можно построить вывод Dk формулы Ck, удовлетворяющий следующим условиям: а) в Dk не входят функциональные знаки и предикатные знаки, отличные от Р; б) в Dk участвует не более c1(k-\-\) предметных переменных; в) l(Dk)^c,(k+l)uT(Dk)^2k+<>. Доказательство. При построении вывода Dk мы будем пользоваться следующими обозначениями. Посредством 50(а, Р) будем обозначать формулу (Эуо)Я(Р, а, у0), посредством Л0(а)— формулу (Vwo)Bo(a, wa), посредством С" (а, Р)—формулу (Vuvw)(P(u, а, v)-+(P(v, а, w)'-^P(u, Р, w))), посредством С" (а)—формулу (Уу)(Эг)(Р(у, а, г) АС (у, г)), посредством А (а)—формулу (Va;,) (# К) — (Эо.) (R (о.) AP{w0, а, о,))), посредством В (а, Р)—формулу (Зо0)(Р(Р, а, »„) Л 71 (»„)), где /?, 71—одноместные предикатные знаки. Пусть А —формула, х—предметная переменная, Q—одномест- Q—одноместный предикатный знак, и U—список формул. Посредством [И\% будем обозначать результат замены в 0 всех подформул вида Q(t) на формулу [А~\*, где t—какой-либо терм, а [А]* обозначает результат подстановки терма t вместо всех свободных вхожде- вхождений х. При этом, чтобы избежать коллизий, предварительно в А переименовываем связанные переменные таким образом, чтобы связанные переменные А не входили в U ни свободно, ни свя- связанно. АЛГОРИТМ БРИТАНСКОГО МУЗЕЯ 323 В дальнейшем посредством А1(а) будем обозначать формулу [А(а) \а0 (а) <х,_ посредством _Лл+1 (а)—формулу [Л (а) $„ «*> а, посредством Л (а)—формулу [Л (а) |д(а)а и посредством Вп+1 (а, р) — формулу [В (а, Р)|в„(а, р)«. Если переименование связанных пере- переменных в Вп(а, Р) производить подходящим образом, то в этих обозначениях формула Ck примет вид Пусть Л—формула. Посредством 1[А] будем обозначать число вхождений в Л предметных переменных, функциональных и пре- предикатных знаков, кванторов, логических связок и скобок. Оче- Очевидно, что Г[Л„(а)] = 34.2"—20>Г[Вп(а, р)]= Ш +10. Покажем, что \-С(х)-+А(х). (9) Действительно, легко видеть, что R(Wl), Л-'ЮЬ^НЯЮЛ/Ч^, в>., г) АР (г, w0, vj); C'{w0, */„), (ЭгоО (/? К) Л Р (Щ, Щ, z)AP{z, w0, v,)) [-Cv1)(R(v1)AP(w1, y0, v,)), где А' (а) обозначает формулу (VWl) (R (wj -* COl) (R (v^APiw,, a, v,))). Отсюда с помощью теоремы о дедукции получаем, что Р(Щ,х,у0), C{wo,yo)\-A(x). Чтобы получить (9), осталось заметить, что С" (х) Ь- (Зу) (Р К, х, у) AC (w0, у)). Аналогично доказывается, что Более простыми выкладками получим, что Ь-С(*) —Л.М; t-C"(x)-+<yy)(A0(y)-+B0(y,x)y, С" (х) -^R(x), С" (х) — (уу) (R (у) -* Т (у)) Ь С" (х) -+ (Уу) (А (у) -*В(у, х)); С" (х) -*#(*), С" (х) — (Уу) (R (у) -* Т (у)) [-(Ух) (С" (х) — Т (д)). Посредством Do обозначим вывод формулы С (х) —>А0(х), по- посредством D1—вывод формулы С (х)—+Аг(х), посредством D— вывод формулы С" (х) —* Л (х), посредством Do—вывод формулы
324 ДОПОЛНЕНИЕ Б С"(х) —>■ (Уу) (А0(у) —>■ В0(у, х)), посредством D — вывод форму- формулы С" (х) -+(Vy) (А (у) -+В (у, х)) из формул C{x)-*R(x) и C(x)—*-(Vy)(R(y)—>-T (у)), посредством D — вывод формулы {Щ (С" (х) — Т (х)) из формул С" (*) -ч. R(x) и С" (х) -»(Vy)(R(y)-> —»- Т (у)). Пусть списки формул D~ и D~ соответственно полу- получаются из выводов D и D в результате вычеркивания формул С" (х) — R (х) и С" (х) -^ (Vy) (/? (у) -* Г ()) Нужный нам вывод Dk имеет вид где t>i обозначает вывод ) — список и Dft—список [[D- Ak(a)a \Bk(a, x)a- Нетрудно показать, что ~1 2 68c-2'=lO2c-2*—66c 2 1 = 0 и что в Dk участвует не более 2(k-{-\)-\-c переменных. Здесь = maxG(D0), ), J(D0), 10), Теорема 4 доказана. 5. Из теорем 3 и 4 вытекает, что нельзя никакой элемен- элементарной по Кальмару функцией как от длины, так и от длины записи вывода формулы Ck оценить сверху длину опровержения по методу резолюций системы A) — C). Отсюда следует, что время поиска вывода формулы Ck с помощью алгоритма Бри- Британского музея растет с увеличением k существенно медленнее длины опровержения системы A)—C) по методу резолюций. В самом деле, рассмотрим вариант алгоритма Британского музея, описанный Дж. Свифтом в «Путешествии в Лапуту». Этот вариант, приспособленный для наших целей, состоит в следую- следующем. При фиксированном k будем перебирать все возможные последовательности, длина которых не превосходит 2*+Сз и ко- которые составлены из скобок, кванторов, логических связок, c{k\\) предметных переменных и знаков a, f и Р, где конс- АЛГОРИТМ БРИТАНСКОГО МУЗЕЯ 325 танты с1 и с3 построены согласно теореме 4. Работу закончим, когда получим вывод формулы Ck. Это обязательно произойдет, так как вывод Dk является нужной последовательностью. Число элементарных операций, необходимое для проверки, является ли данная последовательность выводом формулы Ck, зависит поли- полиномиально от длины последовательности. Общее число операций, необходимое для нахождения вывода формулы Ck, не превосхо- превосходит при подходящей константе d числа Это число уже при не очень больших k существенно меньше, в силу теоремы 3, числа дизъюнктов, которые необходимо полу- получить, чтобы убедиться в противоречивости системы A) — C), используя метод резолюций1). Заметим, что применение теоремы Эрбрана также может вы- вызвать неэлементарное удлинение вывода. Точнее говоря, из тео- теорем 2 и 4 вытекает, что нельзя никакой элементарной по Каль- Кальмару функцией от длины вывода формулы Ck оценить сверху мощность какого-нибудь противоречивого конечного множества основных примеров дизъюнктов из системы A) — C). Для ис- исчисления предикатов с равенством впервые подобный результат получен в работе Стетмена [3]. В заключение следует отметить, что формула Ck не является предваренной. Этот факт не играет существенной роли при по- построении достаточно коротких выводов формулы Ck, так как Ck можно стандартньш образом перестроить в предваренную форму- формулу C'k и построить такой вывод D'k формулы C'k из Ck, что дли- длина D'k зависит линейно от k, а длина записи D'k зависит квад- квадратично от k. ЛИТЕРАТУРА Д р а г а л и н А. Г. 1. Вычислимость примитивно рекурсивных термов конечного типа и при- примитивно рекурсивная реализация.— Зап. научн. семинаров ЛОМИ АН СССР, 1968, 8, с. 32-45. К л и н и (Kleene S. С.) 1. Mathematical Logic.— N. Y., 1967. [Русский перевод: К лини С. К- Математическая логика.— М,: Наука, 1973.] ]) Как известно, мультипликативно оптимален (в смысле колмогоровской теории сложности) алгорифм поиска вывода, перебирающий не только раз- различные выводы в фиксированном исчислении, но и различные исчисления. Это, разумеется, не означает, что в какой бы то ни было ситуации можно рекомендовать использование какой-нибудь формы алгоритма Британского музея. В частности, установление выводимости формул С^ может быть осно- основано на специализированном изучении именно резолютивного (а отнюдь не гильбертовского) исчисления — см. п. 3.2 из Дополнения А. — Прим. ред.
326 ДОПОЛНЕНИЕ В О СТРАТЕГИЯХ МЕТОДА РЕЗОЛЮЦИЙ 327 Мендельсон (Mendelson E.) 1. Introduction to Mathematical Logic—Princeton, N. J., 1964. [Русский перевод: Мендельсон Э. Введение в математическую логику.—М.: Наука, 1976.] Ньюэл, Шоу, Саймон (Newell A., Shaw Л. С, Simon H. А.) 1. In: Computer and Thought.— N. Y., 1963. [Русский перевод: НьюэлА., Шоу Дж., Саймон Г. Эмпирические исследования машины «Логик- теоретик»; пример изучения эвристики.— В кн.: Вычислительные ма- машины и мышление. М.: Мир, 1967, с. 113—144.] Оревков В. П. 1. Нижние оценки увеличения сложности выводов после устранения сече- сечений.—Зап. научн. семинаров ЛОМИ АН СССР, 1979, 88, с. 137—162. Петер (Peter R.) 1. Rekursive Funktionen.— Budapest, 1951. [Русский перевод: Петер Р. Рекурсивные функции.— М.: ИЛ, 1954.] Пойа (Polya G.) 1. How to Solve It.—Princeton, N. J., 1946. [Русский перевод: Пой а Д. Как решать задачу.—М.: Учпедгиз, 1961.] Стетмен (Statman R.) 1. The predicate calculus is not a Kalmar elementary speed-up of the equation calculus.— Preprint, Cambridge, 1975. 2. Bounds for proof-search and speed-up in the predicate calculus,— Ann. Math. Logic, 1978, 15, № 3, p. 225—287. 3. Lower bounds on Herbrand's theorem.— Prcc Amer. Math. Sec, 1979, 75, № 1, p. 104—107. Тейт (Tait W. W.) 1. Intensional interpretations of functional of finite types I.— J. Symbolic Logic, 1967, 32, № 2, p. 1P8—212. B. О СТРАТЕГИЯХ МЕТОДА РЕЗОЛЮЦИЙ И КЛАШ-МЕТОДА C. Ю. Маслов Назначение этого добавления —дать необходимые комментарии к изложению в книге вопросов, связанных со стратегиями уста- установления выводимости (в основном — к главам 6 и 7 книги), а также сформулировать несколько результатов в развитие мате- материала главы 6. Результаты эти в основном опубликованы уже в 1969 г. (см. Маслов [1] — [3]) и являются усилениями неко- некоторых из одновременных результатов Ковальского и Хей- еса [1] и Ковальского [1]. 1. Сильная полнота. В терминах Дополнения А формулировка стратегии для данного метода установления выводимости состоит в указании тех или иных ограничений на класс допустимых выводов объекта Q в исчислении И^, s- При этом представляют интерес лишь такие формы ограничений, которые позволяют проверять допустимость вывода по мере его построения (таковы, разумеется, все стратегии, рассмотренные в книге). Лишь при этом условии мы можем постепенно разворачивать процесс по- построения вывода, удовлетворяющего данной стратегии. При орга- организации этого процесса чрезвычайно важно различать две формы полноты, которыми может обладать стратегия. Действительно, может случиться, что допустимый вывод объекта □ существует, однако не всякий допустимый вывод может быть допустимым образом продолжен до вывода □. Обычное определение полноты, применяемое в книге, гаранти- гарантирует лишь существование для всякого S, выводимого в %, ка- какого-то одного допустимого вывода объекта □. Вместе с тем удобная организация использования данной стратегии возможна лишь при выполнении более сильного условия полноты: при существовании допустимого стратегией вывода объекта П для любого допустимого начального отрезка вывода. Лишь при силь- сильной полноте стратегии мы можем разворачивать по ней процесс поиска П, не опасаясь того, что в результате неудачного выбора на каком-то шаге процесса он (процесс) в принципе потеряет возможность привести нас к □• Если же полная стратегия не полна в сильном смысле, то при каждом возможном ветвлении процесса необходимо предусматривать перебор альтернатив (это особенно неприятно в связи с тем, что неудачный выбор почти никогда не заводит в тупик, а, напротив, приводит к появлению бесполезной бесконечной ветви процесса). Необходимость такого перебора чаще всего перечеркивает все кажущиеся достоинства данной стратегии (и она остается полезной лишь в том смысле, в какой полезны неполные стратегии—они очень эффективны, если «повезет», если не возникнет ни одного неудачного выбора). Из рассмотренных в книге сильно полны стратегии, связан- связанные с упорядочением литер, и просто полны варианты линейной резолюции. Именно поэтому более перспективным направлением развития представляются различные усиления результатов главы 6. Ниже полнота всюду понимается в сильном смысле. 2. Упорядоченные дизъюнкты. Ниже будет более последова- последовательно, чем в книге, проведена идеология упорядоченных дизъ- дизъюнктов как основного выводимого объекта метода резолюций (реально речь идет лишь о выборе системы терминов, не имею- имеющей значения для организации самих алгоритмов установления выводимости). Эта идеология намного удобнее для изложения рассматриваемого ниже круга стратегий, она возникает по ана- аналогии с языком обратного метода и сформулирована в приме- применении к резолютивным методам в работе Маслов а [3]. Итак, все дизъюнкты будем рассматривать как упорядочен- упорядоченные, отрезаемыми литерами могут стать лишь последние литеры посылок правила резолюций и последние литеры электронов при клаш-применении. Так понимаемые правила будем называть R и RR соответственно (клаш порождает применение многопосы- многопосылочного правила резолюций, которое мы и называем /^-пра- /^-правилом) 1). При этом считаем, что никакие склейки в ходе R- и См. § 6.3.
32« ДОПОЛНЕНИЕ В ##-применений не проводятся, за исключением тех, которые порождают поддизъюнкты заключения. Кроме того, введем в рассмотрение отдельные правила ./> и F, первое из которых позволяет произвести произвольную пере- перестановку членов в дизъюнкте, а второе—произвольную склейку. Теперь неограниченному методу резолюций соответствует про- произвольная последовательность применений правил R, Р и F. Удобные формулировки стратегий получаются как ограничения на применения Р и F. То же самое можно сказать про клаш- метод, заменяя R на RR. 3. Стратегия расклеек. Начнем с ограничений правила F. Эти ограничения интересны тем, что они используют специфику исчисления предикатов в гораздо большей степени, чем страте- стратегии, рассматриваемые в книге. Это проявляется в том, что при переходе на уровень исчисления высказываний (т. е. при пере- переходе к основным дизъюнктам) применения F становятся три- тривиальными (будем говорить, что применение F тривиально, если результат склейки является поддизъюнктом посылки). Пусть С1—результат нетривиального применения F к С. Легко найти такие Clt ...,С„, что □ может быть выведен из С, Clt ..., Ст, но не из С, Си .... Ст. Поэтому, получив в процессе применения метода резолюций дизъюнкт С, мы заве- заведомо не можем ограничиться использованием впредь одного лишь дизъюнкта СЛ Использование самого СУ далеко не так настоятельно: во многих случаях для получения □ достаточно иметь лишь С. Однако полное устранение F все же невозможно: невозможно вывести □ из Р (х, y)VP(y, х) и ~Р{х, y)\f ~Р(у,х), не прибегая к F. Последний факт связан с одинаковой сложностью как склейки Р(х,х), так и каждого из членов Р (х, у) и Р(у,х) «расклейки» Р{х, у)У Р(у, х). Будем говорить, что С—существенная склейка С, если каждый из членов С, склеивавшийся при получении СУ, «про- «проще», чем тот член из С, в который соответствующие члены С вклеи- вклеились. Это определение можно уточнить разными способами (см., например, работу Мае лов а [3]); при этом важно лишь, чтобы любой дизъюнкт имел только конечное число возможных суще- существенных расклеек (заметим, что дизъюнкт Р (х, х) имеет беско- бесконечно много «несущественных» расклеек вида P(xlf .. \/P(xk, Xl)). Стратегия расклеек запрещает применять F для получения существенных склеек. Будем говорить, что С" является обобщенным поддизъюнктом С, если С" или некоторая его существенная склейка является под- поддизъюнктом С. Стратегия обобщенных поддизъюнктов (опд-стра- тегия) состоит в запрещении использовать такие С, обобщенные О СТ РАТЕГИЯХ МЕТОДА РЕЗОЛЮЦИЙ 329 поддизъюнкты которых уже порождены в процессе установления выводимости или являются исходными. 4. П-стратегии. Рассмотрим теперь возможности ограничения применений правила Р. Пусть П—разрешимый предикат на всех упорядоченных дизъюнктах, истинный хотя бы на одной переста- перестановке каждого дизъюнкта. П-стратегией для метода резолюций назовем разрешение использовать в качестве посылок правила R лишь дизъюнкты, удовлетворяющие П (назовем их П-упорядо- ченными). Слабой П-стратегией назовем разрешение использовать помимо П-упорядоченных дизъюнктов произвольные перестановки входных дизъюнктов. П-стратегия полна не при всяких П (см., в частности, при- пример 6.18). Однако неполнота может возникнуть только в том случае, когда П «дает противоречивые указания» о предпочти- предпочтительности порядка литер в дизъюнкте. Под «противоречием» имеется в виду нарушение транзитивности. Точнее, будем гово- говорить, что П — ацикличный порядок, если П-упорядоченность со- сохраняется при переходе к поддизъюнктам, т. е. если из П-упо- рядоченности дизъюнкта D, V^eVD2\JL2Q V • • ■ VLkQ\/Dk+1 вытекает П-упорядоченность поддизъюнкта Ьг\/L2\/ . . .\/Lk. Теорема 1. Для любого ацикличного П полно сочетание П- стратегии, опд-стратегии и стратегии расклеек. Напомним, что речь идет о полноте в сильном смысле; под сочетанием стратегий понимается одновременное выполнение на каждом шаге поиска всех требований каждой из сочетаемых стра- стратегий. Теорема 2. Для любого ацикличного П полно сочетание слабой Ц-стратегии, опд-стратегии, стратегии расклеек и стра- стратегии поддержки. Разумеется, имеется в виду полнота на тех множествах под- поддержки, на которых полна последняя стратегия. 5. О лок-стратегии. Дальнейшее развитие идеи ограничений, накладываемых П-стратегиями, представляет собой лок-резолю- ция (ее можно рассматривать как такую стратегию, в которой понятие П-упорядоченности зависит не только от самого дизъ- дизъюнкта, но и от его вывода, от «истории его возникновения»). При этом, если организовать лок-резолюцию с сохранением прин- ципа ацикличности, то мы попадаем в условия применимости теоремы 1. В этом случае лок-резолюция как таковая нам ни- ничего не дает, но зато мы имеем все преимущества, которые выте- вытекают из хорошей сочетаемости П-стратегий с другими стратегиями. Напротив, если воспользоваться полнотой лок-стратегии при произвольном введении индексов, то мы должны считаться с воз- возможностью потери полноты при сочетании с самыми простыми и естественными стратегиями. Особенно странно выглядит несоче- 11 Ч. Чень, Р. Ли
330 ДОПОЛНЕНИЕ В О СТРАТЕГИЯХ МЕТОДА РЕЗОЛЮЦИЙ 331 таемость лок-резолюции со стратегией избегания противоречивых дизъюнктов (изучение этой несочетаемости с использованием машинных экспериментов проведено в работе Курьерова [1]). Например, лок-стратегия приведет к Q множество дизъюнктов только путем порождения дизъюнкта s~o\/8°- С другой стороны, теоремы 1 и 2 подразумевают сочетаемость со стратегией избе- избегания противоречий, которая может рассматриваться как частный случай ограничений опд-стратегии. Совершенно неясно, как по данному множеству дизъюнктов априори установить, какая из начальных индексаций литер дает более эффективную лок-резолюцию. Поэтому представляется целе- целесообразным выбирать индексации, согласованные с другими из- известными стратегиями. Насколько известно, хорошие возможности согласования предоставляются только принципом ацикличности. В результате аппарат лок-резолюции оказывается, видимо, не- ненужным: взамен можно рекомендовать прямое использование теоремы 1. 6. Соотношение клаш-метода с обратным. Для прояснения содержательного смысла некоторых дальнейших определений полезно иметь в виду тесную аналогию клаш-метода и обратного метода (см. Дополнение А). Эта аналогия проясняется следую- следующим примером. Пример. Будем испытывать на выводимость формулу F вида где с, d, е не являются чистыми литерами (т. е. ~с, ~d, ~e входят в F'). Исходным (получаемым по правилу А) благопри- благоприятным /""-набором является, например, набор [а; ~а] (строго говоря, вместо а и ~а должны были бы фигурировать их номера в какой-нибудь нумерации подформул, снабженные пустой под- подстановкой,—ср. п. 3.3 из Дополнения А). Аналогично, исходным благоприятным является F-набор [~d; d]. Правило Б позволяет породить новый набор, если отрезаемые члены наборов-посылок «перекрывают все пути через формулу F» (в этом и состоял смысл б-посылочности правила Б в приводившихся в Дополнении А формулировках метода). Для формул рассматриваемого в этом примере вида перекрытие всех путей осуществляется любыми «полными конъюнкциями» (в частности, конъюнкцией ~af\d). По- Поэтому из [а; ~а] и [~d; d] по правилу Б можно получить бла- благоприятный F-набор [~d; a]. Аналогично, благоприятен набор [~е; Ь] (учитывая «полноту» конъюнкции (~Ь/\е)). Далее, при- применение правила Б к [d; a], [~e; b] и исходному благоприятному [~с; с] дает нам [~с; ~d; ~e]. Последнее применение совер- совершенно аналогично применению RR с ядром а\/Ь\/с, электронами ~а\/Ь и ~b\Je и результатом c\Jd\Je. Сравнивая теперь понятия дизъюнкта и набора, заметим, что первый формулируется в терминах составляющих его элементар- элементарных формул, а второй — в терминах вхождений этих формул в исходную формулу F. Поэтому одному дизъюнкту может соот- соответствовать несколько наборов, что уменьшает произвольность в выборе посылок очередного применения правила Б по сравнению с RR. Кроме того, зависимости в F-наборах оказываются более простыми, так как часть их сложности содержится, в нумерации подформул формулы F. Чем сложнее структура испытуемых фор- формул, тем значимей преимущества наборов; напротив, для прос- простых структур сказываются преимущества большей общности по- понятия дизъюнкта. (Заметим, что формулировка обратного метода из п. 4.2 Дополнения А максимально близка к клаш-методу в том смысле, который рассматривается в этом абзаце.) Естественно теперь сказать, что дерево применений правила RR удовлетворяет ом-стратегии (стратегии обратного метода), если ядрами являются исходные дизъюнкты, а результаты при- применений не содержат чистых литер (имеется в виду, что возможны также применения Р и F). 7. П-стратегии для клаш-метода. Если L есть неотрезаемая литера ядра при некотором применении правила RR, то дизъ- дизъюнкт L\J~L будем называть скрытым электроном этого приме- применения. Дерево применений RR, P и F удовлетворяет П-страте- П-стратегии, если все электроны (включая скрытые!) и результат каждого применения RR П-упорядочены1). Слабая П-стратегия отличается отсутствием требования П-упорядоченности скрытых посылок. Таким образом, для клаш-метода слабая П-стратегия выглядит более естественно, чем П-стратегия. В книге изучены некоторые варианты именно слабой П-стратегии. Теорема 3. Для любого ацикличного П полно сочетание ом- стратегии, П-стратегии, опд-стратегии и стратегии расклеек. Теорема 4. Для любого ацикличного П полно сочетание ом- стратегии, слабой U-стратегии, опд-стратегии, стратегии рас- расклеек и стратегии поддержки. Замечание. Эти теоремы чрезвычайно близки к своим ана- аналогам для обратного метода. Подробное доказательство соответ- соответствующего аналога теоремы 3 содержится в работе М а с л о в а [4]. Вообще, идеи стратегий и доказательств их полноты обычно равноприменимы для метода резолюций и для обратного метода. х) Входные дизъюнкты используются П-стратегией лишь в качестве ядра; только те из них, которые удастся получить с помощью П-упорядоченных скрытых электронов, смогут стать электронами дальнейших применений RR. С учетом этого теорема 3 усиливает теорему 6.1. II* Зак. М2
332 ДОПОЛНЕНИЕ В ЛИТЕРАТУРА Ковальский (Kowalski R.) 1. Studies in tne completness and efficiency of theorem-proving by resolu- resolution: Ph.D. Thesis.—Univ. of Edinburgh, 1970. Ковальский и Хейес (Kowalski R., Hayes P. J.) 1. Семантические деревья в автоматическом поиске доказательств.—Ки- берн. сб., нов. сер., 9. М.: Мир, 1972. Курьеров Ю. Н. 1. О существовании строгой lock-резолюции.— Семиотика и информати- информатика, 1979, 12, с. 23—28. М а с л о в СЮ. 1. Связь между тактиками обратного метода и метода резолюций.— Зап. научн. семинаров ЛОМИ АН СССР, 1969, 16, с. 137—146. 2. Тактики .юиска вывода, основанные на унификации порядка членов в благоприятном наборе.—Зап. научн. семинаров ЛОМИ АН СССР, 1969, 16, с. 126—136. 3. Proof-search strategies for methods of the resolution type.— In: Machine Intelligence, 6/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1971, p. 77—90. 4. Обратный метод и тактики установления выводимости.— Тр. Матем. ин-та АН СССР им. В. А. Стеклова, 121. М.: Наука, 1972, с. 20—87. БИБЛИОГРАФИЯ Эта библиография делится на три части. Часть I: общая теория искусственного интеллекта и методы поиска в графах. Часть II: теория и методы автоматического доказательства теорем. Часть III: приложения математической логики и автоматического дока- доказательства теорем к анализу программ, синтезу программ, ответам на воп- вопросы и решению задач. ЧАСТЬ I Банерджи (Banerji R.) 1. Theory of Problem Solving: An Approach to Artificial Intelligence.— N. Y.: American Elsevier, 1969. Банерджи и Месарович (Banerji R., Mesarovic M., ed.) 1. Theoretical Approaches to Non-numerical Problem-Soh'ing.— Berlin; N. Y.: Springer, 1970. Басекер и Саати (Busacker R. G., Saaty Т. L.) 1. Finite Graphs and Networks, an Introduction with Applications.— N. Y.: McGraw-Hill, 1965. Дейл и Мичи (Dale E., Michie D., ed.) 1. Machine Intelligence, 2.— N. Y.: American Elsevier, 1968. Д о р а н (Doran J.) 1. An approach to automatic problem-solving.— In: Machine Intelligence, I/Ed. N. L. Collins and D. Michie. N. Y.: American Elsevier, 1967, p. 105-123. 2. New developments of the graph traverser.—In: Machine Intelligence, 2/Ed. E. Dale and D. Michie. N. Y.: American Elsevier, 1968, p. 119—136. 3. Planning and generalization in an automation environment system.— In: Machine Intelligence, 4/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1969, p. 433—454. Доран и Мичи (Doran J., Michie D.) 1. Experiments with the graph traverser program.—Proc. Roy. Soc, Ser. A, 1966, 294, p. 235—259. Дрейпер и Смит (Draper N. R., Smith H.) 1. Applied Regression Analysis.— N. Y.: Wiley, 1966. Дрейфус Г. (Dreyfus H. L.) 1. What Computers Can't Do.—N. Y.: Harper, 1971. Дрейфус С. (Dreyfus S.) 1. An appraisal of some shortest path algorithms.—Operations Res., 1969, 17, №3, p. 395-412. Коллинз и Мичи (Collins N. L., Michie D., ed.) 1. Machine Intelligence, 1.— N. Y.: American Elsevier, 1967. Лин (Lin S.) 1. Heuristic techniques for solving large combinatorial problems on a com- computer.— In: Theoretical Approaches to Non-numerical Problem-Solving/ Ed. R. Banerji and M. Mesarovic. N. Y.: Springer, 1970, p. 410—418. Лоулер и Вуд (Lawler E., Wood D.) 1. Branch and bound methods: a survey.—Operations Res., 1966, 14, № 4, p. 699—719.
334 БИБЛИОГРАФИЯ Маккарти и Хейес (McCarthy J., Hayes P. J.) 1. Some philosophical problems from the standpoint of artificial intelli- intelligence.— In: Machine Intelligence, 4/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1969, p. 463—502. Мельцер и Мичи (Meltzer В., Michie D., ed.) 1. Machine Intelligence, 4.— X. Y. 2. Machine Intelligence, 5.— N. Y. American Elsevier, 1969. American Elsevier, 1970. American Elsevier, 1971. 3. Machine Intelligence, 6.— N. Y. Минский (Minsky M.) 1. На пути к созданию искусственного разума.— В кн.: Вычислитель- Вычислительные машины и мышление/Ред. Э. Фейгенбаум, Дж. Фельдман. М.: Мир, 1967, с. 402—457. 2(ed). Semantic Information Processing.— Cambridge (Mass); M. I.T. Press, 1968. Мичи (Michie D., ed.)l 1. Machine Intelligence, 3.— N. Y.: American Elsevier, 1969. Нильсон (Nilsson N. J.) 1. Searching problem-solving and game-playing trees for minimal cost so- solutions.— In: Information Processing 68, 2/Ed. A. J. H. Movell. Amster- Amsterdam: North-Holland, 1969, p. 1556—1562. 2. Искусственный интеллект. Методы поиска решений.— М.: Мир, 1973. Ньюэл и Саймон Г. (Newell A., Simon H.) 1. Human Problem Solving.— Englewood Cliffs (N. J.): Prentice-Hall, 1972. Пейперт (Papert S.) 1. The Artificial Intelligence of Hubert L. Dreyfus. A Budget of Falla- Fallacies.— M. I. T. Artificial Intelligence Memo №54, January, 1968. П о й a (Polya G.)' 1. Как решать задачу.— M.: Учпедгиз, 1959. Поль (Pohl G.) 1. Heuristic search viewed as path finding in a graph.—Artificial Intel- Intelligence, 1970, 1, № 3, p. 193—204. 2. First results on the effect of error in heuristic search.— In: Machine Intelligence, 5/Ed. B. Meltzer and D. Michie. N. Y.: American Else- Elsevier, 1970, p. 219—236. 3. Bi-directional search.—In: Machine Intelligence, 6/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1971, p. 127—140. Саймон Р. и Ли (Simon R., Lee R.C. T.) 1. On the optimal solutions to AND/OR series-parallel graphs.—J. ACM, 1971, 18, № 3, p. 354—372. Сандевол (Sandewall E. J.) 1. A planning problem solver based on look-ahead in stochastic game trees.—J. ACM, 1969, 16, № 3, p. 364—382. Слэйг л (Slagle J. R.) 1. A heuristic program that solves symbolic integration problems in fresh- freshman calculus.— J. ACM, 1963, 10, № 4, p. 507-520. 2. Искусственный интеллект. Подход на основе эвристического програм- программирования.— М.: Мир, 1973. Тьюринг (Turing A. M.) 1. Может ли машина мыслить?—М.: Физматгиз, 1960. Фейген баум (Feigenbaum E.) 1. Artificial intelligence: themes in the second decade.— In: Information Processing 68, 2/Ed. A. J. H. Movell. Amsterdam: North-Holland, 1969, p. 1008—1022. Фейгенбаум и Фельдман (Feigenbaum E., Feldman J., ed. 1. Вычислительные машины и мышление.— М.: Мир, 1967. Финдлери Мельцер (Findler N. V., Meltzer В., ed.) 1. Artificial Intelligence and Heuristic Programming.— N. Y.: American Elsevier, 1971. БИБЛИОГРАФИЯ' 335 Фогель, Оуэне и Уэлш (Fogel L. J., Owens A. J., Welsh M. J.) J. Artificial Intelligence Through Simulated Evolution.— N. Y.: Wiley, 1966. Харт, Нильсон и Ральф (Hart P. E., Nilsson N. J., Ralph B.) 1. A formal basis for the heuristic determination of minimum cost paths.— IEEE Trans. System Sci. Cybernet., 1968, SSC-4, № 2, p. 100—107. Чень и Слэйгл (Chang С. L., Slagle J. R.) 1. An admissible and optimal algorithm for searching AND/OR graphs.— Artificial Intelligence, 1971, 2, № 2, p. 117—128. Эрнст и Ньюэл (Ernst G. W., Newell A.) 1. GPS: A Case Study on Generality and Problem Solving.— N. Y.: Acade- Academic Press, 1966. ЧАСТЬ II Аллен и Лакхем (Allen J., Luckham D.) 1. An interactive theorem-proving program.— In: Machine Intelligence, 5/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1970, p. 321— 326. Андерсон (Anderson R.) 1. Completeness results for E-resolution.— Proc. AFIPS 1970 Spring Joint Comput. Conf., 1970, p. 653—656. 2. Some Theoretical Aspects of Automatic Theorem Proving: Ph. D. The- Thesis.—Univ. of Texas at Austin, Texas, 1970. 3. Completeness of the Locking Restriction for Paramodulation.— Dept. of Comput. Sci., Univ. of Houston, Houston, Texas, 1971. Андерсон и Бледсоу (Anderson R., Bledsoe W. W.) 1. A linear format for resolution with merging and a new technique for establishing completeness.— J. Assoc. Comput. Mach., 1970, 17, p. 525— 534. Б а н д и (Bundy A.) 1. Counterexamples and Conjectures. There is no Best Proof Procedure.— Metamathematics Unit., Univ. of Edinburgh, Edinburgh, Scoiland, 1971. Беккер и С ей p (Backer P., Sayre D.) 1. The Reduced Model for Satisfiability for Two Decidable Classes of For- Formulae in the Predicate Calculus.—IBM Res. Rep. RC 103, 1953. Бе р сто л (Burstall R. M.) 1. A Scheme for Indexing and Retrieving Clauses for a Resolution Theo- rem-Prover.— MIP-R-45, Univ. of Edinburgh, Edinburgh, Scotland, 1968. Бет (Beth E. W.) 1. Observations concerning computing, deduction and heuristics.—In: Com- Computer Programming and Formal Systems/Ed. P. Braffort and D. Hirsch- berg. Amsterdam: North-Holland, 1963, p. 21—32. Бледсоу (Bledsoe W. W.) 1. Splitting and reduction heuristics in automatic theorem proving.— Arti ficial Intelligence, 1971, 2, № 1, p. 57—78. Бледсоу, Бойер и Хеннеман (Bledsoe W. W., Boyer R. S., Hen- neman W. H.) 1. Computer proofs of limit theorems.— Artificial Intelligence, 1971,3, № 1, p. 27—60. Бойер (Boyer R. S.) 1. Locking: a Restriction of Resolution: Ph. D. Thesis.—Univ. of Texas at Austin, Texas, 1971. Бойер и Myp (Boyer R. S., Moore J. S.) 1. The Sharing of Structure in Resolution Program.—Metamathematics Unit, Univ. of Edinburgh, Edinburgh, Scotland, 1971. Бонерт и Беккер (Bohnert N. G., Backer P.) 1. Automatic English-to-Logic Translation in a Simplified Model.—IBM Res. Rep. RC-1744, 1967.
336 БИБЛИОГРАФИЯ Брайс и Дерксен (Brice С, Derksen J.) 1. A Heuristically Guided Equality Rule in a Resolution Theorem Prover.— Tech. Note 45, Stanford Res. Inst., Artificial Intelligence Group, Menlo Park, California, 1971. Б ю x и (Buchi J. R.) 1. Turing machines and the Entscheidungs-problem.— Math. Ann., 1958, 148, p. 201—213. В аи (Wang H.) 1. Proving theorems by pattern recognition I.— Comm. Assoc. Comput. Mach., 1960, 3, p. 220—234. 2. На пути к механической математике.— Киберн. сб., 5. М.: ИЛ, 1962. 3. Proving theorem by pattern recognition II.— Bell. Syst. Tech. J., 1961, 40, p. 1—41. 4. Dominoes and the AEA case of the decision problem.— Symp. Math. Theory Machines, Polytechnic Inst. Brooklyn, 1962, p. 23—56. 5. The mechanization of mathematical arguments.— Proc. Symp. Appl. Math., 1963, 15, p. 31—40. 6. Games, logic and computers.— Scientific American, 1965, November, p. 98—107. 7. Формализация и автоматическое доказательство теорем.— Киберн. сб., нов. сер., 7. М.: Мир, 1970. 8. Mechanical mathematics and inferential analysis.—In: Computer Pro- Programming and Formal Systems/Ed. P. Braffort and D. Hirschberg. Amsterdam: North-Holland, 1967, p. 1—20. 9. Remarks on machine, sets and the decision problem.—In: Formal Systems and Recursive Functions/Ed. J. N. Crossley and M. Dummett. Amster- Amsterdam: North-Holland, 1967, p. 304—320. Ван Хейеноорт (Van Heijenoort J., ed.) 1. From Frege to Godel: a Source Book in Mathematical Logic.— Cambridge (Mass.): Harvard Univ. Press, 1967. Вей шан (Weissman С.) 1. LISP 1.5 Primer.— Belmont (Calif.): Dickenson, 1967. Ha стренен (Westrhenen S. C.) 1. Statistical studies of threshold in classical prepositional and first order predicate calculus.—J. Assoc. Comput. Mach., 1972, 19, № 2, p. 347—365. Вригт фон (von Wright G. H.) 1. An Essay in Modal Logic.— Amsterdam: North-Holland, 1951. Гард, Оглсби, Беннет и Сеттл (Guard J. R., Oglesby F. C, Ben- neth J. H., Settle L. G.) 1. Semi-automated mathematics.— J. Assoc. Comput. Mach., 1969, 18, №1, p. 49—62. Гелернтер (Gelernter H.) 1. Realization of a geometry theorem proving machine.—Proc. IFIP Congr., 1959, p. 273—282. Генкин (Henkin L.) 1. Completeness in the theory of types.— J. Symbolic Logic, 1950, 15, p. 81—91. Гёдель (Godel K.) 1. The completeness of the axioms of the functional calculus of logic.— In: From Frege to Godel; a Source Book in Mathematical Logic/Ed. J. van Heijenoort. Cambridge (Mass.): Harvard Univ. Press, 1967. 2. On formally undecidable propositions of Principia Mathematica and related systems.—In: From Frege to Godel: a Source Book in Mathe- Mathematical Logic/Ed. J. van Heijenoort. Cambridge (Mass.): Harvard Univ. Press, 1967. Гилмор (Gilmore P. C.) 1. A procedure for the production from axioms, of proofs for theories deri- derivable within the first order predicate calculus.—Proc. IFIP Congr. 1959, p. 2 65—273. библиография 337 2. A proof method for quantification theory: its justification and reali- realization.—IBM J. Res. Develop., 1960, p. 28—35. 3. A examination of ihe geometry theorem machine.— Artificial Intel- Intelligence, 1970, 1, № 3, p. 171 — 188. Гильберт (Hilbert D.) 1. Основания геометрии.— M.; Л.: Гостехиздат, 1948. Гильберт и Аккерман (Hilbert D., Ackermann W.) 1. Основы математической логики.— М.: ИЛ, 1947. Г у л д (Gould W. Е.) 1. A matching procedure for omega logic.— Air Force Cambridge Res. Lab., Rep. AFCRL-781, 1966. Данхем и Норт (Dunham В., North J. H.) 1. Theorem testing by computer.—Symp. Math. Theory Machines. Brooklyn (N. Y.): Brooklyn Polytechn. Inst., 1962, p. 172—177. Данхем, Фридсхол и Суорд (Dunham В., Fridshal R., Sward G. L.) 1. A nonheuristic program for proving elementary logical theorems.—Proc. IFIP Congr., 1959, p. 282—285. Дарлингтон (Darlington J. L.) 1. A Comit Program for Davis-Putnam Algorithm.— Research Laboratory, Electron. Mech. Translation Group, M. I. T., May 1962. 2. Machine methods for proving logical arguments expressed in English.— Mech. Transl., 1965, 8, p. 41—67. 3. Some theorem-proving strategies based on the resolution principle.— In: Machine Intelligence, 2/Ed. E. Dale and D. Michie. N. Y.: American Elsevier, 1968, p. 57—71. 4. Automatic theorem proving with equality substitutions and mathematical induction.— In: Machine Intelligence, 3/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1968, p. 113—127. 5. A partial mechanization of second-order logic— In: Machine Intelligence, 6/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1971, p. 91—100. Д е в и с (Davis M.) 1. Computability and Unsolvabiliiy.—N. Y.: McGraw-Hill, 1958. 2. (ed.) The Undecidable.—Hewlett (N. Y.): Raven Press, 1965. 3. Устранение лишнего из механических доказательств.— Киберн. сб., нов. сер., 7. М.: Мир, 1970. 4. Invited commentary on new directions in mechanical theoremproving.— Proc. IFIP Congress 1968, 1. Amsterdam: North-Holland, 1968, p. 67—68. Девис, Лоджмен и Лавленд (Davis M., Logemann G., Loveland D.) 1. A machine program for theorem proving.— Comm. Assoc. Comput. Mach., 1962, 5, № 7, p. 394-397. Девис и Патнем (Davis M., Putnam H.) 1. A computing procedure for quantification theory.— J. Assoc. Comput. Mach., 1960, 7, № 3, p. 201—215. Диксон (Dixon J.) 1. An Improved Method for Solving Deductive Problems on a Computer by Compiled Axioms: Ph. D. Thesis.—Univ. of California, Davis, Califor- California, 1970. 2. The Spezializer, a Method of Automatically Writting Programs.— Div. of Comput. Res. and Technol., Nat. Inst. of Health, Bethesda, Mary- Maryland, 1971. 3. Z-resolution: theorem-proving with compiled axioms.— 1971. 4. Experiments with a Z-Resolution Program.— Div. of Comput. Res. and Technol., Nat. Inst. of Health, Bethesda, Maryland, 1971. Дребен (Dreben B.) 1. On the completeness of quantification theory.—Proc. Nat. Acad. Sci. USA, 1952, 38, p. 1047—1052. Дребен и Ван (Dreben В., Wang H.) 1. A Refutation Procedure and its Model-Theoretic Justification.—Harvard Univ., Cambridge, Massachusetts, 1964.
338 БИБЛИОГРАФИЯ Ейтс, Рафаэль и Харт (Yates R., Raphael В., Hart T.) 1. Resolution graphs.—Artificial Intelligence, 1970, 1, № 4, p. 257—290. Зиберт (Sibert E. E.) 1. A machine oriented logic incorporating the equality relation.— In: Machine Intelligence, 4/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1969, p. 103—134. К а л л и к (Kallick В.) 1. A decision procedure based on the resolution method.— Proc. IFIP Congr. 1968, 1, p. 269—275. К а н re p (Kanger S.) 1. Упрощенный метод доказательства для элементарной логики.— В кн.: Математическая теория логического вывода. М.: Наука, 1967, с. 200—208. Кантаралла (Cantaralla R. G.) 1. Efficient Semantic Resolution Proofs Based Upon Binary Semantic Trees: Ph. D. Thesis.— Syracuse Univ., Syracuse, N. Y., 1969. Кар, Мур и Ван (Kahr A. S., Moore E. F., Wang H.) 1. Entscheidungs-problem reduced to the AEA case.— Proc. Nat. Acad.Sci. USA, 1962, 48, p. 365—377. Клинг (Kling R. E.) 1. A paradigm for reasoning by analogy.— Artificial Intelligence, 1967, 2, № 2, p. 147-178. К л и н и (Kleene S.) 1. Математическая логика.— М.: Мир, 1973. Кнут (Knuth D. Е.) 1. Искусство программирования для ЭВМ.— М.: Мир, 1976. Ковальский (Kowalski R.) 1. The case for using equality axioms in automatic demonstration.— Symp. Automatic Demonstration. N. Y.: Springer, 1970, p. 112—127. 2. Studies in the Completeness and Efficiency of Theorem-proving by Reso- Resolution: Ph. D. Thesis.— Univ. of Edinburgh at Edinburgh, Scotland, 1970. 3. Search strategies for theorem-proving.— In: Machine Intelligence, 5/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1970, p. 181—201. Ковальский и Кюнер (Kowalski R., Kuehner D.) 1. Linear Resolution with Selection Function.— Artificial Intelligence, 1971, 2, p. 227—260. Ковальский и Хейес (Kowalski R., Hayes P.) 1. Семантические деревья в автоматическом поиске доказательств,— Киберн. сб., нов. сер., 9. М.: Мир, 1972. Кол лин с (Collins G. F.) 1. Computational Reduction in Tarski's Decision Method for Elementary Algebra.—IBM, Yorktown Heights, N. Y., July 1962. Корфаг (Korfphage R. R.) 1. Logic and Algorithms.—N. Y.: Wiley, 1966. К р е й г (Craig W.) 1. Linear reasoning: a new form of the Herbrand-Gentzen theorem.— J. Symbolic Logic, 1957, 22, p. 250—268. 2. Three uses of the Herbrand-Gentzen theorem relating model theory to proof theory.—J. Symbolic Logic, 1957, 22, p. 269—285. К р и пке (Kripke S.) 1. Семантический анализ модальной логики, 1: Нормальные модальные исчисления высказываний.— В кн.: Фей с Р. Модальная логика. М.: Наука, 1974, с. 254—304. К ром (Krom M. R.) 1. The decision problem for a class of first-order formulas in which all disjunctions are binary.—Z. math. Logik Grundl. Math., 1967, 13, p. 15-20. Kp осели и Даммет (Crossly J. N., Dummett M., ed.) 1. Formal Systems and Recursive Functions.—Amsterdam: North-Holland, 1967. библиография 339 К у айн (Quine W. V.) 1. A proof procedure for quantification theory.—J. Symbolic Logic, 1955, 20, № 2, p. 141—149. 2. Methods of Logic—N. Y.: Holt, 1959. К у ам (Quam L. H.) 1. Stanford LISP 1.6 Manual. —Stanford Artificial Intelligence Project, Stanford Univ., Stanford, California, 1968.. Куинленд, Хант (Quinland J. R., Hunt E. B.) 1. A formal deductive problem-solving system. — J. Assoc. Comput. Mach., 1968, 15, № 4, p. 625—646. Кук (Cook S. A.) 1. Algebraic Techniques and the Mechanization of Number Theory.— RM-4319-PR, RAND Corp., Santa Monica, California, 1965. 2. The complexity of theorem-proving procedures. — Proc. 3rd Ann. ACM Symp. Theory Comput., 1971, p. 151—158. Купер (Cooper D. C.) 1. Theorem proving in computers. — In: Advances in Programming and Nonnumerical Computation/Ed. L. Fox. 1966, p. 155—182. Кюнер (Kuehner D. G.) 1. A note on the relation between resolution and Maslov's inverse method.— In: Machine Intelligence, 6/Ed. B. Meltzer and D. Michie. N. Y.: Ame- American Elsevier, 1971, p. 73—90. Л а в л е н д (Loveland D. W.) 1. Mechanical theorem proving by model elimination.—'J. ACM, 1968, 15, № 2, p. 236—251. 2. A simplified format for the model elimination theorem-proving procedure.— J. ACM, 1969, 16, № з, p. 349—363. 3. Theorem provers combining model elimination and resolution. — In: Machine Intelligence, 4/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1969, p. 73—86. 4. A linear format for resolution. —Proc. IRIA Symp. Automatic Demon- Demonstration. N. Y.: Springer, 1970, p. 147—162. 5. Some Linear Herbrand Proof Procedures: An Analysis.—Dept. of Comput. Sci,, Carnegie-Mellon Univ., Pittsburgh, Pennsylvania, 1970. 6. A unifying view of some linear Herbrand procedures.—J. ACM, 1972, 19, № 2, p. 366—384. Лайтстоун (Lightstone A. H.) i. The Axiomatic Method. Introduction to Mathematical Logic. — Engle- wood Cliffs (N. J.): Prentice-Hall, 1964. Лакхем (Luckham D.) 1. The resolution principle in theorem-proving.—In: Machine Intelligence, I/Ed. N. L. Collins, and D. Michie. N. Y.: American Elsevier, 1967, p. 47—61. 2. Some tree-pairing strategies for theorem-proving. — In: Machine Intelli- Intelligence, 3/Hd. D. Michie. N. Y.: American Elsevier, 1968, p. 95—112. 3. The Ancestry Filter Method in Automatic Demonstration.—Stanford Artificial Intelligence Project Memo, Stanford, California, 1968. 4. Refinements in resolution theory.—Proc. IRIA Symp. Automatic Demon- Demonstration, Versailes, France, 1968. N. Y.: Springer, 1970, p. 163—190. Левин и Марон (Levine R. E., Maron M. E.) 1. A computer system for inference execution and data retrieval.—Comm. ACM, 1967, 10, № 11, p. 715—721. Ли (Lee R.C.T.) 1. A Completeness Theorem and a Computer Program for Finding Theorems Derivable from Given Axions: Ph. D. Thesis.—Univ. of California at Berkeley, California, 1967. 2. Fuzzy logic and the resolution principle. —J. ACM, 1972, 19, № 1, p. 109—119.
340 БИБЛИОГРАФИЯ Ли и Чень (Lee R.C.T., Chang С. L.) 1. Some properties of fuzzy logic. — Information and Control 1971 19 №5 p. 417—431. Луккези (Lucchesi С L.) 1. The Undecidability of the Unification for Third Order Language.—CSRR • 2059, Dept of Appl. Analysis and Comput. Sci., Univ. of Waterloo, Waterloo, Canada, 1972. Льюис и Ленгфорд (Lewis С. I., Langford С. Н.) 1. Symbolic Logic. —N. Y.: Dover, 1959. Маккарти (McCarthy J.) 1. Computer programs for checking mathematical proofs. —AMS Symp. Re- Recursive Function Tneory. N. Y., 1961. 2. LISP 1.5 Programmers Manual.—Cambridge (Mass.): M.I.T. Press, 1962. 3. The Tough Nut for Proof Procedures.—Stanford Artificial Intelligence Project, Memo 16, Stanford Univ., Stanford, California, 1964. M а с л о в С. Ю. 1. Proof-search strategies for methods of the resolution type.—In: Machine Intelligence, 6/Kd. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1971, p. 77—90. Мельцер (Meltzer B.) 1. Theorem-proving for computers: some result son resolution and renaming.— Comput. J., 1966, 8, p. 341—343. 2. A new look at mathematics and its mechanization. —In: Machine Inte- Intelligence, 3/Ed. D. Michie. N. Y.: American Elsevier, 1968, p. 63—70. 3. Some notes on resolution strategies. — In: Machine Intelligence, 3/Ed. D. Michie. N. Y.: American Elsevier, 1968, p. 71—76. 4. Generation of hypothesis and theories.—Nature (London), 1970, 225, p. 972. 5. The semantics of induction and the possibility of complete systeme of inductive inference. —Artificial Intelligence, 1970, 1, №3, p. 189—192. 6. Power amplification for theorem-provers.—In: Machine Intelligence, 5/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1968, p. 165—179. 7. Prolegomena to a theory of efficiency of proof procedures. —In: Artifi- Artificial Intelligence and Heuristic Programming/Ed. N. V. Findler and B. Meltzer. N. Y.: American Elsevier, 1971, p. 15—33. Мендельсон (Mendelson E.) 1. Введение в математическую логику.—М.: Наука, 1976. Моррис (Morris J. В.) 1. E-resolution: extension of resolution to include the equality. — Proc. Internat. Joint Conf. Artif. Intelligence, Washington, D. C, 1969, p. 287—294. Нагель и Ньюмен (Nagel E., Newman J. R.) 1. Теорема Гёделя.—M.: Знание, 1970. Н е в и н с (Nevins A. J.) 1. A Human Oriented Logic for Automatic Theorem Proving. — Inst. for Management Sci. and Eng., George Washington Univ., Washington, D. С, 1971. Нортон (Norton L. M.) 1. Adept-A Heuristic Program for Proving Theorems of Group Theory: Ph. D. Thesis.—M.I.Т., Cambridge, Massachusetts, 1966. 2. Experiments with a heuristic theorem-proving for the predicate calculus with equality.—Artificial Intelligence, 1971, 2, № 3/4, p. 261—284. Ньюэл, Шоу и Саймон Г. (Newell A., Shaw J. С, Simon H. A.) 1. The logic theory machine. —IRE Trans Information Theory, 1956, IT-2, № 3, p. 61—79. 2. Empirical explorations of the logic theory machine. — Proc. West. Joint Comput. Conf., 1957, 15, p. 218—239. БИБЛИОГРАФИЯ 341 Петжиковский (Pietrzykowski Т.) 1. A Complete Mechanization of Second Order Logic.—Dept. of Appl. Analysis and Comput. Sci., Univ. of Waterloo at Waterloo, Canada, 1971. Петжиковский и Йенсен (Pietrzykowski Т., Jensen D.) 1. A Complete Mechanization of w-Order Logic.—Dept. of Appl. Analysis and Comput. Sci., Univ. of Waterloo at Waterloo, Canada, 1972. П и т p a (Pitrat J.) 1. Realization of a program which chooses the theorems it proves.—Proc. IFIP Congr. 1965, p. 324—325. 2. Realization de Programmes de Demonstration de Theorem Utilicant des Methodes Heuristiques: Ph. D. Thesis.—Univ. of Paris at Paris, France; 1966. П лотки н (Plotkin G. D.) 1. A note on inductive generalization. — In: Machine Intelligence, 5/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1970. Поплстоун (Popplestone R. J.) 1. Beth tree methods in theorem proving.— In: Machine Intelligence, I/Ed. N. L. Collins and D. Michie. N. Y.: American Elsevier, 1967, p. 31—46. Правиц Д. (Prawitz D.) 1. An improved proof procedure. —Theoria, 1960, 26, p. 102—139. 2. Completeness and Hauptsatz for second order logic.—Theoria, 1967, 33, p. 246—254. 3. Hauptsatz for higher order logic—J. Symbolic Logic, 1968, 33, p. 452-457. 4. Advances and problems in mechanical proof procedures. — In: Machine Intelligence, 4/Ed. B. Meltzer and D. Michie. N. Y.: American Else- Elsevier, 1969, p. 59—71. Правиц Д., Правиц X. и Во г* pa (Prawitz D., Prawitz H., Voghera N.) 1. A mechanical proof procedure and its realization in an electronic com- computer.—J. ACM, 1960, 7, № 1—2, p. 102-128. Пратт (Pratt T. W.) 1. Kernel equivalence of programs and proving kernel equivalence and correctness by test cases.— Proc. 2nd Inter. Joint Conf. Artif. Intelli- Intelligence, 1971, p. 474—430. Пфейфер (Pfeiffer P. E.) 1. Sets, Events and Switching.—N. Y.: McGraw-Hill, 1964. Рассел (Russell B.) 1. Mathematical logic as based on the theory of types.— In.: From Frege to Godel: a Source Book to Mathematical Logic/Ed. J. van Heijenoort. Cambridge (Mass.): Harvard Univ. Press, 1Э67, p. 150—182. Рейнольде (Reynolds J. C.) 1. A generalized resolution principle based upon context-free grammars.— Proc. IFIP Congr. 1968, p. 1405—1411. 2. Transformational systems and the algebraic structure.— In: Machine In- Intelligence, 5/ Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1970, p. 135—151. Рейтер (Reiter R.) 1. Two results on ordering for resolution with merging and linear format.— J. Assoc. Comput. Mach., 1971, 18, № 4, p. 630—646. Робинсон A. (Robinson A.) 1. Proving theorems, as done by man, machine and logician.— Summaries of Talks Presented at the Summer Institute for Symbolic Logic, Commu- Communications Res. Div., Inst. for Defence Analysis. Princeton, New Jersey, 2nd ed. 1960. 2. On the mechanization of the theory of equations.— Bull. Res. Council Israel, 1960, 9F, p. 47—70. 3. A basis for the mechanization of the theory of equations.—In: Computer Programming and Formal Systems/F.d. P. Braffort and D. Hirschberg. Amsterdam: North-Holland, 1967, p. 95—99.
342 БИБЛИОГРАФИЯ Робинсон Г. и Уос (Robinson G. A., Wos L.) 1. Paramodulation and theorem proving in first order theories with equa- equality.—In: Machine Intelligence, 4/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1969, p. 135—150. 2. Axiom systems in automatic theorem proving.— Symp. Automatic Demon- Demonstration. N. Y.: Springer, 1970. Робинсон Дж. (Robinson J. A.) 1. Theorem proving on the computer.—J. Assoc. Comput. Mach., J963, 10, № 2, p. 163—174. 2. Машинно-ориентированная логика, основанная на принципе резолю- резолюции.— Киберн. сб., нов. сер., 7. М.: Мир, 1970. 3. Automatic deduction with hyper-resolution.— Internet- J. Comput. Math 1965, 1, p. 227—234. 4. A review of automatic theorem proving.—Proc. Symp. Appl. Math. Amer Math. Soc, 1967, 19, p. 1 — 18. 5. The generalized resolution principle.— In: Machine Intelligence, 3/Ed. D. Michie. N. Y.: American Elsevier, 1068, p. 77—94. 6. New directions in mechanical theorem proving.— Proc. IFIP Congr 1968, 1, p. 63-68. 7. Mechanizing higher order logic.— In: Machine Intelligence, 4/Ed. B. Meltzer ang D. Michie. N. Y.: American Elsevier, 1969, p. 151 — 170. 8. A note on mechanizing higher order logic—In: Machine Intelligence, 5/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier 1970 p. 123—133. 9. Computational logic: the unification computation.^- In: Machine In- Intelligence, 6/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1971, p. 63—72. 10. Building deduction machines.— In: Artificial Intelligence and Heuristic Programming/Ed. N. V. Findler and B. Meltzer. N. Y.: American Else- Elsevier, 1971, p. 3—13. Сиклосси и М а р и н о в (Siklossy L., Marinov V.) 1. Heuristic search and exhaustive search.—Proc. 2nd Internat. Conf. Arti- Artificial Intelligence, London, 1971, p. 601—607. Сиклосси и Рич (Siklossy L., Rich A.) 1. The Logic Theorist Revisited or a Defense of the British Museum Algo- Algorithm.—Dept. of Comput. Sci., Univ. of Texas at Austin, Texas, 1971. Скулем (Skolem T.) 1. Logisch-kombinatorische Untersuchungen iiber die Erfullbarkeit oder Be- weisbarkeit mathematischer Satze.— Skrifter utgit ar Videnskapsselskaper i Kristiania, 1920, № 4, p. 4—36. Слэйгл (Slagle J. R.) 1. A Proposed Preference Strategy Using Sufficiency Resolution for Answer- Answering Question.— UCRL-14361, Lawrence Radiation Lab., Livermore, Cali- California, 1965. 2. A multipurpose, theorem proving, heuristic program that learns.™ Proc. IFIP Congr., 1965, 2, p. 323—328. 3. Automatic theorem proving with renamable and semantic resolution.— J. Assoc. Comput. Mach., 1967, 14, № 4, p. 687—697. 4. Heuristic search programs.—In: Theoretical Approaches to Non-numeri- Non-numerical Problem-Solving/Ed. K. Banerji and M. Mesarovic. N. Y.: Springer 1970, p. 246—273. ' 5. Interpolation theorem for resolution in lower predicate calculus.— J. As- Assoc. Comput. Mach., 1970, 17, №' 3, p. 535—542. 6. An approach for finding C-linear complete inference systems.— J. Assoc. Comput. Mach., 1971, 18. 7. Automatic Theorem-Proving for the Theories of Partial and Total Order- Ordering.— Div. of Comput. Res. and Technol., Nat. Inst. of Health, Bethesda, Maryland, 1971. БИБЛИОГРАФИЯ! 343 8. Automatic theorem proving with built-in theories including equality, partial ordering and sets.— J. Assoc. Comput. Mach., 1972, 19, № 1, p. 120—135. Слэйгл и Бурски (Slagle J. R., Bursky P.) 1. Experiments with a multipurpose, theorem-proving, heuristic program.— J. Assoc. Comput. Mach., 1968, 15, № 1, p. 85—99. Слэйгл и Конивер (Slagle J. R., Koniver D.) 1. Finding resolution proofs and using duplicate goals in AND/OR trees.— Information Sci., 1971, 4, № 4, p. 315—342. Слэйгл и Нортон (Slagle J. R., Norton L.) 1. Experiments with an Automated Theorem Prover Having Partial Order- Ordering Rules.—Div. of Comput. Res. and Technol., Nat. Inst. of Health, Bethesda, Maryland, 1971. Слэйгл и Фаррел (Slagle J. R., Farrel С D.) 1. Experiments in automatic learning for a multipurpose heuristic prog- program.—Comm. Assoc. Comput. Mach., 1971, 14, № 2, p. 91—99. Слэйгл, Чень и Ли (Slagle J. R., Chang С. L., Lee R. С. Т.) 1. Completeness theorems for semantic resolution in consequence finding.— Proc. 1st Internat. Joint. Conf. Artif. Intelligence, 1969, p. 281—285. Смальян (Smullyan R. M.) 1. A unifying principle in quantification theory.—Proc. Nat. Acad. Sci. USA, 1963, 49. p. 828—832. Снайдер (Snyder D. P.) 1. Modal Logic and Its Application.— Princeton (N. J.): Van Nostrand- Reinhold, 1971. Сто л л (Stoll R.) 1. Множества. Логика. Аксиоматические теории.— М.: Просвещение, 1968. 2. Set Theory and Logic—San Francisco (Calif.): Freeman, 1963. Тьюринг (Turing A.M.) 1. On computable numbers, with an application to the entscheidungsprob- Iem.—Proc. London Math. Soc, 1936, 42, p. 230—265. Уайтхед и Рассел (Whitehead A. N., Russell B.) 1. Principia Mathematica.— London; N. Y.: Cambridge Univ. Press, 1927. Уос, Карсон и Робинсон Г. (Wos L., Carscn D. F., Robinson G. A.) 1. The unit preference strategy in theorem proving.—Proc. AFIPS 1964 Fall Joint Comput. Conf., 1964, 26, p. 616-621. Уос и Робинсон Г. (Wos L., Robinson G. A.) 1. Paramodulation and set of support,—Proc. Symp. Automatic Demon- Demonstration, Versailles, France, 1968. N. Y.: Springer, 1970, p. 276—310. Уос, Робинсон Г. и Карсон (Wos L., Robinson G. A., Carson D. F.) 1. Efficiency and completeness of the set of support strategy in the theo- theorem proving.—J. Assoc. Comput. Mach., 1965, 12, № 4, p. 536—541. 2. Automatic generation of proofs in the language of mathematics.— Proc. IFIP Congr. 1965, 2, p. 325-326. Уос, Робинсон Г., Карсон и Шелла (Wos L., Robinson G. A., Car- Carson D. F., Shalla L.) 1. The concept of demodulation in theorem proving.—J. Assoc. Comput. Mach., 1967, 14, № 4, p. 698—709. Фридман (Friedman J.) 1. A semi-decision procedure for functional calculus.— J. Assoc. Comput. Mach., 1963, 10, № 1, p. 1—24. 2. A computer program for a solvable case of the decision problem.—J. Assoc. Comput. Mach., 1963, 10, № 3, p. 348—356. 3. A New Decision Procedure in Logic and Its Computer Realization: Ph. D. Thesis.—Harvard Univ., Cambridge, Massachusetts, 1964. 4. Computer realization of a decision procedure in logic.— Proc. IFIP Congr. 65, 1965, p. 327—328.
344 БИБЛИОГРАФИЯ X е н ш е н (Henschen L. J.) 1. A Resolution Style Proof Procedure for Higher/ Order Logic: Ph. D. Thesis.— Univ. of Illinois at Urbana-Champaign, Illinois, 1971. X о у дс (Hodes L.) 1. Solving problems by formula manipulation in logic and linear inequa- inequality.— Proc. 2nd Internet. Joint. Conf. Artif. Intelligence. London, 1971, p. 553—559. Хубер и Моррис (Huber H. G. M., Morris A. H., Jr.) 1. Primary Paramodulation.— NWL Tech. Rep. TR-2552, Warfare Analysis Dept., Naval Weapons Lab., Dahlgram, Virginia, 1971. Хюэ (Huet G. P.) 1. The Undecidability of the Existence of a Unifying Substitution Between Two Terms in the Simple Theory of Types.— Rep. 1120, Jennings Comput. Center, Case Western Reserve Univ., Cleveland, Ohio, 1972. Ч е н ь (Chang C. L.) ^ 1. The unit proof and the input proof in theorem proving.— J. Assoc. Com- Comput. Mach., 1970. 17, № 4, p. 698 — 707. 2. Renamable paramodulation for automatic theorem proving with equality.— Artificial Intelligence; 1970, 1, № 4, p. 247 — 256. 3. Theorem Proving by Generation of Pseudo-Semantic Trees.— Div. of Corn- put. Res. and Techno!., Nat. Inst. ot Health, Bethesda, Maryland, 1971. 4. Theorem proving with variable-constrained resolution.— Information Sci., 1972, 4, p. 217 — 231. Чень и Слэйгл (Chang С. L., Slagle J. R.) 1. Completeness of linear resolution for theories with equality.— J. Assoc. Comput. Mach., 1971, 18, № 1, p. 126—136. Ч ё р ч (Church A.) 1. An unsolvable problem of number theory.— Amer. J. Math., 1936. 58, p. 345—363. 2. Calculi of Lambda-Conversion.— Princeton (N. J.): Princeton Univ. Press, 1941. Чинланд, Девис, Хайнемен и Макилрой (Chinlund Т. J., Da- Davis М., Hineman P. G., Mcilroy M. D.) 1. Theorem Proving by Matching.— Bell Laboratory, 1964. Шенфилд (Schoenfield J. R.) 1. Математическая логика.— M.: Наука, 1975. Шютте (Schutte K-) 1. Syntactical and semantic properties of simple type theory.— J. Symbo- Symbolic Logic, 1960, 25, p. 305—326. Эндрюс (Andrews P. B.) 1. A Transfinite Type Theory with Type Variables.— Amsterdam: North- Holland, 1965. 2. Resolution with merging —J. Assoc. Comput. Mach., 1968, 15, № 3, p. 367 — 381. 3. On simplifying the matrix of a wff.—J. Symbolic Logic, 1968, 33, №2, p. 180 — 192. 4. Resolution in type theory.—J. Symbolic Logic, 1971, 36, №3, p. 414—432. Эрбран (Herbrand J.) 1. Recherches sur la theorie de la demonstration.—• Travaux de la Societe des Sciences et des Lettres de Varsovie, 1930, № 33, p. 128. 2. Investigations in proof theory: the properties of the propositions.— In: From Frege to Godel: a Source Book in Mathematical Logic/Ed. J van Heijenoort. Cambridge (Mass.): Harvard Univ. Press, 1967. 3. On the consistency of arithmetic.— In: From Frege to Godel: a Source Book in Mathematical Logic/Ed. J. van Heijenoort. Cambridge (Mass.): Harvard Univ. Press, 1967, p. 618—628. Эр и ст (Ernst G.) 1. The utility of independent subgoals in theorem proving.— Information and Control, 1971, 18, № 3, p. 237—252. БИБЛИОГРАФИЯ 345 Я с у х а р a (Yasuhara A.) 1. Recursive Function Theory and Logic.— N. Y.: Academic Press, 1971. ЧАСТЬ III Аллеи (Allen D.) 1. Derivation of axiomatic definitions of programming languages from alge- algebraic definition.— Proc. ACM Conf. Proving Assertions about Programs, 1972, p. 15 — 26. А м а р е л (Amarel S.) 1. On representations of problems of reasoning about actions.— In: Machine Intelligence, 3/Ed. D.Michie. N. Y.: American Elsevier, 1968, p. 131 — 171. Бе р стол (Burstall R. M.) 1. Semantics of assignment.— In: Machine Intelligence, 2/Ed. E. Dale and D. Michie. N. Y.: American Elsevier, 1968, p. 3—20. 2. Proving properties of programs by structural induction.— Comput. J., 1969, 12. p. 41—48. 3. Formal description of program structure and semantics in first order logic.—In: Machine Intelligence, 5/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1970, p. 79—98. 4. An algebraic description of programs with assertions, verification and -.imulation.— Proc. ACM Conf. Proving Assertions about Programs, 1972, p. 7—14. Берстол и Лондон (Burstall R. M., London R. J.) 1. Programs and their proofs: an algebraic approach.— In: Machine Intel- Intelligence, 4/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1969, p. 17—43. Блек (Black F.) 1. A deductive question-answering system.— In: Semantic Information Pro- Processing/Ed. M. Minsky. Cambridge (Mass.):M. I. T. Press, 1964, p.354 —402. Блисс, Чиен и Стол (Bliss K-, Chien R., Stohl F.) 1. R2 a natural language question-answering system.— Proc. AFIPS, 1971, p. 303—308. Брэффорт и Хиршберг (Braffort F., Hirshberg D., ed.) 1. Computer Programming and Formal Systems.— Amsterdam: North-Holland, 1963. Брюс (Bruce B. C.) 1. A model for temporal references and its applications in a question an- answering program.— Artificial Intelligence, 1963, 3, № 1, p. 1—26. Вригт фон (von Wright G. H.) 1. An Essay in Deontic Logic and the General Theory of Actions.— Amster- Amsterdam: North-Holland, 1Э68. Вюйемен (Vuillemin J.) 1. Proof Techniques for Recursive Programs: Ph. D. Thesis.— Stanford Univ. at Stanford, California, 1972. Грин Б., Вулф, Чомский и Лофери (Green В., Jr., Wolf А. К., Chomsky С, Laughary К.) 1. Бейсбол — программа, автоматически отвечающая на вопросы.— В кн.: Вычислительные машины и мышление/Ред. Э. Фейгенбаум, Дж. Фельд- Фельдман. М.: Мир, 1967, с. 221—233. Г р и и К. (Green С.) 1. Theorem proving by resolution as a basis for question-answering systems.— In: Machine Intelligence, 4/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1969, p. 183 — 205. 2. The Application of Theorem Proving to Question Answering Systems: Ph. D. Thesis.—Stanford Univ. at Stanford, California, 1969. 3. Application of theorem proving to problem solving.— Proc. 1st Internat. Jeint Conf. Artif. Intelligence, 1969, p. .219—239.
346 БИБЛИОГРАФИЯ Грин К. и Рафаэль (Green С, Raphael В.) 1. The use of theorem proving techniques in question answering systems. Proc. 23rd Nat. Conf. ACM. Princeton (N. J.): Brandon Systems Press, 1969, p. 169-181. Гуд (Good D. I.) 1. Toward a Man-machine System for Proving Program Correctness: Ph. D. Thesis.— Univ. of Wisconsin at Madison, Wisconsin, 1970. Дарлингтон (Darlington J. L.) 1. Theorem proving and information retrieval.— In: Machine Intelligence, 4/Ed. B. Weltzer and D. Michie. N. Y.: American Elsevier, 1969, p. 173—181. Девидсон (Davidson D.) 1. The logical form of action sentences.— In: The Logic of Decision and Action/Ed. N. Rescher. Pittsburgh (Penns.): Univ. Pittsburgh Press, 1967. Дейкстра (Dijkstra E. W.) 1. A constructive approach to the problem of- program correctness.— B. I. T., 1968, 8, № 3, p. 174 — 186. К ад и у (Cadiou J. M.) 1. Recursive Definitions of Partial Functions and their Computations: Ph. D. Thesis.— Stanford Univ., Stanford, California, 1972. К а план (Kaplan D. M.) 1. Some completeness results in the mathematical theory of computation.— J. Assoc. Comput. Mach., 1968, 15, № 1, p. 124 — 134. Кинг (King J. C.) 1. Program Verifier: Ph. D. Thesis.—Carnegie-Mellon Univ., Pittsburgh, Pennsylvania, 1969. 2. Proving programs to be correct.—IEEE Trans. Comput., 1971, C-20, № 11, p. 1331 — 1336. Кинг и Флойд (King J. С, Floyd R. W.) 1. Interpretation oriented theorem provcr over integers.— 2nd Ann. ACM Symp. Theory Comput., Northampton, Mass., 1970, p. 169—170. Куинлен и Хант (Quinlan J. R., Hunt E. B.) 1. A formal deductive problem-solving system.— J. Assoc. Comput. Mach., 1968, 15, № 4, p. 625 — 646. Куне (Kuhns J. L.) 1. Answering Questions by Computer: A Logical Study.— Memo. Rm-5428-PR. The Rand Corp., Santa Monica, California, December 1967. Купер Д. (Cooper D. C.) 1. Mathematical proofs about computer programs.—In: Machine Intelligence, I/Ed. N. L. Collins and D. Michie. N. Y.: American Elsevier, 1967, p. 17 — 30. 2. Some transformations and standard forms of graphs with applications to computer programs.— In: Machine Intelligence, 2/Ed. E. Dale and D. Michie. N. Y.: American Elsevier, 1968, p. 21—32. 3. Program scheme and second order logic.— In: Machine Intelligence, 4/Ed B. Meltzer and D. Michie. N. Y.: Americal Elsevier, 1969, p. 3—15. 4. Programs for mechanical program verification.—In: Machine Intelligence 6/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1971, p. 43—59^ Купер У. (Cooper W. S.) 1. Fact retrieval and deductive question answering information retrieval systems.—J. Assoc. Comput. Mach., 1964, 11, № 2, p. 117—137. Лакхем и Нильсон (Luckham D., Nilsson N. J.) 1. Extracting information from resolution proof trees.— Artificial Intelli- Intelligence, 1971, 2, № 1, p. 27—54. Лакхем, Парк и Патереон (Luckham D., Park D. M. R., Paterson M. S.) 1. Formalized computer programs. —J. Comput. Syst. Sci., 1967, 4, № 3, p. 220—249. БИБЛИОГРАФИЯ 347 Ландин (Landin P. J.) 1. The mechanical evaluation of expressions. —Comput. J ., 1964, 6, p. 308 — 320. Ли и Чень (Lee R. С. Т., Chang С. L.) 1. Program Analyses and Theorem Proving. —Div. of Comput. Res. and Technol., Nat. Inst. of Health, Bethesda, Maryland, 1971. Ли, Чень и Уолдингер (Lee R. С. Т., Chang С. L., Waldinger R. J.) 1. An Improved Program-Synthesizing Algorithm and its Correctness.—Div. of Comput. Res. and Technol., Nat. Inst. of Health. Bethesda, Mary- Maryland, 1972. Л и идеей (Lindsay R. K-) 1. Память, способная к выводам, как основа машин, понимающих чело- человеческий язык. —В кн.: Вычислительные машины и мышление/Ред. Э. Фейгенбаум, Дж. Фельдман. М.: Мир, 1967, с. 233—254. Лондон (London R.) 1. Bibliography on proving the correctness of computer programs.—In: Machine Intelligence, 5/Ed. B. Meltzer and D. Michie. N. Y.: Ameri- American Elsevier, 1970, p. 569 — 580. Маккарти (McCarthy J.) 1. Programs with common sen^e. —Proc. Symp. Mechanization Thought Pro- Process, 1. London: H. M. S. O., 1961, p. 75 — 84. 2. Towards a mathematical science of computation.—Proc. IFIP Congr. 62, 1962, p. 21—28. 3. Predicate Calculus with «Undefined» as a Truth-value.—Stanford Artif. Intelligence Project, Memo 1, Stanford Univ. at Stanford, California, 1963. 4. Situations, Actions and Causal Laws.—Memo, Stanford Artif. Intel- Intelligence Project, Stanford Univ., Stanford, California, 1963. 5. Problems in the theory of computation.—Proc. IFIP Congress 65, 1965, p. 219—222. 6. A basis for a mathematical theory of computation.—-In: Computer Prog- Programming and Formal Systems/Ed. R. Brafford and D. Michie. Ams- Amsterdam: North-Holland, 1967, p. 33 — 70. M а н и a (Manna Z.) 1. The correctness of programs. —J. Comput. Syst. Sci., 1969, 3, № 2, p. 119—127. 2. Properties of programs and the first order predicate calculus.—J. Assoc. Comput. Mach., 1969, 16, № 22, p. 244—255. 3. The correctness of non-deterministic programs.—Artificial Intelligence, 1970, 1, № 1, p. 1—26. 4. Mathematical theory of partial correctness.—Symp. Semantics Algorith- Algorithmic Languages. N. Y.: Springer, 1970. Манна и Маккарти (Manna Z., McCarthy J.) 1. Properties of programs and partial function logic.—-In: Machine lntel- lingence, 5/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1970, p. 27—38. Манна, Несс и Вюйемен (Manna Z., Меьь S., Vuillemin J.) 1. Inductive methods for proving properties of programs.—Proc. ACM Conf. Proving Assertions About Programs, 1972, p. 27 — 50. Манна и Пнуэли (Manna Z., Pnueli A.) 1. The Validity Problem of the 91-Function.—Stanford Artif. Intelligence Project, Memo 68, Stanford Univ. at Stanford, California, 1968. 2. Formalization of properties of functional programs. — J. Assoc. Comput. Mach., 1970, 17, № 3, p. 555 — 569. Манна и Уолдингер (Manna Z., Waldinger R.) 1. Toward automatic program sythesis. — Comm. Assoc. Comput. Mach., 1971, 14, №3, p. 151 — 165. M и л не p (Milner R.) 1. Implementation and applications of Scott's logic for computable functi- functions.—Proc. ACM Conf. Proving Assertions About Programs, 1972, p. 1—6.
348 БИБЛИОГРАФИЯ Минкер и Сейбл (Minker J., Sable J. D.) 1. Relational Data Systems Study.—Dept. of Comput. Sci., Univ. of Mary- Maryland, Colledge Park, Maryland, 1971. Морган (Morgan С G.) 1. Hypothesis generating by machine.—Artificial Intelligence, 1971, 2, № 2, p. 179—187. H а у p (Naur P.) 1. Proofs of algorithms by general snapshots. —B. I. Т., 1971,6, p. 310—316. Парк (Park D.) 1. Fixpoint induction and proofs programs properties, — In: Machine Intellige- Intelligence, 5/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1970, p. 59-78. Патерсон (Paterson M. S.) 1. Equivalence Problems in a Model of Computation: Ph. D. Thesis. — Cambridge University, 1967. 2. Program schemata. — In: Machine Intelligence, 3/Ed. D. Michie. N. Y.: American Elsevier, 1968, p. 19 — 31. Пейнтер (Painter J. A.) 1. Semantic Correctness of a Compiler for an Algol-like Language.—Stan- Language.—Stanford Artif. Intelligence Project, Memo 44, Stanford Univ., Stanford, Ca- California, 1967. Рафаэль (Rapahel B.) 1. A computer program which understands.—Proc. AFIPS ,Fall Joint Com- Comput. Conf. 1964, p. 577 — 589. Реше р (Reseller N.) 1. Hypothetical Reasoning.—Amsterdam: North-Holland, 1964. 2. (ed.) The Logic of Decision and Actions. —Pittsburgh (Penns.): Univ. Pittsburgh Press, 1967. Саймон Г. (Simon H. A.) 1. Experiments with a heuristic compiler. — J. Assoc. Comput. Mach., 1963, 10, № 4, p. 493 — 506. 2. The logic of heuristic decision making. —In: The Logic of Decision and Actions. Pittsburgh (Penns.): Univ. Pittsburgh Press, 1967. Сандевол (Sandewall E.) 1. Representing language information in predicate calculus. — In: Machine Intelligence, 6/Ed. B. Meltzer and D. Michie. N. Y.: American Else- Elsevier, 1971, p. 255 — 280. 2. Formal methods in the design of question-answering systems.—Artifi- systems.—Artificial Intelligence, 1971, 2, № 2, p. 129—146. 3. PCF-2, a First Order Calculus for Expressing Conceptual Information.— Dept. of Comput. Sci., Uppsala Univ. at Uppsala, Sweden 1972. Се й фи p (Safier F.) 1. Mikado as an Advice Taker Problem.—Memo, Stanford Artif. Intelli- Intelligence Project, Stanford Univ. at Stanford, California, 1963. Симмонс (Simmons R.) 1. Answering English questions by computer, a survey.—Comm. Assoc. Comput. Mach., 1965, 8, № 1, p. 53 — 70. Скотт (Scott D.) 1. Outline of a mathematical theory of computation.—Proc 4 th Princeton Conf. Inform. Sci. Syst., 1970, p. 169 — 178. Слэйгл (Slagle J. R.) 1. Experiments with a deductive question-answering program.—Coinm. As- Assoc. Comput. Mach., 1965, 8, p. 792 — 798. Снайдер (Snyder D. P.) 1. Modal Logic and Its Applications.—Princeton (N. J.): Van Nostrand- Reinhold, 1971. Уолдингер (Waldinger R.) 1. Constructing Programs Automatically Using Theorem Proving: Ph. D. Thesis. — Carnegie-Mellon Univ., Pittsburgh, Pennsylvania, 1969. библиография 349 Уолдингер и Ли (Waldinger R., Lee R. С. Т.) 1. PROW: a step toward automatic program writing.—Proc. 1st Internet. Joint Conf. Artif. Intelligence, 1969, p. 241—252. Файкс и Hi^bcoH(FikesR.E., Nilsson N. J.) 1. STRIPS: a new approach to the application of theorem proving to prob- problem solving.—Proc. 2nd Internet. Joint Conf. Artif. Intelligence. Lon- London, 1971, p. 608 — 620. Флойд (Floyd R. W.) 1. Assigning meaning to programs.—Proc. Symp. Appl. Math., 1967, 19, p. 19—32. 2. Toward interactive design of correct programs.—Stanford Artificial In" telligence Project, Memo AIM-150, Stanford Univ., Stanford, California, 1971. Флорентин (Florentin J. J.) 1. Language definition and compiler validation. — In: Machine Intelligence, 3/Ed. D. Michie. N. Y.: American Elsevier, 1968, p. 33 — 41. Футамура (Futamura Y.) 1. Partial evaluation of computer programs: an approach to a compiler- compiler.— J. Inst. Electron. Commun. Eng. Japan, 1971. Халл, Энрайт и Седжвн к (Hull Т. Е., Ennght W. H., Sedgwick A. E.) 1. The correctness of numerical algorithms. — Proc. ACM Conf. Proving Assertions About Programs, 1972, p. 66—73. X ейес (Hayes P.) 1. A Machine-Oriented Formulation of the Extended Functional Calculus.— Stanford Artif. Intelligence Project, Memo 86, Stanford Univ., Stanford, California, 1969. 2. Robotologic. — In: Machine Intelligence, 5/Ed. B. Meltzer and D. Michie- N. Y.: American Elsevier, 1970, p. 533 — 554. 3. A logic of actions. — In: Machine Intelligence, 6/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1971, p. 495 — 520. X oap (Hoare С A. R.) 1. An axiomatic basis for computer programs.— Comm. Assoc. Comput. Mach., 1969, 12, № 10, p. 576 — 580. Хьюит (Hewitt C.) 1. Planner: a language for proving theorems in robots.—Proc. 1st Inter- nat. Joint Conf. Artif. Intelligence, 1969, p. 295—302. Чень, Ли и Диксон (Chang С. L., Lee R. С. Т., Dixon J.) 1. Specialization of Programs by Theorem-Proving. — Div. of Comput. Res. and Technol., Nat. Inst. of Health, Bethe sda, Maryand, 1971. Эван с (Evans С. О.) 1 1. States, activities and performances.—Australian J. Philos., 1967, 45, p. 293—308. Эшкрофт (Ashcroft E. A.) 1. Functional Programs as Axiomatic Theories.—Center for Computing and Automation, Rep. № 9, 1969, Imperial College, Lcndon. 2. Mathematical Logic Applied to the Semantics of Computer Programs: Ph. D. Thesis. —Imperial College, London, 1970. 3. Program correctness methods and language definitions.—Proc. ACM Conf. Proving Assertions about Programs, 1972, p. 51—57. Эшкрофт и Манна (Ashhroft E. A., Manna Z.) 1 . Formalization of properties of parallel programs. — In: Machine Intelli- Intelligence, 6/Ed. B. Meltzer and D. Michie. N. Y.: American Elsevier, 1971, p. 17—41. Я но в Ю. И. 1. О логических схемах алгоритмов. —Проблемы кибернетики, 1. М.: Физматгиз, 1958, с. 75 — 127.
АЛФАВИТНЫЙ УКАЗАТЕЛЬ А-правило 301, 302, 304 Абрахаме (Abrahams P. W.) 272, 282, 288 Августин (Augustin J. G.) 269 Аккерман (Ackermann W.) 32, 49, 268, 270 Аксиома (axiom) 26 — индукции (induction axiom) 258— 261 — равенства (equality axiom) 163 — рефлексивности (functionally ref- reflexive axiom) 162 Алгорифм Британского музея 314 — извлечения информации (informa- (information-extraction algorithm) 237 — поглощения (subsumptiom algo- algorithm) 98 — синтеза программ (program-syn- (program-synthesizing algorithm) 250, 261 — унификации (unification algorithm) 82 Амарел (Amarel S.) 269 Анализ программ с помощью резолюции (program analysis by resolution) 211-215 Андерсон (Anderson R.) 10, 53, 72, 102, 118, 125, 126, 130, 156, 166, 176 Ассоциативный закон (associative law) 22 Atom (atom) см. также Атомарная фор- формула — в логике высказываний (atom in propositional logic) 16 первого порядка (atom in first-order logic) 37 — основной (ground atom) 59 Атомарная формула (atomic formula) 16, 38 Ацикличный порядок 339 Б-правило 301, 302, 304 Базис эрбрановский (Herbrand base) 60 Басекер (Busacker R. G.) 207, 224 Берстол (Berstall R. M.) 261, 264 Бинарная лок-резольвента (binary lock resolvent) 123 Бинарная резольвента (binary resol- resolvent) 85 см. также Резольвента Бинарный парамодулянт (binary pa- ramodulant) 165 Бледсоу (Bledsoe W. W.) 53, 72, 102, 125, 126, 130, 156, 199, 201, 268, 269 Блек (Black F.) 227, 264 Бойер (Boyer R. S.) 53, 72, 102, 122, 126, 127 Боковой дизъюнкт (side clause) 130 упорядоченный (side ordered clause) 139 — узел (side node) 172 Более ограничительная подстановка (more restrictive substitution) 198 Брайс (Brice C.) 268, 269 Бранд (Brand D.) 169 Буль (Boole G.) 12 Ван (Wang H.) 72 Вариант (variant) 180 Вейсман (Weissman C.) 272, 282, 288 дерхний дизъюнкт (top clause) 130 — узел (top node) 145 Ветвь (branch) 172 Borepa (Voghera N.) 73 Вопрос, допускающий ответ (answerab- (answerable question) 241 Вригт (Wright G. H. von) 269, 270 Вулф (Wolf A. K-) 227, 264 Входная парамодуляция (input para- modulation) 169 — резолюция (input resolution) 132 Входное опровержение (input refutati- refutation) 132 Входной дизъюнкт (input clause) 132 Вывод (deduction) 78, 292 — входной (input deduction) 132 — единичный (unit deduction) 132 — линейный (linear deduction) 130 — примитивный (primitive deduction) 248 — с поддержкой (set-of-support deduc- deduction) 111, 219 — 5-входной (S-input deduction) 132 Выводящий узел (inference node) 65 АЛФАВИТНЫЙ УКАЗАТЕЛЬ 351 Выполнимая формула (satisfiable for- formula) 21, 42 Выполнимость в логике высказываний (satisfability in propositional logic) 21 — — — первого порядка (satisfabi- (satisfability in first-order logic) 42 Выражение основное (ground expressi- expression) 59 Высказывание (proposition) 16 — составное (compound proposition) 16 Высота решения 318 — системы уравнений в термах 318 — терма 317 Галил (Galil Z.) 72 Гелернтер (Gelernter H.) 268, 270 Генки и (Henkin L.) 268, 270 Генцен (Gentzen G.) 7, 11, 292, 313 Гилмор (Gilmore P. С.) 9, 5?, 53, 68, 69, 72 Гильберт (Hilbert D.) 9, 32, 49, 52, 268, 270 Гиперпарамодуляция (hyperparamodu- lation) 166 —, полнота (completeness of hyperpa- ramodulation) 167 Гиперрезолюция (hyperresolution) 109 — отрицательная (negative hyperreso- hyperresolution) 110 — положительная (positive hyperreso- hyperresolution) 109 Глубина терма 308 Граница глубины (depth bound) 147 Граф ориентированный (directed graph) 207 Граф-схема (flowchart) 205 Грин Б. (Green В., Jr.) 227, 264 Грин К- (Green С.) 227, 231, 233, 234, 242, 264 Гулд (Gould W. Е.) 268, 270 Давыдов Г. В. 99, 302, 313 Данцин Е. Я- 72 Дарлингтон (Darlington J. L.) 160, 176, 227, 265, 268, 270 Девис (Davis M.) 9, 53, 54, 69, 72, 75, 179, 184, 201, 202, 268, 270 Дегтярев А. И. 169 Дедуктивный поиск ответов на вопросы (deductive question answering) 227— 242 Дерево вывода (deduction tree) 79, 87, 294 см. также Вывод — поиска вывода 294 Дерксен (Derksen J.) 268, 269 Дизъюнгег (clause) 55 Дизъюнкт боковой (side clause) 130 — верхний (top clause) 130 — входной (input clause) 132 — единичный (unit clause) 55 — жизненный (vital clause) 248 — описывающий (describing clause) 210 — основной (ground clause) 59 — отрицательный (negative clause) 109 — положительный (positive clause) 109 — пустой (empty clause) 55 — смешанный (mixed claused) 109 — упорядоченный (ordered clause) 113 боковой (side ordered clause) 139 — — неотрицательный (nonnegative ordered clause) 118 — — неположительный (nonpositive ordered clause) 118 — — отрицательный (negative ordered clause) 118 — — положительный (positive ordered clause) 118 — — редуцируемый (reducible orde- ordered clause) 137 — — центральный (center order clause) 139 — центральный (center clause) 130 — г-литерный (/--literal clause) 55 Дизъюнкт-ответ (answering clause) 231 Дизъюнкт-посылка (parent clause) 85 Дизъюнктивная нормальная форма (di- (disjunctive normal form) 23 Дизъюнкция (disjunction) 17, 23 Диксон (Dixon J.) 162, 176, 222, 224 Дистрибутивные законы (distributive laws) 22 Доказательство (proof) 13, 78 Драгалин А. Г. 317, 325 Дрейпер (Draper N. R.) 156 Единичная парамодуляция (unit para- modulation) 169 — резолюция (unit resolution) 132 — склейка (unit factor) 85 Единичное опровержение (unit refuta- refutation) 132 Единичный вывод (unit deduction) 132 — дизъюнкт (unit clause) 55 Ейтс (Yates R.) 53, 72, 130, 156 Жизненная переменная (vital variable) 248 Жизненный дизъюнкт (vital clause) 248 Задача изоморфизма графов (graph isomorphism problem) 188—190
352 АЛФАВИТНЫЙ УКАЗАТЕЛЬ Задача о завершении работы (ter- (terminating problem) 204, 215—218 — — правильности (correctness prob- problem) 204, 220—221 реакции (response problem) 204, 215-218 — —■ специализации (specialization problem) 204, 222—224 — об обезьяне и банане (monkey-bana- (monkey-banana problem) 234—235 — — эквивалентности (equivalence problem) 204, 220—221 Заключение теоремы (conclusion of theorem) 26 Законы ассоциативные (associative laws) 22 — де Моргана (De Morgan's laws) 22 — дистрибутивные (distributive laws) 22 — коммутативные (commutative laws) 22 Закрытое псевдосемантическое дерево (closed pseudosemantic tree) 192 — семантическое дерево (closed sema- semantic tree) 65 Зиберт (Sibert E. E.) 161, 176 Значение истинностное (truth value) 16 Избыток литер (excess literal parame- parameter) 125 Индивидный символ (individual sym- symbol) 36 см. также Константа Интерпретация в логике высказываний (interpretation in propositional lo- logic) 18 — — — первого порядка (interpreta- (interpretation in first-order logic) 39 — частичная (partial interpretation) 65 Иохельсон (Iohelson J.) 10 Истина при интерпретации (truth un- under an interpretation) 18, 39 Истинностная таблица (truth table) 19 Истинностное значение (truth value) 16 Исчисление 292 — благоприятных наборов 301, 302 — для нахождения первообразных 292 — задач на построение 295 Йенсен (Jensen D.) 268, 270 Кальмар (Kalmar L.) 315, 324 Кангер (Kanger S.) 296—298, 313 Карсон (Carson D. F.) 53, 73, 102, 111, 127, 133, 156, 176, 199, 202 Квантор всеобщности (universal quan- quantifier) 37 Квантор, область действия (scope of quantifier) 37 — существования (existential quanti- quantifier) 37 Клаш семантический (semantic clash) 105 — —• упорядоченный (ordered seman- semantic clash) 115 Клини (Kleene S. C.) 32, 49, 67, 295, 313, 322, 325 Кнут (Knuth D. E.) 67, 72 Ковальский (Kowalski R.) 53, 63, 72, 98, 100, 102, 127, 128, 130, 135, 138, 156, 166, 176, 268, 270, 326, 332 Комбинация подстановок (combinati- (combination of substitutions) 182 Коммутативные законы (commutative laws) 22 Композиция подстановок (composition of substitutions) 81 Конечный узел (terminal vertex) 207 Конивер (Koniver D.) 10, 199, 202 Константа (constant) 36 Контрарная пара (complementary pair) 64 Контрольная формула (testing formula) 208 Контрольный предикат (testing predi- predicate) 208 Конъюнктивная нормальная форма (conjunctive normal form) 23 Конъюнкция (conjunction) 17, 23 Копия (copy) 180 Корфаг (Korfhage R. R.) 49 Крайзель (Kreisel Q.) 242, 291, 295, 313 Крипке (Kripke S.) 269, 270 Крисси (Crissy B.) 10 Куам (Quam L. H.) 272, 282, 288 Куинлен (Quinlan J. R.) 171, 176 Курьеров Ю. H. 72, 330, 332 Кюнер (Kuehner D.) 53, 72, 102, 127, 130, 135, 138, 156, 268, 270 Лавленд (Loveland D. W.) 53, 73, 102, 127, 130, 135, 138, 156, 179, 184, 201 Лайтстоун (Lightstone A. H.) 14, 15 Лакхем (Luckham D.) 53, 73, 102, 127, 130, 156 Левин (Levin M. I.) 272, 282, 288 Лейбниц (Leibniz G. W.) 9, 52 Лемма Кёнига (Konig's lemma) 67 — подъема (lifting lemma) 89 Ленгфорд (Langford С. Н.) 269, 270 Ли (Lee R. С. Т.) 7, 205, 222, 224, 227, 234, 242, 265, 266 Линдсей (Lindsay R. К.) 228, 265 алфавитный указатель 353 Линейная парамодуляция (linear para- modulation) 174—175 , полнота (completeness of linear paramodulation) 175 — резолюция (linear resolution) 130 — —, полнота (completeness of linear resolution) 141 — 143 Линейный вывод (linear deduction) 130 ЛИСП (LISP) 205, 269 Литера (literal) 23 —• основная (ground literal) 59 ■— отрезаемая (literal resolved upon) 85 — парамодуляции (paramodulation upon literal) 65 Логика высказываний (propositional logic) 16—32 — высшего порядка (higher-order lo- logic) 268 — модальная (modal logic) 268—269 — первого порядка (first-order logic) 35—49 Логические связки (logical connectives) 16 Логическое следствие в логике выска- высказываний (logical consequence in propositional logic) 25 — — — — первого порядка (logical consequence in first-order logic) 43 Ложь (false) 16 — при интерпретации (false under an interpretation) 18, 29 Лок-вывод (lock deduction) 124 Лок-резольвента (lock resolvent) 123 — бинарная (binary lock resolvent) 123 Лок-резолюция (lock resolution) 122 —, полнота (completeness of lock reso- resolution) 125—126 лок-склейка (lock factor) 123 лок-стратегия 329 лофери (Laughary К.) 227, 264 луккези (Lucchesi С. L.) 268, 270 льюис (Lewis С. I.) 269, 270 Метапеременная 297 Метод Девиса и Патнема (method of Davis and Putnam) 69 ■ — обобщенный (generalized method of Davis and Putnam) 200 насыщения уровней (level-satu- (level-saturation method) 96 — поиска в глубину (depth-first met- method) 147 модифицированный (modi- (modified depth-first method) 149 ширину (breadth-first method) 145 — резолюций (resolution principle) 77, 85 — умножения (multiplication method) 31 Методы поиска вывода глобальные 299 —• локальные 299 Минкер (Minker J.) 10, 269 Минус-нормализация 296 Минус-правила 296 Минц Г. Е. 99, 296, 302, 313, 317 Множество атомов (atom set) 60 см. так- также Эрбрановский базис — констант (constant set) 59 — поддержки (set of support) 111, 219 — рассогласований (disagreement set) 82 Модальная логика (modal logic) 268 Модель в логике высказываний (model in propositional logic) 21 первого порядка (model in first-order logic) 42 Модифицированный метод поиска в глубину (modified depth-first met- method) 149 Модус поненс (modus ponens) 34 Моррис (Morris J. R.) 161, 176 Мышление «обратной волной» (thinking backward) 110 — «прямой волной» (thinking forward) 110 Макилрой (McIIroy M. D.) 179, 184, 202 Маккарти (McCarthy J.) 205, 224, 227, 234, 265, 268, 270, 272, 282, 288 Манна (Manna Z.) 10, 204, 224, 242, 261, 265 Маринов (Marinov V.) 268, 271 Маслов СЮ. 72, 99, 291, 296—299, 302—304, 308, 313, 326—328, 331, 332 Матрица (matrix) 44 Мельцер (Meltzer В.) 53, 73, 102, 127, 159, 176 ндельсон (Mendelson E.) 14, 32, 49, Ме322, 326 Наиболее общий унификатор (most general unifier) 81 Написание программ (programm writing 228 Начальный узел (initial vertex) 207 Невыполнимая формула (unsatisfiable formula) 21, 42 Необщезначимая формула (invalid for- formula) 20 Неотрицательный упорядоченный дизъ- дизъюнкт (nonnegative ordered clause 118
354 АЛФАВИТНЫЙ УКАЗАТЕЛЬ (АЛФАВИТНЫЙ УКАЗАТЕЛЬ 355 Неположительный упорядоченный дизъюнкт (nonpositive ordered clause) 118 Непосредственный наследник узла (im- (immediate successor node) 145 Непротиворечивая формула (consistent formula) 21, 42 Нилссон (Nilsson N. J.) 11, 15, 145, 156, 242, 265 Норгела С. А. 296, 297, 313 Нормальная форма (normal form) 23 дизъюнктивная (disjunctive nor- normal form) 23 конъюнктивная (conjunctive no- normal form) 23 предваренная (prenex normal form) 44 Нортон (Norton L.) 113, 117, 127, 176, 268, 270 Ньюэл (Newell A.) 11, 15, 314, 326 Область действия квантора (score of a quantifier) 37 Обобщенный метод Девиса и Патнема (generalized Davis and Putman's me- method) 200 — поддизъюнкт 328 Обратный метод поиска вывод 301 Общезначимая формула (valid formula) 20, 42 Общезначимость (validity) 20, 42 —■ в логике высказываний (validity in propositional logic) 20 первого порядка (validity in first-order logic) 42 Опд-стратегия 328 Описывающая формула (describing for- formula) 210 Описывающий дизъюнкт (describing clause) 210 Определение программы (definition of program) 207 Опровергающая подстановка (refuting substitution) 182 Опровергающий узел (failure node) 65 Опровержение входное (input refutati- refutation) 132 — единичное (unit refutation) 132 Оревков В. П. 99, 302, 304, 308, 313, 315, 326 Ориентированный граф (directed graph) 207 Основная литера (ground literal) 59 — подстановка (ground substitution) 80 Основное выражение (ground expression) 59 Основной атом (ground atom) 59 Основной дизъюнкт (ground clause) 59 — пример (ground instance) 60 — терм (ground term) 59 Отображение направленной инцидент- инцидентности (directed incidence mapping) 207 Отождествление влево (merging left) 138 — вниз (merging low) 123 Отрезаемая литера (literal resolved upon) 85 Отрицание (negation) 17 Отрицательная гиперрезолюция (nega- (negative hyperresolution) 110 Отрицательный дизъюнкт (negative clause) 109 упорядоченный (negative ordered clause) 118 Оценочная функция (evaluation func- function) 152 П-противоречивость (S-unsatisfability) 180 Парамодулянт (paramodulant) 164, 165 — бинарный (binary paramodulant) 165 Парамодуляция (paramodulation) 164 — входная (input paramodulation) 169 — единичная (unit paramodulation) 169 Парк (Park D.) 261, 265 Патерсон (Paterson M. S.) 99 Патнем (Putnam H.) 9, 53, 54, 69, 72, 75 Пеано (Peano G.) 9, 52 Переменная (variable) 36 — жизненная (vital variable) 248 — свободная (free variable) 37 — связанная (bound variable) 37 Петер (Peter R.) 326 Петжиковский (Petrzykowski T.) 268, 270 Подвыражение (subexpression) 60 Подстановка (substitution) 80 — более ограничительная (more rest- restrictive substitution) 198 — несовместимая (inconsistent substi- substitution) 182 — опровергающая (refuting substituti- substitution) 182 — основная (ground substitution) 80 — пустая (empty substitution) 80 — совместимая (consistent substitution) 182 Подстановочная противоречивость (su- bstitutively unsatisfiability) 180 Подформульность 295 Поиск в дереве (tree searching) 143 Пойа (Polya Q.) 317, 326 Полное семантическое дерево (complete semantic tree) 64 Полнота гиперпарамодуляции (comple- (completeness of hyperparamodulation) 167 — линейной парамодуляции (complete- (completeness of linear paramodulation) 175 — — резолюции (completeness of li- linear resolution) 141—143 — лок-резолюции (completeness of lock resolution) 125—126 — метода резолюции (completeness of resolution principle) 90 — резолюции для получения ответов — на вопросы (completeness of resolu- resolution for deriving answers) 241 — стратегии поддержки (completeness of set-of-support strategy) 111 — OL-резолюции (completeness of OL- resolution) 143 — Р-гиперпарамодуляции (complete- (completeness of P-hyperparamodulation) 167 — Р/-резолюции (completeness of PI- resolution) 108 Положительная гиперрезолюция (posi- (positive hyperresolution) 109 Положительный дизъюнкт (positive cla- clause) 109 упорядоченный (positive ordered clause) 118 Порождение замкнутого псевдосеманти- псевдосемантического дерева (generation of a clo- closed pseudosemantic tree) 195 — положительных гиперрезольвент (generation of a positive hyperresol- vent) 119 Постулат (postulate) 26 Посылки (premises) 26 Правило допустимое 294 — однолитерных дизъюнктов (one-li- (one-literal rule) 69, 77 — расщепление (splitting rule) 70, 199 — сечения 293 — тавтологии (tautology rule) 69 — типа сечения 295 — трансформации (rewriting rule) 171 — чистых лнтер (pure-literal rule) 69 Правильно построенная формула (well- formed formula) 17 Правиц Д. (Prawitz D.) 73, 179, 184, 199, 201, 295, 297, 300, 313 Правиц X. (Prawite H.) 73 Предваренная нормальная форма (pre- (prenex normal form) 44 Предикат (predicate) 35 — доступа (access predicate) 210 — контрольный (testing predicate) 208 Преобразование формул в предварен- яую нормальную форму (transfor- (transforming formulas into prenex normal form) 46 Префикс (prefix) 44 Применение теоремы Эрбрана (impleme- (implementation of Herbrand's theorem) 68 Пример (instance) 81 — основной (ground instance) 60 Примитивная резольвента (primitive resolvent) 248 — резолюция (primitive resolution) 247 Примитивный вывод (primitive deduc- deduction) 248 — символ (primitive symbol) 248 Программа «Specializer» 222 Противоречивая формула (inconsistent formula) 20, 42 Противоречивость в логике высказыва- высказываний (inconsistency in propositional logic) 21 — -— — первого порядка (inconsistent су in first-order logic) 42 Противоречие (contradiction) 20 Процедура доказательства (proof pro- procedure) 49 — порождения положительных гипер- гиперрезольвент (procedure to generate prositive hyperresolvents) 119 Псевдосемантическое дерево (pseudo- semantic tree) 191 закрытое (closed pseudosemantic tree) 192 Пустая подстановка (empty substituti- substitution) 80 Пустой дизъюнкт (empty clause) 55 Путь (path) 207 Пфейфер (Pfeiffer P. E.) 14, 15 Развернутый узел (expanded node) 145 Рассел (Russell B.) 32, 49 Рафаэль (Raphael B.) 53, 72, 130, 156, 227, 264 Редукция (reduction) 137 Редукция упорядоченного дизъюнкта (reduction of an ordered clause) 137 Резольвента (resolvent) 85 — бинарная (binary resolvent) 85 — примитивная (primitive resolvent) 248 — упорядоченная (ordered resolvent) 115, 138 — — бинарная (ordered binary resol- resolvent) 114, 138 Резолюция входная (input resolution) 132 — единичная (unit resolution) 132 — линейная (linear resolution) 130 — примитивная (primitive resolution} 247
356 АЛФАВИТНЫЙ УКАЗАТЕЛЬ Резолюция с ограничением на перемен- переменные (variable-constrained resolution) 186 поддержкой (set-of-support re- resolution) 111, 219 — семантическая (semantic resolution) 102—109 Рейтер (Reiter R.) 53, 73, 113, 127, 130, 156 Решение задач (problem-solving) 228 Робинсон Г. (Robinson G. A.) 53, 73, 102, 111, 127, 133, 156, 161, 165, 166, 176, 199, 202 Робинсон Дж. (Robinson J. A.) 9, 11, 53, 63, 73, 76, 100, 102, 127, 161, 176, 179, 268—270 Саати (Saaty T. L.) 207, 224 Саймон (Simon H.) 227, 265, 314, 326 Сандевол (Sandewall E.) 269, 271 Сатурированность 309 Свифт (Swift J.) 324 Свободная переменная (free variable) 38 Связанная переменная (bound variable) 38 Связки логические (logical connectives) 16 Сейфир (Safier F.) 227, 265 Секвенция 293 Семантическая резолюция (semantic resolution) 102—109 Семантический клаш (semantic clash) 105 Семантическое дерево (semantic tree) 64 — — закрытое (closed semantic tree) 65 — ■— полное (complete semantic tree) 64 Сиклосси (Siklossy L.) 268, 271 Сильная полнота 326 Символ индивидный (individual symbol) 36 — примитивный (primitive symbol) 248 — функциональный (function symbol) 36 — /i-местный предикатный («-place pre- predicate symbol) 36 — — функциональный («-place fun- function symbol) 36 Синтез программ (program-synthesizing) 242—264 Система Бейсбол (Baseball system) 227 ■— Дедуком (Deducom system) 228 — уравнений в термах 317 — — — — насыщенная 318 — PROW (PROW system) 228 Склейка (factor) 85 — единичная (unit factor) 85 Склейка упорядоченная (ordered factor) 114, 138 Скулемовская стандартная форма (Sko- lem standard form) 54 — функция (Skolem function) 54 Слисенко А. 0-. 99, 302, 313 Слэйгл (Slagle J. R.) 10, 11, 15, 53, 73, 102, 113, 117, 127, 145, 151, 156, 162, 166, 176, 177, 199, 202, 227, 228, 234, 265, 268, 271 Смешанный дизъюнкт (mixed clause) 109 Снайдер (Snyder D. P.) 269, 271 Совместимые подстановки (consistent substitutions) 182 Составное высказывание (compound pro- proposition) 16 Стандартная форма (standard form) 54 Стартовый узел (start vertex) 207 Стетмен (Statman R.) 314, 325, 326 Столл (Stoll R.) 14, 15, 32, 49 Стоп-дизъюнкт (halting clause) 216 Стоп-предикат (halting predicate) 210 Стоп-узел (halt vertex) 207 Стратегия выбрасывания (deletion stra- strategy) 96, 150 — поддержки (set-of-support strategy) 109, 111 , полнота (completeness of set-of- support strategy) 111 — предпочтения кратчайших (дизъюн- (дизъюнктов) (fewest-literal preference stra- strategy) 151 — расклеек 328 Существенная склейка 328 Схема индукции (induction scheme) 213—215 Тавтология (tautology) 20, 64 Тейт (Tait W. W.) 317, 326 Теорема (theorem) 13, 26 — унификации (unification theorem) 84 — Эрбрана (Herbrand's theorem) 66, 67 Теория поиска вывода 292 Терм (term) 36 — основной (ground term) 59 Трахтенброт Б. А. 201 Тьюринг (Turing A. M.) 52, 73 Уайтхед (Whitehead A. N.) 32, 49 Узел (node, vertex) 207 — боковой (side node) 172 — верхний (top node) 145 — выводящий (inference node) 65 — конечный (terminal vertex) 207 — начальный (initial vertex) 207 — опровергающий (failure node) 65 — развернутый (expanded node) 145 АЛФАВИТНЫЙ УКАЗАТЕЛЬ 357 Узел стартовый (start vertex) 207 Унификатор (unifier) 81 — наиболее общий (most general unifi- unifier) 81 Уолдингер (Waldinger R. J.) 10, 227, 234, 242, 261, 265, 266 Уос (Wos L.) 53, 73, 102, 111, 127, 133, 156, 161, 165, 166, 176, 199, 202 Упорядочение предикатных символов (ordering of predicate symbols) 104 Упорядоченная резольвента (ordered resolvent) 115, 138 бинарная (ordered binary resol- resolvent) 114, 138 — склейка (ordered factor) 114, 138 Упорядоченное ядро (ordered nucleus) 116 Упорядоченный дизъюнкт (ordered cla- clause) 113 редуцируемый (reduced ordered clause) 137 — семантический клаш (ordered seman- semantic clash) 115 — электрон (ordered electron) 116 Условие доступа (access condition) 210 Усовершенствованный алгорифм син- синтеза программ (improved program- synthesizing algorithm) 261 Устранение сечений 293 Уэгмен (Wegman M. N.) 99 Фаррел (Farrell С.) 156, 268, 271 Фейгенбаум (Feigenbaum E.) 11, 15, 269, 271 Фейс (Feys R.) 269 Фельдман (Feldman J.) 11, 15 Флойд (Floyd R. W.) 204, 224 Форма предваренная нормальная (pre- nex normal form) 44 — стандартная (standard form) 54 — — скулемовская (Skolem standard form) 54 Формула (formula) 17 — атомарная (atomic formula) 16, 38 — выполнимая (satisfiable Formula) 20, 42 — контрольная (testing formula) 208 — невыполнимая (unsatisfiable formu- formula) 20, 42 — необщезначимая (invalid formula) 20, 42 — непротиворечивая (consistent for- formula) 20, 42 — общезначимая (valid formula) 20, 42 — описывающая (describing formula) 210 — оценочная (evalution formula) 152 Формула правильно построенная (well- formed formula) 17 — противоречивая (inconsistent for- formula) 20, 42 Функциональный символ (function sym- symbol) 36 Функция (function) 15 — оценочная (evaluation function) 152 — скулемовская (Skolem function) 54 — эвристическая оценочная (heuristic evaluation function) 152 Футамура (Futamura Y.) 222, 224 Хант (Hunt E. B.) 171, 176 Характеристика (feature) 151 Харт (Hart T.) 53, 72, 130, 156, 272, 282, 288 Хейес (Hayes P.) 53, 63, 72, 100, 128, 326, 332 Хеншен (Henschen J. L.) 268Л271 Хинмен (Hinman P. G.) 179, 184, 202 Ходжес (Hodges L.) 10 Xy (Hu J.) 10 Хюэ (Huet G. P.) 268, 271 Цейтин Г. С. 295, 314 Центральный дизъюнкт (center clause) 130 — — упорядоченный (center ordered clause) 139 Частичная интерпретация (partial in- interpretation) 65 Чень С. К. (Chang S. С.) 10 Чень Ч. (Chang С. L.) 7, 53,73, 103, 133, 156, 166, 177, 179, 184, 186, 202, 205, 222, 224, 242, 265, 272, 288 Чёрч (Church A.) 52, 73 Чинланд (Chinlund Т. J. M.) 179, 184, 202 Чомскнй (Chomsky С.) 227, 264 Шанин Н. А. 297 Шелла (Shalla L.) 176, 199, 202 Шоу (Shaw J.C.) 314, 326 Эвристики поиска в дереве (heuristics in tree searching) 149 Эвристическая оценочная функция (he- (heuristic evaluation function) 152 см. также Оценочная функция Эдварс (Edwards D. J.) 272, 282, 288 Эквивалентность входной и единичной резолюции (equivalence of unit and input resolution) 134
358 АЛФАВИТНЫЙ УКАЗАТЕЛЬ Электрон (eletron) 105 — скрытый 331 — упорядоченный (ordered electron) 116 Эндрюс (Andrews P. В.) 268, 271 Эрбран (Herbrand J.) 9, 11, 52, 53 Эрбрановский базис (Herbrand base) 60 см. также Множество атомов — универсум (Herbrand universe) 59 Эрнст (Ernst G. W.) 11, 15, 199, 202 Ядро клаша (nucleus of a clash) 105 — — упорядоченное (ordered nucleus of a clash) 116 Якобы П-противоречивое множество (alleged S-unsatisfiable set) 181 см. также П-противоречивое множество с-правило 295 £-интерпретация (^-interpretation) 162 ^-атом 308 ^-набор 301 ^-подстановка 304 //-интерпретация (//-interpretation) 60 см. также Интерпретация я-местиый предикатный символ (n-place predicate symbol) 36 п-местный функциональный символ (я-place function symbol) 36 О/-вывод (O/-deduction) 117 0/-клаш (O/-clash) 115 О/-резольвента (O/-resolvent) 116 OL-вывод (OL-deduction) 139 OL-опровержение (OL-refutation) 139 Р-гиперпарамодулянт (P-hyperparamo- dulant) 166 Р/-ВЫВОД (^/-deduction) 107 Pl-клаш (P/-clash) 105 ^/-резольвента (P/-resolvent) 106 r-литерный дизъюнкт (r-literal clause) 55 S-входной вывод (S-input deduction) 132 V-гиперрезолюция (V-hyperresolutionj 186 V-парамодулянт (V-paramodulant) 190 V-парамодуляция (V-paramodulation) 190 V-резольвента (V-resolvent) 185 V-резолюция (V-resolution) 184 — с множеством поддержки (set-of-sup- port V-resolution) 186 V-склейка (V-factor) 185 а-дизъюнкт 320 а-истинная литера 320 П-стратегия 329 — слабая 329 S-набор 302^ Ч. Чень, Р. Ли МАТЕМАТИЧЕСКАЯ ЛОГИКА И АВТОМАТИЧЕСКОЕ ДОКАЗАТЕЛЬСТВО ТЕОРЕМ Редактор В. В. Донченко. Технический редактор С. fl. Шкляр. Корректоры О. М. Кривенко, В. П. Сорокина. ИБ 11579 Сдано в набор 02.07.82. Подписано к печати 14.02.83. Формат 60х90'/ц. Бумага тип № 2. Литературная гарнитура. Высокая печать. Условн. печ. л. 22,5. Уч-изд. л. 25,57. Ти- Тираж 8500 экз. Заказ № 821/112. Цена 2 р. 20 к. Издательство «Наука» Главная редакция физико-математической литературы 117071, Москва, B-7I, Ленинский проспект, 15 Ордена Октябрьской Революции и ордена Трудового Красного Знамени Первая Образцовая типография имени А. А. Жданова Союзполиграфпрома при Государственном комитете СССР по делам издательств, полиграфии и книжной торговли. Москва, М-54, Валовая, 28. Отпечатано в Подольском филиале ПО «Периодика» Союзполиграфпрома при Государственном комитете СССР по делам издательств, полиграфии и книжной торговли, г. Подольск, ул. Кирова, 25