-
Notifications
You must be signed in to change notification settings - Fork 26
/
lection4.tex
306 lines (252 loc) · 23.4 KB
/
lection4.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
\section{Исчисление предикатов}
Очень мало логических утверждений истинны или ложны сами по себе.
Часто истинность утверждений зависит от каких-то обстоятельств.
Для формализации этого соображения в математической логике рассматривают
понятия предметного множества и предиката.
Сперва объясним эти понятия на языке теории моделей:
если мы строим теорию о некоторых объектах (например, о натуральных
числах или о множествах), то изучаемые объекты все вместе образуют
некоторое \emph{предметное} множество (будем его обозначать буквой $D$).
На данном множестве могут быть заданы \emph{функции}, отображающие элементы
$D$ в $D$, и \emph{предикаты} --- отображающие элементы $D$ в
истинностные значения.
Например, если мы изучаем арифметические выражения над целыми числами,
то предметным множеством будет множество целых чисел, сложение и
вычитание --- это двуместные функции, константу $0$ мы можем при желании
рассмотреть, как нульместную функцию, а отношения $(<)$ или $(=)$ ---
это двуместные предикаты.
Теперь рассмотрим эту же конструкцию более формально, с точки зрения теории
доказательств.
\begin{definition}\emph{Терм} исчисления предикатов (еще мы его будем
называть предметным выражением) --- это:
\begin{itemize}
\item предметная переменная --- маленькая буква начала или конца латинского
алфавита, возможно, с индексом или апострофом.
\item применение функции (функции мы будем обозначать латинскими
буквами середины алфавита: $f, g, h, \dots$):
если $\theta_1 \dots \theta_n$ --- термы и $f$ ---
\emph{функциональный символ} (то есть символ, обозначающий некоторую
функцию), то $f (\theta_1, \dots \theta_n)$
--- тоже терм. Также, частным случаем функций являются константы ---
это нульместные функции. Обычно мы их будем обозначать маленькими
буквами $c$ или $d$, возможно, с индексами.
\end{itemize}
\end{definition}
\begin{definition}\emph{Формула} исчисления предикатов (еще мы ее будем
называть логическим выражением) --- это:
\begin{itemize}
\item если $\alpha$ и $\beta$ --- формулы исчисления предикатов, то
$\neg \alpha$, $\alpha \with \beta$, $\alpha \vee \beta$,
$\alpha \rightarrow \beta$ --- также формула. Связки расставлены
в порядке убывания приоритета. Как и в исчислении высказываний,
импликация правоассоциативна, остальные операции --- левоассоциативны.
\item если $\alpha$ --- формула и $x$ --- предметная переменная, то
$\forall x \alpha$ и $\exists x \alpha$ --- также формулы. Кванторы
имеют приоритет, одинаковый с отрицанием, и, как и отрицание, действуют
только на ближайшее за ними логическое выражение. Например, формула
$\forall x P(x,5) \vee P(x,7)$ соответствует формуле $(\forall x P(x,5)) \vee P(x,7)$.
\item применение предиката (предикаты мы будем обозначать большими
латинскими буквами, возможно, с индексами): если
$\theta_1 \dots \theta_n$ --- термы, и $P$ --- \emph{предикатный символ},
то $P (\theta_1, \dots \theta_n)$ --- формула. В частности, при $n=0$
предикат становится аналогом предметной переменной из исчисления высказываний.
\end{itemize}
\end{definition}
Обратите внимание на понятия предикатный символ и функциональный символ.
Предикат и функция --- это обычные математические функции, отображающие
$D^n$ в $V$ или $D$. Предикатные и функциональные символы же --- это
некоторые значки в формуле. Им можно сопоставить различные предикаты и
функции, в зависимости от обстоятельств. Мы иногда будем для краткости
опускать слово <<символ>>, когда будем говорить о тексте формул, но
это различие всегда надо иметь в виду.
Также заметим, что ничего не мешает нам сделать синтаксис выражений более
приближенным к традиционному при необходимости (это будет, естественно,
всякий раз оговариваться). Например, в выражении $5 = x+2$, понимаемом в
смысле исчисления предикатов, имеется один предикатный символ $(=)$ и
три функциональных символа: два нульместных --- $2$, $5$ --- и один
двуместный --- $(+)$.
\subsection{Доказательства в исчислении предикатов}
\begin{definition}Дана некоторая формула $s$.
Будем говорить, что подстрока $s_1$ строки $s$ является подформулой,
если она в точности соответствует какому-то одному нетерминалу
в дереве разбора строки $s$.\end{definition}
\begin{definition}Если в формулу входит подформула, полученная по правилам
для кванторов (то есть, $\forall x \alpha$ или $\exists x \alpha$), то
мы будем говорить, что формула $\alpha$ находится в области действия
данного квантора по переменной $x$. Также, будем говорить, что любая подформула
формулы $\alpha$ находится в области действия данного квантора.
\end{definition}
\begin{definition}Если некоторое вхождение переменной $x$ находится
в области действия квантора по переменной $x$, то такое вхождение
мы назовем \emph{связанным}. Вхождение переменной $x$ непосредственно рядом
с квантором ($\forall x \dots$) мы назовем \emph{связывающим}.
Те вхождения переменных, которые не являются связанными
или связывающими, назовем \emph{свободными}. Формула, не имеющая
свободных вхождений переменных, называется \emph{замкнутой}.
\end{definition}
\begin{definition}Будем говорить, что терм $\theta$ свободен для
подстановки в формулу $\psi$ вместо $x$ (или просто свободен для
подстановки вместо $x$), если после подстановки $\theta$ вместо
свободных вхождений $x$ ни одно вхождение свободной переменной
в $\theta$ не станет связанным.
\end{definition}
Чтобы получить список аксиом для исчисления предикатов, возьмем все схемы
аксиом исчисления высказываний и дополним их следующими двумя схемами.
Здесь $x$ - переменная, $\psi$ - некоторая формула, $y$ - некоторая переменная.
Запись $\psi[x \coloneqq \theta]$ будет означать результат подстановки
$\theta$ в $\psi$ вместо всех свободных вхождений $x$. Пусть $\theta$
свободно для подстановки вместо $x$.
\begin{tabular}{lll}
(11) & $\forall{x}(\psi) \rightarrow (\psi[x \coloneqq \theta])$\\
(12) & $(\psi[x \coloneqq \theta]) \rightarrow \exists{x}(\psi)$
\end{tabular}
Заметим, что если взять формулу $\exists x A(x,y)$, то по схеме аксиом (11),
если игнорировать ограничение на свободу для подстановки,
следующее утверждение должно быть тавтологией:
$\forall y \exists x A(x,y) \rightarrow \exists x A (x,x)$. Однако, оно ей не является.
Все аксиомы, порожденные данными схемами в новом языке, мы назовем аксиомами исчисления
предикатов.
Правила вывода.
Пусть $x$ не входит свободно в $\phi$. Тогда рассмотрим следующие дополнительные
правила вывода исчисления предикатов:
\begin{tabular}{lll}
$\infer{(\phi) \rightarrow \forall{x}(\psi)}{(\phi) \rightarrow (\psi)}$ &
$\infer{\exists{x}(\psi) \rightarrow (\phi)}{(\psi) \rightarrow (\phi)}$
\end{tabular}
Добавив эти схемы к схеме для правила Modus Ponens исчисления высказываний,
мы сможем породить множество правил вывода.
%<<Не входит свободно>> - это также важный вопрос.
%Рассмотрим формулу $A(x) \rightarrow A(x)$. Легко показать, что такая
%формула общезначима и доказуема. Однако, $(\exists{x}A(x)) \rightarrow A(x)$
%не является общезначимой, если $A(x)$ не общезначима: достаточно взять в качестве
%оценки свободной переменной $x$ то значение, на котором $A(x)$ ложна.
%Вывод из гипотез также вполне можно расширить на исчисление предикатов.
\subsection{Оценка выражений в исчислении предикатов}
Для задания оценки для выражения в исчислении предикатов необходимо
вместо оценки для пропозициональных переменных $v_P$ в исчислении
высказываний ввести оценку для предикатных символов: для каждого
$k$-местного предикатного символа $P^k_n$ определить функцию
$v_{P^k_n}: D^k \rightarrow V$. Аналогично, для каждого $k$-местного
функционального символа $f^k_n$ также надо определить функцию
$v_{f^k_n}$.
\begin{definition}Формула в исчислении предикатов общезначима, если она
истинна на любом предметном множестве $D$, при любой оценке предикатных
и функциональных символов, и при любых оценках свободных предметных
переменных.
\end{definition}
\begin{definition}Пусть имеется некоторое исчисление предикатов с множеством
аксиом $A$, и пусть дан некоторый (возможно, пустой) список $\Gamma$
формул исчисления предикатов. Тогда вывод формулы $\alpha$
в исчислении с аксиомами $A \cup \Gamma$ мы назовем выводом из
допущений $\Gamma$, и будем записывать это как $\Gamma \vdash \alpha$.
\end{definition}
Формулы в списке формул не обязаны быть замкнутыми: например, легко
показать, что $P(x,y), P(x,y)\rightarrow P(y,x) \vdash P(y,x)$. Однако,
со свободными переменными в допущениях надо быть осторожными, что
находит своё отражение в теореме о дедукции для исчисления предикатов.
\begin{theorem}
Теорема о дедукции. Если $\Gamma, \alpha \vdash \beta$,
и в доказательстве отсутствуют применения правил для кванторов, использующих
свободные переменные из формулы $\alpha$, то $\Gamma \vdash \alpha \rightarrow \beta$
Обратно, если $\Gamma \vdash \alpha\rightarrow\beta$, то $\Gamma,\alpha\rightarrow\beta$.
\end{theorem}
\begin{proof}
Доказательство обратного утверждения аналогично доказательству для теоремы о дедукции
для исчисления высказываний.
Доказательство прямого утверждения также проведём аналогично теореме о дедукции
для исчисления высказываний --- индукцией и разбором случаев.
3 старых случая остаются те же, что и в исчислении высказываний,
добавилось 2 новых правила вывода. Упражнение.
\end{proof}
\begin{lemma}\label{free_substitution}
$\llbracket \psi \rrbracket^{x \coloneqq \llbracket\theta\rrbracket} = \llbracket \psi[x \coloneqq \theta] \rrbracket$,
если $\theta$ свободна для подстановки в $\psi$ вместо $x$.
\end{lemma}
\begin{proof}
Воспользуемся структурной индукцией по выражению $\psi$.
База индукции. Пусть $\psi$ --- это предикат. Тогда из способа вычисления значения предикатов
очевидно, что
$\llbracket P(\theta,y_1,\dots y_n) \rrbracket = \llbracket P(x,y_1,\dots y_n)\rrbracket^{x \coloneqq \llbracket \theta \rrbracket}$.
Переход индукции. Пусть $\psi$ составлено из одного или двух выражений, про которые
утверждение уже доказано. Рассмотрим варианты:
\begin{itemize}
\item $\psi \equiv \alpha \rightarrow \beta$, $\psi \equiv \alpha \with \beta$, $\psi \equiv \alpha \vee \beta$ или
$\psi \equiv \neg \alpha$. Рассмотрение всех этих случаев схоже, возьмем для примера конъюнкцию.
%\begin{tabular}{ll}
$\llbracket\alpha\with\beta\rrbracket^{x\coloneqq \llbracket\theta\rrbracket}
=\llbracket\alpha\rrbracket^{x\coloneqq \llbracket\theta\rrbracket}\with\llbracket\beta\rrbracket^{x\coloneqq \llbracket\theta\rrbracket}
=\llbracket\alpha[x \coloneqq \theta]\rrbracket\with\llbracket\beta[x\coloneqq \theta]\rrbracket
=\llbracket\alpha[x \coloneqq \theta]\with\beta[x \coloneqq \theta]\rrbracket = \llbracket(\alpha\with\beta)[x \coloneqq \theta]\rrbracket$
%\end{tabular}
\item $\psi \equiv \forall y \alpha$ или $\psi \equiv \exists y \alpha$. Опять же, рассмотрение случаев
аналогично. Покажем, что
$\llbracket \forall y \alpha \rrbracket^{x \coloneqq \llbracket\theta\rrbracket} = \llbracket (\forall y \alpha)[x\coloneqq \theta] \rrbracket$.
Без уменьшения общности можем предположить, что $x$ входит свободно в $\forall y\alpha$ --- иначе данная замена
не оказывает влияние на вычисление результата, и равенство очевидно.
Поскольку $\theta$ свободна для подстановки вместо $x$ в $\psi$, то, значит,
$y$ не входит свободно в $\theta$ (иначе свободный $y$ стал бы связанным при подстановке,
а подстановки обязательно будут иметь место, раз $x$ входит свободно в $\forall y\alpha$).
%Вычислим $\llbracket\theta\rrbracket=v_\theta$ в некоторой фиксированной оценке.
%Если $\llbracket\forall y \alpha\rrbracket^{x \coloneqq v_\theta} = \texttt{И}$, то не найдётся
%такого $v_y$, что $\llbracket\alpha\rrbracket^{x \coloneqq v_\theta, y \coloneqq v_y} = \texttt{Л}$.
По предположению индукции, $\llbracket\alpha\rrbracket^{x \coloneqq \llbracket\theta\rrbracket} =
\llbracket\alpha[x\coloneqq \theta]\rrbracket$. И, более того,
$\llbracket\alpha\rrbracket^{x \coloneqq \llbracket\theta\rrbracket, y \coloneqq v_y} = \llbracket\alpha[x\coloneqq \theta]\rrbracket^{y \coloneqq v_y}$,
поскольку вычисление оценки $\theta$ не зависит от значения переменной $y$.
Значит, оценки полных формул с квантором также будут совпадать.
\end{itemize}
\end{proof}
\begin{theorem}
Исчисление предикатов корректно, т.е. любое доказуемое утверждение общезначимо.
\end{theorem}
\begin{proof}
Рассмотрим некоторое доказательство $\gamma_1, \dots \gamma_n$, и покажем, что
каждое из утверждений в доказательстве является общезначимым. Этим мы покажем
утверждение теоремы.
Рассмотрим какое-то утверждение $\gamma_i$. Оно либо является частным случаем
какой-либо из схем аксиом, либо получено из предыдущих утверждений доказательства.
путем применения правил вывода.
Мы ограничимся рассмотрением только новых (по сравнению с исчислением высказываний)
схем аксиом и правил, поскольку только в них доказательство будет отличаться
от аналогичного для исчисления высказываний.
Возможны следующие варианты:
\begin{enumerate}
\item $\gamma_i \equiv \forall{x}(\psi) \rightarrow (\psi[x \coloneqq \theta])$ при
некоторых $x$ (имя переменной тоже может быть разным), $\psi$ и $\theta$.
Значит, нам необходимо показать, что при любых $x$, $\psi$ и $\theta$
(естественно, таких, что $\theta$ свободна для подстановки вместо $x$ в $\psi$)
данное выражение будет истинным при любой оценке.
Фиксируем некоторую оценку и докажем утверждение от противного.
Пусть это не так, и
$\llbracket \forall{x}(\psi)\rightarrow(\psi[x \coloneqq \theta])\rrbracket = \texttt{Л}$.
Тогда неизбежно, что $\llbracket \forall{x}(\psi) \rrbracket = \texttt{И}$, но
$\llbracket \psi[x\coloneqq \theta] \rrbracket = \texttt{Л}$ (поскольку при остальных значениях
подвыражений импликация будет истинна).
Пусть в данной оценке $\llbracket\theta\rrbracket=v_\theta$.
По лемме \ref{free_substitution} верно, что
$\llbracket \psi[x\coloneqq \theta] \rrbracket = \llbracket\psi\rrbracket^{x\coloneqq v_\theta}$,
причём, поскольку $\llbracket \psi[x\coloneqq \theta] \rrbracket = \texttt{Л}$, то
$\llbracket\psi\rrbracket^{x\coloneqq v_\theta} = \texttt{Л}$.
Но тогда $\llbracket \forall{x}(\psi) \rrbracket = \texttt{И}$ означает, что
при любом $v_x \in D$ будет выполнено $\llbracket \psi \rrbracket^{x \coloneqq v_x} = \texttt{И}$.
Противоречие.
\item $\gamma_i \equiv (\psi[x \coloneqq \theta]) \rightarrow \exists{x}(\psi)$ при некоторых
$x$, $\psi$ и $\theta$. Рассмотрение аналогично предыдущему пункту: заметим, что импликация
опровергается только если $\llbracket \exists{x}(\psi) \rrbracket = \texttt{Л}$, но
$\llbracket \psi[x\coloneqq \theta] \rrbracket = \texttt{И}$. По лемме
\ref{free_substitution} при вычислении оценки формулы мы можем отдельно вычислить
$v_\theta = \llbracket\theta\rrbracket$, и показать, что
$\llbracket \psi[x\coloneqq \theta] \rrbracket = \llbracket\psi\rrbracket^{x\coloneqq v_\theta}$, что
гарантирует существование элемента в $D$, на котором формула $\psi$ истинна.
\item $\gamma_i \equiv \phi \rightarrow \forall{x}\psi$ и существует такой $j < i$, что
$\gamma_j \equiv \phi \rightarrow \psi$, при этом $x$ не входит свободно в $\phi$.
Опять же, фиксируем некоторую оценку.
Нам нужно показать, что $\forall{x}\psi$ не бывает ложным, если $\phi$ истинно.
По предположению индукции мы знаем, что $\llbracket \phi \rightarrow \psi \rrbracket = \texttt{И}$.
Пусть $\llbracket\forall{x}\psi\rrbracket = \texttt{Л}$. То есть, найдётся такой $v_x$ из $D$, что
$\llbracket \psi \rrbracket^{x\coloneqq v_x} = \texttt{Л}$.
Но заметим, что $x$ не входит свободно в $\phi$. Значит, $\llbracket \phi \rrbracket^{x\coloneqq v_x} = \texttt{И}$.
Значит, $\llbracket\phi \rightarrow \psi\rrbracket^{x\coloneqq v_x} = \texttt{Л}$. Противоречие с общезначимостью $\gamma_j$.
\item Правило для квантора существования доказывается аналогично.
\end{enumerate}
\end{proof}