¿Es posible decidir la equivalencia

18

Sé que es imposible decidir la equivalencia para el cálculo lambda sin tipo. Citando a Barendregt, HP El cálculo Lambda: su sintaxis y semántica. Holanda Septentrional, Amsterdam (1984). :β

Si A y B son disjuntos, conjuntos no vacíos de términos lambda que están cerrados en igualdad, entonces A y B son recursivamente inseparables. Se deduce que si A es un conjunto no trivial de términos lambda cerrados en igualdad, entonces A no es recursivo. Entonces, no podemos decidir el problema "M = x?" para cualquier M. en particular. Además, se deduce que Lambda no tiene modelos recursivos.

Si tenemos un sistema de normalización, como el Sistema F, entonces podemos decidir la equivalencia "desde afuera" reduciendo los dos términos dados y comparando si sus formas normales son las mismas o no. Sin embargo, ¿podemos hacerlo "desde adentro"? ¿Existe un combinador E del Sistema-F tal que para dos combinadores M y N tengamos E M N = verdadero si M y N tienen la misma forma normal, y E M N = falso de lo contrario? ¿O puede hacerse esto al menos para algunas M s? Para construir un combinador E MβEMNEMN=trueMNEMN=falseMEMtal que es verdadero si N β M ? Si no, ¿por qué?EMNNβM

Petr Pudlák
fuente

Respuestas:

19

No, no es posible. Considere los siguientes dos habitantes del tipo .(AB)(AB)

M=λf.fN=λf.λa.fa

Estas son formas anormales distintas, pero no se pueden distinguir por un término lambda, ya que N es una expansión η de M , y la expansión η conserva la equivalencia observacional en un cálculo lambda tipificado puro.βNηMη

Cody preguntó qué sucede si también modificamos por -equivalencia. La respuesta sigue siendo negativa, debido a la parametricidad. Considere los siguientes dos términos en el tipo ( α .η :(α.αα)(α.αα)

M=λf:(α.αα).Λα.λx:α.f[α.αα](Λβ.λy:β.y)[α]xN=λf:(α.αα).Λα.λx:α.f[α]x

Son distintas normales, η- forma larga, pero son observacionalmente equivalentes. De hecho, todas las funciones de este tipo son equivalentes, ya que α .βη es la codificación del tipo de unidad, por lo que todas las funciones del tipo ( α .α.αα debe ser extensionalmente equivalente.(α.αα)(α.αα)

Neel Krishnaswami
fuente
2
Ok, la misma pregunta con -equivalencia :)β,η
cody
11

Otra posible respuesta a una perfectamente correcta de Neel: Supongamos que hay es un combinador , así escribió en el sistema de F tal que mantiene la condición anterior. El tipo de E es:EE

E:α.ααbool

Resulta que hay un teorema de forma gratuita que expresa que dicho término es necesariamente constante :

T, t,u,t,u:T, E T t u=E T t u

E

cody
fuente