Términos de cálculo lambda que se reducen a sí mismos

13

En mi búsqueda continua para tratar de aprender el cálculo lambda, "Lambda-Calculus and Combinators an Introduction" de Hindley & Seldin menciona el siguiente artículo (por Bruce Lercher) que demuestra que la única expresión reducible que es la misma (conversión de módulo alfa) en sí misma es: (λx.xx)(λx.xx) .

Si bien creo el resultado, no sigo el argumento en absoluto.

Es bastante corto (menos de un párrafo). Cualquier explicación sería bienvenida.

Gracias,

Charlie

Charles Reich
fuente

Respuestas:

16

Primero, tenga en cuenta que el resultado indica que la única beta redex donde el lado derecho es igual (módulo de conversión alfa) al lado izquierdo es . Hay otros términos que se reducen a sí mismos, teniendo esta redex en un contexto.(λx.xx)(λx.xx)

Puedo ver cómo funciona la mayoría de las pruebas de Lercher, aunque hay puntos en los que no puedo pasar sin modificar ligeramente la prueba. Supongamos que (utilizo = para alfa equivalencia), y según la convención variable de suponer que x no se produce libre en B .(λx.A)B=[B/x]A=xB

Cuente el número de en el lado izquierdo y el lado derecho. La reducción elimina uno de la redex, además de los de B , y añade a todos los que hay en B veces el número de ocurrencias de x en A . En otras palabras, si L ( M ) es el número de λ 's en M y # x ( M ) es el número de ocurrencias libres de x en M, entonces 1 + L ( B ) = # x (λBBxAL(M)λM#x(M)xM . La única solución a esa ecuación de Diophantine es # x ( A ) = 2 (y L ( B ) = 1 pero no usaremos ese hecho).1+L(B)=#x(A)×L(B)#x(A)=2L(B)=1

No entiendo el argumento de Lercher para el párrafo anterior. Cuenta el número de y los términos atómicos; Vamos a escribir este # ( M ) . La ecuación es # ( B ) + 1 = # x ( A ) × ( # ( B ) - 1 ) , que tiene dos soluciones: # x ( A ) = 2 , # ( B ) = 3 y # x ( Aλ#(M)#(B)+1=#x(A)×(#(B)1)#x(A)=2,#(B)=3 . No veo una forma obvia de eliminar la segunda posibilidad.#x(A)=3,#(B)=2

Ahora apliquemos el mismo razonamiento al número de subterms igual a en ambos lados. La reducción elimina uno cerca de la parte superior y agrega tantos como hay ocurrencias sustituidas de x en A , es decir 2. Por lo tanto, una aparición más de B debe desaparecer; dado que los de A permanecen (porque B no contiene x libre ), la aparición adicional de B en el lado izquierdo debe ser λ x . Una .BxABABxBλx.A

No entiendo cómo Lercher deduce que no tiene B como subterráneo, pero esto no es relevante para la prueba.AB

De la hipótesis inicial, es una aplicación. Este no puede ser el caso si A = x , por lo tanto, A es una aplicación M N , con λ x . M N = [ ( λ x . M N ) / x ] M = [ ( λ x . M N ) / x ] N[(λx.A)/x]AA=xAMNλx.MN=[(λx.MN)/x]M=[(λx.MN)/x]N. Dado que no puede ser un subterráneo, M no puede tener la forma λ x . P , entonces M = x . Del mismo modo, N = x .MMλx.PM=xN=x


Prefiero una prueba sin argumentos de conteo. Supongamos que .(λx.A)B=[B/x]A

Si entonces tenemos ( λ x . A ) B = B , lo cual no es posible ya que B no puede ser un subterráneo de sí mismo. Por lo tanto, dado que el lado derecho de la hipótesis es igual a una aplicación, A debe ser una aplicación A 1 A 2 y λ x . A = [ B / x ] A 1 y B = [ B / x ] A 2 .A=x(λx.A)B=BBAA1A2λx.A=[B/x]A1B=[B/x]A2

De la igualdad anterior, o A 1 = λ x . [ B / x ] A . En el segundo caso, A 1 = λ x . ( λ x . A 1 A 2 ) B , que no es posible ya que $ A_1 no puede ser un subterráneo de sí mismo.A1=xA1=λx.[B/x]AA1=λx.(λx.A1A2)B

A partir de la última igualdad, o A 2 no tiene x libre (de lo contrario, B sería un subterráneo de sí mismo). En el último caso, A 2 = B .A2=xA2xBA2=B

Hemos demostrado que . El lado derecho de la hipótesis inicial es, por lo tanto, B B y B = λ x . A = λ x . x x .A=xxBBB=λx.Aλx.xx

Gilles 'SO- deja de ser malvado'
fuente