Исчисление предикатов — различия между версиями
Строка 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 новых правила вывода. Упражнение. |
Теорема: |
Исчисление предикатов полно. |
Доказательство: |
Без доказательства. |