§ 12.11. Тезис Чёрча
Вернемся к поставленной нами задаче — построить класс вычислимых функций. Рещая эту задачу, мы последовательно построили класс элементарных функций, затем класс примитивно-рекурсивных функций и, наконец, класс общерекурсивных функций. Решили ли мы поставленную задачу? Потребуется ли нам расширять и класс общерекурсивных функций?
Многочисленные попытки расширения класса общерекурсивных функций не привели к успеху. В 1936 г. Чёрч выдвинул тезис, согласно которому всякая эффективно вычислимая функция (эффектно разрешимый предикат) является общерекурсивной (см. [110]).
В силу этого тезиса класс вычислимых функций совпадает с классом общерекурсивных функций.
Тезис Чёрча нельзя доказать, так как в нем, с одной стороны, фигурирует расплывчатое понятие вычислимой функции, а с другой стороны — точное математическое понятие общерекурсивной функции. Этот тезис является научной гипотезой, в пользу которой высказан ряд важных доводов и которую не удалось опровергнуть. Одним из таких доводов является то, что различные уточнения понятия «алгоритм», сделанные разными авторами, оказались равносильными. Так, например, описанный в § 12.4 нормальный алгоритм Маркова оказался сводимым к общерекурсивным функциям.
Выше мы отождествили понятия «алгоритм» и «вычисление значений арифметической функции».
В свете тезиса Чёрча задача оказывается алгоритмически разрешимой лишь тогда, когда арифметическая функция, к вычислению которой мы сводим нашу задачу, оказывается общерекурсивной.
Резюмируя, можно сказать коротко: алгоритм существует лишь тогда, когда может быть построена соответствующая общерекурсивная функция.
Наоборот, в силу тезиса Чёрча, алгоритмическая неразрешимость проблемы означает, что арифметическая функция, к вычислению которой сводится задача, не является общерекурсивной.
Часто доказательство алгоритмической неразрешимости оказывается не легче, чем поиск нужного алгоритма. Однако в некоторых случаях удается доказать алгоритмическую неразрешимость. Мы приведем без доказательства два примера такого рода.
Первый пример. Мы могли бы получить полное представление о том, какие системы равенств Е определяют общерекурсивные функции, и смогли бы эффективно перенумеровать все общерекурсивные функции, если бы имелся алгоритм, позволяющий по гёделевскому номеру
системы равенств Е узнать, определяет ли система Е общерекурсивную функцию.
Иначе говоря, проблема была бы решена, если бы существовала, например, такая общерекурсивная функция
:
Удалось доказать [42], что подобной общерекурсивной функции
не существует. Поэтому оказывается алгоритмически неразрешимой проблема распознавания того, какие системы Е определяют общерекурсивные функции. Множество общерекурсивных функций оказалось счетным, но не эффективно.
Второй пример. Оказалась алгоритмически неразрешимой следующая проблема: требуется найти алгоритм, позволяющий для любой примитивно-рекурсивной функции
(любого примитивно-рекурсивного предиката
) узнать, обладает ли эта функция свойством
(12.32)
(для предиката, соответственно
)
.
Так как примитивно-рекурсивные функции могут быть эффективно перенумерованы, то задача может быть сведена к нахождению такой вычислимой функции
:
Эта функция оказалась не общерекурсивной и, следовательно, невычислимой.
Условие (12.32) можно несколько ослабить, и все-таки задача остается алгоритмически неразрешимой.
Именно, было доказано, что алгоритмически неразрешима даже такая простая задача: при заданной примитивно-рекурсивной функции
для любого
требуется узнать, справедливо ли для этого
условие
Алгоритмически неразрешима также следующая задача: для любого примитивно-рекурсивного предиката
узнать, справедливо ли
Во всех случаях доказательство свелось к доказательству того, что соответствующая распознающая функция оказывалась не общерекурсивной.
Часто доказательство алгоритмической неразрешимости проводят следующим образом: показывают, что рассматриваемая проблема сводится к другой проблеме, алгоритмическая неразрешимость которой доказана. Иногда достаточно показать, что этим свойством обладает даже более узкая проблема, являющаяся частным случаем рассматриваемой.
В гл. VIII и IX таким методом доказана алгоритмическая неразрешимость двух основных проблем теории конечных автоматов и последовательностных машин.