У меня есть три связанных подвопроса, которые выделены пунктами ниже (нет, их нельзя разделить, если вам интересно). Андрей Бауэр писал здесь , что некоторые функции реализуются через машину Тьюринга, но не через лямбда-исчисление. Ключевой шаг его рассуждений:
Однако, если мы используем лямбда-исчисление, то [программа] c должна вычислять число, представляющее машину Тьюринга, из лямбда-члена, представляющего функцию f. Это невозможно сделать (я могу объяснить почему, если вы зададите это как отдельный вопрос).
- Я хотел бы видеть объяснение / неофициальное доказательство.
Я не вижу, как применить теорему Райса здесь; это применимо к проблеме «эта машина Тьюринга T и этот лямбда-член L эквивалентны?», потому что применение этого предиката к эквивалентным терминам дает один и тот же результат. Однако требуемая функция может вычислять разные, но эквивалентные ТМ для разных, но эквивалентных лямбда-терминов.
- Более того, если проблема заключается в самоанализе лямбда-члена, я думаю, что передача кодировки Лямбды-члена Гёделя также была бы приемлемой, не так ли?
С одной стороны, учитывая, что его пример включает вычисление в лямбда-исчислении числа шагов, необходимых машине Тьюринга для выполнения данной задачи, я не очень удивлен.
- Но поскольку здесь лямбда-исчисление не может решить проблему, связанную с машиной Тьюринга, мне интересно, можно ли определить аналогичную проблему для лямбда-исчисления и доказать, что она не разрешима для машин Тьюринга, или на самом деле существует разница в мощности в пользу Машины Тьюринга (что бы меня удивило).