Это в лекции 3. |
Язык логики предикатов
Семантика: системы и значения формул на их состояниях
Даже приведенных выше небольших примеров достаточно, чтобы понять, что семантика (т.е. значение, смысл) формул логики предикатов зависит от состояния дел в той предметной области, о которой идет речь в формулах, и от значений их свободных переменных. Для того, чтобы ее определить, нужно уточнить, свойства какой предметной области мы собираемся описывать с помощью формул и как в этой области интерпретируются символы предикатов, функций и констант нашего языка.
Определение 7.4. Алгебраической системой или просто системой1В логической литературе для этого понятия испольльзуются также названия структура и интерпретация . Сигнатуры называется непустое множество A вместе с отображением, которое каждому n -местному предикатному (функциональному) символу из сопоставляет n -местный предикат ( n -местную функцию) на , а каждой константе из - некоторый элемент из A. A называется основным множеством системы. Если множество F имен функций в пусто, то соответствующую систему часто называют моделью.
Определенную таким образом систему будем обозначать как , используя для предикатов и функций системы их имена из сигнатуры
Определим теперь интерпретации свободных переменных.
Определение 7.5. Состоянием (оценкой) системы назывется отображение , которое каждой переменной сопоставляет ее значение в данном состоянии .
Имея систему и состояние, можно говорить о значениях термов и формул на данном состоянии системы. Мы будем считать, что в определениях ниже зафиксирована некоторая система , будем через и обозначать значение терма t и формулы на состоянии системы . И то, и другое определяется индукцией по построению термов и формул соответственно.
Определение 7.6. Значение терма.
- Для переменной уже определено в состоянии
- Если t является константой , то не зависит от и равно значению этой константы при данной интерпретации
- (напомним, в интерпретации каждой константе сопоставлен некоторый элемент основного множества).
- Если t имеет вид f(t1,...,tm), где - символ m - местной функции, а t1,...,tm - термы, то есть , где fA есть функция, соответствующая символу f в системе .
Таким образом, чтобы определить значение терма на состоянии, нужно подставить в него задаваемые этим состоянием значения переменных и вычислить значение получившейся суперпозиции функций на основном множестве системы.
Определение 7.7. Значение атомной формулы.
- Если , где t1 и t2 - термы, то , если , и , если .
- Пусть - 0 -местный предикатный символ из P и PA - это 0 -местный предикат, сопоставленный ему в . Тогда .
-
Пусть , где P(k) - предикатный k -местный символ из P, t1,...,tk - термы, а PA - это k -местный предикат, сопоставленный P(k) в . Тогда
Таким образом, равенство термов на некотором состоянии истинно, если эти термы имеют на этом состоянии одинаковые значения. Для определения истинности предиката от набора термов нужно вычислить их значения на заданном состоянии и проверить, входит ли получившийся набор значений во множество наборов, принадлежащих данному предикату.
Определение 7.8. Значение формулы.
Если - атомная формула, то ее значение определено выше. Значения сложных формул определяются следующим образом.
- Если , то .
- Если имеет одну из форм , или , то значение
- равно значению или , соответственно.
- Если , то , если для , которое может отличаться от только значением переменной x, т.е. такого , что при , иначе .
- Если , то , если существует такое состояние , которое может отличаться от только значением переменной x, для которого , иначе .
Прокомментируем два последних пункта. Для истинности формулы вида (она читается: "для всех x имеет место (выполняется, истинно, справедливо) ") на состоянии нужно убедиться в том, что формула истинна при замене x любым элементом , т.е. на любом состоян ии, получающемся из изменением значения на переменной x: . Для истинности формулы вида (она читается: "существует такое x, что имеет место (выполняется, истинно, справедливо) ") на состоянии достаточно найти такое значение , что при подстановке a вместо x в формулу она будет истинна при неизменившихся значениях остальных свободных переменных.
Из приведенных определений нетрудно вывести, что значение формулы на некотором состоянии зависит лишь от значений ее свободных переменных в этом состоянии.
Предложение 7.1. Пусть - система сигнатуры - формула той же сигнатуры, - множество ее свободных переменных. Тогда для любых двух состояний и , совпадающих на (т.е. таких, что для всякой ), имеет место равенство .
Доказательство получается индукцией по построению формулы Действительно, утверждение, очевидно, справедливо для значений термов и атомных формул. Из предположения о его справедливости для формул и его легко перенести на формулы вида и , где . ( Проведите это рассуждение самостоятельно!). Пусть теперь , где , а . Тогда . Пусть и - состояния, совпадающие на . Рассмотрим множества состояний, отличающихся от них только на x: и . Для каждого состояния в имеется состояние , совпадающее с на . Верно и обратное. Поэтому по предположению индукции в имеется состояние , для которого тогда и только тогда, когда в имеется состояние , для которого . Отсюда и из определения значения формулы следует, что .
Из этого предложения немедленно вытекает
Следствие. Значение замкнутой формулы не зависит от состояния, на котором она оценивается, т.е. либо на всех состояниях системы она истинна, либо на всех состояниях системы эта формула ложна.
Определение 7.9. Формула называется истинной на системе , если для любого состояния этой системы . В этом случае пишем .
Формула называется тождественно истинной (общезначимой), если она истинна на всех алгебраических системах своей сигнатуры. В этом случае пишем . Тождественно истинные формулы называют также законами логики.
Пример 7.4. В качестве примера рассмотрим следующую систему для определенной выше примере 7.2 сигнатуры .
Ее основное множество A1 включает множество натуральных чисел N={0, 1, 2, ... }, для которых истинен предикат число и множество людей { петр, джон, ольга, иван, мария }, для которых истинен предикат человек (мы используем для объектов-людей имена, начинающиеся со строчных букв, чтобы отличить их от имен констант из сигнатуры). Пусть, кроме того, A1 включает специальный объект соответствующий неопределенному (или ошибочному) значению. Константы интерпретируются естественным образом: числовые - соответствующими числами, имена людей - людьми с теми же именами.
x | отец(x) | лучший_друг(x) | зарплата(x) |
---|---|---|---|
петр | иван | джон | 20 |
джон | петр | ольга | 35 |
ольга | джон | петр | 20 |
иван | мария | 40 | |
мария | иван | петр | 30 |
Функция + на числах интерпретируется обычным сложением, а в остальных случаях ее значением является Интерпретации остальных функций заданы в таблице (для числовых аргументов все они равны ). Предикат интерпретируется обычным образом на числах и ложен, если хоть один его аргумент не число ( мы будем для него использовать стандартную форму записи x <= y вместо <=(x,y) ). Остальные предикаты зададим перечислением пар, на которых они истинны:
живут_рядом = { (ольга,петр), (петр, ольга), (иван, джон), (джон, иван), (мария, ольга), (ольга, мария) }
родственники = { (ольга,петр), (петр, ольга), (джон, петр), (петр, джон), (ольга, джон), (джон, ольга), (иван, мария), (мария, иван) }.
Пусть множество переменных Var= {x, y, z, i, n, k, ...} и состояние определяет их значения следующим образом:
Определим значения некоторых термов на
Рассмотрим теперь введенные выше формулы
иЧтобы оценить первую из них на состоянии мы должны проверить ее подформулу на всех состояниях , совпадающих с на всех переменных кроме, быть может, x. Если - число или то , а вся импликация = 1. Если же , т. е , то легко проверить, что для каждого из этих значений x найдется такое значение , для которого выполнено , и что имеет место . Например, если , то в качестве следует взять иван. Таким образом формула будет иметь значение 1 на состоянии , совпадающем с на всех переменных кроме, быть может, y. Следовательно, мы показали, что . Заметим, что так как - замкнутая формула, то на самом деле, мы показали, что она имеет значение 1 на любом состоянии системы , т.е. что .
Для оценки значения нужно постараться найти такого человека , для которого выполняется хотя бы одна из подформул или (напомним, что ). Из определения предиката родственники в следует, что первая из этих формул не выполняется ни для какого . Что касается второй подформулы, то она верна при или , поскольку оба они не являются соседями петр а и имеют зарплату >= 35. Таким образом, .