Мы знаем, что бета-равенство просто типизированных лямбда-терминов разрешимо. Учитывая M, N: σ → τ, разрешимо ли для всех X: σ, MX NX?
10
Мы знаем, что бета-равенство просто типизированных лямбда-терминов разрешимо. Учитывая M, N: σ → τ, разрешимо ли для всех X: σ, MX NX?
Ответы:
Как я уже сказал в своем комментарии, ответ в целом - нет.
Важный момент для понимания (я говорю это для Viclib, который, кажется, узнает об этих вещах), состоит в том, что наличие языка программирования / набора машин, на котором все программы / вычисления не заканчиваются, ни в коем случае не подразумевает равенство функций (т.е. программы / машины вычисляют одну и ту же функцию) разрешима. Простой пример: возьмем набор машин Тьюринга с полиномиальной синхронизацией. По определению все такие машины заканчиваются на всех входах. Теперь для любой машины Тьюринга, какой бы ни была , существует машина Тьюринга которая при вводе строки моделируетшаги вычисления на фиксированном входе (скажем, пустой строке) и принимает, если заканчивается не болееМ 0 х | х | М М | х | N M 0 N M 0 N MM M0 x |x| M M |x| шаги или отклоняет иначе. Если - машина Тьюринга, которая всегда сразу отклоняет, и оба (очевидно) синхронизируются полиномиально, и все же, если бы мы могли решить, ли и и ту же функцию (или, в этом случае, выбрать один и тот же язык), мы могли бы решить, заканчивается ли (который, помните, является произвольной машиной Тьюринга) пустой строкой.N M0 N M0 N M
В случае простого типа -calculus (STLC) работает аналогичный аргумент, за исключением того, что измерение выразительной мощности STLC не так тривиально, как в приведенном выше случае. Когда я писал свой комментарий, я имел в виду пару работ Хиллебранда, Канеллакиса и Майерсона начала 90-х годов, которые показывают, что при использовании более сложных типов, чем обычный тип церковных целых чисел, можно кодировать в STLC достаточно сложный вычисления для приведенного выше аргумента для работы. На самом деле, теперь я вижу, что необходимый материал уже находится в упрощенном доказательстве теоремы Статмана:λ
Гарри Дж. Марсон, Простое доказательство теоремы Статмана. Теоретическая информатика, 103 (2): 387-394, 1992. (Доступно онлайн здесь ).
В этой работе, Mairson показывает, что для любой машины Тьюринга , существует простой тип и -term , кодирующей функции переходов . (Это не очевидно априори, если иметь в виду чрезвычайно слабую выразительную силу STLC на целочисленных значениях Церкви. Действительно, кодирование Mairson не является непосредственным). Из этого нетрудно построить терминσ λ δ M : σ → σ MM σ λ δM:σ→σ M
(где - это экземпляр в типа целых чисел Чёрча), такой что сводится к если заканчивается не более чем на шагов, когда передал пустую строку или в противном случае сводится к . Как и выше, если бы мы могли решить, что функция, представленная как является константы , мы бы решили завершение в пустой строке.σ t Mnat[σ] σ 1 _ Mn 0 _ t M 0 _ MtMn–– 1– M n 0– tM 0– M
источник