Вопрос 9: Исчисление предикатов. Правила вывода на основе исчисления предикатов.


Исчисление предикатов

Выберем множество истинностных значений VV. Также, выберем некоторое предметное множество DD. n-местным предикатом мы назовем функцию из DnD^n в VV. Как и раньше, мы ограничимся классическим множеством VV - истина и ложь, но оставляем потенциальную возможность его расширить.

Предикаты могут быть 0-местными, в этом случае это хорошо нам известные пропозициональные переменные, принимающие какие-то истинностные значения, в происхождение которых мы не вникаем.

Рассмотрим следующий известный пример: каждый человек смертен, Сократ - человек, следовательно, Сократ - смертен. Мы можем формализовать это выражение с помощью предикатов: множество DD - это будет множество всех существ, S(x)S(x) - предикат "быть смертным", H(x)H(x) - предикат "быть человеком". Тогда фраза в полу-формальном виде выглядит так: Для каждого xx, такого, что H(x)H(x) верно S(x)S(x), поэтому поскольку H(Sokrat)H(Sokrat), значит, что имеет место S(SokratS(Sokrat.

Чтобы построить новое исчисление, нам требуется указать 3 компонента: язык, аксиомы и правила вывода.

Язык

Добавим к языку исчисления высказываний новые конструкции с предикатами и получим язык исчисления предикатов. Вот расширенная грамматика:

  • <выражение> ::= <импликация>
  • <импликация> ::= <дизъюнкция> | <дизъюнкция> →\rightarrow <импликация>
  • <дизъюнкция> ::= <конъюнкция> | <дизъюнкция> ∨\lor <конъюнкция>
  • <конъюнкция> ::= <терм> | <конъюнкция> ∧\land <терм>
  • <терм>::= <предикат> | <предикат> (<аргументы>) | ∀\forall <переменная><терм> | ∃\exists <переменная><терм>
  • <аргументы> ::= <переменная>
  • <аргументы> ::= <переменная>,<аргументы>

Добавились 3 новых сущности:

  1. индивидные переменные - мы будем записывать их маленькими латинскими буквами из начала алфавита
  2. предикаты (они обобщили пропозициональные переменные)
  3. кванторы: всеобщности (∀\forall) и существования (∃\exists).

Аксиомы

Определение: Дана некоторая формула ss. Будем говорить, что подстрока s1s_1 строки ss является подформулой, если она в точности соответствует какому-то одному нетерминалу в дереве разбора строки ss.

Определение: Если в формулу входит подформула, полученная по правилам для кванторов (то есть, ∀xα\forall x \alpha или ∃xα\exists x \alpha), то мы будем говорить, что формула α\alpha находится в области действия данного квантора по переменной xx. Также, будем говорить, что любая подформула формулы α\alpha находится в области действия данного квантора.

Определение: Если некоторое вхождение переменной xx находится в области действия квантора по переменной xx, то такое вхождение мы назовем связанным. Вхождение переменной xx непосредственно рядом с квантором ∀x...\forall x... мы назовем связывающим. Те вхождения переменных, которые не являются связанными или связывающими, назовем свободными. Формула, не имеющая свободных вхождений переменных, называется замкнутой.

Определение: Будем говорить, что переменная y свободна для xx при подстановке в формулу ψ\psi (или просто свободна для подстановки вместо xx), если после подстановки y вместо свободных вхождений xx ни одно ее вхождение не станет связанным.

Чтобы получить список аксиом для исчисления предикатов, возьмем все схемы аксиом исчисления высказываний и дополним их следующими двумя схемами. Здесь xx — переменная, ψ\psi — некоторая формула, yy — некоторая формула. Запись ψ\psi[x:=y] будет означать результат подстановки yy в ψ\psi вместо всех свободных вхождений xx. Пусть yy свободно для подстановки вместо xx.

(11) ∀x(ψ)→(ψ[x:=α]) \forall x (\psi) \to (\psi[x := \alpha])

(12) (ψ[x:=α])→∃x(ψ) (\psi[x := \alpha]) \to \exists x (\psi)

Заметим, что если взять формулу ∃xA(x,y)\exists x A(x, y), то по схеме аксиом (11), если игнорировать ограничение на свободу для подстановки, следующее утверждение должно быть тавтологией: ∀y∃xA(x,y)→∃xA(x,x)\forall y \exists x A(x, y) \to \exists x A(x, x). Однако, оно ей не является.

Пример, когда нарушение свободы для подстановки приводит к противоречию:

∀x(ψ)→(ψ[x:=α]) \forall x(\psi) \to (\psi[x := \alpha])

ψ:=∃a¬P(a)=P(b),x:=b,α:=a \psi := \exists a \neg P(a) = P(b), x := b, \alpha := a

∀b∃a(¬P(a)=P(b))→∃a(¬P(a)=P(a)) \forall b \exists a (\lnot P(a) = P(b)) \to \exists a (\lnot P(a) = P(a))

Такой предикат PP, очевидно, существует (если в предметном множестве больше одного элемента). Тогда

∃a(¬P(a)=P(a)) \exists a (\lnot P(a) = P(a))

Противоречие, следовательно, zz должен быть свободен для подстановки вместо α\alpha.

Все аксиомы, порожденные данными схемами в новом языке, мы назовем аксиомами исчисления предикатов.

Правила вывода на основе исчисления предикатов

Пусть xx не входит свободно в ϕ\phi. Тогда рассмотрим следующие дополнительные правила вывода исчисления предикатов:

(ψ,ψ)→(ϕ)ϕ \frac {(\psi, \psi) \rightarrow (\phi)} {\phi}

(ϕ)→(ψ)(ϕ)→∀x(ψ) \frac {(\phi) \rightarrow (\psi)} {(\phi) \rightarrow \forall{x}(\psi)}

(ψ)→(ϕ)∃x(ψ)→(ϕ) \frac {(\psi) \rightarrow (\phi)} {\exists{x}(\psi) \rightarrow (\phi)}

results matching ""

    No results matching ""