Valutazione del calcolo lambda


8

So che questa è una domanda semplice, ma qualcuno può mostrarmi come riduce a .(λy.λx.λy.y)(λx.λy.y)λx.λy.y


Sei sicuro di averlo tra parentesi correttamente? Perché il modo in cui è scritto, non vedo come possa essere semplificato affatto. Se lo fosse (λy.λx.λy.y) (λx.λy.y), si ridurrebbe a λx.λy.y.
sepp2k,

Sì grazie ho aggiornato la mia domanda. Potresti spiegare come hai ottenuto λx.λy.y
prerm2686 il

Risposte:


10

Il motivo per cui riduce a non a è che nel corpo di riferisce all'argomento della terza lambda, non della prima.(λy.λx.λy.y)(λx.λy.y)λx.λy.yλx.λy.λx.λy.yyλy.λx.λy.y

Se rinominate gli argomenti con nomi distinti, verrebbero scritti come . Pertanto, se si applica tale funzione all'argomento, ciò significa che ogni occorrenza di in deve essere sostituita dall'argomento. Tuttavia non appare affatto in quell'espressione, quindi l'argomento viene semplicemente ignorato e il risultato è solo .λy.λx.λy.yλy1.λx.λy2.y2y1λx.λy2.y2y1λx.λy2.y2


Oh ok, quindi y2 non è associato a y1. Grazie mille.
prerm2686,

7
@ prerm2686 Una variabile è sempre vincolata dal più vicino che comprende . Il subterm è la funzione di identità, indipendentemente da dove la usi, anche se la usi in un contesto che usa anche il nome della variabile . λλy.yy
Gilles 'SO- smetti di essere malvagio' il

La riduzione su Wikipedia fornisce un trattamento più formale della conversione α e della riduzione β. Un riferimento che mi piace è il libro di Chris Hankin
Romuald,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.