Cálculo lambda reducción de funciones
Frecuentes
Visto 319 equipos
1
Soy muy nuevo en el cálculo lambda y mientras leía un tutorial, me encontré con esto. Aquí está mi ecuación.
Y = ƛf.( ƛx.f(xx)) ( ƛx.f(xx))
Ahora, si aplicamos otro término, digamos F (YF), entonces, ¿cómo podemos reducir esto? Si estoy en lo correcto de acuerdo con la reducción beta, podemos reemplazar todos los f in ( ƛx.f(xx)) by ( ƛx.f(xx)), es esto correcto y si es así, ¿cómo podemos hacer eso?
Muchas Gracias
1 Respuestas
0
Pasos de reducción:
Y = ƛf.( ƛx.f(xx)) ( ƛx.f(xx)) = ƛf.( f ( ƛx.f(xx) ƛx.f(xx) ) )
= ƛf.( f ( f (ƛx.f(xx) ƛx.f(xx))))
= ƛf.( f ( f ( f (ƛx.f(xx) ƛx.f(xx))))
= ƛf.( f ( f ( f ( f (ƛx.f(xx) ƛx.f(xx))))) = ...
Así que este término Lambda entra en un bucle infinito...
Explicación:
Veamos el término ( ƛx.f(xx) ƛx.f(xx) )
nosotros sustituimos ƛx.f(xx)
f'
lo que significa (f' f')
=> activando el término f'
en sí mismo.
Podría ser más fácil verlo así:
( ƛy.f(yy) ƛx.f(xx) )
ahora cuando activas el ƛy.f(yy)
y proporcionar la entrada (que sustituye y
ƛx.f(xx)
) el resultado es: f(ƛx.f(xx) ƛx.f(xx))
que a su vez, puede repetir el mismo proceso una y otra vez y la expresión lambda solo gastará...
Observación:
Está mal escribir:
Y = ƛf.( ƛx.f(xx)) ( ƛx.f(xx))
en realidad debería ser:
Y = ƛf.(ƛx.f(xx) ƛx.f(xx))
La diferencia entre los ƛx.f(xx)
y (ƛx.f(xx))
es que este último es una activación de ƛx.f(xx)
- no tiene sentido activarlo así (ƛx.f(xx))
ya que necesitamos un x
(entrada) para activarlo.
Por último:
Y = ƛf.( ƛx.f(xx)) ( ƛx.f(xx)) = ƛf.( f ( ƛx.f(xx) ƛx.f(xx) ) )
significado:
YF = ( ƛx.F(xx)) ( ƛx.F(xx)) = F(ƛx.F(xx)) ( ƛx.F(xx)) = F(YF)
Respondido 04 Jul 12, 07:07
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas lambda-calculus or haz tu propia pregunta.
¿Podría indicarme los pasos a seguir o las técnicas que puedo utilizar? Pradeep
No entiendo cómo obtuviste ƛf.( f ( ƛx.f(xx) ƛx.f(xx) ) ) ¿Podrías decir el teorema utilizado? Pradeep
Entonces, si escribimos una activación como YF, ¿es igual a
( ƛx.F(xx)) ( ƛx.F(xx))
- Pradeep( ƛx.F(xx))
es una activación deƛx.F(xx)
sin parámetros (lo que no significa nada en nuestro caso porque solo se puede activar en un parámetro). Sin embargo, no estoy seguro de qué quisiste decir con YF. - Nir AlfasiEncontré esto mientras intentaba probar que Y es un combinador de primer punto. Entonces, mi objetivo es probar que si F es cualquier término, entonces F(YF) = YF - Pradeep