Вопрос 9: Исчисление предикатов. Правила вывода на основе исчисления предикатов.
Исчисление предикатов
Выберем множество истинностных значений . Также, выберем некоторое предметное множество . n-местным предикатом мы назовем функцию из в . Как и раньше, мы ограничимся классическим множеством - истина и ложь, но оставляем потенциальную возможность его расширить.
Предикаты могут быть 0-местными, в этом случае это хорошо нам известные пропозициональные переменные, принимающие какие-то истинностные значения, в происхождение которых мы не вникаем.
Рассмотрим следующий известный пример: каждый человек смертен, Сократ - человек, следовательно, Сократ - смертен. Мы можем формализовать это выражение с помощью предикатов: множество - это будет множество всех существ, - предикат "быть смертным", - предикат "быть человеком". Тогда фраза в полу-формальном виде выглядит так: Для каждого , такого, что верно , поэтому поскольку , значит, что имеет место .
Чтобы построить новое исчисление, нам требуется указать 3 компонента: язык, аксиомы и правила вывода.
Язык
Добавим к языку исчисления высказываний новые конструкции с предикатами и получим язык исчисления предикатов. Вот расширенная грамматика:
- <выражение> ::= <импликация>
- <импликация> ::= <дизъюнкция> | <дизъюнкция> <импликация>
- <дизъюнкция> ::= <конъюнкция> | <дизъюнкция> <конъюнкция>
- <конъюнкция> ::= <терм> | <конъюнкция> <терм>
- <терм>::= <предикат> | <предикат> (<аргументы>) | <переменная><терм> | <переменная><терм>
- <аргументы> ::= <переменная>
- <аргументы> ::= <переменная>,<аргументы>
Добавились 3 новых сущности:
- индивидные переменные - мы будем записывать их маленькими латинскими буквами из начала алфавита
- предикаты (они обобщили пропозициональные переменные)
- кванторы: всеобщности () и существования ().
Аксиомы
Определение: Дана некоторая формула . Будем говорить, что подстрока строки является подформулой, если она в точности соответствует какому-то одному нетерминалу в дереве разбора строки .
Определение: Если в формулу входит подформула, полученная по правилам для кванторов (то есть, или ), то мы будем говорить, что формула находится в области действия данного квантора по переменной . Также, будем говорить, что любая подформула формулы находится в области действия данного квантора.
Определение: Если некоторое вхождение переменной находится в области действия квантора по переменной , то такое вхождение мы назовем связанным. Вхождение переменной непосредственно рядом с квантором мы назовем связывающим. Те вхождения переменных, которые не являются связанными или связывающими, назовем свободными. Формула, не имеющая свободных вхождений переменных, называется замкнутой.
Определение: Будем говорить, что переменная y свободна для при подстановке в формулу (или просто свободна для подстановки вместо ), если после подстановки y вместо свободных вхождений ни одно ее вхождение не станет связанным.
Чтобы получить список аксиом для исчисления предикатов, возьмем все схемы аксиом исчисления высказываний и дополним их следующими двумя схемами. Здесь — переменная, — некоторая формула, — некоторая формула. Запись [x:=y] будет означать результат подстановки в вместо всех свободных вхождений . Пусть свободно для подстановки вместо .
(11)
(12)
Заметим, что если взять формулу , то по схеме аксиом (11), если игнорировать ограничение на свободу для подстановки, следующее утверждение должно быть тавтологией: . Однако, оно ей не является.
Пример, когда нарушение свободы для подстановки приводит к противоречию:
Такой предикат , очевидно, существует (если в предметном множестве больше одного элемента). Тогда
Противоречие, следовательно, должен быть свободен для подстановки вместо .
Все аксиомы, порожденные данными схемами в новом языке, мы назовем аксиомами исчисления предикатов.
Правила вывода на основе исчисления предикатов
Пусть не входит свободно в . Тогда рассмотрим следующие дополнительные правила вывода исчисления предикатов: