Исчисление предикатов — различия между версиями
| Строка 23: | Строка 23: | ||
аксиомы и правила вывода. | аксиомы и правила вывода. | ||
| − | + | 1. Язык. Добавим к языку исчисления высказываний новые конструкции с предикатами | |
и получим язык исчисления предикатов. Вот расширенная грамматика: | и получим язык исчисления предикатов. Вот расширенная грамматика: | ||
| − | *<выражение> | + | *<выражение> ::= <импликация> |
| − | *<импликация> | + | *<импликация> ::= <дизъюнкция> | <дизъюнкция> <tex> \rightarrow </tex> <импликация> |
| − | *<дизъюнкция> | + | *<дизъюнкция> ::= <конъюнкция> | <дизъюнкция> <tex> \vee </tex> <конъюнкция> |
| − | *<конъюнкция> | + | *<конъюнкция> ::= <терм> | <конъюнкция> & <терм> |
| − | + | *<терм>::= <предикат> | <предикат> (<аргументы>) | <tex>\exists </tex> <переменная><терм> | <tex>\forall </tex> <переменная><терм> | |
| − | + | *<аргументы> ::= <переменная> | |
| − | + | *<аргументы> ::= <переменная>,<аргументы> | |
| − | + | ||
| − | |||
Добавились 3 новых сущности: | Добавились 3 новых сущности: | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | (a) ''индивидные'' переменные --- мы будем записывать их маленькими латинскими буквами из начала алфавита | |
| − | + | ||
| − | при подстановке в формулу | + | (b) предикаты (они обобщили пропозициональные переменные) |
| − | вместо | + | |
| − | + | (c) кванторы: всеобщности (<tex> \forall </tex>) и существования (<tex> \exists </tex>). | |
| + | |||
| + | 2. Аксиомы. | ||
| + | {{Определение | ||
| + | |definition= | ||
| + | Будем говорить, что переменная <tex>y </tex> свободна для <tex>x</tex> при подстановке в формулу <tex>\psi</tex> (или просто свободна для подстановки вместо <tex>x</tex>), если после подстановки ни одно ее вхождение не станет связанным. | ||
| + | }} | ||
Чтобы получить список аксиом для исчисления предикатов, возьмем все схемы | Чтобы получить список аксиом для исчисления предикатов, возьмем все схемы | ||
аксиом исчисления высказываний и дополним их следующими двумя схемами. | аксиом исчисления высказываний и дополним их следующими двумя схемами. | ||
| − | Здесь | + | Здесь <tex>x</tex> - переменная, <tex>\psi</tex> - некоторая формула, <tex>y</tex> - некоторая переменная. |
| − | Запись | + | Запись <tex>\psi[x := y]</tex> будет означать результат подстановки <tex>y</tex> в <tex>\psi</tex> вместо |
| − | всех свободных вхождений | + | всех свободных вхождений <tex>x</tex>. Пусть <tex>y</tex> свободно для подстановки вместо <tex>x</tex>. |
| + | |||
| + | |||
| + | (11) <tex>\forall{x}(\psi) \rightarrow (\psi[x := \alpha]) </tex> | ||
| − | + | (12) <tex>(\psi[x := \alpha]) \rightarrow \exists{x}(\psi) </tex> | |
| − | |||
| − | (12) | ||
| − | |||
| − | Заметим, что если взять формулу | + | Заметим, что если взять формулу <tex>\exists x A(x,y)</tex>, то по схеме аксиом (11), |
| − | если игнорировать ограничение на свободу для подстановки, | + | если игнорировать ограничение на свободу для подстановки, следующее утверждение должно быть тавтологией: |
| − | следующее утверждение должно быть | + | <tex> \forall y \exists x A(x,y) \rightarrow \exists x A (x,x) </tex>. Однако, оно ей не является. |
| − | |||
Все аксиомы, порожденные данными схемами в новом языке, мы назовем аксиомами исчисления | Все аксиомы, порожденные данными схемами в новом языке, мы назовем аксиомами исчисления | ||
предикатов. | предикатов. | ||
| − | + | 3. Правила вывода. | |
| − | Пусть | + | Пусть <tex>x</tex> не входит свободно в <tex>\phi</tex>. Тогда рассмотрим следующие дополнительные |
правила вывода исчисления предикатов: | правила вывода исчисления предикатов: | ||
| − | + | ||
| − | + | <tex> \frac {(\phi) \rightarrow (\psi)} {(\phi) \rightarrow \forall{x}(\psi)}</tex> | |
| − | + | <tex> \frac {(\psi) \rightarrow (\phi)} {\exists{x}(\psi) \rightarrow (\phi)}</tex> | |
| − | |||
Добавив эти схемы к схеме для правила Modus ponens исчисления высказываний, | Добавив эти схемы к схеме для правила Modus ponens исчисления высказываний, | ||
мы сможем породить множество правил вывода. | мы сможем породить множество правил вывода. | ||
| − | |||
%<<Не входит свободно>> - это также важный вопрос. | %<<Не входит свободно>> - это также важный вопрос. | ||
| Строка 90: | Строка 87: | ||
%Вывод из гипотез также вполне можно расширить на исчисление предикатов. | %Вывод из гипотез также вполне можно расширить на исчисление предикатов. | ||
| − | + | {{Определение | |
| + | |definition= | ||
Формальная система, составленная из указанного языка, множества аксиом и множества | Формальная система, составленная из указанного языка, множества аксиом и множества | ||
правил вывода, называется исчислением предикатов. | правил вывода, называется исчислением предикатов. | ||
| − | + | }} | |
Для задания оценки для выражения в исчислении предикатов необходимо | Для задания оценки для выражения в исчислении предикатов необходимо | ||
| − | вместо оценки для переменных | + | вместо оценки для переменных <tex>f_P</tex> в исчислении высказываний ввести |
| − | оценку для предикатов: для каждого | + | оценку для предикатов: для каждого <tex>k</tex>-местного предиката <tex>P^k_n</tex> определить |
| − | функцию | + | функцию <tex>f_{P^k_n}: D^k \rightarrow V</tex>. |
| − | + | {{Определение | |
| − | истинна на любом предметном множестве | + | |definition= |
| + | Формула в исчислении предикатов общезначима, если она | ||
| + | истинна на любом предметном множестве <tex>D</tex>, | ||
при любой оценке предикатов, и при любых оценках свободных индивидных | при любой оценке предикатов, и при любых оценках свободных индивидных | ||
переменных. | переменных. | ||
| − | + | }} | |
| + | |||
| + | {{Определение | ||
| + | |definition= | ||
| + | Пусть имеется некоторое исчисление предикатов с множеством | ||
| + | аксиом $A$, и пусть дан некоторый (возможно, пустой) список <tex>\Gamma</tex> ''замкнутых'' формул исчисления предикатов. Тогда, вывод формулы <tex>\alpha</tex> в исчислении с аксиомами <tex>A \cup \Gamma</tex> мы назовем выводом из допущений <tex>\Gamma </tex>, и будем записывать это как <tex>\Gamma \vdash \alpha </tex>. | ||
| + | }} | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
Обратите внимание на требование отсутствия свободных переменных в допущениях. | Обратите внимание на требование отсутствия свободных переменных в допущениях. | ||
| − | + | {{Теорема | |
| + | |statement= | ||
Исчисление предикатов корректно, т.е. любое доказуемое утверждение общезначимо. | Исчисление предикатов корректно, т.е. любое доказуемое утверждение общезначимо. | ||
| − | + | |proof= Упражнение. | |
| + | }} | ||
| − | |||
| − | + | {{Теорема | |
| + | |statement= | ||
Теорема о дедукции. Если <tex>A \vdash B</tex>, то <tex> \vdash A \rightarrow B </tex> | Теорема о дедукции. Если <tex>A \vdash B</tex>, то <tex> \vdash A \rightarrow B </tex> | ||
| − | + | |proof= | |
| − | |||
| − | |||
Доказательство разбором случаев. 3 старых случая те же, добавилось | Доказательство разбором случаев. 3 старых случая те же, добавилось | ||
| − | 2 новых правила вывода. Упражнение. | + | 2 новых правила вывода. |
| − | + | Упражнение. | |
| + | }} | ||
| − | + | {{Теорема | |
| + | |statement= | ||
Исчисление предикатов полно. | Исчисление предикатов полно. | ||
| − | + | |proof=Без доказательства. | |
| − | Без доказательства. | + | }} |
| − | |||
[[Лекция 3 | <<]][[Лекция 5 | >>]] | [[Лекция 3 | <<]][[Лекция 5 | >>]] | ||
Версия 09:24, 13 января 2012
Исчисление предикатов
Выберем множество истинностных значений . Также, выберем некоторое предметное множество . n-местным предикатом мы назовем функцию из в . Как и раньше, мы ограничимся классическим множеством -- истина и ложь, но оставляем потенциальную возможность его расширить.
Предикаты могут быть 0-местными, в этом случае это хорошо нам известные пропозициональные переменные, принимающие какие-то истинностные значения, в происхождение которых мы не вникаем.
Рассмотрим следующий известный пример: каждый человек смертен, Сократ - человек, следовательно, Сократ - смертен. Мы можем формализовать это выражение с помощью предикатов: множество - это будет множество всех существ, - предикат "быть смертным", - предикат "быть человеком". Тогда фраза в полу-формальном виде выглядит так: Для каждого , такого, что верно , поэтому поскольку (Сократ), значит, что имеет место (Сократ).
Чтобы построить новое исчисление, нам требуется указать 3 компонента: язык, аксиомы и правила вывода.
1. Язык. Добавим к языку исчисления высказываний новые конструкции с предикатами и получим язык исчисления предикатов. Вот расширенная грамматика:
- <выражение> ::= <импликация>
- <импликация> ::= <дизъюнкция> | <дизъюнкция> <импликация>
- <дизъюнкция> ::= <конъюнкция> | <дизъюнкция> <конъюнкция>
- <конъюнкция> ::= <терм> | <конъюнкция> & <терм>
- <терм>::= <предикат> | <предикат> (<аргументы>) | <переменная><терм> | <переменная><терм>
- <аргументы> ::= <переменная>
- <аргументы> ::= <переменная>,<аргументы>
Добавились 3 новых сущности:
(a) индивидные переменные --- мы будем записывать их маленькими латинскими буквами из начала алфавита
(b) предикаты (они обобщили пропозициональные переменные)
(c) кванторы: всеобщности () и существования ().
2. Аксиомы.
| Определение: |
| Будем говорить, что переменная свободна для при подстановке в формулу (или просто свободна для подстановки вместо ), если после подстановки ни одно ее вхождение не станет связанным. |
Чтобы получить список аксиом для исчисления предикатов, возьмем все схемы
аксиом исчисления высказываний и дополним их следующими двумя схемами.
Здесь - переменная, - некоторая формула, - некоторая переменная.
Запись будет означать результат подстановки в вместо
всех свободных вхождений . Пусть свободно для подстановки вместо .
(11)
(12)
Заметим, что если взять формулу , то по схеме аксиом (11), если игнорировать ограничение на свободу для подстановки, следующее утверждение должно быть тавтологией: . Однако, оно ей не является.
Все аксиомы, порожденные данными схемами в новом языке, мы назовем аксиомами исчисления предикатов.
3. Правила вывода.
Пусть не входит свободно в . Тогда рассмотрим следующие дополнительные правила вывода исчисления предикатов:
Добавив эти схемы к схеме для правила Modus ponens исчисления высказываний, мы сможем породить множество правил вывода.
%<<Не входит свободно>> - это также важный вопрос.
%Рассмотрим формулу $A(x) \rightarrow A(x)$. Легко показать, что такая
%формула общезначима и доказуема. Однако, $(\exists{x}A(x)) \rightarrow A(x)$
%не является общезначимой, если $A(x)$ не общезначима: достаточно взять в качестве
%оценки свободной переменной $x$ то значение, на котором $A(x)$ ложна.
%Вывод из гипотез также вполне можно расширить на исчисление предикатов.
| Определение: |
| Формальная система, составленная из указанного языка, множества аксиом и множества правил вывода, называется исчислением предикатов. |
Для задания оценки для выражения в исчислении предикатов необходимо
вместо оценки для переменных в исчислении высказываний ввести
оценку для предикатов: для каждого -местного предиката определить
функцию .
| Определение: |
| Формула в исчислении предикатов общезначима, если она
истинна на любом предметном множестве , при любой оценке предикатов, и при любых оценках свободных индивидных переменных. |
| Определение: |
| Пусть имеется некоторое исчисление предикатов с множеством аксиом $A$, и пусть дан некоторый (возможно, пустой) список замкнутых формул исчисления предикатов. Тогда, вывод формулы в исчислении с аксиомами мы назовем выводом из допущений , и будем записывать это как . |
Обратите внимание на требование отсутствия свободных переменных в допущениях.
| Теорема: |
Исчисление предикатов корректно, т.е. любое доказуемое утверждение общезначимо. |
| Доказательство: |
| Упражнение. |
| Теорема: |
Теорема о дедукции. Если , то |
| Доказательство: |
|
Доказательство разбором случаев. 3 старых случая те же, добавилось 2 новых правила вывода. Упражнение. |
| Теорема: |
Исчисление предикатов полно. |
| Доказательство: |
| Без доказательства. |