Логика предикатов (Predicate Logic)
1. Что такое предикат
Предикат — это выражение, которое становится высказыванием, если подставить конкретные значения переменных.
Он как функция: принимает аргументы и возвращает истину (1) или ложь (0).
Пример:
- \(P(x)\): «x — чётное число».
Тогда \(P(2) = \text{истина}\), \(P(3) = \text{ложь}\).
2. Переменные и область определения
Переменная \(x\) — это элемент множества, по которому идёт рассуждение.
Множество, из которого берутся \(x\), называется областью определения (или универсумом).
Пример:
Если \(x\) — натуральные числа, то область определения \(D = \{1,2,3,\dots\}\).
3. Кванторы
Кванторы вводят обобщение или существование, обозначают о скольких объектах идёт речь.
Они говорят: высказывание относится не к одному элементу, а ко многим.
Квантор всеобщности — для всех элементов множества;
квантор существования — что есть хотя бы один элемент, для которого верно утверждение.
Вместе они позволяют описывать любое утверждение с переменными.
| Квантор | Обозначение | Чтение | Пример | Перевод |
|---|---|---|---|---|
| Всеобщности | \(\forall x\) | “для всех x” | \(\forall x \, (x > 0)\) | “все x положительные” |
| Существования | \(\exists x\) | “существует хотя бы один x” | \(\exists x \, (x < 0)\) | “есть хотя бы одно отрицательное x” |
4. Отрицание кванторов
Отрицание кванторов — частый источник ошибок.
Главное правило: при отрицании тип квантора меняется на противоположный, а предикат отрицается.
То есть: «не для всех» превращается в «существует хотя бы один, для кого неверно».
| Формула | Эквивалент | Смысл |
|---|---|---|
| \(\neg (\forall x \, P(x))\) | \(\exists x \, \neg P(x)\) | Не для всех верно → есть хотя бы один, где неверно |
| \(\neg (\exists x \, P(x))\) | \(\forall x \, \neg P(x)\) | Не существует → для всех неверно |
5. Вложенные кванторы
Порядок кванторов играет ключевую роль:
переставишь — поменяется смысл формулы.
Например,
- “каждый любит кого-то” ≠ “существует один, кого любят все”.
Такие различия — суть логики предикатов: она описывает отношения между множествами и объектами.
| Формула | Смысл | Пример |
|---|---|---|
| \(\forall x \exists y \, P(x, y)\) | Для каждого x найдётся свой y | Каждый человек любит кого-то |
| \(\exists y \forall x \, P(x, y)\) | Есть одно y, которое подходит всем | Есть человек, которого любят все |
6. Свободные и связанные переменные
- Свободная переменная — переменная вне квантора.
- Связанная переменная — переменная под квантором.
Пример:
Здесь \(x\) — связанная, \(y\) — свободная.
Формула с свободными переменными — не высказывание (ей нельзя приписать истину/ложь, пока не заданы значения).
Только формулы, где нет свободных переменных, можно считать полноценными высказываниями.
Если в формуле осталась свободная переменная — это просто открытое утверждение, его нельзя оценить как «истину» или «ложь», пока не подставим значения.
7. Интерпретация и истинность формулы
Формула сама по себе — это шаблон.
Она становится высказыванием только при интерпретации, когда мы задаём контекст:
- Область определения (например, числа);
- Смысл предикатов (например, “\(x\) > \(y\)”);
- Значения переменных.
Только тогда можно сказать, истинна ли формула.
Без интерпретации логика предикатов — просто набор символов.
Пример:
Если \(x, y\) — натуральные числа, то формула истинна (всегда можно взять \(y = x+1\)).
8. Формализация предложений
Здесь идёт перевод естественного языка в язык логики.
Это важно, чтобы учиться строго формулировать утверждения и понимать их структуру:
кто “все”, кто “существует”, где “если”, где “тогда”.
Одна и та же фраза по-разному формализуется в зависимости от смысла.
| Фраза | Формула |
|---|---|
| Все люди смертны | \(\forall x (Человек(x) \to Смертен(x))\) |
| Существует человек, который любит всех | \(\exists x \forall y (Любит(x, y))\) |
| Каждый любит кого-то | \(\forall x \exists y (Любит(x, y))\) |
| Никто никого не любит | \(\forall x \forall y \, \neg Любит(x, y)\) |
9. Правила отрицания (логические эквиваленты)
Эти законы позволяют переписывать формулы, сохраняя смысл, но меняя структуру.
Особенно важно уметь правильно заносить отрицание внутрь формулы, когда там кванторы или сложные логические связки.
| Формула | Эквивалент |
|---|---|
| \(\neg (P \wedge Q)\) | \(\neg P \vee \neg Q\) |
| \(\neg (P \vee Q)\) | \(\neg P \wedge \neg Q\) |
| \(\neg (P \to Q)\) | \(P \wedge \neg Q\) |
| \(\neg (\forall x \, P(x))\) | \(\exists x \, \neg P(x)\) |
| \(\neg (\exists x \, P(x))\) | \(\forall x \, \neg P(x)\) |
10. Логические связи и операции
Все сложные высказывания строятся из простых с помощью этих пяти операций.
По сути, это “алгебра логики” — те же правила, что и с числами, но с истиной и ложью вместо 1 и 0.
| Символ | Операция | Пример | Значение |
|---|---|---|---|
| \(\neg P\) | отрицание | “не P” | инверсия |
| \(P \wedge Q\) | конъюнкция | “P и Q” | оба истинны |
| \(P \vee Q\) | дизъюнкция | “P или Q” | хотя бы одно истинно |
| \(P \to Q\) | импликация | “если P, то Q” | ложь, если P истина, Q ложь |
| \(P \leftrightarrow Q\) | эквиваленция | “P тогда и только тогда, когда Q” | оба совпадают |
11. Семантика (смысл логики предикатов)
Семантика — это “смысловая начинка” формулы.
Она отвечает за то, что на самом деле означает логическое выражение при заданных интерпретациях.
Например, одно и то же выражение может быть истинным в одних множествах и ложным в других.
Истинность формулы зависит от:
- множества (области определения);
- значений предикатов;
- конкретных подставленных элементов.
То есть предикаты — это как “функции истины” от элементов множества.
12. Разница между логикой высказываний и предикатов
Логика высказываний — это “плоская” логика: только истина и ложь, без переменных.
Логика предикатов — “объёмная”: в ней есть объекты, свойства, отношения и кванторы.
Первая — частный случай второй.
| Характеристика | Логика высказываний | Логика предикатов |
|---|---|---|
| Минимальная единица | Высказывание (“идёт дождь”) | Утверждение о свойствах объектов |
| Переменные | Нет | Есть |
| Кванторы | Нет | Есть |
| Таблицы истинности | Работают | Не работают напрямую |
| Пример | “A → B” | “∀x (P(x) → Q(x))” |
13. Термины
| Термин | Определение |
|---|---|
| Высказывание | Утверждение, которому можно приписать истину или ложь |
| Предикат | Функция, возвращающая истину/ложь в зависимости от аргументов |
| Квантор | Символ, определяющий, для скольких элементов утверждение верно |
| Импликация | “Если P, то Q” |
| Эквиваленция | “P тогда и только тогда, когда Q” |
| Свободная переменная | Не под квантором |
| Связанная переменная | Под квантором |
| Интерпретация | Задание смысла предикатам и области определения |
| Модель | Интерпретация, в которой формула истинна |
14. Для запоминания
- \(\forall\) — все, без исключений.
- \(\exists\) — хотя бы один.
- Отрицание квантора → меняем тип и ставим отрицание внутрь.
- Порядок кванторов менять нельзя — смысл меняется!
- Формулы с кванторами — не высказывания, пока не задана область.
- Таблицы истинности работают только для чистых высказываний.