Исчисление предикатов
93. Приведите пример формулы вида ,
в которой происходит коллизия переменных и которая не является
общезначимой. (Ответ:
.)
Поэтому нам придется принять еще одну меру предосторожности и
формально определить понятие корректной подстановки терма
вместо переменной. Мы будем говорить, что подстановка терма
вместо переменной
корректна, если в процессе текстуальной
замены всех свободных вхождений переменной
на
терм
никакая переменная из
не попадает в область действия
одноименного квантора.
Педантичный читатель мог бы попросить доказать, что результат такой подстановки будет формулой. Это проще всего сделать так: дать индуктивное определение корректной подстановки, равносильное исходному.
Сначала определим индуктивно результат подстановки терма
вместо переменной
в терм
; этот результат будем
обозначать
:
-
есть
; для любой переменной
, отличной от
, мы полагаем
равным
.
- если
есть
- местный функциональный символ, а
— термы, то
Теперь индуктивное определение продолжается для формул:
- для атомарных формул: если
есть
-местный предикатный символ, а
— термы, то
и подстановка является корректной; - подстановка терма
вместо переменной
в формулу
корректна, если она корректна для формулы
, при этом
(квадратные скобки указывают порядок действий, не являясь частью формулы); - подстановка терма
вместо переменной
в формулу
корректна, если она корректна для обеих формул
и
, при этом
аналогично для формули
;
-
наконец, подстановка
вместо
в формулу
корректна в двух случаях:
(1) если
не является параметром формулы
(это возможно, когда
не является параметром
или когда
совпадает с
); при этом подстановка ничего не меняет в формуле;
(2) переменная
является параметром формулы
, но переменная
не входит в терм
и подстановка
корректна; при этом
Аналогично определяется корректная подстановка в формулу
.
Главная часть в этом определении — последний его пункт, который,
во-первых, говорит, что вместо связанных вхождений переменных
ничего подставлять не надо, а во-вторых, требует, чтобы при корректной
подстановке переменные из терма не подпадали под действие
одноименных кванторов.
После всех этих приготовлений мы можем сформулировать две оставшиеся схемы аксиом исчисления предикатов: формула
(12)
и двойственная ей формула
(13)
будут аксиомами исчисления предикатов, если указанные в них подстановки корректны.
Два частных случая, когда подстановка заведомо корректна: во-первых, можно безопасно подставлять константу (или любой терм без параметров), во-вторых, подстановка переменной вместо себя всегда корректна (и ничего не меняет в формуле).
Отсюда следует, что формулы
и
будут аксиомами исчисления
предикатов (для любой формулы
и переменной
).
Нужны ли нам еще какие-нибудь аксиомы и правила вывода?
Конечно, нужны, поскольку уже сформулированные аксиомы не
полностью отражают смысл кванторов. (Например, они вполне
согласуются с таким пониманием этого смысла: формула всегда ложна, а формула
всегда истинна.) Поэтому мы введем в наше исчисление два правила
вывода, называемые правилами Бернайса,
и на этом определение исчисления предикатов будет завершено. (Позже мы
рассмотрим дополнительные аксиомы, отражающие специальный статус
предиката равенства.
Если переменная не является параметром
формулы
, то правила Бернайса разрешают такие переходы:
![\frac{\mathstrut \psi \to \varphi}
{\mathstrut\psi\to\forall\xi\,\varphi}
\qquad
\qquad
\frac{\mathstrut \varphi\to\psi}
{\mathstrut\exists\xi\,\varphi\to\psi}](/sites/default/files/tex_cache/31c75a1a41301430824a0377bbc829ee.png)
Поясним интуитивный смысл этих правил. Первое говорит, что если
из следует
, причем в
есть
параметр
, которого нет в
, то это означает,
что формула
истинна при всех значениях параметра
, если только формула
истинна.
Используя первое правило Бернайса, легко установить допустимость правила обобщения
![\frac{\mathstrut\varphi}{\mathstrut\forall\xi\,\varphi}\qquad\text{(Gen)}](/sites/default/files/tex_cache/d4b87ecd99253fd3659f840ff7d3290a.png)
![\psi](/sites/default/files/tex_cache/a11bd56a0ff5973a5604bb3fc9142b1d.png)
![A](/sites/default/files/tex_cache/7fc56270e7a70fa81a5935b72eacbe29.png)
![B](/sites/default/files/tex_cache/9d5ed678fe57bcca610140957afab571.png)
![C](/sites/default/files/tex_cache/0d61f8370cad1d412f80b84d143e1257.png)
![\varphi](/sites/default/files/tex_cache/87567e37a1fe699fe1c5d3a79325da6f.png)
![\psi\to\varphi](/sites/default/files/tex_cache/df1bb513505c3e951092327d126bdb95.png)
![\varphi\to(\psi\to\varphi)](/sites/default/files/tex_cache/699cddbf68a05d6ac258285dfb3d0d58.png)
![\psi\to\forall\xi\,\varphi](/sites/default/files/tex_cache/01e8b1139053af1766b378b2da404c95.png)
![\psi](/sites/default/files/tex_cache/a11bd56a0ff5973a5604bb3fc9142b1d.png)
Правило (Gen) (от Generalization — обобщение) кодифицирует
стандартную практику рассуждений: мы доказываем какое-то
утверждение со свободной переменной
,
после чего заключаем, что мы доказали
, так как
было произвольным.
Второе правило Бернайса также вполне естественно: желая
доказать в предположении
,
мы говорим: пусть такое
существует, возьмем его
и докажем
(то есть докажем
со свободной переменной
).
94. Покажите, что класс выводимых в исчислении предикатов формул не изменится, если мы вместо правил Бернайса добавим туда правило обобщения и две аксиомы
![\forall \xi\, (\psi\to\varphi) \to
(\psi \to \forall \xi\, \varphi)](/sites/default/files/tex_cache/178fabd46698a1db3c1c67444d730572.png)
![\forall \xi\, (\varphi\to\psi) \to
(\exists\xi\, \varphi\to\psi)](/sites/default/files/tex_cache/b9bb342b57135eae0c73f780ca1d3571.png)
![\xi](/sites/default/files/tex_cache/195246810f9bfc228bca491859062b14.png)
![\psi](/sites/default/files/tex_cache/a11bd56a0ff5973a5604bb3fc9142b1d.png)
Как и в случае исчисления высказываний, перед нами стоят две задачи: надо доказать корректность исчисления предикатов (всякая выводимая формула общезначима) и его полноту (всякая общезначимая формула выводима). Этим мы и займемся в следующих разделах.