170
правок
Изменения
Нет описания правки
{{Теорема
|statement=
Не существует алгоритма, определяющего по формуле [[ Исчисление предикатов | исчисления предикатов первого порядка]], является ли она общезначимой.
|proof=
Обозначим язык всех общезначимых формул <tex>L = \{w | w</tex> {{---}} общезначимая формула исчисления предикатов первого порядка<tex>\}</tex>. Покажем, что [[Разрешимые (рекурсивные) языки#uni | универсальный язык]] <tex>U</tex> [[m-сводимость | m-сводится]] к <tex>L</tex>. Для этого нужно построить вычислимую функцию <tex>f</tex>, которая принимает на вход пару из [[ Машина Тьюринга | машины Тьюринга ]] <tex>M = \langle \Sigma, \Pi, B, Q, Y, N, S, \delta \rangle</tex> и слова <tex>w</tex> и возвращает некоторую формулу исчисления предикатов, причём:
Теперь можно построить формулу <tex>f(\langle M, w \rangle)</tex>:
* <tex>(A_0 \& A_1 \& \ldots \& A_n) \rightarrow yes(S | x_0 \cdot x_1 \cdot \ldots \cdot x_k)</tex>, где <tex>x_0 \cdot x_1 \cdot \ldots \cdot x_k = w</tex>.
Заметим, что по построению из <tex>A_0 \& A_1 \& \ldots \& A_n</tex> следует равенство двух формул, кодирующих любые две конфигурации <tex>C_1</tex> и <tex>C_2</tex>, такие что <tex>C_1 \vdash^* C_2</tex>. Поскольку предикат равенства согласован с предикатными символами (в частности с <tex>yes</tex>), то оценка <tex>yes(S | x_0 \cdot x_1 \cdot \ldots \cdot x_k)</tex> совпадает с оценкой <tex>yes(u)</tex>, где <tex>u</tex> {{---}} формула, кодирующая некую конфигурацию <tex>C</tex>, что <tex>C_0 \vdash^* C</tex>, где <tex>C_0</tex> {{---}} начальная конфигурация, опять же при условии <tex>A_0 \& A_1 \& \ldots \& A_n</tex>.
Таким образом, <tex>U \le_{m} L</tex>, а значит, <tex>L</tex> неразрешим, поскольку <tex>U</tex> неразрешим.
}}
== Ссылки ==
http://logic.pdmi.ras.ru/~dmitrits/csclub/likbez4.pdf