Исчисление предикатов — различия между версиями
(→Исчисление предикатов) |
Rybak (обсуждение | вклад) |
||
| Строка 25: | Строка 25: | ||
аксиомы и правила вывода. | аксиомы и правила вывода. | ||
| − | + | === Язык === | |
| + | |||
| + | Добавим к языку исчисления высказываний новые конструкции с предикатами | ||
и получим язык исчисления предикатов. Вот расширенная грамматика: | и получим язык исчисления предикатов. Вот расширенная грамматика: | ||
| Строка 45: | Строка 47: | ||
(c) кванторы: всеобщности (<tex> \forall </tex>) и существования (<tex> \exists </tex>). | (c) кванторы: всеобщности (<tex> \forall </tex>) и существования (<tex> \exists </tex>). | ||
| − | + | === Аксиомы === | |
| + | |||
| + | |||
| + | {{Определение | ||
| + | |definition= | ||
| + | Дана некоторая формула <tex>s</tex>. | ||
| + | Будем говорить, что подстрока <tex>s_1</tex> строки <tex>s</tex> является подформулой, | ||
| + | если она в точности соответствует какому-то одному нетерминалу | ||
| + | в дереве разбора строки <tex>s</tex>. | ||
| + | }} | ||
| + | |||
| + | {{Определение | ||
| + | |definition= | ||
| + | Если в формулу входит подформула, полученная по правилам | ||
| + | для кванторов (то есть, <tex>\forall x \alpha</tex> или <tex>\exists x \alpha</tex>), то | ||
| + | мы будем говорить, что формула <tex>\alpha</tex> находится в области действия | ||
| + | данного квантора по переменной <tex>x</tex>. Также, будем говорить, что любая подформула | ||
| + | формулы <tex>\alpha</tex> находится в области действия данного квантора. | ||
| + | }} | ||
| + | <!-- | ||
| + | \begin{definition}Если некоторое вхождение переменной $x$ находится | ||
| + | в области действия квантора по переменной $x$, то такое вхождение | ||
| + | мы назовем \emph{связанным}. Вхождение переменной $x$ непосредственно рядом | ||
| + | с квантором ($\forall x \dots$) мы назовем \emph{связывающим}. | ||
| + | Те вхождения переменных, которые не являются связанными | ||
| + | или связывающими, назовем \emph{свободными}. Формула, не имеющая | ||
| + | свободных вхождений переменных, называется \emph{замкнутой}. | ||
| + | \end{definition} | ||
| + | |||
| + | \begin{definition}Будем говорить, что переменная $y$ свободна для $x$ | ||
| + | при подстановке в формулу $\psi$ (или просто свободна для подстановки | ||
| + | вместо $x$), если после подстановки $y$ вместо свободных вхождений $x$ | ||
| + | ни одно ее вхождение не станет связанным. | ||
| + | \end{definition} | ||
| + | |||
| + | --> | ||
{{Определение | {{Определение | ||
|definition= | |definition= | ||
Версия 13:01, 14 января 2012
Исчисление предикатов
Выберем множество истинностных значений . Также, выберем некоторое предметное множество . n-местным предикатом мы назовем функцию из в . Как и раньше, мы ограничимся классическим множеством -- истина и ложь, но оставляем потенциальную возможность его расширить.
Предикаты могут быть 0-местными, в этом случае это хорошо нам известные пропозициональные переменные, принимающие какие-то истинностные значения, в происхождение которых мы не вникаем.
Рассмотрим следующий известный пример: каждый человек смертен, Сократ - человек, следовательно, Сократ - смертен. Мы можем формализовать это выражение с помощью предикатов: множество - это будет множество всех существ, - предикат "быть смертным", - предикат "быть человеком". Тогда фраза в полу-формальном виде выглядит так: Для каждого , такого, что верно , поэтому поскольку (Сократ), значит, что имеет место (Сократ).
Чтобы построить новое исчисление, нам требуется указать 3 компонента: язык, аксиомы и правила вывода.
Язык
Добавим к языку исчисления высказываний новые конструкции с предикатами и получим язык исчисления предикатов. Вот расширенная грамматика:
- <выражение> ::= <импликация>
- <импликация> ::= <дизъюнкция> | <дизъюнкция> <импликация>
- <дизъюнкция> ::= <конъюнкция> | <дизъюнкция> <конъюнкция>
- <конъюнкция> ::= <терм> | <конъюнкция> & <терм>
- <терм>::= <предикат> | <предикат> (<аргументы>) | <переменная><терм> | <переменная><терм>
- <аргументы> ::= <переменная>
- <аргументы> ::= <переменная>,<аргументы>
Добавились 3 новых сущности:
(a) индивидные переменные --- мы будем записывать их маленькими латинскими буквами из начала алфавита
(b) предикаты (они обобщили пропозициональные переменные)
(c) кванторы: всеобщности () и существования ().
Аксиомы
| Определение: |
| Дана некоторая формула .
Будем говорить, что подстрока строки является подформулой, если она в точности соответствует какому-то одному нетерминалу в дереве разбора строки . |
| Определение: |
| Если в формулу входит подформула, полученная по правилам
для кванторов (то есть, или ), то мы будем говорить, что формула находится в области действия данного квантора по переменной . Также, будем говорить, что любая подформула формулы находится в области действия данного квантора. |
| Определение: |
| Будем говорить, что переменная свободна для при подстановке в формулу (или просто свободна для подстановки вместо ), если после подстановки ни одно ее вхождение не станет связанным. |
Чтобы получить список аксиом для исчисления предикатов, возьмем все схемы
аксиом исчисления высказываний и дополним их следующими двумя схемами.
Здесь - переменная, - некоторая формула, - некоторая переменная.
Запись будет означать результат подстановки в вместо
всех свободных вхождений . Пусть свободно для подстановки вместо .
(11)
(12)
Заметим, что если взять формулу , то по схеме аксиом (11), если игнорировать ограничение на свободу для подстановки, следующее утверждение должно быть тавтологией: . Однако, оно ей не является.
Все аксиомы, порожденные данными схемами в новом языке, мы назовем аксиомами исчисления предикатов.
3. Правила вывода.
Пусть не входит свободно в . Тогда рассмотрим следующие дополнительные правила вывода исчисления предикатов:
Добавив эти схемы к схеме для правила Modus ponens исчисления высказываний, мы сможем породить множество правил вывода.
Комментарии:
"Не входит свободно" - это также важный вопрос. Рассмотрим формулу . Легко показать, что такая формула общезначима и доказуема. Однако, не является общезначимой, если общезначима: достаточно взять в качестве оценки свободной переменной то значение, на котором ложна. Вывод из гипотез также вполне можно расширить на исчисление предикатов.
| Определение: |
| Формальная система, составленная из указанного языка, множества аксиом и множества правил вывода, называется исчислением предикатов. |
Для задания оценки для выражения в исчислении предикатов необходимо
вместо оценки для переменных в исчислении высказываний ввести
оценку для предикатов: для каждого -местного предиката определить
функцию .
| Определение: |
| Формула в исчислении предикатов общезначима, если она
истинна на любом предметном множестве , при любой оценке предикатов, и при любых оценках свободных индивидных переменных. |
| Определение: |
| Пусть имеется некоторое исчисление предикатов с множеством аксиом $A$, и пусть дан некоторый (возможно, пустой) список замкнутых формул исчисления предикатов. Тогда, вывод формулы в исчислении с аксиомами мы назовем выводом из допущений , и будем записывать это как . |
Обратите внимание на требование отсутствия свободных переменных в допущениях.
| Теорема: |
Исчисление предикатов корректно, т.е. любое доказуемое утверждение общезначимо. |
| Доказательство: |
| Упражнение. |
| Теорема: |
Теорема о дедукции. Если , то |
| Доказательство: |
|
Доказательство разбором случаев. 3 старых случая те же, добавилось 2 новых правила вывода. Упражнение. |
| Теорема: |
Исчисление предикатов полно. |
| Доказательство: |
| Без доказательства. |