Это в лекции 3. |
Язык логики предикатов
Утверждения о свойствах объектов и отношениях между ними
Утверждения, которые можно сформулировать с помощью средств логики высказываний (пропозициональной логики) всегда относятся к конкретным свойствам конкретных предметов, объектов, ситуаций. Мы уже сталкивались с примерами таких утверждений: "Сегодня идет дождь", "Вася любит Олю", "Если А - преступник, то В - не виновен", "Если цена на нефть растет и страна продает нефть, то растут и доходы ее бюджета" и т.п. Эти утверждения строятся из элементарных высказываний (пропозициональных переменных) с помощью логических связок (операций). Например, последнее из приведенных утверждений может быть формально записано как , где X, Y и Z - это переменные, обозначющие, соответственно, высказывания " цена на нефть растет", "страна продает нефть" и "растут и доходы бюджета".
Для того, чтобы высказывать более общие точные утверждения о свойствах классов (множеств) объектов, предметов, ситуаций и т.п., нужен более богатый формальный язык. Им является язык логики предикатов (логики 1-ой ступени).
Прежде, чем переходить к формальным определениям, приведем некоторые содержательные примеры используемых понятий: объектов, свойств, отношений и операций (функций).
Объекты: люди, предприятия, числа, цвета, футбольные матчи, экзамены, дома, столы, компьютеры, фигуры, студенты, ...
Свойства: зеленый, тяжелый, голубоглазый, победный, девятиэтажный, деревянный, отличник, ...
Отношения: ... является братом ..., ... занимает должность ... с зарплатой ..., ... больше чем ..., ... находится внутри ..., ... любит ..., ... имеет цвет ..., ... случится после ..., ... владеет ..., и т.п.
Функции: отец ..., лучший_ друг ..., вдвое_больший_ чем ..., сумма ... и ..., группа_студента ..., самый_любимый_кинофильм ..., ...
В примерах отношений и функций многоточиями отмечены места, где должны стоять объекты, к которым они относятся.
Даже этих небольших перечислений достаточно, чтобы понять, что язык логики предикатов позволяет описать почти любой факт и сформулировать нужное утверждение о той или иной рассматриваемой предметной области. Вот несколько простых примеров:
" Два умножить на три равно шесть"
Здесь объекты: два, три и шесть; функция: умножить, отношение: равно.
"Все бармаглоты живут в зеленых домах"
Объекты: бармаглоты, дома; свойство: зеленый; отношение: жить_в.
"Некоторые предприятия в Твери являются банкротами"
Объекты: Тверь, предприятия; свойство: банкрот; отношение: "быть" ("являться").
С формализацией этих понятий мы уже знакомы: объекты - это множества; свойства - подмножества; а отношения и функции имеют обычный математический смысл.
Напомним некоторые определения из "лекции 1" . Декартовым (прямым) произведением множеств A1, ... , An называется множество последовательностей длины n ( n -ок)
Если A1= ... =An=A, то A1 \times ... An называется декартовой (прямой) степенью множества A и обозначается через An. Пусть A0 - это множество, состоящее из одной пустой последовательности длины 0.
n -местным (или n -арным) отношением на множествах A1,... , An называется любое подмножество . Поэтому понятие свойства (подмножества) совпадает с понятием одноместного отношения. Отношение называется n -местной (или n -арной) функцией из A1 x ... x An в B, если оно для каждого набора аргументов , содержит не более одного набора вида <a1,..., an, b>. В этом случае пишем f(a1, ..., an) =b.
С каждым отношением можно связать его характеристическую функцию, которую мы будем обозначать той же буквой,
Как обычно, будем ассоциировать 1 с логическим значением "истина", а 0 - со значением "ложь". Такие характеристические функции отношений будем называть n -местными предикатами (используются также термины: предикат размерности n, n -арный предикат, предикат валентности n ) и говорить об их истинности или ложности на соответствующих наборах аргументов. Таким образом, предикат - это отображение, сопоставляющее каждому набору своих аргументов одно из логических значений: 1 или 0. Если потребуется, размерность предиката будет указываться соответствующим индексом вверху: P(n) будет означать, что у предиката P имеется n аргументов.
Мы будем рассматривать также функции и предикаты размерности нуль. Множество A0 одноэлементно (содержит единственную последовательность длины 0 ). Поэтому функции из A0 в A отождествляются с элементами множества A. Такие функции называются константными или просто константами. Предикатов размерности нуль ровно два: 1 (истина) и 0 (ложь).
Вообще говоря, типы объектов-аргументов предиката, т.е. типы множеств A1, ... , An, могут быть различными. Например, у предиката выпускает(Предприятие, Товар), определяющего связь между предприятиями и выпускаемыми ими товарами, первым аргументом является название предприятия, а вторым - одного из выпускаемых им товаров. Но далее для простоты мы будем рассматривать только предикаты и функции, все аргументы которых принадлежат одному множеству объектов A. Это ограничение не очень существенно. Можно выделять в A объекты нужных типов с помощью свойств - одноместных предикатов. В нашем случае выражение выпускает(X,Y) можно уточнить, введя предикаты предприятие(1) и товар(1) и записав конъюнкцию:
.