salve! allora anche dopo aver letto svariati documenti su codesto argomento non credo di averci capito tanto, avendo trovato su google un'altra persona nella mia stessa situazione in questo identico forum spero quindi di poter trovare aiuto qui, vi chiedo scusa in anticipo nel caso stia scrivendo nella sezione sbagliata
da quello che ho capito io il lambda calcolo e un modo per rappresentare funzioni, ergo
λx.x rappresenta una funzione che prende in entrata x e restituisce x (ovvero la funzione identita)
λx.y rappresenta una funzione che prende in entrata x e restituisce y
la cosa che pero comincia a confondermi e che quando vedo gli esercizi trovo robba del tipo
(λxxxx.xx)(λx.xx)(λx.x)y((λx.x)x)
cosa diamine sto rappresentando con λxxxx.xx? una funzione che prende 4 x e restituisce 2 x? una robba del tipo λxλxλxλx? se scrivessi λxy.zw cosa starei scrivendo esattamente?
come si esegue esattamente una riduzione, nell esempio banale di λx.y la riduzione sarebbe in pratica y visto che e quello che restituisce la funzione rappresentata dal calcolo?
per forma normale intendiamo semplicemente un termine in cui abbiamo eseguito tutte le possibili riduzioni no?
come facciamo a trovare quali sono le variabili libere? (qui credo sia piu un problema della mia confusione riguardo alla sintassi del lambda calcolo) un esercizio ad esempio mi chiede di trovare le variabili libere di questo termine
λz.( ((λx.λx.yx)x)(vλz.λw.v) )
come lo fareste?