Вы находитесь на странице: 1из 165

STUDIES IN COMPUTER SCIENCE

AND ARTIFICIAL INTELLIGENCE

» PRINCIPLES OF LOGIC
AND LOGIC PROGRAMMING
G. METAKIDES
European Commission Brussels, Belgium

A. NERODE
Mathematical Sciences Institute
Cornell University
Ithaca, NY, USA

With the cooperation of

A. SINACHOPOULOS
Universite Libre de Bruxelles
Belgium

1996

ELSEVIER

AMSTERDAM - LAUSANNE - NEW YORK - OXFORD - SHANNON - TOKYO


ч

«ДД Г. МЕТЛКИДЕС
7 ’........А. НЕРОУД
, * . Л <-i, .- •: і . » » « ‘ ■. ' -,■ ,»4<« . \Ц ітД •« »-’•■, • • і»і

•{- М.Ч.!,. * •ЇКЧ. “Н ; •*& ■ Ч"- '"‘лкЛ^.’’


'. .. ч ■■■ ’м.р ■

Л
ПРИНЦИПЫ ЛОГИКИ
И ЛОГИЧЕСКОГО
ПРОГРАММИРОВАНИЯ.
' Перевод с английского • ' ;i l !! В. А.
Захарова, С. Селезневой и В. В. Спануполс^
■■ \ под редакцией
В..лЖ Садовничего и В. А. Захарова

U? .-Г ;'
W'%- -і- ' ■■
■ ИЗДАТЕЛЬСТВО «ФАКТОРИАЛ» ■ $ г<. «е и д ;■ .• ?д;
МОСКВА, 1998
Издание осуществлено по инициативе и при поддержке Московского
государственного университета им. М. В. Ломоносова

ББК 22.19 ~\* М 54 Метакидес Г., Нероуд А.


УДК 519^68 41л * -Ч Принципы логики и логическое
программирование / Пер. с англ, под
Г>- ’• 7 г" ред. к.ф.м.н В. А. Захарова и акад. В. А.
Садовничего. — М.: Изд-во
«Факториал», 1998.— 288 с. — ISBN 5-88688-037-2.

Книга известных специалистов в области математической логики и логического


программирования (Греция, США). Излагаются основные понятия и принципы ма-
тематической логики. Основное внимание уделяется вопросам применения языка
математической логики для представления знаний и формальным методам доказа-
тельства теорем с использованием семантических таблиц и резолютивного вывода. На
примере языка ПРОЛОГ рассматриваются принципы логического программирования.
Подробно анализируется механизм вычислений и методика проектирования
логических программ. Изложение отличается методическими достоинствами — книга
написана в хорошем стиле, не требует специальных предварительных знаний,
содержит большое количество примеров и задач.
Может быть рекомендована в качестве учебного пособия для программистов
разной квалификации, специалистов по искусственному интеллекту и для всех
интересующихся математической логикой, а также теорией и практикой логического
программирования.

-.SiAA'i .) <'.V ■\\


Научное издание •, , ,. ,. , \
Метакидес Г., Нероуд А.
Принципы логики и логического программирования 4

Формат 60 x 90/16. Гарнитура литературная. Усл. печ. л. 18. Подписано к печати


12.9.1998. Тираж 1000 экз.
Издательство «Факториал», 117449, Москва, а/я 331; ЛР № 063537 от 22.07.1994.
Оригинал-макет подготовлен с использованием макропакета АР-Т^Х.
Отпечатано с готовых диапозитивов в ППП «Типография «Наука» [21099 Москва,
Шубинский пер., 6. Заказ 31
:: ПРЕДИСЛОВИЕ к РУССКОМУ ИЗДАНИЮ

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


учебник, написанный всемирно известными американскими математиками,
ISBN 0-444-81644-5 Copyright © 1996 by © Изд-во Элсивер, 1996
(англ.) Elsiver Science © 1998 МГУ, пер.
ISBN 5-88688-037-2 Translation Copyright на русск. яз., 1998
(русск.) ©1998 by Moscow St.
University. All rights Все права защищены.
reserved.
профессором Корнельского университета, Анилом Нероудом совместно с
признанным специалистом в области логического программирования,
профессором Георгием Метакидесом. Созданная ими книга весьма
необычна, и поэтому нуждается в кратком предисловии, поясняющем
некоторые ее замечательные особенности.
До недавнего времени математическая логика не выходила за пределы
«чистой» математики и обеспечивала только корректность построения
математических теорий. Традиционно считалось, что полноценное
изучение этой математической дисциплины целесообразно начинать лишь
тогда, когда объем и разнообразие математических знаний учащихся
потребуют их упорядочения для того, чтобы осмыслить структуру и
принципы устройства всей математики. Поэтому значительная часть
учебников по математической логики изначально ориентированы на круг
читателей, имеющих достаточно высокую математическую подготовку и
свободно владеющих формальным аппаратом современной математики.
Вполне естественно, что при таких условиях круг людей, знакомых с
методами математической логики, ограничивался выпускниками
математических факультетов.
Но с течением лет положение дел сильно изменилось. По мере развития
информатики, математическая логика раскрыла свой огромным потенциал
практического применения. Совершенствование вычислительной техники
и ее математического обеспечения привело к тому, что круг задач, для
решения которых можно использовать компьютеры, существенно
расширился. Стало ясно, что вычислительные машины можно применять
не только для численных расчетов и чисто математических или
статистических исследований, но и для обработки информации и знаний
самого разного рода. Возникла потребность в разработке такого языка
общения с компьютером, который позволял бы человеку наиболее
естественным и удобным способом представлять знания, относящиеся к
произвольным областям деятельности, и в создании таких методов
обработки данных, которые позволяли бы компьютеру извлекать новые
сведения и давать ответы на вопросы исходя из имеющихся знаний.
Проведенные исследования показали, что для этой цели лучше всего
подходит язык математической логики. Подобно тому, как новые
математические теоремы доказываются на основе изначальных аксиом и
ранее доказанных теорем, новые знания о предметной области могут быть
извлечены из накопленных знаний чисто автоматически при помощи
логических методов вывода. Совершенствование аппарата логического
вывода привело к созданию нового направления в программировании —
логического программирования. Логическое программирование изменило
устоявшиеся представления о
6 ПРЕДИСЛОВИЕ
технологии проектирования компьютерных программ. В самом общем виде
логическая программа представляет собой собрание сведений о
предметной области решаемой задачи, записанных на языке,
приближенным к естественному языку человеческого общения. Обращаясь
к программе с запросами, пользователь может получать все возможные
ответы, логически вытекающие из той совокупности знаний, которыми
располагает логическая программа. Чем полнее и детальнее будет описание
области знаний, к которой относится решаемая задача, тем точнее будут
ответы на поставленные вопросы. Диалог программы с пользователем
теперь становится похожим на обычную беседу учителя с послушным и
аккуратным учеником: учитель наделяет ученика знаниями, а ученик,
опираясь на эти знания, безошибочно решает задачи и отвечает на вопросы.
Поэтому в логическом программировании для решения поставленной зада-
чи нужно всего лишь как можно точнее и детальнее описать, что именно
требуется решить. Если решение задачи существует, то в этом случае
компьютер самостоятельно «догадается», как достичь искомого решения.
Логическое программирование открывает новые возможности
использования компьютера. Теперь мы можем общаться с ним как с
интеллектуальным, хотя и несколько своеобразным, собеседником,
который берет на себя значительную часть работы, связанную с
организацией вычислений программы. Поэтому основное внимание
программиста может быть сосредоточено на самой задаче как таковой, на
формировании тех знаний, которые могут оказаться полезными при ее
решении. В чем секрет таких необычных свойств логического
программирования? Каким образом логика дает возможность компьютеру
решать задачи даже тогда, когда человек не указывает алгоритмов их
решения? В какой форме человеку нужно представить свои знания об
окружающем мире для того, чтобы компьютер мог их понять и сделать из
них выводы, т. е. получить новые знания? Ответы на многие возникающие
вопросы такого рода можно получить, прочитав эту книгу.
Ее авторам удалось преодолеть самую большую трудность, воз-
никающую при написании учебников по математической логике: они
сумели изложить основные принципы и методы этой необычайно
формальной и абстрактной науки на очень простом и общедоступном
уровне, не поступившись при этом строгостью и полнотой картины.
Основная цель книги — объяснить читателям, как можно использовать
аппарат математической логики для решения прикладных задач в самых
разнообразных областях знаний. Поэтому наибольшее внимание авторы
уделяют изучению выразительных возможностей языка математической
логики и эффективных методов доказательства теорем. Один из таких
методов — метод резолюций — позволяет реализовать на практике
концепцию логического программирования, согласно которой
вычислительная программа может быть записана при помощи логических
формул, играющих роль аксиом, а ее вычисление представлено в виде
доказательства
ПРЕДИСЛОВИЕ 7
формулы-запроса. Ознакомившись в первых двух
главах с основными понятиями классической
логики, с устройством и организацией
логического вывода, читатель сможет в третьей
главе без труда разобраться в технологии
проектирования логических программ и
механизме их функционирования.
Для понимания книги не требуется никаких специальных знаний,
выходящих за рамки школьной программы, и она вполне доступна
большинству учащихся выпускных классов российских средних школ. В то
же время в ней в той или иной мере рассмотрены основные понятия
классической логики, подробно описаны принципы и наиболее
существенные особенности логического программирования. Поэтому эту
же книгу можно рекомендовать в качестве учебного пособия по
математической логике и логическому программированию всем тем, кто
хочет получить предварительные сведения об этих разделах математики и
информатики.
Читатель, освоивший эту замечательную книгу, конечно же, не должен
пребывать в праздной уверенности, что он получил исчерпывающее
представление о математической логике и может написать сколь угодно
сложные логические программы. Он овладел лишь ключиком,
открывающим доступ к одному из разделов современной математики, в
котором ему еще предстоит отыскать немало ценных и полезных знаний. И
я надеюсь, что для многих из вас этот ключик окажется поистине золотым.

Академик РАН
В. А. Садовничий
і ' /• ■ Чгл ' ’W
■ ■; ■ . *:<■■ Будущему информатике как мате-
*-У. • І ч.;. матической науке *.
• -'Ь-л !$Г. >'Л.!; *> Время покажет, в какой мере будет справед
ливо обратное.
ч; .и

ВВЕДЕНИЕ t

Логика — это наука, которая изучает, каким образом мы выражаем


мысли, делаем умозаключения, и как все это можно представить
формально. К логическими высказываниями относятся простые
предложения и элементарные умозаключения; они подвергаются анализу
как с позиции их формы, то есть синтаксиса, так и с позиции их
интерпретации, иначе говоря, семантики. Изучается также и взаимосвязь
синтаксиса и семантики.
Первые упоминания о логике содержатся в произведениях ионийских и
эллинских философов и софистов. Однако основателем настоящей логики
как науки считается Аристотель. Первоначальный интерес к логике
постепенно утрачивался по мере распространения римского владычества
над Средиземноморьем. В средние века большинство трудов античных
философов — за исключением Платона и Аристотеля — было утеряно или
уничтожено, и силлогистика Аристотеля была доступна лишь немногим
избранным монахам.
С открытием неевклидовых геометрий и возникновением потребности в
теоретическом обосновании математического анализа интерес к логике
возродился. В 1879 г. Фреге впервые разработал формальный язык для
математики и логики. Однако наибольший стимул к развитию логика
получила в связи обнаружением парадоксов теории множеств и
последующим широким обсуждением их в математическом сообществе.
В 1895 и 1897 годах Кантор опубликовал первую и вторую части своих
исследований по кардинальным и ординальным числам. В этих
исследованиях, составивших первоначальное обоснование теории
множеств, каждая совокупность объектов рассматривалась как особая
сущность, называемая множеством. Но уже в 1897 году Буралли-Форти
обнаружил парадокс в канторовской теории множеств. А в 1899 году сам
Каитор опубликовал сообщение о парадоксе, затрагивающем его теорию
кардинальных чисел. Рассел опубликовал в 1902 году упрощенную форму
того же парадокса, вошедшего в историю математики под названием
«парадокс Рассела». Его сущность такова.
В канторовской теории множеств каждое множество определяется
характеристическим свойством его элементов. Пусть А — множество всех
множеств X", обладающих свойством X $ X,
А={Х\Х<£Х}
9
asa
Но тогда
А є А тогда и только тогда, когда А $ А ’ •- что, очевидно,
ВВЕДЕНИ
образует противоречие. Е

Парадоксы теории множеств вызвали у математиков того времени


большие сомнения и неуверенность относительно хорошего обоснования
математики. Стало понятно также, что создавать по- настоящему
непротиворечивые математические теории, лишенные антиномий, можно
только путем использования строгой формализации математических
понятий и методов. И вот тогда, благодаря настойчивым усилиям
Гильберта (см. Замечание 1.4.1(2)), началось развитие аксиоматического
подхода, и логика приобрела свой современный вид.
Использование и совершенствование вычислительной техники в начале
1950-ых годов привело к пониманию того, что компьютеры можно
применять не только для арифметических вычислений, но также и для
символьных преобразований. Таким образом, первые арифметические
вычислительные программы и первые программы, призванные давать
ответы на простейшие вопросы и доказывать простые теоремы, были
написаны почти одновременно. Основные этапы создания общего метода,
основанного на логике и позволяющего проводить как обработку
предложений, так и символьную манипуляцию, были впервые
осуществлены в 1965 году Робинсоном, разработавшим метод резолюций, а
позднее Ковальским и Колме- роэ, которые предложили использовать
логику непосредственно как язык логического программирования.
В этой книге раскрываются элементарные понятия математической
логики, рассматриваются взаимоотношения и взаимосвязи между логикой и
логическим программированием.
В первой главе описана логика высказываний (PL). Вначале в ней
изучается язык высказываний, а также синтаксис и семантика формул PL.
Далее рассматриваются методы доказательства: метод аксиоматического
доказательства, представленный, главным образом, по причинам
исторического характера, затем метод таблиц Бета, в котором
доказательства сводятся к математическому анализу высказываний, и,
наконец, метод резолюций. В последнем из указанных методов
доказательства представляются в простой, но чрезвычайно эффективной
форме, которая может быть легко реализована в виде программы.
Перечисленные методы доказательств обоснованы соответствующими
теоремами корректности и полноты.
Во второй главе изучается логика предикатов (PrL). В логике предикатов
более подробно изучается структура высказываний, поскольку язык логики
предикатов существенно разнообразнее, нежели язык логики
высказываний. Этот язык содержит кванторы и константы, предикаты и
функции, и поэтому семантика PrL значительно сложнее. Среди прочих
разновидностей семантики языка логики предикатов особо выделяются
эрбрановские интерпретации, поскольку они позволяют проверять
выполнимость предложений PrL,
10 ВВЕДЕНИЕ
используя методы PL. Далее изучаются аксиоматический метод до-
казательства, метод таблиц Бета и метод резолюций. Метод резолюций
вместе с алгоритмом унификации положен в основу логического
программирования. Для обоснования этих методов приводятся со-
ответствующие теоремы корректности и полноты.
В третьей главе речь идет о логическом программировании вообще и о
языке ПРОЛОГ в частности. Здесь рассматривается также механизм
построения вывода в ПРОЛОГе. Логика обеспечивает логическое
программирование и ПРОЛОГ выразительным языком и предоставляет
теоретическое обоснование, гарантирующее правильность полученных
результатов.
Каждая глава содержит примеры и задачи, предназначенные для лучшего
усвоения соответствующих тем. Примеры демонстрируют методику
решения задач, а сами задачи призваны стимулировать личную инициативу
читателя. Книга является самодостаточной, т. е. в ней подробно
раскрываются все основные понятия математической логики, и от читателя
требуются лишь элементарные знания алгебры и анализа. В связи с этим ее
можно рекомендовать студентам любого курса как для самостоятельного
изучения, так и для использования в качестве учебного пособия,
подкрепляющего соответствующий курс лекций. Книга может также
оказаться полезной тем программистам, кто уже имел практический опыт
работы с системами логического программирования, не обладая при этом
специальной теоретической подготовкой по логике, а также всем тем, кто
просто интересуется логикой и логическим программированием. Все темы,
затронутые в этой книге, рассматриваются в перспективе перехода от
логики к логическому программированию. Поэтому доказательства
некоторых теорем, связанных, как правило, с обоснованием полноты
аксиоматического метода, опущены. В тех случаях, когда те или иные
понятия и доказательства выходят за рамки книги и обсуждаются в ней
лишь поверхностно, мы указываем библиографические источники, где они
изложены более полно.
В основу настоящего пособия положена книга, опубликованная первым
автором в Греции в 1992 году; эта книга была написана по материалам
семинаров, посвященным основам логического программирования,
проведенных в Корнелле и Рочестере, США, и Университете Патраса,
Греция.
Пользуясь случаем, авторы отмечают значительный вклад, который
внесла Анета Синахопулос-Сварна в разделы 1.1, 1.8, 2.3, 2.11, 3.2, 3.3, 3.6,
3.8, 3.9, в размещение и расположение общего содержания книги, а также
помощь, которую оказал Георгий Потамиас при написании разделов 3.4, 3.5
и 3.7. Содействие при подготовке всего материала книги оказали также
аспиранты университета Патраса Костас Контогианнис, Спирос Пападакис
и Петрос Петропу- лос. Все программы, включенные в книгу, равно как и
упражнения, были проверены Георгием Потамиасом в системе
программирования TURBO-PROLOG, V.2.O. щи» ЛИ. • і
Hk’r. jk's
jz 4 ‘ Глава 1

•»%.• '
Д/ ЛОГИКА ВЫСКАЗЫВАНИЙ
•” < t »ь<* •••
’’ .'• ;/■■ ■ і?''’"-.•

Мётрои itavrwv хртщатыи аиОрилю( тши


І • j-»
реи битши ест,', тійи 6 є рй битши ovx
есть.
>
• '.і;', is .г: ft pa?
З^'М^ЦЧ'^ФЛ Человек — мера всех вещей; сущест-
вующих — что они существуют; несу-
ществующих — что они не существуют.
.,' , ■(’> • ■■ Лі
Протагор
... ,.ц<-.. \ь-ХТ • ■ г/ -'X th г
■ Ж -.W—’ »< .W
А. .
, § 1.1. Введение ,
//>;» А. 7
До 1850 года математические доказательства основывались на
эксперименте и интуиции. В 1666 году Лейбниц впервые отметил
необходимость создания формального языка, названного им «уни-
версальной характеристикой», который можно было бы использовать в
математических формулировках и методологии. Однако его идеи
опережали свое время. Начало развития формализма в математике
связывается с публикациями Булем, два века спустя, своих трудов
«Математический анализ логики» (1847) и «Законы мышления» (1854).
Свой вклад в создание логического формализма в математике внесли
работы Де Моргана (1847, 1864), Пирса (1867) и Фреге (1879, 1893, 1903).
Публикация же трехтомника Рассела и Уайтхеда «Principle Mathematica»
стала кульминацией этих усилий, так как в нем была представлена
формализующая математику логическая система, в которой теоремы
выводились при помощи логических аксиом и правил.
Расцвет логики как самостоятельной науки пришелся на 20-е годы XX
века и связан с такими именами, как Лукашевич (1878-1956), Леви (1883-
1964), Гёдель (1906-1978), Тарский (1901-1983), Черч (1903-1995) и Клини
(1909-1994).
Начиная с 50-х годов нашего века компьютерная технология столкнулась
с проблемой использования компьютера для символьных преобразований.
Одно из решений этой задачи предлагает функциональное
программирование. Этот стиль программирования был разработан Мак-
Карти и получил широкое распространение в
12 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
США. Другое решение обеспечивает логическое программирование,
созданное, преимущественно, европейскими учеными, в том числе,
Колмероэ и Ковальским. Логическое программирование придало логике
новый импульс. Оно решило многие проблемы, касающиеся строения
логических высказываний, при помощи которых компьютер может
выполнять процедуры вывода заключений и суждений. Логическое
программирование также раскрывает природу и механизмы логических
процедур, выполняемых компьютером.
В первую очередь нам необходимо рассмотреть, каким образом
формализуются логические и математические высказывания. Как мы
увидим в следующих примерах, логические связки являются основными
элементами формализации.
1. Конъюнкция формализуется при помощи символа А. Предположим,
нам известны два свойства некоторого х:
А: х > 3, В: х < 10.
То есть мы знаем, что х больше трех и меньше десяти. Другими словами,
нам известно высказывание

А Л В, V
где логическая связка А соответствует соединительному союзу «и». Таким
образом, высказывание Af\B утверждает, что х > 3 и х < 10, т. е. 3 < х < 10.
2. Отрицание формализуется при помощи символа Например,
рассмотрим высказывание
I. м•
С: 50 делится на 7П
->С обозначает, что 50 не делится на 7. а

3. Дизъюнкция обозначается при помощи символа V. Если D и Е —


высказывания ■».
D-. 60 делится на 6, Е: 60 делится на 5, m
то высказывание ,«•
DVЕ
утверждает, что «60 делится на 6 или 60 делится на 5». Символ V не
является исключающе разделительным, так как 60 является кратным 6 и 5
также, как и 20, не упомянутого в высказываниях D и Е.
4. Импликация «если ..., то ...» обозначается в логике символом —».
Если F и G есть высказывания
F: число а кратно 10, , G: число а кратно 5,
то высказывание
F—* G
утверждает, что «если число а кратно 10, то оно кратно 5». ;
5. Равносильность «...тогда и только тогда, когда ...» обозначается
§1.1. ВВЕДЕНИЕ 13
символом «-». Например, если Н и I есть высказывания
Н: 16 кратно 2, Г. 16 является четным числом,
то формально мы записываем Н <-» I.
Свойства логических связок не одинаковы. В примере о высказываниях
А и В запись А Л В по существу не отличается от записи В Л А. Интуитивно
понятно, что логическая связка V (равно как и Л) должна быть
коммутативной. Однако ответ на вопрос о коммутативности связки —♦
будет отрицательным: высказывание G-»F, «если а кратно 5, то а кратно
10» неверно, так как 15 кратно 5, но не кратно 10. Поэтому нам необходимо
изучить свойства логических связок.
Существуют также различные типы высказываний. Например, вы-
сказывания
ч* П 7J-. с „ ЛЛ
«6 кратно 6»,
к..і «7— простое число», :ч '
■ «рациональное число есть либо 0, либо не равно 0»
являются «верными», «правильными», в то время, как высказывания
«50 — нечетное число»,
z «50 делится на 7»,
«если х — 3, то х — 5»,
У
относятся к числу «неверных», «ошибочных». Наконец, такие вы-
сказывания, как
, «идет дождь»,
-;»■ ,Л- «я голоден»,
«ж равно своему абсолютному значению», иногда являются
«правильными», а иногда — «ошибочными».
Интуитивно понятно, что каждое высказывание имеет некоторую
интерпретацию: оно может выражать истину или ложь, иначе говоря, может
быть истинным или ложным. Но что делает высказывание истинным?
Какова связь между интерпретацией составного высказывания и
интерпретациями высказываний, составляющих его? И какую роль играют
логические связки в интерпретациях? Нам необходимо изучить
интерпретации высказываний и определить роль логических связок в этих
интерпретациях.
Наша собственная логика позволяет нам принимать решения и делать
выводы. Например, мы говорим «если х > 3, то х > 0», или, формально,
ft i’i і-г У* і ft».' * • у і (ж > 3) -> (ж > 0). .і
Давайте предположим, что х>3. Тогда г>0. Какое правило позволяет нам
заключать, что х > 0 в случае, когда высказывание х > 3 истинно? И
обладает ли это правило всеобщностью, другими словами, если М N
истинно и М истинно, то всегда ли истинно W?
Обратимся к другому примеру. Мы знаем, что для того, чтобы пойти в
кино, нужно иметь деньги на билет. Таким образом,

иду в кино —> имею деньги на билет. (1)


14 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
Давайте предположим, что мы не имеем достаточно денег на <Йілет, т. е.
р'
-»(имею деньги на билет). (2)
Можем ли мы пойти в кино? Каково влияние отрицания? Какой вид будет
иметь (1) с отрицанием? г

-> (иду В кино) —* -1 (имею деньги на билет)? - ■ «?« :• W


Или ^ИДу в кино имею деньги на билет)?
’ Или -> (имею деньги на билет) —> -і (иду в кино)?
И какое заключение истинно, если истинны (1) и (2)?
Для того, чтобы ответить на эти вопросы, нам нужно изучить синтаксис
высказываний и правила, которые определяют, когда и как мы можем
выводить истинные заключения, располагая в качестве посылок
имеющимися в распоряжении данными. Логика высказываний, равно как и
более сложная логика предикатов, исследует эти вопросы.
В главе 1, посвященной логике высказываний (PL), мы изучим
высказывания PL с точки зрения их синтаксиса и семантики. Мы также
исследуем методы получения заключений из посылок и определим формы
высказываний PL, необходимые для представления знаний, разрешающих
процедур и автоматического доказательства теорем в логическом
программировании.
Щ s.i-
... . •

§ 1.2 Язык логики высказываний г щ

Алфавит, синтаксис и семантика

Язык логики высказываний (PL) является весьма строгим языком. В


терминах этого языка мы формализуем те части повседневной речи,
которые необходимы для представления логических и математических
понятий. Имея формализованные в этом языке высказывания, мы затем
исследуем их в соответствии с их структурой и ИСТИННОСТЬЮ. . •* IV .- •
і» .

Каждый формальный язык задается:


а) алфавитом, содержащим все символы языка;
б) синтаксисом, определяющим, каким образом из символов фор-
мируются высказывания;
в) семантикой, при помощи которой интерпретируется элементы языка
путем приписывания значений символам алфавита.
Алфавит языка логики высказываний состоит:
1) из пропозициональных символов: А, А,, А2,..В, В2,... ;
2) из логических связок: V, А, <-+;
3) из запятой и скобок: «,» и ♦(», «)».
Логические связки интуитивно соответствуют частицам и союзам,
которые мы используем в повседневной речи. Соответствие между ними
§1.1. ВВЕДЕНИЕ 15
таково:
V, дизъюнкция — или;
А, конъюнкция — и;
—импликация — если ..., то ...;
«—>, эквивалентность— ...тогда и только тогда, когда ...; отрицание —
не.
Произвольная последовательность символов, принадлежащих алфавиту
языка, называется выражением. Например, A VVA, А V В, «-+А —
выражения языка логики высказываний. Некоторые правильно
построенные выражения рассматриваются синтаксисом как высказывания.
В следующем определении 1.2.1 вводится понятие высказывания и, тем
самым, описываются законы синтаксиса языка логики высказываний.
Определение 1.2.1 (индуктивное определение высказывания). 1.
Пропозициональные символы являются высказываниями и называются
атомарными высказываниями или атомами.
2. Если а и г — высказывания, то выражения (а Л т), (а V т), ((т—>т),
(->а) — также высказывания; их называют состав
ными высказываниями.
3. Выражения, построенные в соответствии с пунктами 1 и 2, и только
они являются высказываниями. □ 1.2.1
Выражения VA V В и <-*А, таким образом, не являются выска-
зываниями, так как они построены вопреки пунктам 1 и 2. А вот выражения
(А V В) и ((~ъ4) V (В (~’С)) в самом деле являются высказываниями.
Приведенное выше определение 1.2.1 использует метод индукции для
определения составного высказывания: пункт 1 есть базис индукции, пункт
2 есть индуктивный переход. Индукция проводится по логической длине,
структуре высказывания. Под «логической длиной» высказывания А мы
подразумеваем натуральное число, обозначающее число, тип и порядок
появления логических связок, используемых при построении А, начиная с
атомарных высказываний, составляющих А. Нам известно, что принцип
математической индукции справедлив для натуральных чисел.
Определение 1.2.2 (математическая индукция). Если Р(а) обозначает
свойство натурального числа а и нам известно, что а) Р(0) справедливо, б)
для любого натурального п из истинности Р(п) вытекает истинность Р(п 4-
1),
то мы можем заключить, что для всех натуральных чисел п истинно Р(п).
□ 1.2.2
Тот факт, что множество натуральных чисел вполне упорядочено (под
этим подразумевается, что каждое непустое подмножество натуральных
чисел имеет наименьший элемент), вместе с принципом математической
индукции приводят ко второй форме индукции, называемой полной.
Определение 1.2.3 (полная индукция). Если Р(а) есть свойство
натурального числа а, и нам известно, что
а) Р(0) справедливо,
б) для всех натуральных чисел тип, таких, что т < п, из Р(т) можно
вывести Р(п),
16 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
то для всех натуральных чисел п истинно Р(п). □ 1.2.3
Мы использовали полную индукцию в индуктивном определении
высказываний (определение 1.2.1). Теперь применим ее в следующем
определении 1.2.4.
Определение 1.2.4 (общая схема индукции для высказываний). Пусть Р
— пропозициональное свойство. Мы будем писать Р(а), чтобы обозначить,
что высказывание а имеет свойство Р. Если мы докажем, что
а) Р(А) — истинно для любого атома А языка,
б) если <т, и о,— высказывания и Р(<7,), Р(а2), то Р((а} А ст2)), V <т2)),
Р((бГ, -»<т2)), Р((<т( w <т2)), Р^,)) и Р((-мт2)),
то мы можем заключить, что свойство Р(ст) справедливо для любого
высказывания о нашего языка. □ 1.2.4
Пример 1.2.5.
1. Свойство Р «число левых скобок совпадает с числом правых скобок»
истинно для всех высказываний PL.
В самом деле, согласно общей схеме индукции мы имеем:
а) в пропозициональных символах число левых и правых скобок равно
0;
б) если в высказываниях и а2 число левых и правых скобок совпадает и
равно для ст, и а2 соответственно п и т, то в высказываниях (ст, А (Т2), (СТ|
V СТ2), (СТ] —> (Т2), ((?! сг2), (->О-|) И (->СТ2) число
левых и правых скобок совпадает и равно п + т + 1 в первых четырех, п + 1
и т + 1 соответственно — в двух последних.
2. Выражение ((->(А А В)) —* С) является высказыванием.
Доказательство основано на определении 1.2.1:
1) А, В являются высказываниями по определению 1.2.1(1);
2) (А А В) является высказыванием по определению 1.2.1 (2);
3) (—’(А А В)) является высказыванием по определению 1.2.1(2);
4) С является высказыванием по определению 1.2.1(2);
5) іеи А В) —> С) является высказыванием по определению 1.2.1(2).
3. Выражения, приведенные ниже, не являются высказываниями:
-і — символ -і не является атомом;
Л —> А — символ Л не является высказыванием;
(А Л В —нет правой скобки, соответствующей левой. □ 1.2.5
Пример 1.2.6. Рассмотрим повествовательное предложение обыденной
речи:
F: «Если нет дождя, то я пойду на прогулку».
Для того, чтобы формализовать его в логике высказываний, можно ввести
вспомогательные пропозициональные символы:
А: «Идет дождь»; В: «Я иду на прогулку».
Тогда предложение F соответствует высказыванию ((-«А)—* В).
Если не возникает путаницы, то скобки можно опустить:
F: -^АВ. □ 1.2.6
Каждый атом, который встречается в правильно построенной формуле’)
D рассматривается как подформула D. Например, А и В — подформулы F в
§1.1. ВВЕДЕНИЕ 17
примере 1.2.6. Более того, каждая правильно построенная составная часть
D является также подформулой D. Рассмотрим в качестве примера формулу
D: (А Л ->В) -»((С V ->А) -♦ В).
Тогда ->А, С V -’А, А Л -і В равно, как и (С V -«А) —> В, являются
подформулами D. Наконец, сама формула D, т. е. (А Л-^В) —* ((С V V -1А)
—> В), также рассматривается как подформула D.
Множество subform(a) всех подформул правильно построенной формулы
а определяется индуктивно:
Определение 1.2.7. 1) Если ст — атом А, то subform(CT) = = М};

1) Высказывания логики высказываний называются также формулами. — Прим.


ГЇЄрЄВ. У-•** •"л ' { . А» »

2) если а имеет вид т, то subform(o-) == subform(r) U {<?};


3) если а имеет вид тор, где о е {V, Л, —♦->}, то subform(cr) = =
subform(r)Usubform(^)u{cr}. □ 1.2.7
Замечание 1.2.8. Чтобы избежать неоднозначностей при использовании
связок в формулах без скобок, мы будем считать, что -і связывает сильнее,
чем все остальные связки, Л и V связывают сильнее, чем w и —w связывает
сильнее, чем —Таким образом, высказывания

АлВ-»С, А-*В~С .
.6. \
обозначают соответственно г

M-»(BvC)), ((АлВ)-»С), (А-^(В^С)). □ 1.2.8

Замечание -1.2.9. Следуя сложившейся традиции, символ «— мы будем


также рассматривать как логическую связку, В <— А обозначает то же, что
и А —* В. □ 1.2.9

§ 1.3. Понятие семантики в логике высказываний


Означивания и истинностные означивания

Согласно определению 1.2.1 высказывания являются общим и аб-


страктным объектом. Мы хотим интерпретировать эти абстрактные
объекты при помощи семантики. Это означает, что нас интересует
определение условий, при которых высказывание является истинным или
ложным. Поэтому мы создадим структуру, область определения которой —
{t, f}, где t, f обозначают истинностные значения «истина» и «ложь»
соответственно, и попытаемся приписать одно из этих значений каждому
высказыванию. Используемый метод приписывания истинностных
значений, подкрепленный необходимыми определениями, и составляет
семантику логики высказываний.
Определение 1.3.1. Означиванием назовем произвольную функцию
F: <?-{(,/},
где Q — множество атомов языка. □ 1.3.1
18 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
Таким образом, означивание приписывает истинностные значения
атомам языка.
Теперь мы введем на множестве {t, f} внутренние алгебраические
операции для того, чтобы преобразовать его в алгебраическую структуру.
Внутренние операторы над t, f, которые мы определим, а именно, L1, П, и
будут соответствовать логическим связкам
Л, V, —» и <->. Сходство соответствующих символов не случайна,
она отражает их соответствие. Рассмотрим, например, высказывание А У В.
Приписав некоторые истинностные значения А и В, мы интерпретируем АУ
В, используя интерпретации А и В и применяя операцию U, на основании
определения 1.3.2.
Определение 1.3.2. Внутренние операции U, П,и <—♦ над {t, f}
определяются следующими таблицами.

В приведенных таблицах в первом столбце перечислены значения первого


аргумента и в первой строке — значения второго аргумента
соответствующих операций. □ 1.3.2
Структура ({£, /}, U, П), в которой операции LJ, П определены
описанными таблицами, является двузначной булевой алгеброй.
Булевы алгебры важны как для семантики логики высказываний (см.
[RaSi70, СиггбЗ, Rasi74, Raut79]), так и для изучения теоретических основ
информатики вообще.
Определение 1.3.3. Пусть S — множество высказываний нашего языка.
Истинностным означиванием, или булевым означиванием назовем такую
функцию

V: S і-* {i, f},

что для произвольных а, т Є S верно: . V , уг


а) если а — атом, то V(a) Є {t, f}; ...
б) V(-na) =~ V(a); >= -
в) V(o Ут) = V(a) U V(T); • ? X*
r) V(a A r) = V(a) П V(T); >•
§1.1. ВВЕДЕНИЕ 19
д) V(aт) = V(a) V(T); .■<"
Е) V(CT^T)= V(CT)—» V(r). .* . * □ 1.3.3
Согласно этому определению истинностные значения атомов некоторого
высказывания преобразуются алгебраическими операци- ями U, П, и
определяют тем самым истинностное означивание рассматриваемого
высказывания (см. [Smul68]).
Означивание приписывает истинностное значение, t или /, атомам языка.
Истинностное означивание является расширением означивания на
множество высказываний языка. В последующей теореме 1.3.4 будет
доказано, что каждое означивание может быть однозначно расширено до
истинностного означивания.
Теорема 1.3.4. Для каждого означивания F существует одно и только
одно истинностное означивание V, являющееся расширением F.
Доказательство. Проведем доказательство индукцией по длине
высказывания.
Пусть F — означивание, Q — множество атомов. Индуктивно определим
истинностное означивание V, полагая
а) У(А) = F(A) для каждого А е Q.
Пусть a, — высказывания. Если И(<т) и Vуже определены, то положим
б) . .... .
в) V(a V = V(<y) U V
г) V(aAy>) = V(a)nV(y>y, . .,,т
д) V(a-^<p) = V(ff)^V(ip); qr. 1 г nq
е) V(a <-* <р) = V(a) V(<p).
Очевидно, что V является истинностным означиванием, расширяющим
F.
Остается доказать, что если истинностные означивания VJ и V2 являются
расширениями F, то равенство VJ(<p)= выполняется для любого
высказывания у>. Докажем по индукции свойство Р:

v,M = vM-.

Базис индукции.
Для каждого пропозиционального символа А верно, что VJ(A) = —
V>(A), так как Vt, V2— расширения F.
Индуктивный переход.
Предположим, что V^(a) = V2(a) и VJ(y>) = Тогда справедливы
соотношения:
=~ VJ(<T) =~ V2(y>) = V2(^);
V <^)= VJ(o-)U VJ(<p)= V2(ff)U»=K(.Vy>); ;
Ц(<7Лр)=ОДпВД=У2(<т)пад=72(<7Л^ '
V}(a -> y?) = V^a) VJ(y>) = V2(a) V2(<p) = V2(a <p)‘,
у;(ст W 95) = VJ(CT) ^V{(ip) = V2(a) v2(p) - V2(a w ^).
Таким образом, Vt и У, имеют одинаковые значения для каждого
высказывания, и поэтому совпадают. □ 1.3.4
Следствие 1.3.5 непосредственно вытекает из теоремы 1.3.4.
20 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
Следствие 1.3.5. Пусть а — высказывание, все атомы которого
содержатся в списке Aif...,Ak. Если два истинностных означивания Vlf V2
имеют одни и те же значения на множестве {А„ ..Ак}, то V^a) = У2(ст).
□ 1.3.5
Пример 1.3.6. Вычисление истинностного означивания по заданному
означиванию.
Пусть S — множество атомарных высказываний, S = {A,,A2}, F —такое
означивание, что
F(A,)=t, F(A2) = /.
По теореме 1.3.4 искомое истинностное означивание VF, расширяющее F,
определено однозначно.
Положим, что
УДА2):=/,
где := обозначает «равно по определению*.
Теперь мы можем вычислить значения истинностного означивания VF
для каждого множества высказываний, которые содержат только атомы А, и
А2:
VF(AX А А2) = УДА,) П УДА2) = t П f = /;
УДА, V А2) = УДА,) U УДА2) = t u f = t-
VF((A, A A2) - A2) = УДА, V A2) - УДА2) = t f = f-
и T. д. □ 1.3.6
Мы можем классифицировать высказывания логики высказываний в
соответствии с истинностными значениями, которые они приобретают.
Определение 1.3.7. Высказывание а называется логически истинным, или
тавтологией, если для каждого истинностного означивания V верно, что
V(a)—t. Мы будем пользоваться записью |= а для обозначения тавтологии.
В свою очередь, запись будет обозначать, что ст не является тавтологией, т.
е. существует истинностное означивание V, такое, что —
Высказывание ст называется выполнимым или подтверждаемым, если
существует такое истинностное означивание У, что У (ст) = t. При этом
про истинностное означивание У, для которого У(ст) = t, говорят, что оно
подтверждает высказывание ст.
Высказывание ст, такое, что для каждого истинностного означивания V
верно У(ст) = f, называется логически ложным, или невыполнимым, или
противоречием. □ 1.3.7
Замечание 1.3.8. Пусть V — истинностное означивание, и множество
Sv = {a: У(<т)=£]
состоит из всех высказываний языка, выполнимых при означивании V. Если
высказывание р принадлежит множеству Sv для каждого истинностного
означивания V, то р является тавтологией. Каждое множество Sv, где V —
истинностное означивание, составляет возможный мир (см. [Fitt69,
Chel8O]) множества высказываний PL. Каждый возможный мир является
аристотелевым в том смысле, что для каждого высказывания о только
одно из двух высказываний (7 И -47 может быть истинно в этом мире. И в
самом деле, мы имеем либо V(а) ~ t, либо V(а) — f, что равносильно V(~><т)
= t, сообразно аристотелеву принципу исключенного третьего, замечание
§1.1. ВВЕДЕНИЕ 21
1.4.4).
Возможные миры — основное понятие семантики Крипке. Семантика
Крипке используется при изучении модальной логики. В модальной логике
кроме логических связок содержатся специальные символы, как, например,
о, называемые модальными операторами, что расширяет выразительные
возможности языка. Поэтому в модальном языке кроме выражения А
встречается выражение оА, которое может интерпретироваться как «иногда
А истинно», или «А будет истинно в будущем».
Модальная логика позволяет нам выражать особые свойства, за-
трагивающие расположение и порядок выполнения операторов программы.
Рассмотрим, например, программу на языке ФОРТРАН, предназна-
ченную для вычисления п\ для всех целых чисел п от 1 до 10.

*=1
do 10 і = 1, . . ., 10 '•¥«. F •
-Ц'Р —k*j ПН’.Г -•« • " •
10 write(*, *)k ‘ ,‘f
en
d ПНї -X ‘АІИЧН;
Пусть А н В —высказывания модальной логики, '*

A :=write(*, *)k и В :=end. ‘

В тот момент, когда программа начинает выполняться, высказывания оА


и оВ истинны. Это означает, что программа когда-то в будущем вычислит
п! и когда-то в будущем она остановится. □ 1.3.8
Определение 1.3.9. Два высказывания, а и т, такие, что у (ст) — V(r) для
каждого ’йстинностного означивания V, называются логически
эквивалентными. Для обозначения эквивалентных высказываний будем
использовать запись а = т. □ 1.3.9
22 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
Пример 1.3.10. Высказывания А V ->А и ((А —* В) —» А) —> —» А —
тавтологии.
Доказательство. Сначала докажем, что A V-^A — тавтология. Пусть V} и
У, — два таких истинностных означивания, что
v;(A) = t, УДА) = /.
о . '■! -Ж-

Заметим, что
УДА V -А) = УДА)U УД-nA) = УДА)U(~ УДА)) = t U (~ t) = = tU/ = t,
У2(A V -A) = УДА) U УД-А) = У2(A) U (~ УДА )) = / LI (~ /) = = f U t — t.
Произвольное истинностное означивание У на А совпадает либо с V{,
либо с V2.
Таким образом, согласно следствию 1.3.5 выполняется одно из двух:
У(А V-A)= УДА V-nA)= t или У(А V-А) = УДА V-А) = t
То есть высказывание истинно для любого истинностного означивания У.
Следовательно, оно является тавтологией.
Теперь докажем, что ((А —> В) —► А) —> А —тавтология. На Q — —

■ л.•
4
■ --'Нс• .'<> .
I J TV J

F,(A)=t,
F2(A)=t,
F3(A) = /,
F4(A) = /,
{А, В} имеется четыре различных означивания Fv F2, F3, Ft:

^ГДВ) = /, Jr

,■ .JM цц,-
^(B) = / • Ґ

Для каждого из этих означиваний существует единственное истинностное


означивание Vk, к є {1,2,3,4}, расширяющее его. Несложно проверить, что
УД((А “* В) —> А) —»А) = t для каждого к € {1,2,3,4}.
Произвольное истинностное означивание У на пропозициональных
символах А и В совпадает с Vk для некоторого к € {1,2, 3,4}- В силу
§ 1.3. ПОНЯТИЕ СЕМАНТИКИ В ЛОГИКЕ ВЫСКАЗЫВАНИЙ 23
следствия 1.3.5 справедливо равенство
У(((А-.В)^А)-.А)=УД((А->В)-.А)->А) = і.
Следовательно, высказывание ((А —> В) —> А) —> А истинно для
любого истинностного означивания и поэтому является тавтологией. s
s,
‘ 1-3-Ю
24 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
Пример 1.3.11. Высказывание ((~'А Л В) —>• С) V D) (обозначим его К)
выполнимо. В самом деле, пусть F —такое означивание
пропозициональных символов К, что

F(A) = t, F(B)=t, F(C) = f F(D) — f.

Истинностное означивание V, расширяющее F, приписывает следующие


значения: . ./''Г'';.
V(A) = t, V(B) — tt =A’ 1
Тогда .. >■ ’■ * A'-V'
•п v
■ ■ '■
V(~'A)—~ V(A)~f, $,R;
У(-ЛАВ)= Г(-.А)ПУ(В)=/ПІ = /, 4

V((-A A B) C) = V(-*A AB)- V(C) = fZf=t,"


V(((->A AB)-» C) VD) = V((->A KB)~+C)U V(D) = t U / = t, следовательно,
V(K)=t.
Высказывание К не является тавтологией. И в самом деле, пусть G —
такое означивание, что ,, .
G(A)=t, G(B) — t, G(C) = f G(D) = f
Предположим, что G' — истинностное означивание, расширяющее G.
Применяя метод, аналогичный используемому при доказательстве того, что
V(K)= t, мы можем доказать, что G’(K) = f. Тогда, по определению 1.3.7,

■iffi I.
•Ж.» . П'і

я
§ 1.4. Таблицы истинности ЙїчГ ,
высказывание К не является тавтологией. □ 1.3.11
В предыдущем параграфе мы определили означивание атомов языка и,
затем, распространив означивание атомов на составные высказывания,
определили истинностные означивания. При помощи этого метода мы
можем установить, является ли высказывание тавтологией, противоречием,
или оно выполнимо. Однако, чем больше составляющих содержит
высказывание, тем более сложным становится этот метод.
Чтобы сделать его несколько проще, мы соберем все возможные
означивания атомов высказывания в таблицу, называемую таблицей
истинности высказывания. Итак, для составных высказываний ->А, А V В,
А ЛВ, А —» В и А*-* В мы имеем следующие таблицы:
§ 1.4. ТАБЛИЦЫ ИСТИННОСТИ 25
А В A AB

t t t
t
f f
t f f

f f f

Каждая строка в этих таблицах соответствует означиванию и его


однозначному расширению до истинностного означивания. Например,
вторая строка в таблице А А В имеет вид t, f, f. Она означает, что А
принимает значение t (это первый элемент строки), В принимает значение f
(это второй элемент строки). На основании определения 1.3.2 и
определения 1.3.3 мы знаем, что соответствующее истинностное значение
А А В есть t П /, а именно f. Таким образом, мы находим f (это третий
элемент строки).
В дальнейшем мы будем использовать описанные выше таблицы
истинности как определения результирующих значений при использовании
логических связок, не ссылаясь на означивания и истинностные
означивания.
Замечание 1.4.1. 1. Дизъюнкция логики высказываний не является
разделительной, т. е. А V В принимает значение t и тогда, когда и А, и В
принимают значение t. В повседневной речи, напротив, чаще всего
фигурирует разделительная дизъюнкция. Например, мы говорим: «Я
останусь дома или пойду в кино», подразумевая при этом выбор только
одного варианта, но никак не обоих.
2. Высказывание А —♦ В принимает значение f только тогда, когда А
принимает значение t, а В принимает значение /. Таким образом, если А
есть /, то А —*В есть t, независимо от того какое значение принимает В. Эти
свойства —♦ и, как следствие, та часть логики высказываний, которая
основывается на этих свойствах, принимаются не всеми логическими
школами.
В 1910-1920 гг. в области прикладных наук в Европе преобладала
концепция школы Гильберта (Гильберт, 1862-1943) (см. [Воуе68, Heij67]):
« Математика и логика должны иметь аксиоматическое основание, и
используемые этими науками методы должны быть максимально
26 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
формальными».
Но в 1918 г. Брауэр (1881-1966) опубликовал суровую критику логики
высказывании. Представленная в его работе альтернативная система была
названа интуиционистской логикой. Это название происходит из
утверждаемого Брауэром факта, основанного на мнении Канта, что мы
ощущаем натуральные числа (и, соответственно, логику, которая
характеризует науку) только интуитивно (см. [Dumm77, Brou75]).
Интуиционистская логика никогда целиком не замещала логику,
основанную на концепции Гильберта, однако, сегодня она имеет некоторые
приложения в информатике.
С другой стороны, логика высказываний предлагает эффективный
инструмент (в аристотелевом смысле) для изучения и решения различных
задач и составляет основу современной науки и техники.
□ 1.4.1
Резюмируем:
опираясь на индуктивное определение высказываний и на определение
значений логических связок, мы можем построить таблицу истинности
для любого высказывания, приписав значения всем атомам, составляющим
его.
Пример 1.4.2. Таблица истинности высказывания А А В —> С:

А В c Af\B AhB^C

t t t t t
t t f t f
t t t
f f

t t
f f f

f t t f t
t t
f f f
t f t
f f
. t
f f f f
Для тройки атомов (А, В, С) тройка истинностных значений (/, t, f) обращает
А А В —> С в истину, тогда как тройка (t, t, /) обращает его в ложь. □ 1.4.2
Сокращенной таблицей истинности высказывания А А В —> С
называется его таблица истинности, в которой вспомогательный четвертый
столбец пропущен.
Сокращенная таблица истинности высказывания, содержащего п атомов,
состоит из 2П строк и п + 1 столбца.
При помощи таблицы истинности мы можем устанавливать, когда
§ 1.4. ТАБЛИЦЫ ИСТИННОСТИ 27
высказывание истинно, а когда — ложно. В силу следствия 1.3.5, если в
таблицах истинности для двух высказываний столбцы значений атомов и
последние столбцы совпадают, то эти два высказывания логически
эквивалентны.

Пример 1.4.3.
1. Высказывание ((А —> В) —» А) —> А является тавтологией.

((A —> B) —> A) —>


А В A—* В (A-+B)—*A
A
t t t t t

t f f t t

f t t t
f

f t t
f f
2. Высказывание (Р -» Q) А (Р A ->Q) невыполнимо.

P Q -Q PQ P/^Q (P —» Q) A (P A->Q)
t t t
f f f
t t t
f f f
t t
f f f f

t t
f f f f
Замечание 1.4.4. Основываясь на определении 1.3.7 мы имеем:
1) высказывание является тавтологией тогда и только тогда, когда его
отрицание невыполнимо; а;! . .-../км п л,.( « *

2) высказывание невыполнимо тогда и только тогда, когда его


отрицание является тавтологией;
3) высказывание, являющееся тавтологией, выполнимо, тогда как
выполнимое высказывание не обязательно является тавтологией;
4) некоторые часто используемые тавтологии:
Ил '-.pit
* И) -у(А Л В) = (->А V -»В) — закон де Моргана; х / J-
2) -i(A V В) = (->4 л ~«В)— закон де Моргана; ' • ц Т
3) ~'(~'А) = А —закон двойного отрицания; '
4) (А —» В) = (~УВ —»-і 4) — закон контрапозиции;
5) {В —► С) -+ ((4 -4 В) -+ (4 —+ С)) — первый закон СИЛЛОГИСТИКИ;
6) (4 —»В) —> ((В —> С) —> (4 —► С)) — второй закон
СИЛЛОГИСТИКИ;
28 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
7) (4 —»(В С)) = ((4 А В) —» С) — закон транспозиции;
8) 4 V ~>А — закон исключенного третьего.

Высказывания 5 и 6 называются аристотелевыми законами сил-


логистики. □ 1.4.4
Метод нахождения значения составного высказывания при помощи
таблицы истинности достаточно прост, если высказывание содержит
небольшое число атомов. В том случае, когда высказывание имеет три
атома, соответствующая таблица истинности состоит из 2 3 = 8 строк.
Таблица истинности высказывания, имеющего четыре атома, состоит уже
из 24 = 16 строк, а имеющего десять атомов, — из 210 = 1024 строк!
Кроме того, нужно иметь ввиду, что мы не можем использовать таблицы
истинности в логике предикатов. Поэтому в следующих параграфах мы
изучим более совершенные и более экономные методы определения
истинностных значений высказываний и множеств высказываний. Эти
методы будут составлять основу логического программирования.
Г ■;
! § 1.5. Логические следствия и интерпретации f !

Из таблицы истинности высказывания (4 А В) —♦ С в примере 1.4.2


можно видеть, что это высказывание принимает значение t, если все три
атома 4, В, С принимают значения t. В этом случае говорят, что истинность
(4лВ)~► С следует из того факта, что каждое высказывание из S = {4, В, С}
имеет значение t (см. [Chur56]). Таким образом, введем следующее понятие.
Определение 1.5.1. Пусть S множество высказываний. Высказывание а
называется логическим следствием S (этот факт
§ 1.5. ЛОГИЧЕСКИЕ СЛЕДСТВИЯ И ИНТЕРПРЕТАЦИИ 29
будет обозначаться S [=<т), если для каждого истинностного означивания
V, обладающего свойством V(<p)= t для любого р с S, мы можем
заключить, что V(a)~ t.
Обозначим Con(S) = {a: S |=(т} множество всех логических следствий S.
Формальное определение этого множества таково:
о Є Con(5)Ф>(для каждого истинностного означивания V) (для каждого р
€ S верно V(p) = t) => (V(о) = t).

В дальнейшем вместо выражения «для каждого р Є S верно V(y>) = — t*


мы будем использовать запись У[5] = {<}, или даже еще менее формально
У[5]= t. □ 1.5.1
Замечание 1.5.2. Символы и =>, используемые в данном выше
определении в значениях «тогда и только тогда» и «влечет», являются
символами метаязыка. Метаязык — это язык, используемый для
рассуждений о формулах логики высказываний и для исследования их
свойств. Когда, например, мы говорим, что |= р, т. е. высказывание р—
тавтология, мы выражаем суждение о р. Поэтому |= р является
метавысказыванием для PL , а именно высказыванием метаязыка PL.
Как и язык логики высказываний, метаязык может быть формализован.
Но для того, чтобы избежать чрезмерного и педантичного использования
символов, например, —♦ в языке и => в метаязыке, в качестве метаязыка
мы будем использовать тщательно и точно сформулированные
предложения разговорного языка.
Завершим комментарий о метаязыке следующим примером. Пусть А —
высказывание PL. Тогда выражение «А —» А» — это высказывание PL, а
выражение «если А является высказыванием PL, то А является
высказыванием PL» — это высказывание метаязыка PL.
.. . □ 1.5.2
Пример 1.5.3. Пусть S = {А А В, В С} — множество высказываний. Тогда
С—логическое следствие S, т. е. S С.
Доказательство. Допустим, что V — истинностное означивание, которое
обращает все высказывания S в истину:

V(AAB)=t, V(B-+C)=t. *

Тогда по определению 1.3.3 мы имеем:


V(A)nV(B) = t, (1)
V(B)~>V(C)=t. (2)
Затем, из (1) и определения 1.3.2 следует, что ’-’’Г',-V :‘ч . ■ V(A) =

V(B) = t. МОДИ! (3)

и, следовательно, (2) преобразуется к виду ? ~


V(C) = t. ' ‘ (4)
30 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
Из определения 1.3.2 и (4) мы можем заключить, что V(C)= t. Это означает,
что каждое истинностное означивание, подтверждающее все высказывания
из S, подтверждает также С. Таким образом, С является логическим
следствием S, т. е. S |= С. □ 1.5.3
Обозначив Taut множество всех тавтологий, докажем следствие.
Следствие 1.5.4. Con(0) = Taut, где 0 обозначает пустое множество.
Доказательство. Рассмотрим а € Taut. Тогда для каждого истинностного
означивания V имеем V(tr)= t, т. е. справедливо соотношение
V[0] = {t}=>V(a)=t. ■
Следовательно, а Є Соп(0).
Верно и обратное. Рассмотрим а є Соп(0). Тогда ДЛЯ^йЬкдого
истинностного означивания V имеем:
-।7

если для каждого у? Є 0 справедливо t, то (1)


Но в 0 нет элементов. Поэтому мы можем записать:
если для каждого у? є 0 верно, _ • ‘ р'
j.i что У(у?) = t или У(у?) = /,то V(<r) = t.T.-I
То есть V(a) = t независимо от значения у? Є 0. Это означает, что для всех
истинностных означиваний V верно, что V(a) = t. Следовательно, а является
тавтологией. □ 1.5.4
Таким образом, тавтологии не являются следствием какого-либо
специального множества высказываний1), они не зависимы ни от какого
множества высказываний и связаны только с таблицами истинности,
определенными в § 1.3.
Подчеркнутые части в доказательстве следствия 1.5.4 отмечают
технические моменты доказательства. В пустом множестве нет элементов.
Как же мы можем записать импликацию с подчеркнутой частью? Давайте
вспомним третью и четвертую строки определения таблицы истинности
высказывания А —> В (см. стр. 25). Если А принимает значение f и В
принимает значение t или f, то А —* В равно t. Это значит, что если А есть
ложь, то импликация А —♦ В всегда истинна! Именно этим свойством мы и
воспользовались в метаязыке, в котором доказываются наши теоремы. В
(1), например, утверждение Є 0» не может быть истинно, так как в 0 нет
элементов. Независимо от того, является ли утверждение «У(у?)= t»
истинным или нет, (1) истинно!
Как упоминалось выше, PL изучает множества высказываний.
Следующие два определения касаются выполнимости множества вы-
сказываний.
Определение Л .5.5. Множество высказываний S (семантически)
непротиворечиво, если существует истинностное означивание, которое
подтверждает каждое высказывание из S. Формально:
непротиворечиво^)Ф>(существует означивание V)
I) Это означает, что тавтологии логически следуют из любого множества выска-
зываний S вне зависимости от его состава. — Прим, перев.
§ 1.5. ЛОГИЧЕСКИЕ СЛЕДСТВИЯ И ИНТЕРПРЕТАЦИИ 31
[(для каждого а Є S) (V(a) = t)].
Тот факт, что S непротиворечиво, обозначается V(S)= t.
Непротиворечивое множество S мы будем называть также под-
тверждаемым, или выполнимым. Про истинностное означивание V,
которое подтверждает каждое высказывание непротиворечивого множества
S, говорят, что оно подтверждает S.
Соответственно, S противоречиво, неподтверждаемо, или невыполнимо,
если каждое истинностное означивание не подтверждает по меньшей мере
одно высказывание из S. Формально: противоречиво (5) =>
(для каждого означивания V) [(существует а Є S) (V(a) = f)J.
□ 1.5.5
Пример 1.5.6. Множество высказываний S — {А Л->В, А ->В}
противоречиво.
Доказательство. Предположим, существует такое истинностное
означивание V, что для каждого С Є S верно V(C)= t. Тогда
V(AA-B)=t, V(A—*B)=t, что означает
У(А)П V(-.B)= t, (1)
V(A)-V(B)=t. (2)
Из (1) и определения 1.3.2 следует, что V(A)= V(-~B) = t, и
V(A)=t, V(B) = f
Тогда из (2) следует, что t f = t, что противоречит определению 1.3.2, в
котором t f — f. Следовательно, никакое истинностное означивание не
может подтвердить все высказывания S, т. е. S противоречиво. □ 1.5.6
Определение 1.5.7. Истинностное означивание, подтверждающее
множество высказываний S, называется интерпретацией S. Множество
всех интерпретаций S обозначается Int (S).
Int(S) = {V: V — истинностное означивание и для каждого а Є S
верно V(cr) = і}. □ 1.5.7
Докажем некоторые полезные свойства логических
следствий и интерпретаций.
Следствие 1.5.8. Для любых, множеств высказываний S,
S2 верно:
1) $ С S2 => Con(Sj) С Con(S2); >»• -ЦГ/ІІ (•«, .
■■■ ■
2)SCCon(S);
3) Taut C Con(S) для любого 5; 6
4) Con(S) = Con(Con(S));
g 5) S, cS2^Int(S2)Clnt(Sl); "
.f 6) Con(S) = {a: V(a) = t для каждого V Є Int(S)};
% 7) сгє Con({crp..., ->(ст2-»(...(<тп-><т)...)) Є Taut.
y
Доказательство. 1. Предположим, что а Є Con(Sx). Пусть V — такое
истинностное означивание, что для каждого у? є S2 справедливо V(y?) = t.
Таким образом, верно, что V(y?) = t для каждого у? є S} (так как 5, С S2).
Тогда V(a)— t, поскольку а Є ConfS,). Следовательно, ConfjSy) С Con(S2).
32 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
2. Если а є S, то каждое истинностное означивание V, подтверждающее
все высказывания S, также подтверждает а. Таким образом, а є Con(S). Но
тогда S С Con(S).
3. Предположим, что а Є Taut. Пусть V — такое истинностное
означивание, что для каждого у?Є S верно V(y?) = t. Тогда V(o)=t, и
поэтому а е Con(S). Следовательно, Taut С Con(S).
4. Согласно пункту 2 мы имеем S С Con(S), а согласно пункту 1 —
Con(S)Q Con(Con(S)). Остается только доказать, что

Con(Con(S)) С Con(S).
Предположим, что а Є Con(Con(S)). Пусть V — истинностное означивание,
такое, что для каждого у? є S имеет место V(</>)— t. Тогда для каждого г є
Con(S) верно, что V(r) = t. Из определения Con(S) следует, что И(ст) — t.
Это означает, что а Є Con(S). Следовательно, Con(Con(S)) С Con(S\
5. Если V Elnt(S2), то для каждого а Є S2 справедливо V(a)=t. Ввиду
того, что S] С S2, для каждого а € S\ верно, что V(cr) — t и, следовательно, V
e!nt(Sx).
6.Если ст Є Con(S), то для каждого Velnt(S) верно, что V(a) — — t. Тогда
■С f ■

а Є {у?: V(y?) = t для каэщого V Є Int(S)}. f-.\


Более ТОГО, если : О

Є {а: V(а) — t для каждого V Є ■■■'c-..' j -


... . .5? .< ... t
TO, очевидно, У? Є Con(S). I' f< . ' • ’ ~ - > • *
*
7. (=>) Предположим, что у Є Соп({<?],..Пусть' истинностное
означивание. Возможны два случая: ч<
а) для каждого <т., 1 і n, V= t и
ХОТЯ бы ДЛЯ ОДНОГО СГ, 1 < j С п, — f. ' -
і,л
б)
Проанализируем каждый случай в отдельности.
а) Для каждого <т£, где 1 < і < п, верно, что -■ (,. ,;?jV
,'UK'C ИС я
V(ст, ) = t и <р € Con({alf ..<тп}), Г» f ~-
поэтому V(ip)=t. Следовательно, ;
V(an ->?) = V(an) V(^) = t t = t
Если V(at-»(crA + 1->...(crn->^)...))=t, то
V(<rk - 1 -»“> К +1 • • -К ¥>)• • •))) = ЗД
-1) (°k
v
= К +1 -* • • -К -*</?)...))= * -> * = *•

Следовательно, (по индукции) сг, —> (сг2 —»(.. .(<тп —+ а)...)) = t. б) Пусть
г — наименьшее натуральное число, для которого верно
VfcTr)= /• Тогда
§ 1.5. ЛОГИЧЕСКИЕ СЛЕДСТВИЯ И ИНТЕРПРЕТАЦИИ 33
-• ^(стг->(аг+1->...(ап->¥?)...))=
= VM - V(<7r+, . -К - Ч>\ • ■) =.
= V(<Tr+I->...(<7n-4^)...)=t.

Пдююрьку v(ar _,)=t, то . !i;;


. ,Q»-
Ч^Г-I (°r • • -(^ -> <^)- • •)) =
.V= V(^r- J - ^(<rr ->.. .(an t = t.
Если V{ak ->(crfc + 1 -»...(crn-»<p)...)) = t, где fc 0-1. TO
_ О (Ъ +1 -* • • (<тп ^)- • •))) =
= ^(<Tk_i) V(<Tk (<7fc + 1 -» . . .(<7n -> 95). • .))= t І = t-

Следовательно, (tr2 —> (. . .(<7n -» <7). . .)) = t.


2 Г. Метаккденс. А. Нероуд
Как в случае а), так и в случае б) для любого истинностного означивания
V справедливо соотношение crt —> (<т2 —>(.. ,(ап —> а)...)) = = t.
Следовательно, сг, —> (а2 -> (.. .(ап —»• а)...)) — тавтология. (ч=)
Предположим, что —> (сг2 —» (.. ,(сгп —> а)...)) — тавтология.
Пусть V — истинностное означивание, такое, что V(at)~ t для каждого г Є
{1,2,..., п}. Если мы предположим, что V(<p) — f, то
V(a„ -> <р) = V(an) V(?) =t^f = f.
Поэтому, если V(ak —»(ak + l —■>.. .(ап —> 92)...)) — t, то
-1 “► -* (°k+1 • • -(^n • •))) =
= V(<rfc_!) -> V(crfc -> (<т4 +1 ^ .. .(^ -4 <^)...)) = і — / =
Следовательно, V(at —> (a, —> L . ,(an —» a)...))) = f вопреки тому, что —♦
(<т2 —► (• • -(<тп —♦ cr)...)) — тавтология. □ 1.5.8
Следствие 1.5.8 дает нам метод, позволяющий для любой заданной
формулы 92 установить, является ли она логическим следствием заданного
конечного множества высказываний S: мы проверим за 2” шагов, является
ли правая часть пункта 7 тавтологией. Однако для бесконечного множества
высказываний S этот метод потребует бесконечного числа шагов. В этом
случае более уместно воспользоваться семантическими таблицами.

дім •; у § 1.6. Полнота множеств логических


/' связок и нормальные формы

Нахождение истинностного значения высказывания, доказательство


противоречивости или непротиворечивости множества высказываний в
большинстве случаев зависит от числа и типа связок, содержащихся в
высказываниях. Используемые нами пять логических связок наиболее часто
встречаются в математических текстах. В этом разделе мы докажем, что
произвольное множество логических связок выразимо через множество {-і,
A, V}, и, следовательно, множества логических связок {->, A, V}
34 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
достаточно, чтобы выразить каждое высказывание логики высказываний
(см. [Smu68, Mend64, Schm60]).
Определение 1.6.1. Множество логических связок Q называется полным,
если для каждого высказывания логики высказываний существует
логически эквивалентное ему высказывание, содержащее только связки из
Q. □ 1.6.1
Теорема 1.6.2. Множество {-1, A, V} является полным.
Доказательство. Пусть а = а(А^ А2,..Ак) — высказывание, в котором
встречаются только атомы А2,..., Ак. Построим сокращенную таблицу
истинности а:

А. .. . ...
Ак <т(А], А2,..Afc)

... ... <4

% % .. .
%

а
2‘ ... (Тпк ...
<Т2 °2‘
ь

В этой таблице обозначает соответствующее истинностное значение в


строке п и столбце I, а ап обозначает истинностное значение высказывания
е(Ах,..., Ак) в строке п.
1. Предположим, что в последнем столбце найдется хотя бы одно
значение t. Докажем, что существует высказывание, содержащее только
связки Л, V, последний столбец сокращенной таблицы истинности которого
совпадает с последним столбцом указанной выше таблицы.
Для произвольного атома А обозначим А‘ сам атом А и А{ — его
отрицание ->А. По строке п построим конъюнкцию
V (А^ Л...ЛА>),
которая содержит только связки і и Л. Тогда высказывание
t, V ... V t,
h %
является искомым, так как его сокращенная таблица истинности содержит і
в точности в.тех же строках, что и сокращенная таблица истинности
а(Ах, ..Ак).
2. Если последний столбец не содержит t, то высказывание ложно и,
следовательно, логически эквивалентно А Л-«А, где А — произвольный
пропозициональный символ. □ 1.6.2
Используя технику доказательства теоремы 1.6.2, мы можем выразить
произвольное высказывание через связки Л и V. Полученное в результате
эквивалентное высказывание называется дизъюнктивной нормальной
§ 1.5. ЛОГИЧЕСКИЕ СЛЕДСТВИЯ И ИНТЕРПРЕТАЦИИ 35
формой (ДНФ).
Пусть F— высказывание, содержащее атомы Аи..., А„. В общем случае
ДНФ формулы F имеет вид
ДНФ(Г): (А,_ Л...Л AjJ V(A2I Л... Л A2)V... V (А^ Л... Л Ак), где А, е {А,,...,
Ап} или А,, є {-’А1,..., ~’А„}, т. е. А, — атомы или отрицание атомов F, и в
каждой конъюнктивной компоненте

2* ДНФ(.Р)
встречается каждый атом F либо с отрицанием, либо без него1).
Конъюнктивная нормальная форма (КНФ), двойственная к ДНФ, имеет
вид

КНФ(Г): (Ац V... V AJ Д(А2] V... V А2 ) А... A (А*. V... V Afc>).

Пример 1.6.3. Найдем ДНФ высказывания F, заданного сокращенной


таблицей истинности:

Шаг 1. Находим все строки, содержащие t в последнем столбце. В нашем


случае это строки с номерами 1, 5, 8.
Шаг 2. ДНФ(7г)= і] V f5 V t8 = (А АВ А С) V(->A А В А С) V(-'A А A-IBA-
IC).
□ 1.6.3
Теперь докажем два следствия, устанавливающих полноту конкретных
множеств логических связок.
Следствие 1.6.4. Множества связок Кх = {-і, V} и К2 = — {—», А}
являются полными.
36 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
’) Дизъюнктивная нормальная форма, каждый конъюнктивный сомножитель которой
содержит все пропозициональные символы, называется совершенной ДНФ. Как будет
видно в дальнейшем, в общем случае не требуется, чтобы каждый атом входил в состав
конъюнктивного сомножителя ДНФ. Аналогичное замечание относится и к устройству
конъюнктивной нормальной формы (КНФ) — Прим, перев.

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


.A-BE-AVB, A WB=(A->В)А(В-*А),
А AB =^(->А V-B).
Следовательно, каждое высказывание логики высказываний может быть
выражено при помощи связок из множества {->, V}. Таким образом, Кх
полно.
Аналогично мы можем доказать, что К2 полно.

А—>В = ->А\/В, А^В=(А-+В)л(В-^А)у


А V В = ~^А Л -В). □ 1.6.4
Пример 1.6.5. Наряду со связками Л, V, —► и <-» мы можем ввести
другие связки, например, | и : , определенные следующими таблицами
истинности:

Доказательство. 1. Докажем полноту 53 В сущности, АIВ обозначает, что


А и В не могут быть одновременно истинными. Тогда А|В=->(АЛВ). (Эту
эквивалентность легко проверить при помощи таблиц истинности.)
Соотношения А|А = ->(А л А) = ->А показывают, что отрицание может
быть выражено при помощи связки |. Для конъюнкции верно, что А Л В = -
>->(А Л В) = -п(А|В) = = (Л|В)|(Л|В).
2. Докажем полноту 532. Мы можем выразить отрицание: ->А = = ->(А V
А) = А : А, и конъюнкцию: А Л В = ~^(->А V ~>В) = s (А : А): (В : В).
□ 1.6.6
Заметим, что множествами {|} и {: } исчерпываются все одноэлементные
полные множества связок (см. упражнение 20). Кроме того, каждое
множество логических связок с двумя элементами, ОДИН ИЗ которых
------------------------------1, а другой — А, V или —>, является полным (см.
[Schm60, Smul68, Mend64]). , ну..
§ 1.6. ПОЛНОТА МНОЖЕСТВ ЛОГИЧЕСКИХ СВЯЗОК 37
Замечание 1.6.7. Преобразование высказывания а в высказывание </?,
логически эквивалентное ему, но содержащее другие связки, часто бывает
полезным. Например, в методе резолюций, который исследуется в
следующих параграфах, мы выражаем импликации, т. е. высказывания вида
ст —* </?, через связки А и V. При этом мы используем эквивалентность
А -> В = ->А V В, ... .. . ....
' ::■> , .т, * *■'* ,!• ’А.’’ у -

проверить которую можно при помощи таблиц истинности.


□ 1.6.7
В последующих параграфах мы опишем используемые в логике
высказываний методы доказательств. Их описание упростит дальнейший
переход к логическому программированию.
? ж ■ iV.H Кя'ЛМ’ґ )

§ 1.7. Семантические таблицы

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


которым мы можем устанавливать, является ли высказывание тавтологией,
и выполнимо ли множество высказываний. Эти методы разрабатываются в
теории автоматического доказательства теорем и составляют основу
логического программирования.
Первый из описанных методов алгоритмического доказательства
использует семантические таблицы. Генцен (1909-1945) в 1934 г. впервые
доказал, что все тавтологии могут быть получены применением некоторых
правил, то есть существует некоторая процедура проверки тавтологичности
формул (см. [К1ее52, Rault79]). Используя теорию доказательств Бет и
Хинтикка в 1955 г. построили алгоритм, устанавливающий, является
высказывание тавтологией или нет.
При помощи семантических таблиц Бета (далее мы будем их называть
просто семантическими таблицами) можно исследовать возможность того,
что данное высказывание принимает значение t или значение f.
Семантическая таблица составного высказывания К строится ин-
дуктивно, исходя из семантических таблиц высказываний, составляющих
К. Таким образом, мы определим атомарные семантические таблицы (см.
[Smul68, Fitt90]).
Определение 1.7.1. 1. Пусть а— высказывание. Обозначим через /ст
утверждение «сг ложно», а через to — утверждение «ст истинно». При этом
to и fa называются помеченными формулами.
2. Атомарные семантические таблицы для высказываний A, alt а2 и
высказываний, составленных из А, и <т2, представлены в следующей
таблице. У,. ;:.-л <с u
38 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
V-
ж.
1а 16. 2а 26
/(<?! A <72)
■Я5
< »•
/(<71 А<72)

М‘ t
<71
1 /<71 /<72
"Tv;;,. А /
<72
<iV ■
За 36 4а 46
1 /(<71 V <72)

' /М /(<71 <72 )


V

1 і у/
/<7 гл /<7 ьч 1 н-з /<7і /<72 1 /<72

5а 56 6а 66
/(<71 -> <72) /(<71 О <T2)
f(ai о <7 )
2
ї’і

/(<71 —> <72) у/ у/


/<71
/
І<71 1 /<71 1 /<71 /<7і
/<Т2
СТ
1 1 1
fO2 /<72 /<72
1 /<72 /<7г

Интуитивно, tA (или fA) можно рассматривать как утверждение о том,


что А истинно (ложно). Как следует из атомарной семантической таблицы
4а, истинность утверждения V а2 требует истинности (7, или истинности ст2
(т. е. имеет место ветвление), в то время как из атомарной семантической
таблицы 56 следует, что ложность утверждения <7 ( —+ <72 требует
ИСТИННОСТИ <Т] и ложности а2 (т. е. в данном случае мы имеем
последовательное соединение). Таким образом, в семантических таблицах
ветвление обозначает дизъюнкцию, а последовательное соединение —
конъюнкцию утверждений.
□ 1.7.1
Построение семантической таблицы составного высказывания К мы
начинаем с того, что записываем помеченную формулу tK или /К в корень
семантической таблицы. Затем мы разворачиваем семантическую таблицу
К в соответствии с определением 1.7.1.
Прежде, чем определить общие правила построения семантических
таблиц, рассмотрим пример.
§ 1.7. СЕМАНТИЧЕСКИЕ ТАБЛИЦЫ 39
Пример 1.7.2. Пусть К = (АЛ->А)У (В V((7 A D)). В К присутствуют
атомы А, В, С и D. Построим семантическую таблицу с корнем tK.
f((A Л -A) V (В V (С Л P)))
4a

t(A А ->А) t(BV((MD)) 4а/ \4a

tA ■ . tB t(C A
Уі* і Г 5Л
«2

t(--A) I tc
За]""""
.... ri
fA tD
«з
* //O'
<8
>

Это замкнутая семантическая таблица, содержащая три ветви, а именно,


три последовательности хн и Ветви произрастают из корня. Левая ветвь х,,
противоречива, так как она содержит противоречащие друг другу
помеченные формулы tA и /А. Противоречивая ветвь помечается внизу
символом ®. Две другие ветви не являются противоречивыми.
Из семантической таблицы К мы можем заключить, что гипотеза tK
правильна при некоторых условиях, например, при выполнении tB (ветвь
Xj) или выполнении tC и tD (ветвь хД Однако иногда она ложна.
«(А А-А) Несложно выделить из семантической таблицы К
составляющие ее атомарные семантические таблицы.
Например, ограниченная прямоугольником из точек
tA семантическая таблица является атомарной семантической
I таблицей 2а. □ 1.7.2
Теперь мы сформулируем понятия, необходимые для
построения семантических таблиц.
Определение 1.7.3. 1. Вершинами семантической таблицы называются
все помеченные формулы, встречающиеся в этой таблице.
2. Вершина семантической таблицы называется особой, если она
встречается как корень некоторой атомарной семантической таблицы. В
противном случае, вершина называется обычной.
3. Ветвь семантической таблицы называется противоречивой, если для
некоторого высказывания а помеченные формулы ta и /а являются
вершинами этой ветви.
4. Семантическая таблица называется замкнутой, если каждая
непротиворечивая ее ветвь не содержит обычных вершин. В противном
40 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
случае, семантическая таблица называется незамкнутой.
5. Семантическая таблица противоречива, если каждая ее ветвь
противоречива. □ 1.7.3
Определение 1.7.4 (индуктивное определение семантической таблицы).
Построим семантическую таблицу высказывания К следующим образом.
Вначале помещаем помеченную формулу tK (или /К) в корень. Затем
продолжаем построение по индукции.
Шаг п . Пусть мы уже построили семантическую таблицу Тп, п 1.
Шаг п + 1 . Расширим семантическую таблицу Тп до семантической
таблицы Тп + 1. При этом мы пользуемся некоторой вершиной
семантической таблицы Тп, которую в дальнейшем не будем использовать.
Из всех обычных вершин Тп, ближайших к корню, выбираем самую левую.
Обозначим выбранную вершину X.
К концу каждой непротиворечивой ветви семантической таблицы Тп мы
присоединяем атомарную семантическую таблицу, имеющую корнем X.
(При этом вершина X становится особой вершиной.) В результате получаем
семантическую таблицу Тп+ , (как правило, мы не записываем саму вершину
X, так как она уже присутствует в каждой из рассматриваемых
непротиворечивых ветвей).
Построение заканчивается, если каждая непротиворечивая ветвь не
содержит обычных вершин. □ 1.7.4
Поясним описанную методику на примере построения противоречивой
семантической таблицы.
Пример 1.7.5. Рассмотрим закон Пирса ((А —»В) —»А) —* А.
1. В корень таблицы мы помещаем утверждение о том, что выска-
зывание ((Л —> В) —»А) —> А ложно. (См. рис. 1.1) Предположение о
ложности закона Пирса приводит нас к построению противоречивой
семантической таблицы. Следовательно, соответствующая формула
истинна.
2. Если бы мы поместили в корень семантической таблицы утверждения
о том, что закон Пирса истинен, то заключение осталось бы таким же. (См.
рис. 1.2.) Заметим, что в этой семантической таблице нет противоречивых
ветвей. Для каждой из трех альтернатив /А, или tB и /А, или tA утверждение
((А —> В) —> А) —> А)
§ 1.7. СЕМАНТИЧЕСКИЕ ТАБЛИЦЫ 41
/((А -> 5) -> А) -> А) i((A J В) -> А)

t((A->#j^A).^4>

истинно. Даже в случае /В одно из утверждений tA или fA имеет место.


Следовательно, закон Пирса логически истинен. □ 1.7.5
Итак: если замкнутая семантическая таблица с /К в корне
противоречива (а это означает, что мы пытались всеми возможными
способами сделать высказывание К ложным и не сумели), то К —
тавтология.
В следующем определении 1.7.6 этот замысел представлен более
формально.
Определение 1.7.6. Доказательством, или выводом по Бету
высказывания К называется замкнутая противоречивая семантическая
таблица, в корне которой помещена помеченная формула fK. Замкнутая
противоречивая таблица, имеющая в качестве корня tK называется
опровержением по Бету высказывания К.
Говорят, что высказывание К доказуемо, или выводимо по Бету, если оно
имеет доказательство по Бету. Высказывание К называется
опровержимым по Бету, если существует опровержение К по Бету. Тот
факт, что К доказуемо по Бету, обозначается \~ВК. □ 1.7.6
Как мы докажем в теореме 1.10.7 и теореме 1.10.9, каждая тавтология
доказуема по Бету (полнота доказательств по Бету) и, наоборот, каждое
доказуемое по Бету высказывание есть тавтология (корректность
доказательств по Бету). .. • -р. мчъ
42 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
Пример 1.7.7. Предположим, что истинны высказывания:
1: Джордж любит Марию, или Джордж любит Екатерину;
2: Если Джордж любит Марию, то он любит Екатерину.
Кого же Джордж любит?
Обозначим символом М высказывание «Джордж любит Марию» и
символом К высказывание «Джордж любит Екатерину». Тогда вы-
сказывание 1 эквивалентно МУК, а высказывание 2 эквивалентно
М —* К и, следовательно, ~>МУК. Конъюнкцию высказываний 1 и 2, то
есть (М V К) A (~>М V К), обозначим А. По условию примера
предполагается, что А истинно. Мы хотим узнать, любит ли Джордж
Екатерину, или, говоря формально, верно ли tK. Предположим, что он ее не
любит, то есть верно fK. Мы можем построить семантическую таблицу с
корнем fK.
» ’ (n> . ’
•A
fK

' 1((М'. л v r л;, К))

V К)
< f -V !
К ’ «|’Л Jf ,.
t(^M V К)
■Г
С

На шаге 2 мы присоединили К)/\(->МV70), так как 1 и 2 Даны


истинными. Начав построение таблицы с корнем fK, мы получили
противоречивую таблицу. Это означает, что высказывание К всегда
истинно, другими словами, Джордж любит Екатерину!
Если бы мы построили семантическую таблицу с помеченной формулой
fM в корне, то получили бы непротиворечивую таблицу, и, следовательно,
не могли бы заключить, любит Джордж Марию или нет! □ 1.7.7
-і ■? п. •. . !
§ 1.8. Аксиоматическая система вывода

Логика высказываний, подобно другим математическим системам, может


быть представлена как аксиоматическая система с логическими аксиомами
и правилами вывода. Аксиомы — это некоторые тавтологии, правило
вывода R выводит высказывание а из последовательности высказываний
§ 1.7. СЕМАНТИЧЕСКИЕ ТАБЛИЦЫ 43
ст,, <т2,..<т„. Мы опишем вкратце аксиоматическое представление логики
высказываний (см. [Schm60, RaSi7O, Mend64]).
Определение 1.8.1 (аксиомы). Каждое высказывание слег дующего вида
является аксиомой. ■
. . . ;
'Н . PV ОЧ' -Г.
1. —♦\Т > <р). ' уЗОЛгНТЯйМЭЭ
2. (т? -> (т -> а)) -> ((</> -> т) -»(<р — а)).
3. (-^ _» -,т) _(т -> <р).
Заметим, что высказывания 9?, т и а могут быть произвольными. Таким
образом, мы описали схемы аксиом, из которых можно получить
неограниченное число аксиом. Легко проверить, что все эти аксиомы
являются правильно построенными формулами логики высказываний и,
конечно, тавтологиями. □ 1.8.1
Определение 1.8.2 (правило вывода Modus Ponens). Мы будем
использовать только одно правило вывода, правило Modus Ponens, которое
утверждает, что высказывание т выводится из высказываний 9? и -+ т.
Правило Modus Ponens’) своим названием обязано Диогену Лаэртскому
(Diogenes Laertius), см. [Zeno]. Оно обозначается следующим образом:
•? '.л .‘‘ ‘
•< ■; ■ ■■ >

‘ '■ ' 'с! г м’ч

или "'' ' " *''■


р-*т\-т ■■ ■ (2)
' ?' □ 1.8.2 tk

В (1), типичном определении логического правила, горизонтальная


линия отделяет гипотезы от заключения. В (2) символ I- обозначает
выводимость в аксиоматической системе. Мы рассматриваем три аксиомы
определения 1.8.1 как формулы, выводимые в аксиоматической системе.
Новые высказывания получаются при помощи этих трех аксиом и правила
Modus Ponens. В следующем примере 1.8.3 демонстрируется, как можно
применить аксиомы и правило Modus Ponens для вывода формулы логики
высказываний А —> А.
1
) В русской математической литературе это правило называют правилом заключения.
— Прим, перев.
§ 1.8. АКСИОМАТИЧЕСКАЯ СИСТЕМА ВЫВОДА 45

Пример 1.8.3. Докажем, что I- А —> А.


Доказательство. Сначала возьмем первую ,жад»му н
•■І 34 > <І'С :
РА-4«В-»А)^А). (1)
Вторую аксиому запишем в виде
Р (А —> ((В —» А) —> А) -» (((А -> (В - А)) -4 (А -А)). (2)
Из (1) и (2) по правилу Modus Ponens получаем, что
р-(А—»(В —> А)) —»(А —> А). (3)
Используя вновь первую аксиому А —> (В —♦ А), по правилу Modus
Ponens заключаем, что РА—» А. Следовательно, высказывание А —»А
выводимо в нашей аксиоматической системе. □ 1.8.3
Следующая теорема 1.8.4 позволяет производить в высказываниях
замену одних подформул на другие, логически им эквивалентные.
Доказательство теоремы можно найти в упражнении 22.
Теорема 1.8.4 (подстановка эквивалентных формул). Пусть
высказывание ст-^сГ] выводимо в PL, а — подформула высказывания <р, и
высказывание получено в результате подстановки в высказывание вместо
некоторых вхождений формулы а эквивалентной ей формулы ст,. Тогда

Р а 4-4 at => Р <р w .


высказывание </?<-»</?) также выводимо в PL. Формально записываем:
□ 1.8.4
Теперь мы приведем формальное определение доказательства вы-
сказывания аксиоматическим методом.
Определение 1.8.5. Пусть S — множество высказываний.
1. Доказательством, или выводом из S называется такая конечная
последовательность высказываний а}, а2,..., стп, что для каждого 1 г п верно:
а) сц принадлежит S, или
б) сг — аксиома, или
в) сг получено из а., ак, где 1 j, к < і, по правилу Modus Ponens.
2. Высказывание а называется доказуемым, или выводимым из
множества высказываний S, если существует такое доказательство сг2,..ап
из S, что ап совпадает с а. Для обозначения выводимости высказывания а из
множества высказываний S будем использовать запись S Р а.
3. Высказывание а называется доказуемым, или выводимым, если Р ст,
то есть а выводимо в аксиоматической системе определения 1.8.1 при
помощи правила Modus Ponens. Отметим, что если
46 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
S = 0, то понятие выводимого из множества S высказывания совпадает с
понятием выводимого высказывания. □ 1.8.5
Пример 1.8.6. Выведем -iB —»(С —> А) из S = {А}. Имеем: 1) A —AeS;
2)А—>(С—»А)— аксиома 1; • .»
3) С —> А — Modus Ponens к 1 и 2; '■ д ; ,
4) (С -> А) - (->В -> (С - А)) — аксиома 1; л

5) —♦ (С -> А) — Modus Ponens к 3 и 4. □ 1.8.6
Заметим, что если а выводимо из S и S — бесконечное множество, то а
выводимо из некоторого конечного подмножества S, так как
доказательство всегда конечно.
Следующая теорема 1.8.7 является основной в теории доказательств.
Теорема 1.8.7 (теорема дедукции). Пусть S —множество высказываний;
К, L—высказывания. Тогда ■
4> S\-K-+L. '

Доказательство. (4=) Предположим S h К —♦ L. Рассмотрим


доказательство ах, а2,..., ап формулы К —♦ L, в котором ап есть сама
формула К —> L, и для каждого і Є п} либо о; — аксиома, либо Є S, либо
выводится из двух предшествующих высказываний с использованием
правила Modus Ponens. Тогда последовательность ст1( ст2,..., ап, ап +,, стп + 2,
где ап+] есть К, а <тп+2 есть L, является доказательством L, так как для
каждого і Є{1,..., n, п+1} либо —аксиома, либо ст, є5и{7<}, либо выводится
из двух предшествующих высказываний с использованием правила Modus
Ponens, <тп + 2 выводится из ап и <тп+1 с использованием правила Modus
Ponens.
(=>) Мы знаем, что существует доказательство L из S U {ТТ}.
Обозначим его через £2,..., Ln, где Ln есть L. Рассмотрим последовательность
высказываний
K-.LV K-^L2, .... K-*Ln.
Эта последовательность не является доказательством. Однако, она
превратится в доказательство, если мы дополним ее высказываниями,
полученными следующим индуктивным методом.
Для L j возможны три случая: L , — аксиома, либо L ( принадлежит S,
либо Lj есть К.
Высказывание L , —♦ (К —> £,) — аксиома 1. Поэтому в первых двух
случаях мы запищем Lx и L, —> (К —> L х) перед К —♦ Lx. В последнем
случае теорема верна (пример 1.8.3).
Предположим, что мы дополнили последовательность вплоть до
высказывания К —» Lm таким образом, что первые т элементов
последовательности вместе с дополняющими ее элементами составляют
доказательство К —> L .
Тогда мы запишем между К —♦ Lm и К -+ Lm+I еще v высказываний так,
что первые т + I элементов последовательности вместе дополняющими ее
элементами составят доказательство К —» Lm Высказывание Lm + 1 либо
аксиома, либо принадлежит S, либо есть К, либо получено из Ljt Lk (1 j, к <
т) по правилу Modus Ponens. Другими словами, Lk имеет вид Lj Lт+х.
§ 1.8. АКСИОМАТИЧЕСКАЯ СИСТЕМА ВЫВОДА 47
В первых трех случаях мы поступаем аналогично тому, как поступали
выше, то есть записываем между K-*LmnK~>-Lm+l высказывания Lm + ( и Lm+1
—»(К —* Lm+ J. В четвертом случае по индуктивному предположению
первые т элементов последовательности вместе с дополняющими ее
элементами составляют доказательства К —+ и К -+ (Lj —* Lm+X).
Дополним последовательность высказыванием
(К -> (L • -> Lm+,))- {(К L}.) Lm+X)),
представляющим собой аксиому 2.
Тогда К -*Lm+l можно вывести, если дважды последовательно применить
правило Modus Ponens. Заметим, что при доказательстве теоремы дедукции
мы использовали только две из трех аксиом аксиоматической системы.
□ 1.8.7
Аксиомы логики высказываний часто называют логическими ак-
сиомами. Обычно мы определяем теорию, расширяя аксиоматизацию
логики высказываний множеством S дополнительных аксиом, которые
характеризуют теорию. Теоремы теории S являются элементами множества
S у>} (см. замечание 1.8.8).
Замечание 1.8.8. 1. Аксиоматическая система. Аксиомы PL и правило
Modus Ponens составляют аксиоматическую систему Фреге-Лукашевича
(см. [Heij67, Воуе68, Schm60]). Фреге (Frege, 1898 - 1925) стал первым, кто
определил формальный язык, подходящий для логики. Лукашевич
(Lukasiewicz, 1878 - 1926) разработал аксиоматизацию логики
высказываний.
2. Modus Ponens. Если а и а —* г доказуемы по Бету, то а и а —♦ т
логически истинны, следовательно, т также логически истинно (почему?).
Известен алгоритмический метод, позволяющий строить доказательство по
Бету высказывания т из доказательств по Бету высказываний о и о —♦ т.
Этот метод применяется в теореме Генцена, однако его доказательство
выходит за рамки этой книги.
3. Теоремы. Теоремой является любое высказывание, присутствующее в
доказательстве. Это означает, что теоремы теории S — это в точности
элементы множества высказываний {ст: S Ист}. Обычно мы считаем
заключением последнее высказывание доказательства, однако, фактически,
каждый начальный фрагмент доказательства также является
доказательством. о и
."•»
4. Выбор аксиом. В следующих параграфах мы покажем, что методы
аксиоматических доказательств корректны и полны. Таким образом,
выбранная нами аксиоматическая система является полной. Это означает,
что каждая тавтология может быть доказана из аксиом последовательными
применениями правила Modus Ponens.
5. Доказуемость по Бету. Наши аксиомы, будучи логически истинными
высказываниями, доказуемы по Бету. Используя правило Modus Ponens, мы
из логически истинных высказываний получаем также логически истинное
высказывание. Следовательно, каждая теорема доказуема по Бету.м
6. Аксиомы и правила. Любую из аксиом аксиоматической системы
можно заменить правилом. Например, третью аксиом^
48 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
-Й ' —>-IT) —> (т —> V?) I-Г” • Г-. ’

Можно было бц заменить правилом * -,й


' -цр —♦ ‘ ’
------------ иг. fiot’o:;
•‘'-чЬлчА ‘V- Ь-'. т —»"Л, SJUUK
Выбор между аксиомами и правилами — это обычно вопрос субъективной
оценки характерных требований теории.
7. Вывод из аксиом. При доказательстве высказывания из аксиом мы
рассматриваем различные комбинации высказываний, пытаясь определить
такую, которая позволяет подходящим образом применить правило Modus
Ponens и аксиомы. В результате, вывод некоторых высказываний,
например,

оказывается сложным и продолжительным, даже если бы нам было заранее


известно, что и первая, и вторая аксиомы будут применяться дважды.
В отличие от этого, доказательства по Бету, введенные в определении
1.7.6, предоставляют систематический алгоритмический метод, всегда
приводящий к некоторому результату. По этой причине мы предпочитаем
работать с доказательствами по Бету. □ 1.8.8

Л § 1.9. Метод резолюций


' Терминология и обозначения в логическом программировании

Метод резолюций — наиболее эффективный способ алгоритмического


доказательства как в логике высказываний, так и в логике предикатов.
Именно этот метод построения доказательств составляет основу языка
логического программирования ПРОЛОГ. Метод
§ 1.9. МЕТОД РЕЗОЛЮИЙ 49
резолюций, как и метод семантических таблиц Бета, строит доказательство
путем опровержения, но при этом он более удобен для написания
логических программ в языке программирования, который устроен почти
так же, как язык логики высказываний.
Для того, чтобы ввести резолюцию, нам необходимо определить
некоторые важные понятия современного логического программирования.
Определение 1.9.1. Литерал — это произвольный атом или его
отрицание. □ 1.9.1
Например, -1А, В, -'С— литералы.
Нам известно, что произвольную формулу логики высказываний можно
привести к конъюнктивной нормальной форме (КНФ), эквивалентной
исходному высказыванию. КНФ — это по сути конъюнкция дизъюнкций
литералов, причем в каждой дизъюнкции никакой литерал не встречается
более одного раза.
Теперь мы опишем алгоритм построения КНФ для заданного вы-
сказывания, который работает немного быстрее, чем алгоритм, основанный
на построении таблицы истинности высказывания, выборе строк и т. д.
Этот алгоритм состоит в применении:
1) законов де Моргана: / . ул .... £
-i(A А В) ->А V В, ->(А V В) <-> ИЧ!

2) свойств ассоциативности А и V: ..к


(AAB)AC^AA(BAC), (A vB)v6?wkvfB^C);
V. ; ’■■■■■ Z .Э
3) свойств коммутативности Л и V: >Р -%ОН эть ;ап

4) свойств дистрибутивности Л
А:
А А В w В A A, А V В «-» В V А;
относительно V и V относительно

А Л (В V С) <-» (А Л В) V (А Л С),

А V (В А С) (А V В) А(А V С);
5) свойств:

AAAWA, AVA<-+A, A f\(B М-УВ)<-+А\


А"ЦВ'^В)^А, ^А<-*А
и теоремы о подстановке эквивалентных формул. (В качестве упражнения
докажите, что перечисленные высказывания являются тавтологиями.)
. ................... . ......
Продемонстрируем на примере описанный метод построения
50 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
Пример 1.9.2. Представим высказывание S в КНФ, где ■;;;-
>. В: -((A VB)A(-A VB))AC. *

Шаг I. Используя законы де Моргана, вносим отрицания внутрь скобок:


....
S<->((-\A VB)Vn(nA V-B))AC, -
S w((-A A-B)V(—A V—B))AC '
Шаг 2. Используя свойства коммутативности и ассоциативности, собираем
вместе литералы одного и того же атома. Затем, используя теорему о
подстановке эквивалентных формул, мы можем упростить двойные
отрицания, выражения вида AVAHAAA, а также устранить излишние
выражения вида А V -А и А Л -А:
S ~ ((-А Л -В) V (А V В)) Л а
Шаг 3. По свойству дистрибутивности имеем:
В^>(((-А Л-В) V А)Л(-А A-B)VB))AC. ■'
Затем мы повторяем второй и третий шаги до тех пор, пока не определим
окончательную КНФ.
Шаг 4. В <-♦ ((-А Л-В) V А) А (~>А Л-В) V В) Л С,
Шаг 5. В «-► (-А V-А) Л (-В V А) Л (-А V В) Л (-В V В) Л (7,
Шаг 6. BW(-BVA)A(-AVB)AC.
В результате получена искомая КНФ. □ 1.9.2
Последняя форма В в примере 1.9.2 есть конъюнкция дизъюнкций
литералов и эквивалентна исходной формуле. В общем случае описанный
алгоритм заканчивает работу, когда получена следующая форма
высказывания В: ..
(A;vA'v...A‘)A...A(ArvA2^v...vAn,' <*)
где А,, А2,..., А£,..., Af, А2,. •А£ —литералы.
В контексте построения доказательств методом резолюций оказывается
целесообразным формулировать высказывания как множества литералов.
Например, высказывание в первых скобках в (*) переходит в множество
{А}, А2,..., Аь}. .у.-цблу;»?
Мы считаем, что такое множество обозначает дизъоджанвлнтера- лов,
т. е. высказывание логики высказываний,.*, А
Теперь мы формально определим понятие теоретико-множественной
формы высказываний.
Определение 1.9.3. Дизъюнкция конечного множества литералов может
быть представлена в теоретико-множественном виде как множество,
элементами которого являются рассматриваемые литералы. Это множество
называется дизъюнктом. Таким образом, дизъюнкт эквивалентен
дизъюнктивному высказыванию логики высказываний.
§ 1.9. МЕТОД РЕЗОЛЮИЙ 51
Мы также введем понятие пустого дизъюнкта, то есть дизъюнкта,
который не содержит ни одного литерала и является всегда
неподтверждаемым. Пустой дизъюнкт обозначается значком □.
□ 1.9.3
Определение 1.9.4. Конъюнкция конечного множества дизъюнктов
может быть представлена в теоретикомножественном виде как
множество, элементами которого являются эти дизъюнкты. Это множество
называется множеством дизъюнктов. Таким образом, множество
дизъюнктов представляет собой конъюнкцию дизъюнкций, то есть
конъюнктивное высказывание логики высказываний. □ 1.9.4
Пример 1.9.5. Множество дизъюнктов
{^В}, (_£>}}
1 2 3Т ■
. >. і; .
представляет высказывание
((Av В) к (^В V -С) Л D ). ’< •
і 2 з
tlfV'.S'l-:'--;
,■ ■<- .......,„r □ 1.9.5
Замечание 1.9.6. 1. Очевидно, что истинностное озна
чивание подтверждает множество дизъюнктов, если оно подтверждает
каждый дизъюнкт этого множества. Например, пусть S = = {{А, В}, {-’О'}}
— множество дизъюнктов и V —такое истинностное означивание, что
V(A) = V(B) = V(C)= t.
Тогда V не подтверждает S, так как оно не подтверждает один из элементов
S, а именно, {->(?}.
2. Конечно, мы можем также рассматривать пустое множество
дизъюнктов {0}, которое не следует путать с пустым дизъюнктом □.
Формально каждое истинностное означивание подтверждает пустое
множество дизъюнктов, так как оно подтверждает каждый из его элементов
(в дизъюнктах {0} нет ни одного высказывания, см. доказательство
следствия 1.5.4). І
В отличие от этого, каждое множество дизъюнктов, содержащее пустой
дизъюнкт, не может быть подтверждено никаким истинностным
означиванием, так как □ неподтверждаем.
В сущности, пустое множество дизъюнктов обозначает, что к «миру»
(множеству высказываний) не предъявляются никакие «требования»
(высказывания), в то время как пустой дизъюнкт □, обозначая
противоречие, тем самым вносит это противоречие в наш мир, делая его
противоречивым, то есть неподтверждаемым. □ 1.9.6
В логическом программировании, а также в большинстве версий
ПРОЛОГа, преобладает следующая система обозначений.
Пусть S — высказывание
A] V.,.VAjkV(-BI)V...V(-Bz),
52 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
где А],.,., Ак, Д,..., Bt —атомы. Тогда, согласно законам де Моргана и
эквивалентности (-^В V А) <-> (В -* А), мы имеем
S А) V ... V A^V-ДД А ... А Д)~
^(Д А...А-Д)-»(А1 V...VAJ
и, в итоге,
S~(A, V...VAJ<-(B, А...АД). (1)
Относительно использования «— как логической связки см. также
замечание 1.2.9. В дальнейшем вместо логических связок A, V и <— мы
будем использовать символы «,» (запятую), «;» (точку с запятой) и
символьную комбинацию «: —» соответственно. В результате S может
быть эквивалентно записано в виде
А1;...;АА:-Д,...,Д. ‘ (2)
'При к — 1 высказывание (1) примет вид:
А,:-Д,...,Д. (3)

Определение 1.9.7. Дизъюнкт S вида (3) называется хор- новским


дизъюнктом.
Атом А] называется заголовком, или целью S; конъюнктивные
компоненты Д,..., Д называются хвостом, телом, или подцелями S. □ 1.9.7
Содержательное истолкование хорновского дизъюнкта таково: для того,
чтобы цель А была истинна, достаточно, чтобы подцели Д,..., Д были также
истинны.
Определение 1.9.8. Если в дизъюнкте вида (2) к = 0, то дизъюнкт
, ' '--В........А - 'Д.' X/ <4>
Называется целью программы, или положительной целью..1*.:.
Если I = 0, то дизъюнкт
А,:- (5)
называется унитарным дизъюнктом, или фактом □ 1.9.8 Замечание 1.9.9.
1. Множество дизъюнктов S может неформально рассматриваться как база
данных (см. также раздел 3.1.1), так как дизъюнкты в S представляют
информацию о взаимосвязи между атомами, из которых они состоят.
2. Подтверждение цели А в дизъюнкте А : —ВИ ..В{ вытекает из
подтверждения подцелей В,,В,. В этом случае говорят, что цель А успешна,
или что существует доказательство А. В противном случае говорят, что
цель А неуспешна, или неудачна').
3. Хорновский дизъюнкт (4), обозначающий отсутствие цели,
утверждает, что по меньшей мере одна из подцелей Віг г — 1,..., I,
неуспешна. Хорновский дизъюнкт (5) обозначает, что цель А{ всегда
успешна. В этом случае А} составляет требование, факт нашей базы
данных. □ 1.9.9
Вообще говоря, резолюция представляет собой дедуктивное правило,
позволяющее нам выводить дизъюнктивное высказывание из двух других
§ 1.9. МЕТОД РЕЗОЛЮИЙ 53
дизъюнктивных высказываний. Прежде, чем описать формальный метод,
рассмотрим пример.
Пример 1.9.10. Рассмотрим следующие дизъюнкты: {-’А, В}, (А, С}.
Используя резолюцию, мы можем вывести дизъюнкт {В, С}.
Применение такого правила становится интуитивно понятным, если мы
переформулируем вышеозначенные дизъюнкты в классической
формулировке логики высказываний:
исходные высказывания: (->А V В), (А V С); :■■■,.у. Л заключение: (В V
С). <
В этом правиле применяется тавтология . ... .
HVB)V(AVC)-(BVC).
Как свидетельствует теорема о полноте (теорема 1.10.9), тавтологии
выводимы из аксиом с использованием правила Modus Ponens:
Е (-А V В) V (А V С) —> (В V С).
По теореме дедукции (теорема 1.8.7) мы получаем, что
{(nAvB),(AvC)}h(BvC).
Таким Ъбразом, правило резолюции выводимо в лоі&ке высказываний. •'
■ . , □ 1.9.10
’) Если нет других дигмонкто*с ■-■т <

Обобщим предыдущий пример, рассматривая рассматривая в качестве


исходных данных следующие дизъюнкты:
' '•' и С,={А„.4!,...,А^,-В„...,^}, * ■; С ^2 ~ • • Ч ~'^1’ * • ‘I

где А,, А2,А^, В{,..., В^, DI,D2,..., D^,FI,...,F^ — атомы.- Предположим, что
А, совпадает с F{.
Мы можем переписать эти дизъюнкты следующим образом:
Ci^{Ai}uq, где C1'={A2,...,Av-2?1,...)-BiJ)
/ C2 = bA,}uq, где C' = {D},D2,..., D4,-,F2,...,^}. ■
Тогда по правилу резолюции можно вывести дизъюнкт С = C'U С2.
Другими словами,
исходные высказывания: Сх = {AJ U С[, С2 = {^AJ U С2;
заключение: С/U С2 = (^--{A]}) U(C2 - {->А]}). (*)
Мы можем считать, что дизъюнкты С, и С2 «вступают в противоречие»,
так как С} содержит литерал Alf а С2 — литерал —>А]. Устранение причины
противоречия приводит к дизъюнкту (*), который разрешает конфликт.
Своим названием метод обязан этому разрешению1). Теперь мы формально
определим метод резолюций.
Определение 1.9.11 (резолюция, формальное описание). Пусть С, и С2 —
54 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
дизъюнкты, L — такой литерал, что L Е Сх и -'L Є С2. Тогда резольвентой
дизъюнктов Сх и С2 называется дизъ- ЮН КТ
D = (Ci~{L})U{C2~{-^L}).
□ 1.9.11
Пример 1.9.12. Исходные высказывания: С, = {ДQ}, С2 = = {-іД-’Q};
заключение: D = {Q, ->Q}. □ 1.9.12
Если мы имеем множество, содержащее более двух дизъюнктов, то
можно ввести понятие множества резольвент.
Определение 1.9.13. Пусть S = {Сх,..., Сп}. Множество Я(5) = S(J {D: D —
резольвента дизъюнктов Ct, С-, 1 i, j n} называется резольвентой S. □ 1.9.13
Пример 1.9.14. Пусть S — множество дизъюнктов, ■ ■;

< 1-23 р

’) От английского to resolve (разреивть). — Прим, перев.


§ 1.9. МЕТОД РЕЗОЛЮИЙ 55

Применяя правило резолюции для пар дизъюнктов S, мы получим


дизъюнкты 4, 5, 6:
1 {4,-Д-С} 2 {В, D} 3 {-А,-пГ>}
2 {В,Р} 3
1 {А^В^С}
4 {A,D,->C} . 5 {В^А} 6 {-^B^C^D}
И, в итоге,
R(S) = { {А,ЧЗ,-.С}, {В,Р],{^А,-.Р}^Р -.С}, ;i4! {B,^4},bB,^D}}.

і;.,'!»-

5 6

Мы можем продолжить применять этот метод, последовательно получая


множества: /і
R°(S) = S, R'(S) = R0(S)UR(S),
R2(S) = R(S) U R(R(S)),..Rn(S) = Rn~ l(S) U R(R^{S)).
И, затем, •*'
* ! ‘ R*(S) = U fl"(S) = {<?<: C.eR^S) и j eN}, •/’ n = 1 <’ V
где Сг —дизъюнкт, содержащийся в j-й резольвенте S.
Заметим, что R*(S) конечно тогда и только тогда, когда S конечно.
□ 1.9.14
Замечание 1.9.15. 1. В примере 1.9.12 мы применили резолюцию по
литералу Р. Мы могли бы применить резолюцию и по литералу Q, так как,
очевидно, Q также является причиной противоречия.
2. Содержательная подоплека метода резолюции такова: если
истинностное означивание подтверждает С} и С2, то оно также
подтверждает их резольвенту D. Аналогично, если истинностное
означивание подтверждает S, то оно также подтверждает R(S).
3. Заметим, что резольвента D дизъюнктов Сх и С2 содержит меньше
информации, чем С, и С2. Это поясняет следующий пример 1.9.16. □ 1.9.15
Пример 1.9.16. Рассмотрим множество дизъюнктов S — = {{А,В},{-В}}. к
Исходные высказывания: ^ = {4,5}, С2 = {-іВ}; заключение: Л = {А}.
W г
Применяя резолюцию к S, мы получаем дизъюнкт D = {А}, который не
содержит никакой информации о литерале В. □ 1.9.16
Теперь мы дадим формальное определение доказательства методом
резолюций.
Определение 1.9.17. Пусть S — множество дизъюнктов. Резолютивным
выводом из S назовем такую конечную последовательность дизъюнктов
56 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ

С,,..., СТ1, что для каждого Cit і — 1,..., п, либо Сг е S, либо С, Є R({Ц, Ск}), 1
у, к п. Дизъюнкт С считается резолютивно выводимым из множества
дизъюнктов S, и этот факт обозначается S hR С, если существует
резолютивный вывод из S, последний дизъюнкт которого — С. Очевидно,
что CeR*(S). □ 1.9.17
Пример 1.9.18. Найдем резольвенту множества дизъюнктов

Перенумеруем дизъюнкты S: 1 — {А, В}, 2 — {-'А, ~'В}. Из дизъюнктов 1 и


2 получаем дизъюнкты 3— {В, -'В) и 4 — {А, ->А}. ...» Затем
Я'(5) = {{А, В}, {-А,-В}, {В,-В}, {А,-А}}. .4
В итоге получаем
R*(S) = R°(S) U R'(S) = {{А, В}, {-нА, -В}, {В, -В}, {А, -А}}.
Дизъюнкт вида {А, ~’А}, а именно А V -іА, является тавтологией.
□ 1.9.18
Пример 1.9.19. Дано высказывание
S: ((A w {В С)) A (A w В) /\ (А «-»-С)). 4 ....
Докажем, что S неподтверждаемо. nw.f.h
Доказательство. Шаг 1. Определим КНФ высказывания S: ь ■« •
-'Ц* Sw((A —* (ВС)) А ((ВС) —> А) А (А —► В)А
л (в А) л (А -> -о л (-с - A)w ■
<-> Hv"BvC!A (В V А) Л (-С V А) Л (nA V В) Л. .4
' 1 2 3 4 ,К
л(-пвVA)A(-A V-C)A(Cv^A) г
5 6 7
П'”

Шаг 2. Сформируем соответствующее множество дизъюнктов:


S ={{-Л, -.в, С}, {В, Л}, ЬС,А}, {-,Л, В}, _■ ;
4111
-<-■ <>■- ■■ |Z s—г "\г——4 ’ 'v HtJ.U
' 2 3 4
{-В, A}, {-A,-C},{C,-A}}. v —J
Щ а г 3. Определим различные резольвенты: г 4 ''
8) {Л} — резольвента 2 и 5; 5
9){-іА,->В}— резольвента 1 и 6;
10) {-’4} — резольвента 4 и 9; ■■ •<>. •••*>,
11) □ — резольвента 8 и 10,
(См. также определение 1.9.8. Литерал -<А уничтожается, дизъюнкт 11
не содержит литералов.)
Так как мы получили пустой дизъюнкт (резольвента 11), то множество
дизъюнктов S неподтверждаемо. Следовательно, высказывание S
невыполнимо. □ 1.9.19
Пример 1.9.20. Доказать, что высказывание ~^В резолютивно выводимо
из множества
§ 1.9. МЕТОД РЕЗОЛЮИЙ 57

S = {{А, -В}, {-А, -В, -.С}, {-А, -В, С}}.

Доказательство. Построим резолютивный вывод дизъюнк* (■’•О).


„ .. „ . , :•
1) {А,-В}-дизъюнкт из S; .iXnXw 2) {->А, ->В, -іС} — дизъюнкт из S;
ЯлгяйЯ
3) {-іА,->В, С}—дизъюнкт из 8; '• отя
4) {->А,->В}— резольвента 2 и 3; ^г". «»,
5) {-‘В] — резольвента 4 и 1. □ 1.9.20
Замечание 1.9.21. Доказательство в примере 1.9.20 можно было провести
следующим образом.
Применяя резолюцию к множеству
S, = {{А^В],{^А, -~В, -'В, С], {В}} = ЗЩВ], -
1 2 3 4 ...
ь VB-M !
-.fV a
построим ВЫВОД j I.•.» ”■ .■
5) {А} — резольвента 1 и 4; ‘ ''
6){->А,-’В} — резольвента 2 и 3; ‘
7) {-'А} —резольвента 4 и 6;
8) □ — резольвента 5 и 7.
То есть, верно S U {В} □. Так как правило резолюции — вы
водимое правило логики высказываний (как мы видели в примере 1.9.10),
то верно также и соотношение 8и{В}ЬП. Но в этом случае, по теореме
дедукции (теорема 1.8.6) мы имеем S К {В } —»□.
Используя тавтологию (В -*□)+-> ->В, приходим к заключению о том,
что 8h->B, или, другими словами, ->В выводимо из S.
□ 1.9.21
Эй ••■‘Л.•>».-’’Ч 7» ■ ’АТ- і І-Ч"- ’■
§ 1.10 Корректность и полнота > ІС
( , метода семантических таблиц

В следующих параграфах мы докажем теоремы корректности и полноты


описанных методов доказательств. Мы начнем с доказательств
корректности и полноты системы вывода по Бету.
Для всех последующих определений и теорем, включающих понятия
«доказательство по Бету» и «логически истинно», имеются со-
ответствующие двойственные определения и теоремы, относящиеся к
двойственным понятиям «опровержение по Бету» и «логически ложно».
Формулировку этих определений и теорем мы оставляем читателю в
качестве упражнения.
Мы докажем, что все выводимые по Бету высказывания истинны
(корректность) и, наоборот, каждое логически истинное высказывание
выводимо по Бету (полнота) (см. [Smul68]). Доказательства проведем
индукцией по длине высказывания или длине семантической таблицы. Мы
58 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ

уже описали схему индукции для высказываний. Теперь опишем общую


схему индукции для семантических таблиц.
Определение 1.10.1 (схема индукции для семантических таблиц). Пусть
R — некоторое свойство семантических таблиц. Тот факт, что таблица Т
обладает свойством R, обозначим R(T). Как только мы докажем, что
а) каждая атомарная семантическая таблица обладает свойством R,
б) если Т обладает свойством R, и Т'— новая семантическая таблица,
полученная присоединением некоторой атомарной семантической таблицы
к концу одной из ветвей Т, то Т' также обладает свойством R,
то мы можем заключить, что R — свойство всех семантических таблиц, то
есть R(T) имеет место для каждой семантической таблицы Т. □ 1.10.1
Для семантической таблицы Т индукция проводится по длине Т, то есть
числу атомарных семантических таблиц в ней.
Аналогия между схемой индукции для высказываний (определение
1.2.2) и схемой индукции для семантических таблиц очевидна.
Пример 1.10.2. Пусть/?—свойство «Число вершин в семантической
таблице не превосходит числа ветвей». Покажем, что все таблицы
обладают этим свойством.
Доказательство. l.Bo всех атомарных семантических таблицах число
вершин не превосходит числа ветвей.
2. Предположим, что в семантической таблице Т число вершин не
превосходит числа ветвей.'Присоединим к концу одной из ветвей Т
некоторую атомарную семантическую таблицу. Если присоединенная
вершина — это или f(-'a), то число вершин увеличилось
на одну в то время, как число ветвей осталось без изменения. Если
присоединенная вершина — это вершина любого другого типа, то,
согласно определению 1.7.1, появятся не более двух новых ветвей и не
менее двух новых вершин. Следовательно, в новой семантической таблице
Т' число вершин также не превосходит числа ветвей.
□ 1.10.2
Теперь мы рассмотрим некоторые вспомогательные определения и
леммы, относящиеся к теоремам корректности и полноты доказательств по
Бету.
Определение 1.10.3. Пусть х — непротиворечивая ветвь в семантической
таблице Т, и Р = {Р,,..., Рп} — множество вершин х. Истинностное
означивание V называется согласованным с ветвью х, если для каждой
вершины Р£ из Р выполняются соотношения

p. = ta^V(a)=t и Р< =/а => V(a) =/. □ 1.10.3

Лемма 1.10.4. Пусть V —истинностное означивание, согласованное с


корнем to (fa) семантической таблицы, то есть V(a) — t (V(a) = f ). Тогда
V согласовано с некоторой ветвью семантической таблицы.
§ 1.9. МЕТОД РЕЗОЛЮИЙ 59

Доказательство. Воспользуемся индукцией.


1. Лемма, очевидно, верна для атомарных семантических таблиц.
2. Предположим, что лемма верна для семантической таблицы Т. Пусть
Т' — семантическая таблица, полученная из Т присоединением атомарной
семантической таблицы с корнем X к концу ветви х. Мы докажем, что
лемма верна для семантической таблицы Т'.
Случай 1. Предположим, что V согласовано со всеми вершинами ветви х.
Тогда V согласовано с вершиной X и, следовательно, согласовано с одной
из ветвей атомарной семантической таблицы с X в корне. Обозначим xt
ветвь атомарной семантической таблицы, с которой согласовано V. Ветвь
хх]( полученная конкатенацией х и г,, является ветвью Т'. Следовательно,
мы нашли ветвь хх, семантической таблицы Т', с которой согласовано V.
Случай 2. Предположим теперь, что V не согласовано с х, но согласовано
с корнем Т (иначе нам не нужно ничего доказывать). Тогда найдется другая
ветвь х' семантической таблицы Т, с которой V согласовано. Но х' — также
ветвь Т'. Следовательно, V согласовано с х'. □ 1.10.4
Лемма 1.10.5 (Хинтикки). Пусть х — непротиворечивая ветвь
замкнутой семантической таблицы. Определим истинностное
означивание V, полагая для каждого атома А : ,..гЧ
1Л(4) = t, если % содержит вершину tA,
V(A) — f, если % не содержит вершину tA.
Тогда истинностное означивание V согласовано с ветвью х.
Доказательство. Проведем индукцию по длине высказываний в
вершинах этой ветви.
1. Если А —атом, и tA — вершина х, то lz(A)= t и V согласовано с х.
Если fA — вершина х, то наша ветвь не содержит вершину tA, так как х
непротиворечива. Следовательно, V(A) = f.
2. Допустим х содержит вершину t (а, А <т2). Ввиду того, что се-
мантическая таблица замкнута, эта вершина уже была однажды во-
стребована, и, следовательно, соответствующий фрагмент

-WTC-’ 'У' "A j .'


■ irf"

£<72 ‘ «e'-'v'-

был присоединен к концу ветви X. . ’■< М О


Поэтому вершины to, и £<т2 также содержаться в ветви х. По
предположению индукции У(гТ,) = t И У(ст2) = І, ТО ЄСТЬ V((71A<72) = =
t. Предположим теперь, ЧТО ветвь X содержит вершину /(<7]АСГ 2).
Поскольку семантическая таблица замкнута, вершина f{a{f\a2) уже была
однажды рассмотрена, и, следовательно, фрагмент .. ■■
/.«'V ■
60 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ

был присоединен к концу ветви х. Но в этом случае либо либо /<7 2


является вершиной х. Учитывая индуктивное предположение, это означает,
что справедливо хотя бы одно из двух соотношений V(at) = f или f.
Отсюда следует, что 1/(<7] А <т2) = /.
Остальные возможные случаи анализируются аналогично. Мы их
оставляем читателю в качестве упражнения. □ 1.10.5
Лемма Хинтикки дает нам алгоритм построения контрпримера,
опровергающего предположение об истинности заданного высказывания.
Предположим, что нам дано высказывание о. Тогда мы строим
замкнутую семантическую таблицу с fa в корне. Если семантическая
таблица противоречива, то высказывание логически истинно. Если
семантическая таблица непротиворечива, то она содержит по меньшей
мере одну непротиворечивую ветвь %. Лемма Хинтикки указывает нам,
как, основываясь на х, построить истинностное означивание, такое,
4moV(a)=f. . ... -
рассмотрим описанные действия на примере.
Пример 1.10.6. Найти такое истинностное означивание V, что V((Л В) w
(А V В)) = f. Построим семантическую таблицу с /((А —» В) <-> (А V В)) в
корне:

/(A -> /(А -> В)


B)
r ' ЦІЇ'
■;
/(AVB) 8 '>7 -Avk's t(A V В) Ма
<4 /'Л»|
1- =
TH,.А | \ ЭЯ; ,^0'ЇТ; 1 »<•(<•■’
С.1)
Аиис f tB і A WMIC
1 Ч /r?'' І .ХОД V
Т ■ V- 1
'3: ■ Чів’ЗІ 1 on tB> 1 '".->ТЪМ

■;■ f ... s '• fA -I /В
AI і УЛ;/ p
.- 1 Дт.ДМ-.Ц • г.
tivM
у'4,’X* f ' .і . /В -’*" ■ tA tB
«B 1к 1
1 «з
t OV'Pt ® •'' Off'Лі.../
■/ RH-.ч,
>4 * 2
к
-» 4
“’ ' •l|’ К4
' ?;ад \.гэ- ■ ;
!',У $У .'А.'Av.
4
Ветви ж, и этой семантической таблицы противоречивы. Однако, мы
§ 1.9. МЕТОД РЕЗОЛЮИЙ 61

можем применить лемму Хинтикки к непротиворечивым ветвям х, и «з- В


результате получим, например, такие истинностные означивания V, и V2:
VSA) = f, Vt(B) = f V3(A)=t, V3(B) = f,
что
VJ((A —> В) (A V Б)) = V3((A - В) ~ (A V B)) = /.
Таким образом, мы отыскали два истинностных означивания, при которых
высказывание (А —+B)«~>(AvB) принимает истинностное значение /.
□ 1.10.6
Теорема 1.10.7 (корректности). Если высказывание а доказуемо по Бету,
то оно логически истинно. Формальная запись:
' :■ ■■ ■ ■ к:. i J а =Ф |= сг. .

Доказательство. Если высказывание а не является логически истинным,


то найдется истинностное означивание V, для которого V(a) = f. По лемме
1.10.4 каждая семантическая таблица с помеченной формулой fa в корне
имеет хотя бы одну ветвь Z, с которой согласовано с V, и поэтому, х
непротиворечива (почему?). Следовательно, а не доказуемо по Бету.
□ 1.10.7
Замечание 1.10.8. При доказательстве теоремы 1.10.7 мы
воспользовались третьей аксиомой

на уровне нашего метаязыка. Вместо того, чтобы доказывать Р2 => =>Р], т.


е. что доказуемость а по Бету влечет логическую истинность а, мы
доказали, что -.Р, => ->Р2. Другими словами, если а не является логически
истинным, то а не доказуемо по Бету. Такой метод доказательства
используется довольно часто и называется непрямым доказательством или
доказательством от противного. (Прямой метод доказательства
подразумевает непосредственное обоснование следствия P^=^Pt)- □ 1.10.8
Теорема 1.10.9 (полноты). Если высказывание а логически истинно, то
оно доказуемо по Бету. Формальная запись:

[= <7 => F в а.

Доказательство. Если высказывание а логически истинно, то для


каждого истинностного означивания V верно V(a) = t. Предположим, что
вывод по Бету для а не существует. Мы построим замкнутую
семантическую таблицу с помеченной формулой fa в корне. Эта
семантическая таблица должна иметь непротиворечивую ветвь. По лемме
1.10.4 найдется соответствующе определенное истинностное означивание
V, которое согласовано с этой ветвью, а значит, и с корнем fa. Тогда V(a)
62 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ

= /, а это противоречит тому факту, что а — логически истинная формула.


Следовательно, доказательство по Бету для а обязано существовать.
□ 1.10.9
Из доказательства теоремы полноты можно заметить, что если мы не
можем построить доказательство по Бету для высказывания а (а именно,
замкнутую семантическую таблицу с fa в корне), то есть построенная
замкнутая семантическая таблица имеет хотя бы одну непротиворечивую
ветвь, то мы можем точно также, как в лемме 1.10.5, определить
истинностное означивание, которое будет контрпримером,
опровергающим утверждение о том, что а логически истинно. Другими
словами, построение семантической таблицы для а гарантирует, что мы
получим либо доказательство а, либо контрпример для а-. > ... .
t л. ,S ’ '
;Л:
I
§ 1.11. Дедуктивный ВЫВОД из гипотез

Теорема компактности ■

Автоматический вывод теорем из предположений и данных — одна из


важных задач логического программирования. В параграфе 1.5 мы
рассматривали логические следствия из множества высказываний S.
Высказывание а было названо логическим следствием S, то есть S а, если
каждое истинностное означивание, делающее истинными все
высказывания S, приписывает также значение t высказыванию а. Теперь
мы определим, что означает вывод высказывания из множества
высказываний и предположений.
Определение 1.11.1. Пусть

Pl, Р2, • • •> <Рп, • • •

— конечная или бесконечная последовательность высказываний.


Высказывание а называется дедуктивно выводимым по Бету из
высказываний , <^2,..., <рп,..., если существует противоречивая
семантическая таблица, построенная следующим образом.
Шаг 0. Помещаем fa в корень.
Шаг S2n. Присоединяем tipn к концу каждой непротиворечивой ветви.
Шаг 52П+|. Применяем правила расширения (см. определение 1.7,1) к
семантической таблице предыдущего шага Т2п. □ 1.11.1
Если последовательность высказываний бесконечна, то такое по-
строение может никогда не завершиться. Высказывание а дедуктивно
выводимо по Бету, только в том случае, если построение заканчивается, и в
результате получена противоречивая семантическая таблица. Тогда
интуитивно понятно, что не существует истинностного означивания,
§ 1.9. МЕТОД РЕЗОЛЮИЙ 63

которое приписывает истинностное значение t всем высказываниям <рп,


участвовавшим в построении семантической таблицы, и одновременно с
этим приписывает истинностное значение / высказыванию а. Если
исходная последовательность конечна, то указанная процедура когда-
нибудь завершится построением замкнутой семантической таблицы.
Проиллюстрируем описанное построение на примере.
Пример 1.11.2. Докажем, что высказывание А дедуктивно выводимо по
Бету из высказываний и {А V В). Строим семантическую таблицу с /А в
корне, присоединяя утверждения и t(A V В) (см. рис. 1.3). у

. ............ [ .
f с 'і і ' !А ! • І■‘
. ' ru J» 1 . . \ і(-В) 3

ХичЧАд .
.-Г >,■ t(A V В) ••. . і я ;>• < м t • .
'■150 гАтр ■” Г'/ ' ’ / ■ 1'ЬДЬ>'
~ ц J и я sг-,'J ‘, л:: , ■>- .*» >. tA !>f
’ tB ".,1 :-п-. ; < : :.IV,
М’-К-ТГЭДЭГ. ; .»•> ■::
і•;?, 1 <:?
< - ■ f. ’AV '■! ".
>■■■’ . ■ ... . с г Л'і■■
/В w ЛІ
■ ,ij| і

1
«у.
0 1Л- • *£«!:’•;
‘А’ «І
Рис. 1.3 ’-•'.'■й .;■? о
Рассмотрим t(A V В). Левая ветвь этой таблицы противоречива, и далее
ее можно рассматривать. При анализе правой ветви нужно обратить
внимание на вершину t(->B). Правая ветвь таблицы оказывается также
противоречивой. Следовательно, А дедуктивно выводимо по Бету из -В и
(А V В). 0 1.11.2
Две последующие теоремы 1.11.3 и 1.11.4, относящиеся к конечным
множествам предположений, соответствуют теоремам корректности и
полноты из предыдущего параграфа 1.10.
Теорема 1.11.3 (теорема корректности дедуктивного вывода). Если
высказывание а дедуктивно выводимо по Бету из высказываний у?,, у?2,...,
у?п, то а является логическим следствием высказываний у?2, •••>¥’„■
Формальная запись:
¥>2, • • •> {^|, <Р2> • • •> ¥>n} f= °-

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


Предположим, что высказывание а не является логическим следствием
у?], у>2, ..., у>„. Тогда найдется такое истинностное означивание V, что
V(y?1) = ... = V(y?n)=t, У(а) = /.
64 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ

По лемме 1.10.4 каждая семантическая таблица с корнем fa содержит хотя


бы одну ветвь, с которой согласовано V, и, следовательно,
непротиворечива. Это означает, что а не может быть доказуемым по Бету
из {у?|, у>2,..., у?п}. □ 1.11.3
Теорема 1.11.4 (теорема полноты дедуктивного вывода). Если
высказывание а является логическим следствием высказываний у?!, <р2,...,
<рп, то а дедуктивно выводимо по Бету из вы-, сказываний <р 2,...,
Формальная запись: J
' {у?,, <рп} \= а <р2, ...,У>П}ЬВ а. , |
Доказательство. Предположим, что высказывание а не является
дедуктивно выводимым по Бету из </?], <р 2,..Тогда мы можем построить
полную непротиворечивую семантическую таблицу с корнем fa, каждая
ветвь которой содержит вершины ty>p t<p2,..t<pn. В этой семантической
таблице найдется непротиворечивая ветвь. По лемме 1.10.5 существует
истинностное означивание V, согласованное с этой ветвью. Следовательно,
= ... = V(y’n) = t и V{a) = f. Однако это противоречит условию теоремы,
согласно которому а — логическое следствие высказываний ^2, •••>
□ 1.11.4
Замечание 1.11.5. Теоремы 1.11.3 и 1.11.4 корректности и полноты
остаются верны, если последовательность {<р А: k Є N] содержит
бесконечное число элементов. □ 1.11.5
Теперь мы можем сформулировать и доказать теорему компактности
для логики высказываний. Введем основное определение.
Определение 1.11.6. Последовательность а2,ап называется выполнимой,
если существует такое истинностное означивание V, что V(at) — V(a2) =...
= V(an) — t. При этом говорят, что V подтверждает последовательность
а2,..ап. □ 1.11.6
Пример 1.11.7. Если А(, А2,... — последовательность атомов, то
бесконечная последовательность
Ар А2, А] Л А2, А3, А|ЛА3, А2ЛА3, ...
— выполнима. Истинностное означивание V такое, что
V(A1) = V(A2)=... = V(An) = ... = t,
подтверждает эту последовательность. Напротив, конечная после-
довательность высказываний .
Ар А2, (А|—* А3), (_,А3)
может служить примером невыполнимой последовательности. В самом
деле, если мы предположим, что она выполнима, то найдется такое
истинностное означивание V, что
V(A,) = V(A2) = V(A, А3) = V(->A3) = t.
Отсюда следует, что справедливо соотношение У(А 3) = /. Но в таком
§ 1.9. МЕТОД РЕЗОЛЮИЙ 65

случае из равенства V(Aj) —* V(A3) — 4 вытекает V(Af) — f, что


противоречит предположению V{A{) — t. □ 1.11.7
Прежде, чем сформулировать теорему компактности, приведем
определение и лемму, необходимые для ее доказательства.
Определение 1.11.8. 1. Пусть X и Y — две вершины семантической
таблицы. Назовем Y последователем X, если существует ветвь, проходящая
через X и Y, в которой X расположена

3 Г. Метакиденс, А. Нероуд

ближе к корню, чем Y. Назовем Y непосредственным последователем X,


если X —последователь У, и в ветви, проходящей через X и Y, между X и Y
нет ни одной вершины. Назовем X подходящей вершиной, если она имеет
бесконечное число последователей.
2. Мы говорим, что семантическая таблица имеет конечную степень
ветвления, если для каждой ее вершины найдется только конечное число
ее непосредственных последователей. □ 1.11.8
Лемма 1.11.9 (лемма Кенига). В семантической таблице, имеющей
конечную степень ветвления и содержащей бесконечное число вершин,
найдется хотя бы одна бесконечная ветвь.
Доказательство. Заметим, что корень семантической таблицы с
бесконечным числом вершин является подходящей вершиной. Более того,
если X — подходящая вершина, то хотя бы один его непосредственный
последователь также является подходящей вершиной, ибо семантическая
таблица имеет конечную степень ветвления. Следовательно, если взять
корень Хо, а затем в качестве Х1 того непосредственного последователя Хо,
который является подходящей вершиной, а затем в качестве Х 2 того
непосредственного последователя Xit который является подходящей
вершиной, а затем... и т. д., то получим ветвь Х0Х|Х2..., имеющую
бесконечное число вершин. □ 1.11.9
Теорема 1.11.10 (теорема компактности). Пусть <т2, •• • — такая
бесконечная последовательность высказываний, что для каждого п
конечная последовательность а2,..., ап выполнима. Тогда бесконечная
последовательность а,, а2,... также выполнима.
Доказательство. Опишем индуктивное построение семантической
таблицы, которая, вообще говоря, может быть бесконечной.
Шаг 1. Помещаем в корень таблицы.
Шаг 2 п . Присоединяя tan к концу каждой непротиворечивой ветви
таблицы Т2п_,, получаем таблицу Т2п.
Шаг 2 п + 1 . Выбираем в Т2п самую близкую к корню обычную вершину,
расположенную как можно левее, и применим к ней правила
развертывания определения 1.7.1.
При этом будем полагать, что построение завершается, если на нечетном
шаге 2п + 1 в семантической таблице все ветви противоречивы. (Если они
непротиворечивы, то мы можем продолжить построение на шаге 2n+ 1.)
66 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ

Если построение завершилось, то мы получили противоречивую


семантическую таблицу с корнем /(-icrj и гипотезами а,, а2,...,vn. По теореме
1.11.3 это означает, что -io-] является логическим следствием оу, сг2,..., (7П,
и, следовательно, ст,, <т2,..., ап невыполнима вопреки условию теоремы.^
'•
§1.13. КОРРЕКТНОСТЬ И ПОЛНОТА МЕТОДА РЕЗОЛЮЦИЙ 67
Таким образом, построение никогда не завершается, т. е. семантическая
таблица содержит бесконечное число вершин. Построенная семантическая
таблица имеет конечную степень ветвления, так как число
непосредственных последователей у каждой ее вершины — конечно.
Следовательно, по лемме Кенига в ней найдется бесконечная ветвь %, в
которой для каждого высказывания а,, і = 1,2..., содержится вершина tat.
Определим1) истинностное означивание V:
V(А) = t о А — пропозициональный символ и tA — вершина ж.
Тогда по лемме Хинтикки мы можем вывести, что V'(a1)=t для каждого і, и
последовательность ст(, ст2,..., ап выполнима. □ 1.11.10
■л'Л-v i<v
,v Т ■' § 1-12- Корректность и полнота
аксиоматической системы вывода

Теперь мы сформулируем теоремы корректности, полноты и ком-


пактности аксиоматических методов. Доказательства этих теорем читатель
может найти в большинстве книг по классической логике. См., например,
[К1ее52, Rasi74, RaSi70].
Теорема 1.12.1 (корректности и полноты). Высказывание а выводимо из
множества высказываний S тогда и только тогда, когда о —логическое
следствие S. Формальная запись:
S\-a^SY=a. □ 1.12.1
Следствие 1.12.2. Высказывание а выводимо из S =04Ф а —логически
истинно. □ 1.12.2
Теорема 1.12.3 (компактности). Множество высказываний S выполнимо
тогда и только тогда, когда выполнимо каждое его конечное
подмножество. □ 1.12.3

§ 1.13. Корректность и полнота метода резолюций

Следующие теоремы касаются корректности и полноты метода


резолюций.
Теорема 1.13.1 (корректности и полноты метода резолюций).
Множество дизъюнктов S невыполнимо тогда и только тогда, когда RII(S)
содержит пустой дизъюнкт. Формальная запись:
DeR*(S)&S невыполнимо. □ 1.13.1
Предпошлем доказательству корректности метода резолюций
вспомогательную лемму 1.13.2.
Лемма 1.13.2. Если { С}, С2} — выполнимое множество дизъюнктов, и С
— резольвента Q и С2, то С выполнимо.
Доказательство. По определению правила резолюции имеем С\ — {р} U
С]', С2 — {->р) U С2 и С = С| U С2 для некоторого литерала р. Если V —
II Используемая стратегия построения семантической таблицы гарантирует, что
каждое высказывание <т{ будет «разобрано» на атомы. — Прим, перев. • • ■ •

з«
68 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
истинностное означивание, подтверждающее {Ц, С2}, то либо У(р)=і, либо
V(~7>)=i. Предположим, что V(p)=£. Так как V(C2)=t и У(-»р) = /, то V(C2)~t.
Поэтому V'(C')= t. Если V(-^p)— t, то V(C[)~ t, и мы вновь приходим к
заключению V(С) = t. □ 1.13.2
Теорема 1.13.3 (корректности метода резолюций). Если R*(S) содержит
пустой дизъюнкт, то то S — невыполнимое множество дизъюнктов.
Формальная запись:
□ Є R*(S) => S невыполнимо.
Доказательство. Пусть С,,..., Ск — резолютивный вывод из S. Тогда,
применяя предыдущую лемму, по индукции можно доказать, что любое
истинностное означивание, подтверждающее S, подтверждает также С*.
Если заключение — это пустой дизъюнкт, то Ск совпадает с □. Так как
пустой дизъюнкт невыполним, то S невыполнимо. □ 1.13.3
При доказательстве полноты метола резолюций воспользуемся
следующей вспомогательной леммой 1.13.4.
Лемма 1.13.4. Пусть S — невыполнимое множество дизъюнктов, в
котором встречаются только литералы Ан А2,... ..., Ак. Пусть Зк'1 —
конечное множество дизъюнктов, резолютивно выводимое из S, в котором
встречаются только атомарные высказывания А{, А2,..., Afc_i. Тоеда Sk~l
невыполнимо.
Доказательство. Предположим, что Sk~1 выполнимо. Тогда найдется
истинностное означивание V множества литералов {Ац А2,..., АА_]},
подтверждающее Sk~l. Пусть Vt и V2 — два такие расширения V, что
^(AJ=i, V2(Ak) = f.
Множество дизъюнктов S невыполнимо, поэтому найдется дизъюнкт С\ Є S,
который не подтверждается V{. Тогда ->Ак Є ибо в противном случае обе
альтернативные возможности приводят к противоречию: ы
а) Ак и V{ подтверждает С,; I
б) Ак е С,, и 'Ц подтверждает Сх. 3
Аналогично мы можем заключить, что найдется дизъюнкт С2 Є S,
который не подтверждается и содержит атом Ак.
Рассмотрим Ь =(С|— {-и44})и(С2 — {Ак}). Дизъюнкт D является
резольвентой Cj и С2, и Следовательно, V подтвержда
ет D. Другими словами, имеет место один из следующих вариантов
а) V подтверждает С\ — {-iAfcJ. тогда подтверждает Сх. Получаем
противоречие.
б) V подтверждает С2~ {Ак}. Но тогда V2 подтверждает С2. Получаем
противоречие.
Следовательно, SIII-1 невыполнимо. □ 1.13.4
IIISj ; § 1.14. Упражнения
1.14.1. Докажите, что согласно определению высказывания сле-
дующие выражения являются высказываниями:
а) р: (А V (В Л С) w (А V В) Л (А V С));
б) g: ((А V В) —> С) —>(->А Л С));
§ 1.14. УПРАЖНЕНИЯ 69
Теорема 1.13.5 (полноты метода резолюций). Если S — невыполнимое
множество дизъюнктов, то из S резолютивно выводим пустой дизъюнкт.
Формальная запись:
S невыполнимо => OER‘(S).

Доказательство. По определению 1.9.3 множество S содержит конечное


число литералов. Обозначим их Av ..Ak. Применяя лемму 1.13.5, можно
заключить, что В*"1 невыполнимо. Применив эту же лемму к раз, мы
заключим, что S° невыполнимо. Так как никакое атомарное высказывание
не содержится в дизъюнктах S°, и S°Q R\S), то □€ В0 С R*(S). □ 1.13.5
Замечание 1.13.6. Если а — высказывание, резолютивно выводимое из
множества высказываний S, то а выводимо из S (определение 1.8.5). Тогда
по теореме полноты (теорема 1.12.1) можно заключить, что
S 1~й сгоВ1-<7<=>В[=сг. (1)
По теоремам корректности и полноты (теоремы 1.10.6 и 1.10.8) со-
отношение (1) может быть обобщено следующим образом:

S\~Ra^S\~ga<^S\~a<^S\=a. □ 1.13.6

в) г: ((A,AA2)V(-A3)).
Решение, а) Мы докажем, что выражение р является высказыванием,
построив р индуктивно в соответствии с определением 1.2.1:
1) А, В, С — высказывания по определению 1.2.1, 1;
2) (В Л С) — высказывание по определению 1.2.1, 2 и п. 1;
3) А V (В Л С) — высказывание по определения 1.2.1, 2, а также пп. 1 и
2; „ ;t.re '' Г ) Л> и
70 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
=- -- - • - =— ■— -— •— - — ■- ■ '— - і
4) (А V В) и (Л V С) — высказывания по определению 1.2.1, 2 ' и п. 1;
5) (А V В) Л (А V С) — высказывание по определению 1.2.1, 2 . И п. 4;
6) р: (АУ (В AC)«(AV В)Л(АУ С)) — высказывание по onped делению
1.2.1, 2 и 5. \
Задания б) и в) решаются аналогично.
1.14.2. Определите, какие из следующих выражений являются!
высказываниями, а какие — нет:

a) (AA5)V->; б) ((А Л В) V (-.С))-» В; . , г) А <->В)—


в) (AVB)V~*C; >(А VB); і№И;- е) (А, Л А2) ~->А3. !
д) (А Л В)—» А; і--V
ІП* -V--

Решение, а) Это не высказывание, так как за V следует логическая связка,


к которой не относится никакое высказывание.
б) Это высказывание согласно определению 1.2.1 (этот факт обос-
новывается точно также, как в упражнении 1).
в) Это не высказывание, так как за V следует логическая связка, а не
высказывание.
г) Это не высказывание, неправильно расставлены скобки.
д) Это высказывание согласно определению 1.2.1 (для обоснования
этого факта см. упражнение 1).
е) Это высказывание согласно определению 1.2.1 (для обоснования
этого факта см. упражнение 1).
1.14.3. Представьте следующие высказывания атомарными символами
и постройте из них составные высказывания:
а) «12 делится на 2», «9 делится на 3», «11 делится на 2»; ;
'*>
б) «все квадраты — параллелограммы», «все ромбы — параллело-
граммы», «во всяком параллелограмме диагонали точкой пересече^ ния
делятся пополам»; ■!
в) «Джордж является отцом», «У Джорджа есть ребенок», «МэряН
является отцом», «У Мэри есть ребенок». '
Решение, а) Введем следующие обозначения: ... . . :
А: «12 делится на 2», ■ .. d
11
В: «9 делится на 3», ... ... 1
Ч
\• '-руд '*■ І .
С: «11 делится на 2». А
Тогда АУВ, (АлВ)—»(?, (АУВ)Л(->С) и А ->(ВЛ->С) — примеры
составных высказываний, в которых используются символы А, В и С.
Выражение (А Л В)—» С, конечно, является высказыванием, однако, по
всей видимости, соответствующее ему утверждение будет неверным.
Задания б) и в) решаются аналогично. -у
1.14.4. Даны атомарные высказывания: Л*.
А,: «3 — простое число»; А3: «2 делится на 3»;
§ 1.14. УПРАЖНЕНИЯ 71
А2: «15 делится на 3»; А4: «13 делится на 3».
a) Определите некоторое означивание F этих высказываний.
b) Пусть WF — истинностное означивание, являющееся расширением F.
Вычислите Wr((A, AA2)->(A3VA4)).
Решение, а) Рассмотрим, например, означивание:
; ■ г F(A,) = /, \ F(A2)=t, ...........7................;
. j F(A3) = /, . F(A<)=t..................... J
6) МО" Я Р

^((А, А А2) (А3 V А4)) = WF(A, Л А2) WF(A3 V А4) = = [^(А.) П WF(A2)]
[WF(А3) и 1УР(А4)1 =
— х- = [F(A1)nF(A2)]^[F(A3)UF(A4)] =
....
= /— « = t П (К) ‘<г;
1.14.5. Докажите, что следующие высказывания являются тавто-
логиями:
а) (АЛ-^А)—«А; В) А->->- А;
б) (А-+В) V (А-+-iB); г) [(A VB)- С) ~[А —»(В -» С)].
Решение, а) Рассмотрим означивание W(A) — t, а также его расширение
W'. Тогда
. W'[(A/\^A)-^A]=W'(A^^A)^W'(A) =
4 . . =[W'(A)nW'(^A)\^W'(A) =
-.........;-■=[И^)П(~И%4))]^1У'(А)= '
....=[W(A)n(~IV(A))]-^IV(A)= ;
•; /’ . - =[t п(~і)]-» і = І ; І ; і і
.............-■ =[!□/]•*♦(= -™-—і-, я-4
= /^і = t. ....дЛі...
Рассмотрим теперь означивание W(A) = f и его;:расшнреййе Wf.
Таким же способом мы можем заключить, что ;
РИ'[(АЛ-,А)->А] = t. , • л ..........................\ ,1
72 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ

Итак, для любого истинностного означивания высказывание а истинно.


Значит оно является тавтологией.
Задания б), в) и г) решаются аналогично.
1.14.6. Докажите, что следующие высказывания логически ложі ны: б)
(-4 V (В А-В)) ^4; г) -<(4 А В) А (4 В) А 4.
а) (4 Л-4); в) (Л-В)А(В-С)А(АА-С);
Решение. . г) Выпишем всевозможные означивания *ГОД<3 из г): ,t ’
1) W(4) = t,ИДВ) = t; ш

2) W(4) = t,W(B) = f; ;
v
3) W(A) = ff W(B)~ t- ' '' <
4) W(A)= fW(B) = f ,
Затем для каждого из указанных означиваний W найдем/соотіфіда вующие
истинностные означивания W', расширяющие Ж^.Няіїрі мер, для 1)
имеем
И"Н4 А В) А (4 —»В)л4] =
= W'[^(A hB)]nW'[(A —»B)A4] =
- • = (~Г(4АВ)ПГ(4-»В)ПГ(4) =
7 = (~(Г(4)пГ(В))П(Г(4)^1У'(В))пГ(А)«\
(~(W(4)nIV(B))n(IV(4)^IV(B))nIV(4)=i
’ = (~[t п t])n[t t]n t = ■ 'Ь
7■ ~ f П І П f = /П Z = /. 7
Аналогично вычисляются истинностные означивания для случаев 2), 3) и
4). В каждом из этих случаев мы получаем W'[-’(4 А В) А А (4 —> В) А 4]
— f. Таким образом, формула г) противоречива.
Пункты а), б) и в) решаются аналогично.
1.14.7. Заполните следующую таблицу истинности:

4 В -14 -B A^B -4V В (4 B)+->(^AV B)

t t
t f
t
f

f f
§ 1.14. УПРАЖНЕНИЯ 73

1.14.8. Докажите, что следующие высказывания логически экви-


валентны:
а) -«(А Л В) и -14V-1B; .fij.
б) А V (В Л С) и (4 V В) Л (А V (7);
в) 4 V В и В V А;
г) А-*В и ^В^~-А.
Решение, б) Построим таблицы истинности для обоих высказываний и
убедимся, что последние колонки этих таблиц совпадают:

А В c В AC Av В AVC AV(B Л C) (AV В)Л(А V C)

t t t t t t t t

t t f f t t t t

t f t f t t t t

t f f f t t t t

f t t t t t t t
t t
f f f f f f

f f t f f t f f

f f f f f f f f
Итак, А V (В Л С) и (4 V В) Л (4 V С) логически эквивалентны.
Пункты а), в) и г) решаются аналогично.
1.14.9. С использованием таблиц истинности докажите, что сле-
дующие высказывания являются тавтологиями:
Кг a) (4vB)VCw4V(BvC); >(
б) (A AB)AC<-> АЛ(В Л С);
. в) А V В w В V А;
г) A w -і-tА;
д) AV(BAnB)wA;
е) А Л (В V -1В) w А;
•-.4; ж) AA(BVC)W(AAB)V(AAC);
з) A V(B ЛС)«-+(А VB)A(A VC);
и) -I(AVB)W(-IAA-IB); .. ; ,
к) -i(A Л В) w (->А V -«В), м -Sr: 1 ш 'r>.
74 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ

1.14.10. Пусть S = {А V В, А —♦ С}. Докажите, что S В V С.


Решение, Построим таблицу истинности высказываний из
множества S:

Из таблицы видно, что существуют четыре означивания, при которых


все высказывания из S становятся истинными. Проверим, что в каждом из
этих случаев высказывание В V С также обращается в истину. Имеем
W(A)=t, W(B) = t, W(C) = t, W(B\/C)=W(B)uW(C)=tUt = t.
Точно так же можно обнаружить, что W(B V С)= t справедливо и для трех
других означиваний, при которых одновременно выполняются W(A/\B)=t и
W(A С) — t. Таким образом, S В V С.
1.14.11. Пусть S = {А С, В D, (A VB)A(C V D)}. Докажите, что 5 (А AB)
V(СА В).
Решение. Постройте таблицу истинности для высказываний из
множества S и определите означивания, при которых эти высказывания
обращаются в истину. Далее докажите, что имеются в точности три таких
истинностных означивания. Затем надлежит вычис| лить соответствующие
истинностные значения для (AAB)V(CAB)! В двух из этих трех случаев (A
A B)V(СЛ D) становится ложным!
1.14.12. Докажите, что если {А, -iB} |= С Л ->С, то {А} |= В. • Решение.
Предположим, что {А} В. Тогда существует таН кое истинностное
означивание W, что W(A)=t и И^(В) = ^
и, следовательно, — Таким образом, W позволяет об
ратить в истину как А, так и В. Значит высказывание С Л->С тоже должно
§ 1.14. УПРАЖНЕНИЯ 75

быть истинным при означивании W. Другими словами, W(C Л ->С) = t. Но


тогда W(C) П W(->C) = t. Следовательно, W(С) = W(->C) =t и ІУ(-.С) =~
IV(C) =~ t = /, что является противоречием. Поэтому исходное
предположение неверно, и {А} |= В.
1.14.13. Пусть Sx и S2 —два множества высказываний. Выясните, какие
из следующих утверждений верны:
а) Con(Sx U S2) = C'on(S'1) U Con(S2);
б) Con(Sl П S2) = Con(S]) n Con(S2).
Верные утверждения докажите, неверные — соответственно опро-
вергните контрпримером.
Решение, а) Докажем, что Con(S{) U Con(S2) С Con(Sl U S2).
Предположим, a € Con(S,)uCon(S2). Тогда либо cr Є Con(Sx), либо ст Є
Con(S2). Поскольку Sx C мы имеем Con(Sx)C Con(SxL) U S2) (см. следствие
1.5.8). Аналогично, из S2 С S{ U S2 вытекает Con(S2) С Con(Sl U S2). Таким
образом, ст Є Con(Sl U S2), или, другими словами,
Con(Sx) U Con(S2) С Con(Sx U S2).
Однако обратное включение Con(Sx U S2) С Con(S{) U Con(S2), вообще
говоря, несправедливо. Рассмотрим Sx = {А}, S2 = {А -* В}. Легко заметить,
что для каждого означивания W, подтверждающего одновременную
выполнимость А и А —»В, высказывание В также обращается в истину.
Значит,
В Є Con(Sl и S2). (1)
Однако, В $ Con(Sx). Чтобы убедиться в этом, достаточно рассмотреть
означивание Wx, при которой WZ1(A)= t и WX(B) — f. С другой стороны, В
Con(S2). Подтверждением тому может служить истинностное означивание
W2, при котором W2(A) — f, W2(B)~f. Очевидно, при этом W2(A —>B)=t.
Следовательно В <£ Con(SxuS2). Учитывая (1), мы получаем
Con(Sl U S2) £ Con(Sx) U Con(S2).
Таким образом, утверждение а) в общем случае неверно.
б) Приведем контрпример. Предположим П S2 = 0. Согласно следствию
1.5.4 мы имеем Con(Sxr}S2)= Соп(0). Последнее множество формул
образовано всевозможными тавтологиями. Рассмотрим далее случай Sx —
{А} и S2 = {В}. Тогда А V В принадлежит как Con(Sx), так и Con(S2),
поскольку каждое означивание, обращающее в истину элементы Sx или
элементы S2, также делает истинным и высказывание Av В. Однако A VB
не является тавтологией (почему?). Значит утверждение б) неверно.
1.14.14. Докажите, что из S U {А} [= В следует S \= А В.
Решение. Допустим 5и{А}}=Д. Тогда каждое означивание W,
подтверждающее все элементарные высказывания из S U и{А}, также
обращает в истину и В. Иными словами, для каждого означивания W, при
котором ИДС) = t для каждого С Є S, равенство W(A)=t неизбежно влечет
W(B)=t. Тогда W(A—*B) — = W(A)->W(B)=t->t = t. Значит, S |= А —> В.
76 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ

1.14.15. Для произвольного непротиворечивого множества выска-


зываний S докажите, что |
S U {у?} противоречиво <=> S |= -*р.
Решение. (=>) Предположим, S U {92} — противоречивое множество.
Поскольку S непротиворечиво, существует по крайней мере одно
означивание W, такое, что для всякого высказывания ае S выполняется
W(a)=t. Если W(p) = t, то S U {р} — непротиворечивое множество вопреки
предположению. Значит W(p) — f, что влечет IV(-i(lp)= t для всякого
означивания W, при котором W(<r) = t для каждого а € S. Таким образом, S
|= -кр.
(4=) Верно и обратное. Предположим, что S]=-,p. Тогда для каждого
истинностного означивания W такого, что W(a)~ t для любого
высказывания и из S, будет справедливо W(-yp) = t, а следовательно и W(p)
= f. Это означает, что всякий раз, когда все элементы из S принимают
значение t, высказывание р имеет значение f. Значит множество S U {<р}
противоречиво.
1.14.16. Представьте приведенные ниже утверждения как множества
высказываний PL и определите, какие из получившихся множеств
являются непротиворечивыми.
S}: Свидетель был испуган, или в том случае, если Джон совершил
самоубийство, записка была обнаружена. Если свидетель испуган, то Джон
убил себя сам.
1.14.17. Любовь слепа, но счастье нам доступно, или любовь
слепа, а женщины гораздо умнее мужчин. Если счастье нам доступно, то
любовь совсем не слепа. Женщины не более умны, чем мужчины.
Решение. Выразите утверждения из 5, и S2 формулами и постройте для
них таблицы истинности. Далее воспользуйтесь определением 1.5.5.
1.14.18. Докажите, что если С Con(S2), то Con(Sl U S2) = = Con(S2).
1.14.19. Пусть Q—множество высказываний1), a S — непротиворечивое
подмножество Q. Назовем S максимальным непро-

') Содержащее вместе с каждым высказыванием сг и его отрицание ->а.— Пр\


перев.
тиво речивым множеством, если всякое множество S' такое, что S С S' С
Q, является противоречивым.
Докажите, что непротиворечивое подмножество S является мак-
симальным непротиворечивым множеством тогда и только тогда, когда для
каждого высказывания о Є Q справедливо в точности одно из следующих
утверждений: а Є S, -ча Є S.
Решение. (=>) Допустим, что S — максимальное непротиворечивое
множество высказываний. Рассмотрим а Є Q такое, что o^S. Тогда S — это
собственное подмножество множества S' = S и {<?}, которое
противоречиво по определению S. Таким образом, если означивание W
§ 1.14. УПРАЖНЕНИЯ 77

подтверждает все высказывания из S, оно опровергнет о. Так как W(a) = f,


мы имеем W\-<u) = t. Следовательно, -чт принадлежит S; иначе S было бы
собственным подмножеством и мы получили бы, что W(p) = t для каждого
у? Є S", в том числе и W(-<a)= t. Другими словами, S" было бы непроти-
воречивым, вопреки предположению о том, что S — максимальное
непротиворечивое множество.
Точно так же мы можем доказать, что если ->а S , то о є S.
(4=) Предположим, что S непротиворечиво, и для каждого а Є Q
справедливо ТОЛЬКО ОДНО ИЗ двух включений (а е S) И (-47 є S). Мы
докажем, что S — максимальное непротиворечивое множество
высказываний.
Пусть S' — такое множество, что S С S' С Q. Рассмотрим у? Є Є (S''— S).
Тогда у? Є S', p $ S и -чр Є S (почему?). Напомним, что S непротиворечиво.
Следовательно, для любого означивания W, при котором истинны все
высказывания из S, мы получим W(-<p) = t, или W(p) = f . Но в таком
случае не существует означивания, при котором истинны все высказывания
из S', поскольку ->р є S С С S' и р Є S'. Следовательно, ввиду того, что
противоречиво любое множество S' такое, что S с S' С Q, приходим к
заключению, что S — максимальное непротиворечивое множество.
1.14.20. Даны высказывания: A: <KLMN— параллелограмм»; В:
«диагонали KLMN делятся точкой пересечения пополам»; С:
«противоположные углы KLMN равны»; D: «противоположные стороны
KLMN равны».
Определите, является ли множество S = {A, A w В, А С, А —+ —♦(В Л
D)} непротиворечивым.
1.14.21. Доказать, что не существует логической связки о, сое-
диняющей два высказывания языка PL, отличающейся от | и : (см. пример
1.6.5), и такой, что множество связок {о} образует полную систему.
Решение. Пусть о — такая логическая связка, что А о В синтаксически
корректная формула языка логики высказываний. Существует столько
различных возможностей для определения таблицы
78 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ

истинности А о В, сколько существует четырехместных наборов,


образованных истинностными значениями t и f, т. е. 16.

jl

■н
1
м■ іІ,'

^Содержательный смысл ot, 1 г 16, станет более ясным, ЙЫ если


воспользуемся следующими равносильными формулами
1-І!
olB = -'AvA, (истина); °
ог B = i(A VB), (А\В из прй^^5^'';ї ?'
°з t’
°4 В = ^А\
°5 В = В-*А;
■ .* ' °6 В=-^В;
■ :СА<А °7 “У' Л ■’ іЛііАг «5^: Ж’ ''.О’ІОГ.І?-''. •
'У" А (А: В из
А B=n(4vB), Ч
°8
°9 ВНП(ЛУВ);
А <: л"Т- ч< *
о10 В =-,(А w он В В); :,<р ->!й \НЙ‘'лГ Г!
~В ; >.І’М-В ИС&Я .г.?£іі"у
°i2-B s->(A -» В);
'И!
°13 В^А;
°14 В=^(В->А);
°15 В =(А АВ);

О16 В = ->А л А, (противоречие).


§ 1.14. УПРАЖНЕНИЯ 79

Указанная таблица истинности содержит логические связки, в том


числе, относящиеся только к одному высказыванию, например о4 и о6. Эта
задача, таким образом, позволит нам сделать более общее заключение,
касающееся множества всех связок.
Для каждой связки о Є {он..., о16} можно отметить следующее: если А о
В принимает значение t в случае, когда оба высказывания А и В истинны,
то множества {о} недостаточно для нашей цели. Дело в том, что отрицание
-> не может быть выражено посредством о: сколько бы раз не встречался
символ о в формуле, выражающей отрицание, значение формулы всегда
будет t и никогда не будет /, если и А и В имеют значение t. Значит °
{°11 °3> °5’ °7> °91 °1И °13’ °15> }•
По той же причине если А о В принимает значение f в случае, когда оба
высказывания А и В означены f, то множества {о} также недостаточно для
полноты: отрицание -і нельзя выразить при помощи о. Значит о £ {о9, о10,
Оц, о12, о13, он, о15, о16, }.
Если о — о4, то множества {о} недостаточно, так как -п-^А = А. Мы
всегда будем иметь либо А, либо ->А, сколько раз бы ни встречалось
отрицание, так что нам не удастся выразить Л или V. Следовательно, о о4,
и по аналогичной причине о / о6.
Если же 0 = 02 или о = Од, то {о} достаточно, как мы уже видели в
примере 1.6.5.
1.14.22. При помощи метода семанических таблиц докажите
истинность следующих высказываний:
а) ->(А Л В) w(-nA V--B);
б) (А Л (А В))—* В;
в) ((А Л В)-*£)«-♦ (А-* (В -+С)У, / \
г) ((А —» В) л (А —» (7)) —»(А—► (В л С)); .;
д) ((A-»C)A(B-»C))-»((AVB)-»C);'t ; Л:

е) (А Л (В V С)) w ((А Л В) V (А Л С));


ж) (А —♦ (В —» С)) (В —► (А —» С));
з) (A <-^B)w((A ЛВ)У(-А Л-В)).
Решение, в) Построим семантическую таблицу с /[(А Л В)
—> С)«-»(А (В С)] в корне (см. рис. 1.4).
е) Построим семантическую таблицу с /[(А Л (В VC))«((AA Л В) V (А Л
С*))] в корне (см. рис. 1.5).
1.14.22. Докажите теорему 1.8.4 о подстановке эквивалентных формул.
Решение. Проведем доказательство теоремы по индукции.
1. Базис индукции. Пусть количество логических связок,
встречающихся в формуле равно нулю. Следовательно, —
80 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ

f[(A А (В V С)) о ((А А В) V (А А С))]


'(тї.

t[A А (В V С)] /[ЛА(ВУС)) is,

I
-■ А и’
>[(4^B)v(AA^] «[(А А В) V (А А С)] ' h <■!
‘: ?
' V ■• -

,wpy r,z- £ : p ■jj.»- cl


-•Hfi'f {o} f5=-= iA >'■ >■

•KjV <»V’n4q! :id •••■!' yj X ВИ
НД’< С
к - .к»
•jaruH і і (В V C) $(А А В)-4 «(A А С) fB-p.
.Vj ГЛ »'

х
/(ЛАВ) tA •• . tA
«■ТНЖЙ/ ■ А
-
ДАЛС) tff Ч(А А В)^; І(А А су
ГЬ\К/)
О • ' ■ГІ"| <*
А ■• f-v‘ ® А.
tB tc / : *-
tAi j tA
і V/: ■' М

/Л fB tB НА >.. к) tc

:> шіос і :о ® (і
і ,МГ :>і; О лА. у
мял VM-.vp.cyr Ж.

.(•ЖіО’у.цНЦ кії* ® m лиси ; ■ d


-М : .' : І ■ Сі
р
^.‘Лг.
§ 1.14. УПРАЖНЕНИЯ 81

/[(Л Л В) -> С) о (Л —»(В -> С))

S 4[(Л ЛВ) -» С)] /[(Л Л В) -> С]


■й?
■■■• ■ -Луу.&Г '.W П1
• ■ /[Л -4 (В -4 0J ■’ - «■ 4[Л -4 (В -4 С)]
А." ЛІ'Тт&й 'V' ’■//!; ■_.■ •“
■5*Нй.-:'Ху'- V’’-'' *-» »— .V ,Д ЯоЕШіл
< - vЧ N •■-> лу ч ОТИ >. Л
н>. кісцртох^и ЇЬЬІ>І*І5! Ц-А А В)

’r t‘M ІГ>

Лі

t иП .V'.’ Г/
іЛ

fA /В '^ 0 fB tC
•' s
*’ U-S'Pv-j.Ojj »• < і ^Wi>
0Д 0 _J
. .'•h><U45-< Q 0
' Рис. 1.5 * ^’
r

атомарное высказывание, и и а должны совпадать. Тогда формула 9?' — это


97 или а'. Итак, мы получили Ь ♦-> </?'.
2. Индуктивный переход. Предположим, что теорема верна, если (/?
содержит п логических связок. Докажем, что из этого предположения можно
заключить, что теорема верна, если в содержится п + 1 логическая связка.
Рассмотрим отдельно два случая.
а) Пусть формула р имеет вид ->^t. По индуктивному предположению
верно, что h <-> р{, где формула р{ получена из р путем замены некоторых
82 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
вхождений подформулы а на формулу а'. По теореме полноты тавтология (С
w В)—>(->С <->->£)) выводима в нашей аксиоматической системе, то есть
Н w ->р', р<->р'.
б) Пусть формула р имеет вид pt о р2, где символом о обозначена одна
из логических связок A, V, «-+. Тогда по индуктивному предположению
верно, ЧТО h р, и h где формулы р'
и р" получены из р заменой некоторых вхождений подформулы а на
формулу а'. Используя тавтологию С —»(Р —*(С AD)) и теорему полноты,
мы получаем
Р (р{ w р[)А(р2 W р^).
Результат следует из тавтологии
(С «-> В,) А (С2 <-» D2) —> (С, о С2 о D2).
2.14.23. Предполагая, что (-(А AB)+-»-i(A ->->В) и F(A VB)<-> <-> (-
>А —> В), выведите формулы:
а) Р(-В —>->А) w(A ->В); d
б) Н(-А—В)«->(-ВА) и 1-(А->-В)«^(В->-А); Н
в) Н(ААВ)—>А; .
г) Н(АЛ-А)^В; И
д) I- А V ~>А. ;I
Решение, а) и б) Воспользуемся аксиомой 3, законом отриод ; ния и
теоремой о подстановке эквивалентных формул.
в) По аксиоме 1 верно, что

Н-А-»(В^-А);Р ’ (Г

по (1), б) и теореме 1.8.4 получим ,1


Р-■А-»(А —»->В); $ (2|
по (2), б) и теореме 1.8.4 имеем

1- -•(А -+ ->В) -+ А. (3)


Ч нг м й; О. j
Но согласно нашим предположениям это что мы искали, j а именно (А AB)
—+А. ■'....................................................і ■. !
<$|
§ 1.14. УПРАЖНЕНИЯ 83
Обычно мы определяем шаги вывода аналитическим путем: сначала
следует попытаться определить (3), затем определить (2), и продолжать до
тех пор, пока не будет найдено высказывание, о котором известно, что оно
выводимо, например (1).
1.24.24. Используя метод резолюции, докажите, что следующие
множества формул противоречивы:
а) S = {->A VBVD, ->BVBvA, VA, A VB, В V->D, ->А V—<В}; б) S = {^A
V B,->B V C,-,C V A, A vCpX V->C}; , в) S = {A V В V С, A V В V ->C, A V
--B, -Л V -^C, ~>A V C}. Решение, в) Рассмотрим резолютивный вывод:
!)AvBvC;
2) А V В V->C; *' *■ .. ,?
' -ан м
-
3) А V-'В, :'5'Ь4- . J^<
4)~>AV~>C; "■■ ■■■•■ ■
5)-AvC; ■ F Л
=' -Ч/ v И* . /■ t

6) А V В — резольвента 1 и 2; ч.
7) А — резольвента 3 и 6;
8) ->А — резольвента 4 и 5;
9) □ — резольвента 7 и 8.

Следовательно, множество S противоречиво.
9.25.25. Используя метод резолюции, докажите, что:
а) {А -> В, С D, D -> В, В V С V D} F А Л В;
б) {А Л В —► С, А —> В} И А —» С.
Решение, б) Нам достаточно доказать, что множество {А Л Л В —» С, А -+
В, ->(А —> С)} противоречиво. Представим высказывания множества {А Л
В —► С, А —> В, ->(А —» С)} в КНФ:
А Л В -> С -(А л В) V С ->А V ->В V С,
А-+ В ~ ->А\/ В,
->(А —» С) w ->(->А V С) w, Arj-і^Л-пС w А Л ->С.
Применим метод резолюций к множеству дизъюнктов {-«AV-xBV
V С, -»А V В, А, ■_,С}: лт*’■'?.па
1)-AV-BVC; . .•
2) ^А VB; '
3) A; ьА !■,! Ї,І
4) -С;
5) ->А V ->В —резольвента 1 и 4; "А " ‘'*’■ 1
‘:
6) -«В — резольвента из 3 и 5; VH-
7) В — резольвента 3 и 2; . ,> л:л .‘V
8) □ — резольвента 3 и 2.
1.14.26. Представьте следующие высказывания как множества
дизъюнктов:

а) -»(А А В А->С); б) А«(нВЛ->С).

Решение, а) Определим КНФ высказывания ->(А АВЛ -'С): h(A Л В Л -С)]


84 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
~ [-А V -В V ^С] (-A V-B V С]
В результате получаем состоящее из одного дизъюнкта множество {{-А,-В,
С}}.
1.14.27. Какие из следующих множеств дизъюнктов выполнимы и
почему? Для каждого непротиворечивого множества определите
означивание, которое подтверждает его выполнимость.

а) {{А, В], ЬА.В}}, в) {{А}, □}, - J б) {{-.Л}, {А.^В}, {В}}, г) {□}.


Решение, б) Соответствующая КНФ имеет вид ->А Л(АV->B)A Л В. Это
высказывание логически ложно. Если бы оно было выполнимо, то
существовало бы такое означивание W, что W(B)=t (чтобы подтверждалось
высказывание В) и W(A) — f (чтобы подтверждалось высказывание А). Но
это означивание высказывание А V ->В не подтверждает.
г) Пустой дизъюнкт □ по определению невыполним. ' ! ‘
1.14.28. Определите резольвенты R(S) множества ДЙЇ^онк- тов S,
если ьшэ'
а) 5 = {{А,->В}, {А, В}, {-.А}}; а‘ ‘ |
б) S ={{А}, {В}, {А, В}}. СА’
Решение, а) Для множества дизъюнктов
5 = {{А,-.В], {А,В}, {-.А}}.- - . > к,.-

множество рмольвент '* ' ’


R(S) = {{A},{-B}, {B}}US ''%/;,. ,,
, 1,2 1,3 2,3 ДС
'■ J
б) В данном случае R(S) = S. Резольвент нет. f_. ... , •>,
1.14.29. Дано высказывание Q: (А Л В —> C) A A A *-*
а) Представьте Q в теоретико-множественном виде.*'* - ■ Ґ
§ 1.14. УПРАЖНЕНИЯ 85
б) Докажите, что Q С.
в) Предположим, что высказывания Q и А —+ -іС истинны. Что можно
сказать об истинностном значении В?
Решение. а)[АлВ-»С] (->(АлВ)\/С] «->■ [-^А \/->В V С];
[-^В —С] w [nnBvC] <-» [BvC].
Следовательно, Q = {{->А, ->В, С}, {А}, {В, С}}.
б) Рассмотрим резолютивный вывод:
1) {->А,->В, С};
2)М);
3){В, С}; чпл > от-ч !TU£;«Hoh
4) {-іВ, С} — резольвента 1 и 2; ’***’ Лл,!і ''
5) {<?} — резольвента 3 и 4. h ,э
в) Пусть Q'= {{->А,->В, С}, {А}, {В, С}, {-А,-С}, {-В}}. Множество Q'
противоречиво (почему?). Таким образом, любое означивание, которое
подтверждает все высказывания из Q и высказывание А —+->С,
приписывает истинностное значение / высказыванию —>В. Другими
словами, оно подтверждает В.
1.14.30. Найдите означивания, опровергающие высказывания:
а) (АВ) ~ (А V В); б) (А V -В) <-> (А Л В).
Решение, а) Построим семантическую таблицу с /[(А —> B)w w(A V В)] в
корне (см. рис. 1.6).
<5 ■ к Л' (к
86 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
^Д(А-*В) о (A.

/(AVB) *' :5'Г>-t(^vsj

Каждая непротиворечивая ветвь дает означивание W, которое сВ


гласуется с корнем семантической таблицы по лемме 1.10.5. Тоге для
каждого W такого, что W(A)—f и — мы имеем: ■ РГ[(Д VJ?)] = W(A
~+В)*-> W(A vB) = 'fl
= [W(A)^ lP(B))~[WqB)uw|B)lfl ’ = [/-/] — [/□/] = . м
„і
= tw/ = /. fl

1.14.31. Доказать, что если А и А —> В выводимы по Бету, то 2Я также


выводимо по Бету. 1
Решение. Поскольку А доказуемо по Бету, А тождественна истинно. Тогда
для любого означивания W мы имеем W(A)= tl Высказывание А —> В также
тождественно истинно и для любогя означивания W мы имеем W(4 —>В)=
t. Тогда ш-ыв
t = W(A B)=W(A)~>W(B) = t W(B). ■'•’ч' Я ■ & 1 Но это означает, что W(B)
—t для любого означивания W. Следо! вательно, В доказуемо по Бету.
,?Г
1.14.32. Доказать: &Т!?'b t"Л '\F Л . .J
, .Цр* >ц‘,- tЛя1-*'1 Я'
а) {А \/В,А ->C,B-D}HCvD; '‘ 1
б) {А-+(В А,В}\- D -*C.V ■ J
Решение, а) Рассмотрим S — {Л V В, А -+ С, В -* D}. По те« оремам
корректности и полноты мы имеем ■ к 3
§ 1.14. УПРАЖНЕНИЯ 87
'I
S f= С V D & S К С V D. • д

Таким образом, нам достаточно доказать S [= С V D, или, другими словами,


что всякое означивание, подтверждающее S, подтверждает также С V D.
Итак, мы построили семантическую таблицу с f(CV D) в корне (см. рис.
1.7), последовательно присоединив вершины t(A VВ), t(A —♦ С)) и t(В —»
D). Так как построенная семантическая таблица противоречива, то С V D
подтверждается всеми означиваниями, подтверждающими S (см. рис. 1.7).
1.14.33. Проверьте, верно ли, что:
а) {(А^В)^В, А-А^В}\-А-^ В-, б) {А-^В, CVB, D~*(AVC), D}bB.
88 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ

Решение, а) Построим семантическую таблицу с f(A В) в корне,


последовательно присоединив гипотезы [(Л —* В) —» В] и (А Л -iB) (см.
рис. 1.8).
Заметим, что S А —♦ В, поскольку в приведенной семантической таблице
ветвь х непротиворечива. Следовательно, существует такое означивание W,
что W(A)= t и W(B) = f, которое все высказывания из S подтверждает, в то
время как высказывание А —>В опровергает.
1.14.34. Докажите, что если Su{4}hB, то SPA -+ В.
Решение. По теоремам корректности и полноты
Su{A}PB oSu{A}|=B.
Предположим, что Su {А} В. Тогда для любого означивания W,
подтверждающего все высказывания из S, верно W(B)=t, если
§ 1.14. УПРАЖНЕНИЯ 89

Рис. 1.8

W(A —> В)~ W(A)^ W(B) = t. Это следует из того, что W(A —> В) может
быть ложным только в том случае, если W(A) — t и W(B) — f. Поэтому S (=
А —> В. Значит, SulA}FВ => Su{A} |= В.
По теореме полноты
1.14.35. Пусть <тпа2,...— бесконечная последовательность вы-
сказываний. Докажите, что если для любого г высказывание +1 —» —> ai
доказуемо по Бету, а аі —>cr.+ 1 не является доказуемым по Бету, то не
существует высказывания т, для которого справедливы одновременно
следующие утверждения:
а) Для каждого і высказывание т —» сг, выводимо по Бету;
б) {а,,а2,...}|=7.
Решение, а) Докажем, что если для всякого і высказывание т —► сг£
доказуемо по Бету, то {ст,, сг2,...} т. То есть множество
90 Глава 1. ЛОГИКА ВЫСКАЗЫВАНИЙ
высказываний {->т, ст15 ст2,...}
непротиворечиво. Другими словами, существует
такое означивание W, что:
W(->r) = W (а{) — W(a2) = ...= t.
Поскольку для любого і высказывание щ —> ai + l не является доказуемым по
Бету, для каждого натурального числа п существует такое означивание W,
что:
^(а„-стп + !) = /, или ^(стп)-1У(стп + 1) = /.
Тогда мы можем заключить, что
W(an) = t, W(an + l) = f ' (1)
Поскольку для каждого г Є N высказывание сті + ( —* ст,- доказуемо по Бету,
для любого означивания W' и для любого п є N справедливо W'(an + 1 —> ап) =
t, что равносильно W'(an + {) W'(an) — t. Следовательно,
И/'(<т ) = / или W'(a\ = t. МЮІЇЇЇ
Hbasdsf»/ \ n+і/ J \ п/

Подобным же образом можно показать, что


’ ' ■ < І, - ' ! и 1 •
• И^'(стп) = / или
С'Ч.
>■?-, (2)
•j ' .
W'(a2) = f или W'(ai)=t.
Если W' = W, то из (1) вытекает, что W(an)= t и ИЛ(стп + 1 ) = /. Тогда на
основании (2) мы получим
Ж(^)=Ж(а._,) = ...= (. (3)
Для каждого г высказывание г —> ст, доказуемо по Бету. Тогда
t = W(T -> стп + 1) = 1У(т) - W(an+,) = W(T) f, то есть W(r) — f. Тогда

W(T)= t. (4)
Поэтому существует такое означивание W, что (1), (3) и (4) верны.
Следовательно, для всех п є N множество {-<т, ст,, ст,,..., ст п} непро-
тиворечиво. Согласно теореме компактности 1.11.10 это означает, что
множество {->т, стн ст2,...} также непротиворечиво.
б) Предположим {ст,, ст2,...} |= т. Покажем, что существует означивание
W и натуральное число k, такие, что VF(r —* стА) = / или, что то же самое,
W(r) = t и ИД ст,.) = . ,,
§ 1.14. УПРАЖНЕНИЯ 91
Так как {o'], сг2, ...}{= г, множество высказываний {-^т, сг н а2,...}
противоречиво. По теореме компактности существует такое натуральное
ЧИСЛО П, ЧТО конечное подмножество {-IT, СТ,, сг2, .. .стп} невыполнимо.
При этом, однако, найдется такое означивание W, что

■' Л. '.
и'і».
'■
>1
Тогда Wz(<Tn)^ lV(<7n+I) = f, то есть
W(an)=t, W(an+l) = f. . (5)
Поскольку <тп —> <тп_! доказуемо по Бету,
t = W(an -4 ап_,) = W(an) - W(an_ 1
что означает W(an) = f или И/(<тп_І)= t. Согласно (5) мы получим
(6)
Таким же образом, опираясь на тот факт, что все высказывания ст —»ст _ t,
1 < і < п — 1, доказуемы по Бету, мы получим

ТУ(ап_2) = ... = ^(а,)=і. (7)

Аналогично, из (5), (6) и (7) следует, что означивание W обращает в истину


все высказывания 1 < і < п. Но множество высказываний {-і-т; сг2,.. .ап}
противоречиво. Значит W(-ir) = /. Отсюда следует W(r) = t. Но в этом случае,
согласно (5) получим
W(r l) = W(r)^W(a, f=f
Это означает, что т —»<тп + 1 не является доказуемым по Беїу.
■ ЛА’У

;
Л

. .:Л< З.Г’' 7 Є 'ійЛ' ТуУ Лю


Й Л'
4 1
?./ * - и ' ’ - Ї * €/ •'
■4* < Mi Г ‘мі:г» ’’ '- K'jd'W л . Л/Л'-.іі

<Г> Л *■ fey t 'l , ’S'; ■’» f‘ f' 'і


"
'* Atfyv?Г?» “■■■A; I#
’■У**/' Ц •< •■ ?■’•, 4iW> *■ «Хм . (■;;>!
'■$>*•

' Глава 2
■-4фй... ЛОГИКА ПРЕДИКАТОВ «•.>.. ;•> ■!.. а

• ашафі-к 6Ха на/, ov% оХа, <гир<рєрорєиои


бі.а/рєро/.ієі'оі', ашаїбои біаібои, на і, є-х ■ ’’/.Ji irdurwu єи на і є£ к dura.
■ • ?! 'ІЧТ^У'І^Г Связи: целое и не целое, соединяющееся
и разнообразящееся, мелодичное и
немелодичное, и из всего — единое, и из
■■'■■ -.МО ■' единого — все. ,
Гераклит.
• ь>Ц '■ •SO’
■' •?-’

§ 2.1. Введение

В главе 1 мы дали аналитическое описание формального языка PL, с


помощью которого можно выражать как простые, так и составные
утверждения. Далее мы изучали методы вывода заключений из некоторых
совокупностей высказываний языка PL.
Хотя язык PL довольно богат, его возможности в формулировке
утверждений и отношений ограничены. Возьмем в качестве примера
следующее утверждение на русском языке:
S: «Если Джордж — человек, то Джордж смертен.»
Если символом А обозначить утверждение
«Джордж — человек», ^‘2*
а СИМВОЛОМ В — утверждение JWES&1
«Джордж смертен»,
тогда в контексте языка логики высказываний S будет иметь вид
S: А -*В.
Утверждение S выражает некоторые качества отдельного лица, а именно,
Джорджа. Возникает следующий вопрос: как выразить подобные свойства
других людей, например, Сократа или Питера? Можно было бы решить эту
проблему путем введения такого количества пропозициональных символов,
сколько существует различных людей. Однако, на практике это невозможно,
• •-•**
92 Глава 2. ЛОГИКА ПРЕДИКАТОВ
В этой главе мы опишем язык логики предикатов, который позволяет
решать такие проблемы. Новыми элементами в этом языке будут
переменные и кванторы.

Переменные

Рассмотрим утверждение S и предположим, что х — переменная,


принимающая значение на множестве имен всех людей, например,
х = Джордж, или х = Джон, или х = ...,
а слова «человек» и «смертен» обозначают свойства. Тогда мы можем
выразить общую связь между этими свойствами следующим образом:
Р: человек (х)—> смертен (х).
Выражения человек (х) и смертен (х), обозначающие свойства,
называются предикатами. Выражение Р есть пример формулы, которая
состоит из предикатов, соединенных логическими связками.
Подстановка вместо переменной х константы «Джордж» преобразует Р в
формулу
S': человек (Джордж) —> смертен (Джордж). я
Далее, если переменная х примет значение «Сократ», результат будет
представлять собой новую формулу, описывающую связь между Сократом и
свойством быть смертным. Слова «Джон», «Джордж» и «Питер» являются
константами в нашем новом формальном языке.
Вообще говоря, соответствие между переменными и константами с одной
стороны и словами русского языка с другой можно представить
неформальной схемой:
’’’ Русский ЯЗЫК ч; Формальный ЯЗЫК
местоимение .S; •---------------♦ ПЄрЄМЄННЗЯ
собственное имя ।—♦ константа . эдо*пй
Специальные слова «Человек» и «Смертен» называются предикатными
символами. Предикаты могут зависеть более чем от одного аргумента,
выражая таким образом не только свойства, но и отношения между
несколькими объектами. Например, если переменные х и у принимают
значения на множестве целых чисел, и введен предикат I — «больше», мы
можем выразить одно из фундаментальных отношений между целыми
числами: о>
. ,ч. ЦХГУУ- больше(х, у), щ.-rq мд шиаЛ
которое интерпретируется как «х больше, чем>^щ||/ймс*".
Если в предыдущем выражении мы заменим х на 5 и у на 3, мы, очевидно,
получим частный вид предиката I;
7(5, 3): больше(5, 3),
§ 2.2. ЯЗЫК ЛОГИКИ ПРЕДИКАТОВ 93
который является ИСТИННЫМ ДЛЯ данных чисел. .-

Кванторы ‘

Введение переменных приводит к изменению истинности формулы.


Рассмотрим в качестве примера формулу
Q(x, у); авиалиния(х, у), которая интерпретируется
как «авиалиния соединяет города х и у». Истинность этой формулы
является частичной, поскольку может, например, отсутствовать авиалиния,
соединяющая Нью- Йорка и Нью-Дели. Напротив, формула
Р(х): человек (х)—»смертен (х) имеет универсальную
истинность, будучи истинной для любого значения переменной х.
В логике предикатов (краткое обозначение PrL) всеобщая или частичная
истинность обозначается двумя специальными символами — кванторами.
Мы будем использовать квантор всеобщности и квантор существования,
которые изображаются символами V и 2 соответственно. Таким образом, из
формулы Р(х) получаем
Р: (Vx) (человек (х)—» смертен (х)),

а из формулы Q(x, у) получаем


Q: (Э(х, у)) авиалиния (х, у).
В следующем параграфе мы введем язык логики предикатов формально. С

- § 2.2. Язык логики предикатов

Теперь мы дадим формальное описание языка PrL. См. [Chur56, СиггбЗ,


Dela87, Hami78, Klee52, Mend64, Meta85, Smul68].
Определение 2.2.1. Язык PrL состоит из следующих основных символов:
I. Логические символы:
і) переменные X, у, z,..Хо, Уо, ZQ, ..., х,.,...; ;
i) ) логические связки A, V, «-»; і
iii) запятая, скобки, (); т
iv) кванторы V, 3. ;• < .
II. Специальные символы:
I) предикатные символы Р, Q,R,..Ро, QQ, RO, ....;
II) константы а,Ь,..., а^, Ьо,..., аи ..а?,...;
III) функциональные символы f, g, f0, gQ, ft,... □ 2.2.1
Число аргументов предиката называется степенью или местностью
предиката. Например, Q(x, у, z)— предикат степени 3 или трехместный
предикат.
Кванторы всеобщности и существования двойственны друг другу:
94 Глава 2. ЛОГИКА ПРЕДИКАТОВ • J.
квантор V эквивалентен последовательности символов -G-i, а квантор 3
эквивалентен последовательности Например, для формулы (Vx)Q(x) мы
имеем:
(Vz)Q(x)^-(3z)-Q(x).
Мы будем полагать, что каждый конкретный язык логики предикатов
содержит все логические символы. Таким образом, для определения языка
достаточно описать его специальные символы.
Пример 2.2.2. Язык арифметики имеет вид
=(=, <,+,♦, О, 1), где:
= и — двухместные предикатные символы: =(х, у) понимается как «х = у»,
и (х, у) обозначает «х у*;
+ и * — трехместные предикаты: +(ху у, z) понимается как «х+ + у — z*, и
*( л, у, z) понимается как «х * у = х»;
0 и 1 —символы констант. □ 2.2.2
Определение 2.2.3. Терм определяется индуктивно: W
i) константа есть терм; 1
ii) переменная есть терм; *
iii) если f — n-местный функциональный символ, и tn — термы, тогда
f(t{,..., tn) —терм. □ 2.2.3
Определение 2.2.4. Элементарной формулой или атомом называется
всякое выражение вида Р(£н..., tn), где Р — п- местный предикатный символ,
a —терм для каждого і = 1,2,... ..., п. □ 2.2.4
Определение 2.2.5. Формула определяется индуктивно:
і) каждый атом является формулой;
i) ) если <7,, <т2 — формулы, ТОГДа ((Tj Л(Т2), (c^VO^), (ст,—><т2), (“|
<7]) и (<7[ <-> а2) также являются формулами;
iii) если v — переменная, а —■ формула, тогда ((3v)y>),
((Vv)v?) — формулы; -г''--» >9- |
iv) только выражения, полученные согласно пунктам і), ІІ) и ііі),
являются формулами. О 2.2.5
Пример 2.2.6. Следующие выражения являются формулами: i) ¥¥ (Vy)(3x)
[P(x,№) V Q(x)J;
ii) (Vx)(32/)[P(x)vQ(x,y)->-.(P(x))J. □ 2.2.6
Замечание 2.2.7. Отметим, что в определении формулы нашего языка
разрешается тривиальное использование кванторов, например: (Зх)[у = 3],
что эквивалентно формуле у = 3. Хотя такое использование кванторов
допустимо, обычно оно бывает нужным только в технических
доказательствах. □ 2.2.7
Пример 2.2.8. Приведем несколько формул языка £А, определенного в
примере 2.2.2.
1 )(Vx) (х — х) Щ рефлексивность
2)(Vx) (Vi/) (х = у —► у = г) * 1л
симметричность 3)(Vx)(Vy)(Vv)[(x
§ 2.2. ЯЗЫК ЛОГИКИ ПРЕДИКАТОВ 95
=уАу = г») —>x = v] транзитивность 4)(Vx)(x^x) рефлексивность
®‘’
□ 2.2.8
Приведем еще несколько определений, необходимых для полного
описания языка PrL и логического программирования.
Определение 2.2.9. 1) Выражение входящее в состав терма t, которое в
свою очередь является термом, называется подтермом t.
2) Выражение у?], входящее в состав формулы у?, которое в свою очередь
является формулой, называется подформулой у?. □ 2.2.9
Пример 2.2.10. 1. Если f(x, у) — терм, то х, у и /(х, у) — его подтермы.
2. Р(х), -'7?(х), Р(х) V Q(x, у) являются подформулами формулы из
примера 2.2.6. □ 2.2.10
Замечание 2.2.11. В главе, посвященной PL, мы изучали высказывания
только в соответствии с их структурой, в основу которой были положены
элементарные высказывания и логические связки. Тем самым, мы
предполагали, что элементарные высказывания не нуждаются в дальнейшем
анализе. Логика предикатов, однако, имеет дело с более общим понятием —
элементарной формулой. Здесь мы предполагаем, что элементарные
формулы представляют собой предикаты, и что каждый n-местный предикат
t n)
выражает отношение между термами t,,..tn. О 2.2.11
Определение 2.2.12 (связанное и свободное вхождение переменных). 1.
Вхождение переменной v в формулу у> называется связанным, если
существует подформула ф формулы у?, которая содержит это вхождение и
имеет вид ((Vv)V>z) или ((3v)V>')-
2. Вхождение переменной v в формулу называется свободным, если оно
не является связанным. □ 2.2.12
Определение 2.2.13 (свободные и связанные переменные). Переменная v,
входящая в формулу <р называется свободной, если она имеет по крайней
мере одно свободное вхождение в формулу <р. Переменная v называется
связанной, если она не является свободной. □ 2.2.13
Пример 2.2.14. В примере 2.2.6 переменная х имеет свободное вхождение
в подформулу
(3y)(P(x)VQ(x,y)->^R(x))
формулы у?2, однако, в самой формуле у?2 это вхождение связанное.
Следовательно, переменная х свободна в формуле <р' (так как она имеет по
крайней мере одно свободное вхождение), но связана в формуле С) 2.2.14
Определение 2.2.15. Терм, в который не входит ни одна переменная,
называется основным термом. □ 2.2.15
Пример 2.2.16. Если а и Ь — константы, a f — функциональный символ,
тогда a, b, f(a, b), f(f(a, Ь), Ь),... — основные термы. □ 2.2.16
Определение 2.2.17. Предложение или замкнутая формула есть формула,
не содержащая ни одной свободной переменной.
□ 2.2.17
В соответствии с этим определением, для того, чтобы из заданной
96 Глава 2. ЛОГИКА ПРЕДИКАТОВ • J.
формулы получить замкнутую формулу, нужно связать все ее свободные
переменные с помощью кванторов.
Пример 2.2.18. Из формулы <р(х, у): (ж + у — х*у) мы можем получить
замкнутую формулу
а(х, у): (Vz) (Зт/) (х + у = х * у). □ 2.2.18

Другой способ, позволяющий получать предложения, состоит в


подстановке констант на места свободных вхождений переменных. В общем
случае, мы имеем следующее определение подстановки [Fitt9O].
Определение 2.2.19. Подстановочное множество или просто
подстановка есть множество
^ = {‘Е1/^1> Х
п/^п}у

где л- и і,., 1 і п, являются соответственно переменными и термами, причем


равенство хі = х} влечет ti = tjt 1 іj п.
Если ip есть какое-либо выражение (атом, терм или формула), то ірд
обозначает выражение, полученное путем подстановки на места свободных
вхождений переменных Хр..., хп соответствующих термов tn.
Пустая подстановка обозначается символом Е, другими словами, # = {}■
□ 2.2.19
Пример 2.2.20. Если мы применим подстановку 0 — {т/2, у/2} к формуле
К: <р(х, у) из предыдущего примера, то получим формулу К0: (2 + 2 = 2* 2).
□ 2.2.20
Пример 2.2.21. Рассмотрим формулу
<р(х, у, z): (3y)R(x, у) Л (Vz)(-iQ(x, z))
и основной терм /(а, Ь). Применяя подстановку {x/f(a, b)} к формуле <р(х, у,
z), получим предложение
^(/(а, &), т/, ^): (3y}R{f(a,b),y}^(\z)^Q(f(a,b),z}. □ 2.2.21
Основной операцией на множестве подстановок является композиция.
Определение 2.2.22. Пусть
'■$ = и= vn/tn}.
Композицией 0 и tjj называется подстановка
,2 0ф = {u{/sxip,..un/snip, vjtn}
■я. - ({ui/si^ І ч = si^}u {ч А І ч e {«,,..um}}).
□ 2.2.22
Другими словами, мы сначала применяем подстановку ip к термам sm
подстановки 0, заменяя в этих термах переменные на термы і, (определение
2.2.19), а затем дополняем полученную подстановку элементами множества
V». При этом мы отбрасываем элементы вида ujspip, если терм совпадает с
и{, и элементы вида vjtit если vt содержится среди переменных их,..ит подста-
§ 2.2. ЯЗЫК ЛОГИКИ ПРЕДИКАТОВ 97
новки 0.
Пример 2.2.23. 1. Рассмотрим две подстановки: 0 =
~{x/f(y\, y/z} (в качестве {ujsi}) и ip = {x/a, y/b, z/y} (в качестве {vjti}).
Согласно определению 2.2.23 композиция 0 и г/j имеет вид
= {х//(у\Ф, у/zip, х/а, y/b, z/y}
( — ({ч/Ч I ui■ — si"Ф} и I v,;£
= {x/f(b),y/y,x/a,y/b,z/y}~({y/y}u{x/a,y/b}) ^{^/f(b),z/y}.
1
Г. Метакиденс, А. Нероуд
98 Глава 2. ЛОГИКА ПРЕДИКАТОВ
2. Рассмотрим терм t: h(x), f(v2), v3) и подстановки
e
= { Jf(g( )), 2/ (vx)y v3/h(v3)}, $ = {x/z, vt/v2, v3/v,}.
v x v h

Имеем
. &ф = {vt/f(g(x))^ v2/h{v^, v3/h(v3)^, x/z, vt/v2, v3/vl}: ’ - (0U{^/u>, v3/*>i})
t t

' Ф ч ' = {Vi/f(g(z)), v2/h(v2), v3/h(v/), x/z, vt/v2, v3/vt}


■ -{*>1/4,^з/М
= W/G(2)), *>2/4*>2), *>3/4*>i), x/z)‘' "" 'J
Следовательно,
ЦЩ): w(/(/(^U))), h(Z),f(h(v2)), h(V,)).
Отметим также, что
1
(г0\ф = w(f(f(g(x))), h(x), h(v3))ip
ЛіЯУл ’ = w(/(/(g(z))), h(z), f(h(y2)), /i(v,))
= t(0x/>) □ 2.2.23
Таким образом, мы можем заключить, что для композиции подстановок
из примера 2.2.23 выполняется свойство ассоциативности. В общем случае,
верна следующая теорема.
Теорема 2.2.24. Для произвольных подстановок 0,"ф,ч и для
произвольного терма t выполняются равенства:
1) 0Е=Е0 = 0; 2) (t0)^ = і(0ф); 3) (&ф)у = □ 2.2.24
Определение 2.2.25. Пусть у> — некоторая формула без кванторов, и 0 —
подстановка. Запись ір0 обозначает результат замены каждого терма t в
формуле у> на t0.
Соответственно, если S — {С,,..., Ск} — множество формул PrL без
кванторов, то множество S0 = {С10,..., Ск0} есть результат замены формул
С<5 1 г к, на формулы С{0. □ 2.2.25
Определение 2.2.26. Два множества формул без кванторов и S2
называются вариантами, если можно подобрать такие две подстановки 0 и
что
S^S20, a S2 = S^. □ 2.2.26
Пример 2.2.27. Множества = {P(f(x, у)), Q(h(z), &)} и ^2 — {Р(/(У, ж)>
&)}. где b — константа, являются вариан
тами. Действительно, если 0 = {x/y, у/х, z/u} и -ф = {х/у, у/х, u/z}, то
S,е = у))Є, Q(h(z), 6)0} = {P(f(v, x)), Q(h(u),b)} = S„
8,9 = {P(f(y, x))9, Q(h(u), (>)«} = {P(f(x, y)), Q(h(z), 6)} = S,. □ 2.2.27
§ 2.3. АКСИОМАТИЧЕСКОЕ ОСНОВАНИЕ ЛОГИКИ ПРЕДИКАТОВ 99
Определение 2.2.28. Переименованием называется подстановка вида
.... wn/-un},
где все 1 і п, являются переменными. 0 2.2.28

§ 2.3. Аксиоматическое основание логики предикатов

В § 1.7 гл. 1 мы аксиоматизировали логику высказываний посредством


системы, состоящей из трех аксиом и одного правила вывода. Подобным
образом можно аксиоматизировать и логику предикатов [Dela87, Hami78,
К1ее52, Mend64, Rasi74, RaSi70]. Сначала введем вспомогательное
определение.
Определение 2.3.1. Переменная х свободна для терма t в формуле а
(формальная запись free(x, t, а)), если никакая из переменных терма t не
становится связанной после подстановки терма t на все места свободных
вхождений переменной х в формуле а. □ 2.3.1
Пример 2.3.2. Предположим, что а = (Чу)Р(х, у). Тогда переменная х не
свободна для терма у в формуле а, поскольку после подстановки терма у на
места свободных вхождений переменной х переменная у становится
связанной.
С другой стороны, переменная х свободна для терма z в формуле а, если z
есть переменная отличная от у, так как после замены переменной х на терм z
в формуле ст переменная z, единственная переменная терма z, не становится
связанной. Более того, у свободна для у в формуле ст (так как ст не
содержит свободных вхождений переменной у). □ 2.3.2
Определение 2.3.3. Для произвольных формул PrL у>, г, а следующие
формулы являются аксиомами: ,
О V —* (г У?)." ■ :!— МТ-
2) (у,-♦(г-♦ст))-» ((у?->т)-» (у?-* ст)); о.иьнЯ
3) (“‘У’ —♦ ~’т) -♦ (т —♦ у?);
4) если /гее (л, t, у?), то аксиомой является формула
(Vx)y? -♦ 4>(x/t)\
5) если переменная х не свободна в формуле у?, аксиомой является
формула
(Vx) (у> -♦ т) -» (у? -♦ (VX)T)).
Точно так же, как и в PL, символ Н обозначает выводимость формул в
аксиоматической системе. Данная система аксиом содержит два правила:
1) Modus Ponens: у>, у> —♦ т I- т; .ЗДЙГП
2) обобщение: у? F (Vx)y?. - □ 2.3.3

4
»
100 Глава 2. ЛОГИКА ПРЕДИКАТОВ
Замечание 2.3.4. 1. Согласно правилу обобщения, если
формула <р выводима из аксиом с помощью правил PrL, то формула
(Vx)</2 также выводима в этой аксиоматической системе.
В качестве примера предположим, что выводима следующая формула:
человек (х) —> смертен (х).
Тогда формула
(Vx) ( Человек (х) —» Смертен (х)) ../Д'' ,
также выводима.
Другими словами, мы всегда можем обосновать обобщенную формулу
(Vx)</?, опираясь на истинность формулы <£>. Некорректное применение
правила обобщения в обычных спорах часто вызывает множество ошибок.
Например, мы часто утверждаем, что чэм;и,
«все политики — обманщики»,
потому что мы знаем, что политики а и Ь — обманщики. Однако, это
утверждение логически неверно: чтобы обобщить утверждение на всех
политиков, а не только на а и Ъ, мы должны быть уверены, что следующая
формула выводима в нашей системе аксиом:
I;
политик (х) —+ обманщик (х),
что (хочется надеяться) неверно.
2. Сравнивая аксиоматические системы для PL и PrL, можно заметить,
что аксиомы и правило для PL содержатся среди аксиом и правил для PrL.
Однако, логика высказываний имеет дело с высказываниями, тогда как
логика предикатов рассматривает более сложные объекты — формулы
логики предикатов.
3. Квантор 3 не включен в систему аксиом, так как он выражается
посредством -> V как было сказано в разделе 2.1.
4. Опираясь на пункт 2) следствия 1.12.2, мы можем заключить, что все
тавтологии PL выводимы в логике предикатов, если вместо высказываний в
них подставить формулы PrL. Например, высказыванию А w выводимому в
PL, соответствует формула PrL
<-> -і-іуз, которая выводима в аксиоматической системе, описанной в
определении 2.3.3. Таким образом, мы можем применить все тавтологии PL
к формулам PrL (в соответствии с теоремой о полноте 1.12.1) и получить
формулы PrL, выводимые в аксиоматической системе для PrL. □ 2.3.4
В PrL справедлива теорема об эквивалентной замене, подобная теореме
для PL. Ее доказательство аналогично доказательству соответствующей
теоремы в PL. ,--, , .. • < з । . .. •
§ 2.3. АКСИОМАТИЧЕСКОЕ ОСНОВАНИЕ ЛОГИКИ ПРЕДИКАТОВ 101
Теорема 2.3.5 (теорема об эквивалентной замене для PrL). Если формула
А, получена из формулы А путем замены некоторых вхождений
подформулы В на формулу В1г и выполняется где хи ..хп —свободные
переменные формул В и Blt являющиеся в то же время связанными в А,
тогда

I- А □ 2.3.5

В контексте PrL мы можем работать только с теми «правильными»


формулами, которые выводимы в аксиоматической системе PrL. Следующая
теорема дает нам список наиболее часто используемых формул. Эти
формулы выражают коммутативность кванторов и дистрибутивность
кванторов относительно логических связок. Как показано в теореме, эти
свойства выполняются не всегда.
Теорема 2.3.6. Пусть у? и а — произвольные формулы PrL. Тогда
следующие формулы выводимы в PrL: ;•
(Vx) (<р —♦ а) —> ((Vx)tp —> (VX)CT); . U?- ІС h-rf ((Vх)<р ->
(Vх)а) -> (За:) (<р -> а); їда
((W - (Зх)а) (За) - <г); АЙ.
(3x)(<p-»cr)^((Vx)^^(3x)cr); .■ .. . ..<ns ,,лн
((Vx)<,o V (Vx)cr) —* (Vx) (<р V cr);
(Vx) (<£> V cr) —* ((3x)<£> V (Vx)cr); >
(Эх) (^ V <т) w ((Эх)<р V (Эх)ст); ., .ц.

(Эх) (</? А а) —»((Эх)<р А (Зх)сг); и v


(Vx) (<р А ст) —♦ ((Var)v? А (Зх)сг); £’ V
(Vx)(^Aff)w((Vx)y>A(vx)a);v|(:\;
я
(3y) (Vx)9? -»(Vx) (3y)fp;
j
(Vx) (Vy)P ~ (Vj,) (Vx)^; J
-or (Эх) (3T/)V? <-» (3y) (3x)<p; V/tPifiR-:
■ (Vx)y? <-» p, если x не входит свободно в 9?;^,
_‘Ь. (Зх)<£ w tp, если х не входит свободно в <р. п л о с
Одной из ошибок, часто встречающихся в формальных научных
Доказательствах, является неправильное использование дистрибутивности
кванторов относительно логических связок. Например,
102 Глава 2. ЛОГИКА ПРЕДИКАТОВ
формулы
((Vx)y? V (Var)cr) -4 (Vx) (у? V ст)

(За?) (у? А <т) —> ((Зх)у> А


(Зз?)ст),
взятые из списка предыдущей теоремы, выводимы в PrL. Но формулы ,
((Vx)<p V (VX)CT) <-> (Vx) (ip V ст) (Зя) (у> А <т)

((Зх)у> А (Зя)ст),
выражающие полную дистрибутивность кванторов V и 3 относительно
связок V и А соответственно, не являются истинными. Действительно,
формулы
.г ч .. (Vx) (у? V <т)-> ((Vx)y? V (Vx)a)

((Зх)у> А (Зх)ст)—* (Зх) (у? А <т) тч -А


НЕ ВЫВОДИМЫ в аксиоматической системе PrL и НЕВ^,'\ Например,
формула
(Vx)[(x = 2я) V (я / 2л)]
’ ' < '■ \ ■•'Т' j
истинна (см. определение 2.4.2). .» /- і. •
Однако, формула '' ' Д-
[(Vx) (я = 2я)] V [(Уя) (я / 2я)]
НЕВЕРНА. Если бы она была истинной, по крайней мере одна из формул
[(Vx) (х = 2х)], [(Vx)(x/2x)]
была бы истинной. Но это не так: при я = 1 неверно я = 2я, а при я = 0
неверно я / 2я. Таким образом, нужно проявлять осто- ’ рожность при
использовании коммутативности и дистрибутивности кванторов, иначе это
может легко привести к неверным заключениям.
Замечание 2.3.7. Если бы мы захотели расширить язык PrL особым
двухместным логическим символом равенства «=», то ! некоторые свойства
равенства мы бы не смогли выразить посред- ством системы аксиом из
определения 2.3.3. Эта аксиоматизация ' выражает общие свойства
предикатов и не может описать свойства отдельных предикатов, таких как
«=». Например, отношение равенства должно быть рефлексивным,
симметричным и транзитивным. Для того, чтобы аксиоматически описать
эти свойства, нужно > расширить систему аксиом из определения 2.3.3
двумя аксиомами/ [Dela87, Hami78, Mend64, Schw71], |
6) Для произвольного терма х формула

.'Ц 'X =X -.і


М, л . ■■ " ‘.;3 ■! '!‘?Г=, - ■ ■

является аксиомой.
7) Если формула Д1 получена из формулы А заменой одного или
§ 2.3. АКСИОМАТИЧЕСКОЕ ОСНОВАНИЕ ЛОГИКИ ПРЕДИКАТОВ 103
нескольких вхождении терма х на терм у, тогда формула

(z = у)-> (А <-> А,)


является аксиомой.
Таким образом, мы аксиоматизировали рефлексивность равенства и
правило замены равных термов. Свойства симметричности и
транзитивности равенства выводимы из аксиом 1)-7) с помощью правил
обобщения и Modus Ponens. □ 2.3.7
Доказательство теоремы 2.3.6, а также теорем корректности и полноты
аксиоматической системы из определения 2.3.3, с равенством или без
равенства, выходит за рамки этой книги. Читатель может их найти,
например, в [Klee52, Mend64, RaSi70].
Определение 2.3.8. і) Для некоторого, возможно пустого, множества
формул S и произвольной формулы А выводом А из S называется конечная
последовательность формул логики предикатов В),..., Вк, где каждая
формула Віг 1 г к, либо является аксиомой, либо принадлежит S, либо
получена из некоторых формул Bj, Вц 1 У, I і по одному из правил — Modus
Ponens или обобщения.
ii) Формула А выводима из множества S (обозначение SI-A), если
существует вывод А из S.
iii) Формула А выводима, если существует вывод А из пустого
множества. - □ 2.3.8
В логике предикатов большой интерес вызывает теорема дедукции.
Применение соответствующей теоремы для логики высказываний, т. е.
теоремы 1.8.7, к формулам PrL может привести к неожиданным
результатам.
Пусть мы знаем, что в мире есть богатые люди: ..у?
і j . .. богатый (х). ..еїсЛ'
Тогда по правилу обобщения мы имеем: /< ' '
богатый (z)P(Vz) богатый (ж), j. /

и по «сЬотІ^йствующей» теореме дедукции для PrL заключаем:


богатый (ж) —> (Vz) богатый (х).
104 Глава 2. ЛОГИКА ПРЕДИКАТОВ
Иначе говоря, если есть богатые люди, то все люди богаты, что, конечно, не
соответствует действительности. Поэтому для того, чтобы теорема дедукции
порождала правильные заключения, она должна содержать ограничения на
использование правила обобщения.
Теорема 2.3.9 (теорема дедукции). Пусть S — множество формул PrL; А,
В — такие формулы PrL, что S U {А} I- В, и правило обобщения не
применялось в процессе вывода В из S и U {А} к свободным переменным
формулы А. Тогда S Н А —> В.
□ 2.3.9
Доказательство теоремы дедукции для PrL аналогично доказательству
соответствующей теоремы для PL.
Так как наша аксиоматическая система содержит правило Modus Ponens,
верно утверждение, обратное теореме дедукции. Отсюда .
\ .С >. г
Sh А ^В &Su{A}\~B.
Й чтэонтяэч'р: ? • 'ВТ <.13.Т7 6Н"

• Н >4ЬЦ J F.L- ? R'

§ 2.4. Система обозначений логического программирования

В параграфе 1.9 мы определили некоторые основные понятия ло-


гического программирования в рамках логики высказываний. Теперь мы
обобщим эти определения на случай логики предикатов [ChLe/3, Dela87],
Определение 2.4.1. і) Литералом называется произвольный атом
(определение 2.2.4) или его отрицание.
іі) Выражение вида '
(Vx,) (VxJ ... (VxJ (С, V С2 V ... V Сп), M-ч- Ф
где О', і = 1,..., п — литералы, и х1У..., хк — все переменные, встречающиеся в
СІУ 1 г п, называется дизъюнктом. При п =( мы имеем пустой дизъюнкт,
который будем обозначать символом □ □ 2.4.
Мы будем опускать скобки, если расположение в формуле пере ценных и
кванторов не вызывает сомнения.
Дизъюнкт может быть представлен в одном из следующих видов
, а) V») ...VxJAj V...Am V-B, V... V-iB,);.
б) Vx( ... Vxfc(A] V .. .Am 4—В] A ... A В();
в) VX| ... Vxk(Av..., Am «— Bj,..., Bi)', 4. ’
r) [C,, Cn,..., Cn] — теоретико-множествениое.,лредставлени( где для всех
і,
д) А1,...,Ат^-В]у...уВ1. <
По определению 2.2.17 каждый дизъюнкт является предложением. А вот
обратное неверно из-за возможного вхождения в предложение квантора 3.
Однако, логическое программирование имеет дело со всеми возможными
предложениями PrL. Решение этой проблемы будет описано в параграфе 2.7,
где мы будем изучать сколе- мовские формы.
Пример 2.4.2. Следующие выражения являются дизъюнктами:
§ 2.3. АКСИОМАТИЧЕСКОЕ ОСНОВАНИЕ ЛОГИКИ ПРЕДИКАТОВ 105
i) Vx Уу Vz (Р(х) V ~'Q(x, у) V R(x, у, z));
ii) УхУу (-.P(/(x, у), а) V Q(x, у)). □ 2.4.2
Определение 2.4.3. Предложение, полученное из дизъюнкта у? путем
удаления кванторов и подстановки вместо всех переменных констант,
называется основным примером <р. □ 2.4.3
Например, предложение
Р(а) V Q(b) X/->R(a, b)
Д эдч) является ОСНОВНЫМ примером дизъюнкта ■•»»?

УхУу (Р(х) V Q(y) V-B(x, у)). Н'

Определение 2.4.4. Хорновским дизъюнктом называется дизъюнкт вида:

где А, Bt,..., BL — атомы и Z > 1. Атомы В£, і = 1,..I, называются


предпосылками хорновского дизъюнкта, а А — заключением.
□ 2.4.4
Определение 2.4.5. Целевым утверждением или целью называется
хорновский дизъюнкт, не содержащий заключения, т. е., дизъюнкт вида:
Ух,...УхД- В,,.... В,),
Атомы В£ называются подцелями данной цели. □ 2.4.5
Интуитивный смысл понятия цели станет ясным, если мы запишем это
утверждение в виде формулы PrL и используем двойственность кванторов V
и 3, а также правило де Моргана (см. замечание 2.3.4 (3)): i;f
Ух, ... Vxk ... V -'В^ <-+ УЖ| ... Vxfc-i (Bt Л ... А В£)
>■ ч «-*-’(Зх1 ... Зхк) (В] А ... А В£)
Другими словами, здесь утверждается, что нельзя подобрать такие
значения хи хк, чтобы все’Предпосылки В,, ..., Bt стали истинами. '
; !'■; .. ’ • ". і$й. ,Р1
106 Глава 2. ЛОГИКА ПРЕДИКАТОВ

Определение 2.4.6. Фактом называется хорновский дизъюнкт, не

УЖ| ...Vxk (А «-).

□ 2.4.6
содержащий ни одной предпосылки, т. е. дизъюнкт вида:
Замечание 2.4.7. В следующем разделе мы будем изучать предложения
логики предикатов, т. е. формулы без свободных переменных
(определения 2.2.13 и 2.2.17).
Наш интерес к предложениям вызван двумя причинами.
1. Дизъюнкты (определения 2.4.1, 2.4.4, 2.4.4 и 2.4.6), используемые в
логическом программировании, являются предложениями PrL, в которых
все переменные связаны кванторами всеобщности.
2. Для каждой формулы <р логики предикатов с множеством сво-
бодных переменных {□?!,. .., Х^.} мы имеем:
h (-(VxJ. ..(Vxfc)y>
(где (=>) выполняется в соответствии с правилом обобщения, а получаем,
применяя аксиому 4) и правило Modus Ponens).
Таким образом, мы можем изучать предложение (VxJ... (Vxfc) вместо
формулы р>. □ 2.4.7
Определение 2.4.8. Программой называется конечное множество
хорновских дизъюнктов. □ 2.4.8
Проиллюстрируем это определение на примере. ■’
Пример 2.4.9. Пусть даны следующие утверждения на русском языке:<
j
Sx‘. Питер — вор. •<•■ . ’«• нМЗЛимХ •’Ц?
■ Sp Мэри любит шоколад. ’
Sp Мэри любит вино. “• .< э э q - С
54: Питер любит деньги. ’ ‘ * ' ' ''>,!л4 " '
55: Питер любит х, если х любит вино.
Sp х может украсть у, если х — вор и х любит у.
Введя константы «Питер», «Мэри», «вино», «шоколад» и «деньги»,
переменные х, у и предикаты «вор» (одноместный), «любит» (двуместный)
и «может.украсть» (двуместный), мы можем составить следующую
программу: ''Pb'Vi-.'
Ср. вор(Питер) ;
’• Ср любит(Мэри, шоколад) Дг • ■ .» 7
' Ср любит(Мэри, вино) ;
Ср любит(Питер, деньги)
Ср. любит(Питер, х) 4— любит(х, вино); .
Ср. может_украсть(х, у)«— вор(х), любит(х, у).
§ 2.5. ИНТЕРПРЕТАЦИЯ В ЛОГИКЕ ПРЕДИКАТОВ 107

Хорновские дизъюнкты Ci, С2, С3 и С4 являются фактами. Хор- новские


дизъюнкты С5 и С6 образуют процедурную часть программы.
Пусть мы хотим узнать, что именно Питер может украсть (если он
вообще может что-то украсть). Мы должны записать следующую цель:
G: <— может_украсть (Питер, у)
Ответ мы найдем в примере 2.10.12. □ 2.4.9
Позже мы подробно обсудим способы выведения заключений из
множеств дизъюнктов, подобных множеству из предыдущего примера.
В параграфе 2.5 мы разовьем теорию интерпретаций и опишем, как с
помощью интерпретаций можно приписывать истинностные значения
предложениям логики предикатов, то есть формулам без свободных
переменных.

§ 2.5. Интерпретация в логике предикатов


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

Интерпретация: неформальное описание 'Д ж

Мы хотим проинтерпретировать предложения PrL, т. е. приписать им


истинностные значения. Основными элементами этих предложений
являются термы, состоящие из переменных и констант. Поэтому для
интерпретации термов мы должны сначала выбрать множество объектов, на
котором термы будут интерпретироваться. Затем мы сможем определить
истинностное значение предикатов и предложений языка.
Итак, мы видим, что семантика PrL сложнее, чем семантика PL. Для
лучшего понимания последующих определений, приведем несколько
примеров.
Пример 2.5.1. Рассмотрим язык £ = {Q, а}, где Q—предикат, а —
константа, и предложение этого языка
S: (3x)(Vy)Q(x, у).
• МІР
Для каждой интерпретации этого языка най нужжгопределить множество
объектов, элементы которого должны соответствовать
символам £, и приписать истинностные значения предложения языка.
Возьмем множество натуральных чисел N в качестве мн< жества объектов.
Тогда мы можем определить интерпретацию ка структуру вида: ,•
.ні- у . . ■ Г
.-■м: X = (N, <1, 1),
108 Глава 2. ЛОГИКА ПРЕДИКАТОВ

где , /J
N: множество натуральных чисел, *
і <: отношение «меньше или равно» на N,
1: натуральное число 1.
Установим следующее соответствие между элементами А и си» волами
языка £:
символ Q соответствует отношению на множестве N,
символ а соответствует натуральному числу 1.
Пусть переменные х и у формулы S принимают значения на мне жестве
N. Тогда формула S в интерпретации А имеет следующи смысл: ;
S: существует такое натуральное число ж, «н тйД 6 ■ что для каждого
натурального числа у 4
выполняется отношение X у.
Таким образом, S утверждает, что в А существует минимальны элемент.
Это, конечно, верно для А, так как 1 является минимал» ным элементом А.
Теперь определим другую интерпретацию того же самого языка J
•4' = (N, >, 1),
где предикат Q соответствует отношению «>» — «больше» на множестве
натуральных чисел, а константа а соответствует числу 1.
В этой интерпретации формула S имеет следующий смысл:
„ S: существует такое натуральное число х, что *. ;
для каждого натурального числа у выполняется отношение х > у.
В данном случае S утверждает, что в А' существует максимальный элемент,
а это, очевидно, неверно, так как А' не имеет максимального элемента.
В итоге, мы видим, что можно определять различные интерпретг ции для
одного и того же языка, приписывая при этом различны истинностные
значения предложениям. □ 2.5.

Интерпретация и истинность: формальное описание

Теперь мы перейдем к формальному описанию интерпретаци и


определим понятие истинности предложения в контексте Рг [ChLe73,
Dela87, Hami78, Meta85, RaSi70],
§ 2.5. ИНТЕРПРЕТАЦИЯ В ЛОГИКЕ ПРЕДИКАТОВ 108

Определение 2.5.2. Пусть мы имеем язык PrL !


{^0, ' •’ /о> fl » • • •’ CQI С1 ’ • • •}»
где R, — предикатные символы, /■ — функциональные символы ис, —
константы, і = 0, 1,... Интерпретация языка С
А=(А, £(Л0), £(Rl), . . ., Є(/О), £</,), . . ., £(q,), £(Cj), ...)
включает в себя:
і) множество A ^0— область интерпретации;
ІЇ) n-местное отношение £(Ri)QAn для каждого п-местного предикатного
символа Rp,
iii) функцию Ат >-» А для каждого функционального символа X;
iv) элемент е(с£) € А для каждой константы с,.
Элементы £(Ri), є(Л) и е(с€) называются интерпретациями символов Rit и
с, в Д. □ 2.5.2
Пример 2.5.3. Рассмотрим язык
£ = {=,^,+,*,0,1}
из примера 2.2.2. Интерпретация этого языка имеет вид: Л = (N, 0, 1),

где N — множество натуральных чисел, «=» —отношение равенства на


множестве N, «О — отношение «меньше или равно», «+», «*» — сложение
и умножение на множестве N.
Отметим здесь, что символ «+» языка £ является трехместным
предикатным символом, например, +(2, 3, 5) означает 2 + 3 = 5. В
интерпретации А этот символ интерпретируется как е(+)— символ
функции сложения натуральных чисел. Мы, как правило, будем обозначать
выражением є(@) объект, являющийся интерпретацией символа «@» языка
£ в интерпретации А.
Таким образом, мы имеем следующие интерпретации символов £:
£(—) С N х N; . ,,.. , ,.
e(^)CNxN; ЦЯ»
г .■>> у, ' tохащ'Т и ■
є(+) С N х N х N; in- '<■,.
‘Л' e(*)CNxNxN;
.І ■» М Ц ЦГЬЄГ
Ї Є
е(0) є N; нф 'іфщпж «їм
• t* у ' f • -

■ г:
£(l)eN. . ,чч ■ ■ Q 2.5.3
110 Глава 2. ЛОГИКА ПРЕДИКАТОВ

Как мы видели, язык PrL и его интерпретация — разные понятия.


Однако, в дальнейшем для простоты изложения мы часто будем
использовать символы языка для обозначения интерпретаций этих
символов. Например, символ будет использоваться и в качестве
предикатного символа языка, и в качестве его интерпретации вместо е(^)—
подмножества N х N.
Как мы видели в примере 2.5.1, один и тот же язык может иметь
несколько интерпретаций.
Пример 2.5.4. Рассмотрим интерпретацию языка £, отличную от
интерпретации, изучаемой в примере 2.5.3:
Д' = ({2п | п є No}, = ', +', О') .. f (четные натуральные числа),
’ІС
где

е(=) есть —' — равенство на множестве {2п | п Є No}„ , ., е(*) есть *' —
умножение на множестве {2п | п е N0},et; >ад е(+) есть +'— сложение на
множестве {2п | п Є N0}, ’TH > е(0) есть О' — нулевой элемент операции
+'. ’
Как отмечалось ранее, предложение языка может быть ♦истинным» в
одной интерпретации и «ложно» в другой. Например, предложение
(By) (Vx)(a: * у = х), утверждающее о
существовании единичного элемента операции истинно в Л и ложно в А'.
□ 2.5.4
Теперь мы дадим индуктивное определение истинности предложения в
интерпретации А.
Определение 2.5.5 (индуктивное определение истинности предложения в
данной интерпретации). Пусть
~ {Ло, > • • •> fo, fi > • • •, CQJ С],...} ,ff(
— некоторый язык, и Л — некоторая его интерпретация.
а) Интерпретацией основного терма t называется такой элемент E(t) Є
А, что
если t есть константа с, то e(t) = є(с);
если t имеет вид /(tu ..., t„), где і,,..tn — основные термы, ТОГда e(i) = e(/)
(e(tI),..., e(t„)).
б) Атомарное предложение tn) истинно в интерпрета
ции А тогда и только тогда, когда
> ;
• •' (£(*(), є(іп))Єє(Л£).

В этом случае мы записываем формально


.Л.. • ! А (t],..tn)
Пусть 9?, и ^2 — некоторые предложения языка С. Тогда
§ 2.5. ИНТЕРПРЕТАЦИЯ В ЛОГИКЕ ПРЕДИКАТОВ 111

в) А |= <=> А <р\
г) А |= 9?! V 9?2 <=> А <р] или А |=
д) А = 9?] А 9?2 о А |= 9?i и А |= у>г\
е) А |= у?! —»</?2 <=> А у?] или А £ 9?2;
ж) А |= у?] w 9?2 о (А |= у?] и А |== р2) или М Н= Pi и Д 9з2);
з) Л|=(\/и)9?(и)ф> существует элемент а Є А такой, что Д'99(c), где с ^ £,
и Д' получена из А путем добавления элемента е(с) = а;
и) А |= (Vu)9?(u)<=> для любого элемента а е А выполняется Д' [= |=
99(c), где с $ £, и Д' получена из А путем добавления □ 2.5.5
Замечание 2.5.6. 1. Согласно определению 2.5.5 и замечанию 2.3.7 мы
имеем

Д^с,= с2<=>е(с1) совпадает с є(t^).


2. Если атомарное предложение 7?,(с^,..., с£ ) является истинным в Д, то
Ri принимает значение t, если предложение не является истинным, то Ri
принимает значение f (упражнение 12). □ 2.5.6
В определении истинности формулы в данной интерпретации индукция
проводится по сложности предложения. Например, согласно пункту в),
дизъюнкция (9>| V 9>2) истинна в А тогда и только тогда, когда по крайней
мере одно из предложений <р2 истинно в А.
Все аксиомы из определения 2.3.3 и замечания 2.3.7 являются
формулами, истинными во всякой интерпретации Д. Более того, по
правилам обобщения и Modus Ponens из истинных формул получаются
также истинные формулы в любой интерпретации PrL (что означает
корректность аксиоматической системы PrL).
Пример 2.5.7. Пусть £ = {Q,g}— язык арифметики, и

-4 = (Q+,=,p), Д' = (К+,=,р)


— две интерпретации языка £, где
Q+: множество положительных рациональных чисел, R+: множество
положительных вещественных чисел, д: д(х) = х2, e'(Q): ——равенство на
множестве R+, £(Q): = — равенство на множестве Q+, є'(р): функция д,
определенная на множестве К+, е(р): функция д, определенная на
множестве Q+.
Тогда предложение S: (Vx) (3y)Q(x, д(у)), т. е. (Vx) (3j/) (х = у2), истинно в
интерпретации Д', но ложно в интерпретации Д, так как Уравнение х = у2
для заданного положительного х всегда имеет решение на множестве R+, но
не всегда на множестве Q+. □ 2.5.7
Пример 2.5.8. Для языка £ = {Q, f, а, &} мы можем определить
следующую интерпретацию:
А = (А, ребенок, мать, Джон, Мэри, Наполеон), .ч
112 Глава 2. ЛОГИКА ПРЕДИКАТОВ 1
где '*■ , МИ
А: множество всей людей, .... к
е(<5): отношение «ребенок», т. е. с(<?) (хи Ж>) = ребеНОК(®р 3^) =
= «®[ является ребенком X,», к
е(/): функция «мать», т. е. е(/) (х) = мать(х) = «мать ж», е(а): Мэри,Y j
є(Ь): Джон, мп
е(с): Наполеон. .
Отметим, что в интерпретации А один символ, а именно с, не является
элементом языка, тем не менее, он тоже проинтерпретирован. Ниже (см.
теорему 2.5.14) мы увидим, что такая интерпретация символа, не
принадлежащего языку, не вызывает трудностей.
Рассмотрим предложение S: Q(b, /(b))V(3a?) (Q(a, х)). В интерпретации А
оно имеет вид:
S: «Джон является ребенком матери Джона V
** или
существует некто X, ЧЬИМ ребенком является Мэри» Ij
Очевидно, Джон является ребенком матери Джона, поэтому предложение S
истинно в интерпретации А (пункт в) определения 2.5.5).
□ 2.5.8
Определение 2.5.9. Интерпретация А языка С называется моделью
предложения а тогда и только тогда, когда Д|=ст. □ 2.5.9
Определение 2.5.10. Для интерпретации А языка £ множество
0(Д) = {ст | ст}
называется теорией интерпретации. □ 2.5.10
Другими словами, теория интерпретации есть множество всех
предложений, истинных в этой интерпретации.
В примере 2.5.8 мы видели, что возможно проинтерпретировать
символы, не являющиеся элементами языка. Дадим определение, которое
будет полезным в таких случаях.
Определение 2.5.11. Пусть мы имеем такую интерпретацию А языка £,
что элементы а15 а^,... из области интерпретации не являются
интерпретациями констант языка £.
1. Сформируем новый-язык.: •• ||
. . £* = £ U {ct, С2,..Я -э/ло*!' .4- где символы С[,С2,...
являются новыми символами констант, не
принадлежащими £. Язык С называется элементарным
расширением языка £.
2. Для произвольной интерпретации 1

«4 — (A, R\y R2,..., Д, f2,..cf|, d?,,...)
мы построим новую интерпретацию:
К
Д = (^4, R}, R2, ■ • ч /и />> • • ч <^]і • • ч Uj, а?, • • ■)
§ 2.5. ИНТЕРПРЕТАЦИЯ В ЛОГИКЕ ПРЕДИКАТОВ 113

языка £* — £и{с], ...}, где с,, с?,... $ £, фиксируя при этом следующую
интерпретацию символов с1? ...: д(с1) = а), — .
Интерпретация А* называется элементарным расширением интерпретации
Л. □ 2.5.11
Пример 2.5.12. Предположим, что
0,1}, А = (N, =,«,+,*, 0, ,
Тогда мы можем построить язык .Д' 7?,,’ '
£’ = {=, ^,+, *,0, 1,С,,С2, ...} ‘л'
и его интерпретацию , ;оф.іох.ш код
А* = (N, =, +, *, 0, 1,2, 3,...). □ 2.5.12

Замечание 2.5.13. Кроме констант в язык £ могут быть добавлены также


новые символы функций и предикатов. Расширение языка £ новыми
символами функций и предикатов £* называется неэлементарным
расширением £. Соответствующее расширение А* интерпретации А
называется неэлементарным расширением А.
□ 2.5.13
Сформулируем теорему об истинности предложения в контексте PrL.
Теорема 2.5.14. Пусть А есть интерпретация языка £. Предположим,
что А* и £* — такие элементарные расширения А и £, что каждый
элемент области интерпретации А” является интерпретацией
некоторого символа языка £*. Тогда предложение а языка £ истинно в
интерпретации А тогда и только тогда, когда оно истинно в
интерпретации А*. Формально,
А |= а А" |= а
Доказательство. Индукция по сложности предложения а.
Вначале следует отметить, что при элементарном расширении значения
всех основных термов языка £ остаются в интерпретации
А* такими же, как и в исходной интерпретации А. В этом легко убедиться,
воспользовавшись математической индукцией по структуре основного
терма и принимая во внимание то обстоятельство, что все элементы языка £
имеют в интерпретации А* то же самое значение, что и в интерпретации А.
Если а имеет вид Р(4П ..tk), где і,, ..tk — основные термы, то

А* P(tlt..e(tk))ee(P) q
и e(ij),e(tk) є А*, є(Р)СА к

-Л S(P) fljj

* и e(t(),є(<*)є Д, є(Р)САк, ж]
■ : bи
так ° — предложение языка £ J?
как
114 Глава 2. ЛОГИКА ПРЕДИКАТОВ 1
|= P{t\.,..tk).
ф
Случаи а: -чр, а: <рУр',а: рлр'исг. <р —* р>’ рассматриваются
аналогично.
Пусть предложение а имеет вид (Згг)у?(я), где х — единственная
свободная переменная формулы (р. Тогда
A* h= (3)<^(ж) о j
для некоторого элемента а € Д’ и константы с є(с) = а ,/г
ч

согласно предположению индукции, равенству областей интерпретаций А*


и А, а также тому факту, что <р — предложение языка £
Д |= у?(с).
Случай ст: (Vx)<^(x) рассматривается аналогично. □ 2.5.14
Согласно теореме 2.5.14, истинность предложения в интерпретации Д*
не зависит от выбора новых символов констант и их интерпретации.
Определение 2.5.15. Предложение а языка £ выполнимо или
непротиворечиво тогда и только тогда, когда существует интерпретация А
языка £ в которой это предложение истинно, т. е. Д>ст. □ 2.5.15
Определение 2.5.16. Множество предложений S выполнимо или
непротиворечиво, если существует интерпретация в которой все
предложения S истинны. В противном случае, множество S невыполнимо
ИЛИ противоречиво. □ 2.5.16
Пример 2.5.17. Пусть
.с c’V; тнЯ J
Д= (N, 0, 1). :
Тогда выполняется А |= а, где а — одно из предложений (1)-(2) примера
2.2.8.
Докажем, что А |= (Vz) (Vy) (х — у —> у = х). |Н? .
Предположим, A h= (Vz) (Vy) (х = у -> у = х) ВДДОо. Тогда по
определению 2.5.5 з) и б) существуют cn Cj таки^лйф
' -- A h-[(с, = cj -> = с,)].
Следовательно,
Д|=-,[^(С( =02)7(02 = 0,)], . ■ у"
ИЛИ .. '* *. ‘
н

КС| = Л = С« J
•:«.;Х'д •. Л

и по определению 2.5.5 г) < ) Ле- < 5*>* ft


_ > .-га. мин >.р.уду
Л^(Сі=С2) О! -• <’<»!!>• » ЬЛІСЄЧ > (О
§ 2.5. ИНТЕРПРЕТАЦИЯ В ЛОГИКЕ ПРЕДИКАТОВ 115

По седьмой аксиоме замечания 2.3.7, т. е. аксиоме подстановки равных


термов, мы, используя (1), подставляем С2 вместо с, в (2). Тогда

*г-'-
или, по определению 2.5.5 ж), .? •; 1 v ■ . .
А ]= (Эж)-’(ж = х). '■■■ <■
. -А;
Используя двойственность V и 3, получаем ......
А |= -’(Vz) (ж = z),
что противоречит рефлексивности отношения равенстве* □ 2.5.17
Пример 2.5.18. Стандартная интерпретация Мзыка £ = = {=><>+>*, 0> 1}
имеет вид: ..
Л = (N, 0, 1). ,,'jp э-
Рассмотрим другую интерпретацию языка С
Я rV $'• «г
S = (Q,=,^,+,*,O, 1). л ...
где Q — множество рациональных чисел.
Пусть предложение а имеет следующий вид (формальное определение
плотного порядка):
(Vz) (Vy)[-i(z = у) -> (3z)[->(2 = z) Л -п(г - у) Л (х <^) Л (z у)]].
Тогда А ст, но В |= о. -v * □ 2.5.18
116 Глава 2. ЛОГИКА ПРЕДИКАТОВ

Точно также, как в PL, в каждом языке PrL существуют предло- жения,
истинные во всех интерпретациях этого языка.
Определение 2.5.19 (Общезначимая формула). Если формула а языка £
истинна во всех интерпретациях £, то она называется общезначимой или
логически истинной. □ 2.5.19
Пример 2.5.20. Пусть — произвольное предложение языка С, и V* —
произвольная формула £. <
Тогда предложение Л

истинно во всех интерпретациях £. 1


Доказательство. Допустим, что предложение S не истинно во всех
интерпретациях языка £. Тогда существует интерпретация А языка С такая,
что
Л ((Vv) (Vv)V>)).
Отсюда, по определению 2.5.5 мы имеем • <. Д
неверно [А (Vv) (ip —♦ -ф) или А <р —> (Vv)i/>],
по правилу де Моргана
м
неверно [Л (\/v) (у? —> V')] и неверно [Л [= р —>(Vv)V’J. і
г

По закону двойного отрицания получаем J


А |= (Vv) (у? —> ф) (1) и Л^у?->(Уа)^ (2).
Из (2) следует Д ^-ny?v(Vu)V>, и по определению 2.5.5 б) мы имеем:
А1=р и A^=(^v)^. (3)
Из (3) и определения 2.5.5 з) следует, что существует константа с € £
такая, что '
А\=~уф(у/сЛ, .
~v , pi’/і
и из А |= <р и определения 2.5.5 г) получаем
А [= р Л -’•0(и/с),
.с '■ м
чйЮМЙвЙИвалентно
-НІ І "•..г .;..Я
’• Л|=^у> vV’fv/c)),
чтр, В свою очередь, эквивалентно 5j . ;4Г
Л Н Ч95 — ^(v/c)). ■ ’ -1 гД ■ ■ J V, К. Г1 (4J
§ 2.5. ИНТЕРПРЕТАЦИЯ В ЛОГИКЕ ПРЕДИКАТОВ 117

Из (1) и определения 2.5.5 з) для всякой константы с е£ выполняется


Д |=(у> -» i/>)(v/c). (5)
Однако, ср является предложением и не имеет свободных переменных.
Следовательно, в формуле ср невозможно сделать ни одну подстановку.
Отсюда, (5) имеет вид А (= ср —♦ ф(у/с) для всех с Є £, что вступает в
противоречие с (4). Следовательно, предложение S истинно во всех
интерпретациях языка £. □ 2.5.20
Определение 2.5.21. Пусть £ — язык PrL, и S — множество предложений
PrL. Предложение а называется следствием S (краткая запись S |= <т) тогда
и только тогда, когда во всякой интерпретации А языка £, в которой
истинны все предложения из S, истинно также и предложение а. Это можно
записать следующим образом:
<т є Con(S) <=> (УЛ)[Л |= S => А [= ст] □ 2.5.21
с
§ 2.6. Нормальные формы в логике предикатов

Изучая логику высказываний, мы рассматривали две эквивалентные


нормальные формы высказываний: КНФ (конъюктивная нормальная
форма) и ДНФ (дизъюнктивная нормальная форма). Аналогичные формы
можно найти также и в логике предикатов. В контексте PrL, однако,
существуют две дополнительные нормальные формы: предваренная
нормальная форма (ПНФ) и сколемовская нормальная форма (СНФ),
которые различаются типом кванторов, входящих в предложение [Chur56,
ChLe73, Hami78, К1ее52, Thay88]. Преобразуя каждое из двух заданных
предложений в одну из этих форм, мы можем легко их сравнить и
определить, эквивалентны ли они, является ли одно из них отрицанием
другого, или просто, обладают ли они какими-либо особенностями.
Сколемовская нормальная форма играет важную роль в логическом
программировании.
Мы рассмотрим эти формы в следующих пунктах.

Предваренная нормальная форма $

Определение 2.6.1. Формула ср находится в предваренной нормальной


форме (сокращенно ПНФ), если она имеет вид:
(Qxxx) • ■ • (Qnxn)&i
где і = 1,..., п обозначает один из кванторов V, 3, и а — формула без
кванторов. Выражение (Qxx{)... (Qnxn) называется префиксом формулы ср, а
ст называется матрицей ср. '■ □ 2.6.1
Пример 2.6.2. Следующие предложения находятся в ПНФ: a) (Vx)(V</)[P(x,
y)-Q(x)];
б) (Vx) (By)[Q(x, у) V P(x, у)] □ 2.6.2
118 Глава 2. ЛОГИКА ПРЕДИКАТОВ

Чтобы привести формулу или предложение к ПНФ, кроме экви-


валентностей логики высказываний мы также будем использовать
следующие тождества:
1) (Qx)P(x)\/ G *->(Qx)[P(x) V <7], где х не входит свободно в G;
2) (Qx)P(x)A G <->(QX)[P(X)A <7], где х не входит свободно в G;
3)-i(Vx)P(x) w (Зх) (-<Р(х));
4) -(Зх)Р(х) W (Vx) (-Р(х)); «L
5) (Vx) Р(х) A (Vx) (7(х) w (Vx) (Р(х) А (7(х));
6) (3x)P(x)V (Зх) (7(х) «-> (Зх) (Р(х) V G(x)); ‘
где (Qx) обозначает либо (Vx), либо (Зх).
Представленные выше формулы выводимы в аксиоматической системе
PrL (теорема 2.3.6). Формулы 1) и 2) утверждают, что зону действия
квантора можно распространить на конъюнкцию или дизъюнкцию, если
переменная под квантором не входит свободно в соответствующую
подформулу. Формулы 3) и 4) очевидны ввиду двойственности кванторов V
и 3. Формулы 5) и 6) утверждают о дистрибутивности квантора
всеобщности относительно конъюнкции и квантора существования
относительно дизъюнкции. Обратное, однако, неверно:
7) (Зх)Р(х) А (Зх)(7(х)(Зх) (Р(х) A G(x));
8) (Vx)P(x) V (Vx)G(x) (Vx) (Р(х) V G(x)). ■ ..«ЬК.П-ЛЛ
Чтобы получить эквивалентности в случаях, подобных 7) и 8), мы
сначала переименуем все вхождения переменной х в формулах (Vx)G(x) и
(3x)G(x). Это делать разрешено, поскольку х — связанная переменная.
Затем по теореме 2.3.6, используя 5) и 6), получаем (как?) следующие
эквивалентности:
9) (Q1x)P(x) A (Q2x)G(x) <-* (Q,x) (Q2z)[P(x) A G(z)],
10) (Q.x)P(x) V (Q2x)G(x) ~ (Q,x) (Q2Z)[P(X) V G(z)],
где Q{, Qn Є {V, 3), и переменная z не входит в G(x) вообще и не входит
свободно в Р(х).
Теперь опишем формальную процедуру для приведения предложения к
ПНФ. -■ ■■■•*-> t -І ’• І'-МІ- я...’АЦО’1
Построение 2.6.3.
Шаг 1. Избавляемся от символов и -м с помощью формул:
4 1а) (A wB)w((A ->B)'A(B -+ А));\ •
;
1б) (A-BW-.AVB).
Шаг 2. Проносим отрицания вглубь формулы до атомов с помощью
формул:

26) -‘(А Л В) <-> ->А V ->В; *. :л ; ■ •


2в) -(-М)~ А; ' ' -А
2г) -(Уж)А ~(Зж)->А; ... .
§ 2.5. ИНТЕРПРЕТАЦИЯ В ЛОГИКЕ ПРЕДИКАТОВ 119

2д) --(Зж)А ^(Ух)--А.


Шаг 3. Выносим кванторы наружу с помощью формул:
За) (Уж)А(ж) Л (\х)В(х) ~ (Уж) (А(х) Л В(ж));
(Зж)А(ж) V (Зх)В(х) w (Зж) (А(х) V В(х)); ■ .
36) (QX)A(X)AB <-+(Qx){A(x)/\ В]; юП ' і
(Qx)A(x) VB <->(Qx)[A(x) VB]; 1

в формулах (36) В не содержит свободных вхождений ж;


Зв) (фж)А(ж) V (<Э2ж)В(ж) w (фж) (ф22)[А(ж) V B(z)]\
(ф,ж)А(ж) Л (Q2x)B(x) (Q2Z)\A(X) Л B(Z)];
в формулах Зв) В не содержит свободных вхождений ж, переменная z не
входит в В и не входит свободно в А, и B(z) есть результат замены
свободных вхождений ж на z. □ 2.6.3
Пример 2.6.4. ■\"Л-
(Уж)Р(ж)-*(Зх>Я(ж)~-(Уж)Р(ж) У(3ж)/?(ж) (16)
ил:гл; Й«І $ •*-* (Зж)-'Р(ж) V (Зж)Я(ж) (2г)
у' (Зж)[-»Р(ж) V і?(ж)] (За)
•. 'X ■' 0 2.6.4
Пример 2.6.5. ’
у?: (Уж) (Уу)[(3г) (Р(ж, z) Л Р(у, z)) -> (Эи)Я(ж, у, и)]
*->(Уж) (Vy)[-i(3z) (Р(ж, z) Л Р(у, z)) V (Зи)Я(ж, у, и)] (16)
*->(Уж) (Уу)[(У^) (—>Р(ж, z) V ->Р(у, z)) V (Зи)/? (ж, у, и)] (26)
<->(Уж) (Уу) (Уг)[-,Р(ж, z) V ~'Р(у, z) V (Зи)Я(ж, у, и)] (36)
*->(Уж) (Уу) (Уг) (Зи)[->Р(ж, z) V -^Р(у, z) V Я (ж, у, и)] (36)
□ 2.6.5
Теперь мы можем перейти к преобразованию предложения <р в
универсальное предложение р*, которое содержит только кванторы
всеобщности, находится в предваренной форме и выполнимо тогда и
только тогда, когда выполнимо <р. ,
Сколемовская нормальная форма

Теорема 2.6.6 (Лёвенгей.м, Сколем). Для каждого предложения р логики


предикатов мы можем построить универсальное предложение р* такое,
что
р выполнимо <=> р* выполнимо. □ 2.6.6

Опишем, как построить р* для произвольного предложения р.


Построение 2.6.7. Пусть р— предложение языка PrL.
120 Глава 2. ЛОГИКА ПРЕДИКАТОВ

Шаг 1. Строим ПНФ предложения р.


Шаг 2. Последовательно (слева направо) вычеркиваем каждый квантор
существования (Эу), заменяя все вхождения переменной у на новый, еще не
использованный функциональный символ /, в качестве аргументов f берем
все переменные, связанные предшествующими (Зу) кванторами
всеобщности. Функциональный символ f называется сколемовской
функцией. Предложение р*, полученное после выполнения шагов 1 и 2
называется сколемовской нормальной формой, коротко СНФ. □ 2.6.7
Пример 2.6.8. Рассмотрим предложение
(Vs) (Зу) (Vz) (Bv)P(x, у, z, v), ; , 5i•
которое находится в ПНФ. '•
1. Вычеркиваем (Зу) и заменяем у на сколемовскую функцию f(x). Таким
образом, получаем предложение
.•:-г VY- (Vx)(Vz)(3v)P(x,f(x),z,v). ■ ,-,;к . f Ї :

2. Вычеркиваем (3v) в pt и заменяем v на сколемовскую функцию g(x, z),


так как кванторы (Vs), (Vz) предшествуют квантору (Зи). В итоге, получаем
р*: (\/х) (\/z)P(x, f (х), z, д(х, z)). □ 2.6.8

Говоря неформально, в предыдущем примере /(s) указывает на


существование переменной у, которая зависит от s (по определению 2.5.5 з)
и ж) для каждого х существует константа, которую можно подставить
вместо у). Значит, переменная у должна быть связана квантором
существования. Следовательно, из pt и р* следует р, если принять во
внимание /(s) и д(х, z).
Пример 2.6.9. СНФ предложения . , .. ■,
! ЧР1 .2rl|?V XS і .і."’ ■.
р\ (Зу) (Vs) (Vz)^>(S, :<!>! UIJC і-Т Н имеет
вид
(Vx) (Vz)V’(x, с, z), где с — константа,
поскольку соответствующая сколемовская функция f не имеет аргументов
((Зу)— первый квантор предложения <р, следовательно, у не зависит ни от
одной переменной, и функция f превращается в константу с). □ 2.6.9
Приведение предложения к СНФ имеет большое значение в логическом
программировании, это станет еще более очевидным, когда мы представим
метод резолюций для вывода формул в PrL.
В определении 1.9.4 для логики высказываний мы видели, что
предложение вида
(А^ V... V А<в) А... А (А^ V... V AfcJ, то есть, конъюнкция
дизъюнкций, может быть представлена в теоретико-множественном виде:
{{А^,..А^}, • • ч {А^, • • •> At^}.
§ 2.5. ИНТЕРПРЕТАЦИЯ В ЛОГИКЕ ПРЕДИКАТОВ 121

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


определение теоретико-множественного представления предложений PrL.
Определение 2.6.10. Пусть предложение у? PrL находится в СНФ:
у>: (VxJ... (Vxz)A(x1,..., х(), >)! ч.Щч'.-іГлЛі.лч
где А(хи ..., xt) есть конъюнкция
Cj ("^IJ • • ч
Х
1)А•••А (•£[’ • • ч
х
1 ))
и каждое С*., 1 і к есть дизъюнкция атомов PrL или их отрицаний Тогда
теоретико-множественным, представлением
у? называется множество.
S - {{/>,,..PJ,..{Д,..Д}) или S = {С„ .С,}.
Каждое С, является дизъюнктом, aS — множеством джъюнктов.
гм О 2.6.10
Пример 2.6.11. Предложение
(Ух)^)[^(х, у) A(F2(X) VP3(Z))AP4(Z, Х)]
имеет следующее теоретико-множественное представление: !

у)}, {(Р2(х), P3(z)}, {P4(z, х)}} □ 2.6.11


В следующих разделах мы рассмотрим эрбрановские интерпретации, а
также методы доказательства выполнимости предложения или множества
дизъюнктов PrL.
ЙОНГ’"- i'll 'W?'*■’ • j!> ,/
§ 2.7. Эрбрановские интерпретации

В этом разделе мы опишем особый вид интерпретаций — эрбрановские


интерпретации [ChLe73, Dela87, К1ее52, Thay88], которые играют важную
роль в теоретическом основании логического программирования.
Эрбрановские интерпретации были темой докторской диссертации
Эрбрана в 1930 г.. Пожалуй, не будет преувеличением сказать, что без
вклада Эрбрана логическое программирование было бы и до сих пор
несбыточной мечтой. Основная проблема автоматического доказательства
теорем состоит в построении универсальной процедуры, с помощью
которой мы могли бы проверить, общезначимо предложение логики
предикатов или нет [ChLe73]. В 1936 г. Тьюринг и Чёрч независимо друг от
друга доказали, что такой универсальной процедуры не существует.
Однако, Эрбран к тому времени уже решил косвенно эту проблему,
представив алгоритм для построения интерпретации, опровергающей
данную формулу у?. Если у? общезначима, опровергающей ее
интерпретации не существует, и алгоритм останавливается за конечное
число шагов.
Первые попытки применить идеи Эрбрана в логическом про-
граммировании предприняли в 1960 г. Гилмор, а также Дэвис и Путнэм; эти
попытки, однако, нельзя назвать удачными. Успех пришел в 1965 г., когда
122 Глава 2. ЛОГИКА ПРЕДИКАТОВ

Робинсон, применяя метод Эрбрана, ввел и использовал понятие


резолюции. ;
|с. у.Ч
Описание эрбрановского универсума А
' ''ъ'

Для данного предложения PrL у? мы хотим определить, выполнимо у?


или нет. Мы будем решать вопрос о выполнимости предложения, должным
образом исследуя соответствующее у> множество дизъюнктов S.
Однако, проверка выполнимости или невыполнимости всех основных
термов, входящих в дизъюнкт, практически невозможна. Поэтому, мы
построим множество интерпретации, на котором будут принимать значения
термы предложения у?. Это множество называется эрбрановским
универсумом. Эрбрановский универсум строится индуктивно следующим
образом.
Построение 2. 7. 1. (Построение эрбрановского универсума.)
Пусть S — множество дизъюнктов, соответствующее предложению у.
Шаг 1. .л; :■
is.;/ К

Но ={с | константа с встречается в S'}; и: {со},если S не содержит


ни одной константы,
§ 2.7. ЭРБРАНОВСКИЕ ИНТЕРПРЕТАЦИИ 123

где CQ — новая константа («новая» означает, что она не


встречается в S), которую мы выбираем произвольным
образом.
Шаг і + 1 ,
Я, +! = U {/(а17..ап) |ар 1 j п, —термы из Я,., / — функция, входящая
в S'}
И наконец, полагаем
я = и,е7Уя,..
Множество Я всех термов, построенных из констант Я о и функ-
циональных символов, встречающихся в S, называется эрбранов- ским
универсумом для S. Множества Я,, і =0, 1,2,... называются эрбрановскими
множествами S. □ 2.7.1
Пример 2.7.2. Пусть задано множество дизъюнктов

5: {{Р(а)},ЬР(а),Р(/(х))}}, N
где а -і- константа. Тогда
.Яо = {«}, ■ --.ntpij;'*• Т <Т>') ,йО < J / . . ,;І .s-
д.7. ^ = {а, f(a)}, nn'Stp: ’. XU. . ■ ’ у м к с
; ШХх'< #2 = {a, /(a), /(/(a))},. \' "Г

... н = {о, /(а),


.... , P' ‘Я.ЯГ O.jRj /(/(а)),
и наконец,
/(/(/(а))), .ф- ' .v,'.
'
V 0 2.7.2
ПримерахРассмотрим программу і , ’ .ф, . ■
' PW<- Q(f(x),g(x))
J.. ... Л;-. ■■ Л R(x)<- , $ ..
Вводим константу а и получаем
Я = {a, f(a), g(a), g(f(a)), g(g(a)),...}.
□ 2.7.3
Пример 2.7.4. r -.^ї! ЙЙ,'. ґЗП
5 = {{Р(т),«(х)},{Т(х),^Я(І)}}
Вводим новую константу CQ. Получаем Яо = {CQ}. Так как в S не
встречается?ми одного функционального символа, имеем Я — HQ = = {<Ь
- ■ -ч- -. П2І4
124 Глава 2. ЛОГИКА ПРЕДИКАТОВ

Теоретически, для того, чтобы проверить предложение на выпол-


нимость, мы должны узнать, существует ли какая-нибудь интерпретация (в
бесконечном множестве возможных интерпретаций), в которой истинно
данное предложение. Задача решается намного проще, если мы
ограничимся рассмотрением универсальных предложений, т. е.
предложений, содержащих только кванторы всеобщности. В этом случае
достаточно работать только с небольшим классом интерпретаций,
называемых эрбрановскими интерпретациями.
Дадим формальное описание эрбрановской интерпретации.
Определение 2.7.5. Эрбрановская интерпретация.
Пусть S — множество дизъюнктов, и Н — эрбрановский универсум,
соответствующий S. Эрбрановская интерпретация Ан для S определяется
следующим образом.
1. Областью интерпретации является Н.
2. Интерпретация символа константы есть сама константа.
3. Интерпретация терма где f — функциональный
символ, есть терм /(tj',..і'), где t'{,..— интерпретации термов t,,..., tn
соответственно.
4. Интерпретация n-местного предикатного символа Р(іи ..tn) ЄСТЬ n-
местное отношение P(t{, . . t'n) на множестве Н, где t'i, ... ...,£' —
интерпретации термов і,,..tn соответственно.
□ 2.7.5
Пример 2.7.6. Для языка арифметики £ = {^, +, *, з, 0}, где з — функция
следования, имеем
• Яо = {О}.
Д={0,»(0)},
Яг = {0,»(0),.(.(0))}, і
4*? «•„». л-7-чТ)Г;'.J*,» пЧ ■* 3
. .и наконец, '“•'I
Я = {0,з(0),»(а(0)),ф(а(0))),...} І
Интерпретациями элементов языка £, отличных от 0, являются
соответствующие отношения на множестве Н. Например, для з и согласно
определению 2.5.2 мы имеем:
с(з): H^H = a^s(a)tH
є(^) С Я2: е(^) = {(0> s(0)), (s(0), s2(0)),..(sn(0), 5n + '(Ой,2.-7.]б
Далее мы сформулируем основную теорему об эрбрановских ин-
терпретациях.
Теорема 2.7.7. Пусть р — универсальное предложение, и S — его
множество дизъюнктов. Тогда выполнимо (в какой- либо интерпретации)
тогда и только тогда, когда оно выполнимо в эрбрановской
интерпретации.
Доказательство. (<=): Эрбрановская интерпретация является частным
случаем интерпретации (очевидный факт).
(=>): Мы хотим доказать, что если предложение 92 выполнимо в какой-
либо интерпретации А, то можно определить такие отношения на
§ 2.7. ЭРБРАНОВСКИЕ ИНТЕРПРЕТАЦИИ 125

эрбрановском универсуме, которые будут обращать дизъюнкты из


множества S в истину. Предположим, что 92 выполнимо в интерпретации
А, которая имеет область интерпретации А. Для обозначения интерпретаций
различных символов языка £, к которому принадлежит 92, мы используем:
є(с) = б'є А, где с — константа; є(/) = f: Ап ।—> А, где f — п- местный
функциональный символ;
tn)) = /(^,..., і^),где £„) —терм1);
e(R) = R С A , где R — n-местный предикатный символ.
n

Для каждого п-местного предикатного символа R мы определяем


отношение R„ на эрбрановском универсуме Н (определения 2.7.5, 2.5.2 ІІ),
2.5.5) следующим образом:

О (Л’ • • О € R bi? .
Таким образом, мы имеем эрбрановскую интерпретацию \н.
Положим A' ~{t 11 є Н}. Строим интерпретацию Д', беря в качестве
области интерпретации А', а в качестве интерпретаций функциональных и
предикатных символов — сужение на множестве А' соответствующих
интерпретаций из А. Из того, что А |= 92, и интерпретации всех термов,
встречающихся в 92, содержатся в Д', следует, что А' 92. Отсюда, по
определению Аи следует Аи [= 92.
Следовательно, предложение 92 действительно выполнимо в эр-
брановской интерпретации. □ 2.7.7
Согласно теореме 2.7.7, если предложение 92 не выполнимо в эр-
брано.вской интерпретации, то 9? не выполнимо, т. е. не существует
интерпретации, в которой -оно истинно.
Другими словами:
С помощью эрбрановских интерпретаций мы сводим проблему невы-
полнимости множества дизъюнктов к проблеме невыполнимости
множества основных примеров этих дизъюнктов на эрбрановском
универсуме. Так как в основные примеры дизъюнктов не входят
переменные, выполнимость может быть доказана с помощью методов
логики высказываний, таких как метод семантических таблиц и метод
резолюций.
Метод семантических таблиц Бета и метод резолюций являются
алгоритмическими доказательствами (в отличие от обычных методов
проверки выполнимости в PrL, пример 2.5.17). Этот результат в

*) Элемент множества А, являющийся интерпретацией терма t, обозначается t. —


Прим, перев. . . .'
я
126 классической и современной литературе
Глава 2. ЛОГИКА известен как теорема Эр-
ПРЕДИКАТОВ
брана, независимо от того, в какой формулировке он приводится. Он будет
анализироваться в следующем разделе при работе с выводами,
построенными с помощью семантических деревьев.

§ 2.8. Метод систематических таблиц .

В логике предикатов, как и в логике высказываний, мы можем


определить, является ли предложение или множество предложений
выполнимым. Методы, изученные нами ранее, можно применять и в
контексте PrL.
Начнем с семантических таблиц*) [Fitt69, Fitt90, Meta85, Smu!68]. Эти
таблицы используются для нахождения истинностного значения сложного
предложения языка PrL С.
Определение 2.8.1 (исчисление замкнутых систематических таблиц).
Предположим, мы имеем язык С и константы Сд,^,... этого языка собраны
в один бесконечный список (значение этого списка станет понятным в
построении 2.8.5).
Пусть а, er,, cr2 — предложения языка С. Перечень семантических
таблиц приведен на рис. 2.1. □ 2.8.1
Семантические таблицы для PrL получаются из соответствующих
таблиц для PL путем добавления правил для кванторов. С помощью
семантической таблицы
t(Vx)</?(x)

£у>(с)
для всех с

мы представляем факт «для истинности формулы (Vs)y?(x) необха димо,


чтобы у?(с) было истинным для всех констант С».
Соответственно, семантическая таблица д
£(Эж'

Up
ДЛЯ новой с
>h‘P<(J. . !■ м' д : IVIV 11.I'M’:О
:Л‘ ■ С л.<5 ■, І!'-. Г..«KjM'UMOTs ■

IV) В этом разделе метод семантических таблиц излагается для собстаеннелтг


подмножества PrL, не содержащего функциоиамимх ошаолов — так машваемюА
узкой логики предикатов. — Прим, перев. -•
§ 2.8. МЕТОД СИСТЕМАТИЧЕСКИХ ТАБЛИЦ 127

TAitsHv. !Я«: l.S ЩИР

, 4 . тЦ. ь :
■*> І ; t(г-
128 Глава 2. ЛОГИКА ПРЕДИКАТОВ

представляет факт «для истинности формулы (Зх)<р(х) необходимо, чтобы


существовала константа с, которая еще не появлялась в таблице, такая что
v?(c) принимает истинное значение».
Семантические таблицы для PrL называются замкнутыми систе-
матическими таблицами, коротко ЗСТ. Строение замкнутых си-
стематических таблиц для предложений PrL аналогично строению
соответствующих таблиц для PL. Сначала рассмотрим несколько
примеров.
Пример 2.8.2. Допустим, что нам нужно доказать общезначимость
формулы а: (Ух)<р(х) —* (Зх)<р(х), где <р — предложение PrL.
Начнем с таблицы, в корне которой находится fa. Ш

вершина 1
/((Vx)y?(x) -> (Эх)^(х))
вершина 2

вершина 3

из вершины 3 /у>(с) для всех с вершина 4

из вершины 2 t< для всех с вершина 5


противоречие p
между 4 и 5

В последней вершине семантической таблицы мы использовали ту же


самую константу с для того, чтобы получить противоречие. Так
разрешается делать, поскольку таблица для (Vx)y?(x) позволяет
использовать любую константу.
Неформально, приведенный выше вывод по Бету означает, что
предложение (Vx)y?(x) —>(Зх)</?(х) общезначимо, так как все попытки
опровергнуть его привели к противоречию. □ 2.8.2
Пример 2.8.3. ЗСТ для общезначимой формулы, фигурирующей в
теореме 2.3.6 имеет вид, изображенный на рис. 2.2. □ 2.8.3
§2.8. МЕТОД СИСТЕМАТИЧЕСКИХ ТАЛЛИН 129
и) г,к
/[(Vx)P(x) -+ Q(x)) -> ((Vx)P(x) -+ (Vx)Q(x))] t И ■ lifer. r/((Зх)ір(х) -> (Vx)^(x))

л>, 'Ц’< у
t(Vx)(P(x)-> Q(x)) L ^H<W; ." jf V-;

тЮіЧ?; , ftfxMx)
> ■* .HjUKftTi? r:-',q ox s

■¥

t(Vx)P(x) Me) для молей c


ІВДМ ЧвСН'ЗУ.
:ІІЦ
Me) для новей e
/(Vx)Q(x)

/Q(c)
®
для новой с
7U-, .■ Рис. 2.3
Семантическая таблица
P;
. Йе) для всех с
для i(Vx)9?(z) (или двойственная
/Ю?Д.ІЛК ?
таблица для /(Зж)</?(ж))
Г'Щ .ИЙТ^ ■ позволяет нам объявлять
•■офт^н’} *(^(с) формулу 9?(с) истинной
(соответственно ложной) для
~ Q( ))
> c •Щі
Г'
всех констант с. Семантическая
'4 / \ таблица для t(3x)<p(x) позволяет
нам объявлять ■' <£>(с)
•,» Т.ЬМЇ І \
истинной только для тех
/Р(с) tQ(c) жир чр
констант, которые еще • не
И Jv'rt.
встречались в систематической
•;пів пи шріт - таблице.
* 0 , ЭИ RS' 0
Следующий
ЙН -«■ пример демонстрирует, что могло бы произойти без
,’Г Рис. 2.2
этого ограничения.
Пример 2.8.4. Рассмотрим предложение (3x)</?(x)-♦ -♦(Vx)yj(s). Это
предложение не общезначимо, так как существование х, такого что
формула <р(х) истинна, не влечет истинность у>(л) для всех х (например,
из существования х такого, что х > 3 не следует, что х > 3 верно для всех х).
Однако, см. рис. 2.3.
В вершине 5 мы не имели права использовать ту же константу, что и в
предыдущей вершине 4. Поэтому нам удалось «доказать», что
предложение (Зх)ф(х) —> (Ул)</?(з;) общезначимо, тогда как это,
очевидно, неверно. □ 2.8.4
Из-за таблиц 11 и 14 (см. рис. 2.1) систематическая таблица может быть
бесконечной, если в одной из ее ветвей не удается по-

5 Г. Метакиденс. А. Нероуд
130 Глава 2. ЛОГИКА ПРЕДИКАТОВ

лучить противоречие (в примерах 2.8.2 и 2.8.3 нет необходимости


выписывать все константы таблиц 11 и 14). Этот факт станет понятнее из
последующего формального описания замкнутой систематической
таблицы предложения р.
Построение 2. 8. 5. Построение замкнутых систематических таблиц.
Построение начинается с того, что помеченная формула /<р или tip
помещается в корень таблицы. Далее выполняется индуктивная процедура.
Шаг п . Мы уже построили таблицу Тп.
Таблица Тп далее расширяется до новой таблицы Т п + 1, с использованием
некоторых вершин Тп.
Шаг п 4- 1 . Пусть X — неиспользованная неэлементарная вершина, самая
левая среди наиболее удаленных от корня вершин?) Если такой вершины
не существует, то систематическая таблица является замкнутой. Если такая
вершина есть, то мы строим таблицу Т„+1, продолжая каждую
непротиворечивую ветвь, проходящую через вершину X, присоединением
(в конец ветви) таблицы, соответствующей X. Рассмотрим новые случаи
для PrL:
Случай 1. X имеет вид t((Vx)p(x)).
Пусть сп — первая константа в списке всех констант языка, которая не
встречалась в вершинах вида tp(cn) ни в одной ветви, проходящей через X,
Тогда мы добавляем tp(cn) в конец каждой непротиворечивой ветви,
проходящей через X, в соответствии с рис. 2.42).

Случай 2: X имеет вид /((Уж)у?(х)).


i((Vz р(х)) /((V® у(ж))
Пусть ск — первая константа в
списке, которая не встречалась ни в
f< С
*) одной вершине каждой из ветвей,
P проходящей через X. Тогда мы
Рнс. 2.4 2.5
Рис
добавляем fp(ck) в конец каждой ветви,
проходящей через X,
в соответствии с рис. 2.5.
Случаи 3, 4: X имеет вид f((Bx)p(x)) и t ((Эх)р(х)) соответственно.

) Рассматриваемая здесь детерминированная стратегия построения замкнутых де-


ревьев неполна, поскольку для некоторых общезначимых формул она приводит к по-
строению бесконечных деревьев (см. теорему 2.10.2). В данном случае целесообразно
отказаться от однозначного выбора неиспользованной вершины иап+ 1-ом шаге и
полагать, что ее выбор производится недетерминированно. В этом случае мы получим
корректиую и полную, хотя и неоднозначную процедуру построения замкнутой
семантической таблицы. Одндко существуют полные корректные детерминированные
стратегии построения семантических таблиц, с которыми можно ознакомиться в
[К1ее52]. — Прим, перев.
2
) Вершина X остается неиспользованной. — Прим, перев. . -k^/5
§ 2.8. МЕТОД СИСТЕМАТИЧЕСКИХ ТАБЛИЦ 131

Эти случаи двойственны случаям I и 2.


Говоря неформально, в случаях 1 и 3 (двойственно 2 и 4) мы хотим
избавиться от повторений и объявляем у?(с) истинной каждый раз для
новой константы, выбирая ее из списка констант (что, вообще говоря,
может продолжаться бесконечно). □ 2.8.5
Определение 2.8.6. Замкнутая систематическая таблица, коротко ЗСТ,
есть объединение всех таблиц Тп из предыдущего построения, т. е.:
Т = U Тп □ 2.8.6
neN

ЗСТ может иметь бесконечное число вершин, тогда как семантические


таблицы для PL всегда конечны.
Определение 2.8.7. 1. ЗСТ называется противоречивой, если все ее ветви
противоречивы.
2. Предложение а выводимо по Бету (опровержимо по Бету), если
существует противоречивая ЗСТ с корнем fa (ta). Тот факт, что
предложение а выводимо по Бету обозначается а.
3. Предложение сг выводимо по Бету из множества предложений PrL S,
если существует противоречивая ЗСТ с корнем fa и следующей вершиной
tP, где Р представляет собой конъюнкцию предложений множества S. Этот
факт обозначается а. □ 2.8.7
Пример 2.8.8.
вершина 1 [(Vx)A(x,x)A(3v)(-'(A(y,j/)) VB(y,j/))] „.g ц
rv; 1 ■ !!<•> і »

вершина 2 і[(Уг)Л(г,а:)] .<. =.ч


і
■’"’Ф
вершина 3 HHHSI t[(3j/)(-M(j/,y) V В(у,у)\
1 •rMTOd
.■-її: m

ч і’?' ' '


вершина 4 tH^CojCo) V 4 -C .'jpM НОВОЙ Co і
В(со,со)]
t[B(co,Co)) 5
X'.'............ )
t[ г
г ?
/[Л( іСо)1
••• A Cl с)] из верш.2
1 '’ ' ( для всех с §

£ [Л(со, co)] 1
.н' 1 ■!
'дтс- ® . до i[A
(c
1>С1)]
й і• .
'-;»п ''в.-.:?•*> >1
к

В этом примере левая ветвь противоречива, тогда как правая ветвь


продолжается бесконечно. □ 2.8.8

5
»
132 Глава 2. ЛОГИКА ПРЕДИКАТОВ

Исчисление семантических деревьев очень похоже на исчисление Бета.


Мы рассмотрим неформальное описание задачи и метода ее решения. 1
Семантические деревья: неформальное описание

Пусть 95 — предложение и S — соответствующее множество


дизъюнктов. Если у? выполнимо, то оно истинно в некоторой эрбра-
новской интерпретации (теорема 2.7.7). Соответственно, все основные
примеры дизъюнктов из S истинны в этой интерпретации. Следовательно,
если предложение у? невыполнимо, любая попытка подтвердить все
основные примеры дизъюнктов из S с помощью означивания основных
атомов Л (ip tn), где термы i(, t2,..tn принадлежат эрбрановскому универсуму,
обречена на неудачу. Этот факт может быть обнаружен за конечное число
шагов путем построения конечного множества невыполнимых в
эрбрановской интерпретации основных примеров. По теореме 2.7.7 эти
основные примеры невыполнимы во всех интерпретациях.
Следовательно, вопрос состоит в том, как построить процедуру, которая,
имея на входе предложение у? и соответствующее множества дизъюнктов
S,
1) если <р невыполнимо, останавливается после конечного числа
шагов, выдавая конечное множество основных примеров;
2) если у? выполнимо, процедура в общем случае не дает никакого
ответа за конечный период времени, при этом она осуществляет построение
эрбрановской интерпретации, на которой истинно уз.
Другими словами, с помощью этой процедуры мы хотим получить
доказательство невыполнимости предложения или контрпример. При
построении такой процедуры используются семантические деревья
[ChLe/3, Dela87],
Определение 2.8.9. Деревом называется структура Т — — {X, г}, где X
есть множество вершин дерева Т и г есхъ бинарное отношение на
множестве X удовлетворяющее следующим условиям.
1. Если х, у є X и хгу, то х называется предшественником у, а у
называется последователем х.
2. Дерево Т содержит в точности одну вершину, не имеющую
предшественников. Эта вершина называется корнем дерева Т.
3. Каждая вершина дерева Т, отличная от корня, имеет в точности
одного предшественника.
Линия, соединяющая вершину с ее последователем, называется дугой.
Заключительной называется вершина, для которой не существует
последователей. Последовательность дуг, соединяющих за-


6
§ 2.8. МЕТОД СИСТЕМАТИЧЕСКИХ ТАБЛИЦ 133
ключительную вершину дерева Т с его корнем, называется ветвью дерева
Т. □ 2.8.9

кьшмде» A' «•. н^тмы e &-

.••'.ч;м^ • .•<« ■ 7*2 ' :-ч Тз

Пример 2.8.10. 1

. < VA’-*»З** ii.V . G г-? ^Vr


./Rb?- e{V ’/НШЇ.И SO; ’І ..»>■ , u »{»

-ЧЙ-НГЕН? Ml Z*\ Z*\ ''SIJ


Граф 7] является деревом. Обратите внимание на ветвление в нижней
части, которое напоминает листву дерева, перевернутого корнем вверх.
Граф Т2 не является деревом, он имеет два корня и, кроме того, вершину, у
которой есть две предшествующие вершины. Граф Т3 тоже не является
деревом, он содержит вершину, имеющую две предшествующие. □ 2.8.10
Замечание 2.8.11. Семантические таблицы для высказываний PL и
замкнутые систематические таблицы для предложений PrL являются
деревьями. л .............ч □ 2.8.11
Определение 2.8.12. (семантические деревья). Пусть S = {(?!,..., Сп} —
множество дизъюнктов, Рр ..РА — атомы, входящие в дизъюнкты
множества S, и {ди ..., ап,...} — эрбранов- ский универсум множества S.
Семантическим деревом для S называется дерево Т, удовлетворяющее
134 Глава 2. ЛОГИКА ПРЕДИКАТОВ

следующим условиям.
1. Корнем дерева Т является произвольная точка. Вершины, отличные
от корня представляют собой основные примеры атомов Рр...,Р л на
универсуме {д1;..., ап,..Каждая вершина имеет в точности две последующих
вершины, а именно Pf(a,i,. •а,*) и ~'РАаи, • • Ч aik)'
2. Каждая ветвь таблицы Т, содержащая в точности основные примеры
(дн,..., Дц),..., Рі{арї,..арк,} » .
представляет КОНЪЮНКЦИЮ .

7^(ап,..Дц) Л... Л Pif{ap[,..арк^). ■

3. Дизъюнкция всех конъюнкций ветвей дерева Т является об-


щезначимой формулой.
4. Если вершина дерева Т имеет вид Р(дп,..., д^.), то ни на какой ветви
дерева, проходящей через эту вершину, не может встречаться -^(д,!,..., д,*).
5. Если в процессе построения дерева Т мы получили вершину к,
которая вступает в противоречие с каким-либо основным примером одного
из дизъюнктов Сх,...,Сп множества S, тогда к считается заключительной
вершиной, и о соответствующей ветви говорят, что она противоречива.
□ 2.8.12
На практике, при построении семантического дерева множества S'мы
начинаем с ..., д1А):

Рі(дц, • • • > Діл) _,Рі(дц,---,Д1*)

Если один из дизъюнктов множества S содержит РДДц,..alt j, то правая


ветвь противоречива, -vP((aH,..aljfc) является заключительной вершиной, и
построение продолжается по левой ветви. Если один из дизъюнктов S
содержит “’РДДц, •.Д1Л), левая ветвь ветвь противоречива, ^(ДЦ, •.д1А^—
заключительная вершина, и построение продолжается по правой ветви.
Предположим, что a1Jk)— не заключительная вершина.
Тогда мы строим вершину • • ♦> °2»)- (Выбор атома для продолжения
построения произволен.)
Ветвь %] представляет конъюнкцию Р[(а1{,..а1к) Л ^2(021,... ..а^;). Ветвь
«2 представляет конъюнкцию ..., alt) А
А^Д^н • • •> °2i)- ™ проверяем, содержит ли какой-либо дизъюнкт
множества S один из атомов -ур^а^,..., а1к) или ->Д(а2[,..д^).
§ 2.8. МЕТОД СИСТЕМАТИЧЕСКИХ ТАБЛИЦ 135

Если содержит, %! — противоречивая ветвь, и мы далее рассматриваем


ветвь «2. Таким образом, мы продолжаем проверку и построение. Наша
цель — достичь заключительной вершины, исчерпав при этом все атомы из
S.
Определение 2.8.13, 1. Множество дизъюнктов S называется
опровергаемым семантическим деревом, если существует семантическое
дерево для S, ветви которого противоречивы.
2. Ветвь х семантического дерева множества дизъюнктов S называется
полной, если для всех основных примеров P(alt..ап) каждого атома Р в этой
ветви содержатся или Р(а{,..ап), или ->Р(а{,..ап). □ 2.8.13
Пример 2.8.14. Пусть дано (Vz)[P(z)A(-nP(;r)VQ(/(;z:)))A A->Q(/(x))].
Тогда
S ={{£(^}, {^P(x),Q(/(x»}, bW(x))}},
• I 2 З
и Н =эрбрановский универсум = {а, /(а), /(/(а)), /(/(/(а))),..
основные примеры = {Р(а), <2(а), Р(/(а)), Q(f (а))> • ■
Семантическое дерево TJ для 5 изображено на рис. 2.6
Посмотрим, почему ветвь %2 противоречива: %? представляет
конъюнкцию
-,<2(/(а)) A P(f(a)) A Q(a) А Р(а).
Второй дизъюнкт множества S имеет вид Q(/(x))}. По
этому, согласно S, мы требуем, чтобы формула
->P(x)V Q(f(x))
была истинной для каждого х. Однако, ъ? утверждает, что в эрбра- новском
универсуме существует значение переменной х равное а, для которого
выполняется
•.&.> -iQ(/(a))AP(/(a))AQ(a)AP(a).
136 Глава 2. ЛОГИКА ПРЕДИКАТОВ

»f ■4
S

ТИ
Н '■ЧГ.г * . Р(а) Р(а)

противор.
Q(a) 'Q(a) c 1 8
>
«7

W) •P(f№ " P(/W) I / \

Q(f(aY) Ш)) -<?(/(«»


IN I ЧС.О HiVH
«3 Л 1- «6 МЭЙ
і
®3
IdMCTS ■Я МІ-.'ЇІ
«2 «4 «5
Z
’ H H ■:> ",') t.
2.6 KB АЦ»^.ътс'чт'*Ц>кг-4:? ^|
т
■-ЮЦЗ’О JAiJaipHC. ■
T-MU\ НМ'Щ S3h^"KT/U V9j

j Отсюда мы имеем также цтг>


г
-’Q(/(a)) А Р(а) (по формуле А А В и по правилу »т«
де Моргана иі
-n(Q(/(a))V-P(a)).
Итак, ветвь *2 дает противоречие со вторым дизъюнктом множества S.
Как было отмечено ранее, мы сами выбираем порядок выбора оче-
редного элемента из Н для подстановки в атомы из множества S. Например,
если мы выберем Q(/(a)) сразу вслед за Р(а), мы получим очень простое
семантическое дерево Т2 для множества S, в котором все ветви
противоречивы.
>-ч ' л■ □ 2-8.1

«'ИИЛІИНТН
О;
'.Az P(a)
-оП Л1
^°> V .
Л ОА: Н ’■ Q(/(a)) Л. -<?(/(«))
[ ,:л ;л iirtz- КЄ’; ■

.11
., ® 3 , , ZNltOFi ® 2 <v.K •< ЬОіШНТЗН Kita
1
F
ЧГ ■* ' I м ( I I’fpl
§ 2.8. МЕТОД СИСТЕМАТИЧЕСКИХ ТАБЛИЦ 137

Пример 2.8.15.

V- (V») (Vz)[(-P(x) V X)) л Р(9(Ь)) л Z)].

S »{{ЧР(ж), Q(f(x), ж)}, {P(g(b))}, {^Q(x,z)}},

г
> H = {k/(O.9(6)./(/(6))....}, ...

•„f- Г ‘7 ’ ,
а основные пртмеры образуют множество ;............

{Р(&), Q(f(b), b), Р(д(Ь)),...}.

_ 'ПЭН ноджкя,
Семантическое-дерево ДЛЯ

4Ч Р(5(Ь))
ЮТ отв .инжО”';
ЙММ‘ ffs-
іГ
®2
jfife >1<J-SQ.
®3 ® 1 ПУХ ЛІОН !•>$(
,боД . и
і иятза ЙОЯМЕ-
□ 2.8.15
Как говорилось ранее, число шагов, необходимых для достижения
заключительной вершины противоречивой ветви, существенно зависит от
порядка использования атомов при построении дерева.
В замечании 2.8.11 мы упоминали о том, что семантические таблицы и
замкнутые систематические таблицы являются деревьями. По лемме
Кёнига (лемма 1.11.9) каждое конечно ветвящееся дерево с бесконечным
числом вершин имеет по крайней мере одну бесконечную ветвь.
Следовательно, если S невыполнимо, то построение его семантического
дерева приведет через конечное число шагов к обнаружению эрбрановской
интерпретации Ан такой, что S. Если S выполнимо, то результатом
соответствующего построения будет бесконечное дерево, V) каждая ветвь
которого будет определять эрбрановскую интерпретацию, на которой
выполняется S. Это заключение составляет содержание теоремы Эрбрана,

V) Если бесконечен эрбрановский универсум Rt*~ Прим, перее.


138 Глава 2. ЛОГИКА ПРЕДИКАТОВ

которую мы докажем с помощью метода построения семантического


дерева для данного множества дизъюнктов S.
Теорема 2.8.16 (теорема Эрбрана). Если множество дизъюнктов S
невыполнимо, то S опровергается семантическим деревом.
Доказательство. Опишем алгоритм построения семантического дерева
для S. Мы формируем эрбрановский универсум для S, а также множество
г; ,
ь,............................................г '
основных примеров атомов из множества S. .
Шаг 0: Строим дерево: а

/\ .. эння.*' ;
ао ~ оо
,

Шаг п . Добавляем к заключительной вершине каждой непротиворечивой


ветви % фрагмент е

Оп ~^ап
Теперь предположим, что S не опровергается семантическим деревом.
Тогда построение, описанное в нашем алгоритме никогда не закончится.
Однако, в этом случае по лемме Кёнига дерево содержит бесконечную
ветвь ж. Для каждого основного примера ап ветвь ж в качестве некоторой
своей вершины содержит либо ап, либо его отрицание -,ап.
Определяем эрбрановскую интерпретацию следующим образом.
Для каждого п-местного предикатного символа Р и термов ip • • м tn,
интерпретации которых принадлежат эрбрановскому универсуму для S,
интерпретация Р есть отношение

Ф»))>
где P(tj, ..tn) является какой-либо вершиной бесконечной ветви. Очевидно,
что на этой интерпретации выполнимы все дизъюнкты множества S.
Следовательно, множество S выполнимо. □ 2.8.16
Фактически, теорема Эрбрана предоставляет возможность при проверке
выполнимости предложения или множества дизъюнктов S использовать
методы логики высказываний, например, метод семантических таблиц или
метод резолюций. Если S невыполнимо, то существует множество
основных примеров дизъюнктов множества S, которое также будет
невыполнимым. Это конечное множество состоит из высказываний PL, и
его невыполнимость может быть обнаружена известными нам методами.
Таким образом, для каждого, множества дизъюнктов 'S мы начинаем
перечислять все основные» примеры дизъюнктов из S. Во время
выполнения этой процеду-J ры мы систематически проверяем
выполнимость каждого конечного^
§ 2.8. МЕТОД СИСТЕМАТИЧЕСКИХ ТАБЛИЦ 139

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


методами логики высказываний. Если S
невыполнимо, тогда такая проверка покажет,
что одно из конечных подмножеств невыполнимо.
Если S выполнимо, то эта процедура будет
продолжаться бесконечно.
Пример 2.8.17. Пусть дано предложение из примера 2.8.15.
р: (Vi) (Vz)[(-P(x) V Q(/(x), х)) Л Р(д(Ъ)) Л ^Q(x, z)].
Нужно определить, выполнимо или нет. Соответствующее множество
дизъюнктов имеет вид:
S= Q(f(x), х)}, {Р(9(6))}, Ь<?(А z)}}.

Эрбрановский универсум для S есть множество:


H = {M(b),/(b),/(s(b)), g(/(b)),...}.
Множество основных примеров атомов из S:
{Р(Ь), 6), P(g(6)), <Э(/(9(6)), 9(b)), PUW), ■ ■ •}•
Строим семантическое дерево для S в соответствии с методом из теоремы
2.8.16.

Р(Ь)

®3 - Р(5(Ь)) РЩ)

|Nt.
Q(/(p(b)), 5(b)) ';^Q(/(S(i>)b(b)) ® 2
I •' Я I

Это семантическое дерево служит доказательством того факта, что


множество S невыполнимо, и предъявляет некоторое невыполнимое
подмножество основных примеров дизъюнктов из S. Это подмножество тех
и только тех основных примеров, которые были использованы для
объявления некоторой ветви противоречивой. А именно:
{{-Q(ЛЬ), b), {-.Q(/(9(b)), 9(6))}, {P(g(b))
{-P(b), Q(/(6), b)}, {-P(9(6)), 0(/(9(b)), 9(6))}}
140 Глава 2. ЛОГИКА ПРЕДИКАТОВ

Первые два основных примера получены из дизъюнкта 3 множества S,


третий — из дизъюнкта 2, и два последних — из дизъюнкта 1.
Невыполнимость этого конечного множества действительно можно
доказать методом резолюций в рамках логики высказываний. Вве-^ дем
обозначения:
A.Q(f(b),b) " ’Я' м
\ yjl.. <.А vij J Х. р/О В: Q(f(g(b)),g(b) •
С:Р(д(Ь)) '■

Теперь мы можем переписать наше конечное подмножество основі ных


примеров дизъюнктов множества S следующим образом:
§ 2.8. МЕТОД СИСТЕМАТИЧЕСКИХ ТАБЛИЦ 141

s’ = {WJ, ьв}, {с}, {-.д л), {-.q в}} ІГ'ОЧЖРЧЛ

( 12 3

{фододьзуя метод резолюций, получаем Щ -.ЭО>1ЭЪ ЧЩі:

;(1)
(2) -В
(3) С
(4) -ДА ‘ <• ’’ ’’ '^5
■. (5) -ДВ . ,■
Л
- (6) В
(7) □ резолюция (3) и (5)
резолюция (2) и (6) ’
В этом месте мы должны отметить, что невыполнимое множество
основных примеров, определяемое нашим алгоритмом построения
семантических таблиц, не всегда минимально.
Так в предыдущем примере подмножество J
^Ьвщс'М-.с.в}} >!
<
'—v—/ \„---------------/ ... . , ,0,?. .
12 3

уже является невыполнимым:

(О -в
4ГЦ (2) С

■ ч’- г (4) В .резолюция (2) и (3)


(5) □ '• •' резолюция (1) и (4)
- Л! f(Г "-
1
142 Глава 2. ЛОГИКА ПРЕДИКАТОВ

Пример 2.8.18. Приведем пример выполнимого множества дизъюнктов.


Пусть дано предложение
р: (Vz)[(3y)P(z, у) (Зу)Р(а, у)] < .
СНФ предложения имеет вид
(Vz) (Vy)[->P(z, у) V Р(а, f(x, у))].
(Почему?) Соответствующее предложению у? множество ДИЗЪЮНКТОВ
имеет вид

5 = {{iP(z, у), Р[а, /(х, у)]}},

и соответствующий эрбрановский универсум — до

Н = {a, f(a, а), f(a, f(a, а)), а), а), /(/(а, а)Г/<а, а)),..

Основными примерами атомов из S являются 11

{Р(а, а), Р(а, /(а, а)), Р(/(а, а), а), Р(/(а, а), а)),..

Семантическое дерево для множества S имеет вид: .. ,j

• й_. з

". ил'ч.1''.? Р(а,а) : • л.>. • . ->Р(а,а)


• -'v :/ \ ь
,,.s. Р(а,/(а,а)) Р(Й/(а,«))
■..с..; . I \ ! эи \ in і
Р(/(а,а),а) -,Р(/(а,а),а)

Это бесконечное семантическое дерево содержит ветви, которые по


своей конструкции не являются противоречивыми, так как конъюнкция их
атомов не противоречит ни одному дизъюнкту множества S. Например,
ветвь которая не содержит отрицаний Р, непротиворечива. Ветвь
Х[ определяет эрбрановскую интерпретацию, в которой выполняется S.
□ 2.8.18

ей

.в?; ’’чіст
§ 2.8. МЕТОД СИСТЕМАТИЧЕСКИХ ТАБЛИЦ 143

§ 2.9. Унификация и резолюция в логике предикатов


Мы уже упоминали о предваренной и сколемовской нормальной форме
предложения. Пусть <р — некоторое предложение языка PrL. Тогда
последовательностью преобразований:
A: предваренная форма;
B: КНФ подформул, не содержащих кванторов;
С; сколемовская нормальная форма;
D: множество дизъюнктов;
мы можем привести к множеству дизъюнктов и определить его
истинностное значение с помощью обычных методов PrL.
Пример 2.9.1. Пусть предложение уже находится в предваренной форме
(А). ..

9?: (Vrr) (Зу) (3z) у) A Q(x, z)) V R(x, у, z)) І5-


«-♦(Vx) (Зу) (3z) ((~іР(х, у) V R(x, у, z)) A (Q(x, z) V R(x, y, z))).

Теперь вводим сколемовские функциональные символы /, д и обозначаем у


= f(x), z = g(x). Получаем

Ч> (Чх)[(-1Р(х, f(x)) V R(x, f(x), д(х))) ' •’ t i,:


л (<?(*> R(x,f(x), g(x)))].

И наконец, определяем множество дизъюнктов (D):


л- S={{^P{xJ(x)),R(xJ(x\g(x))},
■ Й) !. '■ {Q& 5(*)), R{x> /(*). $(*))}}• яУ*. п 2 9л
Когда предложение <р представлено в виде множества дизъюнктов, нам
приходится работать с переменными и сколемовскими функциями.
Справиться с этой проблемой можно с помощью семантических деревьев,
определенных в предыдущем разделе. Используя семантические деревья,
мы можем выбрать термы для подстановки вместо переменных из
соответствующего эрбрановского универсума и применить метод
резолюции для того, чтобы найти противоречие между основными
примерами дизъюнктов. Такая процедура, однако, требует больших затрат
времени. Более того, ее нельзя представить в виде хорошо
структурированного алгоритма, который можно было бы реализовать на
компьютере. Таким образом, нам нужен более четкий с алгоритмической
точки зрения метод, который можно использовать для компьютерного
программирования. Процедура унификации, к изучению' которой мы
переходим [ChLe73, Dela87, Fitt9O, Lloy87, Thay88], как раз и предлагает
необходимый метод для определения противоречивости множества
дизъюнктов.
144 Глава 2. ЛОГИКА ПРЕДИКАТОВ

Унификация: неформальное описание

В определении 2.2.19 мы ввели понятие подстановки. Пусть нам даны


следующие дизъюнкты:
С,: {P(f(x),y),Q(a,b,x)} и С2: {P(f(g(c)), g(d))}.
Мы хотим применить резолюцию к Сх и С2, подставив вместо х терм g(c) и
вместо у — терм g(d). Для этого нам необходимо
1) проверить, МОЖНО ЛИ применить резолюцию кС, и С2, и
2) найти подходящую подстановку, допускающую резолюцию.
Такую проверку и вычисление подстановки осуществляет алгоритм
унификации. Посмотрим, как этот алгоритм унифицирует С} и С2.
Шаг 1. Мы начинаем сравнивать соответствующие термы дизъюнктов
слева направо, пока не встретим первые термы с одинаковыми
функциональными символами, которые различаются переменными или
константами. Мы создаем множество, состоящее из этих термов,
называемое множеством рассогласования. Для Сх и С2 первым
множеством рассогласования будет {х, #(с)}.
Шаг 2. Для каждой переменной множества рассогласования мы проверяем,
встречается ли она в каком-нибудь другом терме этого же множества.
Шаг 3. Если на предыдущем шаге получен положительный ответ, то
дизъюнкты не унифицируемы, и применение алгоритма оканчивается
неудачей. Если ответ отрицательный, мы осуществляем подстановку
вместо переменной из множества рассогласования терма из этого же
множества. Для Сх и С2 мы применяем подстановку = {х/д(с)}. В результате
С} и С2 принимают вид
■С,1 = {Р(/(9(е)),У),<2(а,6,х)}

Ш а г 4: Мы продолжаем двигаться направо, снова выполняя пункты 1-3.


Новым множеством рассогласования будет {у, g(d)}. Применяем
подстановку {y/g(d)j и получаем

. C^ = {P(f(g(c)),g(d)),Q(a,b,x)} С* = С2.

Очевидно, МЫ можем применить резолюцию К дизъюнктам Cl и С2.


В конце концов, алгоритм заканчивает свою работу, выдавая в качестве
ответа множество подстановок, позволяющих унифицировать Сх и С2 и
затем применить к ним правило резолюции для
PL. Это множество подстановок называется общим унификатором (ОУ)
дизъюнктов. Для С} и С, общим унификатором является множество 6 =
{х/д(с), y/g(d)}. Если дизъюнкты не могут быть унифицируемы, алгоритм
останавливается на шаге 2. .,
§ 2.8. МЕТОД СИСТЕМАТИЧЕСКИХ ТАБЛИЦ 145

Унификация: формальное описание Л


Далее мы представим формальное описание алгоритма унификации и
необходимые для этого определения.
Определение 2.9.2 (множество рассогласования). Пусть S = {C\, С2,...,
Сп} — множество дизъюнктов. Множество DS(S)~ = {tj, 4, • • ч tn I t15..., —
первые слева термы, стоящие на соответствующих местах в дизъюнктах
Сп..., Сп, среди которых есть по крайней мере два различных } называется
множеством рассогласования S. □ 2.9.2
Множество рассогласования не определяется однозначно, оно зависит от
порядка следования атомов в дизъюнктах.
В примере 2.9.1 мы имеем
S = {С„ CJ = {{Р(/(х), »), Q(a, Ь, X)}, bP(f(g(e)), s(d))}F‘i? Первыми слева
различными термами в атомах P(f(x), у) и P(f(g(c)), g(d)) являются х и д(с),
таким образом, первым множеством рассогласования будет DSl = {х, д(с)}.
После применения подстановки ={х/р(с)} возникает несоответствие между
термами у и g(d), и следующее множество рассогласования, определяемое
рассматриваемым алгоритмом будет иметь вид DS2 = {у, g(d)}.
Определение 2.9.3. Пусть X = {о^, а2,..., ап} — множество атомов или
термов. Подстановка 0 называется унификатором для X, если — а20 = ... =
оп0. □ 2.9.3
Определение 2.9.4. Унификатор 0 называется наиболее общим
унификатором (коротко НОУ), если для любого другого унификатора ф
существует подстановка 7 такая, что ф — fhf. □ 2.9.4
Для множества термов или атомов S наиболее общий унификатор
определяется единственным образом [Ыоув?] 1).
Пр и м е р 2.9.5. Рассмотрим множество атомов S = — {ч(д(х)> w)> Q(U
b)}> гДе & — константа. Унификатором для S является подстановка
VVI = {у/д(Ь), х/b, w/b}
Если подстановку ф применить к множеству S, получатся следующие
основные примеры:
Q(g(x), ™)Ф = Q(g(b), b) Q(y, Ь)ф = Q(g(b), b).
Если мы теперь положим 7 = {х/Ь} и 0 = {у/д(х), w/b}, мы можем легко
показать, что t/j =
Кроме того, подстановка 0 унифицирует рассматриваемые атомы. Таким
образом, в является наиболее общим унификатором. □ 2.9.5
Пример 2.9.6. Рассмотрим множество термов
C = {f(x,g(x)),f(h(y), g(h(y)))}.
Подстановка = {x/h(g(c)), у/д(с)} является унификатором С. Подстановка 0
= {xlh(y)} также является унификатором С. Если мы положим 7 = {у/с},
VI Это утверждение вообще говоря неверно. Например, атомы Р(х) и Р(у) имеют^ по
крайней мере, два различных НОУ = {х/у} и 6^ = {у/х}. — Прим, перев.
146 Глава 2. ЛОГИКА ПРЕДИКАТОВ

легко доказать, что $ — а также что 0 — наиболее общий унификатор.


□ 2.9.6
Теперь мы можем перейти к формальному описанию алгоритма
унификации.
Алгоритм 2.9.7 (алгоритм унификации).
Пусть Т = {Ру, Р2,..Рп} — множество атомарных формул. х Шаг 0. 0о — Е
(тождественная подстановка)
Шаг к . Мы уже построили подстановки 0о, Оу,..., 0к.
Ш а г к + 1 (рекурсия).
1) Если Ру0.02... 0к = Р20}02... 0к =... = Рп0у02... 0к, алгоритм за*'
канчивает работу, выдавая в = Оу 02.. .0к в качестве наиболее общего-
унификатора.
2) Если Ру Оу 02... 0к ± Р}. 0] 02... 0к для некоторых г, j, тогда
а) строим множество рассогласования
DS(PyOy ... 0к,..., Рпву ... 0k) = DSm ... 0к) = DSk,
б) осуществляем проверку вхождений переменных, т. е. проверя*’ ем
для каждой переменной v Є DSk, содержится ли она в каком-либо1 другом
элементе DSk.
Если ПВ дает положительный ответ, мы останавливаемся и дела-* ем
заключение, что множество Т не унифицируемо. Если множе** ство DSk
вообще не содержит переменных, ПВ также дает положительный ответ.
Если DSk содержит переменную v и терм t, и ПВ дает отрицательный ответ,
мы полагаем 0k + l = {v/t}, избавляясь таким образом от несоответствия
между Ру,..., Рп в термах v, t. Шаг к + 2 . Мы повторяем шаги к + 1, к + 2
для к = к + 1.
Теорема 2.9.8 показывает, что если Т унифицируемо, то алгоритм
останавливается, выдавая в качестве ответа наиболее общий унификатор:
НОУ= 0 = 0у02... 0т □ 2.9.7
Доказательство указанной теоремы не рассматривается в этой книге, но
его можно найти в [Robi65, ChLe73].
Теорема 2.9.8 (Дж. А. Робинсон). Применение алгоритма унификации к
множеству атомов Т — {Р}, Р2,..Рп} дает следующий результат:
если Т унифицируемо, то алгоритм останавливается, выдавая в
качестве ответа НОУ множества Т;
если Т не унифицируемо, то алгоритм останавливается, объявляя, что
унификатора не существует. □ 2.9.8
Теорема утверждает, что если Т унифицируемо, алгоритм унификации
останавливается, определяя именно НОУ (а не произвольный унификатор)
множества Т.
Пример 2.9.9. Дано множество формул:
S = {Q(a,x, f(g(z))), Q(z, f(y), rVq-.ц
§ 2.8. МЕТОД СИСТЕМАТИЧЕСКИХ ТАБЛИЦ 147

Определить, унифицируемо ли S. Если да, найти НОУ.


Шаг 0: Полагаем 0о~Е ■

Шаг 1: se0 = s /. ■ "...................................;


DS(S^) = DS, = {a, z] • •:' ■ •' ■
ПВ негативна :і ьч ;.ц < ї ’ - , .s-i
Полагаем = {z/а} 'і.«:<Ч'• :‘Х<
ЗЄ0«, = {Q(a, x,/(g(a))), Q(a, ,W):j
да(зад) = DS, = {x, f(y)}
ПВ негативна
Полагаем 62 = {x/f(y)} /'■' ||
'(
■ТВГЇт-З: 4<
ООСЛ-
МСіЗМ* 80Л 02 = {Q(a. fM, Mam,
DS^SOQO^ 02) ~ — {p(a)i J/} :'■/
•BlV.iJf ’.*<
1
ПВ негативна
4:
4 ' Л'4 Н' *£,і 1
/(5(а)))} 1
■. і ■ .

j *
DS(S0MO3) = <Z) ||
! 4-
ітельно, S унифицируемо и его НОУ имеет вид"
НОУ = 0О0,0203 = {z/a, x/f(g(a)), y/g(a)} □ 2.9.9
.- sI
Пример 2.9.10. Дано множество формул:
s = {Q(y, у), Q(z, f(z))}. <
Определить, унифицируемо ли S. Если да, найти НОУ. Uh* ux WM
Шаг 0: Ь 0О — Е Г << ' Г! 'г : - і•U
' Шаг 1: S60 = S ’ъчд.... • у^іг.ох^иг‘ТЭЙТ-.ЮЭ
, ,..DS(S0O)=O5,={!,,Z}
.‘ 7 І * ПВ негативна *' > !■■/'/<
' Полагаем = {y/z}
Шаг S^,={Q(z,z),Q(z,f(z))}
DS(SW = DS2 = {z,f(zn ■* । «О’
' ет ‘ ПВ позитивна, z встречается в f(z). W
Следовательно, S не унифицируемо. □ 2.9.10
148 Глава 2. ЛОГИКА ПРЕДИКАТОВ

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


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

Метод резолюций для PrL ■ 'ч'».* Д *.

Метод резолюций для PrL фактически представляет собой комбинацию


алгоритма унификации для PrL и метода резолюций для PL. Точно так же,
как в PL (определение 1.9.17), для множества дизъюнктов PrL S
резолютивный вывод из S есть конечная последовательность дизъюнктов
С],..., Сп такая, что для каждого С. (1 і п) либо С, € S, либо С, Є Я({Су, Cfc})
(1 < j, к і), где R({Cjt Cfc}) — множество резольвент Cj и Ск.
Отметим здесь, что поскольку переменные во всех дизъюнктах
считаются связанными кванторами всеобщности, мы можем переименовать
эти переменные, чтобы избежать конфликтов во время процедуры
унификации. Такое переименование называется нормализацией
переменных.
Рассмотрим пример.
Пример 2.9.11. Пусть даны следующие дизъюнкты:

1
)> < ,ч * •. »• С2 = {->Р(и, v), Р(у, и)}. •; •; 3.. А,У- і I
Мы хотим сделать заключение '
C3 = {~'P(x,y),^P(z,y),P(x,z)}.


Соответствующее обозначение для С\, С2 и С3 в контексте PrL им< ет вид
(Vx)(Vy)(Vz)[P(x,y)AP(y,z)-*P(x,z)] для С]
.. (Vu)(Vv)[P(u, v)-*P(v, и)] для С2 ■. ' jj
■ r.,:^ (Vs)(Vy)(Vz)[P(s, y)AP(z, у)^Р(х, z)] для С3
Метод I. Мы работаем непосредственно в контексте PrL. і Дизъюнкты С,,
С2 и С3 эквивалентны предложениям
(Vs) (VT/) (Vz)[-P(s, у) V ^Р(у, z) V Р(х, z)J (1) •J.. л
' (Vu) (Vv)[~iP(u, v) V P(v, u)] 4 «гзэд (2)
-оно.. Olv (Vx) (Vz)f-1p(s, у) V ->P(z, у) V P(s, z)] «9UW (3)
' 1 r-r /AC RSH
( Проводим переименование переменных предложения (2J>
§ 2.8. МЕТОД СИСТЕМАТИЧЕСКИХ ТАБЛИЦ 149

(Vx)(Vz)|^P(x,z)VP(x,x)J “ЛЛі'^таИ4) K TH! 0X1


По теореме 2.3.6 из (4) получаем '■ • <' ^ '
4
(Vs) (Vy) (Vz)[^P(s, z) V P(z, x)]*’ Ф*(5)
Конъюнкция (1) и (5) по теореме 2.3.6 дает
(Vs) (Vt/) (Vz)(bP(s, z) V P(z, s)) A
A (-P(s, у) V -nP(y, z) V P(s, z)J^f! )«6))
и ПО формуле ;рС.Т
ед VP) A (A VC) ~^{B VC) :^ад‘(*) выводимой в PrL
(почему?), мы преобразуем (6) к виду
(Vx) (Vy) (Vx)[(P(z, х) V -Р(х, у) V -Р(у, х)|, 'p i (7)
Проводим переименование переменные предложения (2^|gpjpHM
способом: v ч-гкпонч
(Vx) (Vx)l^P(x, х) V Р(х, х)|, ^“’(8)
и по теореме 2.3.6 из (8) получаем ./• ‘ йшусн»:
(Vs) (Vz/) (Vz)hP(z, s) V P(x, z)]t о ({м (. р](ф
КовыЙикция (9) и (7) согласно (*) дает r > j
(Vs) (Vy) (Vz)hP(s, у) \f ^P(y, 4 V P(x, s>J, (id
150 Глава 2. ЛОГИКА ПРЕДИКАТОВ

Проводим переименование переменных в


предложении (2):
(V2/)(V2;)hP(z,!/)VP(y,z)] (Н)
По теореме 2.3.6 из (И) получаем
(Vr) (Vy) (Vz)hP(z, у) \/ Р(у, z)} (12)
Конъюнкция (10) и (12) согласно (*) дает
(Vx) (V?/) (Vz)[-nP(x, у) V -iP(z, у) V Р(х, z)J,
что и является искомой формулой.
Метод II. Построим вывод дизъюнкта С3 методом резолюций:

(3) {-.P(x,z),P[z,x)} из (2). подстановка {u/x, v/z] из (1)


(4) {-.P(x,y)^P(y,z),P(z,x)} и (3), резолюция
(5) {-./’(Z. х), Р(х, Z)} из (2), подстановка {u/z, v/x}
(6) {-J>(x, у), -^Р(у, z), Р(х, z)}
из (4) и (5), резолюция
(7) ЬР(г,У), P(»Z)} из (2), подстановка {u/z, v/y}
(8) С3 из (6) и (7), резолюция
Метод II представляет собой более механистическую процедуру, которая,
несомненно, быстрее и эффективнее, чем метод I.
Метод III. Вывод также может быть представлен в виде пе- ревернутого
дерева, корнем которого является С3. Дизъюнкты, выбранные для
резолюции, расположены в одном ряду, их переменные; нормализованы.
Применяемая унификация обозначена около ветви дерева, и атомы, к
которым применяется резолюция, подчеркнуты.

С1 - {~^Р{х, у), -‘Pty, z), P(x,z)} {^Р(Ц,У), P(v, u)} = Ci


£
\ / ^x,v^
{-.P(x, y), -,P(y, z), P(z,x)} (-P(M), P(v, u)} = C,
У {«/*.«/*}
Оз = {-'Pfu, v), Pfo,«)} {-'P(®, y), ~‘P(v,z), P(x, z)}
{u/z,v/y}\^ !
{^P{x,y)^P{z,y},P{x,z}}^C z

Эта процедура, представленная деревом и также


.x- «ams# u позволяющая вывести ДИЗЪЮНКТ C3, используется В
языке ПРОЛОГ. ИКНИ 1 □ 2.9.11
Динамизм ПРОЛОГа и эффективность логического программирования в
целом в области символических вычислений, не вызывает сомнений. В
§ 2.9. УНИФИКАЦИЯ И РЕЗОЛЮЦИЯ В ЛОГИКЕ ПРЕДИКАТОВ 151

третьей главе дается более подробное изложение основ ПРОЛОГа.


Замечание 2.9.12. Метод резолюций фактически является развитием и
упрощением соответствующих методов работы с логикой предикатов.
Следовательно, если предложение ст логики PrL выводимо методом
резолюций из множества S предложений PrL (сокращенно S ст), то ст
выводима из S по определению 2.3.8. Формально:
S' hR ст => S Р ст.
Обратное, однако, также выполняется для любого множества дизъюнктов S:
S\-a^ShRa . □ 2.9.12
Теперь обратимся к результатам о корректности и полноте рас-
смотренных ранее методов. , ■ <.
L
чц&и -П’ § 2.10. Корректность и полнота .
исчислений логики предикатов п,—t /
Мы приведем здесь результаты, касающиеся полноты и корректности
систем вывода для PrL так, как мы это делали для PL. Доказательства этих
фактов очень похожи на соответствующие доказательства для PL, их можно
найти в [ChLe73, Meta85, Smul68].
Корректность и полнота метода семантических таблиц
Запись ст будет означать, что предложение ст выводима по Бету, а запись
[= ст — то, что предложение ст общезначимо. Сформулируем
вспомогательную лемму, а также теоремы корректности и полноты
исчисления Бета.
Лемма 2.10.1. Пусть R —п-местный предикатный символ языка £, и а —
предложение £. Предположим, что существует непротиворечивая ветвь х
в систематической таблице с корнем ‘фа. Построим интерпретацию А
следующим образом. В качестве области интерпретации возьмем
произвольное множество {аи щ,...} = А, элементы которого находятся во
взаимнооднозначном соответствии с символами констант языка С. Ин-
терпретация каждой константы с, есть элемент о, — e(ct ).
Определяем отношение є(Я) с Ап:
е(Л)(ст-, а^,..., а- ) tH(ci, с^,.с{ ) —вершина ветви х.
Тогда
а) если fa является вершиной ветви х, то предложение а ложно в
интерпретации А;
152 Глава 2. ЛОГИКА ПРЕДИКАТОВ

б) если to является вершиной ветви ж, то предложение а истинно в


интерпретации А. □ 2.10.1
Теорема 2.10.2 (полнота исчисления Бета). Если предложение а является
следствием множества предложений S, то оно выводимо по Бету из S'VII):
□ 2.10.2
Следствие 2.10.3. оно Если предложение а общезначимо, то
выводимо по Бету:
□ 2.10.3
Определение 2.10.4. Интерпретация А языка £ согласуется с ветвью ж
семантической таблицы, если
VII) Данная программа верно определяет трехместиое отношение пересечения пары
множеств, представленных списками, при том условии, что порядок расположения
общих элементов в третьем списке (переменная Z) совпадает с порядком их распо-
ложения в списке, задающем первое множество (переменная Т). — Прим, перев..'л — .
(Х/жоаЛопп) Такие средства языка называются метасредствами. — Прим, перев. » л)
Точнее, ~Q. — Прим, перев.) При условии,что поиск подтверждения для Q с
использованием всех возможных откатов завершится неудачей за конечное(!) число
шагов. — Прим, перев.) Следует также иметь в виду, что все элементы множества
считаются попарно различными, в то время как списки могут содержать любое
количество одинаковых элементов. Поэтому корректнее было бы сопоставлять списки не
с множествами, а с мультимножествами. — Прим, перев.*) При помощи одной и той же
подстановки, общей для всех пар соответствующих элементов этих списков. — Прим,
перев.) На самом деле ПРОЛОГ сначала обратится к факту /♦ I ♦/, еще раз получит тот же
самый ответ X =джон, и лишь затем сработает отсечение, препятствуя повторному
обращению к дизъюнкту / » / * /. — Прим., перев.) И здесь также имеется в ваду, что эти
пары термов отождествимы одновременно при помощи одной и той же подстановки. —■
Прим, перев.') Имеется в ваду отождествимы одновременно при помощи одной и той же
подстановки. — Прим, перед.) Это правило унификации — так называемая унификация
без проверки вхождения — в общем случае некорректно и применяется исключительно в
целях повышения эффективности выполнения пролог-программ. Для того, чтобы
переменная А и сложный терм В были унифицируемы необходимо также потребовать,
чтобы А не имела вхождений в В. — Прим, перев.) А также некоторый другой
спнмк.**/1рим. Лв&Л , ’.ГйО(йЛ .І
*■) Или пустым СПИСКОМ. М»Ярим, перев*) В числе которых могут быть и ertrtttMf.—
ПрйН. мрй " ! с) Не умаляя корректности и общности, мы позволили себе добавить к
этому списку и буквы русского алфавита — Прим, перев. Это не совсем верно, поскольку
языки функционального программирования (ЛИСП, ХОУП, МИРАНДА и др.) также
имеют декларативную семантику. В отличие от пролога, декларативная семантика
языков функционального программирования имеет алгебраическую природу.
Программы, иаписаиные на этих языках, можно воспринимать как системы
функциональных уравнений, поиск решения которых обеспечивается процедурной
семантикой. Элементами декларативной семантики можно наделить и операторные
языки программирования. Но здесь декларативная семантика играет второстепенную,
вспомогательную роль и применяется главным образом при анализе операторных
программ. Действительно замечательным свойством логического программирования
является то, что обе семантики — декларативная и процедурная — равноправны и в
значительной мере независимы, хотя и полностью соответствуют друг другу (см.
теоремы о корректности и полноте). Поэтому на одну и ту же логическую программу
человек-программист и компьютер-исполнитель могут смотреть с различных позиций,
§2.10. ПОЛНОТА ИСЧИСЛЕНИЙ ЛОГИКИ ПРЕДИКАТОВ 153

а) to является вершиной ж => А |= а,


б) fa является вершиной ж а. □ 2.10.4
Лемма 2.10.5. Пусть Т — замкнутая систематическая таблица с
корнем fa, и А — сужение интерпретации языка С на множество символов
констант, входящих в предложение а, такое что Тогда существует по
крайней мере одна ветвь
таблицы Т, которая согласуется с некоторым расширением А.
□ 2.10.5
Теорема 2.10.6 (корректности исчисления Бета). Если предложение а
выводимо по Бету из множества предложений S логики предикатов, то а
является следствием S:
S \-в а => S \= а □ 2.10.6
Следствие 2.10.7. Если предложение а выводимо по Бету, то оно
общезначимо:
аа □ 2.10.7
Теорема 2.10.8 (компактности). Множество предложений S выполнимо
тогда и только тогда, когда каждое конечное подмножество S
выполнимо. □ 2.10.8

Корректность и полнота исчисления резолюций

Теорема 2.10.9 (корректности исчисления резолюций). Пусть S—


множество дизъюнктов, и R*(S) — множество резольвент S. Если
множество R'(S) содержит пустой дизъюнкт, то S невыполнимо:
□ є R*(S)=> S невыполнимо Ut□ 2.10.9
Лемма 2.10.10. Если С/ и С2' являются основными примерами
дизъюнктов Ct и С2, а С есть резольвента С[ и С 2, тогда существует
резольвента С дизъюнктов С} и С2 такая, что С является основным
примером С. □ 2.10.10
Теорема 2.10.11 (полнота исчисления резолюций). Пусть S —
множество дизъюнктов, и R*(S) — множество резольвент S. Если S
невыполнимо, то множество R*(S) содержит пустой дизъюнкт:
S невыполнимо => □ Є R*(S) □ 2.10.11
Содержательное истолкование этой теоремы имеет следующий вид.
Чтобы доказать выполнимость или невыполнимость предложения
методом резолюций, достаточно вывести пустой дизъюнкт из
наилучшим образом соответствующих стилю мышления каждого из участников процесса
программирования. — Прим, перев.) Выражение △(х, у) интерпретируется как «у делится
на ®» — Прим, перев.

6*) То есть существует такой порядок выбора неиспользованным вершин в неде-


терминированной процедуре построения семантического дерева, в|й котором будет
построена замкнутая таблица. — Прим, перев.
154 Глава 2. ЛОГИКА ПРЕДИКАТОВ

соответствующего множества дизъюнктов. В частности, если дано


непротиворечивое множество дизъюнктов S, и мы хотим вывести
предложение <р, то мы применяем метод резолюции к множеству
ДИЗЪЮНКТОВ S и S', где S' соответствует -><£>. Если мы получим пустой
дизъюнкт, противоречивость будет следствием предположения -чр,
следовательно, мы докажем, что предложение <р общезначимо.
Пример 2.10.12. Пусть задано множество хорновских дизъюнктов из
примера 2.4.7. Нужно с помощью метода резолюций найти ответ на
следующие запросы: .,0*. . и

а) «Что может украсть Питер?»;

б) «Может ли Питер украсть Мэри?». " / , " ‘


Решение: Мы записываем данные хорновсійл Дизъюнкты и запросы в
теоретико-множественной форме. ТакиМ-овразом, получаем
следующее множество хорновских дизъюнктов??)':!
TH ■
Ср. {ВОр(ПИТЄр)} . 3
С2: {любит(Мэри, шоколад)}
(73: {любит(Мэри, вино)} ;
{Ср {любит(Питер, деньги)} Л ъ-п , А- ■ ' ; ■";• Jу ’ І Ср
{любит(Питер, х), ->любит(х, вино)} .>
Ср {может_украсть(х, у), -івор(х), -злюбит(х, у)} W-3
Запросы принимают следующий вид:
ч. «у -А. 1
Ср {-’МОжет_украсть(Питер, х)} ——
- С3". 6 • Ср {-іможет-украсть(Питвр, Мэр#)}
Г-ь.- «г;
•J
§2.10. ПОЛНОТА ИСЧИСЛЕНИЙ ЛОГИКИ ПРЕДИКАТОВ 155

Тогда:
VW б». . ' 'v; >іГ/У‘ЛМ ,1-ыда
а) : >V.
ПГ
№. ЦІХ> /ж/Питер >ї!

{^вор(ПвЖр), -чдавгг (Питер, Ci

у)}

{-<любит(Пите|І,у)} •
,h.~"
іеньги
3(і
ї 0Ч|?<

Другими словами, имея в начале отрицание запроса, мы получили пустой


дизъюнкт. Следовательно, С7 не является справедливым требованием.
Более того, в предыдущем выводе определяется значение переменной у, тем
самым, мы получаем ответ у = деньги на запрос (а), означающий, что Питер
может украсть деньги.
б
Ц' Ct С.
Г'I\ ’ * / я/Питер
. {^вор(ІЬпвр),-ілюбит(Питер,!/)} Cl
<■V' ';7Н? , /
\ / -ял

Ct {-ілюбит(Питер, у)}
<н Т' \ / І;
у, ft. \ / у/деньги

Таким образом, из С8 можно также вывести пустой дизъюнкт.


Следовательно, Питер может украсть Мэри! □ 2.10.12
Замечание 2.10.13. Если во время выполнения процедуры резолюции
алгоритм унификации не может найти наиболее общий унификатор,
другими словами, мы не можем вывести □ из наших данных, то цель
называется неуспешной. В противном случае, цель называется успешной
(замечание 1.9.9). В частности, цель «может_украсть(Питер, Мэри)» из
примера 2.10.12 является успешной. □ 2.10.13

Полнота аксиоматического исчисления

Доказательство следующей теоремы о выводе в аксиоматической системе


выходит за рамки этой книги. Его можно найти, например, в [К1ее52,
Mend64, Rasi74, RaSi70].
Теорема 2.10.14 (полноты и корректности аксиоматического исчисления,
Гёдель, 1930 г.). Формула логики предикатов выводима из множества S
156 Глава 2. ЛОГИКА ПРЕДИКАТОВ

предложений PrL тогда и только тогда, когда <р является следствием S.


Формально:

... □ 2.10.14

Следствие 2.10.15. Формула выводима из аксиом PrL тогда и только


тогда, когда общезначима. Формально:

. ?■. • |= □ 2.10.15

НЙЛКХЙЗ ИН Л^ьЄОЙ.3

§ 2.11 Проблема разрешимости логики предикатов

Многие математические задачи являются частным случаем некоторой


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

♦делится ли полином f(x) на полином д(х)?*

с помощью алгоритма деления, пытаясь разделить конкретный полином f(x)


на конкретный полином д(х). Если остаток от деления равен нулю, ответом
на вопрос будет «да». Если остаток отличен от нуля, ответом будет «нет».
Определение 2.11.1. Метод, позволяющий ответить «да» или «нет» на
произвольный частный случай общего запроса, называется разрешающей
процедурой. Задача нахождения такого метода для некоторого общего
запроса называется проблемой разрешимости для этого запроса. □ 2.11.1
Многие проблемы разрешимости в математике или не могут быть
решены в общем виде, или имеют только частные решения, то есть могут
быть решены при выполнении некоторых условий. Одной из таких проблем
является проблема разрешимости для произвольной логики L. Логика L
определяется своим языком, который состоит из логических и специальных
символов, а также аксиомами и правилами, с помощью которых мы можем
выводить и анализировать правильно построенные предложения логики L.
Определение 2.11.2. Проблема разрешимости для логики L состоит в
нахождении алгоритмической процедуры, с помощью которой мы можем
решить для каждого правильно построенного предложения логики L,
выводимо оно в L или нет, другими словами можно ли его доказать в L или
нет. □ 2.11.2
§ 2.11. ПРОБЛЕМА РАЗРЕШИМОСТИ ЛОГИКИ ПРЕДИКАТОВ 157

Проблема разрешимости в логике высказываний решается с помощью


таблиц истинности: если нам дано высказывание А, мы строим таблицу
истинности А и проверяем, является ли А тавтологией. Если высказывание
А есть тавтология, то по следствию 1.12.2 А выводимо в PL; если же А не
является тавтологией, то оно не выводимо в PL. Следовательно,
справедлива следующая теорема:
Теорема 2.11.3. Проблема разрешимости для PL имеет положительное
решение. □ 2.11.3
Не так проста ситуация в PrL. По следствию 2.10.15 мы знаем, что
формула <р языка £ логики предикатов выводима тогда и только тогда,
когда у? общезначима, т. е. истинна во всех интерпретациях языка £.
Однако, число интерпретаций языка £ бесконечно, и мы, конечно, не в
состоянии все их проверить. Следующая теорема известна с 1936 года
[СЬигЗб, ТигіЗ/].
Теорема 2.11.4. Проблема разрешимости для PrL не имеет решения.
Другими словами, не существует алгоритмической процедуры,
позволяющей определить, выводима данная формула PrL или нет. □2.11.4
Хотя проблема разрешимости для PrL не может быть решена в общем
виде, для некоторых частных случаев существуют решения [Klee52,
Chur56].
Теорема 2.11.5. Проблема разрешимости имеет решение для формул в
предваренной нормальной форме, в которых все кванторы существования
следуют за кванторами всеобщности. Иначе говоря, существует
алгоритмическая процедура, позволяющая определить, выводима формула
вида

(Ух,) .^. (У^) (By,)


только у только з х;«з.У
или нет.' - ' Инм-жрі □ 2.11.5
Теорема 2.11.6. Проблема разрешимости имеет решение для всех
формул, содержащих только предикаты, степень которых не
превосходит единицы, т. е. ноль-местные и одноместные предикаты.
□2.11.6
В [Chur56] приведена аналитическая таблица, представляющая все
известные частные решения проблемы разрешимости для PrL.
Наряду с попытками найти частные решения проблемы разрешимости
для PrL, определенные усилия были затрачены на решение проблемы
выполнимости формулы PrL, то есть на поиск алгоритмической процедуры,
позволяющей определить, выполнима ли данная формула PrL или нет.
Теоремы 2.6.6 (Лёвенгейм, Сколем), 2.7.7 и 2.10.6 утверждают, что
проблема выполнимости для PrL имеет решение в частных случаях. і..
158 Глава 2. ЛОГИКА ПРЕДИКАТОВ

§ 2.12 Упражнения

2.12.1. Определите, чем являются следующие выражения: термд- ви,


формулами или ни тем, ни другим: Я
а) Майкл; е) (Vx) (число(х) Л х — х + х]; J
г., б) математик (ж); ж) — [+(х + у), z]; if
> в) число (6); s)(x + y) + j2; 'Ц|
г) являетсядпланетой (х); и) лучшая книга; ’
д) (3 + 1) + 10; к) Ненавидит(х, у) у).
„Решение. , ,иь. ЯШП ■>
а) терм; атнцоы е) формула; а он .он/л
б) формула; ж) формула; ' J SHT;
в) формула; з) терм;
г) формула; ’’W и) ни то, ни другое; оа
д) терм; ибо* к) формула.
2.12.2. вхождения переменных в следующих
Найдите свободные формулах:

a) (Vx)P(x, у) -> (\/г)<5(г, х); ■


/ б) Q(z) _ ^х)(Уу)Р(х, у, а)^'^ ,t • * U-Л- .}« V/’ ’ в) (Vx)P(x) л W)Q(x, у).
;■
Решение.
а) у, х (х также имеет связанное вхождение); б) z; в) х.
2.12.3. Найдите свободные вхождения переменных в следующих
формулах. Какие из этих формул — предложения?
а) (Vx)(Vj/)(V2) [х > у Л у > z] —> (3w) [w > w];
б) (Зх) (красный (х)) V [(Уу)голубой (у) V желтый (х)];
- в) х + х = х + х; Н
г) (Зг/)[х + х = х + х];
д) (3x)(3j/) [учитель(х, у) А учитдіредмету (х, у, 01- 4
Решение, а) Свободных вхождений нет. Формула является
предложением.
б) Переменная х имеет свободное вхождение во вторую дизъюнк-
тивную подформулу.
в) Переменная х имеет свободное вхождение.
г) Переменная х имеет свободное вхождение.
д) Переменная z имеет свободное вхождение.
2.12.4. Используя арифметический символ «<» (меньше) и язык
логики предикатов, сформулируйте следующие фразы: к / щ
а) Существует число х, меньшее, чем 5 и большее, чем 3.\' б) Для
любого числа х существует число у, меньшее х. .■
в) Для любого числа х существует число у, большее X. ‘ г) Для любых
чисел х и у, суммы х + у и у + х равны.
д) Для любого числа х, существует такое число у, что для любого z, если
§2.12. УПРАЖНЕНИЯ 159
разность z — 5 меньше, чем у, то разность х — 1 меньше 3.
Решение. Введем функции — (х, у) и +(х, у), выражающие разность и
сумму х,у, и предикат «число (г)», обозначающий, что х является числом.
Тогда предложения запишутся следующим образом:
а) (Зх)[число (х)А < (х, 5)Л < (3, х)]; "■
б) (Ух)(3у)[число (ж) А число (Ї/)А < (у, х)]; 4я
в) ^х)(3у)[число (ж) А число (у)А < (х, у)]; .
г) (Ух)(3у)[(число (х) А число (у)) -»= (4-(х, у), +(у, х))]; u 9 q
д) (Ух)(Зу)(Уг:)[число (х) А число (у) А число (z)A 'Я & эм А (< (—(z,
5), j/) —>< (—(х, 7), 3))}.
2.12.5. Пусть в, £ —подстановки, Е — тождественная подстановка, ист
— атомарная формула. Докажите, что
а) 0Е — Е0 = 0; > .... _ .. ,
б) (CT0)V> = ст(0г/>); ' Д Д л Д'.(
в) (&ф)£ = 0(^). > Й9гПО0ОТНЬГ »0т-щпля К «-* К - Г- вкумсоф
Решение. б) Пусть 0 = {u,/sl,...,um/sn^ -m■■■
• • •> 4»/O- Сначала докажем, что для всех термов г верно свойство

(70)^> = г(0г/>). f&Wt (*)


Доказательство проведем индукцией по длине т.
1. Если т — константа, тогда (*), очевидно, справедливо. '
2. Если т — переменная х, то
а) если х £ {и,,..., um} U {«,,..., vn}, тогда X(0T/J) = х = (х0\ф;
б) если х Є {и,,..um}, то существует 1 г m такое, что (х0)т/> = = xfjty);
в) если х є vn} — {г4и..., um}, то существует 1 j п
такое, что (x0)ip = — х(0ф).
3. Если т — это терм f(t],..., tk), тогда (*) справедливо по пред-
положению индукции и по определению 2.2.19.
Тогда если ст — атом, то по свойству (♦) и определению 2.2.19 (почему?)
верно (CTfl)V’ = ст(00).
4. 12.6. Определите, какие из следующих пар формул являются
вариантами: :; (
160 Глава 2. ЛОГИКА ПРЕДИКАТОВ

3) P(f(x, У), 9(z), а) и P(f(y, х), д(и), а); . су •• . е б) Р(х, х) и Р(х, у).
Решение, а) да (почему?); б) нет (почему?)., ,
5. 12.7. Докажите, что ,.ъ
а) если free(х, а, А), то Ь А(х/а) —♦(Зх)А; ..
б) h(Vx)A^A; •:
» Ь4-.(3»)Л; ‘
г) H(Vx)A->(Зі)А; > хн-^смкрі

д) Н (Vx)(3j/)(x = у), -j? л, і v4 ‘ <>,/(( «і' • I


(в-
е) Н (Vx)(Vy)(x — у -* у = х);
ж) F (Ух)(7г/)(\/г)[(х = у А у = z) —+ х = г]. К
Решение, а) Если free(x, а, А), то /гее(х, а, -^А). По аксиоме 4 верно
заключение (І-. /;

1- (Vx)-iA -» -А(х/а). „..J


Затем по аксиоме 3 и правилу Modus Ponens получим, что
Ь ^4(^/0) '■ !Я

2.12.13. ). Ответ аргументируйте.


а) (Уг/)Д(сн у); в) (Эл) (Уу)Д(ж, у);
б) (Уж)[Д(ж, С5) w (х = е,) V (х = с5)]; г) (Зж) (У?/)Д(з/, х).
Решение. По определению 2.5.5 мы получим
а) истинно (почему?); в) истинно (для какого ж?);
б) истинно (почему?); г) ложно (почему?).
2.12.16. Пусть £= {^, =,+,-, О, 1} — это язык арифметики.
а) Напишите на языке £ предложение Р(х), которое в обычном
математическом смысле интерпретируется как «х — простое число».
б) Используя Р(х) как предикат, выразите в языке £, что сумма двух
простых чисел, отличных от 2, — четное число.
Решение, а) Число х является простым тогда и только тогда, когда ж и 1
— единственные делители ж. Тогда: .
Р(х) (Vy)(Vz)[(rr = у • z) —>(x = yhz = \)\/(x = zhy = 1)];
в) (V*)(V!/)[(P(z) А Р(у) Л -.(х = +(1, 1)) А -(у = +(1,1)))-^
-+ (3z)(+(x, у)\ = +(z, г))]. JH
2.12.17. Пусть дан язык логики предикатов £ = {=, и на®Ц аксиом J|
Е - {(УфО], (Vz)(Vy)[(z^ у)Л(у^ х)~*(х = у)], Я (Vx)(Vy)(Vz)[(z у) А (у
<«)"*(* ^-01» А
(Vx)(Vy)[-<(x = у) А (я; у)-*
й
-> (3z)[(a: z) A (z у) Л ~<(х = z) А ->(у = z)]]/; '■ (Va:)(Vy)[(z = у) V (х
§2.12. УПРАЖНЕНИЯ 161
у) V (у х)]}.
Определите такие две различные интерпретации Л, и Д языка £, что Л[ S
и A3 S.
Решение. Первые три аксиомы из Е вводят отношение упорядоченности,
четвертая утверждает, что упорядоченность плотна, а пятая — то, что
упорядоченность полна. Мы знаем, что действительные, рациональные и
натуральные числа с обычным отношением порядка полностью
упорядочены, и, более того, упорядоченность плотна для действительных и
рациональных чисел, но не плотна для натуральных чисел (почему?).
2.12.18. Пусть Ai = (Q, q(P)) и А2 = (TV. є2(Р))— две интерпретации
языка £={Р} логики предикатов, где є{(Р) и &2(Р)— это обычные отношения
порядка рациональных чисел Q и натуральных чисел N, где 0(Ах) и 0(Aj) —
соответствующие теории (см. определение 2.5.10). і
а) Найдите два таких предложения а1 и а2 языка £, что н. . J
Ai [= Ст] Л а2 и Аз crt V ст2. !
Ч
б) Определите, какие из следующих предложений
0(АІ) = 0(А2), 0(A])g^(A), 0(А2)С0(Л]) Я- истинны, и
аргументируйте ответ.
Решение, а) По определению 2.5.5 как alt так и ст2 должны быть
истинными в А1( а в Л2 предложения и а2 не могут быть истинными. Пусть
<Т] — выражение, обозначающее плотность упорядочения:
СТ]! (Vz)(Vy)[-n(;r = y)A(z^ у)-»
-> (32)[(ж < z) Л (z у) Л ->(я = z) Л —1(у = z)]].
Другое важное различие между Q и N состоит в том, что существует
наименьший элемент в N, а у Q нет наименьшего элемента. Пусть а2 —
предложение, утверждающее, что наименьшего элемента нет: -
ст2:-n(3rr)(Vy)P(x, у). =• - •<-(Ц
Тогда |= (т1 Л а2 и А2 V <т2 (почему?).
6) Л, <т[, но Д ст,. Следовательно, ^(Д) / в(А2).
А^ (почему?), но Д ~>а2. Следовательно, ^(AJg. (ЦА^).
А? 1= ~'сгі (почему?), но ->ai 0(A) (почему?). Следовательно, О(А2)^0(А1).
6.19.19. Приведите к предваренной нормальной форме следующие
предложения:
а) (\/х)Р(х)—* (3x)Q(x);
б) (VX)(VT/)[(3Z)P(X, у) Л Р(х, г)] -> (Bu)Q(x, у, и);
в) (Va:)(V2/)[(3z)P(x, у, z) Л [(3u)Q(х, и) -> (3u)Q(y, и)]].
Решение. Используем формулы с (1) по (6), (9) и (10) из

в) (Vx)(Vz/)[(3z)P(x, у, z) Л [(3u)Q(x, и) -> (Bu)Q(y, и)]] <-»(Vx)(V?/)


[(3z)P(x, у, z)A[->(3u)Q(x, и) V(3u)Q(y, и)]] <->(Vx)(Vj/)[(32)P(x, у, z)A
[(Vu)->Q(x, и) V(3w)Q(j/, w)]] «->(Vx)(Vj/)(32)[P(x, у, г)Л (Vu)(3w)[-»Q(x,
162 Глава 2. ЛОГИКА ПРЕДИКАТОВ

и) V Q(y, w)]] <->(Vx)(Vy)(32)(Vu)(3w)[P(x, y, z) A (~>Q(x, и) V Q(y, w))].


6.19.20. Определите теоретико-множественную форму следующих
предложений:
a; (3x)(Vy)(3z)[(P(x,y)V-Q(x)V R(z))* ,
Л (->Р(х, у) V -'Q(x)) Л (~>Р(х, у) V Я (.?))]; *.*'• і хр a'-. -<(\
fx)(3y)[P(x, у)—^ Q(y)]; «?
^[(Vx)P(x)^(By)(Vz)Q(y,z)].
Решение. Предложение а уже находится в предваренной нормальной
форме. Так что нам нужно определить сколемовскую нормальную форму
(СНФ).
ст*: (У^/)(Зг)[(Р(а, у) V ~^Q (а) V P(z))A
Л (^Р(а, у) V -'Q(a)) Л (->Р(а, у) V Я(г))] (почему?) ^У){(Р(^
У) V -Q(a) V Р(/(Ї/)))Л
Л (-Р(а, у) \f -^Q(a)) Л (-.Р(а, у) V R(f(y)))], где а — новая
константа, а /(у) — новая одноместная функция. Тогда по определению
2.6.10 теоретико-множественная форма а имеет вид: ... ; 4
={{Р(а, у), -'Q(a), R(f(y))}, Л
{-^P(a,y),^Q(a)},{-^P(a,y),R(f(y))}}^ t t.
■■ • ♦* • ' ‘ї '.k,
Теперь преобразуем <f> в ПНФ:
У? *-> 4“^(VT)P(X) V(3y)(V2)Q(y, z)] ...... f
^^x)P(x)A^y)(\/z)Q(y,z)
. А З.. w(Vx)P(a:)A(Vy)(3z)-1Q(y, z)
- ^(Vx)(Vy)[P(x)A(3z)-Q(y,z)]
<-»(Vx)(Vy)(3z)[p(a;)A-,Q(j/,z)]. (<
Соответствующая сколемовская форма имеет вид
<Р*' (Vx)(Vy)[P(x)A^Q(y,f(x,y))], Г'
•Ц■

где f(x, у) — новая двухместная функция. Множество,. /


Sr = {{P(x)},{-.Q(y,f{x,y)}}
есть теоретико-множественная форма </?. цйЧг.л ; !
•<>
6.19.21. Даны следующие предложения: ■ » , ■rYf; г-, •у»-.
Fi'. Все, кто сберегают деньги в банке, получают проценты.
F2: ЕСЛИ бы процентов не было, никто бы не сберегал деньги в банке.
Введем следующие предикаты:
А(х, у)', х сберегает в банке у, ’И Т\х)'. х — это проценты;
К(х, у): х зарабатывает у, Х(х)'. х — это деньги.
Сформулируйте Р( и F2 на языке, определенном вышеуказанными
предикатами, и определите сколемовскую форму для Ft и ->F2.
§2.12. УПРАЖНЕНИЯ 163
6.19.22. Пусть (G, #) — группа. Опишите выбранными Вами пре-
дикатами свойства группы G, а именно, что G замкнута относительно #,
операция # ассоциативна, имеется единичный элемент и обратные
элементы. Определите СНФ формул, которые выражают эти свойства.
Решение. Введем предикат Р(х, у, z), который интерпретируется
следующим образом: х#у — z. Тогда формула ;• ■ .. « j
(Vx)(Vy)(3z)P(2;, у, z) х <

выражает, что G замкнута относительно #. Ассоциативность вырг жается


формулой - *■ *>
І?.

..... cr2: (Vx)(Vy)(Vz)(Vw)(Vv)(Vw)[F(o;, у, м)А «т?


A P(y, z, v) A P(u, z, w) —> P(x, v, w)]A
A (Vz)(Vy)(Vz)(Vu)(Vf)(Vw)[/’(z, y, u)A
A P(y, z, v)A P(x,v, w) —> P(u, Z, w)]. '
Существование единичного элемента:
сг3: (В?/) (\/х)[Р(ж, у, х) Л Р(у, х, х)]. г «И
Существование обратного элемента: . -■ Is'
<т4: (Вз/) (Ух) (3z)[P(x, у, х) Л Р(у, х, х) — Р(х, z, >)Л P(z, х,
кК
СНФ этих предложений суть: с

trf; (Vx) (Vy)P(x, y,f(x, у)), ’ эшз<1


где f(x, у) — новая функция от двух переменных;
а*2. (Vz)(Vy)(Vz)(Vu)(V«)(Vw)
[[Р(ж, у, и) Л Р(у, z, v) Л Р(% Z, w) —> Р(х, V, w)]A Г
Л [Р(ж, у, и) Л Р(у, z, v) Л Р(Х, v, w) —* Р(и, z, w)]]
(почему?) w(Vx)
(V^)(V^)(Vu)(Vv)(Vw)
Ц->(Р(а:, у, и) Л Р(у, z, v) Л Р(и, z, w)) V Р(х, v, w)]A
Л [->(Р(ж, У, и) Л Р(у, z, v) Л Р(х, v, w)) V Р(и, z, w)]] ~(Vx)(Vy)
(V2)(Vu)(Vv)(Vw)
[[->Р(х, у, и) V -Р(у, z, v) V -P(u, z, w) V P(x, v, w)]A
A [->P(x, у, и) V -iP(y, z, v) V ->P(x, v, w) V P(u, z, w)]], которая
совпадает с ПНФ предложения <т2 (почему?);
<т3‘: (Vx){P(x, а, х) Л Р(а, х, ж)];
, х) v x)v
164 Глава 2. ЛОГИКА ПРЕДИКАТОВ

,\.. V(P(a:, д(х), Ь)ЛР(д(х), х, 6))],


где а и b — новые константы, ад — новая функция.
Другой возможный путь решения задачи — использовать язык логики
предикатов £ = { =, /, і, е}, где f — символ функции от двух переменных с
интерпретацией f(x, у) — х#у, і — функция от одной переменной, причем
і(х) — обратный элемент к х, константа е — единичный элемент группы, а =
— предикат, обозначающий равенство, например, как в [Наті78].
2.12.23. Пусть S] и S2 — два множества дизъюнктов:
S, = ШЧо)}. {PM, P(fM)}}:
S, = {{РЮ, Q(х)}, {R(Z)}, {ТЫ,
Определите эрбрановские множества Н3 для и Нн..., Я10 для S2.
Решение. Для S2. В S2 не встречаются символы переменных. Введем
константу с. Тогда Но = {с}. Более того, в S2 нет функциональных символов.
Таким образом, Но = . = Я10 = {с}.

2.12.24. Определите эрбрановские множества Но и для множества


дизъюнктов S = {{P(f(x), a, Ь))}}. Определите все
основные примеры (по определению 2.4.3) для S на множествах HQ и Я. . і
Решение. / ■ ,.
Я0 = {а, 6},

■Л) ••о .
Тогда-Примеры на множестве Яо для S суть • ч! ’
■■> Z Sn^{{P(f(a),a,g(f(a),b))}}, SK={{P(f(b),a,g(f(b),b»}}.

. Димеры на множестве Я, для S суть , У‘‘. '


S
21 = {€?(/(“). s(/(o)> ь))}},>1 •
,"«(• 5и={{Р(ДЬ),а,9(/(Ь),Ь))}}, j
Iі» « = {{-Р(/М/(о).(>)). а. 9(/О(/(а),Ь)). <>))}}, 1
«25 = {{Р(/(9(ЛЬ>, Ь)), а, 9(/ДО(Ч,ВД}}- г! '3
ь - .- » ,I
2.12.25. Докажите при помощи замкнутых системетяческих тай лнц
общезначимость следующих предложений: ■ ,v . .. ; :v ;

'a)[(3a;)P(z)-.(Vx)Q(a;)]->(Vx)[P(x)^Q(a:)]; J
г^б)-(Vx)P(x)w(3x)(-«P(r)); - ■
:в) (Vx)(P(x) A Q(x)) ((Ух)Р(х) л (Vx)Q(x)\,
г) (Зх) (P(x) V Q(x)) (Зх)Р(г) V (Bx)Q(x);
д) (3x)(\/y)P(x, y) -> (Vj/)(3x)P(x, y).
§2.12. УПРАЖНЕНИЯ 165
Решение, а) См. рис. 2.7 По определению 2.3.7, предложение а)
доказуемо по Бету, то есть его можно доказать посредством ЗСТ.
в) См. рис. 2.8. Построенная таблица замкнута и противоречива,
следовательно, она содержит доказательство предложения в). J
166 Глава 2. ЛОГИКА ПРЕДИКАТОВ

/[[(3«)P(a;) -> (Vx)Q(®)] -> (Va:)[P(a:) -> Q(a?)]]

Л[(Зх)Р(х) ^(Vx)Q(x)]

1
/[(Vs)№) -> Q(x))]

Вам также может понравиться