Опубликован: 24.04.2007 | Доступ: свободный | Студентов: 720 / 35 | Оценка: 4.60 / 4.30 | Длительность: 25:56:00
Специальности: Программист
Лекция 9:

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

< Лекция 8 || Лекция 9: 1234 || Лекция 10 >

93. Приведите пример формулы вида \forall\xi\, \varphi \to \varphi(t/\xi), в которой происходит коллизия переменных и которая не является общезначимой. (Ответ: \forall x\,\exists y\, A(x,y)\to \exists y
A(y,y).)

Поэтому нам придется принять еще одну меру предосторожности и формально определить понятие корректной подстановки терма вместо переменной. Мы будем говорить, что подстановка терма t вместо переменной \xi корректна, если в процессе текстуальной замены всех свободных вхождений переменной \xi на терм t никакая переменная из t не попадает в область действия одноименного квантора.

Педантичный читатель мог бы попросить доказать, что результат такой подстановки будет формулой. Это проще всего сделать так: дать индуктивное определение корректной подстановки, равносильное исходному.

Сначала определим индуктивно результат подстановки терма t вместо переменной \xi в терм u ; этот результат будем обозначать u(t/\xi):

  • \xi (t/\xi) есть t ; для любой переменной \eta, отличной от \xi, мы полагаем \eta (t/\xi) равным \eta.
  • если f есть k - местный функциональный символ, а t_1,\dots,t_k — термы, то
    f(t_1,\dots,t_k)(t/\xi)=f(t_1(t/\xi),\dots,t_k(t/\xi)).

Теперь индуктивное определение продолжается для формул:

  • для атомарных формул: если R есть k -местный предикатный символ, а t_1,\dots,t_k — термы, то
    R(t_1,\dots,t_k)(t/\xi)=R(t_1(t/\xi),\dots,t_k(t/\xi))
    и подстановка является корректной;
  • подстановка терма t вместо переменной \xi в формулу \lnot \varphi корректна, если она корректна для формулы \varphi, при этом
    [\lnot \varphi] (t/\xi) = \lnot [\varphi(t/\xi)]
    (квадратные скобки указывают порядок действий, не являясь частью формулы);
  • подстановка терма t вместо переменной \xi в формулу (\varphi\hm\land\psi) корректна, если она корректна для обеих формул \varphi и \psi, при этом
    (\varphi \land \psi) (t/\xi) = (\varphi(t/\xi)\land\psi(t/\xi));
    аналогично для формул (\varphi\lor\psi) и (\varphi\to\psi) ;
  • наконец, подстановка t вместо \xi в формулу \forall \eta\,\varphi корректна в двух случаях:

    (1) если \xi не является параметром формулы \forall
\eta\,\varphi (это возможно, когда \xi не является параметром \varphi или когда \xi совпадает с \eta ); при этом подстановка ничего не меняет в формуле;

    (2) переменная \xi является параметром формулы \forall\eta\,\varphi, но переменная \eta не входит в терм t и подстановка \varphi(t/\xi) корректна; при этом

    [\forall \eta \, \varphi] (t/\xi) = \forall \eta\,[\varphi (t/\xi)].

    Аналогично определяется корректная подстановка в формулу \exists\xi\varphi.

Главная часть в этом определении — последний его пункт, который, во-первых, говорит, что вместо связанных вхождений переменных ничего подставлять не надо, а во-вторых, требует, чтобы при корректной подстановке переменные из терма t не подпадали под действие одноименных кванторов.

После всех этих приготовлений мы можем сформулировать две оставшиеся схемы аксиом исчисления предикатов: формула

(12) \forall \xi \,\varphi \to \varphi(t/\xi)

и двойственная ей формула

(13) \varphi(t/\xi)\to \exists \xi\,\varphi

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

Два частных случая, когда подстановка заведомо корректна: во-первых, можно безопасно подставлять константу (или любой терм без параметров), во-вторых, подстановка переменной вместо себя всегда корректна (и ничего не меняет в формуле).

Отсюда следует, что формулы \forall \xi\,\varphi\hm\to\varphi и \varphi\to\exists\xi\,\varphi будут аксиомами исчисления предикатов (для любой формулы \varphi и переменной \xi ).

Нужны ли нам еще какие-нибудь аксиомы и правила вывода? Конечно, нужны, поскольку уже сформулированные аксиомы не полностью отражают смысл кванторов. (Например, они вполне согласуются с таким пониманием этого смысла: формула \forall
\xi\,\varphi всегда ложна, а формула \exists\xi\,\varphi всегда истинна.) Поэтому мы введем в наше исчисление два правила вывода, называемые правилами Бернайса, и на этом определение исчисления предикатов будет завершено. (Позже мы рассмотрим дополнительные аксиомы, отражающие специальный статус предиката равенства.

Если переменная \xi не является параметром формулы \psi, то правила Бернайса разрешают такие переходы:

\frac{\mathstrut \psi \to \varphi}
{\mathstrut\psi\to\forall\xi\,\varphi}
\qquad
\qquad
\frac{\mathstrut \varphi\to\psi}
{\mathstrut\exists\xi\,\varphi\to\psi}
Мы говорим, что стоящая снизу от черты (в каждом из правил) формула получается по соответствующему правилу из верхней. Соответственно дополняется и определение вывода как последовательности формул, в которой каждая формула либо является аксиомой, либо получается из предыдущих по одному из правил вывода (раньше было только правило MP, теперь добавились два новых правила).

Поясним интуитивный смысл этих правил. Первое говорит, что если из \psi следует \varphi, причем в \varphi есть параметр \xi, которого нет в \psi, то это означает, что формула \varphi истинна при всех значениях параметра \xi, если только формула \psi истинна.

Используя первое правило Бернайса, легко установить допустимость правила обобщения

\frac{\mathstrut\varphi}{\mathstrut\forall\xi\,\varphi}\qquad\text{(Gen)}
(если в исчислении предикатов выводима формула сверху от черты, то выводима и формула снизу). В самом деле, возьмем какую-нибудь выводимую формулу \psi без параметров (например, аксиому, в которой вместо A, B и C подставлены замкнутые формулы). Раз выводима формула \varphi, то выводима и формула \psi\to\varphi (поскольку \varphi\to(\psi\to\varphi) является тавтологией и даже аксиомой). Теперь по правилу Бернайса выводим \psi\to\forall\xi\,\varphi и применяем правило MP к этой формуле и к формуле \psi.

Правило (Gen) (от Generalizationобобщение) кодифицирует стандартную практику рассуждений: мы доказываем какое-то утверждение \varphi со свободной переменной \xi, после чего заключаем, что мы доказали \forall\xi\,\varphi, так как \xi было произвольным.

Второе правило Бернайса также вполне естественно: желая доказать \psi в предположении \exists\xi\,\varphi, мы говорим: пусть такое \xi существует, возьмем его и докажем \psi (то есть докажем \varphi\to\psi со свободной переменной \xi ).

94. Покажите, что класс выводимых в исчислении предикатов формул не изменится, если мы вместо правил Бернайса добавим туда правило обобщения и две аксиомы

\forall \xi\, (\psi\to\varphi) \to
(\psi \to \forall \xi\, \varphi)
и
\forall \xi\, (\varphi\to\psi) \to
(\exists\xi\, \varphi\to\psi)
(в которых требуется, чтобы переменная \xi не была параметром формулы \psi ).

Как и в случае исчисления высказываний, перед нами стоят две задачи: надо доказать корректность исчисления предикатов (всякая выводимая формула общезначима) и его полноту (всякая общезначимая формула выводима). Этим мы и займемся в следующих разделах.

< Лекция 8 || Лекция 9: 1234 || Лекция 10 >