Скажем, существуют машины Тьюринга M1, M2, M3, языки, которые они распознают, это L(M1), L(M2) и L(M3) соответственно. Следующий язык L = {(M1, M2, M3) : L(M1), L(M2) и L(M3) не равны} Является ли язык разрешимым? Рекурсивно перечислимы? Или ни то, ни другое?
Разрешимость и рекурсивная перечислимость
Ответы (1)
Пусть MMi,I — машина, которая имитирует работу другой машины Mi на входе I
и возвращает true
, если Mi в конце концов останавливается на I
и в противном случае зацикливается навсегда.
Пусть M∞ — тривиальная машина, которая просто бесконечно зацикливается.
Тогда (MMi,I, M∞, M∞) находится в L тогда и только тогда, когда Mi останавливается на входе I
.
Это сводит разрешимость проблемы остановки к разрешимости L, поэтому L неразрешима.
=============
Далее докажем, что L не является рекурсивно перечислимым от противного.
Предположим, что L рекурсивно перечислима, поэтому существует машина Тьюринга M такая, что если Mi, Mj и Mk — три Машины, соответствующие языки которых не равны, M в конце концов выдаст тройку (Mi, Mj, Mk).
Теперь давайте рассмотрим модификацию M, называемую M', которая определяется путем взятия M и добавления значения (M, M', M') к L(M'). Важный вопрос, который нужно задать, состоит в том, находится ли (M, M', M') в L? Что ж, если (М, М', М') находится в L, то L(M) не должно быть равно L(M') (иначе это не соответствовало бы определению быть в L), поэтому L(M) не должен включать (M, M', M') (поскольку это единственная модификация, которую мы сделали). Наоборот, если (M, M', M') не находится в L, то L(M) != L(M') (потому что мы добавили этот рубец в L(M')), поэтому он должен быть в L (М), потому что языки не равны.
Таким образом, мы пришли к парадоксу, из которого следует, что M не может существовать, а значит, L не является рекурсивно перечислимым.