44
Logica Informatica Proofs-as-programs Riferimenti bibliografici La corrispondenza Curry-Howard Flavio Zelazek 4 luglio 2009 Flavio Zelazek La corrispondenza Curry-Howard

La corrispondenza Curry-Howard grafo in senso insiemistico, cioè l’insieme di tutte le coppie ordinate hx;yidove x 2A e y = f(x) 2B. Intensionale: una funzione f da A a B è una

  • Upload
    vodieu

  • View
    218

  • Download
    2

Embed Size (px)

Citation preview

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

La corrispondenza Curry-Howard

Flavio Zelazek

4 luglio 2009

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Introduzione

La corrispondenza Curry-Howard e il paradigmaproofs-as-programs (o formulae-as-types) da essa originatosisono un importante esempio di transdisciplinarità, costituendoun notevole caso di interazione “spontanea” (scoperta aposteriori, non costruita ad hoc) tra due discipline scientifiche:

LOGICA INFORMATICA

Teoria della dimostrazione Teoria dei tipi

Deduzione naturale λ-calcolo tipato

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Introduzione

La corrispondenza Curry-Howard e il paradigmaproofs-as-programs (o formulae-as-types) da essa originatosisono un importante esempio di transdisciplinarità, costituendoun notevole caso di interazione “spontanea” (scoperta aposteriori, non costruita ad hoc) tra due discipline scientifiche:

LOGICA INFORMATICA

Teoria della dimostrazione Teoria dei tipi

Deduzione naturale λ-calcolo tipato

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Introduzione

La corrispondenza Curry-Howard e il paradigmaproofs-as-programs (o formulae-as-types) da essa originatosisono un importante esempio di transdisciplinarità, costituendoun notevole caso di interazione “spontanea” (scoperta aposteriori, non costruita ad hoc) tra due discipline scientifiche:

LOGICA INFORMATICA

Teoria della dimostrazione Teoria dei tipi

Deduzione naturale λ-calcolo tipato

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

L’interpretazione funzionale della logicaLa deduzione naturale

Contenuto

1 LogicaL’interpretazione funzionale della logicaLa deduzione naturale

2 InformaticaIl λ-calcoloI sistemi di tipi

3 Proofs-as-programs

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

L’interpretazione funzionale della logicaLa deduzione naturale

Denotazione e senso

Due diverse concezioni del significato dei connettivi logici:Realista (Tarski): il significato di un enunciato è dato dallesue condizioni di verità — l’enunciato A→ B è veroquando se è vero A allora è vero B, cioè quando A è falsooppure B è vero (modelli – semantica – denotazione).Costruttivista (Heyting): il significato di un enunciato è datodalle sue condizioni di asseribilità, cioè da cosa contacome una sua dimostrazione — una dimostrazione diA→ B è una costruzione (ovvero, una funzione) chetrasforma ogni dimostrazione di A in una dimostrazione diB (dimostrazioni – sintassi – senso).

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

L’interpretazione funzionale della logicaLa deduzione naturale

Denotazione e senso

Due diverse concezioni del significato dei connettivi logici:Realista (Tarski): il significato di un enunciato è dato dallesue condizioni di verità — l’enunciato A→ B è veroquando se è vero A allora è vero B, cioè quando A è falsooppure B è vero (modelli – semantica – denotazione).Costruttivista (Heyting): il significato di un enunciato è datodalle sue condizioni di asseribilità, cioè da cosa contacome una sua dimostrazione — una dimostrazione diA→ B è una costruzione (ovvero, una funzione) chetrasforma ogni dimostrazione di A in una dimostrazione diB (dimostrazioni – sintassi – senso).

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

L’interpretazione funzionale della logicaLa deduzione naturale

Estensione ed intensione

Il concetto di funzione, a sua volta, può essere inteso in duemodi:

Estensionale: una funzione f da A a B va identificata colsuo grafo in senso insiemistico, cioè l’insieme di tutte lecoppie ordinate 〈x , y〉 dove x ∈ A e y = f (x) ∈ B.Intensionale: una funzione f da A a B è una regola (unaprocedura, un algoritmo, un programma) che prescrive unacomputazione da effettuare per ottenere f (x) da x , cioèche indica come trasformare un qualunque elemento di Ain un elemento di B.

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

L’interpretazione funzionale della logicaLa deduzione naturale

Estensione ed intensione

Il concetto di funzione, a sua volta, può essere inteso in duemodi:

Estensionale: una funzione f da A a B va identificata colsuo grafo in senso insiemistico, cioè l’insieme di tutte lecoppie ordinate 〈x , y〉 dove x ∈ A e y = f (x) ∈ B.Intensionale: una funzione f da A a B è una regola (unaprocedura, un algoritmo, un programma) che prescrive unacomputazione da effettuare per ottenere f (x) da x , cioèche indica come trasformare un qualunque elemento di Ain un elemento di B.

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

L’interpretazione funzionale della logicaLa deduzione naturale

La deduzione naturale

L’oggetto di studio della deduzione naturale (e del calcolo deisequenti) sono le dimostrazioni – e non solo la dimostrabilità.

Nella deduzione naturale la regola di introduzione per unconnettivo ne definisce il significato, mostrando quali sono lecondizioni di asseribilità di un enunciato che ha quel connettivocome connettivo principale.

La deduzione naturale è dunque il tipo si sistema logicomaggiormente connesso con l’interpretazione funzionale dellalogica, su cui si basa la corrispondenza Curry-Howard.

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

L’interpretazione funzionale della logicaLa deduzione naturale

Il sistema NJ→

Il sistema di deduzione naturale NJ→ è dato dalle seguentiregole di inferenza:

Ax...Bx →I

A→ BA→ B A →E

B

Le dimostrazioni sono costruite a partire da assunzioni(etichettate dalle variabili x , y , z, . . . ) utilizzando le regole→I e→E.In un’applicazione della regola→I, tutte le assunzioni dellaforma A etichettate dalla variabile x vengono scaricate: laconclusione non dipende più da esse.

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

L’interpretazione funzionale della logicaLa deduzione naturale

Il sistema NJ→S

ASSx : A − A

Γ, x : A − B→I

Γ − A→ BΓ − A→ B ∆ − A →E

Γ,∆ − B

Γ − B WΓ, x : A − B

Γ, x : A, y : A − BC

Γ, z : A − B

Figura: Deduzione naturale “in stile sequente”

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

L’interpretazione funzionale della logicaLa deduzione naturale

Normalizzazione

La normalizzazione è la procedura che elimina certe“deviazioni” nelle dimostrazioni. Tali “deviazioni” consistono inapplicazioni ridondanti di regole: tipicamente, l’introduzione diun connettivo seguita immediatamente da un’eliminazione diquello stesso connettivo.

Le dimostrazioni normali hanno tutte la stessa forma (sonoscomponibili in una parte analitica e in un a parte sintetica) egodono di importanti proprietà, tra cui la proprietà dellasottoformula.

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

L’interpretazione funzionale della logicaLa deduzione naturale

Regole di conversione

Una dimostrazione viene ridotta in forma normale mediante laripetuta applicazione di certe regole di riscrittura, dette regoledi conversione. Nel caso di NJ→ abbiamo quest’unica regola:

→-conv:

D1

A

Ax

D2

Bx →IA→ B →E

B

;

D1

AD2

B

(la sottodimostrazione D1 viene sostituita al posto di ognunadelle 0 o più occorrenze di A etichettate con x)

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Il λ-calcoloI sistemi di tipi

Contenuto

1 LogicaL’interpretazione funzionale della logicaLa deduzione naturale

2 InformaticaIl λ-calcoloI sistemi di tipi

3 Proofs-as-programs

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Il λ-calcoloI sistemi di tipi

Il λ-calcolo

Il λ-calcolo, nato come teoria generale delle funzioni, oggi èuno dei principali modelli di calcolo (insieme alla teoria dellaricorsività e alle macchine di Turing), ovvero quegli insiemi dimetodologie, modelli e teorie formali attraverso cui vienespiegato ed analizzato il concetto generale di computazione.

Inoltre, grazie al suo misto di potenza espressiva e semplicitàsintattica, esso funge da linguaggio paradigmatico diprogrammazione (soprattutto nel caso dei linguaggi diprogrammazione funzionale).

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Il λ-calcoloI sistemi di tipi

La λ-notazione

Gli oggetti studiati dal λ-calcolo sono i λ-termini, costruiti apartire da variabili mediante le seguenti operazioni:

Astrazione: a partire dal termine t si può formare il termineλx . t astraendo dalla variabile x (di cui t contiene 0o più occorrenze). Il termine λx . t rappresenta lafunzione che, per ogni x , applicata a x dà comerisultato t .

Applicazione: a partire dai termini t e s si può formare iltermine ts. Il termine ts rappresenta l’applicazionedella funzione t all’argomento s.

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Il λ-calcoloI sistemi di tipi

La β-riduzione

La computazione (o β-riduzione) di un λ-termine ha luogoapplicando ripetutamente ai suoi sottotermini della forma(λx . t)s (chiamati redex, ossia “espressioni riducibili”) laseguente regola di riscrittura, detta regola di β-conversione:

(λx . t)s � t [s/x ]

Un “passo di computazione” dunque consiste semplicementenella sostituzione dell’argomento s al posto della variabile x nelcorpo della funzione λx . t (cioè in t).

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Il λ-calcoloI sistemi di tipi

Programmare col λ-calcolo

Per ogni n ∈ N, il numerale di Church n che rappresenta n èdefinito così:

n ≡ λx . λy . xny

(tns denota l’applicazione di t a s iterata n volte).

La funzione (il programma) che calcola il successore di unnumerale di Church è definita così:

succ ≡ λn. λx . λy . x(nxy)

Un esempio di computazione:

succ 1 ≡ succλw . λz.wz� λx . λy . x((λw . λz.wz)xy)

� λx . λy . x((λz. xz)y)

� λx . λy . x(xy) ≡ 2Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Il λ-calcoloI sistemi di tipi

Tipi di dati

Un tipo di dati è una classe di dati che hanno lo stesso“comportamento computazionale”. Per esempio, Int è il tipodegli interi, e Bool è il tipo dei booleani.

Se A e B sono tipi, il tipo funzione A→ B rappresenta lo spaziodelle funzioni da A a B. Così, Int→ Bool è il tipo di unprogramma che prende come input un intero e dà come outputun booleano (per esempio il programma che calcola se unnumero è primo oppure no).

Il tipo di un programma ne costituisce dunque la specifica in unsenso molto basilare. Questa permette di farlo interagire conaltri programmi in modo coerente a prescindere dallaconoscenza del suo contenuto (il programma è un modulo, e ilsuo tipo è l’interfaccia del modulo).

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Il λ-calcoloI sistemi di tipi

Il type-checking

Un sistema di tipi è una classificazione delle espressioni di unlinguaggio di programmazione in base a tipi di dati, la qualeserve a garantire che durante l’esecuzione di un programmanon si verifichino certi errori di natura molto basilare, gli errori ditipo. Essi avvengono quando si fanno interagire due programmicon tipi incompatibili (per esempio quando si usa l’output di unprogramma di tipo Int→ Bool come input di un programma ditipo Int→ Int).

Questo obiettivo è conseguito definendo delle regole ditype-checking, che servono a calcolare i tipi delle espressioniche occorrono in un programma e a verificare che non ci sianodelle discordanze tra essi.

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Il λ-calcoloI sistemi di tipi

Il λ-calcolo tipato

È possibile arricchire il λ-calcolo con un sistema di tipi,ottenendo il λ-calcolo tipato, in cui a ciascun λ-termine vieneassociato un tipo (scelto tra i tipi atomici e quelli formati apartire da questi mediante i costruttori di tipo, ad es. →).

Un giudizio di tipo è un’espressione della forma

x1 : A1, . . . , xn : An I t : B

Il suo significato è che, assumendo che le variabili x1, . . . , xn(che eventualmente occorrono libere in t) siano rispettivamentedi tipo A1, . . . ,An , il λ-termine t è di tipo B.

Una derivazione di tipo è una derivazione costruita mediante leregole di type-checking; essa corrisponde alla costruzione delλ-termine con cui si conclude, e all’assegnazione a questo diun tipo conformemente con esse.

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Il λ-calcoloI sistemi di tipi

Il λ-calcolo tipato semplice λβ→

VARx : A I x : A

Γ, x : A I t : BABS

Γ I λx . t : A→ BΓ I t : A→ B ∆ I s : A

APPΓ,∆ I ts : B

Γ I t : BENV-W

Γ, x : A I t : BΓ, x : A, y : A I t : B

ENV-CΓ, z : A I t [z/x , z/y ] : B

Figura: Regole di type-checking per λβ→

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Il λ-calcoloI sistemi di tipi

La β-riduzione in λβ→

La β-riduzione nel λ-calcolo tipato semplice è sostanzialmenteimmutata; ma ora può esser meglio analizzata cometrasformazione delle derivazioni di tipo:

β-conv:

Γ, x : AD1

t : B ABSλx . t : A→ B

∆D2

s : A APP(λx . t)s : B

Γ,∆

D1[D2/x ]

t [s/x ] : B

(la notazione D1[D2/x ] rappresenta la derivazione D1 in cuitutte le (eventuali) assunzioni etichettate con x sono statesostituite dalla derivazione D2 avente conclusione s : A)

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Contenuto

1 LogicaL’interpretazione funzionale della logicaLa deduzione naturale

2 InformaticaIl λ-calcoloI sistemi di tipi

3 Proofs-as-programs

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Nascita della corrispondenza Curry-Howard

La corrispondenza Curry-Howard si articola, siaconcettualmente che storicamente, nei seguenti quattro punti:

1 Interpretazione funzionale della logica, o interpretazioneBHK (Brouwer-Heyting-Kolmogorov).

2 Corrispondenza tra formule e tipi (logica combinatoria diCurry; “interpretazione Dialectica” di Gödel).

3 Corrispondenza tra eliminazione del taglio(normalizzazione) e β-riduzione (Tait).

4 Corrispondenza tra dimostrazioni e λ-termini (Howard).

La corrispondenza che sussiste non solo tra dimostrazioni eλ-termini, ma anche tra le operazioni che si possono svolgeresu di essi (normalizzazione e β-riduzione), permette diindividuare un vero e proprio isomorfismo:

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Nascita della corrispondenza Curry-Howard

La corrispondenza Curry-Howard si articola, siaconcettualmente che storicamente, nei seguenti quattro punti:

1 Interpretazione funzionale della logica, o interpretazioneBHK (Brouwer-Heyting-Kolmogorov).

2 Corrispondenza tra formule e tipi (logica combinatoria diCurry; “interpretazione Dialectica” di Gödel).

3 Corrispondenza tra eliminazione del taglio(normalizzazione) e β-riduzione (Tait).

4 Corrispondenza tra dimostrazioni e λ-termini (Howard).

La corrispondenza che sussiste non solo tra dimostrazioni eλ-termini, ma anche tra le operazioni che si possono svolgeresu di essi (normalizzazione e β-riduzione), permette diindividuare un vero e proprio isomorfismo:

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Nascita della corrispondenza Curry-Howard

La corrispondenza Curry-Howard si articola, siaconcettualmente che storicamente, nei seguenti quattro punti:

1 Interpretazione funzionale della logica, o interpretazioneBHK (Brouwer-Heyting-Kolmogorov).

2 Corrispondenza tra formule e tipi (logica combinatoria diCurry; “interpretazione Dialectica” di Gödel).

3 Corrispondenza tra eliminazione del taglio(normalizzazione) e β-riduzione (Tait).

4 Corrispondenza tra dimostrazioni e λ-termini (Howard).

La corrispondenza che sussiste non solo tra dimostrazioni eλ-termini, ma anche tra le operazioni che si possono svolgeresu di essi (normalizzazione e β-riduzione), permette diindividuare un vero e proprio isomorfismo:

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Nascita della corrispondenza Curry-Howard

La corrispondenza Curry-Howard si articola, siaconcettualmente che storicamente, nei seguenti quattro punti:

1 Interpretazione funzionale della logica, o interpretazioneBHK (Brouwer-Heyting-Kolmogorov).

2 Corrispondenza tra formule e tipi (logica combinatoria diCurry; “interpretazione Dialectica” di Gödel).

3 Corrispondenza tra eliminazione del taglio(normalizzazione) e β-riduzione (Tait).

4 Corrispondenza tra dimostrazioni e λ-termini (Howard).

La corrispondenza che sussiste non solo tra dimostrazioni eλ-termini, ma anche tra le operazioni che si possono svolgeresu di essi (normalizzazione e β-riduzione), permette diindividuare un vero e proprio isomorfismo:

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Nascita della corrispondenza Curry-Howard

La corrispondenza Curry-Howard si articola, siaconcettualmente che storicamente, nei seguenti quattro punti:

1 Interpretazione funzionale della logica, o interpretazioneBHK (Brouwer-Heyting-Kolmogorov).

2 Corrispondenza tra formule e tipi (logica combinatoria diCurry; “interpretazione Dialectica” di Gödel).

3 Corrispondenza tra eliminazione del taglio(normalizzazione) e β-riduzione (Tait).

4 Corrispondenza tra dimostrazioni e λ-termini (Howard).

La corrispondenza che sussiste non solo tra dimostrazioni eλ-termini, ma anche tra le operazioni che si possono svolgeresu di essi (normalizzazione e β-riduzione), permette diindividuare un vero e proprio isomorfismo:

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Nascita della corrispondenza Curry-Howard

La corrispondenza Curry-Howard si articola, siaconcettualmente che storicamente, nei seguenti quattro punti:

1 Interpretazione funzionale della logica, o interpretazioneBHK (Brouwer-Heyting-Kolmogorov).

2 Corrispondenza tra formule e tipi (logica combinatoria diCurry; “interpretazione Dialectica” di Gödel).

3 Corrispondenza tra eliminazione del taglio(normalizzazione) e β-riduzione (Tait).

4 Corrispondenza tra dimostrazioni e λ-termini (Howard).

La corrispondenza che sussiste non solo tra dimostrazioni eλ-termini, ma anche tra le operazioni che si possono svolgeresu di essi (normalizzazione e β-riduzione), permette diindividuare un vero e proprio isomorfismo:

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

L’isomorfismo Curry-Howard

DEDUZIONE NATURALE λ-CALCOLO TIPATO

formule tipi

dimostrazioni λ-termini

normalizzazione β-riduzione

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

L’isomorfismo Curry-Howard

DEDUZIONE NATURALE λ-CALCOLO TIPATO

formule tipi

dimostrazioni λ-termini

normalizzazione β-riduzione

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

L’isomorfismo Curry-Howard

DEDUZIONE NATURALE λ-CALCOLO TIPATO

formule tipi

dimostrazioni λ-termini

normalizzazione β-riduzione

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

L’isomorfismo Curry-Howard

DEDUZIONE NATURALE λ-CALCOLO TIPATO

formule tipi

dimostrazioni λ-termini

normalizzazione β-riduzione

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

La decorazione: dalle regole di NJ→. . .

ASSx : A −

x :

A

Γ, x : A −

t :

B→I

Γ −

λx . t :

A→ BΓ −

t :

A→ B ∆ −

s :

A →EΓ,∆ −

ts :

B

Γ −

t :

B WΓ, x : A −

t :

BΓ, x : A, y : A −

t :

BC

Γ, z : A −

t [z/x , z/y ] :

B

Figura: Il sistema NJ→S

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

. . . alle regole di type-checking per λβ→

ASSx : A − x : A

Γ, x : A − t : B→I

Γ − λx . t : A→ BΓ − t : A→ B ∆ − s : A →E

Γ,∆ − ts : B

Γ − t : B WΓ, x : A − t : B

Γ, x : A, y : A − t : BC

Γ, z : A − t [z/x , z/y ] : B

Figura: Sistema di assegnazione di termini per NJ→S

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Curry-Howard: importanza praticaIl paradigma proofs-as-programs permette una fruttuosa interazionetra logica e informatica (teorica), consistente nello “scambio” dirisultati e metodi tra le due discipline:

Sul versante della logica, ha fatto sì che essa venisse studiatasempre di più con gli strumenti della semantica denotazionale edella teoria delle categorie. In particolare, la semanticadenotazionale (la quale modellizza il concetto di dimostrazione enon solo quello di dimostrabilità) è alla base della nascita dellalogica lineare.

Sul versante dell’informatica, ha comportato un maggior rigorenella progettazione dei linguaggi di programmazione, dovuto alfatto che questa è sempre più “guidata” da un sistema logicosottostante. Inoltre, alcune tra le proprietà fondamentali deilinguaggi di programmazione (per esempio, la loro complessitàcomputazionale) possono essere studiate come proprietà deisistemi logici corrispondenti.

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Curry-Howard: importanza praticaIl paradigma proofs-as-programs permette una fruttuosa interazionetra logica e informatica (teorica), consistente nello “scambio” dirisultati e metodi tra le due discipline:

Sul versante della logica, ha fatto sì che essa venisse studiatasempre di più con gli strumenti della semantica denotazionale edella teoria delle categorie. In particolare, la semanticadenotazionale (la quale modellizza il concetto di dimostrazione enon solo quello di dimostrabilità) è alla base della nascita dellalogica lineare.

Sul versante dell’informatica, ha comportato un maggior rigorenella progettazione dei linguaggi di programmazione, dovuto alfatto che questa è sempre più “guidata” da un sistema logicosottostante. Inoltre, alcune tra le proprietà fondamentali deilinguaggi di programmazione (per esempio, la loro complessitàcomputazionale) possono essere studiate come proprietà deisistemi logici corrispondenti.

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Curry-Howard: importanza praticaIl paradigma proofs-as-programs permette una fruttuosa interazionetra logica e informatica (teorica), consistente nello “scambio” dirisultati e metodi tra le due discipline:

Sul versante della logica, ha fatto sì che essa venisse studiatasempre di più con gli strumenti della semantica denotazionale edella teoria delle categorie. In particolare, la semanticadenotazionale (la quale modellizza il concetto di dimostrazione enon solo quello di dimostrabilità) è alla base della nascita dellalogica lineare.

Sul versante dell’informatica, ha comportato un maggior rigorenella progettazione dei linguaggi di programmazione, dovuto alfatto che questa è sempre più “guidata” da un sistema logicosottostante. Inoltre, alcune tra le proprietà fondamentali deilinguaggi di programmazione (per esempio, la loro complessitàcomputazionale) possono essere studiate come proprietà deisistemi logici corrispondenti.

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Curry-Howard: rilevanza filosofica

1 I sistemi logici a bassa complessità (tra cui principalmente lelogiche leggere, tutte basate sulla logica lineare) permettono didare una caratterizzazione puramente logica, attraverso lacorrispondenza Curry-Howard, di alcune classi di complessità –tra cui la classe P dei problemi algoritmici risolvibili in tempopolinomiale (ovvero in modo efficiente). . .

2 . . . La nostra via via maggiore comprensione della classe P ciavvicina alla soluzione di uno dei più affascinanti “problemi delmillennio”, il problema P ?

= NP. . .

3 . . . La soluzione di questo problema è strettamente collegata allarealizzabilità di una versione limitata del programma di Hilbert(cfr. lettera di Gödel a Von Neumann, 1956).

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Curry-Howard: rilevanza filosofica

1 I sistemi logici a bassa complessità (tra cui principalmente lelogiche leggere, tutte basate sulla logica lineare) permettono didare una caratterizzazione puramente logica, attraverso lacorrispondenza Curry-Howard, di alcune classi di complessità –tra cui la classe P dei problemi algoritmici risolvibili in tempopolinomiale (ovvero in modo efficiente). . .

2 . . . La nostra via via maggiore comprensione della classe P ciavvicina alla soluzione di uno dei più affascinanti “problemi delmillennio”, il problema P ?

= NP. . .

3 . . . La soluzione di questo problema è strettamente collegata allarealizzabilità di una versione limitata del programma di Hilbert(cfr. lettera di Gödel a Von Neumann, 1956).

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Curry-Howard: rilevanza filosofica

1 I sistemi logici a bassa complessità (tra cui principalmente lelogiche leggere, tutte basate sulla logica lineare) permettono didare una caratterizzazione puramente logica, attraverso lacorrispondenza Curry-Howard, di alcune classi di complessità –tra cui la classe P dei problemi algoritmici risolvibili in tempopolinomiale (ovvero in modo efficiente). . .

2 . . . La nostra via via maggiore comprensione della classe P ciavvicina alla soluzione di uno dei più affascinanti “problemi delmillennio”, il problema P ?

= NP. . .

3 . . . La soluzione di questo problema è strettamente collegata allarealizzabilità di una versione limitata del programma di Hilbert(cfr. lettera di Gödel a Von Neumann, 1956).

Flavio Zelazek La corrispondenza Curry-Howard

LogicaInformatica

Proofs-as-programsRiferimenti bibliografici

Bibliografia

[1] Jean Gallier. Constructive logics Part I: A tutorial on proofsystems and typed -calculi. Theoretical Computer Science,110:249–339, 1993.

[2] Jean-Yves Girard, Paul Taylor, e Yves Lafont. Proofs and types.Cambridge University Press, 1989.

[3] Benjamin C. Pierce. Types and Programming Languages. TheMIT Press, 2002.

[4] Steven Rudich. Complexity Theory: From Gödel to Feynman. InComputational Complexity. A cura di Steven Rudich e AviWigderson. American Mathematical Society, 2004.

[5] Philip Wadler. Proofs are Programs: 19th Century Logic and 21stCentury Computing. Reperibile suhttp://homepages.inf.ed.ac.uk/wadler/, 2000.

Flavio Zelazek La corrispondenza Curry-Howard