Неразрешимость исчисления предикатов первого порядка — различия между версиями
Gromak (обсуждение | вклад) |
Gromak (обсуждение | вклад) |
||
Строка 4: | Строка 4: | ||
{{Теорема | {{Теорема | ||
|statement= | |statement= | ||
− | Не существует алгоритма, определяющего по формуле [[ Исчисление предикатов | исчисления предикатов первого порядка]], является ли она общезначимой. | + | Не существует алгоритма, определяющего по формуле [[ Исчисление предикатов | исчисления предикатов первого порядка]], является ли она [[Исчисление предикатов#valid | общезначимой]]. |
|proof= | |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>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> и возвращает некоторую формулу исчисления предикатов, причём: | ||
Строка 34: | Строка 34: | ||
== Ссылки == | == Ссылки == | ||
− | http://logic.pdmi.ras.ru/~dmitrits/csclub/likbez4.pdf | + | * [http://logic.pdmi.ras.ru/~dmitrits/csclub/likbez4.pdf Презентация по данной проблеме] |
+ | * [http://en.wikipedia.org/wiki/Entscheidungsproblem Wikipedia {{---}} Entscheidungsproblem] | ||
+ | * [http://en.wikipedia.org/wiki/First-order_logic Wikipedia {{---}} First-order logic] |
Версия 17:57, 24 декабря 2013
Эта статья находится в разработке!
Теорема: |
Не существует алгоритма, определяющего по формуле исчисления предикатов первого порядка, является ли она общезначимой. |
Доказательство: |
Обозначим язык всех общезначимых формул универсальный язык m-сводится к . Для этого нужно построить вычислимую функцию , которая принимает на вход пару из машины Тьюринга и слова и возвращает некоторую формулу исчисления предикатов, причём: — общезначимая формула исчисления предикатов первого порядка . Покажем, что
Введём двухместный предикат со следующими аксиомами равенства (для удобства будем использовать инфиксную запись):
Для каждого символа Конфигурацию теперь можно представить следующей формулой (опять же будем использовать инфиксную запись для удобства): заведём константу , для каждого состояния заведём константу . Чтобы специальным образом кодировать ленту, введём две двухместные функции: и , а также одноместную функцию .Заведём множество формул . Для каждого перехода, сдвигающего головку влево, добавим в формулу . Для переходов, сдвигающих головку вправо или оставляющих на месте, аналогичным образом добавим соответствующие формулы в .Также введём предикат и добавим в формулу .Наконец, чтобы предикат равенства был корректно задан, добавим все аксиомы равенства в . Поскольку число функций и предикатов конечно, множество будет конечно. Занумеруем его элементы как .Теперь можно построить формулу :
Заметим, что по построению из следует равенство двух формул, кодирующих любые две конфигурации и , такие что . Поскольку предикат равенства согласован с предикатными символами (в частности с ), то оценка совпадает с оценкой , где — формула, кодирующая некую конфигурацию , что , где — начальная конфигурация, опять же при условии .Если допускает , то , поэтому оценка совпадает с оценкой для какого-то . По построению из в частности следует, что , а значит, в этом случае оказывается общезначима.Если же Таким образом, не допускает , то и доказательства для существовать не будет. Это вытекает из того факта, что во всём множестве присутствует лишь одна формула, содержащая предикат — . Поэтому доказать следование можно лишь через эту формулу. Для подмены аргументов в предикатах существуют только аксиомы равенства, а не равна никакой другой формуле вида , поэтому от не перейти к , а значит, и доказательство построить не удастся. Поэтому эта формула не будет общезначимой. , а значит, неразрешим, поскольку неразрешим. |