Исчисление предикатов — различия между версиями
Gromak (обсуждение | вклад) м |
Ateuhh (обсуждение | вклад) |
||
| Строка 171: | Строка 171: | ||
Исчисление предикатов полно. | Исчисление предикатов полно. | ||
|proof=Без доказательства. | |proof=Без доказательства. | ||
| + | }} | ||
| + | ===Интерпретация булевых формул с кванторами как игр для двух игроков=== | ||
| + | |||
| + | '''Примечание:''' данного материала не будет на экзамене. Это перенесенный конспект из "Теории формальных языков". | ||
| + | |||
| + | Во многих теоремах присутствуют утверждения с кванторами «для всех» и «существует». От того, в каком порядке кванторы входят в утверждение, зависит его смысл. Часто оказывается полезным представлять утверждения с кванторами как «игру», в которой участвуют два игрока — «для всех» и «существует». Есть утверждение <tex>\exists x_1 \forall x_2 \exists x_3 \dots Q x_n \Psi(x_1,\dots ,x_n)</tex>. Игроки поочередно выбирают значения параметров. Каждый игрок выбирает значение в зависимости от предыдущих ходов. Цель игрока «существует» делать такие ходы, чтобы утверждение <tex>\exists x_1 \forall x_2 \exists x_3 \dots Q x_n \Psi(x_1,\dots ,x_n)</tex> получилось истинным. А цель игрока «для всех» делать такие ходы, чтобы итоговое выражение получилась ложным. | ||
| + | |||
| + | {{Теорема | ||
| + | |statement= | ||
| + | Дано утверждение: <tex>P_1 = P_1(Q_1, \ldots, Q_n, \Psi(x_1,\dots ,x_n)) = Q_1 x_1 Q_2 x_2 \ldots Q_n x_n \Psi(x_1,\dots ,x_n)</tex>, где <tex>\{Q_i\}_{i=1}^{n} </tex> является чередующейся последовательностью кванторов <tex>\forall</tex> и <tex>\exists</tex>. | ||
| + | # Если утверждение <tex>P_1</tex> истинно, то у игрока «существует» есть набор ходов, используя который, он может победить. | ||
| + | # Если же утверждение <tex>P_1</tex> ложно, то у игрока «для всех» есть набор ходов, используя который, он может победить. | ||
| + | |proof= | ||
| + | # Выражение <tex>P</tex> истинно. Провернём доказательство по индукции. | ||
| + | #* '''База:''' в <tex>P_1</tex> один квантор. | ||
| + | #*: Если единственный квантор {{---}} «любой», то какой бы параметр не поставил игрок «для всех» утверждение будет истинно по условию теоремы. | ||
| + | #*: Если единственный квантор {{---}} «существует», то, по условию, есть такой параметр, что утверждение будет истинно. Его и подставит игрок «существует», после чего сразу победит. | ||
| + | #* '''Переход:''' теорема верна, когда утверждение <tex>P_1</tex> содержит не более <tex>n-1</tex> квантора, докажем, что она верна и для утверждений, содержащих <tex>n</tex> кванторов. | ||
| + | #*: Пусть первый квантор «существует», тогда <tex>P_1 = \exists x_1 P_2</tex>, где <tex>P_2 = P_2(Q_2, \ldots, Q_n, \Psi(x_1,\dots ,x_n)_{x_1=const})</tex>. По условию теоремы найдётся такой параметр <tex>x_1 = x_{1_0}</tex>, что <tex>P_1</tex> истинно. Но выражение <tex>P_2</tex> истинно и содержит <tex>n-1</tex> квантор, значит, для <tex>P_2</tex> есть набор ходов игрока «существует», при котором он выигрывает. С выбранным <tex>x_1 = x_{1_0}</tex> и полученным набором ходов мы получаем выигрышную стратегию. | ||
| + | #*: Пусть теперь первый квантор «для всех», тогда <tex>P_1 = \forall x_1 \exists x_2 P_3</tex>, где <tex>P_3 = P_3(Q_3, \ldots, Q_n, \Psi(x_1, x_2, \dots ,x_n)_{x_1=const, x_2=const})</tex>. По условию теоремы для любого параметра <tex>x_1</tex> найдётся такой параметр <tex>x_2 = x_{2_0}</tex>, что <tex>P_1</tex> истинно. Но утверждение <tex>P_3</tex> истинно и содержит <tex>n-2</tex> квантора, значит, для <tex>P_3</tex> есть набор ходов игрока «существует», при котором он выигрывает. С выбранным <tex>x_2 = x_{2_0}</tex> и полученным набором ходов мы получим выигрышную стратегию. | ||
| + | # Доказательство существования выигрышной стратегии игрока «для всех» при ложном выражении <tex>\Psi</tex> аналогично. | ||
}} | }} | ||
Версия 16:02, 15 ноября 2016
Содержание
Исчисление предикатов
Выберем множество истинностных значений . Также, выберем некоторое предметное множество . n-местным предикатом мы назовем функцию из в . Как и раньше, мы ограничимся классическим множеством -- истина и ложь, но оставляем потенциальную возможность его расширить.
Предикаты могут быть 0-местными, в этом случае это хорошо нам известные пропозициональные переменные, принимающие какие-то истинностные значения, в происхождение которых мы не вникаем.
Рассмотрим следующий известный пример: каждый человек смертен, Сократ - человек, следовательно, Сократ - смертен. Мы можем формализовать это выражение с помощью предикатов: множество - это будет множество всех существ, - предикат "быть смертным", - предикат "быть человеком". Тогда фраза в полу-формальном виде выглядит так: Для каждого , такого, что верно , поэтому поскольку (Сократ), значит, что имеет место (Сократ).
Чтобы построить новое исчисление, нам требуется указать 3 компонента: язык, аксиомы и правила вывода.
Язык
Добавим к языку исчисления высказываний новые конструкции с предикатами и получим язык исчисления предикатов. Вот расширенная грамматика:
- <выражение> ::= <импликация>
- <импликация> ::= <дизъюнкция> | <дизъюнкция> <импликация>
- <дизъюнкция> ::= <конъюнкция> | <дизъюнкция> <конъюнкция>
- <конъюнкция> ::= <терм> | <конъюнкция> & <терм>
- <терм>::= <предикат> | <предикат> (<аргументы>) | <переменная><терм> | <переменная><терм>
- <аргументы> ::= <переменная>
- <аргументы> ::= <переменная>,<аргументы>
Добавились 3 новых сущности:
(a) индивидные переменные --- мы будем записывать их маленькими латинскими буквами из начала алфавита
(b) предикаты (они обобщили пропозициональные переменные)
(c) кванторы: всеобщности () и существования ().
Аксиомы
| Определение: |
| Дана некоторая формула . Будем говорить, что подстрока строки является подформулой, если она в точности соответствует какому-то одному нетерминалу в дереве разбора строки . |
| Определение: |
| Если в формулу входит подформула, полученная по правилам для кванторов (то есть, или ), то мы будем говорить, что формула находится в области действия данного квантора по переменной . Также, будем говорить, что любая подформула формулы находится в области действия данного квантора. |
| Определение: |
| Если некоторое вхождение переменной находится в области действия квантора по переменной , то такое вхождение мы назовем связанным. Вхождение переменной непосредственно рядом с квантором () мы назовем связывающим. Те вхождения переменных, которые не являются связанными или связывающими, назовем свободными. Формула, не имеющая свободных вхождений переменных, называется замкнутой. |
| Определение: |
| Будем говорить, что переменная свободна для при подстановке в формулу (или просто свободна для подстановки вместо ), если после подстановки вместо свободных вхождений ни одно ее вхождение не станет связанным. |
Чтобы получить список аксиом для исчисления предикатов, возьмем все схемы аксиом исчисления высказываний и дополним их следующими двумя схемами.
Здесь — переменная, — некоторая формула, — некоторая переменная.
Запись будет означать результат подстановки в вместо всех свободных вхождений . Пусть свободно для подстановки вместо .
(11)
(12)
Заметим, что если взять формулу , то по схеме аксиом (11), если игнорировать ограничение на свободу для подстановки, следующее утверждение должно быть тавтологией: . Однако, оно ей не является.
Пример, когда нарушение свободы для подстановки приводит к противоречию:
Такой предикат , очевидно, существует (если в предметном множестве больше одного элемента). Тогда
Противоречие, следовательно, должен быть свободен для подстановки вместо .
Все аксиомы, порожденные данными схемами в новом языке, мы назовем аксиомами исчисления предикатов.
Правила вывода
Пусть не входит свободно в . Тогда рассмотрим следующие дополнительные правила вывода исчисления предикатов:
Добавив эти схемы к схеме для правила Modus ponens исчисления высказываний, мы сможем породить множество правил вывода.
Комментарии:
"Не входит свободно" - это также важный вопрос.
Рассмотрим формулу . Легко показать, что такая
формула общезначима и доказуема. Однако,
не является общезначимой, если не общезначима: достаточно взять в качестве
оценки свободной переменной то значение, на котором ложна.
Вывод из гипотез также вполне можно расширить на исчисление предикатов.
Итог
| Определение: |
| Формальная система, составленная из указанного языка, множества аксиом и множества правил вывода, называется исчислением предикатов. |
Для задания оценки для выражения в исчислении предикатов необходимо
вместо оценки для переменных в исчислении высказываний ввести
оценку для предикатов: для каждого -местного предиката определить
функцию .
| Определение: |
| Формула в исчислении предикатов общезначима, если она истинна на любом предметном множестве , при любой оценке предикатов, и при любых оценках свободных индивидных переменных. |
| Определение: |
| Пусть имеется некоторое исчисление предикатов с множеством аксиом , и пусть дан некоторый (возможно, пустой) список замкнутых формул исчисления предикатов. Тогда, вывод формулы в исчислении с аксиомами мы назовем выводом из допущений , и будем записывать это как . |
Обратите внимание на требование отсутствия свободных переменных в допущениях.
| Теорема: |
Исчисление предикатов корректно, т.е. любое доказуемое утверждение общезначимо. |
| Доказательство: |
| Упражнение. |
| Теорема: |
Теорема о дедукции. Если , то |
| Доказательство: |
|
Доказательство разбором случаев. 3 старых случая те же, добавилось 2 новых правила вывода. Упражнение. |
| Теорема: |
Исчисление предикатов полно. |
| Доказательство: |
| Без доказательства. |
Интерпретация булевых формул с кванторами как игр для двух игроков
Примечание: данного материала не будет на экзамене. Это перенесенный конспект из "Теории формальных языков".
Во многих теоремах присутствуют утверждения с кванторами «для всех» и «существует». От того, в каком порядке кванторы входят в утверждение, зависит его смысл. Часто оказывается полезным представлять утверждения с кванторами как «игру», в которой участвуют два игрока — «для всех» и «существует». Есть утверждение . Игроки поочередно выбирают значения параметров. Каждый игрок выбирает значение в зависимости от предыдущих ходов. Цель игрока «существует» делать такие ходы, чтобы утверждение получилось истинным. А цель игрока «для всех» делать такие ходы, чтобы итоговое выражение получилась ложным.
| Теорема: |
Дано утверждение: , где является чередующейся последовательностью кванторов и .
|
| Доказательство: |
|