Prove e Tipi: Un’introduzione all’isomorfismo di Curry-Howard
-
Upload
independent -
Category
Documents
-
view
0 -
download
0
Transcript of Prove e Tipi: Un’introduzione all’isomorfismo di Curry-Howard
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Prove e Tipi:Un’introduzione all’isomorfismo di
Curry-Howard
Dipartimento di Matematica ed Informatica, Universita diCagliari
9 maggio 2012
Paolo Di [email protected]
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Referenze
J.Y. Girard, Y. Lafont, P. Taylor : Proofs and Types.Cambridge University, 1989.
L. Tortora di Falco: Sulla struttura logica del calcolo.Rendiconti di Matematica e delle sue applicazioni (vol. 26,serie VII - pagg. 367-404), 2006.
Le slides sono disponibili sul sito del gruppo di ricerca TrustworthyComputational Societies, all’indirizzo http://tcs.unica.it
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Indice
1 Introduzione: logica e informatica
2 Il λ-calcolo e la programmazione funzionale
3 La deduzione naturale e la corrispondenza prove-programmi
4 Potere espressivo: Sistema F e polimorfismo
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Indice
1 Introduzione: logica e informatica
2 Il λ-calcolo e la programmazione funzionale
3 La deduzione naturale e la corrispondenza prove-programmi
4 Potere espressivo: Sistema F e polimorfismo
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Cosa c’entra la logica con l’informatica?
David Hilbert
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La questione dei fondamenti
Teoria degli insiemi (Cantor): L’insieme R dei numeri reali non enumerabile i.e. non puo essere messo incorrispondenza biunivoca con l’insieme N dei numerinaturali: la sua cardinalita e strettamente superiore.
Geometrie non euclidee (Riemann): Scoperte nel tentativo difornire una dimostrazione per assurdo del V postulatodi Euclide (“Per un punto passa una e una sola rettaparallela ad una retta data), sono geometrie costruitenegando il V postulato.
Secondo problema di Hilbert:
E’ possibile dimostrare la consistenza della matematica?.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La questione dei fondamenti
Teoria degli insiemi (Cantor): L’insieme R dei numeri reali non enumerabile i.e. non puo essere messo incorrispondenza biunivoca con l’insieme N dei numerinaturali: la sua cardinalita e strettamente superiore.
Geometrie non euclidee (Riemann): Scoperte nel tentativo difornire una dimostrazione per assurdo del V postulatodi Euclide (“Per un punto passa una e una sola rettaparallela ad una retta data), sono geometrie costruitenegando il V postulato.
Secondo problema di Hilbert:
E’ possibile dimostrare la consistenza della matematica?.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La questione dei fondamenti
Teoria degli insiemi (Cantor): L’insieme R dei numeri reali non enumerabile i.e. non puo essere messo incorrispondenza biunivoca con l’insieme N dei numerinaturali: la sua cardinalita e strettamente superiore.
Geometrie non euclidee (Riemann): Scoperte nel tentativo difornire una dimostrazione per assurdo del V postulatodi Euclide (“Per un punto passa una e una sola rettaparallela ad una retta data), sono geometrie costruitenegando il V postulato.
Secondo problema di Hilbert:
E’ possibile dimostrare la consistenza della matematica?.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Entscheidungsproblem
Problema della decisione (Hilbert-Ackermann, 1928):
Dato un enunciato dell’ l’aritmetica, esiste una procedurameccanica effettiva capace di stabilire se l’enunciato in questionesia deducibile o meno dagli assiomi?
Es: “ogni numero pari maggiore di 2 puo essere scritto comesomma di due numeri primi” (congettura di Goldbach)
La procedura prende in input l’enunciato e restituisce inoutput una risposta, “Sı” o “No”, in un numero finito di passi.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Entscheidungsproblem
Problema della decisione (Hilbert-Ackermann, 1928):
Dato un enunciato dell’ l’aritmetica, esiste una procedurameccanica effettiva capace di stabilire se l’enunciato in questionesia deducibile o meno dagli assiomi?
Es: “ogni numero pari maggiore di 2 puo essere scritto comesomma di due numeri primi” (congettura di Goldbach)
La procedura prende in input l’enunciato e restituisce inoutput una risposta, “Sı” o “No”, in un numero finito di passi.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Entscheidungsproblem
Problema della decisione (Hilbert-Ackermann, 1928):
Dato un enunciato dell’ l’aritmetica, esiste una procedurameccanica effettiva capace di stabilire se l’enunciato in questionesia deducibile o meno dagli assiomi?
Es: “ogni numero pari maggiore di 2 puo essere scritto comesomma di due numeri primi” (congettura di Goldbach)
La procedura prende in input l’enunciato e restituisce inoutput una risposta, “Sı” o “No”, in un numero finito di passi.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Entscheidungsproblem
Problema della decisione (Hilbert-Ackermann, 1928):
Dato un enunciato dell’ l’aritmetica, esiste una procedurameccanica effettiva capace di stabilire se l’enunciato in questionesia deducibile o meno dagli assiomi?
Modello di calcolo:
Definizione matematica rigorosa della nozione intuitiva diprocedura meccanica di calcolo.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Entscheidungsproblem
Problema della decisione (Hilbert-Ackermann, 1928):
Dato un enunciato dell’ l’aritmetica, esiste una procedurameccanica effettiva capace di stabilire se l’enunciato in questionesia deducibile o meno dagli assiomi?
Modello di calcolo:
Definizione matematica rigorosa della nozione intuitiva diprocedura meccanica di calcolo.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Modelli di calcolo: le funzioni ricorsive
Kurt Godel
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Modelli di calcolo: le funzioni ricorsive
Modello assiomatico: la classe delle funzioni ricorsive e la piupiccola classe contenente :
alcune funzioni di base (funzioni zero, successore, proiezioni)chiusa rispetto a certe operazioni (composizione, ricorsione...)
Pro: Definizione matematicamente elegante.
Contro: manca una nozione esplicita di passo di calcolo
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Modelli di calcolo: le funzioni ricorsive
Modello assiomatico: la classe delle funzioni ricorsive e la piupiccola classe contenente :
alcune funzioni di base (funzioni zero, successore, proiezioni)
chiusa rispetto a certe operazioni (composizione, ricorsione...)
Pro: Definizione matematicamente elegante.
Contro: manca una nozione esplicita di passo di calcolo
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Modelli di calcolo: le funzioni ricorsive
Modello assiomatico: la classe delle funzioni ricorsive e la piupiccola classe contenente :
alcune funzioni di base (funzioni zero, successore, proiezioni)chiusa rispetto a certe operazioni (composizione, ricorsione...)
Pro: Definizione matematicamente elegante.
Contro: manca una nozione esplicita di passo di calcolo
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Modelli di calcolo: le funzioni ricorsive
Modello assiomatico: la classe delle funzioni ricorsive e la piupiccola classe contenente :
alcune funzioni di base (funzioni zero, successore, proiezioni)chiusa rispetto a certe operazioni (composizione, ricorsione...)
Pro: Definizione matematicamente elegante.
Contro: manca una nozione esplicita di passo di calcolo
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Modelli di calcolo: le funzioni ricorsive
Modello assiomatico: la classe delle funzioni ricorsive e la piupiccola classe contenente :
alcune funzioni di base (funzioni zero, successore, proiezioni)chiusa rispetto a certe operazioni (composizione, ricorsione...)
Pro: Definizione matematicamente elegante.
Contro: manca una nozione esplicita di passo di calcolo
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Modelli di calcolo: le macchine di Turing
Alan Turing
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Modelli di calcolo: le macchine di Turing
Modello “concreto”: una macchina di Turing e costituita da :
un nastro infinito;
una testina in grado di leggere, scrivere e spostarsi sul nastro;un insieme di istruzioni, che descrive come la macchina passada un determinato stato ad un altro.
Pro: nozione precisa di passo di calcolo, evidentementemeccanizzabile.
Contro: Difficile dimostrare proprieta astratte in questomodello.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Modelli di calcolo: le macchine di Turing
Modello “concreto”: una macchina di Turing e costituita da :
un nastro infinito;una testina in grado di leggere, scrivere e spostarsi sul nastro;
un insieme di istruzioni, che descrive come la macchina passada un determinato stato ad un altro.
Pro: nozione precisa di passo di calcolo, evidentementemeccanizzabile.
Contro: Difficile dimostrare proprieta astratte in questomodello.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Modelli di calcolo: le macchine di Turing
Modello “concreto”: una macchina di Turing e costituita da :
un nastro infinito;una testina in grado di leggere, scrivere e spostarsi sul nastro;un insieme di istruzioni, che descrive come la macchina passada un determinato stato ad un altro.
Pro: nozione precisa di passo di calcolo, evidentementemeccanizzabile.
Contro: Difficile dimostrare proprieta astratte in questomodello.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Modelli di calcolo: le macchine di Turing
Modello “concreto”: una macchina di Turing e costituita da :
un nastro infinito;una testina in grado di leggere, scrivere e spostarsi sul nastro;un insieme di istruzioni, che descrive come la macchina passada un determinato stato ad un altro.
Pro: nozione precisa di passo di calcolo, evidentementemeccanizzabile.
Contro: Difficile dimostrare proprieta astratte in questomodello.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Modelli di calcolo: le macchine di Turing
Modello “concreto”: una macchina di Turing e costituita da :
un nastro infinito;una testina in grado di leggere, scrivere e spostarsi sul nastro;un insieme di istruzioni, che descrive come la macchina passada un determinato stato ad un altro.
Pro: nozione precisa di passo di calcolo, evidentementemeccanizzabile.
Contro: Difficile dimostrare proprieta astratte in questomodello.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Modelli di calcolo: il λ-calcolo
Alonzo Church
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Modelli di calcolo: il λ-calcolo
Prende il meglio dei due mondi:
Definizione matematicamente elegante: si basa unicamentesulla nozione di funzione e di applicazione di funzioni.
Possiede una nozione esplicita di “passo di calcolo” (perquanto non cosı elementare come quella della macchina diTuring)
E’ il nucleo di base di tutti i linguaggi di programmazionefunzionali (Lisp, ML, etc)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Modelli di calcolo: il λ-calcolo
Prende il meglio dei due mondi:
Definizione matematicamente elegante: si basa unicamentesulla nozione di funzione e di applicazione di funzioni.
Possiede una nozione esplicita di “passo di calcolo” (perquanto non cosı elementare come quella della macchina diTuring)
E’ il nucleo di base di tutti i linguaggi di programmazionefunzionali (Lisp, ML, etc)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Modelli di calcolo: il λ-calcolo
Prende il meglio dei due mondi:
Definizione matematicamente elegante: si basa unicamentesulla nozione di funzione e di applicazione di funzioni.
Possiede una nozione esplicita di “passo di calcolo” (perquanto non cosı elementare come quella della macchina diTuring)
E’ il nucleo di base di tutti i linguaggi di programmazionefunzionali (Lisp, ML, etc)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Modelli di calcolo: il λ-calcolo
Prende il meglio dei due mondi:
Definizione matematicamente elegante: si basa unicamentesulla nozione di funzione e di applicazione di funzioni.
Possiede una nozione esplicita di “passo di calcolo” (perquanto non cosı elementare come quella della macchina diTuring)
E’ il nucleo di base di tutti i linguaggi di programmazionefunzionali (Lisp, ML, etc)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Equivalenza dei modelli di calcolo
Teorema
Data una qualsiasi funzione f da interi a interi, f eTuring-calcolabile se e solo se e ricorsiva se e solo se e λ-calcolabile.
Tesi di Church-Turing
Ogni funzione per cui esiste una procedura effettiva di calcolo eTuring-calcolabile.
La tesi non e dimostrabile (la nozione di procedura effettivanon e formale);
l’evidenza “empirica” conferma la tesi di Church-Turing.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Equivalenza dei modelli di calcolo
Teorema
Data una qualsiasi funzione f da interi a interi, f eTuring-calcolabile se e solo se e ricorsiva se e solo se e λ-calcolabile.
Tesi di Church-Turing
Ogni funzione per cui esiste una procedura effettiva di calcolo eTuring-calcolabile.
La tesi non e dimostrabile (la nozione di procedura effettivanon e formale);
l’evidenza “empirica” conferma la tesi di Church-Turing.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Equivalenza dei modelli di calcolo
Teorema
Data una qualsiasi funzione f da interi a interi, f eTuring-calcolabile se e solo se e ricorsiva se e solo se e λ-calcolabile.
Tesi di Church-Turing
Ogni funzione per cui esiste una procedura effettiva di calcolo eTuring-calcolabile.
La tesi non e dimostrabile (la nozione di procedura effettivanon e formale);
l’evidenza “empirica” conferma la tesi di Church-Turing.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Equivalenza dei modelli di calcolo
Teorema
Data una qualsiasi funzione f da interi a interi, f eTuring-calcolabile se e solo se e ricorsiva se e solo se e λ-calcolabile.
Tesi di Church-Turing
Ogni funzione per cui esiste una procedura effettiva di calcolo eTuring-calcolabile.
La tesi non e dimostrabile (la nozione di procedura effettivanon e formale);
l’evidenza “empirica” conferma la tesi di Church-Turing.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
E l’Entscheidungsproblem ?
Teorema di Church
Non esiste una macchina di Turing che dato un enunciatodell’aritmetica sia capace di determinare se esso sia o menodimostrabile.
Problema della fermata (Turing)
Non esiste una macchina di Turing capace di decidere se, a partireda un input arbitrario, un programma termini.
Secondo teorema di incompletezza (Godel)
Non e possibile dimostrare la coerenza dell’aritmetica con metodifiniti.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
E l’Entscheidungsproblem ?
Teorema di Church
Non esiste una macchina di Turing che dato un enunciatodell’aritmetica sia capace di determinare se esso sia o menodimostrabile.
Problema della fermata (Turing)
Non esiste una macchina di Turing capace di decidere se, a partireda un input arbitrario, un programma termini.
Secondo teorema di incompletezza (Godel)
Non e possibile dimostrare la coerenza dell’aritmetica con metodifiniti.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
E l’Entscheidungsproblem ?
Teorema di Church
Non esiste una macchina di Turing che dato un enunciatodell’aritmetica sia capace di determinare se esso sia o menodimostrabile.
Problema della fermata (Turing)
Non esiste una macchina di Turing capace di decidere se, a partireda un input arbitrario, un programma termini.
Secondo teorema di incompletezza (Godel)
Non e possibile dimostrare la coerenza dell’aritmetica con metodifiniti.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Nascita dei moderni calcolatori
John Von Neumann
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
A volte i problemi sono piu interessanti delle soluzioni....
I know that in or about 1943 or ’44 von Neumann waswell aware of the fundamental importance of Turing’spaper of 1936 ... Von Neumann introduced me to thatpaper and at his urging I studied it with care. Manypeople have acclaimed von Neumann as the ”father ofthe computer” (in a modern sense of the term) but I amsure that he would never have made that mistake himself.He might well be called the midwife, perhaps, but hefirmly emphasized to me, and to others I am sure, thatthe fundamental conception is owing to Turing.
Stan Frankel, collega di Von Neumann a Los Alamos.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Indice
1 Introduzione: logica e informatica
2 Il λ-calcolo e la programmazione funzionale
3 La deduzione naturale e la corrispondenza prove-programmi
4 Potere espressivo: Sistema F e polimorfismo
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Cosa e una funzione? Il punto di vista estensionale
Una funzione e una “legge” che associa ad ogni elemento deldominio di f (l’insieme dei valori di input X ) un elemento delcodominio di f (l’insieme dei valori di output Y )
Piu formalmente, una funzione e un sottoinsieme del prodottocartesiano X × Y tale che per ogni x ∈ X esiste un unicoy ∈ Y tale che (x , y) ∈ f .
L’esistenza e l’unicita rendono possibile la notazione f (x) = y ;ogni elemento del dominio di f determina in modo univoco unelemento del codominio di f .
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Cosa e una funzione? Il punto di vista estensionale
Una funzione e una “legge” che associa ad ogni elemento deldominio di f (l’insieme dei valori di input X ) un elemento delcodominio di f (l’insieme dei valori di output Y )
Piu formalmente, una funzione e un sottoinsieme del prodottocartesiano X × Y tale che per ogni x ∈ X esiste un unicoy ∈ Y tale che (x , y) ∈ f .
L’esistenza e l’unicita rendono possibile la notazione f (x) = y ;ogni elemento del dominio di f determina in modo univoco unelemento del codominio di f .
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Cosa e una funzione? Il punto di vista estensionale
Una funzione e una “legge” che associa ad ogni elemento deldominio di f (l’insieme dei valori di input X ) un elemento delcodominio di f (l’insieme dei valori di output Y )
Piu formalmente, una funzione e un sottoinsieme del prodottocartesiano X × Y tale che per ogni x ∈ X esiste un unicoy ∈ Y tale che (x , y) ∈ f .
L’esistenza e l’unicita rendono possibile la notazione f (x) = y ;ogni elemento del dominio di f determina in modo univoco unelemento del codominio di f .
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Cosa e una funzione? Il punto di vista estensionale
Una funzione dal punto di vista estensionale e completamentedefinita dal suo grafico : f = {(x , f (x)) : x ∈ X} ⊆ X × Y .
Dal punto di vista estensionale, non siamo interessati a saperein che modo la funzione calcola i suoi valori; ci interessa soloconoscere i valori in entrata, i valori in uscita e la relazione tradi essi (chi corrisponde a chi).
Es. Le funzioni Sum(x , y) = x + y e Mus(x , y) = y + x sonoestensionalmente equivalenti (anche se calcolano i loro valoriin maniera differente).
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Cosa e una funzione? Il punto di vista estensionale
Una funzione dal punto di vista estensionale e completamentedefinita dal suo grafico : f = {(x , f (x)) : x ∈ X} ⊆ X × Y .
Dal punto di vista estensionale, non siamo interessati a saperein che modo la funzione calcola i suoi valori; ci interessa soloconoscere i valori in entrata, i valori in uscita e la relazione tradi essi (chi corrisponde a chi).
Es. Le funzioni Sum(x , y) = x + y e Mus(x , y) = y + x sonoestensionalmente equivalenti (anche se calcolano i loro valoriin maniera differente).
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Cosa e una funzione? Il punto di vista estensionale
Una funzione dal punto di vista estensionale e completamentedefinita dal suo grafico : f = {(x , f (x)) : x ∈ X} ⊆ X × Y .
Dal punto di vista estensionale, non siamo interessati a saperein che modo la funzione calcola i suoi valori; ci interessa soloconoscere i valori in entrata, i valori in uscita e la relazione tradi essi (chi corrisponde a chi).
Es. Le funzioni Sum(x , y) = x + y e Mus(x , y) = y + x sonoestensionalmente equivalenti (anche se calcolano i loro valoriin maniera differente).
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Cosa e una funzione? Il punto di vista intensionale
Una funzione f e una procedura effettiva che prende in inputun x ∈ X e produce un output y ∈ Y in un numero finito dipassi elementari.
Dal punto di vista intensionale, siamo interessati a capire inche modo la funzione f produce il suo risultato: non ci bastaconoscere il risultato.
Es. Le funzioni Sum(x , y) = x + y e Mus(x , y) = y + x sonointensionalmente differenti (anche se estensionalmente sicomportano allo stesso modo).
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Cosa e una funzione? Il punto di vista intensionale
Una funzione f e una procedura effettiva che prende in inputun x ∈ X e produce un output y ∈ Y in un numero finito dipassi elementari.
Dal punto di vista intensionale, siamo interessati a capire inche modo la funzione f produce il suo risultato: non ci bastaconoscere il risultato.
Es. Le funzioni Sum(x , y) = x + y e Mus(x , y) = y + x sonointensionalmente differenti (anche se estensionalmente sicomportano allo stesso modo).
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Cosa e una funzione? Il punto di vista intensionale
Una funzione f e una procedura effettiva che prende in inputun x ∈ X e produce un output y ∈ Y in un numero finito dipassi elementari.
Dal punto di vista intensionale, siamo interessati a capire inche modo la funzione f produce il suo risultato: non ci bastaconoscere il risultato.
Es. Le funzioni Sum(x , y) = x + y e Mus(x , y) = y + x sonointensionalmente differenti (anche se estensionalmente sicomportano allo stesso modo).
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (x) = t
La funzione f dove f (x) = t.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (x) = t
La funzione f dove f (x) = t.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (x) = x ∗ x
La funzione f dove f (x) = x ∗ x.
f (3) = 3 ∗ 3 = 9
Calcolare = sostituire ( e rendere esplicito)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (x) = x ∗ x
La funzione f dove f (x) = x ∗ x.
f (3) = 3 ∗ 3 = 9
Calcolare = sostituire ( e rendere esplicito)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (x) = x ∗ x
La funzione f dove f (x) = x ∗ x.
f (3) = 3 ∗ 3 = 9
Calcolare = sostituire ( e rendere esplicito)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (x) = x ∗ x
La funzione f dove f (x) = x ∗ x.
f (3) = 3 ∗ 3 = 9
Calcolare = sostituire ( e rendere esplicito)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (x) = t
La funzione f dove f (x) = t.
λx .t
passo di calcolo: (λx .t)(u)⇒ t[u/x ]
t[u/x ] e il termine ottenuto rimpiazzando in t ogni occorrenzalibera di x con u.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (x) = t
La funzione f dove f (x) = t.
λx .t
passo di calcolo: (λx .t)(u)⇒ t[u/x ]
t[u/x ] e il termine ottenuto rimpiazzando in t ogni occorrenzalibera di x con u.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (x) = t
La funzione f dove f (x) = t.
λx .t
passo di calcolo: (λx .t)(u)⇒ t[u/x ]
t[u/x ] e il termine ottenuto rimpiazzando in t ogni occorrenzalibera di x con u.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (x) = t
La funzione f dove f (x) = t.
λx .t
passo di calcolo: (λx .t)(u)⇒ t[u/x ]
t[u/x ] e il termine ottenuto rimpiazzando in t ogni occorrenzalibera di x con u.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (x) = t
La funzione f dove f (x) = t.
λx .t
passo di calcolo: (λx .t)(u)⇒ t[u/x ]
t[u/x ] e il termine ottenuto rimpiazzando in t ogni occorrenzalibera di x con u.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (x) = x ∗ x
La funzione f dove f (x) = x ∗ x.
λx .x ∗ x
passo di calcolo: (λx .x ∗ x)(3)⇒ x ∗ x [3/x ]
x ∗ x [3/x ] = 3 ∗ 3 = 9
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (x) = x ∗ x
La funzione f dove f (x) = x ∗ x.
λx .x ∗ x
passo di calcolo: (λx .x ∗ x)(3)⇒ x ∗ x [3/x ]
x ∗ x [3/x ] = 3 ∗ 3 = 9
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (x) = x ∗ x
La funzione f dove f (x) = x ∗ x.
λx .x ∗ x
passo di calcolo: (λx .x ∗ x)(3)⇒ x ∗ x [3/x ]
x ∗ x [3/x ] = 3 ∗ 3 = 9
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (x) = x ∗ x
La funzione f dove f (x) = x ∗ x.
λx .x ∗ x
passo di calcolo: (λx .x ∗ x)(3)⇒ x ∗ x [3/x ]
x ∗ x [3/x ] = 3 ∗ 3 = 9
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (x) = x ∗ x
La funzione f dove f (x) = x ∗ x.
λx .x ∗ x
passo di calcolo: (λx .x ∗ x)(3)⇒ x ∗ x [3/x ]
x ∗ x [3/x ] = 3 ∗ 3 = 9
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (y) = y + 1
La funzione f dove f (y) = y + 1.
λy .y + 1
passo di calcolo: (λy .y + 1)(3)⇒ y + 1[3/y ]
y + 1[3/y ] = 3 + 1 = 4
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (y) = y + 1
La funzione f dove f (y) = y + 1.
λy .y + 1
passo di calcolo: (λy .y + 1)(3)⇒ y + 1[3/y ]
y + 1[3/y ] = 3 + 1 = 4
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (y) = y + 1
La funzione f dove f (y) = y + 1.
λy .y + 1
passo di calcolo: (λy .y + 1)(3)⇒ y + 1[3/y ]
y + 1[3/y ] = 3 + 1 = 4
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (y) = y + 1
La funzione f dove f (y) = y + 1.
λy .y + 1
passo di calcolo: (λy .y + 1)(3)⇒ y + 1[3/y ]
y + 1[3/y ] = 3 + 1 = 4
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (y) = y + 1
La funzione f dove f (y) = y + 1.
λy .y + 1
passo di calcolo: (λy .y + 1)(3)⇒ y + 1[3/y ]
y + 1[3/y ] = 3 + 1 = 4
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (z) = z + 1
La funzione f dove f (z) = z + 1.
λz .z + 1
passo di calcolo: (λz .z + 1)(3)⇒ z + 1[3/z ]
z + 1[3/z ] = 3 + 1 = 4
λz .z + 1 ≡ λy .y + 1
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (z) = z + 1
La funzione f dove f (z) = z + 1.
λz .z + 1
passo di calcolo: (λz .z + 1)(3)⇒ z + 1[3/z ]
z + 1[3/z ] = 3 + 1 = 4
λz .z + 1 ≡ λy .y + 1
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (z) = z + 1
La funzione f dove f (z) = z + 1.
λz .z + 1
passo di calcolo: (λz .z + 1)(3)⇒ z + 1[3/z ]
z + 1[3/z ] = 3 + 1 = 4
λz .z + 1 ≡ λy .y + 1
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (z) = z + 1
La funzione f dove f (z) = z + 1.
λz .z + 1
passo di calcolo: (λz .z + 1)(3)⇒ z + 1[3/z ]
z + 1[3/z ] = 3 + 1 = 4
λz .z + 1 ≡ λy .y + 1
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (z) = z + 1
La funzione f dove f (z) = z + 1.
λz .z + 1
passo di calcolo: (λz .z + 1)(3)⇒ z + 1[3/z ]
z + 1[3/z ] = 3 + 1 = 4
λz .z + 1 ≡ λy .y + 1
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La λ-notazione
f (z) = z + 1
La funzione f dove f (z) = z + 1.
λz .z + 1
passo di calcolo: (λz .z + 1)(3)⇒ z + 1[3/z ]
z + 1[3/z ] = 3 + 1 = 4
λz .z + 1 ≡ λy .y + 1
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
E quando ci sono piu riduzioni?
(λx .x ∗ x)((λy .y + 1)(2))
↙ ↘(λx .x ∗ x)(2 + 1) ((λy .y + 1)(2))∗
((λy .y + 1)(2))↘ ↙
(2 + 1) ∗ (2 + 1)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
E quando ci sono piu riduzioni?
(λx .x ∗ x)((λy .y + 1)(2))↙ ↘
(λx .x ∗ x)(2 + 1) ((λy .y + 1)(2))∗((λy .y + 1)(2))
↘ ↙(2 + 1) ∗ (2 + 1)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
E quando ci sono piu riduzioni?
(λx .x ∗ x)((λy .y + 1)(2))↙ ↘
(λx .x ∗ x)(2 + 1) ((λy .y + 1)(2))∗((λy .y + 1)(2))
↘ ↙(2 + 1) ∗ (2 + 1)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
E quando ci sono piu riduzioni?
(λx .x ∗ x)((λy .y + 1)(2))↙ ↘
(λx .x ∗ x)(2 + 1) ((λy .y + 1)(2))∗((λy .y + 1)(2))
↘ ↙
(2 + 1) ∗ (2 + 1)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
E quando ci sono piu riduzioni?
(λx .x ∗ x)((λy .y + 1)(2))↙ ↘
(λx .x ∗ x)(2 + 1) ((λy .y + 1)(2))∗((λy .y + 1)(2))
↘ ↙(2 + 1) ∗ (2 + 1)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
E quando ci sono piu argomenti?
g(x , y) = x ∗ x + y ∗ y
Currificazione: Una funzione a due argomenti puo essererappresentata da una funzione sul primo argomento che restituisce
una funzione sul secondo argomento
g(3, 4) = 3 ∗ 3 + 4 ∗ 4 = 25
((λx .λy .x ∗ x + y ∗ y)(3))(4)⇒ (λy .3 ∗ 3 + y ∗ y)(4)⇒ 3 ∗ 3 + 4 ∗ 4⇒ 25
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
E quando ci sono piu argomenti?
g(x , y) = x ∗ x + y ∗ y
Currificazione: Una funzione a due argomenti puo essererappresentata da una funzione sul primo argomento che restituisce
una funzione sul secondo argomento
g(3, 4) = 3 ∗ 3 + 4 ∗ 4 = 25
((λx .λy .x ∗ x + y ∗ y)(3))(4)⇒ (λy .3 ∗ 3 + y ∗ y)(4)⇒ 3 ∗ 3 + 4 ∗ 4⇒ 25
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
E quando ci sono piu argomenti?
g(x , y) = x ∗ x + y ∗ y
Currificazione: Una funzione a due argomenti puo essererappresentata da una funzione sul primo argomento che restituisce
una funzione sul secondo argomento
g(3, 4) = 3 ∗ 3 + 4 ∗ 4 = 25
((λx .λy .x ∗ x + y ∗ y)(3))(4)⇒ (λy .3 ∗ 3 + y ∗ y)(4)⇒ 3 ∗ 3 + 4 ∗ 4⇒ 25
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
E quando ci sono piu argomenti?
g(x , y) = x ∗ x + y ∗ y
Currificazione: Una funzione a due argomenti puo essererappresentata da una funzione sul primo argomento che restituisce
una funzione sul secondo argomento
g(3, 4) = 3 ∗ 3 + 4 ∗ 4 = 25
((λx .λy .x ∗ x + y ∗ y)(3))(4)
⇒ (λy .3 ∗ 3 + y ∗ y)(4)⇒ 3 ∗ 3 + 4 ∗ 4⇒ 25
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
E quando ci sono piu argomenti?
g(x , y) = x ∗ x + y ∗ y
Currificazione: Una funzione a due argomenti puo essererappresentata da una funzione sul primo argomento che restituisce
una funzione sul secondo argomento
g(3, 4) = 3 ∗ 3 + 4 ∗ 4 = 25
((λx .λy .x ∗ x + y ∗ y)(3))(4)⇒ (λy .3 ∗ 3 + y ∗ y)(4)
⇒ 3 ∗ 3 + 4 ∗ 4⇒ 25
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
E quando ci sono piu argomenti?
g(x , y) = x ∗ x + y ∗ y
Currificazione: Una funzione a due argomenti puo essererappresentata da una funzione sul primo argomento che restituisce
una funzione sul secondo argomento
g(3, 4) = 3 ∗ 3 + 4 ∗ 4 = 25
((λx .λy .x ∗ x + y ∗ y)(3))(4)⇒ (λy .3 ∗ 3 + y ∗ y)(4)⇒ 3 ∗ 3 + 4 ∗ 4
⇒ 25
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
E quando ci sono piu argomenti?
g(x , y) = x ∗ x + y ∗ y
Currificazione: Una funzione a due argomenti puo essererappresentata da una funzione sul primo argomento che restituisce
una funzione sul secondo argomento
g(3, 4) = 3 ∗ 3 + 4 ∗ 4 = 25
((λx .λy .x ∗ x + y ∗ y)(3))(4)⇒ (λy .3 ∗ 3 + y ∗ y)(4)⇒ 3 ∗ 3 + 4 ∗ 4⇒ 25
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Composizione di funzioni
g(f (z))
Composizione: Una funzione che prende due funzioni f e g comeargomenti e restituisce una funzione che prende un argomento z,
applica la prima funzione all’argomento, e applica la secondafunzione al risultato
λf .λg .λz .g(f (z))
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Composizione di funzioni
g(f (z))
Composizione: Una funzione che prende due funzioni f e g comeargomenti e restituisce una funzione che prende un argomento z,
applica la prima funzione all’argomento, e applica la secondafunzione al risultato
λf .λg .λz .g(f (z))
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Composizione di funzioni
g(f (z))
Composizione: Una funzione che prende due funzioni f e g comeargomenti e restituisce una funzione che prende un argomento z,
applica la prima funzione all’argomento, e applica la secondafunzione al risultato
λf .λg .λz .g(f (z))
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Composizione di funzioni
(λf .λg .λz .g(f (z)))(λy .y + 1)(λx .x ∗ x)(2)
⇒ (λg .λz .g((λy .y + 1)(z)))(λx .x ∗ x)(2)⇒ (λz .(λx .x ∗ x)((λy .y + 1)(z)))(2)⇒ (λx .x ∗ x)((λy .y + 1)(2))⇒ (2 + 1) ∗ (2 + 1)⇒ 9
Una funzione puo prendere in argomento funzioni e restituire comevalore una funzione
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Composizione di funzioni
(λf .λg .λz .g(f (z)))(λy .y + 1)(λx .x ∗ x)(2)⇒ (λg .λz .g((λy .y + 1)(z)))(λx .x ∗ x)(2)
⇒ (λz .(λx .x ∗ x)((λy .y + 1)(z)))(2)⇒ (λx .x ∗ x)((λy .y + 1)(2))⇒ (2 + 1) ∗ (2 + 1)⇒ 9
Una funzione puo prendere in argomento funzioni e restituire comevalore una funzione
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Composizione di funzioni
(λf .λg .λz .g(f (z)))(λy .y + 1)(λx .x ∗ x)(2)⇒ (λg .λz .g((λy .y + 1)(z)))(λx .x ∗ x)(2)⇒ (λz .(λx .x ∗ x)((λy .y + 1)(z)))(2)
⇒ (λx .x ∗ x)((λy .y + 1)(2))⇒ (2 + 1) ∗ (2 + 1)⇒ 9
Una funzione puo prendere in argomento funzioni e restituire comevalore una funzione
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Composizione di funzioni
(λf .λg .λz .g(f (z)))(λy .y + 1)(λx .x ∗ x)(2)⇒ (λg .λz .g((λy .y + 1)(z)))(λx .x ∗ x)(2)⇒ (λz .(λx .x ∗ x)((λy .y + 1)(z)))(2)⇒ (λx .x ∗ x)((λy .y + 1)(2))
⇒ (2 + 1) ∗ (2 + 1)⇒ 9
Una funzione puo prendere in argomento funzioni e restituire comevalore una funzione
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Composizione di funzioni
(λf .λg .λz .g(f (z)))(λy .y + 1)(λx .x ∗ x)(2)⇒ (λg .λz .g((λy .y + 1)(z)))(λx .x ∗ x)(2)⇒ (λz .(λx .x ∗ x)((λy .y + 1)(z)))(2)⇒ (λx .x ∗ x)((λy .y + 1)(2))⇒ (2 + 1) ∗ (2 + 1)
⇒ 9
Una funzione puo prendere in argomento funzioni e restituire comevalore una funzione
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Composizione di funzioni
(λf .λg .λz .g(f (z)))(λy .y + 1)(λx .x ∗ x)(2)⇒ (λg .λz .g((λy .y + 1)(z)))(λx .x ∗ x)(2)⇒ (λz .(λx .x ∗ x)((λy .y + 1)(z)))(2)⇒ (λx .x ∗ x)((λy .y + 1)(2))⇒ (2 + 1) ∗ (2 + 1)⇒ 9
Una funzione puo prendere in argomento funzioni e restituire comevalore una funzione
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Composizione di funzioni
(λf .λg .λz .g(f (z)))(λy .y + 1)(λx .x ∗ x)(2)⇒ (λg .λz .g((λy .y + 1)(z)))(λx .x ∗ x)(2)⇒ (λz .(λx .x ∗ x)((λy .y + 1)(z)))(2)⇒ (λx .x ∗ x)((λy .y + 1)(2))⇒ (2 + 1) ∗ (2 + 1)⇒ 9
Una funzione puo prendere in argomento funzioni e restituire comevalore una funzione
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
λ-calcolo, in due parole
λ-calcolo: linguaggio di programmazione funzionale;
termini del λ-calcolo: programmi;
regola di riduzione: passo di calcolo (esecuzione delprogramma)
Tutto e una funzione
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Sintassi del λ-calcolo
M ::= x | λx .M | MM
Un λ-termine M e :
una variabile x presa da un insieme infinito numerabile V divariabili (denoteremo le variabili con x , y , z , . . .);
oppure una λ-astrazione λx .M;
oppure una applicazione MM di un λ-termine ad un altro.
L’applicazione associa a sinistra: M1M2M3 = ((M1M2)M3)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Sintassi del λ-calcolo
M ::= x | λx .M | MM
Un λ-termine M e :
una variabile x presa da un insieme infinito numerabile V divariabili (denoteremo le variabili con x , y , z , . . .);
oppure una λ-astrazione λx .M;
oppure una applicazione MM di un λ-termine ad un altro.
L’applicazione associa a sinistra: M1M2M3 = ((M1M2)M3)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Sintassi del λ-calcolo
M ::= x | λx .M | MM
Un λ-termine M e :
una variabile x presa da un insieme infinito numerabile V divariabili (denoteremo le variabili con x , y , z , . . .);
oppure una λ-astrazione λx .M;
oppure una applicazione MM di un λ-termine ad un altro.
L’applicazione associa a sinistra: M1M2M3 = ((M1M2)M3)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Sintassi del λ-calcolo
M ::= x | λx .M | MM
Un λ-termine M e :
una variabile x presa da un insieme infinito numerabile V divariabili (denoteremo le variabili con x , y , z , . . .);
oppure una λ-astrazione λx .M;
oppure una applicazione MM di un λ-termine ad un altro.
L’applicazione associa a sinistra: M1M2M3 = ((M1M2)M3)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Sintassi del λ-calcolo
M ::= x | λx .M | MM
Un λ-termine M e :
una variabile x presa da un insieme infinito numerabile V divariabili (denoteremo le variabili con x , y , z , . . .);
oppure una λ-astrazione λx .M;
oppure una applicazione MM di un λ-termine ad un altro.
L’applicazione associa a sinistra: M1M2M3 = ((M1M2)M3)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Sintassi del λ-calcolo
M ::= x | λx .M | MM
Un λ-termine M e :
una variabile x presa da un insieme infinito numerabile V divariabili (denoteremo le variabili con x , y , z , . . .);
oppure una λ-astrazione λx .M;
oppure una applicazione MM di un λ-termine ad un altro.
L’applicazione associa a sinistra: M1M2M3 = ((M1M2)M3)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
α-equivalenza
M = (λx .yx)x
x e vincolata in M; x , y sono libere in M.
le variabili vincolate sono mute.
λx .M ≡α λy .(M[y/x ])
Es. λx .(xy) ≡α λz .(zy)
Due funzioni α-equivalenti rappresentano la stessa funzione.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
α-equivalenza
M = (λx .yx)x
x e vincolata in M; x , y sono libere in M.
le variabili vincolate sono mute.
λx .M ≡α λy .(M[y/x ])
Es. λx .(xy) ≡α λz .(zy)
Due funzioni α-equivalenti rappresentano la stessa funzione.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
α-equivalenza
M = (λx .yx)x
x e vincolata in M; x , y sono libere in M.
le variabili vincolate sono mute.
λx .M ≡α λy .(M[y/x ])
Es. λx .(xy) ≡α λz .(zy)
Due funzioni α-equivalenti rappresentano la stessa funzione.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
α-equivalenza
M = (λx .yx)x
x e vincolata in M; x , y sono libere in M.
le variabili vincolate sono mute.
λx .M ≡α λy .(M[y/x ])
Es. λx .(xy) ≡α λz .(zy)
Due funzioni α-equivalenti rappresentano la stessa funzione.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
α-equivalenza
M = (λx .yx)x
x e vincolata in M; x , y sono libere in M.
le variabili vincolate sono mute.
λx .M ≡α λy .(M[y/x ])
Es. λx .(xy) ≡α λz .(zy)
Due funzioni α-equivalenti rappresentano la stessa funzione.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
α-equivalenza
M = (λx .yx)x
x e vincolata in M; x , y sono libere in M.
le variabili vincolate sono mute.
λx .M ≡α λy .(M[y/x ])
Es. λx .(xy) ≡α λz .(zy)
Due funzioni α-equivalenti rappresentano la stessa funzione.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
β-riduzione
(λx .M)N →β M[N/x ]
la sostituzione e definita modulo α-equivalenza;
(λx .M)N e chiamato redesso, M[N/x ] e chiamato ridotto.
Se M →β M ′ allora si dice che M β-riduce in un passo a M ′.
Es. (λx .xx)(λy .y)→β (λy .y)(λy .y)
Es. (λx .z)(λy .y)→β z
nello stesso termine possono comparire piu redessi. Es:(λx .z)((λy .y)(z)).
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
β-riduzione
(λx .M)N →β M[N/x ]
la sostituzione e definita modulo α-equivalenza;
(λx .M)N e chiamato redesso, M[N/x ] e chiamato ridotto.
Se M →β M ′ allora si dice che M β-riduce in un passo a M ′.
Es. (λx .xx)(λy .y)→β (λy .y)(λy .y)
Es. (λx .z)(λy .y)→β z
nello stesso termine possono comparire piu redessi. Es:(λx .z)((λy .y)(z)).
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
β-riduzione
(λx .M)N →β M[N/x ]
la sostituzione e definita modulo α-equivalenza;
(λx .M)N e chiamato redesso, M[N/x ] e chiamato ridotto.
Se M →β M ′ allora si dice che M β-riduce in un passo a M ′.
Es. (λx .xx)(λy .y)→β (λy .y)(λy .y)
Es. (λx .z)(λy .y)→β z
nello stesso termine possono comparire piu redessi. Es:(λx .z)((λy .y)(z)).
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
β-riduzione
(λx .M)N →β M[N/x ]
la sostituzione e definita modulo α-equivalenza;
(λx .M)N e chiamato redesso, M[N/x ] e chiamato ridotto.
Se M →β M ′ allora si dice che M β-riduce in un passo a M ′.
Es. (λx .xx)(λy .y)→β (λy .y)(λy .y)
Es. (λx .z)(λy .y)→β z
nello stesso termine possono comparire piu redessi. Es:(λx .z)((λy .y)(z)).
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
β-riduzione
(λx .M)N →β M[N/x ]
la sostituzione e definita modulo α-equivalenza;
(λx .M)N e chiamato redesso, M[N/x ] e chiamato ridotto.
Se M →β M ′ allora si dice che M β-riduce in un passo a M ′.
Es. (λx .xx)(λy .y)→β (λy .y)(λy .y)
Es. (λx .z)(λy .y)→β z
nello stesso termine possono comparire piu redessi. Es:(λx .z)((λy .y)(z)).
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
β-riduzione
(λx .M)N →β M[N/x ]
la sostituzione e definita modulo α-equivalenza;
(λx .M)N e chiamato redesso, M[N/x ] e chiamato ridotto.
Se M →β M ′ allora si dice che M β-riduce in un passo a M ′.
Es. (λx .xx)(λy .y)→β (λy .y)(λy .y)
Es. (λx .z)(λy .y)→β z
nello stesso termine possono comparire piu redessi. Es:(λx .z)((λy .y)(z)).
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
β-riduzione
(λx .M)N →β M[N/x ]
la sostituzione e definita modulo α-equivalenza;
(λx .M)N e chiamato redesso, M[N/x ] e chiamato ridotto.
Se M →β M ′ allora si dice che M β-riduce in un passo a M ′.
Es. (λx .xx)(λy .y)→β (λy .y)(λy .y)
Es. (λx .z)(λy .y)→β z
nello stesso termine possono comparire piu redessi. Es:(λx .z)((λy .y)(z)).
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
β-riduzione
La β-riduzione (denotata →∗β) e la chiusura riflessiva e transitivadella relazione →β.
M →∗β M ′ se e solo se se esiste una successioneM0,M1, . . . ,Mn−1,Mn tale che M = M0,M
′ = Mn, eMi →β Mi+1 per 1 ≤ i ≤ n − 1 (con n ≥ 0).
un λ-termine M e detto in forma normale se e solo se noncontiene redessi, i.e. non esiste nessun λ-termine M ′ tale cheM →∗β M ′.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
β-riduzione
La β-riduzione (denotata →∗β) e la chiusura riflessiva e transitivadella relazione →β.
M →∗β M ′ se e solo se se esiste una successioneM0,M1, . . . ,Mn−1,Mn tale che M = M0,M
′ = Mn, eMi →β Mi+1 per 1 ≤ i ≤ n − 1 (con n ≥ 0).
un λ-termine M e detto in forma normale se e solo se noncontiene redessi, i.e. non esiste nessun λ-termine M ′ tale cheM →∗β M ′.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
β-riduzione
La β-riduzione (denotata →∗β) e la chiusura riflessiva e transitivadella relazione →β.
M →∗β M ′ se e solo se se esiste una successioneM0,M1, . . . ,Mn−1,Mn tale che M = M0,M
′ = Mn, eMi →β Mi+1 per 1 ≤ i ≤ n − 1 (con n ≥ 0).
un λ-termine M e detto in forma normale se e solo se noncontiene redessi, i.e. non esiste nessun λ-termine M ′ tale cheM →∗β M ′.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il λ-calcolo come linguaggio di programmazione: unintuizione
(λx1 . . . λxn.M)N1 . . .Nn corrisponde ad un programma M cheattende n argomenti, applicato agli input N1, . . . ,Nn;
La β-riduzione corrisponde all’esecuzione di un programma: seM →∗β M ′ allora M ′ rappresenta uno stadio piu avanzatonell’esecuzione del programma M;
un λ-termine in forma normale corrisponde all’output delprogramma.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il λ-calcolo come linguaggio di programmazione: unintuizione
(λx1 . . . λxn.M)N1 . . .Nn corrisponde ad un programma M cheattende n argomenti, applicato agli input N1, . . . ,Nn;
La β-riduzione corrisponde all’esecuzione di un programma: seM →∗β M ′ allora M ′ rappresenta uno stadio piu avanzatonell’esecuzione del programma M;
un λ-termine in forma normale corrisponde all’output delprogramma.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il λ-calcolo come linguaggio di programmazione: unintuizione
(λx1 . . . λxn.M)N1 . . .Nn corrisponde ad un programma M cheattende n argomenti, applicato agli input N1, . . . ,Nn;
La β-riduzione corrisponde all’esecuzione di un programma: seM →∗β M ′ allora M ′ rappresenta uno stadio piu avanzatonell’esecuzione del programma M;
un λ-termine in forma normale corrisponde all’output delprogramma.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
L’η-equivalenza
λx .(Mx) ≡η M, se x non occorre libera in M.
Due λ-termini M,M ′ sono η-equivalenti (o estensionalmenteequivalenti) se si comportano allo stesso modo, una voltaapplicati ad un argomento.
Per ogni N, (λx .(Mx))N →β (Mx)[N/x ] = MN
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
L’η-equivalenza
λx .(Mx) ≡η M, se x non occorre libera in M.
Due λ-termini M,M ′ sono η-equivalenti (o estensionalmenteequivalenti) se si comportano allo stesso modo, una voltaapplicati ad un argomento.
Per ogni N, (λx .(Mx))N →β (Mx)[N/x ] = MN
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
L’η-equivalenza
λx .(Mx) ≡η M, se x non occorre libera in M.
Due λ-termini M,M ′ sono η-equivalenti (o estensionalmenteequivalenti) se si comportano allo stesso modo, una voltaapplicati ad un argomento.
Per ogni N, (λx .(Mx))N →β (Mx)[N/x ] = MN
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione debole e forte
un λ-termine e detto normalizzabile (o debolmentenormalizzabile) se esiste un λ-termine M ′ normale tale cheM →∗β M ′; si dice allora che M ′ e una forma normale di M.
un λ-termine e detto fortemente normalizzabile se non esistealcuna successione infinita Mi∈N tale che M = M0 eMi →β Mi+1 per ogni i ∈ N.
un λ-termine non normalizzabile corrisponde ad unprogramma che cicla all’infinito.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione debole e forte
un λ-termine e detto normalizzabile (o debolmentenormalizzabile) se esiste un λ-termine M ′ normale tale cheM →∗β M ′; si dice allora che M ′ e una forma normale di M.
un λ-termine e detto fortemente normalizzabile se non esistealcuna successione infinita Mi∈N tale che M = M0 eMi →β Mi+1 per ogni i ∈ N.
un λ-termine non normalizzabile corrisponde ad unprogramma che cicla all’infinito.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione debole e forte
un λ-termine e detto normalizzabile (o debolmentenormalizzabile) se esiste un λ-termine M ′ normale tale cheM →∗β M ′; si dice allora che M ′ e una forma normale di M.
un λ-termine e detto fortemente normalizzabile se non esistealcuna successione infinita Mi∈N tale che M = M0 eMi →β Mi+1 per ogni i ∈ N.
un λ-termine non normalizzabile corrisponde ad unprogramma che cicla all’infinito.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione debole e forte: esempi
(λx .xx)(λx .x) e fortemente normalizzabile: l’unica sequenzadi riduzioni possibile termina.
(λx .xx)(λx .x)→β x [λx .x/x ]x [λx .x/x ]→β (λx .x)(λx .x)→β x [λx .x/x ]= λx .x
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione debole e forte: esempi
(λx .xx)(λx .x) e fortemente normalizzabile: l’unica sequenzadi riduzioni possibile termina.
(λx .xx)(λx .x)
→β x [λx .x/x ]x [λx .x/x ]→β (λx .x)(λx .x)→β x [λx .x/x ]= λx .x
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione debole e forte: esempi
(λx .xx)(λx .x) e fortemente normalizzabile: l’unica sequenzadi riduzioni possibile termina.
(λx .xx)(λx .x)→β x [λx .x/x ]x [λx .x/x ]
→β (λx .x)(λx .x)→β x [λx .x/x ]= λx .x
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione debole e forte: esempi
(λx .xx)(λx .x) e fortemente normalizzabile: l’unica sequenzadi riduzioni possibile termina.
(λx .xx)(λx .x)→β x [λx .x/x ]x [λx .x/x ]→β (λx .x)(λx .x)
→β x [λx .x/x ]= λx .x
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione debole e forte: esempi
(λx .xx)(λx .x) e fortemente normalizzabile: l’unica sequenzadi riduzioni possibile termina.
(λx .xx)(λx .x)→β x [λx .x/x ]x [λx .x/x ]→β (λx .x)(λx .x)→β x [λx .x/x ]
= λx .x
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione debole e forte: esempi
(λx .xx)(λx .x) e fortemente normalizzabile: l’unica sequenzadi riduzioni possibile termina.
(λx .xx)(λx .x)→β x [λx .x/x ]x [λx .x/x ]→β (λx .x)(λx .x)→β x [λx .x/x ]= λx .x
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione debole e forte: esempi
(λx .xx)(λx .xx) non e normalizzabile: l’unica sequenza diriduzioni possibile non termina.
(λx .xx)(λx .xx)→β x [λx .xx/x ]x [λx .xx/x ]→β (λx .xx)(λx .xx)
→β...
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione debole e forte: esempi
(λx .xx)(λx .xx) non e normalizzabile: l’unica sequenza diriduzioni possibile non termina.
(λx .xx)(λx .xx)
→β x [λx .xx/x ]x [λx .xx/x ]→β (λx .xx)(λx .xx)
→β...
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione debole e forte: esempi
(λx .xx)(λx .xx) non e normalizzabile: l’unica sequenza diriduzioni possibile non termina.
(λx .xx)(λx .xx)→β x [λx .xx/x ]x [λx .xx/x ]
→β (λx .xx)(λx .xx)
→β...
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione debole e forte: esempi
(λx .xx)(λx .xx) non e normalizzabile: l’unica sequenza diriduzioni possibile non termina.
(λx .xx)(λx .xx)→β x [λx .xx/x ]x [λx .xx/x ]→β (λx .xx)(λx .xx)
→β...
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione debole e forte: esempi
(λx .xx)(λx .xx) non e normalizzabile: l’unica sequenza diriduzioni possibile non termina.
(λx .xx)(λx .xx)→β x [λx .xx/x ]x [λx .xx/x ]→β (λx .xx)(λx .xx)
→β...
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione debole e forte: esempi
(λz .y)((λx .xx)λx .xx) e normalizzabile, ci sono sequenze diriduzioni che terminano e altre no.
(λz .y)((λx .xx)λx .xx)→β y [(λx .xx)λx .xx/z ]= y
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione debole e forte: esempi
(λz .y)((λx .xx)λx .xx) e normalizzabile, ci sono sequenze diriduzioni che terminano e altre no.
(λz .y)((λx .xx)λx .xx)
→β y [(λx .xx)λx .xx/z ]= y
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione debole e forte: esempi
(λz .y)((λx .xx)λx .xx) e normalizzabile, ci sono sequenze diriduzioni che terminano e altre no.
(λz .y)((λx .xx)λx .xx)→β y [(λx .xx)λx .xx/z ]
= y
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione debole e forte: esempi
(λz .y)((λx .xx)λx .xx) e normalizzabile, ci sono sequenze diriduzioni che terminano e altre no.
(λz .y)((λx .xx)λx .xx)→β y [(λx .xx)λx .xx/z ]= y
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione debole e forte: esempi
(λz .y)((λx .xx)λx .xx) e normalizzabile, ci sono sequenze diriduzioni che terminano e altre no.
(λz .y)((λx .xx)λx .xx)
→β (λz .y)(x [λx .xx/x ]x [λx .xx/x ])→β (λz .y)((λx .xx)λx .xx)
→β...
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione debole e forte: esempi
(λz .y)((λx .xx)λx .xx) e normalizzabile, ci sono sequenze diriduzioni che terminano e altre no.
(λz .y)((λx .xx)λx .xx)→β (λz .y)(x [λx .xx/x ]x [λx .xx/x ])
→β (λz .y)((λx .xx)λx .xx)
→β...
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione debole e forte: esempi
(λz .y)((λx .xx)λx .xx) e normalizzabile, ci sono sequenze diriduzioni che terminano e altre no.
(λz .y)((λx .xx)λx .xx)→β (λz .y)(x [λx .xx/x ]x [λx .xx/x ])→β (λz .y)((λx .xx)λx .xx)
→β...
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione debole e forte: esempi
(λz .y)((λx .xx)λx .xx) e normalizzabile, ci sono sequenze diriduzioni che terminano e altre no.
(λz .y)((λx .xx)λx .xx)→β (λz .y)(x [λx .xx/x ]x [λx .xx/x ])→β (λz .y)((λx .xx)λx .xx)
→β...
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Teorema di Church-Rosser
Un λ-termine ha un unica forma normale?
Church-Rosser
Per ogni λ-termine M,M1,M2 tali che M →∗β M1 e M →∗β M2
esiste un λ-termine N tale che M1 →∗β N ed M2 →∗β N
Corollario
Per ogni λ-termine M, se M1,M2 sono due forme normali di Mallora M1 = M2.
Dim. M →∗β M1 e M →∗β M2 quindi per la confluenza esiste N taleche M1 →∗β N ed M2 →∗β N; ora poiche M1,M2 sono due formenormali, M1 = N = M2.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Teorema di Church-Rosser
Un λ-termine ha un unica forma normale?
Church-Rosser
Per ogni λ-termine M,M1,M2 tali che M →∗β M1 e M →∗β M2
esiste un λ-termine N tale che M1 →∗β N ed M2 →∗β N
Corollario
Per ogni λ-termine M, se M1,M2 sono due forme normali di Mallora M1 = M2.
Dim. M →∗β M1 e M →∗β M2 quindi per la confluenza esiste N taleche M1 →∗β N ed M2 →∗β N; ora poiche M1,M2 sono due formenormali, M1 = N = M2.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Teorema di Church-Rosser
Un λ-termine ha un unica forma normale?
Church-Rosser
Per ogni λ-termine M,M1,M2 tali che M →∗β M1 e M →∗β M2
esiste un λ-termine N tale che M1 →∗β N ed M2 →∗β N
Corollario
Per ogni λ-termine M, se M1,M2 sono due forme normali di Mallora M1 = M2.
Dim. M →∗β M1 e M →∗β M2 quindi per la confluenza esiste N taleche M1 →∗β N ed M2 →∗β N; ora poiche M1,M2 sono due formenormali, M1 = N = M2.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Teorema di Church-Rosser
Un λ-termine ha un unica forma normale?
Church-Rosser
Per ogni λ-termine M,M1,M2 tali che M →∗β M1 e M →∗β M2
esiste un λ-termine N tale che M1 →∗β N ed M2 →∗β N
Corollario
Per ogni λ-termine M, se M1,M2 sono due forme normali di Mallora M1 = M2.
Dim. M →∗β M1 e M →∗β M2 quindi per la confluenza esiste N taleche M1 →∗β N ed M2 →∗β N; ora poiche M1,M2 sono due formenormali, M1 = N = M2.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
Funzione identita: λx .x
(λx .x)M
→β x [M/x ]= M
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
Funzione identita: λx .x
(λx .x)M→β x [M/x ]
= M
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
Funzione identita: λx .x
(λx .x)M→β x [M/x ]= M
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
Funzione costante: λx .N dove x non e libera in N.
(λx .N)M
→β N[M/x ]= N
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
Funzione costante: λx .N dove x non e libera in N.
(λx .N)M→β N[M/x ]
= N
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
Funzione costante: λx .N dove x non e libera in N.
(λx .N)M→β N[M/x ]= N
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
Funzione proiezione i-esima: λx1 . . . λxn.xi (con 1 ≤ i ≤ n).
(λx1 . . . λxn.xi )M1 . . .Mn
→∗β (λxi+1 . . . λxn.Mi )Mi+1 . . .Mn
→∗β Mi
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
Funzione proiezione i-esima: λx1 . . . λxn.xi (con 1 ≤ i ≤ n).
(λx1 . . . λxn.xi )M1 . . .Mn
→∗β (λxi+1 . . . λxn.Mi )Mi+1 . . .Mn
→∗β Mi
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
Funzione proiezione i-esima: λx1 . . . λxn.xi (con 1 ≤ i ≤ n).
(λx1 . . . λxn.xi )M1 . . .Mn
→∗β (λxi+1 . . . λxn.Mi )Mi+1 . . .Mn
→∗β Mi
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
True: λxλy .x
(λxλy .x)MN
→β (λy .M)N→β M[N/y ]= M
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
True: λxλy .x
(λxλy .x)MN→β (λy .M)N
→β M[N/y ]= M
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
True: λxλy .x
(λxλy .x)MN→β (λy .M)N→β M[N/y ]
= M
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
True: λxλy .x
(λxλy .x)MN→β (λy .M)N→β M[N/y ]= M
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
False: λxλy .y
(λxλy .y)MN
→β (λy .y)N→β y [N/y ]= N
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
False: λxλy .y
(λxλy .y)MN→β (λy .y)N
→β y [N/y ]= N
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
False: λxλy .y
(λxλy .y)MN→β (λy .y)N→β y [N/y ]
= N
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
False: λxλy .y
(λxλy .y)MN→β (λy .y)N→β y [N/y ]= N
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
If Then Else: λpλxλy .p x y
(λpλxλy .p x y)True MN
→β (λxλy .True x y)MN→∗β True MN
→∗β M
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
If Then Else: λpλxλy .p x y
(λpλxλy .p x y)True MN→β (λxλy .True x y)MN
→∗β True MN
→∗β M
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
If Then Else: λpλxλy .p x y
(λpλxλy .p x y)True MN→β (λxλy .True x y)MN→∗β True MN
→∗β M
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
If Then Else: λpλxλy .p x y
(λpλxλy .p x y)True MN→β (λxλy .True x y)MN→∗β True MN
→∗β M
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
If Then Else: λpλxλy .p x y
(λpλxλy .p x y)False MN
→β (λxλy . False x y)MN→∗β False MN
→∗β N
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
If Then Else: λpλxλy .p x y
(λpλxλy .p x y)False MN→β (λxλy . False x y)MN
→∗β False MN
→∗β N
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
If Then Else: λpλxλy .p x y
(λpλxλy .p x y)False MN→β (λxλy . False x y)MN→∗β False MN
→∗β N
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
If Then Else: λpλxλy .p x y
(λpλxλy .p x y)False MN→β (λxλy . False x y)MN→∗β False MN
→∗β N
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
Gli interi di Church:
n := λf λx .f nx = λf λx
n volte︷ ︸︸ ︷f (f · · · (f x) · · · )
0 := λf λx .x
1 := λf λx .f x
2 := λf λx .f (f x)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
Gli interi di Church:
n := λf λx .f nx = λf λx
n volte︷ ︸︸ ︷f (f · · · (f x) · · · )
0 := λf λx .x
1 := λf λx .f x
2 := λf λx .f (f x)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
Gli interi di Church:
n := λf λx .f nx = λf λx
n volte︷ ︸︸ ︷f (f · · · (f x) · · · )
0 := λf λx .x
1 := λf λx .f x
2 := λf λx .f (f x)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
Gli interi di Church:
n := λf λx .f nx = λf λx
n volte︷ ︸︸ ︷f (f · · · (f x) · · · )
0 := λf λx .x
1 := λf λx .f x
2 := λf λx .f (f x)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
In generale, un intero n e interpretato come una funzione cheitera n volte la funzione che gli viene applicata:
(λf λx .f nx)PQ→β (λx .Pnx)Q→β PnQ
=
n volte︷ ︸︸ ︷P(P · · · (P Q) · · · )
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
In generale, un intero n e interpretato come una funzione cheitera n volte la funzione che gli viene applicata:
(λf λx .f nx)PQ
→β (λx .Pnx)Q→β PnQ
=
n volte︷ ︸︸ ︷P(P · · · (P Q) · · · )
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
In generale, un intero n e interpretato come una funzione cheitera n volte la funzione che gli viene applicata:
(λf λx .f nx)PQ→β (λx .Pnx)Q
→β PnQ
=
n volte︷ ︸︸ ︷P(P · · · (P Q) · · · )
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
In generale, un intero n e interpretato come una funzione cheitera n volte la funzione che gli viene applicata:
(λf λx .f nx)PQ→β (λx .Pnx)Q→β PnQ
=
n volte︷ ︸︸ ︷P(P · · · (P Q) · · · )
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
In generale, un intero n e interpretato come una funzione cheitera n volte la funzione che gli viene applicata:
(λf λx .f nx)PQ→β (λx .Pnx)Q→β PnQ
=
n volte︷ ︸︸ ︷P(P · · · (P Q) · · · )
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
La funzione Succ: λnλf λx .f (n f x)
Succ n
= (λnλf λx .f (n f x))n→β λf λx .f (n f x)→β λf λx .f ( f n x)= λf λx .f n+1 x= n + 1
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
La funzione Succ: λnλf λx .f (n f x)
Succ n= (λnλf λx .f (n f x))n
→β λf λx .f (n f x)→β λf λx .f ( f n x)= λf λx .f n+1 x= n + 1
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
La funzione Succ: λnλf λx .f (n f x)
Succ n= (λnλf λx .f (n f x))n→β λf λx .f (n f x)
→β λf λx .f ( f n x)= λf λx .f n+1 x= n + 1
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
La funzione Succ: λnλf λx .f (n f x)
Succ n= (λnλf λx .f (n f x))n→β λf λx .f (n f x)→β λf λx .f ( f n x)
= λf λx .f n+1 x= n + 1
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
La funzione Succ: λnλf λx .f (n f x)
Succ n= (λnλf λx .f (n f x))n→β λf λx .f (n f x)→β λf λx .f ( f n x)= λf λx .f n+1 x
= n + 1
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
La funzione Succ: λnλf λx .f (n f x)
Succ n= (λnλf λx .f (n f x))n→β λf λx .f (n f x)→β λf λx .f ( f n x)= λf λx .f n+1 x= n + 1
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
La funzione Sum: λmλnλf λx .m f (n f x)
Sum m n
= (λmλnλf λx .m f (n f x))m n→β (λnλf λx .m f (n f x))n→β λf λx .m f (n f x)= λf λx .m f ( f n x)= λf λx .f m( f n x)= λf λx .f m+n x= m + n
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
La funzione Sum: λmλnλf λx .m f (n f x)
Sum m n= (λmλnλf λx .m f (n f x))m n
→β (λnλf λx .m f (n f x))n→β λf λx .m f (n f x)= λf λx .m f ( f n x)= λf λx .f m( f n x)= λf λx .f m+n x= m + n
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
La funzione Sum: λmλnλf λx .m f (n f x)
Sum m n= (λmλnλf λx .m f (n f x))m n→β (λnλf λx .m f (n f x))n
→β λf λx .m f (n f x)= λf λx .m f ( f n x)= λf λx .f m( f n x)= λf λx .f m+n x= m + n
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
La funzione Sum: λmλnλf λx .m f (n f x)
Sum m n= (λmλnλf λx .m f (n f x))m n→β (λnλf λx .m f (n f x))n→β λf λx .m f (n f x)
= λf λx .m f ( f n x)= λf λx .f m( f n x)= λf λx .f m+n x= m + n
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
La funzione Sum: λmλnλf λx .m f (n f x)
Sum m n= (λmλnλf λx .m f (n f x))m n→β (λnλf λx .m f (n f x))n→β λf λx .m f (n f x)= λf λx .m f ( f n x)
= λf λx .f m( f n x)= λf λx .f m+n x= m + n
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
La funzione Sum: λmλnλf λx .m f (n f x)
Sum m n= (λmλnλf λx .m f (n f x))m n→β (λnλf λx .m f (n f x))n→β λf λx .m f (n f x)= λf λx .m f ( f n x)= λf λx .f m( f n x)
= λf λx .f m+n x= m + n
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
La funzione Sum: λmλnλf λx .m f (n f x)
Sum m n= (λmλnλf λx .m f (n f x))m n→β (λnλf λx .m f (n f x))n→β λf λx .m f (n f x)= λf λx .m f ( f n x)= λf λx .f m( f n x)= λf λx .f m+n x
= m + n
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
La funzione Sum: λmλnλf λx .m f (n f x)
Sum m n= (λmλnλf λx .m f (n f x))m n→β (λnλf λx .m f (n f x))n→β λf λx .m f (n f x)= λf λx .m f ( f n x)= λf λx .f m( f n x)= λf λx .f m+n x= m + n
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
Data una funzione f da X a X , un punto fisso di f e unx ∈ X tale che x = f (x).
Un λ-termine Y si dice combinatore di punto fisso se per ogniλ-termine F
Y (F )→∗β F (Y (F ))
Combinatore di punto fisso di Turing
Se A = λaλf .f (a a f ), allora Θ := A A e un combinatore di puntofisso.
Dim. Θ = (λaλf .f (a a f ))A→β λf .f (A A f ) = λf .f (Θ f ). Oraper ogni F , Θ F →β (λf .f (Θ f ))F →β F (Θ F ).
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
Data una funzione f da X a X , un punto fisso di f e unx ∈ X tale che x = f (x).
Un λ-termine Y si dice combinatore di punto fisso se per ogniλ-termine F
Y (F )→∗β F (Y (F ))
Combinatore di punto fisso di Turing
Se A = λaλf .f (a a f ), allora Θ := A A e un combinatore di puntofisso.
Dim. Θ = (λaλf .f (a a f ))A→β λf .f (A A f ) = λf .f (Θ f ). Oraper ogni F , Θ F →β (λf .f (Θ f ))F →β F (Θ F ).
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
Data una funzione f da X a X , un punto fisso di f e unx ∈ X tale che x = f (x).
Un λ-termine Y si dice combinatore di punto fisso se per ogniλ-termine F
Y (F )→∗β F (Y (F ))
Combinatore di punto fisso di Turing
Se A = λaλf .f (a a f ), allora Θ := A A e un combinatore di puntofisso.
Dim. Θ = (λaλf .f (a a f ))A→β λf .f (A A f ) = λf .f (Θ f ). Oraper ogni F , Θ F →β (λf .f (Θ f ))F →β F (Θ F ).
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
Data una funzione f da X a X , un punto fisso di f e unx ∈ X tale che x = f (x).
Un λ-termine Y si dice combinatore di punto fisso se per ogniλ-termine F
Y (F )→∗β F (Y (F ))
Combinatore di punto fisso di Turing
Se A = λaλf .f (a a f ), allora Θ := A A e un combinatore di puntofisso.
Dim. Θ = (λaλf .f (a a f ))A→β λf .f (A A f ) = λf .f (Θ f ). Oraper ogni F , Θ F →β (λf .f (Θ f ))F →β F (Θ F ).
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
I combinatori di punto fisso nel λ-calcolo sono fondamentaliper rappresentare le funzioni definite per ricorsione, che a lorovolta permettono di definire in maniera funzionale i cicliwhile dei linguaggi di programmazione standard.
Es. il fattoriale n! e definito per ricorsione:
n! =
{1, se n = 0
n ∗ (n − 1)!, altrimenti
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Programmare con il λ-calcolo
I combinatori di punto fisso nel λ-calcolo sono fondamentaliper rappresentare le funzioni definite per ricorsione, che a lorovolta permettono di definire in maniera funzionale i cicliwhile dei linguaggi di programmazione standard.
Es. il fattoriale n! e definito per ricorsione:
n! =
{1, se n = 0
n ∗ (n − 1)!, altrimenti
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Indice
1 Introduzione: logica e informatica
2 Il λ-calcolo e la programmazione funzionale
3 La deduzione naturale e la corrispondenza prove-programmi
4 Potere espressivo: Sistema F e polimorfismo
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La logica e l’argomentazione
La logica (dal greco λoγoς, logos, ovvero ”parola”,”pensiero”, ”idea”, ”argomento”, ”ragione”, da cui poiλoγικη,) e lo studio del ragionamento edell’argomentazione e, in particolare, dei procedimentiinferenziali, rivolto a chiarire quali procedimenti dipensiero siano validi e quali non validi.
Wikipedia
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il Modus Ponens
Se piove, allora prendo l’ombrello.
Piove.
Prendo l’ombrello.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il Modus Ponens
Se piove, allora prendo l’ombrello.
Piove.
Prendo l’ombrello.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il Modus Ponens
Se piove, allora prendo l’ombrello.
Piove.
Prendo l’ombrello.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il Modus Ponens
Se n e un numero intero maggiore di 1, allora n puo essereespresso in maniera univoca come prodotto di numeri primi.
6396 e un numero intero maggiore di 1.
6396 puo essere espresso in maniera univoca come prodotto dinumeri primi.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il Modus Ponens
Se n e un numero intero maggiore di 1, allora n puo essereespresso in maniera univoca come prodotto di numeri primi.
6396 e un numero intero maggiore di 1.
6396 puo essere espresso in maniera univoca come prodotto dinumeri primi.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il Modus Ponens
Se n e un numero intero maggiore di 1, allora n puo essereespresso in maniera univoca come prodotto di numeri primi.
6396 e un numero intero maggiore di 1.
6396 puo essere espresso in maniera univoca come prodotto dinumeri primi.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il Modus Ponens
Se Roma e la capitale dell’Italia, allora Babbo Natale e verde.
Roma e la capitale dell’Italia.
Babbo Natale e verde.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il Modus Ponens
Se Roma e la capitale dell’Italia, allora Babbo Natale e verde.
Roma e la capitale dell’Italia.
Babbo Natale e verde.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il Modus Ponens
Se Roma e la capitale dell’Italia, allora Babbo Natale e verde.
Roma e la capitale dell’Italia.
Babbo Natale e verde.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Modus Ponens
A⇒ B AB
Se A allora B.
A.
dunque B.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La Logica classica (Sistema di Hilbert)
Tutte e sole le proposizioni classicamente valide sono dimostrabiliusando :
i seguenti schemi d’assioma:
H1 A⇒ (B ⇒ A)H2 (A⇒ (B ⇒ C ))⇒ ((A⇒ B)⇒ (A⇒ C ))H3 (¬B ⇒ ¬A)⇒ (A⇒ B)
la seguente regola di inferenza :
A⇒ B AMP
B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La Logica classica (Sistema di Hilbert)
Tutte e sole le proposizioni classicamente valide sono dimostrabiliusando :
i seguenti schemi d’assioma:
H1 A⇒ (B ⇒ A)
H2 (A⇒ (B ⇒ C ))⇒ ((A⇒ B)⇒ (A⇒ C ))H3 (¬B ⇒ ¬A)⇒ (A⇒ B)
la seguente regola di inferenza :
A⇒ B AMP
B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La Logica classica (Sistema di Hilbert)
Tutte e sole le proposizioni classicamente valide sono dimostrabiliusando :
i seguenti schemi d’assioma:
H1 A⇒ (B ⇒ A)H2 (A⇒ (B ⇒ C ))⇒ ((A⇒ B)⇒ (A⇒ C ))
H3 (¬B ⇒ ¬A)⇒ (A⇒ B)
la seguente regola di inferenza :
A⇒ B AMP
B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La Logica classica (Sistema di Hilbert)
Tutte e sole le proposizioni classicamente valide sono dimostrabiliusando :
i seguenti schemi d’assioma:
H1 A⇒ (B ⇒ A)H2 (A⇒ (B ⇒ C ))⇒ ((A⇒ B)⇒ (A⇒ C ))H3 (¬B ⇒ ¬A)⇒ (A⇒ B)
la seguente regola di inferenza :
A⇒ B AMP
B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La Logica classica (Sistema di Hilbert)
Tutte e sole le proposizioni classicamente valide sono dimostrabiliusando :
i seguenti schemi d’assioma:
H1 A⇒ (B ⇒ A)H2 (A⇒ (B ⇒ C ))⇒ ((A⇒ B)⇒ (A⇒ C ))H3 (¬B ⇒ ¬A)⇒ (A⇒ B)
la seguente regola di inferenza :
A⇒ B AMP
B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La Logica classica (Sistema di Hilbert)
A⇒ A
H2) (A⇒ (A⇒ A)⇒ A)⇒ ((A⇒ (A⇒ A))⇒ (A⇒ A))
H1) A⇒ (A⇒ A)⇒ A
MP) ((A⇒ (A⇒ A))⇒ (A⇒ A))
H1) A⇒ (A⇒ A)
MP) A⇒ A
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La Logica classica (Sistema di Hilbert)
A⇒ A
H2) (A⇒ (A⇒ A)⇒ A)⇒ ((A⇒ (A⇒ A))⇒ (A⇒ A))
H1) A⇒ (A⇒ A)⇒ A
MP) ((A⇒ (A⇒ A))⇒ (A⇒ A))
H1) A⇒ (A⇒ A)
MP) A⇒ A
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La Logica classica (Sistema di Hilbert)
A⇒ A
H2) (A⇒ (A⇒ A)⇒ A)⇒ ((A⇒ (A⇒ A))⇒ (A⇒ A))
H1) A⇒ (A⇒ A)⇒ A
MP) ((A⇒ (A⇒ A))⇒ (A⇒ A))
H1) A⇒ (A⇒ A)
MP) A⇒ A
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La Logica classica (Sistema di Hilbert)
A⇒ A
H2) (A⇒ (A⇒ A)⇒ A)⇒ ((A⇒ (A⇒ A))⇒ (A⇒ A))
H1) A⇒ (A⇒ A)⇒ A
MP) ((A⇒ (A⇒ A))⇒ (A⇒ A))
H1) A⇒ (A⇒ A)
MP) A⇒ A
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La Logica classica (Sistema di Hilbert)
A⇒ A
H2) (A⇒ (A⇒ A)⇒ A)⇒ ((A⇒ (A⇒ A))⇒ (A⇒ A))
H1) A⇒ (A⇒ A)⇒ A
MP) ((A⇒ (A⇒ A))⇒ (A⇒ A))
H1) A⇒ (A⇒ A)
MP) A⇒ A
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La Logica classica (Sistema di Hilbert)
A⇒ A
H2) (A⇒ (A⇒ A)⇒ A)⇒ ((A⇒ (A⇒ A))⇒ (A⇒ A))
H1) A⇒ (A⇒ A)⇒ A
MP) ((A⇒ (A⇒ A))⇒ (A⇒ A))
H1) A⇒ (A⇒ A)
MP) A⇒ A
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Osservazioni sul calcolo
Costruire una dimostrazione nel sistema alla Hilbert e unaprocedura piuttosto involuta...;
La struttura di una derivazione e estremamente povera,contiene pochissime informazioni;
La derivazione non rispecchia il procedere naturale delragionamento matematico.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Osservazioni sul calcolo
Costruire una dimostrazione nel sistema alla Hilbert e unaprocedura piuttosto involuta...;
La struttura di una derivazione e estremamente povera,contiene pochissime informazioni;
La derivazione non rispecchia il procedere naturale delragionamento matematico.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Osservazioni sul calcolo
Costruire una dimostrazione nel sistema alla Hilbert e unaprocedura piuttosto involuta...;
La struttura di una derivazione e estremamente povera,contiene pochissime informazioni;
La derivazione non rispecchia il procedere naturale delragionamento matematico.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Osservazioni sulla logica classica
[H3] (¬B ⇒ ¬A)⇒ (A⇒ B)
A: Siano c e d due angoli opposti al vertice;
B : c e d sono congruenti.
Dimostriamo A⇒ B in maniera indiretta: assumiamo che c ed siano non siano congruenti (¬B);
se da ¬B (c e d non sono congruenti) riesco a dimostrare ¬A( c e d non sono opposti al vertice), cioe se riesco adimostrare ¬B ⇒ ¬A per [H3] e Modus Ponens possoconcludere A⇒ B, cvd.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Osservazioni sulla logica classica
[H3] (¬B ⇒ ¬A)⇒ (A⇒ B)
A: Siano c e d due angoli opposti al vertice;
B : c e d sono congruenti.
Dimostriamo A⇒ B in maniera indiretta: assumiamo che c ed siano non siano congruenti (¬B);
se da ¬B (c e d non sono congruenti) riesco a dimostrare ¬A( c e d non sono opposti al vertice), cioe se riesco adimostrare ¬B ⇒ ¬A per [H3] e Modus Ponens possoconcludere A⇒ B, cvd.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Osservazioni sulla logica classica
[H3] (¬B ⇒ ¬A)⇒ (A⇒ B)
A: Siano c e d due angoli opposti al vertice;
B : c e d sono congruenti.
Dimostriamo A⇒ B in maniera indiretta: assumiamo che c ed siano non siano congruenti (¬B);
se da ¬B (c e d non sono congruenti) riesco a dimostrare ¬A( c e d non sono opposti al vertice), cioe se riesco adimostrare ¬B ⇒ ¬A per [H3] e Modus Ponens possoconcludere A⇒ B, cvd.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Osservazioni sulla logica classica
[H3] (¬B ⇒ ¬A)⇒ (A⇒ B)
A: Siano c e d due angoli opposti al vertice;
B : c e d sono congruenti.
Dimostriamo A⇒ B in maniera indiretta: assumiamo che c ed siano non siano congruenti (¬B);
se da ¬B (c e d non sono congruenti) riesco a dimostrare ¬A( c e d non sono opposti al vertice), cioe se riesco adimostrare ¬B ⇒ ¬A per [H3] e Modus Ponens possoconcludere A⇒ B, cvd.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Osservazioni sulla logica classica
[H3] (¬B ⇒ ¬A)⇒ (A⇒ B)
A: Siano c e d due angoli opposti al vertice;
B : c e d sono congruenti.
Dimostriamo A⇒ B in maniera indiretta: assumiamo che c ed siano non siano congruenti (¬B);
se da ¬B (c e d non sono congruenti) riesco a dimostrare ¬A( c e d non sono opposti al vertice), cioe se riesco adimostrare ¬B ⇒ ¬A per [H3] e Modus Ponens possoconcludere A⇒ B, cvd.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Osservazioni sulla logica classica
[H3] (¬B ⇒ ¬A)⇒ (A⇒ B)
¬¬A⇒ A
Ragionamento per assurdo: Dalla falsita di ¬A segue la veritadi A.
Principio non costruttivo: per dimostrare l’esistenza di unoggetto matematico non e sufficiente dimostrare cheammettere il contrario porta a contraddizione; bisogna esibirel’oggetto in questione.
Logica intuizionista Logica che non ammette il ragionamentoper assurdo (Brouwer, Prawitz).
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Osservazioni sulla logica classica
[H3] (¬B ⇒ ¬A)⇒ (A⇒ B)
¬¬A⇒ A
Ragionamento per assurdo: Dalla falsita di ¬A segue la veritadi A.
Principio non costruttivo: per dimostrare l’esistenza di unoggetto matematico non e sufficiente dimostrare cheammettere il contrario porta a contraddizione; bisogna esibirel’oggetto in questione.
Logica intuizionista Logica che non ammette il ragionamentoper assurdo (Brouwer, Prawitz).
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Osservazioni sulla logica classica
[H3] (¬B ⇒ ¬A)⇒ (A⇒ B)
¬¬A⇒ A
Ragionamento per assurdo: Dalla falsita di ¬A segue la veritadi A.
Principio non costruttivo: per dimostrare l’esistenza di unoggetto matematico non e sufficiente dimostrare cheammettere il contrario porta a contraddizione; bisogna esibirel’oggetto in questione.
Logica intuizionista Logica che non ammette il ragionamentoper assurdo (Brouwer, Prawitz).
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Osservazioni sulla logica classica
[H3] (¬B ⇒ ¬A)⇒ (A⇒ B)
¬¬A⇒ A
Ragionamento per assurdo: Dalla falsita di ¬A segue la veritadi A.
Principio non costruttivo: per dimostrare l’esistenza di unoggetto matematico non e sufficiente dimostrare cheammettere il contrario porta a contraddizione; bisogna esibirel’oggetto in questione.
Logica intuizionista Logica che non ammette il ragionamentoper assurdo (Brouwer, Prawitz).
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La deduzione naturale intuizionista di Gentzen (ND)
Le dimostrazioni in deduzione naturale sono alberi in cui:
le formule corrispondono ai nodi;le ipotesi corrispondono alle foglie;la conclusione corrisponde alla radice.le formule sono collegate assieme da regole di inferenza
le regole di inferenza sono divise in due tipi:
le regole di introduzione, che specificano il modo in cui unaparticolare formula viene dedotta a partire da un certo numerodi premesse;le regole di eliminazione, che specificano il modo in cui unaparticolare formula puo essere utilizzata per derivare altreformule.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La deduzione naturale intuizionista di Gentzen (ND)
Le dimostrazioni in deduzione naturale sono alberi in cui:
le formule corrispondono ai nodi;
le ipotesi corrispondono alle foglie;la conclusione corrisponde alla radice.le formule sono collegate assieme da regole di inferenza
le regole di inferenza sono divise in due tipi:
le regole di introduzione, che specificano il modo in cui unaparticolare formula viene dedotta a partire da un certo numerodi premesse;le regole di eliminazione, che specificano il modo in cui unaparticolare formula puo essere utilizzata per derivare altreformule.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La deduzione naturale intuizionista di Gentzen (ND)
Le dimostrazioni in deduzione naturale sono alberi in cui:
le formule corrispondono ai nodi;le ipotesi corrispondono alle foglie;
la conclusione corrisponde alla radice.le formule sono collegate assieme da regole di inferenza
le regole di inferenza sono divise in due tipi:
le regole di introduzione, che specificano il modo in cui unaparticolare formula viene dedotta a partire da un certo numerodi premesse;le regole di eliminazione, che specificano il modo in cui unaparticolare formula puo essere utilizzata per derivare altreformule.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La deduzione naturale intuizionista di Gentzen (ND)
Le dimostrazioni in deduzione naturale sono alberi in cui:
le formule corrispondono ai nodi;le ipotesi corrispondono alle foglie;la conclusione corrisponde alla radice.
le formule sono collegate assieme da regole di inferenza
le regole di inferenza sono divise in due tipi:
le regole di introduzione, che specificano il modo in cui unaparticolare formula viene dedotta a partire da un certo numerodi premesse;le regole di eliminazione, che specificano il modo in cui unaparticolare formula puo essere utilizzata per derivare altreformule.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La deduzione naturale intuizionista di Gentzen (ND)
Le dimostrazioni in deduzione naturale sono alberi in cui:
le formule corrispondono ai nodi;le ipotesi corrispondono alle foglie;la conclusione corrisponde alla radice.le formule sono collegate assieme da regole di inferenza
le regole di inferenza sono divise in due tipi:
le regole di introduzione, che specificano il modo in cui unaparticolare formula viene dedotta a partire da un certo numerodi premesse;le regole di eliminazione, che specificano il modo in cui unaparticolare formula puo essere utilizzata per derivare altreformule.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La deduzione naturale intuizionista di Gentzen (ND)
Le dimostrazioni in deduzione naturale sono alberi in cui:
le formule corrispondono ai nodi;le ipotesi corrispondono alle foglie;la conclusione corrisponde alla radice.le formule sono collegate assieme da regole di inferenza
le regole di inferenza sono divise in due tipi:
le regole di introduzione, che specificano il modo in cui unaparticolare formula viene dedotta a partire da un certo numerodi premesse;
le regole di eliminazione, che specificano il modo in cui unaparticolare formula puo essere utilizzata per derivare altreformule.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La deduzione naturale intuizionista di Gentzen (ND)
Le dimostrazioni in deduzione naturale sono alberi in cui:
le formule corrispondono ai nodi;le ipotesi corrispondono alle foglie;la conclusione corrisponde alla radice.le formule sono collegate assieme da regole di inferenza
le regole di inferenza sono divise in due tipi:
le regole di introduzione, che specificano il modo in cui unaparticolare formula viene dedotta a partire da un certo numerodi premesse;le regole di eliminazione, che specificano il modo in cui unaparticolare formula puo essere utilizzata per derivare altreformule.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Deduzione naturale: l’ipotesi
A
Sotto l’ipotesi A e possibile concludere A.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Deduzione naturale: l’ipotesi
A
Sotto l’ipotesi A e possibile concludere A.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Deduzione naturale: la regola di ⇒ I
A...B
Supponiamo di avere dimostrato la formula B utilizzando uncerto numero di volte l’ipotesi A;
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Deduzione naturale: la regola di ⇒ I
[A]
...B ⇒ I
A⇒ B
Supponiamo di avere una dimostrazione della formula B cheusa un certo numero di volte l’ipotesi A;
allora possiamo “consumare” un determinato numero di voltel’ipotesi A per produrre una dimostrazione di A⇒ B.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Deduzione naturale: la regola di ⇒ E
...A⇒ B
...A
Supponiamo di avere due dimostrazioni indipendentirispettivamente di A⇒ B e di A;
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Deduzione naturale: la regola di ⇒ E
...A⇒ B
...A ⇒ E
B
Supponiamo di avere due dimostrazioni indipendentirispettivamente di A⇒ B e di A;
allora possiamo comporre le due dimostrazioni per produrreuna dimostrazione di B.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Deduzione naturale: la regola di ∧I
...A
...B
Supponiamo di avere due dimostrazioni indipendentirispettivamente di A e di B;
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Deduzione naturale: la regola di ∧I
...A
...B ∧I
A ∧ B
Supponiamo di avere due dimostrazioni indipendentirispettivamente di A e di B;
allora possiamo comporre le due dimostrazioni per produrreuna dimostrazione di A ∧ B.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Deduzione naturale: la regola di ∧E1
...A ∧ B
Supponiamo di avere una dimostrazione della formula A ∧ B;
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Deduzione naturale: la regola di ∧E1
...A ∧ B ∧E1
A
Supponiamo di avere una dimostrazione della formula A ∧ B;
allora possiamo “selezionare” il primo elemento dellacongiunzione ed ottenere cosı una dimostrazione di A.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Deduzione naturale: la regola di ∧E2
...A ∧ B
Supponiamo di avere una dimostrazione della formula A ∧ B;
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Deduzione naturale: la regola di ∧E2
...A ∧ B ∧E2
B
Supponiamo di avere una dimostrazione della formula A ∧ B;
allora possiamo “selezionare” il secondo elemento dellacongiunzione ed ottenere cosı una dimostrazione di B.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Esempio
A⇒ A
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Esempio
[A]
A ⇒ IA⇒ A
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Esempio
[A]⇒ I
A⇒ A
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Esempio
A⇒ (B ⇒ A)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Esempio
[A]
B ⇒ A ⇒ IA⇒ (B ⇒ A)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Esempio
[A] [B]
A ⇒ IB ⇒ A ⇒ I
A⇒ (B ⇒ A)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Esempio
[A]⇒ I
B ⇒ A ⇒ IA⇒ (B ⇒ A)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Esempio
(A⇒ (B ⇒ C ))⇒ ((A⇒ B)⇒ (A⇒ C ))
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Esempio
[A⇒ (B ⇒ C )]
(A⇒ B)⇒ (A⇒ C )⇒ I
(A⇒ (B ⇒ C ))⇒ ((A⇒ B)⇒ (A⇒ C ))
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Esempio
[A⇒ (B ⇒ C )] [A⇒ B]
A⇒ C ⇒ I(A⇒ B)⇒ (A⇒ C )
⇒ I(A⇒ (B ⇒ C ))⇒ ((A⇒ B)⇒ (A⇒ C ))
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Esempio
[A⇒ (B ⇒ C )] [A] [A⇒ B]
C ⇒ IA⇒ C ⇒ I
(A⇒ B)⇒ (A⇒ C )⇒ I
(A⇒ (B ⇒ C ))⇒ ((A⇒ B)⇒ (A⇒ C ))
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Esempio
[A⇒ (B ⇒ C )] [A]⇒ E
B ⇒ C[A⇒ B]
C ⇒ IA⇒ C ⇒ I
(A⇒ B)⇒ (A⇒ C )⇒ I
(A⇒ (B ⇒ C ))⇒ ((A⇒ B)⇒ (A⇒ C ))
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Esempio
[A⇒ (B ⇒ C )] [A]⇒ E
B ⇒ C[A⇒ B] [A]
C ⇒ IA⇒ C ⇒ I
(A⇒ B)⇒ (A⇒ C )⇒ I
(A⇒ (B ⇒ C ))⇒ ((A⇒ B)⇒ (A⇒ C ))
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Esempio
[A⇒ (B ⇒ C )] [A]⇒ E
B ⇒ C
[A⇒ B] [A]⇒ E
BC ⇒ I
A⇒ C ⇒ I(A⇒ B)⇒ (A⇒ C )
⇒ I(A⇒ (B ⇒ C ))⇒ ((A⇒ B)⇒ (A⇒ C ))
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Esempio
[A⇒ (B ⇒ C )] [A]⇒ E
B ⇒ C
[A⇒ B] [A]⇒ E
B ⇒ EC ⇒ I
A⇒ C ⇒ I(A⇒ B)⇒ (A⇒ C )
⇒ I(A⇒ (B ⇒ C ))⇒ ((A⇒ B)⇒ (A⇒ C ))
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Una dimostrazione arzigogolata...
[B ∧ A]∧E2
A
[B ∧ A]∧E1
B ∧IA ∧ B ⇒ I
(B ∧ A)⇒ (A ∧ B)B A ∧IB ∧ A
⇒ EA ∧ B
“Dall’ ipotesi A e dall’ipotesi B segue A ∧ B”
{A,B} ` A ∧ B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Una dimostrazione arzigogolata...
[B ∧ A]∧E2
A
[B ∧ A]∧E1
B ∧IA ∧ B ⇒ I
(B ∧ A)⇒ (A ∧ B)B A ∧IB ∧ A
⇒ EA ∧ B
“Dall’ ipotesi A e dall’ipotesi B segue A ∧ B”
{A,B} ` A ∧ B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Una dimostrazione arzigogolata...
[B ∧ A]∧E2
A
[B ∧ A]∧E1
B ∧IA ∧ B ⇒ I
(B ∧ A)⇒ (A ∧ B)B A ∧IB ∧ A
⇒ EA ∧ B
“Dall’ ipotesi A e dall’ipotesi B segue A ∧ B”
{A,B} ` A ∧ B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La proprieta della sottoformula
Sia Γ un (multi-)insieme di formule:
Γ ` A
“Dalle ipotesi in Γ segue A”
Proprieta della sottoformula
Una prova π di Γ ` A rispetta la proprieta della sottoformula se leformule che compaiono in π sono tutte e sole e formule checompaiono in Γ,A.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La proprieta della sottoformula
Sia Γ un (multi-)insieme di formule:
Γ ` A
“Dalle ipotesi in Γ segue A”
Proprieta della sottoformula
Una prova π di Γ ` A rispetta la proprieta della sottoformula se leformule che compaiono in π sono tutte e sole e formule checompaiono in Γ,A.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La proprieta della sottoformula
Sia Γ un (multi-)insieme di formule:
Γ ` A
“Dalle ipotesi in Γ segue A”
Proprieta della sottoformula
Una prova π di Γ ` A rispetta la proprieta della sottoformula se leformule che compaiono in π sono tutte e sole e formule checompaiono in Γ,A.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
La proprieta della sottoformula
Sia Γ un (multi-)insieme di formule:
Γ ` A
“Dalle ipotesi in Γ segue A”
Proprieta della sottoformula
Una prova π di Γ ` A rispetta la proprieta della sottoformula se leformule che compaiono in π sono tutte e sole e formule checompaiono in Γ,A.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il taglio
[B ∧ A]∧E2
A
[B ∧ A]∧E1
B ∧IA ∧ B ⇒ I
(B ∧ A)⇒ (A ∧ B)B A ∧IB ∧ A
⇒ EA ∧ B
Taglio: L’introduzione di una formula seguitaimmediatamente dalla sua eliminazione.
E’ possibile trasformare, riscrivere una prova in maniera daottenere una prova senza tagli, preservando conclusione edipotesi ?
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il taglio
[B ∧ A]∧E2
A
[B ∧ A]∧E1
B ∧IA ∧ B ⇒ I
(B ∧ A)⇒ (A ∧ B)B A ∧IB ∧ A
⇒ EA ∧ B
Taglio: L’introduzione di una formula seguitaimmediatamente dalla sua eliminazione.
E’ possibile trasformare, riscrivere una prova in maniera daottenere una prova senza tagli, preservando conclusione edipotesi ?
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il taglio
[B ∧ A]∧E2
A
[B ∧ A]∧E1
B ∧IA ∧ B ⇒ I
(B ∧ A)⇒ (A ∧ B)B A ∧IB ∧ A
⇒ EA ∧ B
Taglio: L’introduzione di una formula seguitaimmediatamente dalla sua eliminazione.
E’ possibile trasformare, riscrivere una prova in maniera daottenere una prova senza tagli, preservando conclusione edipotesi ?
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Eliminazione del taglio: il caso ⇒
[A]
...B ⇒ I
A⇒ B
π...A ⇒ E
B
π...A...B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Eliminazione del taglio: il caso ∧
π1
...A
π2
...B ∧I
A ∧ B ∧E1A
π1
...A
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Eliminazione del taglio: il caso ∧
π1
...A
π2
...B ∧I
A ∧ B ∧E2B
π2
...B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Riduzione di una prova
[B ∧ A]∧E2
A
[B ∧ A]∧E1
B ∧IA ∧ B ⇒ I
(B ∧ A)⇒ (A ∧ B)B A ∧IB ∧ A
⇒ EA ∧ B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Riduzione di una prova
B A ∧IB ∧ A ∧E2
A
B A ∧IB ∧ A ∧E1
B ∧IA ∧ B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Riduzione di una prova
B A ∧IB ∧ A ∧E2
A
B A ∧IB ∧ A ∧E1
B ∧IA ∧ B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Riduzione di una prova
A
B A ∧IB ∧ A ∧E1
B ∧IA ∧ B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Riduzione di una prova
A B ∧IA ∧ B
“Dall’ ipotesi A e dall’ipotesi B segue A ∧ B”
{A,B} ` A ∧ B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Riduzione di una prova
A B ∧IA ∧ B
“Dall’ ipotesi A e dall’ipotesi B segue A ∧ B”
{A,B} ` A ∧ B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il teorema di eliminazione del taglio
Teorema di eliminazione del taglio, Gentzen
Per ogni prova π di Γ ` A in deduzione naturale, esiste una provaπ′ di Γ ` A senza tagli.
Corollario
Per ogni prova π di Γ ` A in deduzione naturale, esiste una provaπ′ di Γ ` A in cui occorrono solo sottoformule delle formule in Γ,A.
La procedura di trasformazione delle dimostrazioni sembraricordare un processo di calcolo....
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il teorema di eliminazione del taglio
Teorema di eliminazione del taglio, Gentzen
Per ogni prova π di Γ ` A in deduzione naturale, esiste una provaπ′ di Γ ` A senza tagli.
Corollario
Per ogni prova π di Γ ` A in deduzione naturale, esiste una provaπ′ di Γ ` A in cui occorrono solo sottoformule delle formule in Γ,A.
La procedura di trasformazione delle dimostrazioni sembraricordare un processo di calcolo....
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il teorema di eliminazione del taglio
Teorema di eliminazione del taglio, Gentzen
Per ogni prova π di Γ ` A in deduzione naturale, esiste una provaπ′ di Γ ` A senza tagli.
Corollario
Per ogni prova π di Γ ` A in deduzione naturale, esiste una provaπ′ di Γ ` A in cui occorrono solo sottoformule delle formule in Γ,A.
La procedura di trasformazione delle dimostrazioni sembraricordare un processo di calcolo....
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
λ-calcolo e normalizzazione forte
Consideriamo il λ-termine considerato il “prototipo” dellanon-terminazione:
λx .xx
Cosa fa λx .xx? Prende in input un termine e lo applica a sestesso.
Ora cosa succede se diamo in input a λx .xx se stesso?
(λx .xx)λx .xx →β ∗(λx .xx)λx .xx →β ∗ . . .
La radice della non-terminazione e l’autoapplicazione! Comeimpedirla?
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
λ-calcolo e normalizzazione forte
Consideriamo il λ-termine considerato il “prototipo” dellanon-terminazione:
λx .xx
Cosa fa λx .xx? Prende in input un termine e lo applica a sestesso.
Ora cosa succede se diamo in input a λx .xx se stesso?
(λx .xx)λx .xx →β ∗(λx .xx)λx .xx →β ∗ . . .
La radice della non-terminazione e l’autoapplicazione! Comeimpedirla?
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
λ-calcolo e normalizzazione forte
Consideriamo il λ-termine considerato il “prototipo” dellanon-terminazione:
λx .xx
Cosa fa λx .xx? Prende in input un termine e lo applica a sestesso.
Ora cosa succede se diamo in input a λx .xx se stesso?
(λx .xx)λx .xx →β ∗(λx .xx)λx .xx →β ∗ . . .
La radice della non-terminazione e l’autoapplicazione! Comeimpedirla?
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
λ-calcolo e normalizzazione forte
Consideriamo il λ-termine considerato il “prototipo” dellanon-terminazione:
λx .xx
Cosa fa λx .xx? Prende in input un termine e lo applica a sestesso.
Ora cosa succede se diamo in input a λx .xx se stesso?
(λx .xx)λx .xx →β ∗(λx .xx)λx .xx →β ∗ . . .
La radice della non-terminazione e l’autoapplicazione! Comeimpedirla?
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il λ-calcolo semplicemente tipato
λ-termini:
M ::= x | λx .M | MM | 〈MM〉 | fst M | snd M
“Zucchero sintattico”:
fst〈M1M2〉 →β M1
snd〈M1M2〉 →β M2
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il λ-calcolo semplicemente tipato
λ-termini:
M ::= x | λx .M | MM | 〈MM〉 | fst M | snd M
“Zucchero sintattico”:
fst〈M1M2〉 →β M1
snd〈M1M2〉 →β M2
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
I tipi semplici
Sia data una infinita numerabile di variabili A, B, C ...
dette variabili di tipo:
1 Una variabile di tipo A e un tipo semplice;2 Se A e un tipo semplice e B e un tipo semplice, allora A→ B e
un tipo semplice;3 Se A e un tipo semplice e B e un tipo semplice, allora A× B e
un tipo semplice;
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
I tipi semplici
Sia data una infinita numerabile di variabili A, B, C ...
dette variabili di tipo:
1 Una variabile di tipo A e un tipo semplice;
2 Se A e un tipo semplice e B e un tipo semplice, allora A→ B eun tipo semplice;
3 Se A e un tipo semplice e B e un tipo semplice, allora A× B eun tipo semplice;
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
I tipi semplici
Sia data una infinita numerabile di variabili A, B, C ...
dette variabili di tipo:
1 Una variabile di tipo A e un tipo semplice;2 Se A e un tipo semplice e B e un tipo semplice, allora A→ B e
un tipo semplice;
3 Se A e un tipo semplice e B e un tipo semplice, allora A× B eun tipo semplice;
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
I tipi semplici
Sia data una infinita numerabile di variabili A, B, C ...
dette variabili di tipo:
1 Una variabile di tipo A e un tipo semplice;2 Se A e un tipo semplice e B e un tipo semplice, allora A→ B e
un tipo semplice;3 Se A e un tipo semplice e B e un tipo semplice, allora A× B e
un tipo semplice;
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Assegnazione di un tipo ad un termine
Ogni variabile x ha assegnato un tipo A:
Se x e una variabile di tipo A e M e un termine di tipo B
allora λx .M e un termine di tipo A→ B;
Se M e un termine di tipo A→ B e N e un termine di tipo A
allora M N e un termine di tipo B.
Se M e un termine di tipo A e N e un termine di tipo B allora〈MN〉 e un termine di tipo A× B.
Se M e un termine di tipo A× B, allora fst M e un termine ditipo A.
Se M e un termine di tipo A× B, allora snd M e un termine ditipo B.
MA (o anche M : A): il termine M ha tipo A.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Assegnazione di un tipo ad un termine
Ogni variabile x ha assegnato un tipo A:
Se x e una variabile di tipo A e M e un termine di tipo B
allora λx .M e un termine di tipo A→ B;
Se M e un termine di tipo A→ B e N e un termine di tipo A
allora M N e un termine di tipo B.
Se M e un termine di tipo A e N e un termine di tipo B allora〈MN〉 e un termine di tipo A× B.
Se M e un termine di tipo A× B, allora fst M e un termine ditipo A.
Se M e un termine di tipo A× B, allora snd M e un termine ditipo B.
MA (o anche M : A): il termine M ha tipo A.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Assegnazione di un tipo ad un termine
Ogni variabile x ha assegnato un tipo A:
Se x e una variabile di tipo A e M e un termine di tipo B
allora λx .M e un termine di tipo A→ B;
Se M e un termine di tipo A→ B e N e un termine di tipo A
allora M N e un termine di tipo B.
Se M e un termine di tipo A e N e un termine di tipo B allora〈MN〉 e un termine di tipo A× B.
Se M e un termine di tipo A× B, allora fst M e un termine ditipo A.
Se M e un termine di tipo A× B, allora snd M e un termine ditipo B.
MA (o anche M : A): il termine M ha tipo A.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Assegnazione di un tipo ad un termine
Ogni variabile x ha assegnato un tipo A:
Se x e una variabile di tipo A e M e un termine di tipo B
allora λx .M e un termine di tipo A→ B;
Se M e un termine di tipo A→ B e N e un termine di tipo A
allora M N e un termine di tipo B.
Se M e un termine di tipo A e N e un termine di tipo B allora〈MN〉 e un termine di tipo A× B.
Se M e un termine di tipo A× B, allora fst M e un termine ditipo A.
Se M e un termine di tipo A× B, allora snd M e un termine ditipo B.
MA (o anche M : A): il termine M ha tipo A.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Assegnazione di un tipo ad un termine
Ogni variabile x ha assegnato un tipo A:
Se x e una variabile di tipo A e M e un termine di tipo B
allora λx .M e un termine di tipo A→ B;
Se M e un termine di tipo A→ B e N e un termine di tipo A
allora M N e un termine di tipo B.
Se M e un termine di tipo A e N e un termine di tipo B allora〈MN〉 e un termine di tipo A× B.
Se M e un termine di tipo A× B, allora fst M e un termine ditipo A.
Se M e un termine di tipo A× B, allora snd M e un termine ditipo B.
MA (o anche M : A): il termine M ha tipo A.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Assegnazione di un tipo ad un termine
Ogni variabile x ha assegnato un tipo A:
Se x e una variabile di tipo A e M e un termine di tipo B
allora λx .M e un termine di tipo A→ B;
Se M e un termine di tipo A→ B e N e un termine di tipo A
allora M N e un termine di tipo B.
Se M e un termine di tipo A e N e un termine di tipo B allora〈MN〉 e un termine di tipo A× B.
Se M e un termine di tipo A× B, allora fst M e un termine ditipo A.
Se M e un termine di tipo A× B, allora snd M e un termine ditipo B.
MA (o anche M : A): il termine M ha tipo A.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Assegnazione di un tipo ad un termine
Ogni variabile x ha assegnato un tipo A:
Se x e una variabile di tipo A e M e un termine di tipo B
allora λx .M e un termine di tipo A→ B;
Se M e un termine di tipo A→ B e N e un termine di tipo A
allora M N e un termine di tipo B.
Se M e un termine di tipo A e N e un termine di tipo B allora〈MN〉 e un termine di tipo A× B.
Se M e un termine di tipo A× B, allora fst M e un termine ditipo A.
Se M e un termine di tipo A× B, allora snd M e un termine ditipo B.
MA (o anche M : A): il termine M ha tipo A.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Le regole di riduzione nel λ-calcolo semplicemente tipato
((λxA.MB)A→BNA)B →β MB[NA/xA]
(fst(〈MA1 MB
2 〉)A×B)A →β MA1
(snd(〈MA1 MB
2 〉)A×B)B →β MB2
Non e possibile assegnare un tipo al termine λx .xx nel λ-calcolosemplicemente tipato: infatti non si puo assegnare ad x allo stessotempo il tipo A→ B e A.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Le regole di riduzione nel λ-calcolo semplicemente tipato
((λxA.MB)A→BNA)B →β MB[NA/xA]
(fst(〈MA1 MB
2 〉)A×B)A →β MA1
(snd(〈MA1 MB
2 〉)A×B)B →β MB2
Non e possibile assegnare un tipo al termine λx .xx nel λ-calcolosemplicemente tipato: infatti non si puo assegnare ad x allo stessotempo il tipo A→ B e A.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Proprieta fondamentali del λ-calcolo semplicemente tipato
Subject reduction
Se M e un termine di tipo A del λ-calcolo semplicemente tipato eM →β M ′, allora M ′ e un termine di tipo A.
Normalizzazione forte
Se M e un termine del λ-calcolo semplicemente tipato, allora M efortemente normalizzabile.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Proprieta fondamentali del λ-calcolo semplicemente tipato
Subject reduction
Se M e un termine di tipo A del λ-calcolo semplicemente tipato eM →β M ′, allora M ′ e un termine di tipo A.
Normalizzazione forte
Se M e un termine del λ-calcolo semplicemente tipato, allora M efortemente normalizzabile.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
L’isomorfismo di Curry-Howard
Esiste una corrispondenza stretta tra termini del λ calcolosemplicemente tipato e prove della deduzione naturale intuizionista.
Formule / Tipi
Formule TipiA A
A⇒ B A→ B
A ∧ B A× B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
L’isomorfismo di Curry-Howard
Esiste una corrispondenza stretta tra termini del λ calcolosemplicemente tipato e prove della deduzione naturale intuizionista.
Formule / Tipi
Formule TipiA A
A⇒ B A→ B
A ∧ B A× B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
L’isomorfismo di Curry-Howard
Esiste una corrispondenza stretta tra termini del λ calcolosemplicemente tipato e prove della deduzione naturale intuizionista.
Formule / Tipi
Formule TipiA A
A⇒ B A→ B
A ∧ B A× B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
L’isomorfismo di Curry-Howard
Esiste una corrispondenza stretta tra termini del λ calcolosemplicemente tipato e prove della deduzione naturale intuizionista.
Formule / Tipi
Formule TipiA A
A⇒ B A→ B
A ∧ B A× B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Regole di deduzione e derivazione di tipo: l’ipotesi
x : A
Sotto l’ipotesi che x ha tipo A e possibile concludere chex ha tipo A.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Regole di deduzione e derivazione di tipo: l’ipotesi
x : A
Sotto l’ipotesi che x ha tipo A e possibile concludere chex ha tipo A.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Regole di deduzione e derivazione di tipo: la regola di ⇒ I
x : A...
M : B
Supponiamo di avere un λ-termine M di tipo B in cui compareun certo numero di volte la variabile libera x di tipo A;
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Regole di deduzione e derivazione di tipo: la regola di ⇒ I
[x : A]
...M : B ⇒ I
λx .M : A⇒ B
Supponiamo di avere un λ-termine M di tipo B in cui compareun certo numero di volte la variabile libera x di tipo A;
allora possiamo “catturare” le occorrenze libere della variabilex di tipo A con una λ-astrazione, ottenendo un termine λx .Mdi tipo A⇒ B.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Regole di deduzione e derivazione di tipo: la regola di ⇒ E
...M : A⇒ B
...N : A
Supponiamo di avere un λ-termine M di tipo A⇒ B e un λtermine N di tipo A;
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Regole di deduzione e derivazione di tipo: la regola di ⇒ E
...M : A⇒ B
...N : A ⇒ E
(M N) : B
Supponiamo di avere un λ-termine M di tipo A⇒ B e unλ-termine N di tipo A;
allora possiamo applicare la funzione M al suo argomento Nper produrre un λ-termine di tipo B.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Regole di deduzione e derivazione di tipo: la regola di ∧I
...M : A
...N : B
Supponiamo di avere due λ-termini M e N rispettivamente ditipo A e B;
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Regole di deduzione e derivazione di tipo: la regola di ∧I
...M : A
...N : B ∧I〈M N〉 : A ∧ B
Supponiamo di avere due λ-termini M e N rispettivamente ditipo A e B;
allora possiamo comporre i due λ-termini per ottenere lacoppia 〈M N〉 di tipo A ∧ B.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Regole di deduzione e derivazione di tipo: la regola di ∧E1
...M : A ∧ B
Supponiamo di avere un λ-termine di tipo A ∧ B;
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Regole di deduzione e derivazione di tipo: la regola di ∧E1
...M : A ∧ B ∧E1(fst M) : A
Supponiamo di avere un λ-termine di tipo A ∧ B;
allora possiamo “selezionare” il primo elemento di M edottenere cosı un λ-termine fst M di tipo A.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Regole di deduzione e derivazione di tipo: la regola di ∧E2
...M : A ∧ B
Supponiamo di avere un λ-termine di tipo A ∧ B;
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Regole di deduzione e derivazione di tipo: la regola di ∧E2
...M : A ∧ B ∧E2
(snd M) : B
Supponiamo di avere un λ-termine di tipo A ∧ B;
allora possiamo “selezionare” il secondo elemento di M edottenere cosı un λ-termine snd M di tipo B.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
L’isomorfismo di Curry-Howard
Esiste una corrispondenza stretta tra termini del λ calcolosemplicemente tipato e prove della deduzione naturale intuizionista.
Regole di deduzione / Costrutti del λ-calcolo
Regole Costrutti⇒ I λ-astrazione
⇒ E applicazione
∧I coppia
∧E1, ∧E2 prima e seconda proiezione
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
L’isomorfismo di Curry-Howard
Esiste una corrispondenza stretta tra termini del λ calcolosemplicemente tipato e prove della deduzione naturale intuizionista.
Regole di deduzione / Costrutti del λ-calcolo
Regole Costrutti⇒ I λ-astrazione
⇒ E applicazione
∧I coppia
∧E1, ∧E2 prima e seconda proiezione
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
L’isomorfismo di Curry-Howard
Esiste una corrispondenza stretta tra termini del λ calcolosemplicemente tipato e prove della deduzione naturale intuizionista.
Regole di deduzione / Costrutti del λ-calcolo
Regole Costrutti⇒ I λ-astrazione
⇒ E applicazione
∧I coppia
∧E1, ∧E2 prima e seconda proiezione
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
L’isomorfismo di Curry-Howard
Esiste una corrispondenza stretta tra termini del λ calcolosemplicemente tipato e prove della deduzione naturale intuizionista.
Regole di deduzione / Costrutti del λ-calcolo
Regole Costrutti⇒ I λ-astrazione
⇒ E applicazione
∧I coppia
∧E1, ∧E2 prima e seconda proiezione
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
L’isomorfismo di Curry-Howard
Esiste una corrispondenza stretta tra termini del λ calcolosemplicemente tipato e prove della deduzione naturale intuizionista.
Regole di deduzione / Costrutti del λ-calcolo
Regole Costrutti⇒ I λ-astrazione
⇒ E applicazione
∧I coppia
∧E1, ∧E2 prima e seconda proiezione
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
L’isomorfismo di Curry-Howard
Esiste una corrispondenza stretta tra termini del λ calcolosemplicemente tipato e prove della deduzione naturale intuizionista.
Regole di deduzione / Costrutti del λ-calcolo
Regole Costrutti⇒ I λ-astrazione
⇒ E applicazione
∧I coppia
∧E1, ∧E2 prima e seconda proiezione
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Un λ-termine corrisponde ad una prova in deduzionenaturale!
[z : B ∧ A]∧E2
snd z : A
[z : B ∧ A]∧E1
fst z : B ∧I〈(snd z)(fst z)〉 : A ∧ B⇒ I
λz .〈(snd z)(fst z)〉 : (B ∧ A)⇒ (A ∧ B)
y : B x : A∧I〈y x〉 : B ∧ A⇒ E
(λz .〈(snd z)(fst z)〉)〈y x〉 : A ∧ B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Un λ-termine corrisponde ad una prova in deduzionenaturale!
[z : B ∧ A]∧E2
snd z : A
[z : B ∧ A]∧E1
fst z : B ∧I〈(snd z)(fst z)〉 : A ∧ B⇒ I
λz .〈(snd z)(fst z)〉 : (B ∧ A)⇒ (A ∧ B)
y : B x : A∧I〈y x〉 : B ∧ A⇒ E
(λz .〈(snd z)(fst z)〉)〈y x〉 : A ∧ B
I redessi corrispondono ai tagli!
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Un λ-termine corrisponde ad una prova in deduzionenaturale!
[z : B ∧ A]∧E2
snd z : A
[z : B ∧ A]∧E1
fst z : B ∧I〈(snd z)(fst z)〉 : A ∧ B⇒ I
λz .〈(snd z)(fst z)〉 : (B ∧ A)⇒ (A ∧ B)
y : B x : A∧I〈y x〉 : B ∧ A⇒ E
(λz .〈(snd z)(fst z)〉)〈y x〉 : A ∧ B
I redessi corrispondono ai tagli!
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Un λ-termine corrisponde ad una prova in deduzionenaturale!
y : B x : A∧I〈y x〉 : B ∧ A∧E2
snd 〈y x〉 : A
y : B x : A∧I〈y x〉 : B ∧ A∧E1
fst 〈y x〉 : B∧I〈(snd 〈y x〉)(fst 〈y x〉)〉 : A ∧ B
Un passo di β-riduzione corrisponde ad un passo di eliminazionedel taglio !
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Un λ-termine corrisponde ad una prova in deduzionenaturale!
y : B x : A∧I〈y x〉 : B ∧ A∧E2
snd 〈y x〉 : A
y : B x : A∧I〈y x〉 : B ∧ A∧E1
fst 〈y x〉 : B∧I〈(snd 〈y x〉)(fst 〈y x〉)〉 : A ∧ B
Un passo di β-riduzione corrisponde ad un passo di eliminazionedel taglio !
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Un λ-termine corrisponde ad una prova in deduzionenaturale!
y : B x : A∧I〈y x〉 : B ∧ A∧E2
snd 〈y x〉 : A
y : B x : A∧I〈y x〉 : B ∧ A∧E1
fst 〈y x〉 : B∧I〈(snd 〈y x〉)(fst 〈y x〉)〉 : A ∧ B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Un λ-termine corrisponde ad una prova in deduzionenaturale!
x : A
y : B x : A∧I〈y x〉 : B ∧ A∧E1
fst 〈y x〉 : B∧I〈(x)(fst 〈y x〉)〉 : A ∧ B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Un λ-termine corrisponde ad una prova in deduzionenaturale!
x : A y : B∧I〈x y〉 : A ∧ B
Un λ-termine in forma normale corrisponde ad una dimostrazionesenza tagli !
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Un λ-termine corrisponde ad una prova in deduzionenaturale!
x : A y : B∧I〈x y〉 : A ∧ B
Un λ-termine in forma normale corrisponde ad una dimostrazionesenza tagli !
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Un λ-termine corrisponde ad una prova in deduzionenaturale!
M −−−−→ M ′y yπ −−−−→ π′
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
L’isomorfismo di Curry-Howard
Esiste una corrispondenza stretta tra termini del λ calcolosemplicemente tipato e prove della deduzione naturale intuizionista.
Deduzione Naturale λ-calcoloFormule Tipi
Prove λ-termini
Eliminazione del Taglio β-riduzione
Prove senza tagli λ-termini in forma normale
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
L’isomorfismo di Curry-Howard
Esiste una corrispondenza stretta tra termini del λ calcolosemplicemente tipato e prove della deduzione naturale intuizionista.
Deduzione Naturale λ-calcoloFormule Tipi
Prove λ-termini
Eliminazione del Taglio β-riduzione
Prove senza tagli λ-termini in forma normale
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
L’isomorfismo di Curry-Howard
Esiste una corrispondenza stretta tra termini del λ calcolosemplicemente tipato e prove della deduzione naturale intuizionista.
Deduzione Naturale λ-calcoloFormule Tipi
Prove λ-termini
Eliminazione del Taglio β-riduzione
Prove senza tagli λ-termini in forma normale
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
L’isomorfismo di Curry-Howard
Esiste una corrispondenza stretta tra termini del λ calcolosemplicemente tipato e prove della deduzione naturale intuizionista.
Deduzione Naturale λ-calcoloFormule Tipi
Prove λ-termini
Eliminazione del Taglio β-riduzione
Prove senza tagli λ-termini in forma normale
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
L’isomorfismo di Curry-Howard
Esiste una corrispondenza stretta tra termini del λ calcolosemplicemente tipato e prove della deduzione naturale intuizionista.
Deduzione Naturale λ-calcoloFormule Tipi
Prove λ-termini
Eliminazione del Taglio β-riduzione
Prove senza tagli λ-termini in forma normale
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Costruire un programma da una prova
Supponiamo di volere calcolare una determinata funzione fsugli interi, definita mediante un sistema di equazioni Eq;
Costruiamo una prova π in deduzione naturale dellaproposizione “ Se x e un intero, allora f (x) e un intero” (cioedimostriamo che la funzione f e totale);
Utilizzando la corrispondenza prove/programmi, associamoalla dimostrazione π il λ termine Mf : in questo modootteniamo un programma capace di calcolare la funzione f !
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Costruire un programma da una prova
Supponiamo di volere calcolare una determinata funzione fsugli interi, definita mediante un sistema di equazioni Eq;
Costruiamo una prova π in deduzione naturale dellaproposizione “ Se x e un intero, allora f (x) e un intero” (cioedimostriamo che la funzione f e totale);
Utilizzando la corrispondenza prove/programmi, associamoalla dimostrazione π il λ termine Mf : in questo modootteniamo un programma capace di calcolare la funzione f !
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Costruire un programma da una prova
Supponiamo di volere calcolare una determinata funzione fsugli interi, definita mediante un sistema di equazioni Eq;
Costruiamo una prova π in deduzione naturale dellaproposizione “ Se x e un intero, allora f (x) e un intero” (cioedimostriamo che la funzione f e totale);
Utilizzando la corrispondenza prove/programmi, associamoalla dimostrazione π il λ termine Mf : in questo modootteniamo un programma capace di calcolare la funzione f !
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Vantaggi del calcolare con le prove
Qualunque sia la strategia utilizzata per eseguire unprogramma associato ad una prova l’esecuzione termina(teorema di normalizzazione forte).
Due strategie diverse di esecuzione di un programma associatoad una prova conducono allo stesso risultato (teorema diconfluenza).
Un programma associato ad una prova e sempre corretto, nelsenso che il programma Mf estratto dalla prova π calcolaeffettivamente i valori della funzione definita da Eq (teoremadi correttezza).
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Vantaggi del calcolare con le prove
Qualunque sia la strategia utilizzata per eseguire unprogramma associato ad una prova l’esecuzione termina(teorema di normalizzazione forte).
Due strategie diverse di esecuzione di un programma associatoad una prova conducono allo stesso risultato (teorema diconfluenza).
Un programma associato ad una prova e sempre corretto, nelsenso che il programma Mf estratto dalla prova π calcolaeffettivamente i valori della funzione definita da Eq (teoremadi correttezza).
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Vantaggi del calcolare con le prove
Qualunque sia la strategia utilizzata per eseguire unprogramma associato ad una prova l’esecuzione termina(teorema di normalizzazione forte).
Due strategie diverse di esecuzione di un programma associatoad una prova conducono allo stesso risultato (teorema diconfluenza).
Un programma associato ad una prova e sempre corretto, nelsenso che il programma Mf estratto dalla prova π calcolaeffettivamente i valori della funzione definita da Eq (teoremadi correttezza).
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Oltre i tipi semplici
Il λ-calcolo semplicemente tipato ha un espressivita limitata...
Estensione dei tipi: il λ-calcolo con tipi polimorfi corrispondealla logica intuizionista del secondo ordine.
Estensione del linguaggio : il λ-calcolo con operatori dicontrollo corrisponde alla logica classica.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Oltre i tipi semplici
Il λ-calcolo semplicemente tipato ha un espressivita limitata...
Estensione dei tipi: il λ-calcolo con tipi polimorfi corrispondealla logica intuizionista del secondo ordine.
Estensione del linguaggio : il λ-calcolo con operatori dicontrollo corrisponde alla logica classica.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Oltre i tipi semplici
Il λ-calcolo semplicemente tipato ha un espressivita limitata...
Estensione dei tipi: il λ-calcolo con tipi polimorfi corrispondealla logica intuizionista del secondo ordine.
Estensione del linguaggio : il λ-calcolo con operatori dicontrollo corrisponde alla logica classica.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Oltre i tipi semplici
Il λ-calcolo semplicemente tipato ha un espressivita limitata...
Estensione dei tipi: il λ-calcolo con tipi polimorfi corrispondealla logica intuizionista del secondo ordine.
Estensione del linguaggio : il λ-calcolo con operatori dicontrollo corrisponde alla logica classica.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Indice
1 Introduzione: logica e informatica
2 Il λ-calcolo e la programmazione funzionale
3 La deduzione naturale e la corrispondenza prove-programmi
4 Potere espressivo: Sistema F e polimorfismo
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Sul potere espressivo dei tipi semplici
Possiamo individuare due limiti fondamentali al sistema dei tipisemplici:
Non e possibile fare astrazione sui tipi (es. ogni tipo A ha la”sua” funzione identita λx .x : A⇒ A);
non e possibile applicare un termine a se stesso ( x x non etipabile, perche x non puo avere al tempo stesso il tipoA⇒ B e il tipo A)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Sul potere espressivo dei tipi semplici
Possiamo individuare due limiti fondamentali al sistema dei tipisemplici:
Non e possibile fare astrazione sui tipi (es. ogni tipo A ha la”sua” funzione identita λx .x : A⇒ A);
non e possibile applicare un termine a se stesso ( x x non etipabile, perche x non puo avere al tempo stesso il tipoA⇒ B e il tipo A)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Sul potere espressivo dei tipi semplici
Possiamo individuare due limiti fondamentali al sistema dei tipisemplici:
Non e possibile fare astrazione sui tipi (es. ogni tipo A ha la”sua” funzione identita λx .x : A⇒ A);
non e possibile applicare un termine a se stesso ( x x non etipabile, perche x non puo avere al tempo stesso il tipoA⇒ B e il tipo A)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Logica del secondo ordine
Sia data una proposizione P ; allora vale che P ⇒ P.Come esprimere questa proprieta nella logica?
Sia data un’infinita numerabile di variabili proposizionaliX ,Y ,Z , . . .;
per ogni X , X ⇒ X ;
∀X X ⇒ X ;
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Logica del secondo ordine
Sia data una proposizione P ; allora vale che P ⇒ P.Come esprimere questa proprieta nella logica?
Sia data un’infinita numerabile di variabili proposizionaliX ,Y ,Z , . . .;
per ogni X , X ⇒ X ;
∀X X ⇒ X ;
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Logica del secondo ordine
Sia data una proposizione P ; allora vale che P ⇒ P.Come esprimere questa proprieta nella logica?
Sia data un’infinita numerabile di variabili proposizionaliX ,Y ,Z , . . .;
per ogni X , X ⇒ X ;
∀X X ⇒ X ;
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Logica del secondo ordine
Sia data una proposizione P ; allora vale che P ⇒ P.Come esprimere questa proprieta nella logica?
Sia data un’infinita numerabile di variabili proposizionaliX ,Y ,Z , . . .;
per ogni X , X ⇒ X ;
∀X X ⇒ X ;
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Deduzione naturale: la regola di ∀2I
...A ∀2I∀X A
Supponiamo di avere una dimostrazione della formula A, dovela variabile proposizionale X non occora libera nelle ipotesi(cioe sto usando la variabile X in modo generico);
allora posso ”astrarre” rispetto ad X e concludere ∀X A.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Deduzione naturale: la regola di ∀2I
...A ∀2I∀X A
Supponiamo di avere una dimostrazione della formula A, dovela variabile proposizionale X non occora libera nelle ipotesi(cioe sto usando la variabile X in modo generico);
allora posso ”astrarre” rispetto ad X e concludere ∀X A.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Deduzione naturale: la regola di ∀2E
...∀X A ∀2E
A[B/X ]
Supponiamo di avere una dimostrazione della formula ∀X A;
allora posso ”usare” questa dimostrazione sostituendo in Aogni occorrenza di X con una qualsiasi formula B, poiche Xviene usata in A in modo generico.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Deduzione naturale: la regola di ∀2E
...∀X A ∀2E
A[B/X ]
Supponiamo di avere una dimostrazione della formula ∀X A;
allora posso ”usare” questa dimostrazione sostituendo in Aogni occorrenza di X con una qualsiasi formula B, poiche Xviene usata in A in modo generico.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Eliminazione del taglio: il caso ∀2
π1
...A ∀2I∀X A ∀2E
A[B/X ]
π1
...A[B/X ]
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Esempio
X
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Esempio
[X ]⇒ I
X ⇒ X
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Esempio
[X ]⇒ I
X ⇒ X ∀2I∀X X ⇒ X
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Esempio
[X ]⇒ I
X ⇒ X ∀2I∀X X ⇒ X ∀2EB ⇒ B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il Sistema F: tipi
Sia data una infinita numerabile di variabili X ,Y ,Z . . . dettevariabili di tipo:
1 Una variabile di tipo X e un tipo;2 Se A e un tipo e B e un tipo, allora A⇒ B e un tipo;3 Se A e un tipo e X e una variabile di tipo, allora ∀X A e un
tipo.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il Sistema F: tipi
Sia data una infinita numerabile di variabili X ,Y ,Z . . . dettevariabili di tipo:
1 Una variabile di tipo X e un tipo;
2 Se A e un tipo e B e un tipo, allora A⇒ B e un tipo;3 Se A e un tipo e X e una variabile di tipo, allora ∀X A e un
tipo.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il Sistema F: tipi
Sia data una infinita numerabile di variabili X ,Y ,Z . . . dettevariabili di tipo:
1 Una variabile di tipo X e un tipo;2 Se A e un tipo e B e un tipo, allora A⇒ B e un tipo;
3 Se A e un tipo e X e una variabile di tipo, allora ∀X A e untipo.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il Sistema F: tipi
Sia data una infinita numerabile di variabili X ,Y ,Z . . . dettevariabili di tipo:
1 Una variabile di tipo X e un tipo;2 Se A e un tipo e B e un tipo, allora A⇒ B e un tipo;3 Se A e un tipo e X e una variabile di tipo, allora ∀X A e un
tipo.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il Sistema F: termini
Tipi:
U ::= X | U ⇒ U | ∀X U
λ-termini:
M ::= x | λx .M | M M | ΛX .M | M U
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Assegnazione di un tipo ad un termine
Ogni variabile x ha assegnato un tipo A:
Se x e una variabile con tipo A e M e un termine di tipo Ballora λx .M e un termine di tipo A⇒ B;
Se M e un termine di tipo A⇒ B e N e un termine di tipo Aallora M N e un termine di tipo B.
Se M e un termine di tipo A, e se la variabile di tipo X nonoccorre libera nel tipo di una variabile libera di M, alloraΛX .M e un termine di tipo ∀XA;
Se M e un termine di tipo ∀XA e se B e un tipo, allora M B eun termine di tipo A[B/X ].
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Assegnazione di un tipo ad un termine
Ogni variabile x ha assegnato un tipo A:
Se x e una variabile con tipo A e M e un termine di tipo Ballora λx .M e un termine di tipo A⇒ B;
Se M e un termine di tipo A⇒ B e N e un termine di tipo Aallora M N e un termine di tipo B.
Se M e un termine di tipo A, e se la variabile di tipo X nonoccorre libera nel tipo di una variabile libera di M, alloraΛX .M e un termine di tipo ∀XA;
Se M e un termine di tipo ∀XA e se B e un tipo, allora M B eun termine di tipo A[B/X ].
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Assegnazione di un tipo ad un termine
Ogni variabile x ha assegnato un tipo A:
Se x e una variabile con tipo A e M e un termine di tipo Ballora λx .M e un termine di tipo A⇒ B;
Se M e un termine di tipo A⇒ B e N e un termine di tipo Aallora M N e un termine di tipo B.
Se M e un termine di tipo A, e se la variabile di tipo X nonoccorre libera nel tipo di una variabile libera di M, alloraΛX .M e un termine di tipo ∀XA;
Se M e un termine di tipo ∀XA e se B e un tipo, allora M B eun termine di tipo A[B/X ].
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Assegnazione di un tipo ad un termine
Ogni variabile x ha assegnato un tipo A:
Se x e una variabile con tipo A e M e un termine di tipo Ballora λx .M e un termine di tipo A⇒ B;
Se M e un termine di tipo A⇒ B e N e un termine di tipo Aallora M N e un termine di tipo B.
Se M e un termine di tipo A, e se la variabile di tipo X nonoccorre libera nel tipo di una variabile libera di M, alloraΛX .M e un termine di tipo ∀XA;
Se M e un termine di tipo ∀XA e se B e un tipo, allora M B eun termine di tipo A[B/X ].
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Assegnazione di un tipo ad un termine
Ogni variabile x ha assegnato un tipo A:
Se x e una variabile con tipo A e M e un termine di tipo Ballora λx .M e un termine di tipo A⇒ B;
Se M e un termine di tipo A⇒ B e N e un termine di tipo Aallora M N e un termine di tipo B.
Se M e un termine di tipo A, e se la variabile di tipo X nonoccorre libera nel tipo di una variabile libera di M, alloraΛX .M e un termine di tipo ∀XA;
Se M e un termine di tipo ∀XA e se B e un tipo, allora M B eun termine di tipo A[B/X ].
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Le regole di riduzione nel Sistema F
((λxA.MB)A⇒BNA)B →β MB [NA/xA]
((ΛX .MA)∀XAB)A[B/X ] →β MA[B/X ]
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Le regole di riduzione nel Sistema F
((λxA.MB)A⇒BNA)B →β MB [NA/xA]
((ΛX .MA)∀XAB)A[B/X ] →β MA[B/X ]
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Isomorfismo di Curry-Howard: la regola di ∀2I
...M : A
Supponiamo di avere un λ-termine M di tipo A, e che nel tipodelle variabili libere di M (i.e. le ipotesi) non occorra lavariabile di tipo X ;
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Isomorfismo di Curry-Howard: la regola di ∀2I
...M : A ∧I
ΛX .M : ∀XA
Supponiamo di avere un λ-termine M di tipo A, e che nel tipodelle variabili libere di M (i.e. le ipotesi) non occorra lavariabile di tipo X ;
allora possiamo astrarre rispetto alla variabile di tipo X edottenere un termine ΛX .M di tipo ∀XA.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Isomorfismo di Curry-Howard: la regola di ∀2E
...M : ∀XA
Supponiamo di avere un λ-termine M di tipo ∀XA;
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Isomorfismo di Curry-Howard: la regola di ∀2E
...M : ∀XA ∀2E
M B : A[B/X ]
Supponiamo di avere un λ-termine M di tipo ∀XA;
allora possiamo instanziare le occorrenze della variabile di tipoX con un tipo B a nostra scelta.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Eliminazione del taglio e riduzione
π1
...M : A ∀2IΛX .M : ∀X A ∀2E
ΛX .M B : A[B/X ]
π1
...M : A[B/X ]
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Polimorfismo
x : X
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Polimorfismo
[x : X ]⇒ I
λx .x : X ⇒ X
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Polimorfismo
[x : X ]⇒ I
λx .x : X ⇒ X ∀2IΛX .λx .x : ∀X X ⇒ X
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Polimorfismo
[x : X ]⇒ I
λx .x : X ⇒ X ∀2IΛX .λx .x : ∀X X ⇒ X ∀2EΛX .λx .x B : B ⇒ B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Polimorfismo
[x : B]⇒ I
λx .x : B ⇒ B
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Auto applicazione
[x : ∀X (X ⇒ X )]∀2E
x ∀X (X ⇒ X ) : (∀X (X ⇒ X ))⇒ (∀X (X ⇒ X )) [x : ∀X (X ⇒ X )]⇒ E
(x ∀X (X ⇒ X )) x : ∀X (X ⇒ X )⇒ I
λx .((x ∀X (X ⇒ X )) x) : (∀X (X ⇒ X ))⇒ (∀X (X ⇒ X ))
...
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Auto applicazione
...
λx .((x ∀X (X ⇒ X )) x) : (∀X (X ⇒ X ))⇒ (∀X (X ⇒ X ))
[y : X ]⇒ I
λy .y : X ⇒ X∀2I
ΛX .λy .y : ∀X X ⇒ X⇒ E
(λx .((x ∀X (X ⇒ X )) x)) ΛX .λy .y : ∀X X ⇒ X
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Auto applicazione
(λx .((x ∀X (X ⇒ X )) x)) ΛX .λy .y
→β (ΛX .λy .y ∀X (X ⇒ X )) ΛX .λy .y→β (λy .y) ΛX .λy .y→β ΛX .λy .y
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Auto applicazione
(λx .((x ∀X (X ⇒ X )) x)) ΛX .λy .y→β (ΛX .λy .y ∀X (X ⇒ X )) ΛX .λy .y
→β (λy .y) ΛX .λy .y→β ΛX .λy .y
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Auto applicazione
(λx .((x ∀X (X ⇒ X )) x)) ΛX .λy .y→β (ΛX .λy .y ∀X (X ⇒ X )) ΛX .λy .y→β (λy .y) ΛX .λy .y
→β ΛX .λy .y
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Auto applicazione
(λx .((x ∀X (X ⇒ X )) x)) ΛX .λy .y→β (ΛX .λy .y ∀X (X ⇒ X )) ΛX .λy .y→β (λy .y) ΛX .λy .y→β ΛX .λy .y
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Il funtore ”smemorato”
(λx .((x ∀X (X ⇒ X )) x)) ΛX .λy .y −−−−→ ΛX .λy .yy y(λx .((x) x)) λy .y −−−−→ λy .y
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: Bool
Bool = ∀X (X ⇒ (X ⇒ X ))
Costruttori:
True = ΛX .λxX .λyX .x : Bool
False = ΛX .λxX .λyX .y : Bool
Distruttore :siano M,N,T di tipo rispettivamente U,U e Bool;
If T then M else N = T U M N : U
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: Bool
Bool = ∀X (X ⇒ (X ⇒ X ))
Costruttori:
True = ΛX .λxX .λyX .x : Bool
False = ΛX .λxX .λyX .y : Bool
Distruttore :siano M,N,T di tipo rispettivamente U,U e Bool;
If T then M else N = T U M N : U
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: Bool
Bool = ∀X (X ⇒ (X ⇒ X ))
Costruttori:
True = ΛX .λxX .λyX .x : Bool
False = ΛX .λxX .λyX .y : Bool
Distruttore :siano M,N,T di tipo rispettivamente U,U e Bool;
If T then M else N = T U M N : U
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: Bool
If True then M else N = (ΛX .λxX .λyX .x) U M N
→β (λxU .λyU .x) M N→β (λyU .M) N→β M
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: Bool
If True then M else N = (ΛX .λxX .λyX .x) U M N→β (λxU .λyU .x) M N
→β (λyU .M) N→β M
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: Bool
If True then M else N = (ΛX .λxX .λyX .x) U M N→β (λxU .λyU .x) M N→β (λyU .M) N
→β M
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: Bool
If True then M else N = (ΛX .λxX .λyX .x) U M N→β (λxU .λyU .x) M N→β (λyU .M) N→β M
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: Bool
If False then M else N = (ΛX .λxX .λyX .y) U M N
→β (λxU .λyU .y) M N→β (λyU .y) N→β N
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: Bool
If False then M else N = (ΛX .λxX .λyX .y) U M N→β (λxU .λyU .y) M N
→β (λyU .y) N→β N
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: Bool
If False then M else N = (ΛX .λxX .λyX .y) U M N→β (λxU .λyU .y) M N→β (λyU .y) N
→β N
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: Bool
If False then M else N = (ΛX .λxX .λyX .y) U M N→β (λxU .λyU .y) M N→β (λyU .y) N→β N
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo coppia
U × V = ∀X (U ⇒ V ⇒ X )⇒ X
Costruttore:
〈M N〉 = ΛX .λxU⇒V⇒X .x M N : U × V
Distruttori :Sia P di tipo U × V :
π1P = P U(λxU .λyV .x) : U
π2P = P V (λxU .λyV .y) : V
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo coppia
U × V = ∀X (U ⇒ V ⇒ X )⇒ X
Costruttore:
〈M N〉 = ΛX .λxU⇒V⇒X .x M N : U × V
Distruttori :Sia P di tipo U × V :
π1P = P U(λxU .λyV .x) : U
π2P = P V (λxU .λyV .y) : V
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo coppia
U × V = ∀X (U ⇒ V ⇒ X )⇒ X
Costruttore:
〈M N〉 = ΛX .λxU⇒V⇒X .x M N : U × V
Distruttori :Sia P di tipo U × V :
π1P = P U(λxU .λyV .x) : U
π2P = P V (λxU .λyV .y) : V
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo coppia
U × V = ∀X (U ⇒ V ⇒ X )⇒ X
Costruttore:
〈M N〉 = ΛX .λxU⇒V⇒X .x M N : U × V
Distruttori :Sia P di tipo U × V :
π1P = P U(λxU .λyV .x) : U
π2P = P V (λxU .λyV .y) : V
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo coppia
π1〈M N〉 = (ΛX .λxU⇒V⇒X .x M N) U(λxU .λyV .x)
→β (λxU⇒V⇒U .x M N)(λxU .λyV .x)→β (λxU .λyV .x) M N→β (λyV .M) N→β M
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo coppia
π1〈M N〉 = (ΛX .λxU⇒V⇒X .x M N) U(λxU .λyV .x)→β (λxU⇒V⇒U .x M N)(λxU .λyV .x)
→β (λxU .λyV .x) M N→β (λyV .M) N→β M
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo coppia
π1〈M N〉 = (ΛX .λxU⇒V⇒X .x M N) U(λxU .λyV .x)→β (λxU⇒V⇒U .x M N)(λxU .λyV .x)→β (λxU .λyV .x) M N
→β (λyV .M) N→β M
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo coppia
π1〈M N〉 = (ΛX .λxU⇒V⇒X .x M N) U(λxU .λyV .x)→β (λxU⇒V⇒U .x M N)(λxU .λyV .x)→β (λxU .λyV .x) M N→β (λyV .M) N
→β M
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo coppia
π1〈M N〉 = (ΛX .λxU⇒V⇒X .x M N) U(λxU .λyV .x)→β (λxU⇒V⇒U .x M N)(λxU .λyV .x)→β (λxU .λyV .x) M N→β (λyV .M) N→β M
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo coppia
π2〈M N〉 = (ΛX .λxU⇒V⇒X .x M N) U(λxU .λyV .y)
→β (λxU⇒V⇒U .x M N)(λxU .λyV .y)→β (λxU .λyV .y) M N→β (λyV .y) N→β N
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo coppia
π2〈M N〉 = (ΛX .λxU⇒V⇒X .x M N) U(λxU .λyV .y)→β (λxU⇒V⇒U .x M N)(λxU .λyV .y)
→β (λxU .λyV .y) M N→β (λyV .y) N→β N
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo coppia
π2〈M N〉 = (ΛX .λxU⇒V⇒X .x M N) U(λxU .λyV .y)→β (λxU⇒V⇒U .x M N)(λxU .λyV .y)→β (λxU .λyV .y) M N
→β (λyV .y) N→β N
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo coppia
π2〈M N〉 = (ΛX .λxU⇒V⇒X .x M N) U(λxU .λyV .y)→β (λxU⇒V⇒U .x M N)(λxU .λyV .y)→β (λxU .λyV .y) M N→β (λyV .y) N
→β N
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo coppia
π2〈M N〉 = (ΛX .λxU⇒V⇒X .x M N) U(λxU .λyV .y)→β (λxU⇒V⇒U .x M N)(λxU .λyV .y)→β (λxU .λyV .y) M N→β (λyV .y) N→β N
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo ⊥
⊥= ∀X X
Il tipo ⊥ non e abitato.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo Nat
Nat = ∀X (X ⇒ ((X ⇒ X )⇒ X ))
Costruttori:
0 = ΛX .λxX .λyX⇒X .x : Nat
Dato N di tipo Nat allora
Succ N = ΛX .λx .X .λyX⇒X .y(N X x y) : Nat
Distruttori:Sia P di tipo U, Q di tipo U ⇒ U ed N di tipo Nat:
It P Q N = N U P Q : U
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo Nat
Nat = ∀X (X ⇒ ((X ⇒ X )⇒ X ))
Costruttori:
0 = ΛX .λxX .λyX⇒X .x : Nat
Dato N di tipo Nat allora
Succ N = ΛX .λx .X .λyX⇒X .y(N X x y) : Nat
Distruttori:Sia P di tipo U, Q di tipo U ⇒ U ed N di tipo Nat:
It P Q N = N U P Q : U
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo Nat
Nat = ∀X (X ⇒ ((X ⇒ X )⇒ X ))
Costruttori:
0 = ΛX .λxX .λyX⇒X .x : Nat
Dato N di tipo Nat allora
Succ N = ΛX .λx .X .λyX⇒X .y(N X x y) : Nat
Distruttori:Sia P di tipo U, Q di tipo U ⇒ U ed N di tipo Nat:
It P Q N = N U P Q : U
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo Nat
n := ΛX .λxXλyX⇒X .
n volte︷ ︸︸ ︷y(y · · · (y x) · · · )
0 := 0
n + 1 := Succ n
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo Nat
n := ΛX .λxXλyX⇒X .
n volte︷ ︸︸ ︷y(y · · · (y x) · · · )
0 := 0
n + 1 := Succ n
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo Nat
It P Q 0 = = (ΛX .λxX .λyX⇒X .x) U P Q
→β (λxU .λyU⇒U .x) P Q→β (λyU⇒U .P) Q→β P
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo Nat
It P Q 0 = = (ΛX .λxX .λyX⇒X .x) U P Q→β (λxU .λyU⇒U .x) P Q
→β (λyU⇒U .P) Q→β P
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo Nat
It P Q 0 = = (ΛX .λxX .λyX⇒X .x) U P Q→β (λxU .λyU⇒U .x) P Q→β (λyU⇒U .P) Q
→β P
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo Nat
It P Q 0 = = (ΛX .λxX .λyX⇒X .x) U P Q→β (λxU .λyU⇒U .x) P Q→β (λyU⇒U .P) Q→β P
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo Nat
It P Q (Succ N) = (ΛX .λx .X .λyX⇒X .y(N X x y)) U P Q
→β (λx .U .λyU⇒U .y(N U x y)) P Q→β (λyU⇒U .y(N U P y)) Q→β Q(N U P Q)= Q(It P Q N)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo Nat
It P Q (Succ N) = (ΛX .λx .X .λyX⇒X .y(N X x y)) U P Q→β (λx .U .λyU⇒U .y(N U x y)) P Q
→β (λyU⇒U .y(N U P y)) Q→β Q(N U P Q)= Q(It P Q N)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo Nat
It P Q (Succ N) = (ΛX .λx .X .λyX⇒X .y(N X x y)) U P Q→β (λx .U .λyU⇒U .y(N U x y)) P Q→β (λyU⇒U .y(N U P y)) Q
→β Q(N U P Q)= Q(It P Q N)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo Nat
It P Q (Succ N) = (ΛX .λx .X .λyX⇒X .y(N X x y)) U P Q→β (λx .U .λyU⇒U .y(N U x y)) P Q→β (λyU⇒U .y(N U P y)) Q→β Q(N U P Q)
= Q(It P Q N)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: il tipo Nat
It P Q (Succ N) = (ΛX .λx .X .λyX⇒X .y(N X x y)) U P Q→β (λx .U .λyU⇒U .y(N U x y)) P Q→β (λyU⇒U .y(N U P y)) Q→β Q(N U P Q)= Q(It P Q N)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: Liste
List U = ∀X X ⇒ (U ⇒ X ⇒ X )⇒ X
Costruttori:
nil = ΛX .λX .λyU⇒X⇒X .x : List U
Sia M di tipo U e N di tipo List U. Allora
cons M N = ΛX .λxX .λyU⇒X⇒X .y M (N X x y) : List U
Distruttori:Sia W un tipo, P un termine di tipo W , F di tipoU ⇒W ⇒W , ed N di tipo List U:
It P F N = N W P F : W
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: Liste
List U = ∀X X ⇒ (U ⇒ X ⇒ X )⇒ X
Costruttori:
nil = ΛX .λX .λyU⇒X⇒X .x : List U
Sia M di tipo U e N di tipo List U. Allora
cons M N = ΛX .λxX .λyU⇒X⇒X .y M (N X x y) : List U
Distruttori:Sia W un tipo, P un termine di tipo W , F di tipoU ⇒W ⇒W , ed N di tipo List U:
It P F N = N W P F : W
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: Liste
List U = ∀X X ⇒ (U ⇒ X ⇒ X )⇒ X
Costruttori:
nil = ΛX .λX .λyU⇒X⇒X .x : List U
Sia M di tipo U e N di tipo List U. Allora
cons M N = ΛX .λxX .λyU⇒X⇒X .y M (N X x y) : List U
Distruttori:Sia W un tipo, P un termine di tipo W , F di tipoU ⇒W ⇒W , ed N di tipo List U:
It P F N = N W P F : W
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: Liste
List U = ∀X X ⇒ (U ⇒ X ⇒ X )⇒ X
Costruttori:
nil = ΛX .λX .λyU⇒X⇒X .x : List U
Sia M di tipo U e N di tipo List U. Allora
cons M N = ΛX .λxX .λyU⇒X⇒X .y M (N X x y) : List U
Distruttori:Sia W un tipo, P un termine di tipo W , F di tipoU ⇒W ⇒W , ed N di tipo List U:
It P F N = N W P F : W
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: Liste
[u1, . . . un]
ΛX .λyU⇒X⇒X .y u1(y u2 . . . (y un x) . . .)
cons u1(cons u2 . . . (cons un nil) . . .)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: Liste
[u1, . . . un]
ΛX .λyU⇒X⇒X .y u1(y u2 . . . (y un x) . . .)
cons u1(cons u2 . . . (cons un nil) . . .)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati: Liste
[u1, . . . un]
ΛX .λyU⇒X⇒X .y u1(y u2 . . . (y un x) . . .)
cons u1(cons u2 . . . (cons un nil) . . .)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati : Liste
It P F nil →β P
It P F cons M N →β F M (It P F N)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Tipi di dati : Liste
It P F nil →β P
It P F cons M N →β F M (It P F N)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione forte nel Sistema F
Modulo l’isomorfismo di Curry-Howard, la normalizzazioneforte di F implica la proprieta di eliminazione del taglio per lalogica intuzionista del secondo ordine;
L’eliminazione del taglio della logica intuizionista del secondoordine implica la coerenza della logica intuizionista delsecondo ordine;
Il sistema F (i.e. la logica intuizionista del secondo ordine) eun sistema formale sufficientemente espressivo da poterrappresentare l’aritmetica di Peano;
per il secondo teorema di Godel, il Sistema F non puodimostrare la sua propria coerenza con metodi finiti.
Dimostrare la forte normalizzazione del Sistema F non puo esserebanale...
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione forte nel Sistema F
Modulo l’isomorfismo di Curry-Howard, la normalizzazioneforte di F implica la proprieta di eliminazione del taglio per lalogica intuzionista del secondo ordine;
L’eliminazione del taglio della logica intuizionista del secondoordine implica la coerenza della logica intuizionista delsecondo ordine;
Il sistema F (i.e. la logica intuizionista del secondo ordine) eun sistema formale sufficientemente espressivo da poterrappresentare l’aritmetica di Peano;
per il secondo teorema di Godel, il Sistema F non puodimostrare la sua propria coerenza con metodi finiti.
Dimostrare la forte normalizzazione del Sistema F non puo esserebanale...
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione forte nel Sistema F
Modulo l’isomorfismo di Curry-Howard, la normalizzazioneforte di F implica la proprieta di eliminazione del taglio per lalogica intuzionista del secondo ordine;
L’eliminazione del taglio della logica intuizionista del secondoordine implica la coerenza della logica intuizionista delsecondo ordine;
Il sistema F (i.e. la logica intuizionista del secondo ordine) eun sistema formale sufficientemente espressivo da poterrappresentare l’aritmetica di Peano;
per il secondo teorema di Godel, il Sistema F non puodimostrare la sua propria coerenza con metodi finiti.
Dimostrare la forte normalizzazione del Sistema F non puo esserebanale...
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione forte nel Sistema F
Modulo l’isomorfismo di Curry-Howard, la normalizzazioneforte di F implica la proprieta di eliminazione del taglio per lalogica intuzionista del secondo ordine;
L’eliminazione del taglio della logica intuizionista del secondoordine implica la coerenza della logica intuizionista delsecondo ordine;
Il sistema F (i.e. la logica intuizionista del secondo ordine) eun sistema formale sufficientemente espressivo da poterrappresentare l’aritmetica di Peano;
per il secondo teorema di Godel, il Sistema F non puodimostrare la sua propria coerenza con metodi finiti.
Dimostrare la forte normalizzazione del Sistema F non puo esserebanale...
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione forte nel Sistema F
Modulo l’isomorfismo di Curry-Howard, la normalizzazioneforte di F implica la proprieta di eliminazione del taglio per lalogica intuzionista del secondo ordine;
L’eliminazione del taglio della logica intuizionista del secondoordine implica la coerenza della logica intuizionista delsecondo ordine;
Il sistema F (i.e. la logica intuizionista del secondo ordine) eun sistema formale sufficientemente espressivo da poterrappresentare l’aritmetica di Peano;
per il secondo teorema di Godel, il Sistema F non puodimostrare la sua propria coerenza con metodi finiti.
Dimostrare la forte normalizzazione del Sistema F non puo esserebanale...
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione forte per i tipi semplici
Per ogni tipo A definiamo la nozione di termine riducibile di tipo A:
Se A e un tipo atomico, un termine t di tipo A e riducibile sset e fortemente normalizzante;
Un termine t di tipo A⇒ B e riducibile sse per tutti i terminireducibili u di tipo A, t u e riducibile di tipo B.
Un termine e semplice quando non comincia per λ.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione forte per i tipi semplici
Per ogni tipo A definiamo la nozione di termine riducibile di tipo A:
Se A e un tipo atomico, un termine t di tipo A e riducibile sset e fortemente normalizzante;
Un termine t di tipo A⇒ B e riducibile sse per tutti i terminireducibili u di tipo A, t u e riducibile di tipo B.
Un termine e semplice quando non comincia per λ.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione forte per i tipi semplici
Per ogni tipo A definiamo la nozione di termine riducibile di tipo A:
Se A e un tipo atomico, un termine t di tipo A e riducibile sset e fortemente normalizzante;
Un termine t di tipo A⇒ B e riducibile sse per tutti i terminireducibili u di tipo A, t u e riducibile di tipo B.
Un termine e semplice quando non comincia per λ.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione forte per i tipi semplici
Per ogni tipo A definiamo la nozione di termine riducibile di tipo A:
Se A e un tipo atomico, un termine t di tipo A e riducibile sset e fortemente normalizzante;
Un termine t di tipo A⇒ B e riducibile sse per tutti i terminireducibili u di tipo A, t u e riducibile di tipo B.
Un termine e semplice quando non comincia per λ.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione forte per i tipi semplici
Proprieta della riducibilita
R1 Ogni termine riducibile e fortemente normalizzante;
R2 Se t e riducibile e t si riduce a t ′ allora t ′ e riducibile,
R3 Se t e semplice e tutti i ridotti immediati di t sonoriducibili allora t e riducibile.
Proposizione 1
Se t e un termine di tipo B e se per tutti i termine riducibili u ditipo A, t[u/xA] e riducibile, allora λxA.t e riducibile.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione forte per i tipi semplici
Proprieta della riducibilita
R1 Ogni termine riducibile e fortemente normalizzante;
R2 Se t e riducibile e t si riduce a t ′ allora t ′ e riducibile,
R3 Se t e semplice e tutti i ridotti immediati di t sonoriducibili allora t e riducibile.
Proposizione 1
Se t e un termine di tipo B e se per tutti i termine riducibili u ditipo A, t[u/xA] e riducibile, allora λxA.t e riducibile.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione forte per i tipi semplici
Proprieta della riducibilita
R1 Ogni termine riducibile e fortemente normalizzante;
R2 Se t e riducibile e t si riduce a t ′ allora t ′ e riducibile,
R3 Se t e semplice e tutti i ridotti immediati di t sonoriducibili allora t e riducibile.
Proposizione 1
Se t e un termine di tipo B e se per tutti i termine riducibili u ditipo A, t[u/xA] e riducibile, allora λxA.t e riducibile.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione forte per i tipi semplici
Proprieta della riducibilita
R1 Ogni termine riducibile e fortemente normalizzante;
R2 Se t e riducibile e t si riduce a t ′ allora t ′ e riducibile,
R3 Se t e semplice e tutti i ridotti immediati di t sonoriducibili allora t e riducibile.
Proposizione 1
Se t e un termine di tipo B e se per tutti i termine riducibili u ditipo A, t[u/xA] e riducibile, allora λxA.t e riducibile.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione forte per i tipi semplici
Teorema 1 (W.W. Tait)
Tutti i λ-termini semplicemente tipati sono riducibili
Si dimostra, per induzione sul termine t che se si sostituiscono levariabili libere di t con termini riducibili di tipo opportuno, siottiene un termine riducibile. Nel caso t sia una variabile eimmediato; se t e una λ-astrazione, la proprieta vale per laProposizione 1, mentre nel caso t sia un’applicazione, perdefinizione di reducibilita.Dato che le variabili sono riducibili per R3, per sostituzioneidentica il teorema segue.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione forte per i tipi semplici
Teorema 1 (W.W. Tait)
Tutti i λ-termini semplicemente tipati sono riducibili
Si dimostra, per induzione sul termine t che se si sostituiscono levariabili libere di t con termini riducibili di tipo opportuno, siottiene un termine riducibile. Nel caso t sia una variabile eimmediato; se t e una λ-astrazione, la proprieta vale per laProposizione 1, mentre nel caso t sia un’applicazione, perdefinizione di reducibilita.Dato che le variabili sono riducibili per R3, per sostituzioneidentica il teorema segue.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione forte per i tipi semplici
Corollario 1
Tutti i λ-termini semplicemente tipati sono fortementenormalizzabili.
Per il Teorema 1 e per R1.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Normalizzazione forte per i tipi semplici
Corollario 1
Tutti i λ-termini semplicemente tipati sono fortementenormalizzabili.
Per il Teorema 1 e per R1.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Una generalizzazione sbagliata
Proviamo ad estendere la nozione di riducibilita ai tipi universali:
Un termine t di tipo ∀XA e riducibile sse per tutti i tipi B,t B e riducibile.
Sia t di tipo ∀X (X ⇒ X ); allora t B e di tipo B ⇒ B.
t e riducibile sse per ogni tipo B e per ogni termine riducibile u ditipo B, (t B) u di tipo B e riducibile.
Definizione circolare: la riducibilita del singolo universalepresuppone la riducibilita di tutti i tipi (dunque anchedell’universale stesso!)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Una generalizzazione sbagliata
Proviamo ad estendere la nozione di riducibilita ai tipi universali:
Un termine t di tipo ∀XA e riducibile sse per tutti i tipi B,t B e riducibile.
Sia t di tipo ∀X (X ⇒ X ); allora t B e di tipo B ⇒ B.
t e riducibile sse per ogni tipo B e per ogni termine riducibile u ditipo B, (t B) u di tipo B e riducibile.
Definizione circolare: la riducibilita del singolo universalepresuppone la riducibilita di tutti i tipi (dunque anchedell’universale stesso!)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Una generalizzazione sbagliata
Proviamo ad estendere la nozione di riducibilita ai tipi universali:
Un termine t di tipo ∀XA e riducibile sse per tutti i tipi B,t B e riducibile.
Sia t di tipo ∀X (X ⇒ X ); allora t B e di tipo B ⇒ B.
t e riducibile sse per ogni tipo B e per ogni termine riducibile u ditipo B, (t B) u di tipo B e riducibile.
Definizione circolare: la riducibilita del singolo universalepresuppone la riducibilita di tutti i tipi (dunque anchedell’universale stesso!)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
Una generalizzazione sbagliata
Proviamo ad estendere la nozione di riducibilita ai tipi universali:
Un termine t di tipo ∀XA e riducibile sse per tutti i tipi B,t B e riducibile.
Sia t di tipo ∀X (X ⇒ X ); allora t B e di tipo B ⇒ B.
t e riducibile sse per ogni tipo B e per ogni termine riducibile u ditipo B, (t B) u di tipo B e riducibile.
Definizione circolare: la riducibilita del singolo universalepresuppone la riducibilita di tutti i tipi (dunque anchedell’universale stesso!)
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
I candidati di riducibilita
Candidati di riducibilita (J.Y. Girard)
Sia A un tipo: un candidato di riducibilita di tipo A e un insieme Cdi termini di A, che gode delle seguenti proprie ta:
CR1 se t appartiene a C e fortemente normalizzante;
CR2 Se t appartiene a C e t si riduce a t ′ allora t ′
appartiene a C,
CR3 Se t e semplice e tutti i ridotti immediati di tappartengono a C allora t appartiene a C.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
I candidati di riducibilita
Candidati di riducibilita (J.Y. Girard)
Sia A un tipo: un candidato di riducibilita di tipo A e un insieme Cdi termini di A, che gode delle seguenti proprie ta:
CR1 se t appartiene a C e fortemente normalizzante;
CR2 Se t appartiene a C e t si riduce a t ′ allora t ′
appartiene a C,
CR3 Se t e semplice e tutti i ridotti immediati di tappartengono a C allora t appartiene a C.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
I candidati di riducibilita
Candidati di riducibilita (J.Y. Girard)
Sia A un tipo: un candidato di riducibilita di tipo A e un insieme Cdi termini di A, che gode delle seguenti proprie ta:
CR1 se t appartiene a C e fortemente normalizzante;
CR2 Se t appartiene a C e t si riduce a t ′ allora t ′
appartiene a C,
CR3 Se t e semplice e tutti i ridotti immediati di tappartengono a C allora t appartiene a C.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
I candidati di riducibilita
Sia t di tipo ∀X (X ⇒ X ); allora t B e di tipo B ⇒ B.
t e riducibile sse per ogni tipo B e per ogni candidato di reducibilitaB di tipo B, se u appartiene a B, allora (t B) u appartiene a B.
Definizione non circolare: appartenere ad un candidato direducibilita non coincide a priori con l’essere riducibile.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
I candidati di riducibilita
Sia t di tipo ∀X (X ⇒ X ); allora t B e di tipo B ⇒ B.
t e riducibile sse per ogni tipo B e per ogni candidato di reducibilitaB di tipo B, se u appartiene a B, allora (t B) u appartiene a B.
Definizione non circolare: appartenere ad un candidato direducibilita non coincide a priori con l’essere riducibile.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
I candidati di riducibilita
Sia t di tipo ∀X (X ⇒ X ); allora t B e di tipo B ⇒ B.
t e riducibile sse per ogni tipo B e per ogni candidato di reducibilitaB di tipo B, se u appartiene a B, allora (t B) u appartiene a B.
Definizione non circolare: appartenere ad un candidato direducibilita non coincide a priori con l’essere riducibile.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
I termini del Sistema F sono fortemente normalizzanti
Una volta definita la nozione di reducibilita usando i candidati diriducibilita, la prova segue (a meno di dettagli tecnici) lo stessopattern della prova di Tait.
Teorema 2
Tutti i termini del sistema F sono riducibili.
Corollario 2
Tutti i termini del sistema F sono fortemente normalizzanti.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
I termini del Sistema F sono fortemente normalizzanti
Una volta definita la nozione di reducibilita usando i candidati diriducibilita, la prova segue (a meno di dettagli tecnici) lo stessopattern della prova di Tait.
Teorema 2
Tutti i termini del sistema F sono riducibili.
Corollario 2
Tutti i termini del sistema F sono fortemente normalizzanti.
IndiceIntroduzione: logica e informatica
Il λ-calcolo e la programmazione funzionaleLa deduzione naturale e la corrispondenza prove-programmi
Potere espressivo: Sistema F e polimorfismo
I termini del Sistema F sono fortemente normalizzanti
Una volta definita la nozione di reducibilita usando i candidati diriducibilita, la prova segue (a meno di dettagli tecnici) lo stessopattern della prova di Tait.
Teorema 2
Tutti i termini del sistema F sono riducibili.
Corollario 2
Tutti i termini del sistema F sono fortemente normalizzanti.