Eu sei que é impossível decidir equivalência para o cálculo lambda sem tipo. Citando Barendregt, HP O cálculo Lambda: sua sintaxe e semântica. Holanda do Norte, Amsterdã (1984). :
Se A e B são disjuntos, conjuntos não vazios de termos lambda que são fechados em igualdade, então A e B são recursivamente inseparáveis. Daqui resulta que, se A é um conjunto não trivial de termos lambda fechado em igualdade, então A não é recursivo. Portanto, não podemos decidir o problema "M = x?" para qualquer M. em particular. Da mesma forma, o Lambda não possui modelos recursivos.
Se temos um sistema de normalização, como o Sistema F, podemos decidir equivalência "externa", reduzindo os dois termos fornecidos e comparando se suas formas normais são iguais ou não. No entanto, podemos fazê-lo "de dentro"? Existe um combinador System-F tal que, para dois combinadores e , tenhamos se e tiverem a mesma forma normal e ? Ou isso pode ser feito pelo menos para alguns ? Para construir um combinador forma que seja verdadeiro seE M N E M N = verdadeiro M N E M N = falso M E M E M N N ≡ β M? Se não, por que?
fonte
Outra resposta possível para um perfeitamente correta de Neel: Suponha que há é um combinator , bem digitado no sistema de F tal que a condição acima detém. O tipo de E é:E E
Acontece que existe um teorema de graça que expressa que esse termo é necessariamente constante :
fonte