Синтаксис и семантика. Теорема Райса - Рекурсивные функции

Попробуем теперь проанализировать круг проблем, неразрешимость которых доказана в предыдущем пункте. Общим для них является то, что по кодам, т. е. Синтаксису программ вычисления одной или нескольких функции (и некоторым дополнительным данным) мы пытались распознать свойства самих функций, т. е. их Семантику.

В общем случае, любое свойство функций можно отождествить с некоторым классом функций (обладаюших этим свойством); тогда некоторая функция f обладает данным свойством, когда она принадлежит классу. Так, какие же свойства функций можно алгоритмически распознать по их кодам? Следующая теорема дает несколько обескураживающий ответ - никакие!

Теорема Райса

Для произвольного нетривиального (непустого и собственного) подкласса класса всех вычислимых функцийпроблема 'X ' неразрешима.

Доказательство (сведение к проблеме частичной остановки).

Поскольку класс разрешимых предикатов замкнут относительно операции отрицания, то проблема 'X ' разрешима тогда и только тогда, когда разрешима проблема 'X '. Поэтому, без ограничения общности можно считать, что нигде не определенная функция - обозначим ее f - принадлежит (в противном случае будем доказывать неразрешимость проблемы'X '). Пусть g - некоторая функция из (по условию, оно не пусто) и, по определению, f(x, y)=g(y), если X (x) определена, и f(x, y) не определена, в противном случае. По теореме о параметризации, найдется тотальная вычислимая функция k, такая что x, y (K(x)(y)=f(x, y) ). Тогда

Если X(x) определена, то K(x)=gи K(x) , и

Если X(x) не определена, то K(x)=f и K(x)

Таким образом, умея распознавать проблему 'X ', мы смогли бы распознать и проблему частичной остановки, что противоречит доказанному ранее.

Похожие статьи




Синтаксис и семантика. Теорема Райса - Рекурсивные функции

Предыдущая | Следующая