- •ВВЕДЕНИЕ
- •1.1. Способы задания множеств
- •1.2. Подмножества
- •1.3. Операции над множествами
- •1.4. Алгебра множеств
- •1.5. Кортежи. Прямое произведение множеств
- •1.6. Соответствие
- •1.7. Мощность множества
- •1.8. Единичный гиперкуб
- •1.9. Парадокс Рассела
- •2. ЛОГИЧЕСКИЕ ФУНКЦИИ
- •2.1. Понятие предиката
- •2.2. Признаки (свойства)
- •3.1. Высказывания
- •3.2. Кванторы
- •3.4. Аксиоматическая модель и ее свойства
- •3.6. Понятие монадической логики
- •3.7. Алфавит и термы
- •3.8. Предикатные нормальные формы
- •3.11. Алгоритм унификации
- •3.13. Перспективы развития
- •ЗАКЛЮЧЕНИЕ
- •БИБЛИОГРАФИЧЕСКИЙ СПИСОК
Вопросы для самоконтроля
1. Будут ли ППФ следующие выражения: Б ↓ М , Б М , Я Я,
М Ж, Я Х , (А В) А Б, А Б Б А Б ? Если нет, то по-
чему?
2. Представьте в виде ППФ утверждение «Иван и Петр правы, если прав Борис или Олег, а Егор не прав».
3.2. КВАНТОРЫ
На языке логики предикатов можно описать большую часть знаний, относящихся не только к математике, но и к любой другой сфере человеческой деятельности, а главной целью таких описаний является создание вопросно-ответных систем искусственного интеллекта, работающих по алгоритму исчисления предикатов. Видимо в ближайшем будущем такие системы искусственного интеллекта будут использоваться также широко, как современные компьютеры.
Данный язык включает в себя рассмотренный выше язык высказываний, в котором вместо атомарных высказываний имеют место атомарные предикаты, т. е. логические функции от любого числа переменных. Наличие этих переменных приводит к необходимости введения дополнительных логических операций, которые применимы лишь для предикатов с вхождениями. Такие операции называют кванторами.
Определение 3. Пусть P(x)− предикат с вхождением x X . Тогда высказывание «для любого x из X условие P(x)−истинно» на языке логики предикатов имеет вид ( x X )[P(x)], где − квантор общности; высказывание «существует такой x в X , для которого условие P(x)− истинно» на данном языке запишется формулой ( x X )[P(x)], где − квантор существования. Сам же переход от предиката P(x) к формулам
54
вида ( x X )[P(x)] или ( x X )[P(x)] называется операцией навешивания квантора на предикат P(x), а переменная x , на которую навешен
квантор, называется связной переменной.
Если рассматривать предикаты с несколькими вхождениями, в них могут иметь место как связные, так и свободные переменные. Например,
в предикате |
( x X )( y Y )[P(x, y, z)] переменная z |
является свобод- |
|
ной, а x и y связными. |
|
||
Отметим, |
что предикат ( x X )( y Y )[P(x, y, z)] |
зависит только от |
|
z , но не от |
x |
и y , т. е. операция навешивания квантора на n-местный |
|
предикат превращает его в (n −1) -местный. Сама же эта операция есть обобщение операций конъюнкции и дизъюнкции, которые действуют на все значения связной переменной. Иначе говоря, если область изменения связной переменной x есть конечное множество X ={x1, x2 , ..., xk }, то
( x X )[P(x)]= P(x1) P(x2 ) ... P(xk ), |
(3.2) |
( X )[P(x)]= P(x1) P(x2 ) ... P(xk ) . |
(3.3) |
Здесь переменная x заменяется на свои конкретные |
значения |
x1, x2 , ..., xk . Поэтому одноместный предикат P(x) переходит в нульмест-
ный, т. е. превращается в результате действия квантора в высказывание, которое имеет форму элементарной конъюнкции (дизъюнкции).
Из соотношений (3.2), (3.3) и тождеств булевой алгебры легко получаются законы Де Моргана для кванторов:
|
|
|
|
|
|
|
, |
(3.4) |
|
|
|
|
|||||||
|
|
|
|
|
|||||
( x X )[P(x)]= ( x X ) P(x) |
|||||||||
|
|
|
|
|
|
|
|
(3.5) |
|
|
|
|
|
||||||
|
|
|
|
|
|
||||
( x X )[P(x)]= ( x X ) P(x) . |
|
||||||||
55
Другими равносильными формулами с кванторами, которыми следует дополнить тождества алгебры высказываний, являются
( x) P(x) |
Q = ( x) P(x) Q |
, ( x) |
P(x) |
Q = ( x) P(x) Q , |
|
||||
|
|
|
|
|
|
|
|
|
(3.6) |
( x) P(x) |
Q = ( x) P(x) Q , ( x) P(x) |
Q = ( x) P(x) Q |
|
||||||
, |
|
||||||||
|
|
|
|
|
|
|
|
|
|
где Q – любой предикат, не имеющий вхождения х. |
|
|
|
||||||
|
|
( x)[P(x)] ( x)[S(x)]= ( x)[P(x) S(x)], |
|
(3.7) |
|||||
|
|
( x)[P(x)] ( x)[S(x)]= ( x)[P(x) S(x)], |
|
|
(3.8) |
||||
|
|
( x)[P(x)] ( x)[S(x)] ( x)[P(x) S(x)], |
|
(3.9) |
|||||
|
|
( x)[P(x) S(x)] ( x)[P(x)] ( x)[S(x)], |
|
|
(3.10) |
||||
|
|
( x)[P(x)] ( x)[S(x)]= ( x)( y)[P(x) S(y)], |
|
(3.11) |
|||||
|
|
( x)[P(x)] ( x)[S(x)]= ( x)( y)[P(x) S(y)], |
|
(3.12) |
|||||
|
|
( x)( y)[P(x, y)]= ( y)( x)[P(x, y)], |
|
|
(3.13) |
||||
|
|
( x)( y)[P(x, y)]= ( y)( x)[P(x, y)]. |
|
|
(3.14) |
||||
В выражениях (3.6)–(3.14) с целью упрощения записи не указана область изменения связной переменной x . В правых частях равенств (3.11) и (3.12) связная переменная y имеет ту же область изменения, что и x . Соотношения (3.9) и ( 3.10) не являются равенствами. То, что их левые и правые части не равны, можно показать на таком примере.
Пример 2. Пусть переменная x имеет область значений X ={груша, лимон, репа}, а предикаты P(x) и S (x) определяют свойства этих значе-
ний «быть фруктом» и «быть корнеплодом» соответственно. Сопоставить левые и правые части импликаций (3.9) и ( 3.10) для данной интерпретации.
56
Решение. Поскольку любой из элементов множества X либо фрукт, либо корнеплод, то высказывание ( x)[P(x) S(x)], истинно, но утвержде-
ние, что ( x)[P(x)] ( x)[S(x)]− любой x фрукт или любой x корнеплод,
ложно, т. к. репа не фрукт, а лимон (или груша) не корнеплод. Поэтому левая и правая части соотношения (3.9) не равносильны. Левую формулу при тождественных преобразованиях можно заменять на правую (когда в X только одни фрукты или только одни корнеплоды, то истинны обе части импликации (3.9)), но обратная замена в общем случае будет неверной.
Теперь рассмотрим соотношение (3.10). В нем правая формула дает истину – в X существует и фрукт, и корнеплод. А левая формула ложна – не существует в X такого элемента, который бы был одновременно
ифруктом, и ко рнеплодом. Но если бы такой элемент был, то истинными тогда были бы обе формулы. И здесь в общем случае возможна только односторонняя замена.
При преобразованиях предикатов также следует иметь в виду, что менять местами можно лишь кванторы одного типа (см. соотношения (3.13)
и(3.14)), а смешанные кванторы в общем случае переставлять нельзя. Такая перестановка может изменить и значение, и смысл предиката.
Пример 3. Записать на языке логики предикатов утверждение «любое натуральное число имеет последующее», затем в полученной формуле поменять местами кванторы общности и существования. Проанализировать последствия такой перестановки.
Решение. Данное утверждение с учетом того, что N −множество натуральных чисел, можно перефразировать более конкретно «для любого
x из N существует y из N такое, что y = x +1», что соответствует формуле
( x N )( y N )[y = x +1].
После перестановки кванторов местами получится формула
( y N )( x N )[y = x +1],
57
которая имеет уже иной смысл. Данная запись будет означать, что «существует такое натуральное число, которое больше ровно на единицу любого натурального числа (в том числе и себя самого!)». Таким образом, в результате перестановки кванторов из истинного высказывания может получаться полный абсурд.
Определение 4. Запись вида P(x, y,..., z), где символ P есть некото-
рое предикатное имя, соответствующее какому-либо предикату (отношению или признаку), а x, y,..., z −имена его вхождений, называется ато-
марным предикатом5.
Например, если С − предикатное имя отношения «быть сыном», то выражение С(x, y) является атомарным предикатом, означающим, что x является сыном y .
При замене всех вхождений атомарного предиката на конкретные значения получается атомарное высказывание. Например, выражение С(Игорь, Рюрик) есть атомарное высказывание, утверждающее, что Игорь сын Рюрика.
По аналогии с ППФ высказывания дадим определение правильно построенной предикатной формулы (ПППФ).
Определение 5. Атомарный предикат есть ПППФ. Операция навешивания квантора на ПППФ дает ПППФ. Инверсия ПППФ есть ПППФ. Соединение двух ПППФ логическими операциями , , , , , образует также
ПППФ. Правила использования скобок для установления порядка выполнения операций над ПППФ аналогичны правилам элементарной алгебры.
5 В данном определении использована префиксная форма записи предиката, в которой предикатное имя стоит перед перечнем вхождений предиката. Префиксная форма является общей для предикатов с любым числом вхождений. Для двухместных предикатов наряду с данной используется еще и инфиксная форма, в которой символ предикатного имени пишется между вхождениями предиката (xPy). Например, предикат «сумма x и y» в инфиксной форме x + y имеет более привычную запись, нежели в префиксной +(x,y). Запись бинарных отношений в инфиксной форме (x < y, x = z, y > w и т.д.) естественнее.
Иногда символ предикатного имени указывают после перечня вхождений, такую за-
пись называют постфиксной формой (прим. автора).
58
В частности, левые и правые части равносильных формул (3.2)–(3.14) суть ПППФ.
Отметим, что ПППФ по смыслу могут быть и ложными утвержден и- ями. Например, записи вида ( y N )( x N )[y = x +1] или 2 > 5 являю т- ся ПППФ, хотя неверны по смыслу.
Вопросы для самоконтроля
1. Представьте в виде ПППФ следующие утверждения: а) все люди смертны; б) все жанры хороши, кроме скучного; в) не все то золото, что блестит; г) для любого ε > 0 существует такое δ > 0 , что для всех x ≠ x0 ,
как только будет выполнено условие x − x0 < δ, так будет иметь место не-
равенство f (x) − f (x0 ) < ε.
2. Переведите на русский язык следующую ПППФ:
( x N )( y N )( z N )( n N ) n > 2 xn + yn ≠ zn ,
где N − множество чисел натурального ряда.
3.3.СПОСОБЫ ЗАДАНИЯ ПРЕДИКАТОВ
Оспособах задания двуместных предикатов (бинарных отношений) говорилось в пп. 3.1 и 3.2. Распространим их на случай предикатов с любым числом вхождений.
Пусть f (P1, P2 ,..., Pk )есть ПППФ, состоящая из атомарных предикатов
P1, P2 ,..., Pk , а x1, x2 ,..., xn все ее свободные переменные. Тогда определением нового n-местного предиката S будет являться следующее высказывание:
( x1 )( x2 )...( xn )[f (P1, P2 ,..., Pk ) S(x1, x2 ,..., xn )].
59
В частности, если задано бинарное отношение «быть сыном» (С – предикатное имя данного отношения), то через него можно получить новые предикаты : О– «быть отцом», Б − «быть братом», В − «быть внуком», П − «быть племянником» и т. д. Их можно определить следующими высказываниями:
( x1 )( x2 )[С(x1, x2 ) О(x2 , x1)], |
|
|
( x1 )( x2 ≠ x1 )( x3 )[С(x1, x3 ) С(x2 , x3 ) Б(x1, x2 )], |
(3.15) |
|
( x1 )( x2 )( x3 )[С(x1, x3 ) С(x3 , x2 ) В(x1, x2 )], |
||
|
||
( x1 )( x2 )( x3 )[С(x1, x3 ) Б(x3, x2 ) П(x1, x2 )]. |
|
Определенные, таким образом, предикатные имена О, Б, В, П будут соответствовать заданным на некотором множестве X (в некотором мире сущностей) предикатам, если задан предикат С(x1, x2 ) , т. е. если указаны
все пары (ξ1,ξ2 ) X 2 , составляющие его область истинности. Здесь сущности ξ1 и ξ2 – это конкретные значения переменных x1 и x2 .
Каждое такое определение записывается в виде импликации, в правой части которой стоит определяемый предикат Р(x1, x2 ) , а в левой – его определение в виде некоторой ПППФ из уже определенных предикатов, причем вхождениями этой формулы являются логические переменные x1 и x2 . Если для некоторых значений ξ1 и ξ2 этих переменных данная
ПППФ дает истинное высказывание, то высказывание Р(ξ1, ξ2 ) становится доказанным фактом. Таким образом, область истинности определяемого предиката задается не непосредственно, а с помощью ПППФ из уже определенных предикатов. Такого рода определения в языке логики предикатов называют обычными.
Рассмотрим действие представленных выше определений на следующем примере. Пусть мир сущностей X представлен князьями из дома Рюрика, а именно
X ={Рюрик, Игорь, Святослав, Ярослав, Борис, Глеб, Всеволод}.
60
На нем задано отношение «быть сыном», область истинности которого состоит из следующей совокупности фактов (атомарных высказываний):
С(Игорь, Рюрик); С(Святослав, Игорь);
С(Владимир, Святослав); С(Борис, Владимир);
(3.16)
С(Глеб, Владимир); С(Ярослав, Владимир); С(Всеволод, Ярослав).
Из этих фактов следует, что Глеб сын Владимира, т. к. истинно утверждение С(Глеб, Владимир), однако Ярослав не сын Игоря, т. к. в области истинности данного отношения нет факта С(Ярослав, Игорь).
Если данный текст из семи фактов (после незначительного редактирования) ввести в пролог-систему, то можно будет компьютеру задавать вопросы следующего вида:
?– С(Глеб, Владимир), т. е. приходится ли Глеб сыном Владимиру;
?– С(Глеб, Игорь), т. е. является ли Глеб сыном Игоря;
?– С(Глеб, x), т. е. чей сын Глеб;
?– С(x, Святослав), т. е. кто был сыном Святослава;
?– С(x, Владимир), т. е. кто был сыном Владимира.
На эти вопросы компьютер выдаст следующие ответы: Да, Нет, x = Владимир, x = Владимир, x = Борис, Глеб, Ярослав соответственно.
Подобного рода вопросно-ответные системы в ближайшее время должны стать столь же популярными, как и современные компьютеры. Для загрузки таких систем необходимыми знаниями пользователю следует сначала определить мир сущностей, с которыми он имеет дело, присвоить им имена, затем определить наиболее важные признаки и отношения между сущностями, записать их в виде совокупности фактов, и, наконец, вводя логические переменные, область изменения которых есть уже описанный мир сущностей, дать определения на языке ПППФ всех остальных признаков и отношений для описанных сущностей. После такого опреде-
61
ления признаков и отношений наша вопросно-ответная система сможет давать ответы на конкретные вопросы.
В частности, если пролог-система загружена фактами (3.16) и определениями (3.15), то ей можно задать и такой вопрос:
? – Б(x, Ярослав), т. е. кто брат Ярослава.
Здесь уже отношение Б задано не перечнем фактов, а с помощью определения ( x1 )( x2 ≠ x1 )( x3 )[С(x1, x3 ) С(x2 , x3 ) Б(x1, x2 )]. Из вопроса следует, что x2 = Ярослав. Тогда из формулы С(x2 , x3 ) , стоящей в левой части импликации данного определения, система может получить новый вопрос: ? −С(Ярослав, x3 ), т. е. чей сын Ярослав. Ответ на последний вопрос дает шестое высказывание из совокупности фактов (3.16): x3 = Владимир, откуда вытекает еще один вопрос:
? −С(x1 ≠ Ярослав, Владимир), т. е. кто сын Владимира кроме Ярослава.
Из четвертого и пятого высказываний системы (3.16) следует, что сыновьями Владимира являются также Борис и Глеб, т. е. x1 = Борис, Глеб. При найденных значениях x1, x2 , x3 левая часть импликации в определении отношения Б истинна, следовательно, и ее правая часть тоже истинна при тех же значениях x1 и x2 . Поэтому пролог-система на вопрос, кто брат Ярослава, выдаст ответ: x1 = Борис, Глеб.
Так, в вопросно-ответных системах работают обычные определения предикатных имен.
Наряду с обычными определениями в языке логики предикатов существуют еще и рекурсивные. Если обычное определение записывается одной ПППФ, то в описании рекурсивного определения их две. Первая формула подобна обычному определению. Особенность второй формулы состоит в том, что в ее импликации определяемый предикат входит как в правую, так и левую ее части.
62
Если левая часть импликации первой ПППФ дает истинное высказывание, то требуемый факт установлен. В противном случае происходит обращение ко второй ПППФ и делается попытка вычислить значение левой части ее импликации. Механизм работы рекурсивного определения разберем на конкретном примере.
Дополним нашу «пролог-программу», представленную предложениями (3.16) и ( 3.15), таким рекурсивным определением отношения «быть прямым потомком» (ПП):
( x |
)( x |
)[С(x , x ) ПП(x , x |
) ] , |
|
|
||||
1 |
2 |
1 |
2 |
1 |
2 |
|
|
(3.17) |
|
( x1 )( x2 )( x3 )[С(x1, x3 ) ПП(x3, x2 ) ПП(x1 |
, x2 )]. |
||||||||
|
|||||||||
|
|
|
|
|
|
|
|
|
|
Здесь верхняя ПППФ говорит о том, что сын является прямым потомком, а нижняя – сын прямого потомка также является прямым потомком.
Пусть такой вопросно-ответной системе задан вопрос:
? −ПП(Всеволод, Святослав), т. е. является ли Всеволод прямым потомком Святослава.
Сначала происходит обращение к верхней ПППФ и вычисляется значение высказывания С(Всеволод, Святослав). Иначе говоря, определяется ответ на вопрос:
? −С(Всеволод, Святослав).
Поскольку данного факта нет в области истинности (3.16) предиката «быть сыном», то этот ответ отрицательный, а потому происходит обращение к нижней ПППФ рекурсивного определения (3.17). При этом появляется новый вопрос:
? – С(Всеволод, x3 ), т. е. чей сын Всеволод,
на который согласно последнему высказыванию из (3.16) будет получен ответ: x3 = Ярослав.
Полученный результат ставит следующий вопрос:
? −ПП(Ярослав, Святослав), т. е. является ли Ярослав прямым потомком Святослава.
63
Таким образом, уже требуется установить новый факт для отношения «быть прямым потомком».
И опять сначала происходит обращение к верхней ПППФ, но т. к. утверждение С(Ярослав, Святослав) ложно (в (3.16) такой факт отсутствует), то происходит переход на нижнюю ПППФ и появляется вопрос:
?– С(Ярослав, x3 ), т. е. чей сын Ярослав,
аответ на него ( x3 = Владимир) дает постановку следующему вопросу:
?−ПП(Владимир, Святослав), т. е. является ли Владимир прямым
потомком Святослава.
Вновь обращаемся к верхней ПППФ и определяем, что высказывание С(Владимир, Святослав) истинно. Следовательно, по данной формуле истинно также и утверждение ПП(Владимир, Святослав), из которого следует истинность выскозывания ПП(Ярослав, Святослав).
Но тогда С(Всеволод, Ярослав) ПП(Ярослав, Святослав) − истин-
ное высказывание, и по нижней ПППФ получаем, что и высказывание ПП(Всеволод, Святослав) также истинно. Поэтому вопросно-ответная система на исходный вопрос выдаст ответ: Да.
Замечание 1. В ходе решения последней задачи были установлены три факта ПП(Владимир, Святослав), ПП(Ярослав, Святослав) и ПП
(Всеволод, Святослав) или три пары из области истинности бинарного отношения «быть прямым потомком». Данные факты в рассмотренной пролог-системе в явном виде отсутствуют. Они были созданы механизмом работы рекурсивного определения (3.17). Этот механизм в данном случае сработал как операция транзитивного замыкания над бинарным отношением «быть сыном».
Замечание 2. Слово рекурсия происходит от лат. recurro – бегу назад. Механизм работы рекурсивного определения сначала формирует последовательность вопросов. Ответ на каждый из таких вопросов зависит от некоторых обстоятельств, из которых «формулируется» последующий во-
64
