Documente Academic
Documente Profesional
Documente Cultură
Fabio Strocco
22 maggio 2011
Indice
1 Logica classica 3
1.1 Preliminari . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Sintassi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Semantica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Sistemi di deduzione . . . . . . . . . . . . . . . . . . . . . . . 14
1.4.1 Deduzione naturale . . . . . . . . . . . . . . . . . . . . 15
1.4.2 Calcolo dei sequenti . . . . . . . . . . . . . . . . . . . . 33
2 Logica intuizionista 52
2.1 Preliminari . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.2 Sintassi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.3 Sistemi di deduzione . . . . . . . . . . . . . . . . . . . . . . . 57
2.3.1 Deduzione naturale . . . . . . . . . . . . . . . . . . . . 58
2.3.2 Calcolo dei sequenti . . . . . . . . . . . . . . . . . . . . 73
2.4 Semantica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
2.4.1 Semantica alla Heyting . . . . . . . . . . . . . . . . . . 88
2.4.2 Semantica alla Kripke . . . . . . . . . . . . . . . . . . 91
2.5 Relazione tra logica classica e logica intuizionista . . . . . . . 97
3 Logica e linguaggi di programmazione 101
3.1 -calcolo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.1.1 Sintassi . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.1.2 Semantica operazionale . . . . . . . . . . . . . . . . . . 104
3.1.3 Sistema di tipi . . . . . . . . . . . . . . . . . . . . . . . 110
3.2 Isomorsmo di Curry-Howard . . . . . . . . . . . . . . . . . . 113
3.2.1 Denizione e propriet` a . . . . . . . . . . . . . . . . . . 113
3.2.2 Normalizzazione forte . . . . . . . . . . . . . . . . . . . 131
3.3 Sistema F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
3.3.1 Logiche di ordine superiore . . . . . . . . . . . . . . . . 137
3.3.2 -calcolo al secondo ordine . . . . . . . . . . . . . . . . 141
3.4 PCF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
i
3.5 Type inference . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
3.5.1 Unicazione . . . . . . . . . . . . . . . . . . . . . . . . 145
3.5.2 Ricostruzione di tipo . . . . . . . . . . . . . . . . . . . 149
3.5.3 ML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
4 Logica lineare 159
4.1 Proof Net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
4.2 Semantica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
4.3 Logica lineare intuizionista . . . . . . . . . . . . . . . . . . . . 179
4.4 ICC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
4.4.1 SLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
4.4.2 ESLL e isomorsmo . . . . . . . . . . . . . . . . . . . 197
4.4.3 NESLL e isomorsmo . . . . . . . . . . . . . . . . . . . 205
ii
Introduzione
La logica, inizialmente nata come branca della losoa e successivamente
divenuta branca della matematica, `e molto utilizzata in materie scientiche
come la matematica e linformatica. Questo documento `e incentrato sulla
proof theory, ossia teoria che studia come costruire dimostrazioni in maniera
automatica, che `e la parte della logica che si occupa dello studio formale delle
dimostrazioni.
Partiamo dal presupposto che esistono pi` u logiche, ciascuna delle qua-
li modella frasi o aspetti della realt` a tramite formule e si adatta meglio a
determinati modi di pensare della mente umana. La scelta della logica da
utilizzare dipende dalluso che se ne vuole fare.
Il documento inizier`a con lillustrare la logica classica, che dovrebbe almeno
in parte essere gi` a nota al lettore. Un esempio di formula logica `e A or not
A che viene considerata in logica classica una tautologia, ossia una formula
sempre vera. Di fatto questa formula `e vera indipendentemente dal fatto che
lasserzione A sia vera o falsa.
Successivamente verr` a mostrata la logica intuizionista dove invece formule
come la precedente sono vere solo se `e possibile esibirne una dimostrazione.
Lultima logica che verr` a mostrata `e la logica lineare, che si basa sul con-
cetto di risorsa ed `e per questo molto pi` u vicina allinformatica.
In generale un sistema logico `e costituito da regole denite in maniera precisa
e che permettono di fare dimostrazioni in maniera molto meccanica.
Infatti si tratter`a il legame tra i linguaggi di programmazione e la logica mo-
strando come si possa sfruttare il sistema di tipi di un linguaggio di program-
mazione per eettuare dimostrazioni. Il linguaggio preso in considerazione
sar` a il lamba-calcolo tipato di Curry-Howard.
Per ogni sistema logico presentato, si dimostreranno delle propriet` a quali
correttezza (tutte le regole di un sistema sono corrette) e completezza
(per ogni formula con valore di verit` a vero `e sempre possibile esibire una
dimostrazione).
1
2
Capitolo 1
Logica classica
La logica proposizionale classica `e una logica in cui le formule sono costituite
da variabili proposizionali connesse tra loro tramite gli usuali connettivi
logici (congiunzione, disgiunzione, ecc.).
Come ogni sistema logico, la logica proposizionale `e caratterizzata da una
sintassi, da una semantica che interpreta il valore di verit` a delle formule ed
eventualmente da un insieme di regole che permettono di eettuare dimo-
strazioni.
Notare che in logica proposizionale non esistono predicati, funzioni e quan-
ticatori ma solo variabili che possono avere valore di verit` a vero oppure
falso.
1.1 Preliminari
Per dimostrare le propriet` a di un sistema logico, verr` a utilizzata spesso nel
testo la tecnica della dimostrazione per induzione.
Questa tecnica sfrutta il principio di induzione.
Esistono molti principi di induzione. Quello classico `e detto principio
induzione ordinaria o semplicemente induzione o induzione sui numeri
naturali.
Ricordando che linsieme N `e linsieme che contiene la costante 0 e per ogni
suo elemento n la funzione s(n) detta funzione successore
1
, il primo principio
di induzione si pu` o formalizzare nel modo seguente
Sia p(x) un predicato qualsiasi, allora
p(0) (p(n) p(s(n))) n p(n)
1
s(n) ha lo stesso signicato della notazione pi` u familiare n + 1
3
Questa formula signica che se `e vero p(0) e per ogni p(n) `e vero p(n+1)
allora p `e vero per ogni naturale. Di fatto limplicazione se p(n) `e vero allora
e vero p(n +1) indica che anche p(n +2) `e vero e quindi anche per p(n +3)
e cos` via. Unendo il fatto che p(0) `e assunto vero `e chiaro che se queste due
premesse sono soddisfatte la propriet`a p vale per tutti i numeri naturali.
Laltro principio di induzione `e detto principio di induzione completa.
Ricordiamo che una relazione di ordine parziale `e una relazione binaria su
un insieme S riessiva, antisimmetrica e transitiva, ossia una relazione x _ y
con x S e y S tale che
x _ x
x _ y y _ z x _ z
x _ y y _ x x = y
Data una relazione dordine parziale _, il principio di induzione completa
generalizzato su un insieme di elementi S qualsiasi `e il seguente
(n (i (i _ n i = n p(i)) p(n))) n p(n)
Si pu` o dimostrare che linduzione completa `e equivalente a quella ordina-
ria. Il vantaggio di questo principio `e per` o che si possono facilmente eettuare
dimostrazioni basate su questa induzione anche per elementi non numerici,
purche si stabilisca una relazione dordine parziale tra tali elementi.
Le dimostrazioni fatte in questo documento, sfruttano solitamente questo
principio di induzione utilizzando come elementi (dellinsieme S) termini di
un linguaggio, alberi e comunque in generale elementi che rappresentano una
qualche struttura (sintattica, un albero, ecc.). Questo tipo particolare di in-
duzione viene detta induzione strutturale.
Deniamo ad esempio il seguente semplice linguaggio sullalfabeto = a, b, +,
e ::= e + e [
e e [
a [
b
Sia NPlus(t) il numero di simboli + presenti nel termine t (che fa parte
del linguaggio appena denito) e Dim(t) il numero di simboli presenti nel
termine t (omettiamo la denizione formale di queste funzioni per semplicit` a).
Supponiamo di voler dimostrare che il numero di simboli + presenti in un
termine del linguaggio L appena denito `e sempre minore del numero di
simboli presenti nel termine, cio`e che
t L NPlus(t) < Dim(t)
4
Per dimostrarlo si pu` o sfruttare il principio di induzione completa sostituen-
do al predicato p(t) la formula NPlus(t) < Dim(t) ottenendo dunque la
seguente formula
(t L (s (s _ t s = t NPlus(s) < Dim(s))))
NPlus(t) < Dim(t)) t L NPlus(t) < Dim(t)
Quello che per` o non `e chiaro `e come la relazione dordine _ viene denita.
Solitamente viene scelta la relazione tale che s _ t solo se s `e un sottotermine
di t, ossia `e un termine pi` u piccolo nel senso che ha un numero minore di
caratteri. Dunque si ha che
s _ t Dim(s) < Dim(t) s = t
E noto che
NPlus(e
1
+ e
2
) = NPlus(e
1
) + NPlus(e
2
) + 1
Dim(e
1
+ e
2
) = Dim(e
1
) + Dim(e
2
) + 1
E quindi si pu` o concludere che
NPlus(e
1
+e
2
) = NPlus(e
1
)+NPlus(e
2
)+1 < Dim(e
1
+e
2
) = Dim(e
1
)+Dim(e
2
)+1
Perche NPlus(e
1
) < Dim(e
1
) e NPlus(e
2
) < Dim(e
2
) per cui la prima
somma contiene elementi che sono tutti minori della seconda (eccetto
1 che `e uguale in entrambe le formule).
e
1
e
2
: anche questo `e un passo induttivo. Analogamente al pre-
cedente caso per ipotesi induttiva si ha che NPlus(e
1
) < Dim(e
1
) e
NPlus(e
2
) < Dim(e
2
) per cui
NPlus(e
1
e
2
) = NPlus(e
1
)+NPlus(e
2
) < Dim(e
1
)+Dim(e
2
)+1 = Dim(e
1
e
2
)
Le dimostrazioni per induzione trattate su questo documento hanno sem-
pre approssimativamente questo stile e generalmente un elemento precede un
altro nellordinamento quando questo `e costituito da un numero minore di
elementi.
Il principio di induzione verr` a anche utilizzato per eettuare denizioni di
6
funzioni o altri elementi. Ad esempio la funzione precedente Dim(t) poteva
essere denita nel modo seguente
Dim(a) = 1
Dim(b) = 1
Dim(e
1
+ e
2
) = Dim(e
1
) + Dim(e
2
) + 1
Dim(e
1
e
2
) = Dim(e
1
) + Dim(e
2
) + 1
Questa denizione `e valida perche si pu`o sfruttare lipotesi induttiva sui
sottotermini di un termine.
Quando si utilizza lipotesi induttiva (sia nelle denizioni che nelle dimostra-
zioni) occorre accertarsi che gli elementi su cui si applica precedano lelemen-
to preso in esame nellordinamento dato. Ad esempio applicare lipotesi su
termini pi` u grandi di un termine t mentre si dimostra una propriet` a per t
sarebbe un errore.
Dimostrazioni come quella appena eettuata sono dette per induzione
strutturale perche linduzione `e guidata dalla struttura degli elementi (in
questo caso dei termini). Per ricavare le ipotesi induttive ad esempio viene
fatta unanalisi sulla struttura dei termini e si individuano i sottotermini per
cui `e necessario applicare lipotesi induttiva.
Nellinduzione strutturale, la tecnica di dimostrazione consiste nel suddivi-
dere tutti gli elementi dellinsieme scelto (in questo caso i termini) in pi` u
gruppi in base alla loro struttura (ad esempio `e stato scelto il gruppo degli
inniti termini con la struttura e
1
+e
2
, il gruppo costituito dallunico termine
a, ecc.) e per ciascun gruppo (o meglio per ciascun caso) `e stato dimostrato
che la propriet`a vale, sfruttando le ipotesi induttive per quegli elementi che
hanno predecessori nellordinamento scelto.
Anche una dimostrazione per induzione strutturale sia valida, occorre che
lunione di tutti i gruppi di elementi formati costituisca lintero insieme di
elementi scelto. Ad esempio se non si considera il caso e
1
e
2
nella dimo-
strazione, questultima non `e completa
2
(a meno che questo caso non si dia
per scontato).
Il documento `e strutturato nel seguente modo
Capitolo 1: verr`a presentata la logica classica e le sue propriet`a, con-
siderando tale logica un punto di partenza per lo studio delle altre
logiche.
2
Si noti che la scelta esaustiva dei casi pu`o essere pi` u complicata di quella da fare in
questo esempio
7
Capitolo 2: verr` a modicata la logica classica per ottenere la logica
intuizionista. Verr` a anche mostrato il legame tra logica classica e logica
intuizionista.
Capitolo 3: partendo dalla logica intuizionista, sar`a mostrato il lega-
me che vi `e tra questa ed il lambda-calcolo. Verrano in seguito presen-
tati altri linguaggi di programmazione funzionali, la logica intuizionista
sar` a estesa con i predicati in modo tale da mostrare nuovamente la rela-
zione tra logica e lambda-calcolo, ma utilizzando la logica intuizionista
predicativa.
Capitolo 4: verr`a presentata la logica lineare ed in particolare sar` a
messa in relazione la logica lineare intuizionista con il lambda-calcolo
lineare, per mostrare come sia possibile ottenere un linguaggio che
permetta di implementare tutti e soli i programmi con complessit`a
polinomiale.
1.2 Sintassi
La sintassi di una formula della logica proposizionale classica `e denita nel
modo seguente.
::= A [ V ariabile proposizionale
[ Congiunzione di formule
[ Disgiunzione di formule
[ Implicazione
Negazione
La negazione ha precedenza sulla congiunzione che ha precedenza sul-
la disgiunzione che a sua volta ha precedenza sullimplicazione. Quindi la
formula
se (A) = A
( ) =
se =
e =
( ) =
se =
e =
( ) =
se =
e =
() = se =
Lapplicazione della sostituzione ad una formula `e dunque una nuova
formula proposizionale dove tutte le variabili A che occorrono in vengono
sostituite con (A).
Sia data ad esempio la formula = A B C A e la sostituzione
= [B/A, A C/B], si ha che
= (A B C) A = (A B) C A =
A B C A = B (A C) C B
Notare che le sostituzioni vengono applicate contemporaneamente, ossia
ad ogni variabile nello stesso istante. Si si applicasse la sostituzione B/A a
tutti i termini e poi successivamente la seconda sostituzione a tutti i termini
della formula ottenuta con la prima sostituzione il risultato sarebbe diverso.
equivale a ()
alla
formula ottenuta applicando la sostituzione a .
1.3 Semantica
La semantica di una logica `e uno strumento per dare un signicato alle formu-
le, mostrando dunque cosa rappresenta ogni formula e quindi come interpre-
tarla. Mentre la sintassi descrive solo come costruire formule, la semantica
mostra come interpretarle. La semantica di una formula in logica classica
associa ad ogni formula dei valori di verit`a, cio`e valori a scelta tra vero o
falso. Data una formula, il suo valore di verit` a dipende dai valori di verit`a
delle singole variabili proposizionali. Ad esempio la formula AB ha valore
di verit`a vero solo le variabili proposizionali A e B hanno valore di verit` a
vero. In tutti gli altri casi la formula ha valore di verit`a falso.
Il valore di verit`a di una formula, dipende dunque dallassegnazione dei valori
alle variabili libere della formula stessa.
Deniamo innanzitutto linsieme B come linsieme di tutti i possibili valori
10
di verit`a di una formula, ossia B = , , dove indica il valore di verit` a
vero e il valore di verit`a falso.
Denizione 5. Un assegnazione, o interpretazione, `e una funzione :
A B.
Ad esempio, dato un assegnazione, (A) = signica che la variabile
proposizionale ha valore di verit` a vero.
Si deniscono ora le seguenti funzioni:
: B
2
B
: B
2
B
: B
2
B
: B B
i cui valori sono espressi tramite le seguenti tabelle di verit` a, dove il primo
argomento delle funzioni `e indicato dalle colonne e il secondo dalle righe.
La semantica [[]]
= (A)
[[ ]]
= [[]]
[[]]
[[ ]]
= [[]]
[[]]
[[ ]]
= [[]]
[[]]
[[]]
= [[]]
= [[A B]]
[[A B]]
= ([[A]]
[[B]]
)([[A]]
[[B]]
) =
()() = =
11
Denizione 6. Data una formula ed un assegnazione , `e un modello
di , oppure soddisfa se e solo se
[[]]
=
che si indica con [= .
In altre parole [= `e un modo alternativo di indicare [[]]
= e si-
gnica che la formula ha valore di verit`a vero sotto lassegnazione .
Denizione 7. Dato un insieme di formule si dice che soddisfa ,
indicato con [= se e solo se ogni assegnazione che soddisfa tutte le formule
in `e un modello per , cio`e
[= SSE ( [= ) [=
Le formule della logica proposizionale classica possono essere classicate
in base alla loro semantica sotto determinati assegnamenti in
Valide: [= , ossia una formula `e valida se `e vera sotto
qualunque assegnazione delle variabili.
Soddisfacibili: [= , ossia una formula `e soddisfacibile se `e
vera per qualche assegnazione delle variabili.
Insoddisfacibili: [= , ossia una formula `e insoddisfacibile
se non `e falsa per qualunque assegnazione delle variabili.
Esiste un teorema che torner`a utile in seguito che lega lassegnazione con
la sostituzione.
Teorema 1. Data una sostituzione e unassegnazione , sia unasse-
gnazione tale che (A) = [[(A)]]
, allora
, [[]]
= [[]]
= [[(A)]]
= (A) = [[A]]
.
12
= : si ha che
[[()]]
= [[ ]]
= [[]]
[[]]
= [[]]
[[]]
= [[]]
,
la terza dallipotesi induttiva su e e lultima nuovamente dalla
denizione di [[ ]]
.
= : si ha che
[[()]]
= [[]]
= [[]]
= [[]]
= [[]]
, la
terza dallipotesi induttiva su e lultima nuovamente dalla denizione
di [[]]
.
Gli altri casi sono del tutto analoghi al secondo punto.
Ora che `e stata fornita la semantica delle formule, si pu`o vericare facil-
mente che la congiunzione e la negazione sono sucienti per esprimere tutte
le formule logiche. Infatti limplicazione e la disgiunzione si possono espri-
mere utilizzando la congiunzione e la negazione.
Dal teorema di De Morgan abbiamo infatti che, date due formule qualsiasi
e e un qualsiasi assegnazione
[[( )]]
= [[ ]]
Per cui
[[ ]]
= [[( )]]
[[ ]]
= [[ ]]
= [[( )]]
= [[( ) ( )]]
), ossia di or
esclusivo tale che
= ( ) ( )
Corollario 1.
valida , [[
]]
=
Dimostrazione. Per ogni , [[]]
= e per il teorema 1 [[
]]
=
1.4 Sistemi di deduzione
Con la semantica della logica proposizionale, `e possibile provare che una for-
mula `e valida, oppure soddisfacibile o insoddisfacibile.
Per dimostrare che una formula `e soddisfacibile, basta trovare un modello
per tale formula.
Provare che una formula `e valida (rispettivamente insoddisfacibile) utilizzan-
do la semantica, richiede invece di vericare che ogni assegnazione `e (rispet-
tivamente non `e) un modello per la formula. Ma il numero di assegnamenti
`e esponenziale rispetto al numero di variabili libere di una formula cosicche
la verica della validit` a o insoddisfacibilit` a di una formula `e molto costosa e
poco leggibile.
Per vericare se una formula `e valida, la si pu` o considerare un teorema e
cos` facendo si pu`o trovare una dimostrazione. I sistemi che permettono di
14
ricavare dimostrazioni di validit` a di una formula sono detti sistemi di de-
duzione.
(I)
(E
1
)
(E
2
)
[]
i
i
( I)
( E)
(I
1
)
(I
2
)
[]
i
[]
i
i
(E)
[]
i
i
(I)
(E)
(I)
(E)
(?)
(I)
3
`e una contraddizione in quanto se `e vera la formula `e falsa e se `e falsa
la formula `e falsa. Questo risultato `e intuitivo e pu`o essere vericato tramite le tabelle di
verit`a.
18
dove `e una derivazione, questa pu`o anche essere scritta nella forma
(?)
(I)
(I)
4
ossia
il sequente il cui contesto `e formato da e dalla formula .
Con , , dove `e un multiinsieme di formule, si intende
.
In generale denoteremo con , ,
, ecc. le formule.
Seguono le regole di deduzione.
La regola (Ax) (vedi le regole con i sequenti sotto), detta assioma, indica
che la formula `e valida se tra le ipotesi del contesto, `e valida.
La regola di introduzione delland stabilisce che se e sono valide nello
stesso contesto , allora si pu`o concludere sempre nello stesso contesto.
4
Il simbolo
(E)
F
(I)
(E)
(I
1
)
(Ax)
(E)
F
(I)
(E)
F
(I)
( )
(E)
Dove = ( ),
= , = , e
= , .
Prima di enunciare i due principali teoremi di un sistema deduttivo (corret-
tezza e completezza), enunciamo il teorema di Weakening. La parola Wea-
kening signica indebolimento e mostra sostanzialmente come, aggiungendo
nuove ipotesi al contesto di un sequente per cui esiste una derivazione, `e an-
cora possibile trovare una dimostrazione per quel sequente. Questo mostra
ad esempio che, avendo appena dimostrato si pu`o anche
dimostrare che limplicazione `e vera aggiungendo ipotesi, cio`e ad esempio si
pu` o costruire una derivazione anche per o per .
Lemma 1 (Weakening). Dato un sequente derivabile , per ogni
tale
che
allora
`e derivabile.
Questa dimostrazione viene fatta per induzione strutturale sulla deriva-
zione di .
Dunque gli elementi dellinduzione sono gli alberi di derivazione per cui lipo-
tesi induttiva viene applicata ad ogni sottoalbero di un albero di derivazione.
Dimostrazione. Per induzione sulla derivazione di .
(Ax): dato il sequente , , questo `e immediatamente derivabile
applicando lassioma.
Il sequente , , , dove `e un multiinsieme eventualmente vuoto
di formule, `e derivabile anchesso dallassioma. Essendo
, , , il caso base `e dimostrato.
21
(I): si supponga che esista una derivazione
(I)
Si vuole dimostrare che essendo derivabile, allora
`e derivabile, dove
.
Per ipotesi induttiva, essendo e derivabili, allora anche
(I)
(E): si supponga che esista una derivazione per nella seguente
forma
,
(E)
Per ipotesi induttiva, dato
tale che
, si ha che
`e derivabile
, , infatti
, `e derivabile
, , infatti
, `e derivabile
Allora esiste la seguente derivazione
,
(E)
Gli altri casi sono analoghi a questi punti.
Il lemma di Weakening pu` o essere utile nelle dimostrazioni perche per-
mette di manipolare il contesto dei sequenti per trarre nuove conclusioni. Il
teorema seguente mostra proprio la sua utilit`a.
Con
ND
si intende che il sequente `e derivabile utilizzando le
regole della deduzione naturale.
22
Teorema 2 (Deduzione). Sia un contesto e , due formule
,
ND
SSE
ND
I simboli e sono i simboli di metaimplicazione, ossia simboli di
implicazione utilizzati nei teoremi che descrivono le logiche. Pertanto non
sono connettivi che fanno parte di termini della logica (ossia sono esclusi dalla
sintassi). Ad esempio in questo caso denotano rispettivamente limplicazione
sinistra e destra dellequivalenza enunciata dal teorema e si utilizzano per
distinguerli dallimplicazione utilizzata come connettivo di un termine della
logica.
Dimostrazione.
: se ,
ND
allora il sequente , `e derivabile. Allora
applicando la regola ( I) si ottiene
,
( I)
: se
ND
, allora il sequente `e derivabile.
Applicando il lemma di Weakening si ottiene che , `e
derivabile, mentre il sequente , `e derivabile per lassioma. Le
premesse della regola ( E) sono dunque soddisfatte ed `e possibile
ottenere la seguente derivazione
,
(Ax)
,
( E)
,
Come `e gi` a stato detto, un sistema di deduzione dovrebbe permettere
di costruire una derivazione per tutte e sole le formule sempre vere (date
eventualmente delle ipotesi). In questo modo, la validit` a di una formula
pu` o essere vericata cercando una derivazione per il sequente .
La deduzione naturale ha la seguente propriet`a
ND
SSE [=
Questo risultato si pu` o dimostrare dimostrando i teoremi di correttezza e
completezza e permette di concludere che una formula `e derivabile se e solo
23
se `e valida (o sempre vera date eventualmente delle ipotesi).
Questo risultato porta al fatto che `e possibile vericare [= , ossia che una
formula `e una conseguenza logica di un insieme di formule senza ricorrere
alla semantica ma utilizzando soltanto il sistema di deduzione naturale, ossia
vericando che
ND
.
Teorema 3 (Correttezza).
ND
[=
Dimostrazione. Per induzione strutturale sulla derivazione di
(Ax): il sequente , `e derivabile utilizzando lassioma.
Sia
[= , cio`e che
(
[[]]
= ) [[]]
=
Ma siccome
= .
(I): se il sequente `e derivabile utilizzando come ultima regola
(cio`e la cui conclusione `e il sequente stesso) (I), ossia se si ha una
derivazione nella forma
(I)
le premesse sono derivabili per cui si pu` o utilizzare lipotesi induttiva
sulle premesse ottenendo
[= , cio`e
( [[]]
= ) [[]]
=
[= , cio`e
( [[]]
= ) [[]]
=
Allora si ha che
( [[]]
= ) [[ ]]
= [[]]
[[]]
=
Infatti, se le premesse di questa implicazione sono vere, per le ipotesi
induttive mostrate sopra, si ha che [[]]
= e [[]]
= , per cui
= .
Questa ultima formula `e equivalente a [= .
24
(E
i
): in questo caso si ha una derivazione nella forma
1
2
(E
i
)
i
, i = 1, 2
Per ipotesi induttiva, essendo
1
2
derivabile, si ha che
( [[]]
= ) [[
1
2
]]
=
Questo signica che
( [[]]
= ) [[
i
]]
=
perche se le ipotesi sono vere, allora [[
1
2
]]
= [[
1
]]
[[
2
]]
=
ma per ottenere questo risultato, deve necessariamente essere vero che
entrambe le formule
1
e
2
siano vere sotto .
( I): si assume di avere una derivazione nella seguente forma
,
( I)
Per ipotesi induttiva si ha che, dato
= ,
(
[[]]
= ) [[]]
=
Quindi, quando un assegnazione rende vere le formule in
, e quindi
rende vero e , allora `e vera, per cui [[ ]]
= .
Quando un assegnazione
. Per cui si ha
che [= .
(I): si assume di avere una derivazione nella seguente forma
, F
(I)
per ipotesi induttiva, sia
= ,
(
[[]]
= ) F
25
Siccome F `e una qualsiasi formula insoddisfacibile, cio`e non esiste alcun
assegnazione tale che [[F]]
[[]]
= )
perche se tale esistesse falsicherebbe la conseguenza dellimplicazio-
ne, ossia che rende vera F.
Quindi
( [[]]
= ) [[]]
=
cio`e
( [[]]
= ) [[]]
=
Gia altri casi sono analoghi a questi elencati.
La dimostrazione di completezza `e laltro verso della biimplicazione mo-
strata sopra, ossia che [=
ND
.
La dimostrazione di completezza `e molto pi` u dicile di quanto sembra.
Si potrebbe tentare una dimostrazione per induzione strutturale sulle for-
mule . Il caso base potrebbe essere [= A che, per essere vero richiede che
A e quindi si potrebbe applicare lassioma al sequente A.
Si potrebbero dunque considerare tutti i casi sintattici, ossia formule con
congiunzione, con disgiunzione, con negazione e con implicazione e per cia-
scuna usare le ipotesi induttive per i sottotermini di tali formule mostrando
che esiste una derivazione per questi e quindi deve esistere anche per le for-
mula. Ad esempio, il caso [= `e facilmente dimostrabile. Anche la
congiunzione sia vera sotto si deve avere che [= e [= . Si applica
allora lipotesi induttiva a queste ultime due formule ottenendo
ND
e
ND
.
Lipotesi induttiva stabilisce che se [= `e vero allora
ND
(e questo
vale anche per ).
Esaminiamo allora il caso dellimplicazione, cio`e [= . Secondo lipo-
tesi induttiva si ha che [=
ND
e lo stesso vale per .
Anche avendo a disposizione questa conoscenza per` o, non si pu` o trarre nessu-
na conclusione in quanto non si pu`o stabilire a priori se [= . Daltronde se
questo `e falso lipotesi induttiva non permette di concludere necessariamente
che
ND
.
Il problema sorge principalmente dal fatto che, nel caso in cui [= e
[= limplicazione pu` o essere vera per tutti i modelli di , ossia
[= , ma non `e possibile applicare nessuna ipotesi induttiva per cui
26
`e impossibile dimostrare che
ND
.
Questa strategia dunque non funziona.
Per prima cosa `e necessario un lemma.
Lemma 2. Dato un assegnazione ed una formula , sia
denito come
se [[]]
= e se [[]]
= . Sia fv() = A
1
, . . . , A
n
, A
1
, . . . , A
n
ND
`e derivabile. Applicando
lassioma si pu`o derivare il sequente. Infatti se [[A]]
= , A
= A e
, A A `e derivabile utilizzando lassioma. Altrimenti , A A `e
derivabile utilizzando lassioma.
= . Si utilizza lipotesi induttiva concludendo che per ogni e
, A
1
, . . . , A
n
ND
, fv() = A
1
, . . . , A
, A
1
, . . . , A
m
ND
, fv() = A
1
, . . . , A
= e
1
, . . . , A
n
e , A
1
, . . . , A
n
sono derivabili, dove
fv() = fv() fv() = A
1
, . . . , A
, A
1
, . . . , A
, A
1
, . . . , A
n
(I)
, A
1
, . . . , A
n
Per cui , A
1
, . . . , A
n
ND
( )
=
2.
1
, . . . , A
n
( ). Si applica
dunque il Weakening allipotesi induttiva su , si pu` o dimostrare
che esiste una derivazione per il sequente
, A
1
,
, . . . , A
n
,
e lo stesso vale per . Sia
1
= , A
1
, . . . , A
n
, la derivazione
cercata `e dunque la seguente
(Ax)
1
,
(E
1
)
1
,
1
,
(E)
1
, F
(I)
1
( )
3.
1
, . . . , A
`e derivabile per
ogni e , considerando sempre che A
1
, . . . , A
n
sono le variabili libere
di .
Lipotesi induttiva si applica a e .
Sia
1
= , A
1
, . . . , A
n
, si hanno tre casi.
1.
= ,
= : si deve dimostrare
1
ND
perche ()
`e falsa sotto dato che falsica sia che . Per ipotesi induttiva
e per Weakening si ottiene
1
, ,
ND
1
, ,
ND
28
`e dunque possibile trovare la seguente derivazione.
(Ax)
1
,
(
F
(
F
(E)
1
, F
(I)
1
( )
Dove
=
1
, , ,
=
1
, , e
`e la seguente derivazione
(Ax)
1
, ,
(
1
)
1
, ,
(E)
1
, , F
e
`e la seguente derivazione
(Ax)
1
, ,
(
2
)
1
, ,
(E)
1
, , F
Dove
1
e
2
sono le due derivazioni ricavate dalle ipotesi induttive
e dal Weakening (vedi sopra).
2.
= .
1
(I
1
)
1
dove
1
, . . . , A
n
, con A
1
, . . . , A
n
le variabili libere
in , sono possibili tre casi
29
1.
= ,
= : in questo caso
= . Esiste la seguente
derivazione
(Ax)
1
,
1
,
( E)
1
,
1
,
(E)
1
, F
(I)
1
2.
1
,
(Ax)
1
,
(E)
1
,
( I)
1
3.
1
,
( I)
1
= : sono possibili due casi.
1.
= ()
= ,
per cui esiste la seguente derivazione
1
(I)
1
2.
= , per cui
30
Dimostrazione. Le ipotesi del teorema richiedono lesistenza di due deriva-
zioni
1
e
2
che dimostrano rispettivamente , e , . La
derivazione che conclude `e la seguente
()
(
1
)
,
(
2
)
,
(I)
Per dimostrare che la derivazione esiste si pu` o costruire lalbero di deriva-
zione, che viene qu` omesso per semplicit`a.
Teorema 4 (Completezza).
[=
ND
A
2
A
2
A
3
A
3
A
3
A
3
31
Il cammino che attraversa i nodi marcati con il simbolo , formano
ad esempio lassegnazione A
1
= e A
2
= , mentre il cammino che
comprende solo A
1
e A
2
(marcati con ) forma un assegnazione A
1
=
senza specicare nulla sulla variabile A
2
.
Formalmente, un nodo a profondit`a (dalla radice, che ha profondit`a 0)
i, 0 i n nellalbero di decisione `e una sequenza A
1
, . . . , A
i
per un
qualche e se i = n `e una foglia, altrimenti ha due gli: A
1
, . . . , A
i
, A
i+1
e A
1
, . . . , A
i
, A
i+1
.
Occorre dimostrare che
i t.c. 0 i n A
1
, . . . , A
i
ND
1
, . . . , A
n
ND
.
Per il lemma 2 si ha che A
1
, . . . , A
n
ND
, ma siccome [[]]
=
per ogni (per ipotesi del teorema ristretto al caso che si sta
dimostrando, ossia con vuoto) allora
= .
passo induttivo: si vuole dimostrare che A
1
, . . . , A
i
ND
con
i = n, dove n `e il numero di livelli dellalbero.
Per ipotesi induttiva A
1
, . . . , A
i
, A
i+1
ND
e A
1
, . . . , A
i
, A
i+1
ND
(si ricordi che questi due nodi sono a livello i mentre quello per
cui si vuole dimostrare la propriet` a `e a livello i 1 per cui i due
nodi precedono questultimo nellordinamento e si pu` o applicare
lipotesi induttiva). Allora per il lemma di raorzamento, si ha
che A
1
, . . . , A
i
ND
.
Da questo segue che
ND
applicando ci` o che si `e appena dimostrato
alla radice dellalbero, ossia con i = 0.
2. `e nito: occorre dimostrare che
ND
. Dato =
1
, . . . ,
n
(che
`e corretto perche contiene un numero nito di formule) occorre dimo-
strare che se
1
, . . . ,
n
[= , e questo `e vero per ipotesi del teorema,
allora
1
, . . . ,
n1
[=
n
.
Per ipotesi
(i, 1 i n [[
i
]]
= ) [[]]
=
32
Da questo segue che se [[
i
]]
= e quindi [[]]
= ) [[
n
]]
=
per cui
1
, . . . ,
n1
[=
n
.
Iterando questo risultato n volte si ottiene
[=
1
. . .
n
Da questo risultato segue che
ND
1
. . .
n
per il teorema di completezza nel caso in cui `e vuoto (che `e gi`a stato
dimostrato).
Si ricordi che secondo il teorema di deduzione
,
ND
SSE
ND
Iterando n volte il teorema di deduzione (utilizzando solo il verso destro
dellimplicazione) si ottiene proprio
1
, . . . ,
n
ND
Teorema 5.
[= SSE
ND
,
(E)
Ricordando che una derivazione si costruisce dal basso verso lalto, il pro-
gramma potrebbe iniziare partendo da e applicare la regola (E).
Fatto questo tenter`a di dimostrare le premesse no a concludere la dimo-
strazione. Se non si trova alcuna dimostrazione applicando questa regola si
possono comunque tentare altre regole, come ad esempio (E). Se non si
riesce a dimostrare le premesse con nessuna regola applicata partendo da
allora non esiste una dimostrazione.
Il problema di questo approccio `e proprio stabilire quando non `e possibile
applicare una determinata regola perche `e necessario eettuare inniti ten-
tativi prima di dedurlo.
Ad esempio applicando la regola E le premesse contengono due formule
e . Quindi quando si tenta di utilizzare tale regola in fase di costruzione,
occorre stabilire nelle premesse quali formule siano o . Ma queste posso-
no essere entrambe , una sottoformula di questultima, una contraddizione,
e cos` via. Esistono inniti valori per e cosicche lalgoritmo che ricerca
una dimostrazione non termina se questa non esiste.
Allora per vericare la validit` a di una formula in maniera automatica non si
pu` o ricorrere alla deduzione naturale. Si pu`o comunque calcolare [[]]
per
ogni che contiene tutte e sole le variabili libere di e vericare che tale
valore sia sempre . Ma questo signica vericare per ogni possibile valore
di verit` a delle variabili di se tale formula `e vera, il che signica eettuare
nel caso peggiore 2
|fv()|
tentativi, ossia lalgoritmo `e esponenziale.
Inoltre il sistema di deduzione naturale non `e molto semplice da stu-
diare (cio`e dimostrare propriet` a come correttezza e completezza) e infatti
linventore di tale sistema, Gerhard Gentzen, non era riuscito a trovare la
dimostrazione del teorema di completezza (la trov`o un altro studioso).
Cos`, per questi motivi Gentzen invent`o il calcolo dei sequenti.
La denizione di sequente in questo sistema `e leggermente variata.
Denizione 9. Un sequente `e una coppia
dove e sono multiinsiemi di formule.
34
Il fatto che un sequente `e una coppia di multiinsiemi permette anche di
rappresentare il sequente
Linterpretazione di un sequente in questo sistema `e la sequente: da
un multiinsieme di ipotesi `e possibile derivare almeno una delle formule
presenti nel multiinsieme .
Occorre ridenire allora il concetto di derivazione semantica di formule, ossia
[= , che in deduzione naturale signica ogni assegnazione che rende vere
tutte le formule in rende vera , non ha pi` u senso nel calcolo dei sequenti
(non `e utile per enunciare e dimostrare i teoremi di correttezza e completez-
za).
Denizione 10. Dato un assegnazione e due multiinsiemi di formule
, , si denisce [= se e solo se `e vera almeno una delle seguenti
aermazioni
[[]]
=
[[]]
=
Linterpretazione di [= `e la seguente: rende falsa almeno una
formula in oppure se tutte le formule in sono vere allora deve essere
vera almeno una formula in sotto . Questo corrisponde a interpretare
un contesto come congiunzione di formule e come disgiunzione di formule.
Un sequente
1
, . . . ,
n
`e dunque interpretato nel calcolo dei sequenti
come il sequente
1
. . .
n
in deduzione naturale.
Seguono le regole di deduzione.
35
(Ax)
, ,
, ,
(L)
,
, ,
(R)
,
, ,
(L)
,
, ,
(R)
,
, ,
( L)
,
,
( R)
,
(L)
,
,
(R)
,
, ,
(Cut)
Le regole non sono pi` u suddivise in eliminazioni e introduzioni ma in rego-
le left (che introducono connettivi solo sul contesto) e right (che introducono
connettivi solo sulle formule in ).
Lassioma `e analogo alla deduzione naturale solo che la parte destra del se-
quente pu` o contenere pi` u formule.
La regola (R) richiede come premesse che sotto sia vero o qualche for-
mula in e che sia vero o qualche formula in .
Allora `e possibile concludere che, per alcuni assegnamenti che rendono vero
o `e vero oppure devono necessariamente essere vere entrambe le formule
e .
La regola (R) `e molto intuitiva una volta nota la semantica di sequente. Le
premesse richiedono che si dimostri che sotto almeno una formula in o
o sia vera.
Quindi quando `e vera qualche formula in la conclusione `e corretta, altri-
menti almeno una delle due formule e sono vere per cui `e anche vero
.
Per quanto riguarda la regola ( R), quando tute le formule in sono false,
allora se `e falsa limplicazione del sequente derivato `e vera, altrimenti se
`e vera e tutte le formule in sono vere, la premessa mostra che `e vera
per cui limplicazione del sequente derivato `e vera.
Si noti come le regole (L) e (R) sfruttino la semantica data rispettiva-
mente alla parte sinistra e destra dei sequenti.
36
Nella regola ( L) il sequente derivato indica che quando sono vere tutte
le formule in , se `e vera deve essere vera anche per poter concludere
, altrimenti per la seconda premessa non si sarebbe sicuri che almeno una
formula in `e vera e nemmeno nella prima perche in tal caso nella parte
destra del sequente `e vera quindi esiste almeno una formula vera.
La regola (Cut), nota come regola del taglio, inserisce il concetto di lemma
alle dimostrazioni nel senso che le premesse richiedono che si dimostri in
congiunzione con e che poi si assumi e si ricavi , ossia informalmente
una volta dimostrato lo si pu` o assumere vero nella dimostrazione della
parte destra.
Si noti come il calcolo dei sequenti sia deterministico se non si considera
la regola del taglio nel senso che senza di essa `e possibile trovare una sola
derivazione per sequente (se non si considerano le derivazioni che utilizzano
applicazioni inutili di regole cio`e che dalle premesse portano con un deter-
minato numero di passi una conclusione che `e uguale alle premesse stesse) e
quindi lalgoritmo di ricerca nello spazio degli stati descritto sopra termine-
rebbe perche i possibili stati sono niti.
Il problema del non determinismo del taglio `e sostanzialmente lo stesso
di quello descritto per la deduzione naturale: esistono innite formule che
possono essere utilizzate per la sua premessa.
Gentzen scopr` per` o che questa regola `e derivabile dalle altre, dimostrando
dunque il determinismo del calcolo dei sequenti.
In seguito indicheremo con
LK
0
o con
LK
0
il fatto che il
sequente `e derivabile con il calcolo dei sequenti.
Nel paragrafo sulla deduzione naturale `e stata trovata una derivazione
come esempio, di . Segue la derivazione con il calcolo dei sequenti
(Ax)
(R)
,
(R)
Si noti quanto questa derivazione sia pi` u semplice e leggibile di quella
eettuata con la deduzione naturale.
Il sequente `e equivalente al sequente ed in generale,
quando un multiinsieme di un sequente `e vuoto si pu`o anche lasciare vuota
37
quella parte di sequente. Ad esempio per , si intende .
Lemma 4 (Weakening). Sia un sequente, per ogni
tale che
, il sequente
`e derivabile.
Dimostrazione. Per induzione sulla derivazione di .
(Ax): il sequente derivato utilizzando lassioma `e necessariamente nella
forma , , .
Si vuole dimostrare che il sequente , ,
, ,
`e derivabile. Tale
sequente `e derivabile sempre utilizzando lassioma.
(L): esiste una derivazione nella forma
, ,
(L)
,
Per ipotesi induttiva , , ,
`e derivabile.
Applicando la regola (L) si ottiene la seguente derivazione
, , ,
(L)
,
, ,
,
(R)
,
sfruttando le ipotesi induttive sulle due premesse si ottiene
,
(R)
,
,
Gli altri casi sono del tutto analoghi a questi.
38
Per migliorare la leggibilit`a delle dimostrazioni, invece di menzionare il
lemma di weakening, possiamo aggiungere due regole derivabili: weakening
sinistro e weakening destro.
(Wl)
,
(Wr)
,
(I)
Per ipotesi induttiva si ha che
LK
0
e
LK
0
per cui si ha la
seguente derivazione nel calcolo dei sequenti
(R)
( I): questo caso `e del tutto analogo al caso (I).
(I): esiste la seguente derivazione
i
(I)
1
2
39
con i = 1 o i = 2.
Per ipotesi induttiva si ha che
LK
0
i
. Allora esiste la seguente
derivazione
i
(Wr)
1
,
2
(R)
1
2
(I): esiste una derivazione nella seguente forma
, F
(I)
Per ipotesi induttiva si ha che ,
LK
0
F, e quindi esiste la seguente
derivazione
F
(Wr)
, F
, F
(L)
, F,
(R)
, F
(Cut)
Il fatto che la derivazione esista pu` o essere dimostrato in due modi.
Ricordando che F `e in deduzione naturale una formula insoddisfacibile,
F `e una formula valida si pu` o sfruttare il teorema di completezza del
calcolo dei sequenti
6
(mostrato pi` u avanti) oppure assegnare a F una
qualsiasi formula insoddisfacibile, come ad esempio , come era
stato fatto allinizio nella deduzione naturale senza sequenti e trovare
una derivazione per F nel calcolo dei sequenti.
(E
i
): esiste la seguente derivazione
1
2
(E
i
)
i
6
Se si ragiona in questottica bisogna per`o tenere conto che questo teorema non pu`o
essere sfruttato per dimostrare la completezza altrimenti si avrebbe una dimostrazione
ciclica
40
per ipotesi induttiva
LK
0
1
2
per cui esiste la seguente deriva-
zione
1
2
(Wr)
1
2
,
i
(Ax)
,
1
,
2
i
(L)
,
1
2
i
(Cut)
i
( E): esiste una derivazione nella forma
( E)
per ipotesi induttiva
LK
0
e
LK
0
per cui esiste la
seguente derivazione
(Wr)
,
(Wr)
,
(Ax)
,
( L)
,
(Cut)
(E): esiste una derivazione nella forma
,
(E)
per ipotesi induttiva
LK
0
, ,
LK
0
e ,
LK
0
per cui
esiste la seguente derivazione
(Wr)
,
,
(L)
,
(Cut)
41
(E): esiste una derivazione nella seguente forma
(E)
per ipotesi induttiva
LK
0
e
LK
0
per cui esiste la seguente
derivazione
(Wr)
,
(Wr)
,
(L)
,
(Cut)
Ora occorre dimostrare che ogni sequente derivabile con il calcolo dei
sequenti `e anche derivabile con la deduzione naturale.
Sia
=
1
. . .
n
se =
1
, . . . ,
n
Teorema 7.
LK
0
ND
, ,
(L)
,
42
per ipotesi induttiva , ,
ND
. Allora esiste la seguente deri-
vazione
(
( E)
( I)
(Ax)
(E
1
)
( E)
Dove
= , ,
, e
`e la seguente derivazione
(
H
)
, ,
(W)
( I)
H
si ha per ipotesi induttiva e
`e la seguente derivazione
(Ax)
(E
1
)
(L): esiste la seguente derivazione
,
(L)
,
Per ipotesi induttiva ,
ND
e ,
ND
. Esiste la seguente
derivazione
(Ax)
,
(W)
, ,
(W)
, ,
(E)
,
43
( L): esiste la seguente derivazione
,
( L)
,
per ipotesi induttiva
ND
(
), e ,
ND
. Esiste la
seguente derivazione
)
(W)
)
(Ax)
,
( E)
(E)
dove
= , .
`e la seguente derivazione
(W)
, ,
( I)
`e la seguente derivazione
(Ax)
,
(Ax)
,
( E)
,
(L): esiste la seguente derivazione
,
(L)
,
44
per ipotesi induttiva
ND
(W)
(Ax)
(Ax)
(Ax)
(E)
(E)
dove
= , e
, .
(R): esiste la seguente derivazione
,
(R)
,
per ipotesi induttiva si ha
ND
e
ND
. Esiste la
seguente derivazione
()
, ,
( )
( I)
,
( )
(W)
,
( E)
,
( )
( I)
( )
( E)
( )
dove =
[=
( ), per cui
per il teorema di completezza della deduzione naturale si ha che
, ,
ND
, ,
( R)
,
per ipotesi induttiva ,
ND
,
(Ax)
,
(E)
( )
dove =
( ).
La derivazione esiste per il teorema di completezza della deduzione
naturale. La derivazione
`e la seguente
(I
2
)
,
, ,
(Ax)
, ,
(I
1
)
, ,
(E)
,
dove
= (
) ( ).
esiste.
(R): esiste una derivazione nella seguente forma.
,
(R)
,
per ipotesi induttiva ,
ND
(I)
,
(Ax)
,
(E)
46
dove =
e [= (
,
(Cut)
per ipotesi induttiva
ND
e ,
ND
. Esiste la seguente
derivazione
(Ax)
,
(E)
(Cut
)
,
LK
0
[=
47
Il teorema potrebbe essere dimostrato per induzione strutturale sulla de-
rivazione di un sequente. Tale dimostrazione non ha grandi dicolt` a esat-
tamente come la dimostrazione del teorema di correttezza per la deduzione
naturale.
Tuttavia si possono sfruttare i due teoremi appena dimostrati per ottenere
una dimostrazione pi` u compatta.
Dimostrazione. La dimostrazione `e costituita dai seguenti passaggi.
Per il teorema 7, avendo
LK
0
si ottiene
ND
= ) [[
]]
=
Siccome
=
1
. . .
n
con =
1
, . . .
n
si ottiene che per
ogni
[[]]
= oppure
[[
]]
= cio`e
i
[[
i
]]
= , cio`e [[]]
=
e quindi si pu` o concludere
[=
Il teorema di completezza pu` o essere dimostrato in modo analogo sfrut-
tando il teorema 6. Tuttavia la sua dimostrazione `e interessante perche
mostra come se una formula `e valida questa pu`o essere derivata anche senza
utilizzare la regola di taglio e anche perche mostra un algoritmo per derivare
formule valide.
Teorema 9 (Completezza).
[=
LK
0
Come per la dimostrazione del teorema di completezza per la deduzione
naturale, occorre distinguere il caso in cui `e nito dal caso in cui `e innito.
Per lo stesso motivo enunciato nella dimostrazione di tale teorema per la
deduzione naturale, verr`a dimostrato solo il caso in cui `e nito (qu` non
occorre distinguere tra vuoto e nito).
48
Dimostrazione. Sia o il seguente insieme
o =
A
Linsieme o `e linsieme di tutti i sequenti in cui parte sinistra e destra non
hanno formule in comune e non contengono soltanto variabili.
Sia f una funzione f : o T A, tale che
f(
) = se
).
e = : sia
, ,
49
Quello che occorre dimostrare `e che questo glio `e valido.
Per ipotesi induttiva si ha che [=
.
Questo signica che, per ogni assegnazione , sia
, ,
[[
]]
= e quindi, o [[ ]]
= per cui
[[]]
= [[]]
`e falsa sotto e
quindi
[[
]]
= oppure
[[
]]
.
Questo signica che [=
, ,
(L)
e = : sia
,
sfruttando lipotesi induttiva si ha che per ogni assegnazione
[[
]]
[[
]]
oppure
[[ ]]
= per cui
, [[
]]
= e
, [[
]]
=
Da questo segue che entrambi i gli del nodo sono sequenti validi.
Per gli altri casi in cui il sequente appartiene ad o la dimostrazione `e analoga.
Una foglia `e un nodo che non appartiene a o.
Questa procedura termina quando non ci sono pi` u nodi non foglia a cui as-
segnare dei gli.
I nodi foglia
A e
= e [[B
i
]]
= ,
dove ogni variabile A
i
e B
i
per ogni i occorre una sola volta nel sequen-
te. Da questo segue la contraddizione
[=
.
Lalgoritmo termina perche ogni glio dellalbero contiene formule con
un numero minore di connettivi (ogni regola (L) e (R) ha come pre-
messe sequenti il cui numero connettivi di tutte le formule `e stretta-
mente minore).
Questo signica che, essendo i due multiinsiemi niti, ad un certo livel-
lo dellalbero, i sequenti contengono formule senza connettivi e quindi
che sono variabili. Tali sequenti non appartengono ad o e dunque lal-
goritmo termina.
Da questo si pu`o concludere che, essendo lalbero trovato un albero
i cui nodi sono sequenti e per ogni nodo u il gli sono le premesse
di una qualche regola (L) o (R) che pu` o essere applicata ottenendo
come conclusione u oppure u `e una foglia e lassioma `e applicabile,
lalbero costruito dallalgoritmo `e una derivazione nita che
non utilizza la regola Cut e la radice di tale albero `e la conclusione
del sequente assunto valido nel teorema.
Una dimostrazione di questo tipo non `e applicabile al teorema di com-
pletezza per la deduzione naturale perche non esiste in quel caso un numero
nito di applicazioni di regole ad un sequente.
Il vantaggio di questa dimostrazione `e che `e costruttiva, ossia mostra come
eettivamente possa essere costruito il risultato del teorema, ossia la deriva-
zione.
La nozione di costruttivit`a verr` a ripresa nel prossimo capitolo in quanto mol-
to importante in proof theory.
Si noti come la dimostrazione del teorema di completezza mostri anche come
sia possibile fare a meno della regola del taglio per costruire una derivazione.
51
Capitolo 2
Logica intuizionista
La nozione di costruttivismo `e molto importante in proof theory. Una di-
mostrazione, o una denizione, `e costruttiva se mostra gli elementi per cui
lenunciato vale e solitamente se mostra o suggerisce un algoritmo per trovar-
li. Ad esempio nel caso del teorema di completezza per il calcolo dei sequenti,
la dimostrazione `e costruttiva perche non si limita a dimostrare che se un
sequente `e semanticamente valido allora esiste una derivazione, ma mostra
qual`e la derivazione associata ed un algoritmo per trovarlo. Nella dimostra-
zione del teorema di completezza per la deduzione naturale invece non viene
mostrata la derivazione, ma si prova soltanto che questa esiste.
Solitamente le dimostrazioni costruttive sono molto pi` u comprensibili di
quelle non costruttive (come le dimostrazioni per assurdo ad esempio) e sono
dunque di interesse per la proof theory. La logica intuizionista `e stata creata
appositamente per premettere soltanto questo tipo di dimostrazioni. Tale
logica ha origine dallintuizionismo, inventato dal matematico olandese Lui-
tzen Brouwer, che sosteneva che la logica matematica classica fosse troppo
lontana dal modo di pensare delluomo e che in generale la logica non debba
essere formalizzata, ma essere invece molto pi` u vicina al concetto di intuizio-
ne (da cui nasce il nome). Il matematico Arend Heyting, allievo di Brouwer,
decide invece di formalizzare la logica ispirandosi allintuizionismo, ossia uti-
lizzando solo la parte della logica pi` u vicina alla mente umana. Nasce cos`
la logica intuizionista. Come precedente detto, lidea di base `e proprio
quella di permettere solo dimostrazioni costruttive perche dimostrazioni non
costruttive sono tipicamente costituite solo da una serie di passi meccanici
che fanno solo tornare i conti senza spiegare perche mentre le dimostrazioni
costruttive mostrano meglio il motivo per cui unenunciato vale, cosa che
rende tale logica pi` u vicina al modo di pensare delluomo.
52
Per fare ci`o occorre modicare la semantica della logica. Infatti in logica
classica la semantica mostra come unica informazione il fatto che una for-
mula `e vera o falsa (ossia un valore di verit`a), ma non mostra una prova del
fatto che sia vera.
La logica intuizionista invece, ha una semantica costruttiva perche mostra
una o pi` u prove del fatto che una formula `e vera nel caso in cui lo sia.
Ne consegue che non tutte le formule che si possono dimostrare in logica clas-
sica possono essere dimostrate in logica intuizionista. Un esempio `e costituito
dal terzo escluso, ossia dalla classica tautologia . Questa formula ha
valore di verit`a sempre vero in logica classica, ma non `e vera in logica intui-
zionista perche non `e possibile trovare una dimostrazione per e una per
(a meno di non avere informazioni particolari su che permettono di
trovare una dimostrazione).
Questo avviene perche non si pu` o sostenere a priori che senza darne
una prova, ossia senza che sia chiaro se `e ad essere vera oppure .
La logica intuizionista `e dunque un sottoinsieme della logica classica perche
tutto ci` o che si pu` o dimostrare in logica intuizionista si pu` o dimostrare in
logica classica ma esistono formule dimostrabili in logica classica e non in
logica intuizionista (come ad esempio il terzo escluso, ed ingenerale formule
non dimostrabili costruttivamente). Questa perdita di potenza della logica `e
stata pensata appositamente per evitare dimostrazioni non costruttive.
Di fatto si pensi al terzo escluso , con = ho passato lesame. Chie-
dersi se `e vera la proposizione ho passato lesame o non lho passato darebbe
in logica classica la risposta `e vero, ma non `e chiaro il perche, ossia se `e vero
perche ho passato lesame o perche non lho passato.
2.1 Preliminari
Prima di leggere le sezioni successive, si consiglia di leggere questa breve in-
troduzione se non si ha famigliarit` a con linduzione sugli ordinali.
Il matematico Georg Cantor invent`o un meccanismo molto bizzarro che
consent`, servendosi della teoria degli insiemi, di contare in maniera imma-
ginaria tutti i numeri naturali no a raggiungere linnito e di superarlo
addirittura ricominciando a contare innito + 1, innito + 2 ecc.
Per fare ci`o, egli den` linsieme dei numeri ordinali.
Per denire tale insieme, si comincia denendo linsieme dei naturali in un
modo diverso dalla classica denizione fornita dagli assiomi di Peano.
Ogni numero ordinale `e denito come un insieme che contiene tutti i suoi
predecessori, ossia n = 0, . . . , n 1, e 0 `e linsieme vuoto.
53
0 =
1 = 0 =
2 = 0, 1 = ,
3 = 0, 1, 2 = , , ,
4 = 0, 1, 2, 3 = , , , , , , ,
. . .
La classica relazione dordine tra numeri naturali, pu` o qu` essere denita
utilizzando la relazione di inclusione insiemistica ,
ossia dati due ordinali a, b si ha che a b SSE a b.
Ad esempio 0 1, infatti (si ricordi che linsieme vuoto `e sottoin-
sieme di qualunque insieme).
Un altro esempio, tanto per convincerci che la relazione dordine sugli ordinali
`e analoga a quella denita sugli interi, 1 3, infatti , , ,
ed in generale la relazione `e analoga perche se c(n) `e la funzione che converte
un naturale in ordinale (ad esempio c(0) = ) allora
a b SSE c(a) c(b) in quanto
c(b) = c(a)
b1
i=a+1
c(i).
E importante vericare che esista unimportante propriet` a: il buon ordina-
mento.
Denizione 11. Un insieme ordinato (S, _) `e un insieme ben ordinato
se ogni suo sottoinsieme T ha un elemento e tale che e
T e
e
Un insieme ben ordinato `e dunque un insieme per cui esiste per ogni sot-
toinsieme un elemento minimo. Questa propriet` a `e importante se si vuole
utilizzare tale insieme nellinduzione. Infatti in un insieme ben ordinato, esi-
ste sempre un caso base, mentre in un insieme che non `e ben ordinato la
catena che porta a dimostrare una propriet`a dimostrandola prima per ele-
menti minori non terminerebbe mai. Ad esempio linsieme degli interi con
la classica relazione non `e ben ordinato perche esiste sempre un numero
negativo pi` u piccolo. Di fatto utilizzando linsieme ordinato (Z, ) in una
dimostrazione per induzione quale sarebbe il caso base? Non pu` o essere 0
perche 1 0, 2 1 e cos` via.
La relazione denita sugli ordinali `e un buon ordine e no a quanto
visto nora `e facile provarlo.
Ora essendo un ordinale un insieme che contiene tutti i suoi predecessori,
`e possibile costruire linsieme = N, ossia linsieme che contiene tutti i
naturali, supponendo che tale insieme contenga tutti i numeri naturali cos`
come deniti precedentemente.
54
E proprio questo il modo di raggiungere linnito. Tale insieme `e un ben
ordinato se munito della classica relazione essendolo (N, ). Ora `e possibile
superare linnito mantenendo il buon ordinamento!
Lordinale successore di `e + 1 = 0, 1, . . . , che `e ancora un buon
ordine e di fatto utilizzando sempre linclusione come relazione dordine `e
facile mostrare che + 1. La cosa interessante `e che si pu` o procedere
mantenendo lo stesso buon ordine nello stesso modo per + 2, + 3 no a
+ = 0, 1, . . . , , +1, +2, . . . , +1 = 2. Si pu` o dimostrare che
si pu`o contare oltre, raggiungendo
2
e mantenendo il buon ordinamento.
Tutto ci` o pu`o essere fatto no a raggiungere
.
2.2 Sintassi
La sintassi della logica intuizionista proposizionale `e molto simile a quella
della logica classica, ma con qualche piccola dierenza.
::= A [ V ariabile proposizionale
[ Congiunzione di formule
[ Disgiunzione di formule
[ Implicazione
Falso
Le precedenze degli operatori e le associativit`a sono le stesse della logica
classica. La negazione non `e pi` u un connettivo primitivo (perche con la
negazione si hanno nei sistemi di deduzioni possibilit` a di fare dimostrazioni
per assurdo e dunque non costruttive) e compare lelemento . La semantica
informale di una formula `e che `e un insieme di prove (dimostrazioni)
della verit` a di . Cos` ad esempio `e un insieme di tutte le coppie il
cui primo elemento `e una prova di e il secondo una prova di .
Informalmente (che denota lequivalente del falso nella logica classica)
indica lassenza di prove.
Esistono dunque alcune particolari propriet` a della logica intuizionista
56
La negazione pu` o essere introdotta con la seguente regola sintattica
=
Tutti i connettivi presenti nella sintassi sono primitivi. Si ricordi che
in logica classica dati (oppure ) e tutti gli altri connettivi erano
derivabili a partire da questi due. Nella logica intuizionista anche il
connettivo `e primitivo, ossia = (di fatto si ricordi
che provare `e impossibile mentre provare `e possibile).
= (negazione non idempotente): questa uguaglianza non `e pi` u
vera. In particolare
`e una formula valida perche `e provabile. Infatti tale
formula va interpretata nel seguente modo: se esiste una prova per
una formula allora il fatto che non `e dimostrabile (in formule
), non pu`o essere dimostrato (in formule ). Di fatto questo
`e vero perche per provare che non `e provabile occorre mostrare
che non esistono prove per ma se ne `e esibita una (per ipotesi).
, perche questo signica: se non si pu`o provare che non
esiste nessuna prova per allora `e `e vera. Questo in eetti `e
vero (infatti tale formula `e vera in logica classica), ma la dimostra-
zione appena fatta non `e costruttiva perche non `e stata mostrata
nessuna prova per .
.
Molte delle propriet`a della logica classica vengono perse. Ad esempio
un teorema di De-Morgan non sono pi` u validi.
In generale si pensi alla logica classica come una logica che interpreta una
formula come, `e vera oppure falsa mentre la logica intuizionista come
una logica che interpreta come `e vera se esiste una prova che lo attesta,
altrimenti si pu` o solo dire che `e noto che non esistono prove per essa. In
generale in logica intuizionista, conviene vedere una formula del tipo
come Non esiste una prova per piuttosto che `e falsa, formule del tipo
come Esiste una prova sia per che per , ed in generale andrebbe
interpretata come Esiste una prova per piuttosto che `e vera.
2.3 Sistemi di deduzione
Forniremo prima i sistemi di deduzione per la logica intuizionista e successi-
vamente la semantica, che `e pi` u complicata di quella della logica classica.
57
Inoltre si vedr` a come i sistemi di deduzione permettono di creare solo dimo-
strazioni costruttive. Verr` a in seguito mostrata una semantica che permette
di avere la correttezza e completezza per i sistemi di deduzione dati.
I sistemi di deduzione che verranno mostrati sono le versioni intuizioniste
dei due sistemi precedentemente dati: deduzione naturale e calcolo dei
sequenti. Siccome in logica intuizionista `e molto pi` u pratico utilizzare la
deduzione naturale, sar` a il primo che verr` a mostrato ed anche quello pi` u
utilizzato in questo capitolo.
2.3.1 Deduzione naturale
Il sistema di deduzione naturale `e simile a quello per la logica classica, ma
le regole (E) e (I) viene eliminata e non `e pi` u derivabile in quando la
negazione non `e idempotente, ossia = , e perche si vuole eliminare la
negazione (che non `e neanche primitiva) dal sistema di deduzione.
Prima di fornire le regole di inferenza, occorre ridenire il sequente.
Denizione 12. Un sequente `e una coppia
Dove `e una lista (eventualmente vuota) di formule e un formula
Quello che cambia dalla logica classica, `e che il sequente `e una lista di
formule e non un multiinsieme, per cui ad esempio il sequente , , `e
diverso da , , .
58
Identita
(Ax)
Regole strutturali
, , ,
(X)
, , ,
(W)
,
, ,
(C)
,
Regole logiche
(I)
,
1
2
(E
i
)
i
,
( I)
( E)
,
i
(I
i
)
1
2
, ,
(E)
,
()
Si noti che nelle regole logiche (quelle di introduzione ed eliminazione)
con pi` u premesse appaiono ora contesti diversi per le varie premesse. Ad
esempio nel caso della regola (I) le premesse sono e , se queste
sono derivabili, `e derivabile ma dallunione dei due contesti. Le regole
logiche in cui appaiono diversi contesti nei sequenti delle premesse, che appa-
iono anche nel contesto della conclusione (come nel caso dellintroduzione del
) sono dette regole moltiplicative, mentre le regole in cui ci` o non accade
(come per ND in logica classica) sono dette regole additive. In ogni caso
le regole moltiplicative sono equivalenti a quelle additive nel senso che non
aggiungono potenza al sistema di deduzione, `e piuttosto una questione di
stile (o di comodit` a).
Le regole strutturali sono invece regole che manipolano principalmente
il contesto e non gestiscono in nessun modo i connettivi delle formule, ossia
sono nalizzate esclusivamente alla manipolazione del contesto o del sequente
59
in generale
1
.
La regola dellexcange (X), mostra come qualunque sia lordine delle formule
nel contesto, essa possa essere cambiato. Infatti, con unapplicazione ripetuta
di questa regola si pu` o cambiare in qualsiasi modo lordine delle formule nel
contesto. Per questo motivo i sequenti verranno trattati come multiinsiemi
cos` come nella logica classica. Ad esempio mostreremo derivazioni come la
seguente
(Ax)
(Ax)
(I)
,
Al posto della derivazione completa
(Ax)
(Ax)
(I)
,
(X)
,
In generale si tender` a ad ignorare tale regola anche nelle dimostrazioni, in
quanto si tratta di un caso banale.
La seconda regola strutturale `e la regola di weakening (W), che evita cos`
di dover dimostrare lomonimo lemma.
Lultima regola strutturale `e la contraction (C), in cui si possono eliminare
duplicati di una stessa formula.
Lultima regola degna di nota `e lassioma (Ax), che dierisce da quella della
logica classica dal fatto che il contesto del sequente contiene ununica formu-
la, che `e la stessa di quella presente nella parte destra del sequente.
Questo impedisce di dimostrare il lemma di weakening per induzione strut-
turale dato che il caso base non pu`o essere provato (ossia `e derivabile
utilizzando lassioma, ma , non lo `e). Tuttavia il lemma di weakening
segue immediatamente dal fatto che `e presente lomonima regola nel sistema.
Di fatto lassioma della logica classica `e comunque derivabile, ossia per deri-
vare , basta eettuare la seguente derivazione
(Ax)
========= (W)
,
1
La regola ( I) ad esempio manipola il sequente, incluso il contesto da cui elimina
una formula, ma questo `e nalizzato alla gestione di un connettivo
60
Si noti che la doppia linea nella derivazione denota lapplicazione multipla
di una stessa regola. In questo caso indica che il weakening viene applicato
un numero eventualmente indeterminato di volte (in questo caso, la regola
viene applicata tante volte quante sono le variabili in , ma in generale non
`e necessario conoscere il numero di volte, la doppia linea denota soltanto che
verr` a applicata una numero indeterminato di volte - potrebbe addirittura
non venire applicata in alcuni casi).
Tutti questi cambiamenti al sistema di deduzione naturale, sono stati fatti
per mostrare come sia possibile formulare tali sistemi in diverse forme, ma
soprattutto perche `e la formulazione che meglio si adatter` a ad estendere la
logica intuizionista con il sistema della logica lineare.
Vediamo ora come derivare il sequente , lunico lato valido in
logica intuizionista della biimplicazione ).
Per prima cosa, si ricordi che = e si noti che non si tratta
di unuguaglianza semantica, ma sintattica, ossia la forma `e solo
unabbreviazione per . Trattandosi di unuguaglianza sintattica, `e
possibile rappresentare il sequente da dimostrare come
(( ) ). Segue la derivazione
(Ax)
(Ax)
( E)
,
( I)
((( ) )
( I)
((( ) )
Si ricordi che sorprendentemente la tautologia vale
anche in logica intuizionista.
Proveremo prima un lato dellimplicazione poi laltro.
Segue la derivazione per il lato destro
(Ax)
(Ax)
( ) ( )
( E)
, ( )
( I)
(( ) ) )
( I)
Segue la derivazione per il lato sinistro
61
(Ax)
(( ) )
: , , ,
====================== (C)
,
( I)
( )
( E)
,
================================================================= (C)
= (( ) ) ,
==================================================================== ( I)
Nella regola di contrazione pi` u in alto, appare il sequente con un an-
teposto. Questa notazione indica che tale sequente `e derivabile tramite la
derivazione . In generale verr`a denotato nel seguito
:
come la derivazione per il sequente .
La derivazione `e la seguente
(Ax)
================== (W)
,
(Ax)
=========== (W)
,
( E)
, , ,
Il sistema di deduzione naturale presentato potrebbe anche essere compo-
sto con regole additive. Ogni regola moltiplicativa pu` o essere derivata dalla
sua versione additiva e viceversa.
La regola di introduzione del della logica classica (che chiamiamo I
A
)
che `e la seguente
(I
A
)
pu` o essere ottenuta tramite la seguente derivazione nella versione molti-
plicativa della deduzione naturale
(I)
,
=============== (C)
mentre la regola moltiplicativa
62
(I)
,
pu` o essere derivata da quella additiva tramite la seguente derivazione
======= (W)
,
======= (W)
,
(I
A
)
,
Naturalmente anche per le altre regole esiste lequivalenza tra la loro ver-
sione moltiplicativa e quella additiva.
Ora verranno enunciati due teoremi (ed un lemma) che avranno una gran-
de importanza nel prossimo capitolo perche sono gli strumenti principali per
mettere in relazione la logica con la programmazione.
Denoteremo con
NJ
0
il fatto che il sequente `e derivabile nel
sistema di deduzione naturale per la logica intuizionista.
Enuncieremo ora un lemma di grande importanza.
Con la notazione
(n)
intenderemo la lista di formule , . . . , dove appare
n volte con n 0. Ad esempio
(3)
= , , mentre (, )
(2)
= , , , .
Lemma 5 (Sostituzione).
1
: ,
(n)
e
2
: S
n
(
1
,
2
) : ,
(n)
Con n 0.
In altre parole se esiste una derivazione
1
per il sequente ,
(n)
ed
esiste una derivazione
2
per , allora esiste una derivazione S
n
(
1
,
2
)
per la formula che sostituisce nel sequente derivato da
1
n occorrenze di
con quelle di .
Si noti che non `e necessario sostituire tutte le occorrenze di nel contesto
del sequente derivato da
1
con . Ad esempio per sostituire due occor-
renze di in un sequente che ne ha tre, basta scrivere il sequente deri-
vato da
1
nella forma , ,
(2)
e per il lemma si ha la derivazione
S
2
(
1
,
2
) : , ,
(2)
, se esiste
2
. Se invece si vogliono sostituire tutte
e tre le occorrenze di basta scrivere il sequente nella forma ,
(3)
ed
applicare il lemma ottenendo la derivazione
S
3
(
1
,
2
) : ,
(3)
.
La dimostrazione di questo teorema `e costruttiva ed `e molto importante
in quanto mostra come costruire la derivazione S
n
(
1
,
2
).
63
Dimostrazione. Per induzione sulla struttura di
1
.
(Ax): esistono due casi
1. la derivazione
1
`e la seguente
(Ax)
Esistono due ulteriori casi
(a) = , occorre dimostrare che
1
:
(1)
e
2
: S
1
(
1
,
2
) :
(1)
deve esistere una derivazione S
1
(
1
,
2
) : , ma quella
derivazione `e proprio
2
(data per ipotesi).
(b) = , occorre dimostrare che
1
: ,
(0)
e
2
: S
0
(
1
,
2
) : ,
(0)
deve esistere una derivazione S
0
(
1
,
2
), ma quella derivazione
`e proprio
1
(si ricordi che ,
(0)
= ).
2. la derivazione
1
`e la seguente
(Ax)
con = .
Occorre dimostrare che
1
: ,
(0)
e
2
: S
0
(
1
,
2
) : ,
(0)
ma S
0
(
1
,
2
) esiste ed `e proprio
1
.
(W): esistono due casi
1. la derivazione
1
`e la seguente
3
: ,
(n1)
(W)
,
(n)
In questo caso viene introdotta la formula nel weakening. Per
ipotesi induttiva
3
: ,
(n1)
e
2
: S
n1
(
3
,
2
) : ,
(n1)
64
Ma le ipotesi di questa implicazione sono soddisfatte in quanto la
prima `e data dalla derivazione
3
mostrata e la seconda `e data
per ipotesi del teorema per cui si pu`o concludere che esiste la
derivazione S
n1
(
3
,
2
). La derivazione S
n1
(
1
,
2
) `e la seguente
S
n1
(
3
,
2
) : ,
(n1)
===================== (W)
,
(n)
2. la derivazione
1
`e la seguente
3
: ,
(n)
(W)
, ,
(n)
Per ipotesi induttiva si ha S
n
(
3
,
2
) : ,
(n)
e la derivazione
S
n
(
1
,
2
) `e la seguente
S
n
(
3
,
2
) : ,
(n)
(W)
, ,
(n)
(C): esistono due casi
1. La derivazione
1
`e la seguente
3
: ,
(n)
, ,
(C)
,
(n)
,
Per ipotesi induttiva esiste S
n
(
3
,
1
) : ,
(n)
, , , per cui
la derivazione S
n
(
1
,
2
) esiste ed `e la seguente
S
n
(
3
,
1
) : ,
(n)
, ,
(C)
,
(n)
,
2. La derivazione
1
`e la seguente
3
: ,
(n+1)
(C)
,
(n)
Con . Per ipotesi induttiva esiste
S
n+1
(
3
,
1
) : ,
(n+1)
, per cui la derivazione S
n+1
(
1
,
2
)
esiste ed `e la seguente
S
n+1
(
3
,
2
) : ,
(n+1)
===================== (C)
,
(n)
65
(I): la derivazione
1
`e la seguente
3
: ,
(n
1
)
4
:
,
(n
2
)
(I)
,
,
(n)
Con n = n
1
+ n
2
. Applicando le ipotesi induttive
2
si ottengono le
derivazioni
S
n
1
(
3
,
2
) : ,
(n
1
)
Sn
2
(
4
,
2
) :
,
(n
2
)
La derivazione S
n
(
1
,
2
) `e dunque la seguente
S
n
1
(
3
,
2
) : ,
(n
1
)
S
n
2
(
4
,
2
) :
,
(n
2
)
(I)
,
,
(n)
( I): la derivazione
1
`e la seguente
3
: ,
(n)
,
( I)
,
(n)
Per ipotesi induttiva si ottiene S
n
(
3
,
2
) : ,
(n)
, e quindi si
pu` o concludere che la derivazione S
n
(
1
,
2
) esiste. Si noti che non
occorre trattare come caso particolare = perche in ogni caso
non viene coinvolta nella sostituzione.
La dimostrazione per tutte le altre regole logiche `e analoga a quelle di
queste due e per (X) la dimostrazione `e immediata.
Da questo teorema, segue che la derivazione S
n
(
1
,
2
) `e ottenuta da
1
sostituendo gli assiomi per sequenti nella forma con le derivazioni per
il sequente quando necessario e con laggiunta in alcuni casi di regole
di weakening o contrazione addizionali. Si noti che in ogni caso le uniche
regole responsabili del cambiamento della derivazione sono quelle strutturali
e lassioma.
2
Si noti che lemmi come questo, permettono di ottenere come ipotesi induttiva una
implicazione A B (dove in questo caso A `e costituita dallesistenza delle due deri-
vazioni). Per concludere B occorre che A sia soddisfatta, ma in casi come questo A `e
banalmente soddisfatta (per ipotesi del lemma) e quindi talvolta si concluder`a diretta-
mente la conseguenza B, che in questo caso `e ad esempio per la prima ipotesi induttiva
S
n
1
(
1
,
2
) : ,
(n
1
)
66
Per semplicit` a, in assenza di ambiguit` a denoteremo con S(
1
,
2
) la deriva-
zione S
n
(
1
,
2
).
Si noti che il lemma di sostituzione suggerisce una nuova regola derivata
,
(n)
(Subs)
,
(n)
dove ovviamente ogni derivazione che utilizza la regola di sostituzione
pu` o sempre essere sostituita con la derivazione S(
1
,
2
) dove
1
e
2
sono le
derivazioni che costituiscono le premesse.
Il prossimo risultato verr`a ottenuto dalla seguente osservazione: esisto-
no innite derivazioni di una formula logica in deduzione naturale. Infatti,
data una qualsiasi derivazione, `e possibile aggiungere in qualsiasi punto una
regola di introduzione seguita da una di eliminazione dello stesso connettivo
preservando la sua correttezza sintattica.
Ad esempio, data una derivazione
:
. . .
(R)
Dove . . . indica il fatto che possono esistere ulteriori premesse, esiste la
seguente derivazione
: :
(I
M
)
(E
2M
)
Per semplicit` a sono state utilizzate le regole additive, ma il caso molti-
plicativo `e simile. Si noti che si pu` o iterare questo passo a piacere ottenendo
innite derivazioni per la stessa formula. Di fatto introdurre un connettivo
per poi eliminarlo `e un passo inutile in quando porta allo stesso sequente (o
quasi) di cui si disponeva prima di tali mosse e quindi si tratta di una mossa
non necessaria. Si vorrebbe trovare un metodo per eliminare tutti questi pas-
si inutili in modo tale da ottenere una derivazione di cui `e possibile studiare
alcune propriet`a importanti. Formalizziamo ora quanto detto.
Denizione 13. Un detour `e una parte di derivazione in cui una regola
di introduzione di un connettivo C `e immediatamente seguita da una regola
di eliminazione dello stesso connettivo C sulla stessa formula, oppure in cui
una regola di weakening `e immediatamente seguita da una di contrazione
sulla stessa formula.
67
Denizione 14. Una derivazione `e in forma normale se non contiene
detour.
Teorema 10. Se un sequente `e derivabile, allora esiste una derivazione in
forma normale per quel sequente.
Lidea di base per dimostrare questo teorema `e quella di denire una tra-
sformazione che, partendo da una derivazione con detour, ne elimini uno.
Chiameremo passo elementare di normalizzazione lapplicazione della
trasformazione che elimina un detour.
Una volta denita la trasformazione verr` a fornito un algoritmo che, applican-
do i passi di normalizzazione con un determinato criterio, termina portando
una qualsiasi derivazione in forma normale. Tale algoritmo `e detto algorit-
mo di normalizzazione.
Denoteremo con ;
.
La trasformazione `e la seguente
1
:
2
:
(I)
,
(E)
,
1
:
======== (W)
,
Si noti che le due derivazioni mostrate sono in realt` a parte delle de-
rivazioni da cui il detour viene rimosso. Ad esempio la derivazione
ottenuta, scritta in forma completa pu` o essere
1
:
======== (W)
,
(R)
. . .
ossia la derivazione pu` o proseguire verso il basso (dove (R) `e una qual-
siasi regola). Questo `e importante perche il passo di normalizzazione
elimina un detour in qualsiasi punto della derivazione (ma mostreremo
solo la parte di derivazione di interesse).
1
:
(I)
2
: ,
3
: ,
(E)
,
;
S(
2
,
1
)
68
Si noti che questo `e lunico tipo di detour con perche se lintroduzione
fosse applicata alla seconda o alla terza premessa non sarebbe sulla
stessa formula.
1
: ,
( I)
2
:
( E)
,
;
S(
1
,
2
)
W/C
: ,
(W)
, ,
(C)
,
1
: ,
( I)
2
:
( E)
,
; S(
1
,
2
)
Se nella derivazione
2
ci sono n detour e S(
1
,
2
) `e stata ottenuta da
1
sostituendo m assiomi con
2
(con n, m sucientemente grandi) allora la
derivazione ottenuta conterr` a i detour di
1
pi` u n m detour (la sostituzio-
ne non rimuove detour), che sono pi` u di quelli della derivazione di partenza
che sono il numero di detour di
1
pi` u n + 1 (senza contare la parte della
derivazione sotto il detour eliminato che rimane invariata). Ad esempio
1
potrebbe avere come prima regola dalla radice della derivazione una contra-
zione su , seguita da un I le cui premesse hanno come foglie in totale due
69
assiomi con . La sostituzione comporta come causa la sostituzione in m = 2
assiomi che aggiunge 2 n detour a
1
.
Inoltre, anche se il detour da eliminare `e lunico rimasto, tramite la sostituzio-
ne di un assioma con una derivazione, se la regola che segue immediatamente
lassioma `e di eliminazione e lultima regola della derivazione sostituita `e di
introduzione si genera un nuovo detour. Quindi scegliere come misura della
derivazione il numero di detour non funziona perche qualunque sia la strate-
gia di scelta del detour da eliminare, la derivazione ottenuta con un passo di
normalizzazione pu` o contenere nuovi detour.
Si costruisce dunque una misura delle derivazioni costituita da una coppia.
Denizione 15. Il grado di una formula (denotato con d()) `e il numero
dei suoi simboli.
d(A) = d() = 1
d( ) = d() + d() + 1
con un qualsiasi connettivo.
Denizione 16. La formula principale di un detour `e la conclusione della
sua regola di introduzione.
Denizione 17. La ridondanza massimale di una derivazione `e la ri-
dondanza (ossia il detour) la cui formula principale ha il grado pi` u elevato.
Se tale grado `e m la ridondanza ha misura m.
Deniamo dunque la misura di una derivazione come
M() =< m, n >
dove m `e la misura della ridondanza massimale e n il numero di ridondanze
massimali.
Su tale coppia vi `e lordine lessicograco denito quando si `e stata denita
linduzione doppia (vedere la sezione riguardo linduzione sugli ordinali).
Una derivazione in forma normale ha misura < 0, 0 > perche questo signica
proprio che non ha ridondanze massimali e quindi non ha ridondanze (oppure
si pu`o anche dire che la ridondanza massimale ha misura 0, e quindi non
esiste).
Teorema 11. Sia : tale che M() ~< 0, 0 >, allora esiste una
derivazione
: tale che M(
) M().
Dimostrazione. Lalgoritmo di normalizzazione in un passo elementare sele-
ziona una ridondanza che non ne contenga altre massimali nei suoi sottoal-
beri. Questa scelta `e sempre possibile perche la derivazione `e nita.
70
Data una qualsiasi derivazione con M() ~< 0, 0 >, verranno elencati
tutti i possibili casi di ridondanza sotto lipotesi che la ridondanza mostrata
sia quella scelta dallalgoritmo (e che quindi non contenga altre ridondan-
ze massimali), mostrando solo la parte della derivazione che contiene la
ridondanza massimale scelta e i suoi sottoalberi. Verr` a mostrata anche la
derivazione
1
:
2
:
(I)
,
(E)
,
1
:
======== (W)
,
) =< m
, n
< m e quindi M(
) M().
2. contiene altre ridondanze massimali: allora si `e rimossa una ri-
dondanza massimale comunque senza aggiungere altre ridondanze
(come detto precedentemente), allora n
= n 1 e m = m
, per
cui M() M(
).
:
1
:
(I)
2
: ,
3
: ,
(E)
,
:
S(
2
,
1
)
1
non contiene ridondanze massimali (altrimenti sarebbero state
selezionate prima quelle).
71
2. Durante la sostituzione di
1
con gli assiomi per si genera-
no nuove ridondanze: questo pu` o accadere se la regola che segue
lassioma `e di eliminazione e lultima regola in
1
`e di introduzione
dello stesso connettivo. Ma la formula principale di tale ridondan-
za `e (la sostituzione dellassioma preserva la formula a destra
del sequente) mentre la formula principale della ridondanza da eli-
minare `e . Quindi d() < d( ) per cui anche queste
ridondanze introdotte non sono massimali.
Quindi la sostituzione non aggiunge ridondanze massimali, per cui,
come nel caso precedente suddividendo nei due casi (`e stata rimossa
lunica ridondanza massimale oppure ce ne sono ancora) si ha
M(
) M().
1
: ,
( I)
2
:
( E)
,
;
S(
1
,
2
)
) M().
W/C
:
1
: ,
(W)
, ,
(C)
,
) M().
Teorema 12 (Normalizzazione debole). Data una derivazione :
con M() ~< 0, 0 >, lalgoritmo di normalizzazione che elimina ad ogni
passo un detour che non contiene ridondanze massimali termina nitamente
producendo una derivazione
: con M(
) =< 0, 0 >.
72
Dimostrazione. Per il teorema 11 applicando un passo di normalizzazione
con lalgoritmo dato nella dimostrazione di tale teorema, `e possibile ottenere
una derivazione
) M(). Sicco-
me ogni misura M() =< m, n > di una derivazione `e tale che m ed n
sono niti (perche una formula ha grado nito ed esistono nite ridondanze
in essa essendo la derivazione nita) `e possibile applicare iterativamente il
passo di normalizzazione raggiungendo nitamente la derivazione
tale che
M(
) =< 0, 0 >.
In realt` a, non `e necessario selezionare il detour che non contenga ridon-
danze massimali, come enunciato dal seguente teorema.
Teorema 13 (Normalizzazione forte). Data una derivazione :
con M() ~< 0, 0 >, qualunque sia la scelta del detour a cui applicare un
passo di normalizzazione lalgoritmo di normalizzazione termina nitamente
producendo una derivazione
: con M(
) =< 0, 0 >.
La dimostrazione di questo teorema verr` a data nel prossimo capitolo an-
che se ristretta al caso delle sole regole di introduzione ed eliminazione del-
limplicazione ed assioma.
2.3.2 Calcolo dei sequenti
Il calcolo dei sequenti per la logica intuizionista, `e molto simile a quello della
logica classica, ma con la dierenza che la denizione di sequente `e uguale a
quella data nella sezione precedente, ossia la sua parte sinistra `e una lista di
formule e la parte destra contiene una sola formula. Il sistema `e il seguente
73
Identita
(Ax)
Regole strutturali
, , ,
(X)
, , ,
(W)
,
, ,
(C)
,
Regole logiche
,
i
(L
i
)
,
1
2
(R)
,
,
( L)
, ,
,
( R)
, ,
(L)
, ,
i
(R
i
)
1
2
()
Cut
,
(Cut)
,
Questo sistema di deduzione `e sostanzialmente la versione moltiplicativa
del calcolo dei sequenti in logica naturale. Naturalmente anche in questo
caso regole moltiplicative e additive sono equivalenti ed `e facile provarlo. Si
noti che cambia la regola (L): questo torner` a utile pi` u avanti. In ogni caso
la regola sinistra di della logica intuizionista `e equivalente a quella della
logica classica. Infatti si hanno le seguenti traduzioni (dove (LC) indica la
regola sinistra per in logica classica):
74
: ,
i
(L
i
)
,
1
2
;
: ,
i
(W)
,
1
,
2
(LC)
,
1
2
, ,
(LC)
,
;
, ,
(L
2
)
, ,
(L
1
)
, ,
(C)
,
Si noti che anche la versione del Cut `e moltiplicativa in questo sistema.
Indicheremo con
NJ
0
il fatto che il sequente `e derivabile in
deduzione naturale e con
LJ
0
il fatto che `e derivabile con il calcolo dei
sequenti.
Proveremo ora lequivalenza del sistema di deduzione naturale con il calcolo
dei sequenti come fatto per la logica classica.
Teorema 14.
NJ
0
LJ
0
i
la deriva-
zione equivalente in calcolo dei sequenti ottenuta per ipotesi induttiva.
Per le regole per cui esiste una regola uguale (eventualmente con nome di-
verso) nel calcolo dei sequenti, la corrispondenza `e immediata e quindi verr` a
data immediatamente la corrispondenza tra le due regole senza mostrare le
derivazioni (i casi delle regole strutturali e dellassioma sono banali in quanto
tali regole sono identiche nei due sistemi).
(I)
NJ
0
; (R)
LJ
0
(I)
NJ
0
; (R)
LJ
0
( I)
NJ
0
; ( R)
LJ
0
75
1
:
(E)
NJ
0
;
1
:
(L
1
)
LJ
0
(Cut)
LJ
0
1
:
2
:
( E)
,
NJ
0
;
1
:
2
:
(Ax)
LJ
0
( L)
,
LJ
0
(Cut)
,
LJ
0
1
:
2
: ,
3
: ,
(E)
,
NJ
0
;
1
:
1
: ,
2
: ,
(C su +L)
,
LJ
0
(Cut)
,
LJ
0
Teorema 15.
LJ
0
NJ
0
1
:
2
: ,
(Cut)
,
LJ
0
;
2
: ,
(1)
1
:
(Subs)
(1)
,
NJ
0
76
1
: ,
i
(L
i
)
,
1
2
LJ
0
;
1
: ,
(1)
i
(Ax)
i
j
i
j NJ
0
(E
i
)
i
j
i NJ
0
(Subs)
,
1
2
NJ
0
i = j
1
:
2
: ,
( L)
, ,
LJ
0
;
2
: ,
(1)
(Ax)
1
:
( E)
,
NJ
0
(Subs)
, ,
NJ
0
1
: , ,
(L)
, ,
LJ
0
;
(Ax)
NJ
0
1
: ,
========== (W)
, ,
NJ
0
2
: ,
========== (W)
, ,
NJ
0
(E)
, ,
NJ
0
Ora che `e stata dimostrata lequivalenza dei due sistemi di deduzione, `e
necessario focalizzarsi sui due algoritmi che ci saranno particolarmente utili
in seguito: normalizzazione ed eliminazione del taglio (ossia del cut).
Il primo algoritmo `e globale, ossia tende a modicare lintera derivazione su
cui `e applicato modicando gli assiomi e propagando la modica del loro
contesto in tutta la derivazione. Non verr`a trattata la normalizzazione per
il calcolo dei sequenti, ma leliminazione del taglio, il cui obiettivo e quello
di eliminare tutti i cut da una derivazione, che `e invece unoperazione locale
77
in quanto lalgoritmo sposta i cut verso le foglie della derivazione a cui `e
applicato per poi eliminarli, ma senza propagare le modiche alla parte di
derivazione pi` u vicina alla radice ed in generale modicando soltanto una
piccola parte di derivazione locale al cut.
Lesistenza dellalgoritmo di eliminazione del taglio prova ovviamente che il
cut `e una regola derivata (come in logica classica) siccome ad ogni derivazio-
ne con cut lalgoritmo ne produce una equivalente (per lo stesso sequente)
ma cut-free.
Prima di fornire lalgoritmo di eliminazione del taglio, occorre dare alcune
denizioni preliminari
Denizione 18. La misura di un cut `e una coppia < m, n > tale che m
`e il grado della formula tagliata e n `e il numero di nodi delle premesse del
cut.
La formula tagliata dal cut `e quella che sparisce passando dalle premesse
di tale regola alle sue conclusioni. Osservando la regola del cut denita
quando `e stato mostrato il calcolo dei sequenti per la logica intuizionista, la
formula tagliata `e . Quindi se
1
e
2
sono le derivazioni che portano alle
premesse del cut, e N() `e il numero di nodi di una derivazione (inclusa la
radice), allora un cut ha misura < d(), N(
1
) + N(
2
) >.
Sulla misura di un cut `e denito il classico ordine lessicograco tra coppie
dato quando si parlava di induzione sugli ordinali.
In realt` a, non si riesce a dimostrare leliminazione del cut (il motivo verr`a
spiegato nel caso della contrazione nella dimostrazione del teorema che verr` a
enunciato a breve) per cui viene introdotta una regola detta multicut
,
(n)
(Mix)
,
Questa regola `e derivata in quanto equivalente allapplicazione ripetuta di n
cut nel modo seguente
,
(n)
(Cut)
, ,
(n1)
(Cut)
, , ,
(n2)
===================================== (Cut)
(n)
,
========================================== (C)
,
oppure ottenuta applicando una contrazione alla premessa che contiene le n
occorrenze di nel contesto e poi applicando il cut.
78
La denizione di misura di un multicut `e la stessa di quella mostrata per il
cut.
Teorema 16. Sia : tale che non `e multicut-free allora esiste una
derivazione
che ha qualche
multicut in meno oppure che in generale ha qualche multicut la cui misura
diminuisce. Quindi lapplicazione iterativa di questo teorema mostra come
prima o poi tutti i multicut spariscono ottenendo una derivazione multicut-
free.
Ovviamente leliminazione del taglio `e un caso particolare delleliminazione
del multicut con n = 1.
Dimostrazione. Esiste un algoritmo di eliminazione del taglio che sposta ad
ogni passo uno dei cut pi` u vicini alle foglie dellalbero ancora pi` u verso le
foglie. Tale passo elementare di eliminazione del taglio `e denito nel modo
seguente (elencando tutte le possibili parti di derivazione con un cut)
Una delle premesse del cut `e un assioma
1. (Ax) a sinistra
(Ax)
: ,
(n)
(Mix)
,
;
: ,
(n)
=========== (C)
,
;
:
79
Lassioma a destra deve necessariamente essere di questa forma
perche deve occorrere la formula tagliata nel contesto del suo se-
quente e siccome il contesto deve avere una ed una sola formula
per poter applicare lassioma, quella deve essere proprio .
Inoltre, se la premessa destra del multicut `e un assioma, occorre
una ed una sola volta nel contesto e quindi il multicut pu` o soltanto
essere un cut.
Anche in questo caso il cut nella nuova derivazione scompare ed
ha dunque misura < 0, 0 >.
La formula tagliata occorre nelle premesse delle premesse del multicut
nello stesso lato del sequente in cui occorre nelle rispettive conclusioni
e con la stessa occorrenza, ossia la formula non `e stata introdotta dalle
regole (R
1
) e (R
2
).
. . .
1
:
. . .
(R
1
)
. . .
2
:
,
(n)
. . .
(R
2
)
,
(n)
(Mix)
,
1
:
2
:
,
(n)
(Mix)
. . .
. . .
(R
2
)
. . .
, . . .
(R
1
)
,
Dove (R
i
) denota una generica regola e i puntini (. . .) nelle sue premes-
se indicano la possibile esistenza di altre derivazioni.
Lidea di base `e che se la formula esisteva gi` a prima delle premesse del
multicut, allora poteva essere tagliata anche prima spostando cos` il
multicut verso le foglie.
Analizziamo ora come vengono applicate le regole R
1
ed R
2
nella deri-
vazione ottenuta spostando il multicut verso le foglie.
Dalla premessa
, tramite R
2
. Questo `e possibile dato che da
, (ed
eventualmente altre premesse) si ottiene , . Infatti ci` o che cam-
bia nelle due applicazioni della regola `e il fatto che `e stata sostituita
con
, ma (R
2
) per come `e stata applicata agisce (ossia modica)
80
eventualmente su
verrebbero modicati.
Analogamente R
1
agisce su
. . .
(R)
2
: ,
(n)
(Mix)
,
1
:
2
: ,
(n)
(Mix)
. . .
, . . .
(R)
,
=< d(), N(
1
) + N(
2
) > e quindi M
M.
2. occorre a destra
1
:
. . .
2
:
,
(n)
. . .
(R)
,
(n)
(Mix)
,
1
:
2
:
,
(n)
(Mix)
. . . ,
. . .
(R)
,
=< d(), N(
1
) + N(
2
) >
e quindi M
M.
La formula tagliata non esisteva prima delle premesse del multicut op-
pure esisteva con unoccorrenza minore.
In questultimo caso non si pu` o spostare il cut a priori, ma occorre
specicare un caso per ogni regola
(W)
1
:
2
: ,
(n1)
(W)
,
(n)
(Mix)
,
1
:
2
: ,
(n1)
(Mix)
,
82
Il multicut nella prima derivazione ha misura
< d(), N(
1
) + N(
2
) + 1 > mentre nella seconda ha misura
< d(), N(
1
) + N(
2
) >.
Ma se n 1 = 0 il multicut non `e applicabile nella seconda
derivazione, ed in tal caso la derivazione ottenuta `e
2
:
======== (W)
,
1
:
2
: , ,
(C)
,
(Cut)
,
1
:
1
:
2
: , ,
(Cut)
, ,
(Cut)
, ,
=========================================== (C)
,
1
:
2
: ,
(n+1)
(C)
,
(n)
(Mix)
,
1
:
2
: ,
(n+1)
(Mix)
,
1
:
2
:
(R)
3
: , ( )
(n1)
,
(L)
, ( )
(n)
(Mix)
1
:
1
:
2
:
(R)
3
: , ( )
(n1)
,
(Mix)
, ,
(Mix)
,
============================================================== (C)
1
:
3
: ,
(Mix)
,
========================== (W)
1
: ,
( R)
2
:
, ( )
(n
1
)
3
:
, ( )
(n
2
)
,
( L)
, ( )
(n)
(Mix)
,
Con n
1
+ n
2
= n 1.
Il multicut nella derivazione misura
M =< d( ), N(
1
) + N(
2
) + N(
3
) + 2 >.
La derivazione ottenuta applicando il passo di eliminazione varia
a seconda dei seguenti casi
85
n
1
, n
2
= 0
2
:
1
: ,
3
:
,
(Mix)
, ,
(Mix)
,
I due mix aggiunti hanno misura rispettivamente
< d(), N(
1
) + N(
3
) > M e
< d(), N(
1
) +N(
2
) +N(
3
) +1 > M ed hanno dunque
grado minore di quello presente nella prima derivazione
n
1
= 0, n
2
= 0
: ,
1
: ,
3
:
,
(Mix)
, ,
(Mix)
, ,
=============================================== (C)
,
Dove
`e la seguente derivazione
1
: ,
( R)
2
:
, ( )
(n
1
)
(Mix)
,
I tre mix aggiunti hanno misura rispettivamente
< d( ), N(
1
) + N(
2
) + 1 > M
< d(), N(
1
) + N(
3
) > M
< d(), 2N(
1
) + N(
2
) + N(
3
) + 3 > M
n
1
= 0, n
2
= 0
2
:
1
: ,
: ,
,
(Mix)
, , ,
(Mix)
, ,
================================================ (C)
,
Dove
`e la seguente derivazione
1
: ,
( R)
3
:
, ( )
(n
1
)
,
(Mix)
,
,
86
I tre multicut introdotti hanno misura rispettivamente
< d( ), N(
1
) + N(
3
) + 1 > M
< d(), 2N(
1
) + N(
3
) + 2 > M
< d(), 2N(
1
) + N(
2
) + N(
3
) + 3 > M
n
1
, n
2
= 0
: ,
1
: ,
: ,
,
(Mix)
, , ,
(Mix)
, , ,
================================================= (C)
,
I quattro multicut introdotti hanno misure minori perche o
tagliano formule pi` u piccole, oppure sono quelli
e in
con
le stesse misure precedentemente calcolate, che sono minori
di M.
: simile al punto precedente
X: immediato
: tale caso `e stato escluso per semplicit` a, ma la dimostrazione
sarebbe simile.
Teorema 17 (Eliminazione del taglio). Data una derivazione :
non cut-free, `e possibile ottenere una derivazione
: che `e cut-free,
applicando una sequenza nita di passi di eliminazione del taglio.
Dimostrazione. Lalgoritmo ottenuto nella dimostrazione precedente garan-
tisce che data una derivazione applicando un passo di eliminazione si ottiene
una derivazione per lo stesso sequente in cui qualche multicut ha una misura
pi` u corta o viene sostituito con pi` u multicut ma di misura pi` u piccola. Allora
applicando un numero nito di passi, anche sostituendo un multicut con pi` u
multicut pi` u piccoli, questi avranno misura sempre pi` u piccola e quindi prima
o poi tutti i multicut verranno sostituiti con multicut di misura < 0, 0 >,
ossia eliminati.
Questo signica che `e possibile ottenere derivazioni multicut-free in un nu-
mero nito di passi partendo da una con multicut. Essendo il cut un caso
speciale di multicut, tale derivazione sar` a anche cut-free.
87
2.4 Semantica
La semantica della logica intuizionista, `e pi` u complicata di quella della logica
classica. Ovviamente se tale logica avesse la semantica a due valori di verit` a
(come per la logica classica) perderebbe la completezza (un sequente valido
classicamente pu`o non essere derivabile in logica intuizionista, come ad esem-
pio il terzo escluso) ma si pu`o dimostrare che nessuna semantica con tabelle
a n valori niti di verit`a darebbe alla logica intuizionista la completezza.
Esistono due tipi principali di semantiche per la logica intuizionista: una
detta proof-theoretic basata sul concetto che una formula `e una funzione da
un insieme di prove ad un insieme di prove (semantica alla Heyting) e
una detta model-theoretic che `e basata sulla nozione di cambiamento della
verit` a nel tempo ed `e detta semantica alla Kripke.
2.4.1 Semantica alla Heyting
Allinizio di questo capitolo `e stata fornita una semantica intuitiva per cui
una formula intuizionista `e vera se `e possibile mostrarne una prova (dimo-
strazione).
La semantica (alla heyting) di una formula formalizza questo concetto ed `e
dunque un insieme di dimostrazioni che provano la sua verit` a. Come per
la logica classica deniamo prima linterpretazione (che avevamo chiamato
assegnamento) di una formula e poi la semantica.
Denizione 19. Sia P linsieme non vuoto di tutte le possibili prove per una
variabile proposizionale, uninterpretazione `e una funzione : A 2
P
.
Uninterpretazione `e dunque una funzione che associa ad ogni variabile
proposizionale un insieme di prove. Per fornire una semantica ad una for-
mula, occorre dunque dare una semantica alle variabili proposizionali (che
costituisce il contesto, esattamente come il valore di verit`a di una variabile
in logica classica dipende dal contesto
4
).
Si noti che non `e necessario stabilire precisamente quali sono gli elementi
dellinsieme P perche la semantica `e indipendente da tali elementi, occorre
solo precisare che tali elementi sono dette prove atomiche e che vengono
utilizzate per comporre dimostrazioni di formule. In realt`a questo insieme
pu` o essere denito come linsieme di tutti i termini del -calcolo, ma que-
stultimo verr` a trattato nel prossimo capitolo.
La semantica di una formula logica `e denita per induzione sulla sintassi
della formula stessa
4
Ad esempio data la formula Piove Nevica in base al contesto si pu`o scegliere che
piove, nevica o entrambi
88
[[A]]
= (A)
[[ ]]
= [[]]
[[]]
[[ ]]
= [[]]
H[[]]
[[ ]]
= f [ se [[]]
[[]]
=
La semantica di `e il prodotto cartesiano delle semantiche delle due
formule, ossia linsieme delle coppie (
1
,
2
) tali che
1
`e una dimostrazione
di e
2
`e una dimostrazione di . Questo signica che la dimostrazione
che la formula `e vera `e data dallesistenza di una prova per ed una
per (la coppia `e infatti la prova della verit`a della formula congiunta).
La semantica di `e lunione disgiunta (H) delle semantiche delle due
formule. Lunione disgiunta tra due insiemi `e denita nel modo seguente
A HB = (x, 0) [ x A (x, 1) [ x B
ossia lunione disgiunta tra due insiemi `e linsieme degli elementi dei due
insiemi incapsulati in una coppia dove il secondo elemento contiene linfor-
mazione che indica linsieme di provenienza dellelemento (0 se proviene dal
primo insieme, 1 se proviene dal secondo). In questo modo, anche se due
insiemi non sono disgiunti, analizzando lunione disgiunta `e sempre possibile
vericare quale sia linsieme di provenienza. Questo serve per dare la seman-
tica alla disgiunzione in quanto per avere una prova di `e suciente
avere una prova per una delle due formule, ma si vuole tenere traccia di quale
sia la formula dimostrata perche se vuole tenere conto del perche una formula
`e vera (perche lo `e o perche lo `e ) sempre per attenerci al principio di
costruttivismo che la logica intuizionista deve avere.
La semantica dellimplicazione `e un insieme di funzioni che convertono una
prova di in una di . Questo signica che se si dimostra che `e vera,
occorre avere anche una dimostrazione di .
Si noti che quando la semantica di una formula `e linsieme vuoto (quindi non
esistono prove per essa in un contesto) non signica necessariamente che la
formula sia falsa, ma che `e vera ma non provabile costruttivamente oppure
che `e falsa.
La semantica del `e comunque sempre linsieme vuoto perche `e questo ele-
mento `e una contraddizione, quindi non deve essere possibile provarla in
nessun contesto.
Vediamo alcuni esempi
[[A B]]
= [[A]]
[[B]]
= (A) (B).
Se ad esempio (A) =
1
,
2
e (B) =
3
allora
[[A B]]
= (
1
,
3
), (
2
,
3
)
89
e se (A) = allora [[A B]]
= (
1
, 0)
Se (A) =
1
,
2
e (B) =
3
,
4
[[A B]]
4
, ecc.
Per potere aermare che una formula `e una tautologia in logica intuizioni-
sta, occorre invece poter esibire almeno una prova indipendente dal contesto,
ossia una prova che esiste qualunque sia il contesto scelto.
Denizione 20. Una formula `e una tautologia se e solo se
(
[[]]
) =
Seguono alcuni esempi
: qualunque sia il contesto nellinsieme di prove occorre la
funzione identit` a
5
, ossia tale che f() = , quindi questa formula `e
tautologica.
: una funzione generica `e una funzione tale che se [[]]
allora f() = f
con f
[[ ]]
. La prova f
per `e a sua
volta una funzione tale che se
[[]]
, f
) =
con
[[]]
.
Unesempio di funzione f `e la seguente
f()(
) =
: deve esistere una funzione tale che se [[ ]]
,
f() [[]]
) =
dove la coppia (,
1
:
2
:
(I)
,
Unendo le ipotesi induttive si ottiene x [= e x [= x [= e x [=
(per semplicit` a denoteremo con x [= il fato che x forza tutte le formule
in ed ometteremo x X).
Allora per denizione di relazione di forcing si ha che se x [= e x [=
allora x [= .
(I)
1
:
i
(I
i
)
1
2
Per ipotesi induttiva x [= x [=
i
per cui x [=
1
2
.
( I)
1
: ,
( I)
Per ipotesi induttiva
x [= e x [= x [=
Occorre dimostrare che
x [= (y x y [= y [= )
Sia z il primo elemento tale che z [= e z [= , allora z
[= per ogni
z
z per monotonicit`a.
95
( E)
1
:
2
:
( E)
,
Per ipotesi induttiva (e per denizione di forcing nel caso dellimplica-
zione)
x [= x [=
x [= (y x y [= y [= )
quindi se x [= e x [= allora x [= e quindi y [= per ogni y x.
(E)
1
:
2
: ,
3
: ,
()
,
Per ipotesi induttiva (e per denizione di forcing nel caso della disgiun-
zione)
x [= x [= o x [=
x [= e x [= x [=
x [= e x [= x [=
quindi se x [= e x [= allora o x [= e allora x [= oppure x [=
ma anche in questo caso x [= .
()
()
Per ipotesi induttiva
x [= x [=
per cui si deve avere che x [= perche altrimenti si avrebbe la contrad-
dizione x [= ( non `e mai forzato).
Quindi la premessa dellimplicazione da dimostrare (x [= x [= )
`e sempre falsa per cui limplicazione `e dimostrata.
Gli altri casi sono del tutto analoghi a quelli dimostrati
Si pu` o anche dimostrare la completezza del sistema di deduzione natu-
rale (e quindi si ha anche correttezza e completezza del calcolo dei sequenti
per lequivalenza precedentemente dimostrata tra i due sistemi) ma queste
dimostrazioni non verranno trattate in questo documento.
96
2.5 Relazione tra logica classica e logica in-
tuizionista
Come gi`a mostrato, la relazione tra le due logiche `e di estensione: la logica
classica `e unestensione di quella intuizionista.
Una logica L
include
quella di L e tutto ci` o che `e provabile in L lo `e anche in L
.
La sintassi delle formule delle due logiche `e praticamente equivalente: anche
se la negazione non `e stata introdotta nativamente nella logica intuizionista,
pu` o comunque essere fatto senza causare problemi e il termine pu` o essere
anchesso aggiunto in logica classica. Quindi il linguaggio delle due logiche
pu` o essere considerato equivalente ma se si considera il linguaggio dei sequen-
ti per il calcolo dei sequenti delle due logiche, quello della logica classica `e
sintatticamente unestensione di quello della logica intuizionista perche per-
mette pi` u formule a destra. Ora occorre dimostrare che tutto ci` o che si pu` o
provare in logica intuizionista si pu` o provare anche in logica classica.
Teorema 19.
LJ
0
LK
0
Dimostrazione. Lassioma di LK
0
`e unestensione di quello di LJ
0
ed in sua
presenza le regole (W) e (C) sono derivabili. Tutte le altre regole di LJ
0
sono
equivalenti a quelle di LK
0
(sono solo espresse in forma additiva in LJ
0
) e la
regola pu` o essere introdotta anche in LK
0
coerentemente con la sintassi
della logica classica estesa con (per poter aermare che la logica classica `e
esattamente unestensione di quella intuizionista).
Un propriet`a importante di una logica che ne estende unaltra `e quella di
essere unestensione conservativa. Una logica L
`e unestensione conserva-
tiva di una logica L se `e unestensione di L e se tutto ci` o che `e provabile in
L
`e provabile anche in L.
La logica classica per` o non `e unestensione conservativa della logica intuizio-
nista. Ad esempio la formula `e nel linguaggio di entrambe le logiche
ma `e provabile in logica classica e non in logica intuizionista.
Denire una relazione tra le due logiche `e dunque meno banale soprattutto
perche per ottenere una qualche corrispondenza la traduzione di un sequente
non `e banale.
97
La traduzione di una formula della logica classica, in una intuizionista
[] `e data dalla seguente traduzione denita per induzione strutturale sulla
sintassi di
[A] = A
[] = []
[ ] = [] []
[ ] = [] []
[ ] = [] []
Deniamo anche [
1
, . . . ,
n
] come [
1
] , . . . , [
n
]. Inne un sequente classico
viene tradotto in logica intuizionista come [] , [] ,
(
1
, . . . ,
n
) come
1
, . . . ,
n
e [
1
, . . . ,
n
] come [
1
] , . . . , [
n
].
Teorema 20.
1.
LK
0
( [])
2.
LK
0
[] , []
LJ
0
= [[ [] ]]
`e equivalente a
LK
0
[]
6
Infatti intuitivamente il primo ha il seguente signicato: da `e possibile derivare .
Il secondo ha il seguente signicato: se le formule nella traduzione di (equivalente a )
sono tutte vere e se `e falsa la traduzione di allora `e possibile derivare la contraddizione
per cui quando la traduzione di `e vera anche la traduzione di deve esserlo; ergo da
si deriva
98
A:
LK
0
A A banale.
: per ipotesi induttiva
[[]]
= [[ [] ]]
e quindi [[]]
= [[ [] ]]
:
LK
0
[] [], ma per ipotesi induttiva
LK
0
[] e
LK
0
[] per cui
[[ ]]
= [[]]
[[]]
= [[ [] ]]
[[ [] ]]
= [[ [] ]]
[[ [] ]]
=
[[[] [] ]]
Gli altri casi (, ) sono del tutto analoghi a quello appena dato.
2. per il teorema 19 il sequente [] , [] `e derivabile in LJ
0
e quindi lo `e anche in LK
0
per cui lo `e anche il sequente ad
esso equivalente.
per induzione strutturale sulla derivazione in LK
0
. In-
dicheremo con L() la derivazione in logica intuizionista ottenuta
a partire dalla derivazione per ipotesi induttiva.
(Ax)
(Ax)
, ,
LK
0
;
(Ax)
[] []
LJ
0
============== (W)
[, ] , [] []
LJ
0
(L)
[, ] , [, ]
LJ
0
Dove la regola L `e derivabile (e anche R lo `e) nel calcolo
dei sequenti per la logica intuizionista
7
.
(Cut)
1
: ,
2
: ,
(Cut)
LK
0
;
L(
1
) : [] , [, ]
(L)
[] , [] L(
2
) : [, ] , []
(Cut)
[] , [] , [] , []
LJ
0
===================================================== (C)
[] , []
LJ
0
7
Tuttavia non si possono comunque eettuare dimostrazioni per assurdo (o non co-
struttive) e rimane improvabile il terzo escluso. Daltronde se ad esempio si osservano le
regole R
i
dei due calcoli dei sequenti dati si nota una sostanziale dierenza che impedisce
appunto di provare formule come il terzo escluso.
99
(R)
1
: ,
2
: ,
(R)
,
LK
0
;
L(
1
) : [] , [, ]
(R)
[] , [] []
LJ
0
L(
2
) : [] , [, ]
(R)
[] , [] []
LJ
0
(R)
[] , [] , [] , [] [ ]
LJ
0
===================================== (C)
[] , [] [ ]
LJ
0
(L)
[] , [ , ]
LJ
0
(L):
1
: , ,
(L)
,
LK
0
;
(Ax)
[] []
LJ
0
(L
1
)
[] [] []
L(
1
) : [] , [] , [] , []
(S)
[] , [] , [] []
LJ
0
(L)
[] , [] , [] , []
LJ
0
(L
1
)
[] , [] [] , [] , []
LJ
0
(Cut + C)
[] , [] [] , []
LJ
0
Dove la regola S denota lapplicazione (dal basso verso lalto)
delle regole R per , L per e R per .
Gli altri casi sono simili a questi mostrati.
Esistono comunque molte altre traduzioni che preservano le propriet`a
appena mostrate e anche altre.
100
Capitolo 3
Logica e linguaggi di
programmazione
In questo capitolo verranno mostrate le pi` u importanti relazioni che intercor-
rono tra la logica e i linguaggi di programmazione.
In particolare verr`a mostrato come scrivere un programma sia equivalen-
te a scrivere una dimostrazione e cos` come sia possibile dimostrare delle
propriet` a dei linguaggi di programmazione sfruttando alcune propriet` a gi`a
dimostrate della logica e viceversa. Il linguaggio di programmazione preso
come riferimento `e il -calcolo , ma verranno mostrati anche altri linguaggi
di programmazione: il sistema F, PCF e ML, mostrando le peculiarit`a del
suo sistema di tipi.
3.1 -calcolo
3.1.1 Sintassi
Il -calcolo `e un linguaggio di programmazione funzionale inventato da
Alonzo Church ed `e inizialmente nato per scopi diversi dalla programmazio-
ne, ma poi `e diventato la base di molti linguaggi funzionali come ML.
La sua caratteristica principale `e che non c`e distinzione tra dato e program-
ma. Infatti, come di solito avviene nei linguaggi funzionali, un programma `e
una funzione ma anche i suoi input ed i suoi output lo sono, ossia `e possibile
passare in input una funzione ad una funzione e ci`o che viene restituito `e
ancora una funzione. Linguaggi di questo tipo vengono detti di ordine su-
periore ed in questi linguaggi si dice che le funzioni sono oggetti di prima
classe.
La sintassi del -calcolo `e la seguente
101
M ::= x [ V ariabile
x : .M [ Astrazione
M M [ Applicazione
< M, M > [ Coppia
fst(M) [ Proiezione
1
snd(M) [ Proiezione
2
inl(M) [ Injection left
inr(M) [ Injection right
case M of inl(x) M [inr(x) M Case
Dove lapplicazione associa a sinistra, ossia x y z = (x y) z e lastrazione
estende il pi` u possibile a destra, ossia ad esempio x.x x = x.(x x).
I primi tre termini nella sintassi sono in grassetto perche denotano il -
calcolo semplice, ossia il nucleo del lambda-calcolo che `e suciente a ren-
derlo turing-completo.
Denoteremo con x, y, z, . . . le variabili di un termine del -calcolo (o -termine)
e con M, N, . . . un generico -termine.
Partiamo dando una semantica intuitiva del -calcolo semplice. Una -
astrazione `e lequivalente delle funzioni nei classici linguaggi di programma-
zione, ossia
x.M = function(x)return M
Ad esempio si pu` o scrivere la funzione successore function(x)return x+1
nel -calcolo nel seguente modo (supponendo che la sua sintassi abbia anche
loperatore +)
x.x+1, dove il termine (o espressione) che segue il . viene detta corpo del-
lastrazione ed `e analoga allimplementazione di una funzione nei linguaggi
ad esempio imperativi.
Si noti che le funzioni nel -calcolo non hanno nome perche vengono denite
ad-hoc e possono essere utilizzate allinterno di unespressione e non sono
considerate delle dichiarazioni da legare successivamente in altre parti del
programma.
Lapplicazione di unastrazione corrisponde invece alla chiamata di procedura
nei linguaggi di programmazione imperativi. Quindi ad esempio (x.M) N
corrisponde alla chiamata della funzione x.M passando come argomento il
termine N. In un linguaggio imperativo si assegnerebbe N a x e si esegui-
rebbe M mentre nel -calcolo si ottiene come risultato lespressione M in cui
le occorrenze di x vengono sostituite con il termine N.
102
Ad esempio mettendo in azione la funzione successore precedentemente de-
nita, si ha ad esempio la seguente situazione
(x.x + 1) 30 diventa 30 + 1 e successivamente 31
La dierenza sostanziale sta nel fatto che nel linguaggi funzionali come il
-calcolo non esiste memoria o assegnazione ma soltanto una nozione di ri-
scrittura: il termine M si riscrive sostituendo alle occorrenze di x il termine
N.
Considerando invece lintera sintassi assegnata precedentemente al -
calcolo si ottiene il -calcolo esteso. Gli altri termini sono di interpreta-
zione intuitiva. Le coppie hanno un costruttore (ossia un operatore che le
costruisce) <, > e due distruttori (ossia operatori che le disfano) che sono
la proiezione rispettivamente sul primo e sul secondo elemento della coppia.
Ad esempio fst(< x, y >) diventa x quando viene valutato.
Il case (case M of inl(x) N [ inr(y) N
) con M
)
(rispettivamente inr(M
). Ad esempio lespressione
case inl(< x.x, x.x x >) of inl(x) fst(x) [ inr(y) snd(y)
se valutata, siccome M = inl(< x.x, x.x x >), diventa
fst(< x.x, x.x x >) (perche essendo M un inleft si valuta il primo ramo e
si sostituisce x con il contenuto dellinleft di M), e quindi valutandolo ulte-
riormente si ottiene x.x.
Questa operazione `e una forma primitiva di pattern matching (tra il termine
M e inleft o inright in base al valore di M).
Si noti come nel -calcolo lesecuzione di un programma consista nel va-
lutare unespressione; si tratta infatti dello stesso modo di procedere della
semplicazione di espressioni aritmetiche.
Ora vediamo alcune denizioni formali che torneranno utili in seguito.
103
Innanzitutto deniamo le variabili libere di un -termine
FV (x) = x
FV (x.M) = FV (M) X
FV (M N) = FV (M) FV (N)
FV (< M, N >) = FV (M) FV (N)
FV (fst(M)) = FV (snd(M)) = FV (M)
FV (inl(M)) = FV (inr(M)) = FV (M)
FV (case M of inl(x) N [ inr(y) N
) =
FV (M) (FV (N) x) (FV (N
) y)
3.1.2 Semantica operazionale
Precedentemente `e stato detto che lesecuzione di unapplicazione di una fun-
zione ad un argomento corrisponde alla sostituzione delle occorrenze del suo
parametro nel corpo con quelle dellargomento. Occorre dunque formalizzare
la nozione di sostituzione (che non `e cos` immediata come si pu` o immaginare)
prima di denire formalmente la computazione del -calcolo . Denoteremo
con M[N/x] la sostituzione delle occorrenze libere di x in M con il termine
N.
)[N/x] = M[N/x] M
[N/x]
(< M, M
[N/x] >
(fst(M))[N/x] = fst(M[N/x])
(snd(M))[N/x] = snd(M[N/x])
(inl(M))[N/x] = inl(M[N/x])
(inr(M))[N/x] = inr(M[N/x])
104
Il quarto caso merita un po di attenzione. Se y FV (N) quella sostitu-
zione sarebbe errata perche il corpo dellastrazione conterrebbe occorrenze di
y che sono quindi legate nel nuovo termine mentre prima occorrevano libere
in N. Quindi in tal caso occorre prima rinominare la variabile y con un nome
fresco w (quinto caso) (che quindi non pu`o occorrere in N) e poi eettuare la
sostituzione, che questa volta non pu`o pi` u generare questo tipo di problema
essendo w fresca.
Il caso del case `e stato omesso per semplicit`a ma `e simile agli altri. Tale caso
ha lo stesso problema dellastrazione avendo due termini con due variabili
legate ma si risolve nello stesso modo generando cos` 6 casi separati nella
denizione.
Loperazione di rinomina di un parametro eettuata nel quarto caso viene
formalizzata e prendo il nome di -conversione. La relazione di -conversione
`e denita come segue
x.M
y.M[y/x] y FV (M)
e poi per induzione sui termini, per cui (M N)
(M
N) se M
,
ecc.
La sua importanza `e principalmente quella di esprimere lequivalenza tra due
termini a meno di nomi di variabili.
Denizione 25. La relazione
. Il
fatto che
denota il fat-
to che dato M
M
1
. . .
N
n
, ossia `e transitiva).
Ad esempio i termini x.x y e z.z y sono -equivalenti, infatti x.x y
M[N/x]
fst(M, N)
M
snd(M, N)
N
case inl(M
1
) of inl(x) M
2
[ inr(y) M
3
M
2
[M
1
/x]
case inr(M
1
) of inl(x) M
2
[ inr(y) M
3
M
3
[M
1
/y]
Passi induttivi
M
M N
N
N
M N
M N
x.M
x.M
fst(M)
fst(M
)
M
snd(M)
snd(M
)
M
1
1
case M
1
of inl(x) M
2
[ inr(y) M
3
case M
1
of inl(x) M
2
[ inr(y) M
3
M
2
2
case M
1
of inl(x) M
2
[ inr(y) M
3
case M
1
of inl(x) M
2
[ inr(y) M
3
M
1
1
case M
1
of inl(x) M
2
[ inr(y) M
3
case M
1
of inl(x) M
2
[ inr(y) M
3
106
La -riduzione indica come avviene ogni singolo passo computazionale.
I passi induttivi della denizione appena data, mostrano solo il criterio per
scegliere quale parte del termine (quindi unastrazione allinterno del termi-
ne oppure una proiezione, ecc.) ridurre (ossia da trasformare), ma il vero
termine ridotto viene indicato dai passi computazionali.
Quindi per applicare un passo di -riduzione occorre costruire un albero si-
mile a quelli di derivazione. Ad esempio dato il termine
((x.y.y)(x.x))(x.x), per applicare la riduzione occorre costruire il se-
guente albero
((x.y.y)(x.x))
y.y
((x.y.y)(x.x))(x.x)
(y.y)(x.x)
Il sottotermine evidenziato in grassetto `e il termine da ridurre, cio`e quella
parte di termine che cambia dopo la riduzione. Tali termini vengono detti
-redessi.
Denizione 26. La relazione di -equivalenza
`e la chiusura riessi-
va,transitiva e simmetrica di
.
Segue un esempio in cui si mostra una sequenza di -riduzioni che dato
un termine producono un risultato.
(x.y.x y)(fst(< z.z, x >))
(x.y.x y)(x.x)
y.(x.x) y
Ma la scelta dei redessi non `e sempre unica. Ad esempio in questo caso si
poteva avere la seguente ed equivalente sequenza di -riduzioni
(x.y.x y)(fst(< z.z, x >))
y.(x.x) y
In generale `e possibile concludere che un termine pu` o contenere pi` u redessi
dando dunque origine a pi` u sequenze di riduzione. Tuttavia le sequenze di
riduzione nite portano tutte allo stesso risultato grazie al teorema di Church-
rosser. Il risultato si ottiene quando non `e pi` u possibile ridurre ulteriormente.
Un termine non ulteriormente riducibile `e detto forma normale.
Teorema 21 (di Church-Rosser). Sia M un -termine e
la chiusura
riessiva e transitiva di
, allora
se M
e M
allora M
N e M
N
La dimostrazione di questo teorema `e molto complicata e verr`a omessa
qu`.
Il fatto che la forma normale sia unica `e data dal seguente corollario
107
Corollario 2. Se M
, ossia che
M
N e M
P e N
P ma N ed N
= P.
Questo risultato `e molto importante perche mostra come la scelta del
-redesso da ridurre ad ogni passo possa essere del tutto arbitraria senza
inuire sul risultato dando cos` origine a svariate strategie di valutazione che
generano una semantica ben denita e in cui ad ogni passo esiste una ed
una sola riduzione possibile. Tra le strategie pi` u importanti vi sono call by
value (spesso abbreviata con CBV) in cui si valutano prima gli argomenti di
unastrazione e poi si passano le forme normali ottenute allastrazione (stra-
tegia applicata nella prima riduzione dellesempio mostrato sopra) e call by
name (CBN) dove invece prima si applica un argomento alla funzione senza
valutarlo e poi eventualmente lo si valuta se viene utilizzato allinterno della-
strazione (come accade nella seconda riduzione dellesempio mostrato sopra).
Indipendentemente dalla strategia di valutazione scelta, esistono alcuni
termini per cui non esiste una sequenza nita di -riduzioni che porti tali
termini in forma normale. Questo equivale a dire che alcuni programmi non
terminano, cosa del tutto normale per un linguaggio turing completo.
Il classico esempio di programma divergente (ossia che non termina) `e il
seguente
(x.x x) (x.x x)
(x.x x) (x.x x)
(x.x x) (x.x x)
. . .
Prendendo spunto da questo termine, `e possibile costruirne uno che pri-
ma di riportarsi nella stessa situazione iniziale eettua una computazione e
verica se procedere oppure fermarsi. Questo meccanismo permette di rea-
lizzare la ricorsione.
Denizione 27. Sia M un generico -termine e F unastrazione, M `e
punto sso di F se e solo se
M
F M
Il punto sso `e tipicamente un termine nella forma FIX F tale che
FIX F
1
Formalmente esiste un vero e proprio teorema che dimostra lesistenza di
un punto sso per ogni astrazione.
Teorema 22 (Del punto sso). Sia F unastrazione
FY Y F
F (Y F)
Dimostrazione. Y = f.(x.(f x x)) (x.(f x x)). Infatti
Y F = (f.(x.(f x x)) (x.(f x x))) F
F (x.F x x) (x.F x x)
oppure con
E
se si tratta della sua versione estesa con coppie e ca-
se. Se un termine non `e tipabile allora non `e considerato un termine del
-calcolo tipato per cui tali programmi non possono essere eseguiti in questo
calcolo.
La sintassi dei tipi `e la seguente
::= [ Tipo semplice
[ Tipo freccia(per astrazioni)
[ Tipo prodotto(coppie)
+ [ Tipo somma(inl, inr)
I tipi semplici sono tipi come ad esempio interi, booleani, ecc. (che sareb-
bero utili se avessimo anche costanti o espressioni numeriche, booleane ecc.).
I tipi freccia sono quelli riservati alle funzioni, dove ad esempio indica
che la funzione che ha questo tipo prende un argomento di tipo in input e
ne restituisce uno di tipo in output.
Il tipo prodotto `e riservato alle coppie dove ad esempio indica che
la coppia deve avere il primo argomento di tipo ed il secondo di tipo .
Quando utilizzeremo notazioni come
1
2
indicheremo che il termine che
ha questo tipo ha un tipo freccia dove i due tipi possono essere un qualunque
tipo a loro volta, quindi tale notazione indica uninsieme innito di tipi come
, ecc.
Si noti che la freccia associa a destra (come limplicazione nella logica) ed ha
precedenza minore, la somma ha precedenza sulla freccia ma non sul prodot-
to.
110
Il -calcolo che considereremo allinizio `e detto esplicitamente tipato perche
ad ogni parametro si associa un tipo nelle astrazioni, ossia il termine x.M
viene denotato con x : .M in tale calcolo.
Inoltre talvolta si denota con M
se
= .
Un type-judgment si legge come: dal contesto `e possibile derivare che
il temine M ha tipo .
Il sistema di tipi per il -calcolo tipato esteso `e il seguente
(V AR)
, x : x :
, x :
1
M :
2
(ABS)
x :
1
.M :
1
2
M :
1
2
N :
1
(APP)
M N :
2
M :
1
M :
2
(PAIR)
< M, N >:
1
2
M :
1
2
(FST)
fst(M) :
1
M :
1
2
(SND)
snd(M) :
2
M :
1
(INL)
inl(M) :
1
+
2
M :
2
(INR)
inr(M) :
1
+
2
M
1
:
1
+
2
, x :
1
M
2
: , x :
2
M
3
:
(CASE)
case M
1
of inl(x) M
2
[ inr(y) M
3
:
Il signicato delle regole `e abbastanza intuitivo. La regola (V AR) indica
che assumendo che x abbia tipo allora si pu` o concludere che x ha tipo .
Per quanto riguarda la regola ABS, unastrazione ha tipo
1
2
se assu-
mendo che il parametro x abbia tipo
1
si riesce a dimostrare che M ha tipo
2
. La regola APP indica che lapplicazione ha tipo
2
se il termine M `e
un termine che ha il tipo di una funzione
1
2
ed il suo argomento ha
tipo
1
. Di fatto in tal caso lapplicazione `e corretta e restituisce un argo-
mento di tipo
2
. Le altre regole sono semplici da interpretare a parte la
regola (CASE). Questa indica che M
1
deve essere un termine di tipo inl o
inr (quindi che possa essere trattato come tale) e, siccome a priori pu` o non
essere noto quale ramo del case si sceglier` a, entrambi i rami devono avere i
111
termini rispettivamente M
2
ed M
3
dello stesso tipo per assicurarsi che in ogni
caso lespressione si ridurr`a in un termine con quel tipo. Inoltre nel contesto
per tipare M
2
sia assume che x :
1
perche se il case si riduce in M
2
allora M
1
`e un inleft e quindi ha il tipo pi` u a sinistra del tipo somma, analogamente
per tipare M
3
si assume y :
2
.
Segue un esempio di typing, per il termine (x : .x)(y : .y)
(V AR)
x : x :
(ABS)
x : .x : ( ) ( )
(V AR)
y : y :
(ABS)
y : .y :
(APP)
(x : .x)(y : .y) :
Si noti che ogni -termine se ha un tipo allora ha ununica derivazione di
tipo. Infatti da ogni termine si pu` o applicare una ed una sola regola.
Oltre alla -riduzione, esiste unaltra strategia di valutazione dei -termini
che si chiama -riduzione ed `e denita sostituendo alle regole computazionali
della -riduzione (quelle induttive rimangono invariate) le seguenti regole
x.M x
M se x FV (M)
< fst(M), snd(M) >
M
case M of inl(x) inl(x) [ inr(y) inr(y)
M
Limportanza di questa denizione `e quella di poter esprimere unequi-
valenza tra termini (l-redesso e l-ridotto) che si comportano allo stesso
modo. Come si vede dalle regole denite, il motivo per cui si comportano
allo stesso modo `e che c`e una ridondanza nell-redesso che viene eliminata
nell-ridotto.
Nel caso dellastrazione, applicare x.M x (con x non libera in M) ad un
argomento non produrrebbe nessuna sostituzione in M siccome in M il pa-
rametro x non occorre libero e quindi si otterrebbe il termine M N dove N
`e largomento, ossia
(x.M x) N
M N
Ma il risultato prodotto da questa applicazione `e la stessa di quella che si
otterrebbe applicando l-ridotto a N (M N).
Nel caso delle coppie si ha
fst(< fst(M), snd(M) >)
snd(M)
e nel caso del case dopo un numero indeterminato di passi di riduzione si
arriva nella situazione
case inl(M) of inl(x) inl(x) [ inr(y) inr(y)
inl(M)
112
oppure
case inr(M) of inl(x) inl(x) [ inr(y) inr(y)
inr(M)
3.2 Isomorsmo di Curry-Howard
3.2.1 Denizione e propriet`a
Lisomorsmo di Curry-Howard `e una sorprendente analogia tra i lin-
guaggi di programmazione e la logica che, pi` u precisamente, mette in rela-
zione il -calcolo tipato con la deduzione naturale della logica intuizionista
mostrando come ogni -termine corrisponda ad una dimostrazione in NJ
0
e come un passo di -riduzione di un termine corrisponda ad un passo di
normalizzazione della dimostrazione corrispondente.
Possiamo dunque schematizzare tre importanti relazioni tra -calcolo e logica
(formula) ; (tipo)
(dimostrazione) ; M( termine)
N
(normalizzazione) ;
( riduzione)
La seconda corrispondenza, ossia la possibilit` a di rappresentare una di-
mostrazione con un -termine (che `e una rappresentazione lineare di una
dimostrazione), ha un grande vantaggio. Ogni volta che si vogliono eettua-
re operazioni che modicano una dimostrazione la si pu` o rappresentare sotto
forma di -termine ed operare su di esso una volta stabilite le corrisponden-
ze necessarie. Le manipolazioni su tali termini sono ovviamente pi` u semplici
di quelle sulle dimostrazioni (soprattutto computazionalmente). Si pensi ad
esempio allapplicazione dellalgoritmo di normalizzazione ad una dimostra-
zione; questo coinvolge ad ogni passo lanalisi dellintera derivazione che ha
una dimensione decisamente maggiore del termine corrispondente (come si
noter` a in seguito) e quindi `e pi` u conveniente associare la dimostrazione ad
un termine ed eettuare la -riduzione.
Un altro grande vantaggio che ore lisomorsmo di Curry-Howard `e
il fatto che ogni propriet` a dimostrata su una derivazione pu` o essere auto-
maticamente trasportata sul -calcolo e vice versa. Ad esempio il teorema
di Church-Rosser pu` o essere trasportato nella logica ottenendo il seguente
teorema
Teorema 23 (di Church-Rosser). Sia una derivazione in NJ
0
e
N
la
chiusura riessiva e transitiva di
N
, allora
se
allora
N
1
e
N
1
113
Di conseguenza `e possibile concludere che data una derivazione, qua-
lunque sia la strategia di normalizzazione questa porta ad ununica forma
normale, ossia la forma normale di una dimostrazione `e unica.
Si noti che il -calcolo tipato e NJ
0
sono denibili in maniera autonoma.
Infatti in questo documento `e stato descritto prima NJ
0
senza ricorrere in
nessun modo a nessun linguaggio di programmazione e poi `e stato descritto
-calcolo senza ricorrere in nessun modo alla logica intuizionista, ma questi
due formalismi hanno molte cose in comune.
In seguito verranno mostrate formalmente le tre analogie descritte sopra.
La prima mette in relazione formule con tipi. Osservando la sintassi delle
formule della logica intuizionista e quella dei tipi del -calcolo tipato esteso,
si nota una certa analogia. Infatti questa `e la seguente
A ;
;
1
2
;
1
2
;
1
+
2
Di fatto anche semanticamente i connettivi logici hanno la stessa semantica
dei costruttori di tipo: limplicazione ha una semantica funzionale (si pensi
alla semantica alla Heyting), il prodotto specica che una coppia deve avere
i due argomenti dei tipi specicati mentre la congiunzione stabilisce che deve
esistere una prova per le formule congiunte e la disgiunzione specica che
deve esistere una prova tra le due formule disgiunte mentre il + stabilisce
che il termine corrispondente ha uno dei due tipi specicati.
Lunico termine logico che non ha corrispondenza nel -calcolo `e il falso ()
perche non ha senso assegnare ad un termine un tipo vuoto, ossia unassenza
di tipo.
Quindi a questo punto si pu`o assegnare ad un termine del -calcolo tipato
una formula come tipo.
Ora `e possibile stabilire la seconda corrispondenza, ossia quella tra di-
mostrazioni e -termini. Per fare ci`o, si considera il frammento positivo
di NJ
0
(che non contiene la regola ()) si sostituisce la regola dellassioma
con quella della deduzione naturale potendo cos` ottenere come derivate la
regola di weakening e contrazione e si formula il sistema nella sua versione
additiva.
Tipicamente questo frammento della logica intuizionista si denota con
IPC(, , ) e quello che contiene solo le regole per limplicazione con
IPC().
Il sistema di deduzione ottenuto viene poi decorato con i -termini, ossia
114
ogni formula presente in esso viene decorata con un termine. Decorare una
formula , signica trasformarla in unassociazione termine-tipo M : tale
che eettivamente M abbia tipo .
Il sistema decorato `e esattamente identico al sistema di tipi del -calcolo tipato
esteso ed `e il seguente (con
d
si intender` a il contesto decorato)
(Ax)
d
, x : x :
d
, x : M :
( I)
d
x.M :
d
M :
d
N :
( E)
d
M N :
d
M :
d
N :
(I)
d
< M, N >:
d
M :
1
2
(E
1
)
d
fst(M) :
1
d
M :
1
2
(E
2
)
d
snd(M) :
2
d
M :
1
(I
1
)
d
inl(M) :
1
2
d
M :
2
(I
2
)
d
inr(M) :
1
2
d
M :
d
, x : N :
d
, y : P :
(E)
d
case M of inl(x) N [ inr(y) P :
Si noti che il contesto decorato
d
, ottenuto da decorando tutte le for-
mule, `e un insieme di associazioni variabile-tipo e non pi` u un multiinsieme.
Inoltre, trattandosi di un mapping, ha anche il vincolo che non esistono due
associazioni tra la stessa variabile ed un altro tipo, ossia sono proibiti contesti
come , x : , x : con = ma si noti che
d
, x : , x : =
d
, x :
trattandosi di un insieme (e quindi
d
, x : =
d
x : ).
Da questa decorazione della logica, si nota unaltra relazione: le regole di
introduzione tipano i termini composti da un costruttore mentre le regole di
eliminazione tipano termini composti da un distruttore, ossia
Introduzione
I tipa il costruttore delle astrazioni (.)
I tipa il costruttore delle coppie (<, >)
I tipa i costruttori inl, inr
115
Eliminazione
E tipa il distruttore delle astrazioni (applicazione)
E tipa i distruttori delle coppie (fst, snd)
E tipa il distruttore case
La terza corrispondenza dellisomorsmo di Curry-Howard `e la relazione
tra normalizzazione e -riduzione. Denoteremo con
N
il fatto che
dalla derivazione , applicando un passo di normalizzazione scegliendo un
qualche detour (non importa quale), si ottiene una derivazione
.
Mostreremo anche che se `e una dimostrazione per il sequente
d
M :
allora con
N
si ottiene la dimostrazione
per il sequente
d
N :
ossia il sequente non decorato rimane lo stesso dopo lapplicazione del passo
(come `e logico aspettarsi dato che la dimostrazione deve essere fatta per
lo stesso sequente) ma la decorazione varia perche varia il termine (che `e
appunto un termine ridotto).
Lequivalenza viene mostrata per induzione strutturale sulla derivazione
per
d
M : .
Verr`a mostrato come per ogni redesso che occorre in M esiste un detour nella
derivazione di tipo in cui la regola di eliminazione di ogni detour `e proprio
alla radice della derivazione del redesso (ecco dunque unaltra corrispondenza:
redesso-detour).
Per mostrare la corrispondenza occorre una formulazione leggermente diversa
del lemma di sostituzione dato nel capitolo precedente. Prima di dimostrare
tale lemma sono per` o necessari due lemmi preliminari ed una denizione.
Denizione 29. Sia
d
un contesto decorato, allora
dom(
d
) = x [ x :
d
Lemma 7 (Weakening).
d
M : e x fresca
d
, x : M :
Il fatto che x `e una variabile fresca signica che non occorre in
d
e
neanche in M, ne libera ne legata.
Dimostrazione. Per induzione strutturale sulla derivazione di
d
M : .
(Ax)
(Ax)
d
M :
Il sequente con laggiunta di x : `e derivabile nello stesso modo
(Ax)
d
, x : M :
116
( I):
1
:
d
, x : M :
( I)
d
x : .M :
Per ipotesi induttiva si ha che
1
:
d
, x : M : e y fresca
1
:
d
, x : , y : M :
Ma per ipotesi la variabile z da aggiungere alla derivazione per
d
x.M : `e fresca quindi non `e nel dominio di
d
ma `e anche
diversa da x, che occorre in x : .M e non occorre neanche in M e
quindi non occorre ne in
d
, x : ne in M (ipotesi della metaimpli-
cazione dellipotesi induttiva) quindi z = y e si pu` o concludere che
1
esiste per cui si ha la derivazione cercata
1
:
d
, y : , x : M :
( I)
d
, y : x : .M :
Gli altri casi sono semplici passi induttivi ad eccezione del case che `e
analogo a quello precedentemente dato.
Lemma 8.
d
M : FV (M) dom(
d
)
Dimostrazione. Per induzione sulla derivazione di
d
M : .
(Ax)
(Ax)
d
, x : x :
Allora FV (x) = x dom(
d
x : )
( I)
1
:
d
, x : M :
( I)
d
x : .M :
Per ipotesi induttiva FV (M) dom(
d
x : ), ma allora
FV (x : .M) = FV (M) x dom(
d
x : ) dom(x : )
( E)
1
:
d
M :
2
:
d
N :
( E)
d
M N :
Per ipotesi induttiva FV (M) dom(
d
) e
FV (N) dom(
d
) per cui
FV (M N) = FV (M) FV (N) dom(
d
) perche se x FV (M)
allora x dom(
d
) e se x FV (N) allora x dom(
d
).
117
Gli altri casi sono analoghi a questi.
Lemma 9 (Sostituzione).
1
: , e
2
: S(
1
,
2
) :
e vale anche la decorazione di questo enunciato
1
:
d
, x : M : e
2
:
d
N : con BV (M) BV (N) =
S(
1
,
2
) :
d
M[N/x] :
Dove BV (M) `e linsieme delle variabili legate in M. La dierenza sostan-
ziale sta nel fatto che questa formulazione (che `e additiva anziche moltipli-
cativa) permette di eliminare le occorrenze di piuttosto che sostituirle con
un multiinsieme di variabili.
Si noti che questo lemma mette in relazione la sostituzione S(
1
,
2
) con la
sostituzione del -calcolo , ossia M[N/x].
Il fatto che il lemma `e suddiviso in due parti serve solo per mettere in evi-
denza che la sostituzione `e applicabile senza la decorazione della logica, ma
il risultato che verr`a utilizzato `e il secondo enunciato.
Dimostrazione. Per induzione strutturale sulla derivazione
1
.
(Ax)
1
:
(Ax)
,
per ipotesi si ha
2
: che `e proprio la derivazione di cui dimostrare
lesistenza per cui S(
1
,
2
) `e proprio
2
.
Nella decorazione la regola `e
1
:
(Ax)
d
, x : x :
per ipotesi si ha
2
:
d
N : e si vuole ottenere
d
x[N/x] :
ma x[N/x] = N e quindi anche in questo caso la derivazione S(
1
,
2
)
cercata `e proprio
2
:
d
N : =
d
x[N/x] :
( I):
1
`e la seguente derivazione
1
: , ,
( I)
,
118
Per ipotesi induttiva si ha che
1
: , , e
2
: , S(
1
,
2
) : ,
dove
2
`e ottenuta da
2
per weakening, quindi la derivazione S(
1
,
2
)
`e la seguente
S(
1
,
2
) : ,
( I)
Nella decorazione invece si ha che
1
`e la seguente derivazione
1
:
d
, y : , x : M :
( I)
d
, x : y : .M :
Per ipotesi induttiva si ha che
1
:
d
, y : , x : M : e
2
:
d
, y : N : e BV (M) BV (N) =
S(
1
,
2
) :
d
, y : M[N/x] :
La derivazione S(
1
,
2
) `e la seguente
S(
1
,
2
) :
d
, y : M[N/x]
( I)
d
y : .M[N/x] :
Dove
2
`e ottenuta da
2
per weakening, che `e applicabile perche y
`e fresca in questo contesto ossia non appartiene a
d
, come vedremo
dopo, e non pu`o occorrere di conseguenza libera in N perche
FV (N) dom(
d
) per il lemma 8 e neanche legata se `e vera laltra
ipotesi (BV (M) BV (N) = ) ma lo `e perche
BV (y : .M) BV (N) = (BV (M) x) BV (N) =
Ma la derivazione desiderata in realt` a `e
S(
1
,
2
) :
d
(y : .M)[N/x] : dove tale sostituzione `e
denita suddividendo in tre casi
1. (y : .M)[N/x] = y : .M se x = y
Questo caso `e impossibile perche se x = y allora si avrebbe
1
:
d
, y : , y : M : che nel caso in cui = il contesto
sarebbe mal formato (la stessa variabile non pu`o occorrere pi` u
volte con tipi diversi).
2. (y : .M)[N/x] = w : .M[w/y][N/w] con w fresca, se x
FV (N)
Ma siccome esiste
2
:
d
N : per ipotesi allora x non occorre
libera in N altrimenti tale termine non sarebbe stato tipabile senza
avere x nel contesto quindi anche questo caso `e impossibile.
119
3. (y : .M)[N/x] = y : .M[N/x] se x FV (N)
Non essendo possibile il caso precedente deve necessariamente
esserlo questo.
Il caso 3 `e lunico ad essere possibile ed `e proprio quello che permette
di eguagliare il sequente trovato con quello cercato.
(I):
1
`e la seguente derivazione
1
: ,
2
: ,
(I)
,
Per ipotesi induttiva si ha che
1
: , e
2
: S(
1
,
2
) :
2
: , e
2
: S(
2
,
2
) :
per cui S(
1
,
2
) `e la seguente derivazione
S(
1
,
2
) : S(
2
,
2
) : ,
(I)
Nella decorazione invece data la derivazione
1
1
:
d
, x : M :
2
:
d
, x : N :
(I)
d
, x : < M, N >:
Per ipotesi induttiva si ha che
1
:
d
, x : M : e
2
:
d
P : e BV (M) BV (P) =
S(
1
,
2
) :
d
M[P/x] :
2
:
d
, x : N : e
2
:
d
P : e BV (N) BV (P)
S(
2
,
2
) :
d
N[P/x] :
La derivazione ottenuta `e dunque la seguente
S(
1
,
2
) :
d
M[P/x] :
d
N[P/x] :
(I)
S(
2
,
2
) :
d
< M[P/x], N[P/x] >:
Dove dalla denizione di sostituzione del -calcolo si ha che
< M[P/x], N[P/x] >=< M, N > [P/x].
Tutti gli altri casi sono identici a questultimo caso eccetto che per (E)
che sore degli stessi problemi di ( I) ma si risolvono in maniera
analoga.
120
Intuitivamente la sostituzione nella logica sostituisce in
1
tutti gli assio-
mi per , con la derivazione
2
: ma lassioma nella decorazione
diventa la regola di typing per la variabile, che viene sostituita da una de-
rivazione decorata con N e le modiche si propagano no alla radice dove
dunque si ottiene il nuovo termine che non ha pi` u occorrenze di x perche
sono state sostituite con quelle di N.
Ora `e possibile mostrare come lapplicazione di un passo di normalizzazione
corrisponda ad un passo di -riduzione.
Teorema 24 (Isomorsmo di Curry-Howard).
:
d
M :
N
1
: M
: SSE M
1
:
d
, x : M :
( I)
d
x : .M :
2
:
d
N :
( E)
d
(x : .M) N :
N
S(
1
,
2
) :
d
M[N/x] :
Per eliminare il detour si applica la sostituzione a
1
.
Ma il termine che decora il primo sequente `e proprio un -redesso
mentre il secondo `e il rispettivo -ridotto, ossia
(x : .M) N
M[N/x]
Si noti che la condizione che BV (M) BV (N) = `e soddisfatta dal
fatto che pu`o essere ragionevole imposta come limitazione sintattica
sul termine (x : .M) N, forzando un generico termine M a non
contenere dichiarazioni duplicati della stessa variabile. In ogni caso
se ci` o accadesse, i duplicati possono essere ridenominati tramite l-
conversione ottenendo un nuovo termine -equivalente al precedente, il
che signica che il linguaggio non perde la sua espressivit`a (permette
di computare le stesse funzioni).
121
detour = redesso proiezione
1
:
d
M :
2
:
d
N :
(I)
2
:
d
< M, N >:
(E
1
)
d
fst(< M, N >) :
N
1
:
d
M :
Per eliminare il detour si ricordi che si teneva solo
1
che premette di
derivare proprio la formula . Se si osservano i due termini con cui viene
decorata prima e dopo lapplicazione del passo di normalizzazione si
nota che
fst(< M, N >)
M
detour = redesso case
1
:
d
M :
(I
1
)
d
inl(M) :
2
:
d
, x : N :
3
:
d
, y : P :
(E)
d
case inl(M) of inl(x) N [ inr(y) P :
;
S(
2
,
1
) :
d
N[M/x] :
E questo corrisponde alla seguente relazione
case inl(M) of inl(x) N [ inr(y) P
N[M/x]
Si noti che la corrispondenza `e esaustiva: ad ogni detour corrisponde un
redesso e ad ogni redesso tipabile corrisponde un detour (ogni redesso pu`o
essere tipato solo come mostrato).
Per semplicit` a si mostrano solo alcuni passi induttivi.
caso induttivo
( I)
1
:
d
, x : M :
( I)
d
x : .M :
1
:
d
, x : M
:
( I)
d
x : .M
:
x : .M
x : .M
1
:
d
M : si ottiene
1
:
d
M
: tale che M
.
122
( E)
1
:
d
M :
2
:
d
N :
( E)
d
M N :
1
:
d
M
:
2
:
d
N :
( E)
d
M
N :
M N
N
Il -calcolo tipato cos` come `e stato denito ha due propriet`a molto in-
teressanti: unicit` a di tipo (un termine pu`o avere un solo tipo) e denota
univocamente una dimostrazione.
Teorema 25 (Unicit` a di tipo).
1
:
d
M : e
2
:
d
M : =
Dimostrazione. Per induzione sulla sintassi dei -termini.
x: allora lunica derivazione possibile `e la seguente
(Ax)
d
x :
Quindi
1
=
2
perche la derivazione `e unica (se le due derivazioni sono
identiche ovviamente anche i due sequenti decorati lo sono).
x : .M: allora le derivazioni hanno la seguente forma
1
:
d
, x : M :
( I)
d
x : .M :
2
:
d
, x : M :
( I)
d
x : .M :
.
M N: allora le derivazioni sono
1
:
d
M :
1
:
d
N :
( E)
d
M N :
123
2
:
d
M :
2
:
d
N :
( E)
d
M N :
1
,
2
) =
per
cui =
.
< M, N >: allora le derivazioni sono
1
:
d
M :
1
:
d
N :
(I)
d
< M, N >:
1
:
d
M :
1
:
d
N :
(I)
d
< M, N >:
e =
per cui =
d
x :
con x :
d
124
( I): la derivazione
1
: ,
( I)
Per ipotesi induttiva si ha che
1
d
:
d
, x : M : e M `e unico a
meno di nomi di variabili.
Allora
d
viene decorata nel seguente modo
1
d
:
d
, x : M :
( I)
d
x : .M :
Ma essendo M unico anche x : .M `e lunico termine che pu`o decorare
la prova.
Gli altri casi sono analoghi
Ora si pu`o provare a mettere in corrispondenza la -riduzione con la
normalizzazione.
x : .M x
M se x FV (M)
1
:
d
, x : M :
(Ax)
d
, x : x :
( E)
d
, x : M x :
( I)
d
x : .M x :
Ma all-redesso non corrisponde nessun detour.
Ci si pu` o per` o domandare: si tratta di una nuova forma di ridondanza? La
risposta `e si con la decorazione, no nella logica.
Per motivare questa risposta osserviamo che in eetti questa derivazione
pu` o essere trasformata nella derivazione
1
:
d
M : perche se
x FV (M) allora sicuramente non esisteranno in tale derivazioni assiomi
per x : e quindi lassunzione pu` o essere eliminata preservando la derivazione
(
1
1
a meno del contesto dei sequenti che contengono x : in
1
e ne
vengono privati in
1
).
Ora la derivazione mostrata precedentemente privata della sua decorazione
diventa
125
1
: ,
(Ax)
,
( E)
,
( I)
Osservando questa derivazione, non esiste alcuna ridondanza in generale.
Infatti dato dato , , da questo non si pu` o eliminare dal con-
testo essendo sicuri che non viene utilizzata perche si perde linformazione
che x non occorre libera in M. Infatti pu` o occorrere in ma nella decora-
zione si elimina proprio la formula che da tipo a x, ma questa informazione
viene persa quindi non `e pi` u noto quale formula eliminare.
In altre parole non `e vero che tutte le derivazioni di questa forma conten-
gono una ridondanza ma solo quelle che possono essere decorate come mo-
strato sopra. Infatti mostriamo un esempio di due derivazioni non decorate
della stessa forma di quella appena data.
(Ax)
,
(Ax)
,
( E)
,
( I)
Questa derivazione `e in eetti ridondante e se dallassioma per
, si elimina nel contesto del sequente la formula il sequente
`e ancora derivabile sempre con lassioma.
(Ax)
( )
(Ax)
( E)
(Ax)
( E)
( ),
( I)
( )
Con = ( ),
in questo caso non c`e nessuna ridondanza ed in eetti non si pu`o eliminare
dal sequente altrimenti la premessa destra (Ax) della sua regola
( E) non sarebbe pi` u derivabile.
In eetti la prima derivazione (che contiene una ridondanza) decorata diventa
126
(Ax)
y : , x : y :
(Ax)
y : , x : x :
( E)
y : , x : y x :
( I)
y : x : .y x :
Ed in eetti x FV (y) = y ed infatti x : .y x
y
La seconda derivazione decorata diventa
(Ax)
d
y : ( )
(Ax)
d
x :
( E)
d
y x :
(Ax)
d
x :
( E)
y : ( ), x : (y x) x :
( I)
y : ( ) x : .(y x) x :
Con
d
= y : ( ), x :
E infatti x FV (y x) = x, y.
Segue il caso dell-riduzione per le coppie
< fst(M), snd(M) >
1
:
d
M :
(E
1
)
d
fst(M) :
2
:
d
M :
(E
2
)
d
snd(M) :
(I)
d
< fst(M), snd(M) > :
Si nota immediatamente che
1
=
2
perche derivano il tipo lo stesso
termine con lo stesso contesto (esiste ununica derivazione per un termine)
e quindi si potrebbe prelevare la derivazione
1
o
2
scartando il resto della
prova (perche = e
1
:
(E
1
)
2
:
(E
2
)
(I)
Per il caso del case si ha la seguente derivazione
127
case M of inl(x) inl(x) [ inl(y) inl(y)
1
:
d
M :
(Ax)
(
2
)
d
, x : x :
(I
1
)
d
, x : inl(x) :
(Ax)
(
3
)
d
, y : y :
(I
2
)
d
, y : inr(y) :
(E)
d
case M of inl(x) inl(x) [ inr(y) inr(y) :
Nella decorazione si pu` o utilizzare
1
scartando il resto della prova ma
eliminando la decorazione si perde linformazione di come sono state costruite
2
e
3
.
Unimportante propriet` a di ogni linguaggio tipato `e la riduzione del
soggetto (o subject reduction): se un termine ha tipo allora dopo un
passo di riduzione il termine ottenuto ha sempre tipo .
Questo garantisce che tutte le propriet` a che ha un termine tipato li hanno
anche i termini ridotti e quello nale ed inoltre il tipo del termine viene
preservato.
Teorema 27.
d
M : e M
N
d
N :
Dove M
N SSE M
N o M
N.
Dimostrazione. Lalgoritmo di eliminazione dei detour ad ogni passo mo-
dica la dimostrazione associata ad un -termine preservando il sequente
derivato per cui per lisomorsmo di Curry-Howard tale sequente decorato
equivale al -ridotto del -redesso che equivale al sequente decorato primo
dalleliminazione del detour. Questo vale anche nel caso dell-riduzione.
Unaltra propriet` a interessante mostra come due termini -equivalenti
abbiano lo stesso tipo (daltronde hanno lo stesso comportamento nel senso
che applicati al loro distruttore portano allo stesso risultato).
Teorema 28.
d
M : e
d
N : e M
N =
128
Dimostrazione.
.
Riessiva: se M = N allora M ed N sono -equivalenti.
Simmetrica: se M
N oppure N
M allora M ed N sono
-equivalenti
Transitiva: siccome la relazione `e chiusa simmetricamente e riessi-
vamente, allora deve esistere una sequenza non vuota M
1
, . . . , M
n
tale
che M
i
M
i+1
oppure M
i+1
M
i
.
Se n = 1 allora la sequenza `e costituita da solo M
1
ed in eetti
M
1
M
n
= M
1
.
Si prova per induzione sulla lunghezza della sequenza che se
d
M
1
:
e
d
M
n
: ed esiste una sequenza M
1
, . . . , M
n
, n > 0 (con M
1
= M
e M
n
= N) tale che M
i
M
i+1
o M
i+1
M
i
(ossia M
1
ed M
n
sono
-equivalenti) allora = .
n = 1: la sequenza `e costituita dal solo termine M
1
. Ma se
d
M
1
:
e
d
M
1
: allora per unicit` a di tipo = .
n > 1: la sequenza `e M
1
, . . . , M
n
. Per ipotesi induttiva data la sequenza
M
1
, . . . , M
n1
se
d
M
1
: e
d
M
n1
: allora = . Quindi si
hanno due casi
1. M
n1
M
n
, ma allora siccome
d
M
n1
: per la riduzione
del soggetto
d
M
n
:
2. M
n
M
n1
, ma allora se
d
M
n
: per la riduzione del
soggetto
d
M
n1
: ma siccome M
n1
ha tipo allora = .
Il -calcolo tipato ha una sintassi leggermente diversa da quella denita
inizialmente perche le -astrazioni hanno la forma x : .M, ossia `e necessa-
rio esplicitare il tipo del parametro di input della funzione. Questa variante
del -calcolo viene detta -calcolo alla Church.
Esiste anche unaltra variante del -calcolo tipato che si chiama -calcolo alla
Curry ed ha la stessa sintassi del -calcolo non tipato data inizialmente, os-
sia le astrazioni hanno la forma x.M. Questa dierenza non `e irrilevante
ma ha delle grandi implicazioni: si perde lunicit`a del tipo e di conseguenza
un termine non rappresenta pi` u una sola dimostrazione!
Tuttavia dal punto di vista dellinformatica, si tratta di un calcolo pi` u es-
sibile.
129
Si consideri ad esempio il termine x : A A.x (dove A `e un tipo semplice
quindi questa notazione rappresenta esattamente uno ed un solo termine del
-calcolo alla Church)
1
.
La sua derivazione di tipo del sequente x : A A.x : `e unica (il tipo
`e unico) ed `e
(Ax)
x : A A x : A A
( I)
x : A A.x : (A A) (A A)
Ora analizzando la questione dal punto di vista dellinformatica e della
logica si pu` o concludere che
Logica: questo termine rappresenta ununica dimostrazione, e quindi
si pu`o operare sul termine o sulla dimostrazione indierentemente
Informatica: questo termine computa la funzione identit` a f(x) =
x. Tale funzione pu`o funzionare per qualsiasi input, ossia dato un
qualsiasi input viene restituito in output linput stesso, ma la richiesta
di esplicitare il tipo limita linput alle sole astrazioni di tipo A A,
quindi ad esempio lapplicazione (x : A A.x) (y : A.y) `e corretta
ma
(x : A A.x) (< M, N >) non lo `e per il sistema di tipi anche se con
la -riduzione si ottiene < M, N >.
Il termine rispettivo del -calcolo tipato alla Curry (x.x) ha innite pro-
ve della stessa struttura ma per tipi diversi. Ad esempio le due derivazioni
seguenti sono corrette
(Ax)
x : A A x : A A
( I)
x.x : (A A) (A A)
e
x : A B x : A B
( I)
x.x : (A B) (A B)
Perche nella regola di tipo I x quando viene inserita nel contesto `e un
tipo qualsiasi.
1
La notazione x : .x non indica un termine del -calcolo ma una classe di
equivalenza tra tutti i termini che hanno il parametro x di quella forma, ossia per
qualche tipo
130
d
, x : M :
( I)
d
x.M :
Ora analizzando la questione dal punto di vista dellinformatica e della
logica si pu` o concludere che
Logica: questo termine rappresenta innite dimostrazioni per sequenti
diversi (ad esempio per (A A) (A A) e per (AB) (AB)).
Quello che si pu`o dire `e che la struttura `e la stessa, ossia le regole
applicate sono identiche ma non si pu` o pi` u associare ad un termine
una sola dimostrazione
Informatica: ora il tipo del parametro pu` o essere uno qualsiasi per
cui pu`o adattarsi al contesto in cui `e inserito, ad esempio nel caso di
(x.x)(x.x) si adatta al suo input e quindi ha tipo A A mentre
nel caso di (x.x)(< M, N >) ha tipo A B se la coppia ha questo
tipo e quindi si pu`o ora avere la funzione di identit` a generale cercata.
3.2.2 Normalizzazione forte
Nel capitolo precedente era stato detto che unalgoritmo di normalizzazione
che sceglie un qualsiasi detour da rimuovere ad ogni passo termina. Questa
propriet` a `e detta normalizzazione forte. Ora per lisomorsmo di Curry-
Howard si pu`o riportare questa propriet` a nel -calcolo dove ogni termine M
del -calcolo tipato `e fortemente normalizzabile, ossia esiste una sequen-
za nita di -riduzioni che portano M in forma -normale e si pu` o dimostrare
questa propriet` a sul -calcolo anziche sulla logica riportandola poi automa-
ticamente nella logica (per il frammento su cui vale lisomorsmo).
Questa dimostrazione `e piuttosto complicata e richiede parecchi lemmi e
denizioni preliminari.
Sia
= N
[ M
N
e quindi si denisce come linsieme di tutti i termini del -calcolo tipato
a meno di nomi di variabili, ossia come linsieme di classi di -equivalenza
= [M]
[ M
= M [ M fortemente normalizzabile
Denizione 31. Siano A, B
A B = F [ M A F M B
Quindi A B `e linsieme di tutte le funzioni che in B occorrono appli-
cate ad un argomento di A (non `e linsieme di tutte le funzioni che prendono
in input un argomento di A e ne restituiscono uno in B).
Torniamo alla sintassi dei tipi per il -calcolo tipato semplice ( `e una va-
riabile, `e il costruttore di tipo funzionale e e denotano tipi qual-
siasi). Viene ora fornita uninterpretazione semantica ai tipi come insiemi
di -termini. I tipi semplici hanno uninterpretazione ssa che non dipen-
de dunque da nessun contesto (come avviene invece per le semantiche della
logica).
[[]] = SN
[[ ]] = [[]] [[]]
Deniamo ora una particolare classe di insiemi di termini detti insiemi
saturati.
Denizione 32. Sia X SN
, X `e saturato se e solo se
M
1
, . . . , M
n
SN
.x x M
1
. . . M
n
X
M
1
, . . . , M
n
SB
M
0
[M
1
/x] M
2
. . . M
n
X
(x.M
0
) M
1
. . . M
n
X
Lemma 10.
1. SN
`e saturato
2. A, B saturati A B saturato
Dal primo punto della denizione con n = 0 si ha che x X per ogni x
per cui ogni insieme saturato contiene tutte le variabili.
Dimostrazione.
132
1. (a) M
1
, . . . , M
n
SN
.x x M
1
. . . M
n
SN
.
I termini M
1
, . . . , M
n
sono fortemente normalizzabili. Ogni passo
di -riduzione da x M
1
. . . M
n
modica uno dei termini M
i
local-
mente lasciando invariati gli altri. Quindi siccome qualunque sia la
strategia di normalizzazione ogni M
i
raggiunge nitamente la for-
ma normale, siccome ogni strategia di riduzione di x M
1
. . . M
n
riduce un M
i
localmente allora riducendo in un qualche ordine tut-
ti i termini M
i
si arriva nitamente a x N
1
. . . N
n
con N
1
, . . . , N
n
forme normali. Ma a questo punto non esistono pi` u redessi (x N
1
non `e un redesso) e quindi il termine x N
1
. . . N
n
`e in forma
normale.
(b)
M
1
, . . . , M
n
SB
M
0
[M
1
/x] M
2
, . . . , M
n
SN
(x.M
0
) M
1
. . . M
n
SN
Ma se M
0
[M
1
/x] M
2
, . . . , M
n
`e fortemente normalizzabile, allora
si arriva nitamente ad una forma normale per cui da
(x.M
0
) M
1
. . . M
n
si hanno la stessa sequenze con una sola
riduzione in pi` u che porta (x.M
0
) M
1
a M
0
[M
1
/x].
Se SN
per denizione).
Allora essendo anche B saturato x M
1
. . . M
n
M
n+1
B se
M
1
, . . . , M
n+1
sono fortemente normalizzabili.
(b) Occorre dimostrare che
M
0
[M
1
/x] . . . M
2
. . . M
n
A B (x.M
0
) M
1
. . . M
n
A B
Per ogni termine M
1
, . . . , M
n
fortemente normalizzabile. Ma se la
premessa della metaimplicazione `e vera, allora
M
n+1
A M
0
[M
1
/x] . . . M
2
. . . M
n
M
n+1
B
133
e quindi siccome M
n+1
`e fortemente normalizzabile, sfruttando la
denizione di insieme saturato al punto 2 si ha che
M
n+1
A (x.M
0
) M
1
. . . M
n+1
B
e quindi per denizione di A B si ha che
(x.M
0
) M
1
. . . M
n
A B
Quindi ogni interpretazione di un tipo `e un insieme saturato.
Lemma 11. [[]] `e un insieme saturato per ogni .
Dimostrazione. Per induzione sulla sintassi dei tipi.
: [[]] = SN
ma SN
N se y = x
(y) altrimenti
La semantica di un termine viene denita come il termine stesso in cui le
variabili libere vengono sostituite con i termini stabiliti dallinterpretazione-
[[M]]
= M[(x
1
)/x
1
, . . . , (x
n
)/x
n
] se FV (M) = x
1
, . . . , x
n
Denizione 34. Uninterpretazione soddisfa un assegnazione di tipo M : ,
[= M : se e solo se [[M]]
[[]]
134
Denizione 35. Uninterpretazione soddisfa un contesto
d
, [=
d
se e
solo se (x) [[]] per ogni x :
d
.
Denizione 36. Un contesto di tipo
d
soddisfa semanticamente unasse-
gnazione di tipo M : ,
d
[= M : se e solo se
. [=
d
[= M :
Ora che `e stata denita una semantica logica al -calcolo `e possibile
dimostrare il teorema di correttezza come fatto per le logiche.
Teorema 29.
d
M :
d
[= M :
Dimostrazione. Per induzione sulla derivazione
2
di
d
M : .
(Ax)
(Ax)
d
, x : x :
Occorre dimostrare che . [= (
d
, x : ) [= x : . Ma se [=
(
d
, x : ) allora (x) [[]] per denizione e quindi [[x]]
[[]] per
denizione di semantica e quindi [= x : .
( I)
d
, x : M :
( I)
d
x.M :
Occorre dimostrare che
. [=
d
[= x.M : .
Ma per denizione di [= occorre dimostrare che
[[x.M]]
= x.M[(x
1
)/x, . . . , (x
n
)/x
n
] [[ ]] Ma [[ ]] `e un
insieme saturato e anche [[]] e [[]] lo sono, quindi per il lemma 11 e
quindi occorre dimostrare che
N [[]] (x.M[(x
1
)/x, . . . , (x
n
)/x
n
]) N [[]]
Ma per ipotesi induttiva [[M]]
(x:=N)
[[]] con N [[]] perche (x :=
N) [=
d
, x : e quindi (x := N)(x) [[]], cosa che permette di
sostenere che lassegnamento che soddisfa M `e come ma aggiunge la
nuova sostituzione (x) [[]].
Ora siccome per ipotesi induttiva
[[M]]
(x:=N)
= M[(x
1
)/x
1
, . . . , (x
n
)/x
n
, N/x)] [[]] per ogni , N,
allora siccome [[]] `e saturato
(x.M[(x
1
)/x
1
, . . . , (x
n
)/x
n
]) N [[]]
2
o se si desidera sulla struttura del termine M, che `e esattamente la stessa cosa.
135
( E)
d
M :
d
N :
( E)
d
M N :
Allora per ipotesi induttiva se [=
d
allora [[M]]
[[ ]] e
[[N]]
[[N]]
[[]] Ma se
FV (M) = x
1
, . . . , x
n
e FV (N) = y
1
, . . . , y
n
allora
[[M]]
[[N]]
= M[(x
1
)/x
1
, . . . , (x
n
)/x
n
] N[(y
1
)/y
1
, . . . , (y
m
)/y
m
] =
M[(x
1
)/x
1
, . . . , (x
n
)/x
n
, (y
1
)/y
1
, . . . , (y
m
)/y
m
] = [[M N]]
quindi
. [=
d
[[M N]]
[[]]
Ora `e nalmente possibile enunciare il teorema principale, ossia il teorema
di normalizzazione forte.
Teorema 30 (Normalizzazione forte).
d
M : M fortemente normalizzabile
Dimostrazione. Per il teorema di correttezza
d
[= M : , ossia
.x :
d
(x) [[]] [[M]]
[[]]
Siccome questo enunciato vale per ogni , si consideri tale che
x (x) = x. Siccome x, x [[]] perche [[]] `e saturato e ogni insieme
saturato contiene tutte le variabili, allora x :
d
(x) = x [[]] per
cui [[M]]
[[]].
Ma siccome la sostituzione `e neutra, ossia sostituisce ad ogni variabile la
variabile stessa, allora lascia invariato il termine M e quindi
[[M]]
= M [[]]
Ma ogni elemento di [[]] `e fortemente normalizzabile (perche tale insieme `e
saturato), quindi M `e fortemente normalizzabile.
Questo teorema mostra un risultato interessante: ogni programma del -
calcolo tipato termina! Quindi questo linguaggio (a dierenza del -calcolo non
tipato) non `e turing completo perche permette di computare solo funzioni to-
tali.
Ci si aspetterebbe dunque che (x.x x)(x.x x) non `e tipabile, ed infatti
neanche x.x x lo `e!
Intuitivamente tale termine non `e tipabile perche qualsiasi tipo abbia il pa-
rametro x, nel corpo dellastrazione sarebbe richiesto che x abbia tipo
e contemporaneamente tipo .
136
3.3 Sistema F
Per il motivo appena mostrato, il -calcolo tipato non `e abbastanza espres-
sivo perche permette di computare solo alcune funzioni totali.
Si potrebbe allora tentare di stabilire un isomorsmo tra il -calcolo ed unal-
tra logica che, una volta decorata, permetta di avere un sistema di tipi pi` u
espressivo.
In realt`a esistono numerosissimi isomorsmi con le logiche pi` u disparate,
che permettono al linguaggio di programmazione preso in considerazione di
ereditare tutte le propriet` a gi`a studiate nella logica. Verr`a trattato ora
lisomorsmo tra unestensione del -calcolo ed unestensione della logica
intuizionista.
3.3.1 Logiche di ordine superiore
La logica proposizionale, sia classica che intuizionista, `e poco espressiva per-
che permette di legare tramite connettivi degli enunciati ma non permette
di esprimere propriet`a che possono valere su insiemi inniti di elementi.
Per questa ragione ad esempio il principio di induzione non pu` o essere co-
dicato in logica proposizionale (servirebbero innite formule). Tipicamen-
te infatti le teorie vengono costruite sulla logica del primordine (o dei
predicati). Tale logica `e unestensione delle logica proposizionale (che pu`o
essere fatta sia in logica classiche che in logica intuizionista) in cui al posto
delle proposizioni vengono deniti i predicati, che sono unestensione delle
proposizioni con parametri. Ogni parametro di un predicato pu` o contene-
re costanti, funzioni e variabili. Le variabili sono legate dai quanticatori
universale (, letto per ogni ) ed esistenziale (, letto esiste).
Ad esempio, si assuma di voler esprimere in logica proposizionale che doma-
ni piove oppure nevica. Si utilizzerebbero due variabili proposizionali (ad
esempio P, N) legate dal connettivo
P N
Ora questa formula `e vera se almeno una variabile tra P o N `e vera. Quindi
ad ogni variabile si associa un valore di verit` a ( o ). Ora si supponga di
voler esprimere che domani piove a Milano o nevica a Milano, si potrebbero
utilizzare le variabili proposizionali P(Milano) e N(Milano) (dove ad esem-
pio P(Milano) `e intesa come variabile proposizionale atomica, quindi come
se fosse un simbolo - ossia va interpretata come A, B, ecc.)
P(Milano) N(Milano)
137
Ora per esprimere che piove in tutti i posti del mondo `e necessario costrui-
re una variabile proposizionale P(Posto) per ogni posto Posto del mondo e
quindi la formula sarebbe immensamente lunga
(P(Milano) N(Milano)) (P(Torino) N(Torino)) . . .
Ora si supponga di voler esprimere il fatto che il giorno 10 e il giorno 11
a Milano piover`a
P(Milano, 10) P(Milano, 11)
Ma come si esprime in logica il fatto che a Milano piove sempre e sempre
piover`a? Bisognerebbe utilizzare una formula che contiene innite variabili
proposizionali, una per ciascuno degli inniti giorni. In logica del primordine
invece si pu` o costruire un predicato P(x, y) dove x ed y sono variabili (detti
anche individui ) e la semantica di un predicato non `e solo pi` u unassociazione
tra questo ed un valore di verit`a ma unassociazione tra ogni possibile valore
delle variabili x, y ed il valore di verit` a di P. Tramite il quanticatore si pu` o
costruire la seguente formula
x.y.P(x, y)
Oppure
x.y.P(x, y)
per esprimere il fatto che in ogni citt`a esiste un giorno in cui piove.
Ora linterpretazione di una formula della logica classica del primordine
`e costituita principalmente dalla denizione dellinsieme degli individui su
cui un quanticatore pu`o spaziare (detto universo del discorso) e per
ogni predicato, lassociazione ad ogni istanza di predicato con il rispettivo
valore di verit` a. Ad esempio nellinterpretazione in cui luniverso `e 1, 2, 3
e p(1) = , p(2) = , p(3) = , q(1) = , q(2) = , q(3) = , la formula
x.p(x) q(x)
`e vera ma nellinterpretazione in cui luniverso `e N e p(0) = , q(0) =
la formula `e falsa.
Ora esaminiamo solo il quanticatore universale (quello esistenziale non
`e molto interessante per i nostri scopi). Questo itera sugli individui. Nella
138
logica del secondo ordine, che `e unestensione di quella del primordine,
si aggiunge un nuovo tipo di variabile per i predicati su cui i quanticatori
possono iterare. Literazione `e per` o sui predicati, ossia `e possibile esprimere
formule del tipo
x.p.p(x)
Intendendo non solo che per ogni individuo x p(x) deve essere vera, ma che
per ogni individuo x e ogni propriet` a p, p(x) deve essere vera.
La logica del secondo ordine `e pi` u espressiva di quella del primo e pu` o essere
dimostrato. Tuttavia le variabili che denotano individui sono meno impor-
tanti, ossia formule come p.(x.p(x)) (x.p(x)) ossia con quanticatori
annidati sono tipicamente poco interessanti cosicche ogni variabile che de-
nota individui pu`o essere implicitamente intesa quanticata universalmente
(allesterno della formula) eliminando cos` tali quanticatori, ossia al posto
di x.p.p(x) si pu` o scrivere p.p(x) eliminando proprio dalla sintassi x. La
logica ottenuta `e leggermente pi` u povera ma ha comunque molte propriet` a
in comune con la logica del secondo ordine completa. Siccome le variabili che
denotano individui non sono pi` u legate da quanticatori, si pu` o considerare
senza perdita di espressivit` a p(x) una costante e quindi si possono deni-
re immediatamente i quanticatori sulle variabili proposizionali della logica
proposizionale. Tale logica `e detta logica proposizionale del secondo or-
dine ed ha la seguente sintassi (in particolare si tratta del frammento della
logica proposizionale intuizionista del secondo ordine senza )
::= A [ V ariabile proposizionale
X [ V ariabile quantificabile
[ Congiunzione di formule
[ Disgiunzione di formule
[ Implicazione
X. [ Quantificatore universale
Ora occorre ridenire linsieme delle variabili libere e fornire una deni-
zione di sostituzione.
FV (A) = A
FV (X) = X
FV ( ) = FV () FV ()
FV (X.) = FV () X
Con = , , oppure .
139
Una semantica (per semplicit` a classica) intuitiva di questa nuova logica
`e che se una variabile quanticabile occorre libera allora viene interpretata
come una variabile proposizionale, altrimenti formule come X.X = XX
(supponendo di avere ) ossia literatore itera sui valori di verit` a , .
Ora occorre denire la sostituzione (il concetto di sostituzione `e uguale a
quello del -calcolo , ossia si sostituiscono solo occorrenze libere delle va-
riabili) dove utilizzeremo le prime lettere dellalfabeto A, B, C per denotare
variabili proposizionali e le ultime X, Y, Z per le variabili quanticabili.
A[/X] = A
X[/X] =
Y [/X] = Y se X = Y
( )[/X] = [/X] [/X]
(X.)[/X] = X.
(Y.)[/X] = Y.[/X] se Y FV ()
(Y.)[/X] = Z.[Z/Y ][/X] se Y FV () e Z fresca
Il sistema di deduzione naturale di questa logica `e lo stesso di quello
della logica intuizionista con laggiunta di due nuove regole: introduzione ed
eliminazione del quanticatore
X FV ()
(I)
X.
X.
(E)
[/X]
Nella regola di introduzione di , la metacondizione che X FV ()
(X , ) serve per evitare derivazioni semanticamente errate.
Quando una variabile quanticabile `e libera, si interpreta come una variabile
proposizionale per cui ad esempio la seguente derivazione sarebbe errata
X X
(I)
X X.X
Perche X X signica (classicamente) che se X `e vera allora anche X
lo `e, mentre X X.X signica che se X `e vera allora indipendentemente
dal fatto che X `e vera o falsa, la formula X `e vera, ossia tale sequente ()
equivale a X Y.Y .
In questa logica si introduce un nuovo detour: introduzione ed eliminazione
del .
1
: X FV ()
(I)
X.
(E)
[/X]
;
1
: [/X]
140
In realt` a il nuovo sequente di
1
dovrebbe essere [/X] [/X]: in
questo caso `e facile vedere che la derivazione ha la stessa forma di
1
solo
con una formula qualsiasi al posto di X (ma questo non causa problemi nelle
dimostrazioni). Ma FV (X) per cui non occorre sostituire a sinistra del
sequente e quindi tale sequente `e sintatticamente identico a [/X].
3.3.2 -calcolo al secondo ordine
Decorando la logica intuizionista proposizionale del secondo ordine, si ottiene
il -calcolo al secondo ordine detto anche sistema F. Prima di decorare la
logica occorre estendere la sintassi del -calcolo .
M ::= x [ V ariabile
x : .M [ Astrazione
M M [ Applicazione
X.M [ Astrazione di tipo
M [ Applicazione di tipo
< M, M > [ Coppia
fst(M) [ Proiezione
1
snd(M) [ Proiezione
2
inl(M) [ Injection left
inr(M) [ Injection right
case M of inl(x) M [inr(x) M Case
Dove `e un tipo la cui sintassi `e quella della logica del secondo ordine
data nella sezione precedente, quindi `e un tipo eventualmente quanticato.
Lidea di questo calcolo `e quella di rendere i tipi oggetti di prima classe (in
eetti si pu` o computare con i tipi) proprio come nel -calcolo semplice lo
sono le funzioni.
Lidea `e quella di avere il polimorsmo di tipo, ossia le variabili propo-
sizionali (che corrispondono ai tipi semplici) denotano un tipo di base (es.
interi, reali, ecc.) mentre le variabili quanticabili (corrispondenti a variabili
di tipo) denotano proprio un tipo generico. Quindi ad esempio anche con
il -calcolo alla Church `e possibile costruire la funzione identit` a generica (si
veda lesempio fatto nellisomorsmo di Curry-Howard quando si paragonava
il -calcolo alla Church con quello alla Curry). Il termine `e il seguente
X.x : X.x
Questa astrazione accetta due argomenti (in forma currycata): il primo `e
un tipo ed il secondo un -termine. Il parametro x `e dunque tipato con un
141
tipo polimorfo (ossia generico) ma applicato ad un tipo assume quel tipo,
quindi ad esempio si pu`o avere
(X.x : X.x)
x : .x
Pu` o sembrare che questo non renda il -calcolo pi` u espressivo dal mo-
mento che il -calcolo alla Curry permetteva gi` a di esprimere il fatto di avere
parametri polimor, o meglio che si adattano alla funzione a cui sono ap-
plicati, ma verr` a mostrato pi` u avanti come il sistema di tipi per il Sistema F
permette di tipare pi` u termini del -calcolo alla Curry, tra cui x.x x.
M[/X]
Dove [/X] `e una sostituzione di tipo denita nel seguente modo
x[/X] = x
(x : .M)[/X] = x : [/X].M[/X]
(X.M)[/X] = X.M
(Y.M)[/X] = Y.M[/X] se Y FV ()
(Y.M)[/X] = Z.M[Z/Y ][/Z] se Y FV () e Z fresca
(M N) = M[/X] N[/X]
(M ) = M[/X] [/X]
< M, N >=< M[/X], N[/X] >
. . .
Ora `e possibile decorare la logica del secondo ordine con il Sistema F. Il
sistema di deduzione naturale di tale logica corrisponde a quello che `e stato
decorato nellisomorsmo di Curry-Howard con laggiunta delle due regole
per i quanticatori
d
M : X FV (
d
)
(I)
d
X.M : X.
d
M : X.
(E)
d
M : [/X]
Ora si pu`o mostrare come la nuova -regola sia isomorfa al nuovo detour
introdotto nella sezione precedente.
1
:
d
M : X FV (
d
)
(I)
d
X.M : X.
(E)
d
(X.M) : [/X]
;
1
:
d
M[/X] : [/X]
(X.M)
M[/X]
142
Lultima cosa importante da mostrare `e che nel Sistema F `e possibile
tipare lautoapplicazione (x.x x) scrivendola nel seguente modo
X.x : (Y.Y Y ).(x X X) (x X)
Il typing `e il seguente
(Ax)
x : Y.Y Y x : Y.Y Y
(E)
x : Y.Y Y (x X X) : (X X) (X X)
(Ax)
x : Y.Y Y x : Y Y
(E)
x : Y.Y Y x X : X X
( E)
x : Y.Y Y (x X X) (x X) : X X
( I)
x : (Y.Y Y ).(x X X) (x X) : (Y.Y Y ) (X X)
(I)
X.x : (Y.Y Y ).(x X X) (x X) : X.((Y.Y Y ) (X X))
Il Sistema F ha la propriet`a di normalizzazione forte per cui non `e turing
completo, ma `e comunque pi` u potente del -calcolo semplice e permette di
computare tutte le funzioni dallanalisi matematica ed in generale pu` o im-
plementare laritmetica di Peano del secondo ordine.
3.4 PCF
Il linguaggio PCF (Programming computable functions) `e un linguaggio di
programmazione funzionale che estende il -calcolo in un modo diverso dal
Sistema F, ossia invece di utilizzare il polimorsmo di tipo si introduce il
punto sso come elemento sintattico primitivo e si inserisce nelle sue regole
di tipo.
La sintassi dei tipi di PCF `e la seguente
::= [ Tipo naturale
[ Tipo funzionale
La sintassi di PCF `e la seguente
143
M
::= x
[ V ariabile
(x
.N
1
)
1
[ Astrazione
(P
1
Q
1
[ Applicazione
n
[ Numero naturale
succ
[ Funzione successore
pred
[ Funzione predecessore
if
1
[ Selezione
Y
(M
(Y M)
144
3.5 Type inference
I classici problemi riguardanti i sistemi di tipo sono
Type-Checking: vericare con le regole di tipo che M : `e
corretto ossia vericare che dato il contesto , M abbia eettivamente
tipo
Type-Inference: vericare che , M :
Entrambi sono problemi decidibili ma la type-inference `e pi` u complicata.
3.5.1 Unicazione
Prima di fornire algoritmi di type-inference occorre mostrare un algoritmo di
unicazione.
Lunicazione `e spesso utilizzata nella logica del primordine per unica-
re predicati e funzioni. Si denisce dunque un linguaggio su cui applicare
lalgoritmo che coincide con quello dei termini della logica del primordine
t ::= x [ V ariabile
c [ Costante
f
(n)
t . . . t Funzione
Informalmente, il problema dellunicazione `e quello di trovare una sosti-
tuzione (funzione da variabili a termini) che applicata a due termini li renda
identici.
Denizione 37. Una sostituzione `e una funzione S da variabili a termini
tale che S(x) = x eccetto per un numero nito di variabili tali che S(x) = t.
La denizione pu`o essere poi estesa allintera sintassi
S(x) = t se x t nella definizione di S
S(c) = c
S(f
(n)
t
1
. . . t
n
) = f
(n)
S(t
1
) . . . S(t
n
)
Pi` u formalmente il problema dellunicazione consiste nel dare soluzione
al seguente sistema di equazioni
t
1
= t
1
, . . . , t
n
= t
i
)
per 1 i n (dove i vari t
i
e t
i
sono termini del linguaggio appena denito).
145
Ad esempio data lequazione f x = f c, g y = g z dove x, y sono
variabili e c `e una costante, una sostituzione S tale che risolve il siste-
ma (unicatore) `e la sostituzione tale che S(x) = c, S(y) = z. Infatti
S(f x) = f c, S(f c) = f c, S(g y) = g z, S(g z) = g z, ossia
S(f x) = S(f c), S(g y) = S(g z) quindi lunicatore S rende uguali i due
termini ai lati di ogni uguaglianza.
Si noti che la soluzione pu` o essere trovata trasformando il sistema nella se-
guente forma (detta forma risolta)
x = c, y = z dove la forma di questo sistema suggerisce quale sar` a la so-
stituzione S (ossia S(x) = c, S(y) = z).
Denizione 38. Un sistema t
1
= t
1
, . . . , t
n
= t
n
`e in forma risolta se
e solo se
`e nella forma x
1
= t
1
, . . . , x
m
= t
1
, . . . , x
m
= t
m
`e
una sostituzione S tale che S(x
i
) = t
i
e S(x) = x se x non occorre nella
parte sinistra di nessuna equazione.
Denizione 39. Un sistema `e irrisolubile se e solo se
f
(n)
t
1
. . . t
n
= g
(m)
u
1
. . . u
m
con f = g o n = m
c = t con c = t e t non `e una variabile
x = f
(n)
t
1
. . . t
n
dove x occorre in qualche t
i
Denizione 40. Due sistemi sono equivalenti se e solo se hanno la stessa
soluzione.
Ora `e possibile mostrare lalgoritmo di unicazione.
Teorema 31. Per ogni sistema di equazioni E esiste un sistema E
ad esso
equivalente ed in forma risolta oppure E `e irrisolubile.
146
Non verr` a trattata la dimostrazione nei dettagli, ma verr` a soltanto mo-
strato lalgoritmo che risolve E: lalgoritmo di unicazione di Robinson.
Lalgoritmo, dato in input un sistema E, produce ad ogni passo un sistema
E
c c, c = c
`e risolubile con lalgoritmo di unicazione di Robinson applicando i seguenti
passi
1. Applicazione del caso 3 sulla prima equazione
f x = f c, g (h a) y z = g x
c c, c = c ;x = c, g (h a) y z = g x
c c, c = c
2. Applicazione del caso 3 sulla seconda equazione
x = c, g (h a) y z = g x
c c, c = c ;x = c, h a = x
, y = x, z = c, c = c
3. Applicazione del caso 2 sulla seconda equazione
x = c, h a = x
, y = x, z = c, c = c ;x = c, x
= h a, y = x, z = c, c = c
4. Applicazione del caso 4 sulla prima e sulla terza equazione
x = c, x
= h a, y = x, z = c, c = c ;x = c, x
= h a, y = c, z = c, c = c
5. Applicazione del caso 5 sullultima equazione
x = c, x
= h a, y = c, z = c, c = c ;x = c, x
= h a, y = c, z = c
147
Il sistema x = c, x
c c) =
g (h a) c c, S(c) = c.
Una volta ottenuto il sistema non pi` u semplicabile occorre vericare che
questo `e in forma risolta. Una delle operazioni da fare per compiere tale
verica `e quella di vericare che una variabile che occorre a sinistra di una
qualche equazione non occorra a destra. Tale operazione `e detto occour
check ed `e la parte pi` u costosa dellunicazione e per questo motivo quando
non strettamente necessaria non viene eseguita.
Si noti che dato un sistema come il seguente f x = f (f y) esistono
inniti unicatori
S
0
(x) = f y, S
0
(y) = y, infatti S
0
(f x) = f (f y), S
0
(f (f y)) = f (f y)
S
1
(x) = f (f c), S
1
(y) = f c, infatti S
1
(f x) = f (f (f c)), S
1
(f (f y)) =
f (f (f c))
S
2
(x) = f (f (f c)), S
2
(y) = f (f c), infatti S
2
(f x) = f (f (f (f c))), S
2
(f (f y)) =
f (f (f (f c)))
ecc.
Ma la prima sostituzione (S
0
) `e quella pi` u generale perche non stabilisce
nulla su y che in eetti pu` o avere un qualsiasi valore. Le altre sostituzioni
invece sono pi` u speciche perche stabiliscono qualcosa su y. Diremo che un
unicatore `e il most general unier se ogni altro unicatore per un sistema
`e unestensione di tale unicatore, nel senso che se S
0
`e il mgu allora ogni
altro unicatore S `e tale che S
0
(x) = S(x) oppure S
0
(x) = x, S(x) = t, t = x.
Si pu`o dimostrare che lalgoritmo di unicazione di Robinson trova il mgu.
Teorema 32 (Correttezza). Sia t
i
= u
i
con 1 i n un problema di
unicazione, allora
Se lalgoritmo porta tale problema nella forma risolta x
j
= v
j
, 1
j m, allora esiste un unicatore S tale che j.1 j m S(x
j
) =
v
j
= S(v
j
)
Se il sistema genera una forma irrisolubile allora il sistema non ha
soluzione.
148
Ma anche una volta dimostrata la correttezza, non si `e certi che lalgorit-
mo pu` o terminare portando il sistema in una forma che non `e ne risolta ne
irrisolubile.
Questo risultato lo fornisce il teorema di completezza.
Teorema 33 (Completezza). Sia t
i
= u
i
con 1 i n un problema di
unicazione, allora
Se esiste una sostituzione tale che S(t
i
) = S(u
i
), 1 i m allo-
ra lalgoritmo genera una forma risolta x
j
= v
j
, 1 j m dove
S(x
j
) = v
j
= S(v
j
), 1 j m
Sia S
0
una sostituzione tale che S
0
(x
j
) = v
j
, 1 j m e S(x) =
x, x = x
j
allora esiste una soluzione S tale che S = S
S
0
per qualche
S
0
.
Il secondo punto del teorema enuncia che la sostituzione trovata dallal-
goritmo di Robinson `e la pi` u generale possibile.
3.5.2 Ricostruzione di tipo
Per eseguire la type-inference occorre utilizzare un algoritmo di ricostruzione
di tipo, ossia un algoritmo che una volta raggiunte le foglie dellalbero di
derivazione stabilisca il tipo delle variabili nelle assunzioni per poi comporre
il tipo nale.
Per il -calcolo tipato alla Curry, lalgoritmo si basa sulla seguente idea:
costruire un sistema di equazioni E
M
(equazioni di tipo, ad esempio nella
forma = ) con M il tipo per cui eettuare la type-inference e trat-
tarlo come problema di unicazione.
Se il sistema ha soluzione allora il termine per cui eettuare la ricostruzione
di tipo ha tipo
M
.
Si assume che variabili libere e legate abbiano nomi distinti e che nessuna
variabile legata occorra pi` u volte in una denizione .
Lalgoritmo `e denito per induzione sul termine M su cui eettuare la
ricostruzione di tipo. Dato in input tale termine, lalgoritmo eettua una
delle seguenti scelte in base alla sua forma e restituisce in output la coppia
(E
M
,
M
).
M = x: E
M
= e
M
=
x
con
x
fresca
149
M = P Q: E
M
= E
P
E
Q
P
=
Q
e
M
= con fresca
M = x.P: E
M
= E
P
e
M
=
x
P
Il sistema E
M
`e intuitivamente un insieme di vincoli che vengono col-
lezionati e alla ne la soluzione di tale sistema genera un unicatore che
applicato a
M
restituisce il tipo di M. Si noti che il tipo trovato `e in realt` a
uno schema di tipo ossia un tipo polimorfo perche esistono inniti tipi per
un -termine alla Curry, uno per ogni possibile istanziazione delle variabili
di tipo in
M
. Ad esempio il termine x.x avr` a lo schema di tipo
dove denota un tipo qualsiasi. In ogni caso siccome per risolvere il sistema
E
M
si utilizza lalgoritmo di unicazione di Robinson lunicatore `e il pi` u
generale possibile per cui lo schema di tipo trovato da questo algoritmo di
ricostruzione di tipo `e il pi` u generale possibile.
Nel sistema E
M
ogni tipo ,
x
, `e una variabile.
Il tipo di M `e dunque S(
M
) dove S `e la sostituzione (soluzione) del siste-
ma E
M
. Inoltre S serve anche per ricavare il contesto di tipo per M dove
S(
x
) = (x), FV (M).
Una volta trovata la soluzione S del sistema E
M
e il tipo
M
il type-judgment
`e x : [ x FV (M) e = S(
x
) M : S(
M
).
Segue un esempio in cui si ricostruisce il tipo per il termine (x.x) (y.y).
input: M = P Q, P = x.x, Q = y.y
E
M
= E
P
E
Q
P
=
Q
,
M
=
Richiamo ricorsivo su P
input: P = x.P
, P
= x
E
P
= E
P
,
P
=
x
P
Richiamo ricorsivo su P
input: P
= x
E
P
= ,
P
=
x
output: E
P
= ,
P
=
x
x
Richiamo ricorsivo su Q (analogo al richiamo su P ma il tipo di y `e
y
), quindi con output E
Q
= ,
Q
=
y
y
output: E
M
=
x
x
= (
y
y
) ,
M
=
150
Ora si pu` o risolvere il sistema
x
x
= (
y
y
) con lalgoritmo di unicazione di Robinson (la
notazione `e equivalente alla funzione ).
La soluzione del sistema `e
=
y
y
,
x
=
y
y
M : S(
M
), ed `e cor-
retto.
Questo per` o sotto lipotesi che il sistema restituito in output per M
(E
M
) abbia soluzione S, ma questo teorema va dimostrato sotto li-
potesi che il sistema per x.M abbia soluzione e dato che questi due
sistemi coincidono, si pu` o concludere che E
M
ha soluzione (sotto le
ipotesi del teorema).
Il typing trovato dallalgoritmo `e x.M : S(
x
M
) (dove il si-
stema restituito `e sempre E
M
quindi anche S rimane invariata e di con-
seguenza anche =
x : S(
x
) perche FV (x.M) = FV (M)x).
Si hanno due casi
151
1. x FV (M), allora
, x : S(
x
) e quindi il typing trovato
dallalgoritmo `e corretto in quanto esiste la seguente derivazione
, x : S(
x
) M : S(
P
)
(ABS)
x.M : S(
x
) S(
P
)
Ma
, x : S(
x
) M : che permette di eettuare la
derivazione precedente.
P Q: (P Q) =< E
P
E
Q
P
=
Q
, >. Il typing trovato
dallalgoritmo `e P Q : S() dove S `e la soluzione di E
M
= E
P
E
Q
P
=
Q
.
Per ipotesi induttiva se S
`e la soluzione di E
P
e S
quella di E
Q
allora
i Judgment trovati dallalgoritmo per P e per Q sono rispettivamente
i seguenti
P
P : S
(
P
)
Q
Q : S
(
Q
)
Ma siccome E
M
E
P
e E
M
E
Q
allora S `e una specializzazione delle
due sostituzioni per cui si pu` o considerare come caso particolare
P : S(
P
) e Q : S(
Q
) con S(
P
) = S(
Q
) = S(
Q
) S()
per cui la derivazione trovata dallalgoritmo `e corretta ed `e la seguente
P : S(
P
) S() Q : S(
Q
)
(APP)
P Q : S()
Teorema 35 (Completezza). Sia M un -termine con typing M :
allora (M) =< E
M
,
M
> ed esiste una soluzione S di E
M
tale che S(
x
) =
(x), x FV (M) e = S(
M
).
Dimostrazione. Per induzione sulla derivazione M : (o su M).
(V AR): la derivazione `e la seguente
(V AR)
x :
x
x :
x
Lalgoritmo restituisce la coppia < ,
x
> dove S `e la funzione identit` a.
Si ha dunque che S(
x
) =
x
e quindi = x : S(
x
) = x :
x
.
152
(ABS): la derivazione `e la seguente
, x :
x
M :
M
(ABS)
x.M :
x
M
Per ipotesi induttiva (M) =< E
M
,
M
> dove x FV (M) x :
x
(x) = S(
x
) e
M
= S(
M
) dove S `e la soluzione del sistema E
M
.
Ma (M) =< E
M
,
x
M
> per cui la soluzione del sistema re-
stituito in output dallalgoritmo su x.M (che `e E
M
) `e sempre S ma
FV (x.M) = FV (M) x per cui x FV (x.M) (x) = S(
x
)
e
x
M
= S(
x
M
) = S(
x
) S(
M
) =
x
M
.
APP: la derivazione `e la seguente
P :
Q
Q :
Q
(APP)
P Q :
Per ipotesi induttiva (P) =< E
P
,
P
> e (Q) =< E
Q
,
Q
> dove le
soluzioni dei due sistemi sono S
e S
(
x
) =
S
(
x
),
Q
= S
P
) e = S
Q
).
Siccome (P Q) =< E
M
E
Q
P
=
Q
> la soluzione del
sistema restituito in output dallalgoritmo per P Q `e pi` u generale di S
() e x (x) = S(
x
).
Si noti che, siccome la sostituzione trovata dallalgoritmo di unicazione
di Robinson `e la pi` u generale possibile e siccome questa viene applicata a
M
per tipare il termine M, di conseguenza esistono altre sostituzioni pi` u
speciche applicabili su
m
e questo signica che lo schema di tipo inferito
dallalgoritmo di ricostruzione di tipo `e il pi` u generale possibile.
3.5.3 ML
Lalgoritmo di ricostruzione di tipo mostrato `e limitato al -calcolo tipato al-
la Curry. Si vorrebbe estendere tale algoritmo a un linguaggio pi` u espressivo
come il Sistema F. Il problema `e che sia il type-checking che la type-inference
sono indecidibili nel Sistema F.
Milner ha inventato un linguaggio chiamato ML (Meta Language) che `e
unestensione del -calcolo tipato semplice il cui sistema di tipo ha tipi poli-
mor ma type-checking e type-inference sono decidibili.
Viene riportata in seguito la sintassi del frammento minimale di ML
153
M ::= x [ V ariabile
x.M [ Astrazione
M M [ Applicazione
let x = M in M Let
La strategia di valutazione `e call-by-value ed il sistema di tipi `e lo stesso
del -calcolo tipato semplice alla Curry con laggiunta delle regole per i tipi
polimor e per il let.
Unespressione della forma let x = M
1
in M
2
dal punto di vista computazio-
nale `e equivalente a (si riduce allo stesso termine dellespressione)
(x.M
2
) M
1
Il let `e intuitivamente lequivalente della dichiarazione dei parametri locali
nei linguaggi di programmazione imperativi o ad oggetti.
La sintassi dei tipi `e la seguente
::= [ V ariabile di tipo
Tipo funzionale
::= . Schema di tipo
Dove denota una lista di variabili di tipo (quindi
1
, . . . ,
n
) Si noti
che in questa sintassi dei tipi il quanticatore delle variabili pu`o apparire
solo allesterno dei tipi (non `e possibile annidare i quanticatori) ed `e questa
limitazione che distingue il polimorsmo di ML da quello del Sistema F e che
lo rende dunque decidibile.
Le regole di tipo sono le seguenti
(V AR)
x : (x)
, x :
1
M :
2
(ABS)
x.M :
1
2
M :
1
2
N :
1
(APP)
M N :
2
M : FV ()
(I)
M : .
M : .
(E)
M : [/ ]
M
1
: , x : M
2
:
(LET)
let x = M
1
in M
2
:
La regola (V AR) `e del tutto analoga a quella del -calcolo solo con una
notazione diversa ((x) `e il tipo assegnato a x nel contesto ed tale type
154
judgment `e valido solo se lassociazione x : esiste nel contesto per qualche
).
Si noti inoltre che le regole di tipo per il frammento che corrisponde al -
calcolo tipato semplice rimangono invariate, e non `e possibile quanticare i
tipi di tali termini, quindi le variabili legate a rimangono monomorfe, men-
tre quelle legate a let possono essere polimorfe.
Con questo sistema di tipi si possono tipare termini come (x.x x) (y.y)
ma devono essere tradotti nella forma let x = y.y in x x. Infatti il primo
termine non `e tipabile in ML (perche le regole di tipo per applicazioni ed
astrazioni sono le stesse del -calcolo tipato e quindi non sono ammessi schemi
di tipo) ma lo `e il secondo.
(V AR)
y : y :
(ABS)
y.y :
(I)
y.y : .
1
: x : . x :
2
: x : . x :
(APP)
x : . x x :
(LET)
let x = y.y in x x :
Dove
1
`e la seguente derivazione
(V AR)
x : . x : .
(E)
x : . x :
e
2
la seguente
(V AR)
x : . x : .
(E)
x : . x :
Ora `e possibile fornire lalgoritmo di type-inference di Milner per ML.
Sia 1 lalgoritmo di Milner, questo `e denito da
Input: < , M >, dove `e il contesto di tipo in cui tipare M
Stato: < , V >: `e la sostituzione corrente da variabili di tipo a tipi
(equivale allipotetica soluzione parziale del sistema E
M
creato ad un
certo istante nellalgoritmo di ricostruzione di tipo dato nella sezione
precedente), V `e linsieme delle variabili fresche
Output: tipo tale che esiste la derivazione M : ()
155
Invarianti
1. `e nella forma MGC(C) (MGC `e il most general unier, ossia
la soluzione principale S del sistema C) di un qualche insieme di
vincoli C
2. V , non occorre ne in , ne in ne in C.
Lalgoritmo `e imperativo e ogni istruzione verr` a preceduta con la parola
chiave do oppure da return se la procedura termina e restituisce un valore.
fresh =
do V
do V V
return
1(, x) =
let
1
, . . . ,
n
. = (x), n 0
do
1
, . . . ,
n
= fresh, . . . , fresh
return [
i
/
i
]
1(, x.M) =
do = fresh
do
1
= 1( x : , M)
return
1
1(, N P) =
do
1
= 1(, N)
do
2
= 1(, P)
do = fresh
do mgu((
1
) = (
2
))
return
1(, let x = M in N) =
do
1
= 1(, M)
let = FV (
1
).(
1
)
return 1( x : , N)
La funzione fresh genera una variabile fresca.
La funzione 1 viene denita per induzione su M
x: il tipo associato alla variabile `e quello presente nel contesto, even-
tualmente e se questo `e uno schema di tipo, viene istanziato con varia-
bili di tipo fresche.
156
Se un tipo `e polimorfo questo viene istanziato in modo tale che ogni
typing trovato dallalgoritmo abbia tipo monomorfo, ma in ogni caso il
parametro del let verr`a assunto polimorfo e se dovesse servire istanzia-
re un termine in pi` u modi diversi, questo viene fatto proprio in questo
caso.
x.M: il tipo associato allastrazione `e il tipo dove `e il tipo
di x che `e fresco e viene introdotto nel contesto per tipare M e `e il
tipo di M.
N P: viene tipato N con tipo
1
e P con tipo
2
e successivamente si
esprime il vincolo che (
1
) (ossia il tipo
1
istanziato con la sostituzione
nora trovata) deve essere uguale al (
2
). Questo equivale
alloperazione eettuata nellalgoritmo di ricostruzione di tipo per il
-calcolo tipato semplice dove si aggiungeva tale vincolo al sistema.
In questo caso invece viene immediatamente generata la sostituzione
che esprime questo vincolo. Infatti mgu di questo vincolo corrisponde
proprio a trovale le sostituzioni per le variabili in modo tale che il
vincolo venga rispettato. Loperatore `e la concatenazione di funzioni
che esprime il fatto che lunicatore nora trovato viene esteso con
mgu(. . .) in modo tale che si uniscano tutti i vincoli nora trovati in
con quello appena trovato.
let x = M in N: il parametro del let viene assunto polimorfo =
FV ().(
1
) per avere la possibilit`a di istanziarlo in pi` u modi diversi
durante il typing di N.
Si noti come questo algoritmo nasconda implicitamente le regole di intro-
duzione ed eliminazione del quanticatore universale.
Vediamo ora come viene tipato il termine let x = y.y in x x con questo
algoritmo. Il contesto `e vuoto (il termine `e chiuso). Inizialmente anche la
sostituzione `e vuota (per ogni input M) - cio`e `e la funzione identit` a - e
viene costruita durante lesecuzione dellalgoritmo.
157
1(, let x = y.y in x x)
do
1
= 1(, y.y)
do
y
= fresh
do
1
= 1(y :
y
, y)
let
y
= (y)
do
1
,
0
, operazione nulla
return
y
do
1
=
y
return
y
y
do
1
=
y
y
let =
y
.
y
y
return 1(x :
y
.
y
y
, x x)
do
1
= 1(x :
y
.
y
y
, x)
let
y
.
y
y
= (x)
do
y
= fresh
return
y
do
1
=
y
do
2
= 1(x :
y
.
y
y
, x)
let
y
.
y
y
= (x)
do
y
= fresh
return
y
do
2
=
y
do = fresh
do mgu(
y
= (
y
)) ID, con ID la
funzione identit` a
t.c. (
y
) =
y
, () =
y
return
return
Il tipo ottenuto `e , quindi
let x = x.x in x x : () =
y
158
Capitolo 4
Logica lineare
Nei capitoli 1 e 2 sono state descritte rispettivamente la logica classica e quella
intuizionista. Entrambe le logiche hanno una caratteristica in comune: una
dimostrazione pu`o essere riutilizzata pi` u volte perche una volta dimostrata
una formula questa rimane sempre vera.
La logica lineare, inventata da Girard, `e invece una logica in cui questa
propriet` a non vale sempre perche le formule sono interpretate come asser-
zioni su risorse (ad eccezione di qualche tipo di formula, come vedremo in
seguito).
Una variabile proposizionale A ad esempio, indica che la risorsa A pu`o essere
utilizzata.
Come vedremo questa visione della logica `e di grande utilit`a pratica nellin-
formatica, dove ad esempio le risorse computazionali (spazio, tempo, ecc.) si
consumano per cui non si possono riutilizzare certe dimostrazioni. Linter-
pretazione di un sequente della deduzione naturale ad esempio `e la seguente
signica che utilizzando tutte e sole le risorse in (o meglio se le
asserzioni sulla disponibilit` a delle risorse in sono tutte vere) la risorsa
pu` o essere ottenuta (o meglio lasserzione sulla disponibilit` a della risorsa
`e vera) ma spendendo tutte e sole le risorse in .
Sorgono allora due problemi
Il weakening non `e pi` u una regola valida: se da si deduce non `e
vero che da , si deduce perche la risorsa non verrebbe utilizzata
(le risorse assunte nel contesto devono essere utilizzate tutte).
Siccome le risorse vengono utilizzate tutte, se si pu` o una risorsa
disponendo di due copie (, , ) allora non si pu`o ottenere
la stessa risorsa con una sola copia di , ossia , non `e valido
perche richiederebbe di utilizzare due volte la risorsa ma una risorsa
159
pu` o essere utilizzata una ed una sola volta. Ne consegue che anche la
regola di contrazione non `e pi` u valida.
Le regole strutturali (a parte la regola dello scambio) non possono dunque far
parte di un sistema di deduzione per la logica lineare e tanto meno possono
essere derivate.
Ne consegue che la formulazione additiva e moltiplicativa delle regole logiche
dei sistemi di deduzione non sono pi` u equivalenti perche la dimostrazione
della loro equivalenza richiedeva proprio le regole di contrazione e weakening
(si veda il capitolo 2).
Come conseguenza occorre considerare per ogni connettivo entrambi i tipi di
regole, ma questo permetterebbe di poter utilizzare entrambe le regole per
ogni connettivo. La soluzione sta nel dare due varianti per ogni connettivo
(tralasceremo per ora il caso dellimplicazione) dando cos` origine a quattro
connettivi distinti
: (letto times, o talvolta tensor) per la versione moltiplicativa e
& (letto with) per la versione additiva
: ` (letto par) per la versione moltiplicativa e (letto plus) per
la versione additiva
Le regole per questi nuovi connettivi sono cos` le seguenti
, ,
(L)
,
,
,
(R)
,
, ,
,
i
(&L
i
)
,
1
&
2
, ,
(&R)
&,
,
(` L)
,
, ` ,
` ,
(` R)
, ,
, ,
(L)
,
i
,
(R
i
)
1
2
,
Un sequente `e denito in questa logica come una coppia di liste, ma come
al solito verr` a considerata implicita la regola di scambio cos` da trattare i
sequenti come coppia di multiinsiemi.
Siccome tutte le risorse in un contesto vanno utilizzate, la regola dellassio-
ma che permette di derivare , con non vuoto non `e pi` u valida,
160
anche perche altrimenti sarebbe derivabile la regola di weakening. La regola
dellassioma `e dunque quella utilizzata in logica intuizionista
(Ax)
Ma la regola
(Ax)
,
non `e derivabile.
Informalmente, i connettivi e & permettono di esprimere il connettivo
in casi diversi, ossia aggiungono espressivit`a alla logica.
Si consideri allora il seguente esempio: si suppone di disporre di 1MB su
una penna USB (asserzione A). Si hanno a disposizione due le da caricare
in essa, ciascuno da 1MB (quindi si vuole utilizzare 1MB, consideriamola
sempre come asserzione A - perche il signicato `e sempre lo stesso, ossia si
ottiene 1MB solo che in un caso si assume mentre nellaltro si deduce).
Il signicato della formula A A non `e chiaro o meglio `e ambiguo. Infatti
in questo caso il connettivo denota il fatto che entrambi i le possono
essere copiati entrambi sulla penna USB ma non `e chiaro se possono essere
copiati assieme o se occorre sceglierne uno. La formula A A denota che i
le possono essere copiati entrambi, mentre A&A signica che i le possono
essere potenzialmente copiati entrambi ma se ne dovr` a scegliere uno. Infatti
la derivazione
(Ax)
A A
(Ax)
A A
(&R)
A A&A
Dalle regole di deduzione si evince che, come in logica classica il sequente
1
, . . . ,
n
1
, . . .
m
era semanticamente equivalente a
1
. . .
n
1
. . .
m
, in logica intuizionista tale sequente equivale a
1
. . .
n
1
` . . . `
m
.
Indica proprio che se disponendo di 1MB `e possibile memorizzare un le
di 1MB allora i due le di 1MB possono essere copiati entrambi ma non
contemporaneamente. Si noti che per derivare A AA sarebbe necessaria
la regola di contrazione per ottenere A, A AA ma questo signicherebbe
che se si dispone di 1MB si pu`o assumere di disporre di 1MB e di un altro
MB ossia di 2MB il che `e assurdo!
Il connettivo ` `e invece intuitivamente pi` u interessante in quanto modella la
possibilit`a di ottenere risorse in parallelo. La formula A ` B indica quindi
che A e B possono essere ottenute assieme ma mediante processi paralleli,
161
mentre AB indica che si pu` o ottenere una sola delle risorse (mentre A&B
indica che si possono ottenere potenzialmente entrambe ma solo una contem-
poraneamente).
Si consideri il seguente esempio:
si vive nellepoca del baratto e sono note le seguenti regole
con 1 Kg di pane si pu` o ottenere 1 Kg di farina, formalizzabile come
P F
con 1 Kg di arance si pu`o ottenere 1 litro di latte, formalizzabile come
A L
Ora si suppone che Marco abbia a disposizione 1 Kg di patate ed uno
di arance ma pu`o utilizzarne solo 1 (P&A), allora (con le regole appena
mostrate) potr` a permettersi di ottenere 1 Kg di farina ed 1 litro di latte, ma
ne pu` o ottenere uno solo e questo dipende dalle risorse che decide di utilizzare
(F&L).
Anche Carlo indipendentemente da Marco eettua il baratto. Egli ha a
disposizione 2 Kg di patate (P P) e con questi pu` o ottenere 1 litro di latte
oppure 2 Kg di farina ma uno dei due potrebbe non poterselo permettere
(infatti non pu` o comprare del latte), e questo si denota con L (F F).
Quanto appena detto riguardo a quanto possono permettersi Marco e Carlo
`e intuitivamente vero seguendo le regole di baratto.
Questo pu`o essere formalizzato come
(P&A) ` (P P) (F&L) ` (L (F F))
Dove ` denota proprio il parallelismo tra le azioni di baratto.
Ed in eetti esiste una derivazione per questo sequente se esiste la derivazione
per i due sequenti che formalizzano lipotesi di baratto.
1
: P F
(&L
1
)
2
: P&A F
A L
(&L
2
)
P&A L
(&R)
P&A F&L
3
: P P L (F F)
(` L)
(P&A) ` (P P) F&L, L (F F)
(` R)
(P&A) ` (P P) (F&L) ` (L (F F))
Si provi a concludere la derivazione vericando che eettivamente
3
esi-
ste (
1
e
2
esistono per ipotesi, dove P, F, A, L possono essere considerate
162
metavariabili).
Il sistema di deduzione dato per questa logica `e per ora il calcolo dei
sequenti per cui sembra ragionevole introdurre una regola del cut ma quale?
Quella additiva non permetterebbe di dimostrare leliminazione del taglio
nel caso in cui la premessa a sinistra sia un assioma (a causa della forma
dellassioma in questa logica). Infatti tale caso con il cut additivo sarebbe
(Ax)
: ,
(Cut)
Ma in assenza di regole di weakening e contrazione non si pu`o contrarre
il sequente derivato da ed in generale non si potrebbe applicare nessun
tipo di modica a questa derivazione che permetta di derivare il taglio. Nella
versione moltiplicativa invece questa caso sarebbe
(Ax)
: ,
(Cut)
,
E quindi basterebbe estrarre da questa derivazione.
Leliminazione del taglio, come vedremo pi` u avanti, `e una propriet` a deside-
rata di questa logica per cui si inserisce solo la versione moltiplicativa di tale
regola.
Ora occorre aggiungere la negazione, dove denoteremo la negazione di
con
` M che di fatto
rappresenta le due attivit` a parallele di spendere i soldi e di ottenere il menu.
La negazione pu` o essere introdotta sia come connettivo primitivo nella
sintassi ma solo per gli atomi (variabili proposizionali). Tale denizione si
pu` o estendere per induzione ad ogni formula mostrando come, assumendo le
leggi di De-Morgan valide, ogni formula con una negazione sia identica alla
formula stessa la cui negazione occorre solo negli atomi. La denizione della
negazione `e la seguente
163
( )
(&)
( ` )
( )
&
La logica lineare pu` o essere adattata sia alla logica classica che a quella
intuizionista. Per questo motivo deve avere la negazione involutiva, ossia
= .
A questo punto `e possibile denire limplicazione (denotata in logica intui-
zionista con ) come connettivo derivato: =
` oppure come
connettivo primitivo aggiungendo le regole moltiplicative dellimplicazione (il
connettivo denota la versione moltiplicativa dellimplicazione).
Le regole per la negazione sono le stesse date per il calcolo dei sequenti in
logica classica ed intuizionista. La negazione pu` o anche essere denita intera-
mente come connettivo primitivo, ossia ogni formula pu` o essere negata e tale
denizione occorre gi`a nella sintassi (rimuovendo le uguaglianze precedente-
mente date) e vericare che le leggi di De-Morgan sono valide. Ad esempio
si pu`o dimostrare che ( )
e che
( )
,
(Ax)
(R)
,
(R)
,
(L)
( )
(` R)
( )
,
(Ax)
(L)
,
(` L)
, ,
(L)
,
(R)
( )
164
Una dimostrazione analoga esiste per le leggi di De-Morgan sugli altri
connettivi.
La sintassi della logica classica spesso nei testi viene descritta includen-
do anche le costanti true e false, la cui semantica dovrebbe essere nota al
lettore.
La costante true `e lelemento neutro del connettivo , ossia true
mentre la costante false `e lelemento neutro del connettivo , ossia
false .
Ma nella logica lineare true `e lelemento neutro di quale versione del connet-
tivo (e la stessa domanda vale per )?
Per risolvere questo problema si separano anche le due costanti avendo due
coppie di costanti true (1, ) e false(0, ), una additiva ed una moltiplicativa.
1: elemento neutro di , 1
: elemento neutro di &, &
: elemento neutro di ` , `
0: elemento neutro di , 0
Anche questo sia vero, si inseriscono nel calcolo dei sequenti per la logica
lineare, le seguenti regole per le costanti
(1L)
, 1
(1R)
1
(
L)
(
R)
,
()
,
(0)
, 0
Inoltre `e possibile estendere la denizione di negazione alle costanti
1
= 1
= 0 0
=
La logica lineare cos` come descritta nora permette di modellare solo
asserzioni sulle risorse e quindi consumabili. Tuttavia si vuole aggiungere
quanto detto nora la possibilit`a di modellare anche risorse che non si con-
sumano e quindi possono essere utilizzate un numero innito di volte. Questo
165
permette di esprimere anche asserzioni sempre vere che quindi possono essere
riutilizzate. Tecnicamente ci` o che si vuole aggiungere sono due modalit`a,
ossia situazioni particolari, alle formule in modo tale che si possano utilizzare
le regole strutturali di weakening e contrazione.
In particolare le due modalit`a sono
1. of course: modella la possibilit` a di una risorsa di essere utilizzata
(o ottenuta) un numero indeterminato di volte (anche nessuna). Una
risorsa A in questa modalit` a si denota con !A (dove il simbolo ! si legge
of course, oppure bang) e quindi
!A
= A. . . A dove il numero di times `e scelto in base alla necessit` a.
Ad esempio il sequente !A AA (che e provabile) indica che la risorsa
A pu` o essere utilizzata quanto serve per ottenerne due, in particolare A
viene utilizzato 2 volte, quindi in questo caso anche il sequente AA
A A `e provabile.
2. why not: `e il duale di of course, ossia il suo opposto e modella la
possibilit` a di una risorsa di essere ottenuta eventualmente da pi` u casi
in parallelo. Una risorsa A in questa modalit` a si denota con ?A (dove
il simbolo ? si legge why not). Quindi
?A
= A ` . . . ` A.
Si denisce la negazione sulle modalit` a nel modo seguente (sempre sfrut-
tando le propriet`a di De-Morgan)
(!)
=?(
) (?)
=!(
)
La negazione ha precedenza sulle modalit` a (in generale la negazione ha
sempre precedenza assoluta) per cui !
= (!)
=!(
e taglio
(Ax)
,
, ,
(Cut)
,
Regole moltiplicative
, ,
()
, ,
, ,
(` )
, `
Regole additive
, ,
(&)
, &
,
i
(
i
)
,
1
2
Regole esponenziali
,
(D)
, ?
(W)
, ?
, ?, ?
(C)
, ?
?,
(!)
?, !
La logica lineare viene spesso abbreviata con LL (Linear Logic), ma
spesso si usano numerosi frammenti di essa
MALL(Multiplicative Additive Linear Logic): `e la logica lineare senza
gli esponenziali
MELL(Multiplicative Exponential Linear Logic): `e la logica lineare
con gli esponenziali ma senza gli additivi (&, )
168
MLL(Multiplicative Linear Logic): `e il frammento della MELL senza
esponenziali.
4.1 Proof Net
Nellintroduzione appena fatta sulla logica lineare `e stato formalizzato il cal-
colo dei sequenti. Tipicamente per formulare la versione di tale sistema in
deduzione naturale esiste una tecnica piuttosto standard che consiste nel la-
sciare invariate (o quasi) le regole destre, che sono a tutti gli eetti delle
regole di introduzione e sostituire le regole sinistre con regole di eliminazio-
ne.
Questo `e di fatto ci`o che avveniva nella formulazione per le logiche classica
ed intuizionista. Seguendo questo ragionamento la regola di promotion di !,
che `e sostanzialmente una regola di introduzione del ! sarebbe la seguente
!
(!I)
! !
Tale regola `e in eetti corretta ma fa perdere al sistema la propriet` a
di normalizzazione che `e molto importante, soprattutto per stabilire degli
isomorsmi. Il motivo per cui tale propriet` a viene persa `e che non `e pi` u
valido il lemma di sostituzione. Infatti si consideri il seguente esempio.
(Ax)
! !
(!I)
(
1
)! !!
(I)
! !!
(Ax)
(Ax)
! !
(E)
(
2
), ! !
(E)
, ! !!
Questa derivazione contiene un detour che deve essere eliminato sosti-
tuendo in
1
al posto degli assiomi per ! la derivazione
2
. Facendo ci` o si
ottiene la seguente derivazione
(Ax)
(Ax)
! !
(E)
, ! !
(!I)
! !!
Ma questa derivazione `e errata perche la premessa di !I non `e valida in
quanto lintero contesto dovrebbe contenere formule in modalit` a of course.
169
Per la proof theory questo sistema di deduzione non `e dunque utilizzabi-
le, ma si possono formulare pi` u varianti della deduzione naturale (anche se
abbastanza complesse) che hanno la propriet` a della normalizzazione.
Tuttavia esiste uno strumento che permette di rappresentare una dimostra-
zione indipendentemente dal sistema di deduzione scelto e di provare pi` u
facilmente propriet` a quali normalizzazione ed eliminazione del taglio. Que-
sto strumento si chiama proof net e consiste in un grafo i cui nodi sono
costituiti dai nomi delle regole di deduzione e gli archi da formule.
Torniamo al calcolo dei sequenti ed in particolare alla sua formulazione
economica. Lidea delle proof net `e quella di mettere in relazione solo le
formule del sequente che vengono modicate in una regola.
Un sequente si rappresenta dunque come un insieme di archi (uno per for-
mula) e, se tale sequente costituisce una premessa della regola R, allora tutti
gli archi che denotano formule che vengono manipolate dalla regola, costitui-
scono gli archi in input del nodo R ed il sequente ottenuto come conclusione
`e costituito dallinsieme degli archi in output.
Deniamo le proofnet per il frammento MELL della logica lineare per indu-
zione sulla struttura della derivazione.
1
: ,
2
: ,
()
, ,
;
K
K
K
K
K
K
K
K
K
K
K
K
s
s
s
s
s
s
s
s
s
s
s
s
`
Una regola viene tradotta come appena mostrato in una proof net.
I cerchi con
1
e
2
indicano la sottoreti per le due prove
1
e
2
. Le
frecce uscenti da ciascuno di questi cerchi indica le formule concluse
dalla derivazione, ad esempio il fatto che da
1
escano le frecce (o
meglio gli archi) per e signica che `e stato derivato il sequente
, . Gli archi entranti in rappresentano le formule che vengono
utilizzate per produrne una nuova ( e che producono che
`e larco uscente). Ora gli archi uscenti dallintera proofnet sono quelli
per le formule (o liste di formule) , , la cui lista costituisce
proprio il sequente derivato. Gli archi in input in una regola e quelli
170
in output rappresentano proprio la trasformazione di alcune formule
(input) in altre formule (output) mentre gli archi che non sono input di
nessuna regola rappresentano le formule su cui la regola non agisce. La
denizione della proofnet per laltro connettivo moltiplicativo `e simile
: , ,
(` )
, `
;
.
,
`
`
`
(Ax)
,
;
`
Ax
: ,
(D)
, ?
;
`
D
?
171
:
(W)
, ?
;
.
`
W
?
: , ?, ?
(C)
, ?
;
.
?,?
`
C
?
:?,
(!)
?, !
;
?
.
\
!
!
1
:
(W)
, ?
2
:?,
(!)
?, !
(Cut)
, ?
;
1
:
====== (W)
, ?
173
Nella proofnet avviene la seguente situazione
.
2
`
W
?
L
L
L
L
L
L
L
L
L
L
L
L
L
\
!
!
s
s
s
s
s
s
s
s
s
s
s
s
s
`
Cut
;
.
`
W
?(1)
\ . . . `
W
?(n)
1
:?,
(!)
?, !
2
:
,
(D)
?
,
(Cut)
?,
;
1
:?,
2
:
,
(Cut)
?,
174
Nella proofnet la situazione `e la seguente
1
?
.
\
!
!
K
K
K
K
K
K
K
K
K
K
K
K
K
`
D
?
r
r
r
r
r
r
r
r
r
r
r
r
r
`
Cut
;
1
?
.
L
L
L
L
L
L
L
L
L
L
L
L
r
r
r
r
r
r
r
r
r
r
r
r
`
Cut
Questo caso non corrisponde alla cancellazione della derivazione con
nella box, ma alla cancellazione del box che racchiudeva la derivazione.
3. (C)
1
: , ?, ?
(C)
, ?
2
:?,
(!)
(
3
) ?, !
(Cut)
, ?
;
1
: , ?, ?
3
:?, !
(Cut)
, ?, ?
3
:?, !
(Cut)
, ?, ?
============================================== (C)
, ?
175
Nella proof net avviene la seguente operazione
.
?,?
2
?
`
C
?
L
L
L
L
L
L
L
L
L
L
L
L
L
\
!
!
s
s
s
s
s
s
s
s
s
s
s
s
s
`
Cut
;
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
1
?
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
?
L
L
L
L
L
L
L
L
L
L
L
L
. \
!
!
s
s
s
s
s
s
s
s
s
s
s
s
s
\
!
!
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
`
Cut
`
Cut
`
C
?
linsieme X
M
.
177
Denizione 44. Dato uno spazio delle fasi < M,
M
>, un insieme X tale
che X M `e un fatto se e solo se X = X
XY = (X
` Y
= (X Y )
X&Y = X Y = (X
XY = (X Y )
?X = (X
I
M
)
!X = (X I
M
)
Dove I
M
= x 1
M
[ x = x x dove 1
M
`e linsieme degli elementi unit`a del
monoide M.
Denizione 45. Un modello delle fasi `e uno spazio delle fasi < M,
M
>
munito di un fatto A
M
per ogni variabile proposizionale A.
Linterpretazione di una variabile proposizionale A `e dunque il fatto A
M
.
La semantica di una formula `e dunque un sottoinsieme del monoide scelto.
Si pu` o denire per induzione la semantica
M
di una formula della logica
lineare nel seguente modo
( )
M
=
M
M
(&)
M
=
M
&
M
( ` )
M
=
M
`
M
( )
M
=
M
M
(
)
M
= (
M
)
(!)
M
=!(
M
)
(?)
M
=?(
M
)
Esistono molte semantiche della logica lineare (che utilizzano il modello
delle fasi), in base al monoide scelto. In ogni semantica, una formula `e va-
lida se e solo se 1 ()
M
dove 1 `e lelemento neutro delloperatore associato
al monoide.
Un modello semantico particolarmente interessante `e il modello sintat-
tico che `e un particolare modello delle fasi denito nel modo seguente
178
Insieme del Monoide: `e linsieme di tutti i sequenti nella notazione
economica, ossia nella forma
Operatore del monoide: `e loperatore ; di concatenamento dei se-
quenti tale che ; = , .
E facile provare che questo operatore
`e commutativo (a meno di scambi) e che `e associativo.
Elemento neutro: Loperatore di concatenamento pu`o essere denito
in modo tale che ; = dal momento in cui le formule in un
sequente sono implicitamente connesse dal connettivo ` e `e proprio
il suo elemento neutro.
Sottoinsieme
M
del monoide M: linsieme di tutti i sequenti
provabili con prove cut-free.
La peculiarit` a di questo modello semantico `e che `e molto vicino alla sintas-
si e soprattutto `e denito utilizzando i sequenti. Questo rende facile provare
la completezza e correttezza del calcolo dei sequenti ed in generale di un si-
stema di deduzione per la logica lineare. Inoltre `e possibile provare che
M
,
ossia linsieme dei sequenti provabili con prove cut-free, coincide con linsie-
me dei sequenti provabili utilizzando solo la semantica. In questo modo si ha
una dimostrazione delleliminazione del taglio ricorrendo alla sola semantica
e quindi senza utilizzare nessun sistema di deduzione.
4.3 Logica lineare intuizionista
La logica lineare pu` o essere adattata alla logica classica oppure a quella in-
tuizionista. Dal punto di vista della proof theory `e molto pi` u interessante
considerare ladattamento alla logica intuizionista.
Consideriamo dunque il calcolo dei sequenti, dove in logica intuizionista `e
permessa una sola formula a destra. Il connettivo ` non `e pi` u compatibile con
questa formulazione (si ricordi che la regola richiedeva una lista di formule a
destra e la formulazione per il connettivo data in logica intuizionista non
corrisponde a ` ma a in logica lineare).
Di conseguenza limplicazione `e nuovamente un connettivo primitivo perche
era denito in termini di ` che qu` non esiste pi` u.
I connettivi della logica lineare intuizionista (che denoteremo con ILL) sono
i seguenti: , , , &, !. Si noti che lesponenziale ? `e stato rimosso perche
non `e possibile denire regole strutturali destre.
Il calcolo dei sequenti `e dunque denito nel seguente modo
179
Identita
e taglio
(Ax)
,
(Cut)
,
Regole strutturali
, !, !
(C)
, !
(W)
, !
Regole logiche
,
(L)
, ,
,
(R)
, ,
(L)
,
(R)
,
,
i
(&L
i
)
,
1
&
2
(&R)
&
, ,
(L)
,
i
(R
i
)
1
2
Regole esponenziali
,
(!L)
, !
!
(!R)
! !
Ora `e opportuno mettere in relazione le varie logiche tra loro.
Denotiamo il calcolo dei sequenti a due lati della logica lineare con LL ed il
calcolo dei sequenti appena dato (ossia della logica lineare intuizionista) con
LLI.
LLI `e una restrizione di LL, esattamente come LJ
0
`e una restrizione di LK
0
.
Si noti che LL non `e unestensione conservativa di LLI, proprio come accade
per LK
0
e LJ
0
.
La logica intuizionista e la logica lineare intuizionista hanno sintassi dierenti
per cui per metterle in relazione `e necessaria una traduzione.
Ma il numero di connettivi della logica lineare intuizionista `e maggiore di
180
quello della logica intuizionista, cos` occorre scartare un connettivo dalla
traduzione, ossia non tutte le formule della logica lineare intuizionista sono
traducibili in logica intuizionista.
Si `e scelto di scartare il connettivo .
Per stabilire una traduzione, occorre tenere conto del fatto che nella logica
intuizionista tutte le formule sono implicitamente in modalit`a of course.
La traduzione di una formula in logica intuizionista in una formula
in
logica lineare intuizionista `e la seguente
A
= A
( )
&
( )
=!()
!()
( )
=!()
LLI
e taglio
(Ax)
,
(Cut)
,
Regole logiche
,
(L)
, ,
,
(R)
Regole esponenziali
,
(n)
n 0
(m)
, !
(sp)
! !
Secondo ordine
, [/X]
(L)
, X.
X FV ()
(R)
X.
La regola (m) si chiama multiplexor e si noti come nel caso speciale in
cui n = 0 tale regola coincida con la regola di weakening.
Il numero di occorrenze di una formula da rimpiazzare con la singola forma
in modalit`a ! (il numero n presente nella metacondizione del multiplexor) si
chiama rango del multiplexor La regola (sp) si chiama soft promotion
ed `e una variante della regola promotion.
Sia SLL il sistema di deduzione appena dato, e SLL
+
0
il sistema di deduzione
con laggiunta della regola chiamata digging che `e la seguente
, !!
(d)
, !
e con leliminazione delle regole al secondo ordine, allora SLL
+
0
e LLI
(ossia
calcolo dei sequenti per il frammento con limplicazione della logica lineare
intuizionista) sono equivalenti.
Teorema 37.
LLI
SSL
+
0
184
Dimostrazione. Per induzione strutturale sulla derivazione in LLI
.
La dimostrazione viene fatta per le uniche regole di LLI
1
:
(W)
, !
;
1
: n = 0
(m)
, !
(C)
1
: , !, !
(C)
, !
;
1
: , (!)
(n)
n = 2
(m)
, !!
(d)
, !
(!L)
1
: ,
(!L)
, !
;
1
: ,
(n)
n = 1
(m)
, !
(!R)
1
:!
(!R)
! !
;
1
:!
(sp)
!! !
============ (d)
! !
Teorema 38.
SSL
+
0
LLI
1
: ,
(n)
(m)
, !
Si hanno due casi
1. n = 0
1
:
(W)
, !
2. n > 0
1
: , (!)
(n)
============== (!L)
, (!)
(n)
================== (C)
, !
(sp)
1
:
(sp)
! !
;
1
:
======== (!L)
!
(!R)
! !
(d)
1
: , !!
(d)
, !
;
(Ax)
! !
(!R)
! !!
1
: , !!
(Cut)
, !
Ma rimuovendo la regola digging, la modalit`a ! pu` o essere introdotta
soltanto da soft promotion e multiplexor, che sono le responsabili delle du-
plicazioni. In assenza della regola (d), il fatto che una formula abbia due !
piuttosto che uno `e diverso, e quindi si pu`o esaminare il numero di ! che con-
tiene una formula per capire quanti box (e quindi possibili duplicazioni) sono
stati creati nella sua sottoderivazione avendo dunque un maggiore controllo
sulla duplicazione (con la conseguenza che SSL `e pi` u povero di ILL
).
I quanticatori (al secondo ordine) sono stati aggiunti per dare una maggiore
186
espressivit` a alla logica (altrimenti per isomorsmo non si potrebbe assegnare
un tipo a tutti i programmi polinomiali).
Ora `e possibile dimostrare leliminazione del taglio ed in particolare che
lalgoritmo di eliminazione del taglio `e polinomiale nella dimensione della
prova. Prima per` o occorrono alcune denizioni preliminari.
Denizione 46. Sia una derivazione, la sua dimensione [[ `e il numero
di regole che essa contiene.
Ad esempio una derivazione che termina con la regola ( R) e la cui
premessa `e un assioma ha misura 2.
Denizione 47. Sia una derivazione, il suo rango rk() `e il rango
massimo del multiplexor presente in essa.
Denizione 48. Sia una derivazione, il suo grado d() `e il numero
massimo di annidamenti delle regole di soft promotion.
Ora `e necessaria una misura della derivazione da utilizzare sia per provare
che lalgoritmo di eliminazione del taglio termina sia per provare il limite di
complessit` a. Lidea `e quella di associare ad ogni derivazione una stima W
per eccesso della sua dimensione una volta applicata leliminazione del taglio,
ossia si prevede staticamente come sar` a la derivazione cut-free ottenuta alla
ne delleliminazione del taglio.
La stima di una prova verr` a denotata con W(, r) che indica la (sovra)-
stima della dimensione di dopo leliminazione del taglio supponendo che
ogni sua sottoderivazione possa essere applicata al pi` u r volte. Formalmente
si ha la seguente denizione.
Denizione 49. Sia una derivazione, il suo peso W(, r) con r 0 `e
denito per induzione strutturale su
Ax
(Ax)
W(, r) = 1
sp
:
(sp)
! !
W(, r) = (r + 1)(W(, r) + 1)
187
Tutte le altre regole, sia
W
(, r) la somma dei pesi di tutte le premesse
di con argomento r
W(, r) =
W
(, r) + 1
Questa `e una denizione data del peso per riuscire ad ottenere le dimo-
strazioni che seguono quindi pu` o essere considerata una semplice denizione,
ma intuitivamente questo funziona perche data una derivazione, per calco-
lare il suo peso si sommano sempre le stime delle premesse ma se una di
esse applica la regola (sp) tale misura si moltiplica per r e di fatto la soft
promotion si comporta proprio come la regola promotion nella logica MELL:
costruisce attorno a se un box che permette di essere duplicata, quindi come
sovrastima si presume che tale derivazione verr` a duplicata al pi` u r volte.
Ad esempio sia la seguente derivazione
(Ax)
!! !!
(sp)
!!! !!!
(Ax)
(m)
, !
(sp)
!, !! !
(sp)
!!, !!! !!
(Cut)
!!!, !! !!
allora
[[ = 7
rk() = 0
d() = 2
W(, 3) = W(
1
, 3) + W(
2
) + 1 =
(3 + 1)(1 + 1) + (3 + 1)(W(
2
, 3) + 1) + 1 =
(3 +1)(1 +1) +(3 +1)(((3 +1) (2 +1)) +1) +1 = 57 Dove
1
,
2
sono
le premesse del cut e
2
`e la premessa della premessa a destra del cut.
Lemma 12. Per ogni derivazione in SLL
W(, 0) = [[
W(, rk()) = W(, 0) (rk() + 1)
d()
[[
d()+1
Dimostrazione. Per induzione strutturale sulla derivazione . Viene dimo-
strato solo il primo punto del lemma per semplicit`a.
Ax: W(, 0) = 1 = [[
188
Per tutte le regole diverse da (sp) e (Ax), sia
W
(, r) la somma dei
pesi di tutte le premesse con argomento r, allora W(, 0) =
W
(, 0)+
1, ma per ipotesi induttiva
W
(, 0) `e la somma delle dimensioni di
tutte le premesse, quindi W(, 0) = [premesse[ + 1 = [[
sp: W(, 0) = (0+1)(
W
(, 0)+1), ma per ipotesi induttiva la somma
W
(, 0) = [premesse[ per cui W(, 0) = [premesse[ + 1 = [[
Occorre ora denire i passi di eliminazione del taglio (ogni passo elimina
un cut). Questi si suddividono in due categorie: passi simmetrici in cui
entrambe le premesse del cut scelto da eliminare nel passo introducono la
formula tagliata, e passi commutativi in cui almeno una premessa del cut
non introduce la formula tagliata. Questa suddivisione `e la stessa fatta per
leliminazione del taglio della logica intuizionista. I passi simmetrici erano
quelli che richiedevano nella dimostrazione una suddivisione per caso (e anche
in questo caso lo richiedono) mentre quelli commutativi erano quelli generali.
Passi simmetrici: esiste un solo caso per ogni possibile regola appli-
cata dalla premessa destra del cut
(Ax)
1
:
(Ax)
(Cut)
1
:
(m)
1
:
(sp)
! !
2
:
(n)
,
(m)
!,
(Cut)
!,
2
:
======== (m)
!,
189
n > 0
1
:
1
:
2
:
(n)
,
(Cut)
,
(n1)
,
====================================== (Cut)
(n)
,
(m)
!,
(sp)
1
:
(sp)
! !
2
: ,
(sp)
!, ! !
(Cut)
!, ! !
1
:
2
: ,
(Cut)
,
(sp)
!, ! !
(L)
1
: ,
(R)
2
:
3
: ,
(L)
, ,
(Cut)
,
2
:
1
: ,
(Cut)
,
3
: ,
(Cut)
,
190
(L)
1
: X FV ()
(R)
X.
2
: , [/X]
(L)
, X.
(Cut)
,
1
[/X] : [/X]
2
: , [/X]
(Cut)
,
1
:
(R
1
)
2
:
(R
2
)
,
(Cut)
,
1
:
2
:
(Cut)
(R
1
)
,
(R
2
)
,
191
La formula tagliata `e stata introdotta solo dalla premessa sinistra
1
:
2
:
(R)
,
(Cut)
,
1
:
2
:
(Cut)
,
(R)
,
1
:
(R)
2
: ,
(Cut)
,
1
:
2
: ,
(Cut)
,
(R)
,
allora, se r rk()
Se `e stato applicato un passo commutativo W(, r) = W(
, r)
Se `e stato applicato un passo simmetrico W(, r) > W(
, r)
Dimostrazione.
Passo commutativo: loperazione `e locale, ossia viene spostato il cut
verso le foglie ma le regole rimangono esattamente le stesse, cambia
solo lordine in cui esse sono applicate, quindi W(, r) = W(
, r)
192
Passo simmetrico: per confrontare il peso delle due derivazioni si
calcola il peso della parte di derivazione in cui lultima regola applicata
`e il cut (il resto della derivazione - in basso - rimane invariato dopo
lapplicazione del passo).
1
Quindi per si intender` a la parte di deriva-
zione che termina con il cut e con
1
:
(Ax)
(Cut)
1
:
W(, r) = W(
1
, r) + 1 + 1 > W(
, r) = W(
1
, r)
(m)
1
:
(sp)
! !
2
:
(n)
,
(m)
!,
(Cut)
!,
n = 0
2
:
======== (m)
!,
W(, r) = (r+1)(W(
1
, r)+1)+(W(
2
, r)+1)+1 > W(
, r) = W(
2
, r)+1
n > 0
1
:
1
:
2
:
(n)
,
(Cut)
,
(n1)
,
====================================== (Cut)
(n)
,
=========================================== (m)
!,
W(, r) = (r + 1)(W(
1
, r) + 1) + (W(
2
, r) + 1) + 1 > W(
, r) =
nW(
1
, r) + W(
2
, r) + n +[[
1
Si ricordi che le derivazioni mostrate nei passi di eliminazione del cut sono parti
di unintera derivazione perche il cut da eliminare potrebbe trovarsi allinterno di una
derivazione
193
Il peso W(
2
il loro peso totale. Di fatto allesterno di
1
e
2
non vi
sono regole di soft promotion per cui per il peso della deri-
vazione `e per denizione la somma di tutti i nodi. Partendo
dallalto verso il basso, le premesse del primo cut hanno un
peso complessivo di W(
1
, r) + W(
2
, r), mentre le premesse
del secondo hanno il peso W(
1
, r) +W(
2
, r) +1 +W(
1
, r),
ossia ad ogni cut si somma il peso di
1
ed un nodo per la
conclusione del cut, ottenendo che il peso dellultimo cut `e
nW(
1
, r) + n, perche di fatto sono stati eettuati tanti cut
quant`e il grado del multiplexor in
1
per tagliare tutte le for-
mule , ossia n.
Sono poi stati eettuati tanti multiplexor quante sono le for-
mule in (il numero di formule in viene denotato con [[).
Ma per ipotesi del teorema r rk() e siccome rk() n
(se il multiplexor in - che ha rango n - `e quello di grado
massimo allora rk() = n altrimenti ne esiste uno con rango
maggiore di n e quindi rk() > n) e allora per transitivit` a
r n. Ma nel caso peggiore in cui r = n si ha che
W(, n) = (n + 1)(W(
1
, n) + 1) + (W(
2
, n) + 1) + 1 =
nW(
1
, n) + W(
1
, n) + W(
2
, n) + 3 +n e
W(
, n) = nW(
1
, n) + W(
2
, n) + n +[[
per cui
W(, n) W(
, n) = (W(
1
, n) + 3) [[
Ma W(
1
, n) [[ perche il peso di
1
nel caso peggiore `e la
dimensione di
1
e siccome lassioma permette una sola formu-
la nel contesto, occorre applicare almeno tante regole quante
sono le formule in per eliminare tutte le altre formule ed
applicare lassioma (ogni regola dal basso verso lalto elimina
una sola formula per volta al massimo).
Quindi W(
1
, n) + 3 [[ per cui la dierenza W(, n)
W(
, n) = (kW(
1
, n) + 3 +k) [[
per qualche k > 1 e quindi a maggior ragione W(, n) >
W(
, n).
194
(sp)
1
:
(sp)
! !
2
: ,
(sp)
!, ! !
(Cut)
!, ! !
1
:
2
: ,
(Cut)
,
(sp)
!, ! !
W(, r) = (r + 1)(W(
1
, r) + 1) + (r + 1)(W(
2
+ 1)) + 1 >
W(
, r) = (r + 1)((W(
1
, r) + W(
2
, r) + 1) + 1)
(L)
1
: ,
(R)
2
:
3
: ,
(L)
, ,
(Cut)
,
2
:
1
: ,
(Cut)
,
3
: ,
(Cut)
,
W(, r) = W(
1
, r) + W(
2
, r) + W(
3
, r) + 3 >
W(
, r) = W(
1
, r) + W(
2
, r) + W(
3
, r) + 2
(L)
1
: X FV ()
(R)
X.
2
: , [/X]
(L)
, X.
(Cut)
,
195
1
[/X] : [/X]
2
: , [/X]
(Cut)
,
W(, r) = W(
1
, r) + W(
2
, r) + 3 >
W(
, r) = W(
1
, r) + W(
2
, r) + 1
Teorema 39. Sia una derivazione in SLL, allora applicando un numero
n di passi elementari di eliminazione del cut si ottiene la derivazione
che
`e cut-free tale che
n 2 [[
3(d()+1)
Si noti che il teorema non si limita ad enunciare la terminazione dellal-
goritmo delleliminazione, ma fornisce anche un limite sul numero di passi
che indica che lalgoritmo `e polinomiale nella dimensione della prova.
Dimostrazione. La terminazione viene dimostrata per induzione (doppia)
sulla coppia < W(, rk(), h() >, dove h() `e la somma di tutte le al-
tezze delle sottoderivazioni che hanno come ultima regola applicata (Cut).
Si vuole provare che
< W(, rk()), h() >~< W(
, rk(
)), h(
) >
Dove
, rk()) ma
leliminazione del taglio non alza il rango della prova perche, o vie-
ne rimossa una sottoderivazione che contiene il multiplexor di rango
massimo, e allora rk(
) = rk(). Siccome
W(, rk()) > W(, rk(
, rk(
e taglio
(Ax)
x : x :
d
M :
d
, x : N : #( x : )
(Cut)
d
,
d
N[M/x] :
Regole logiche
d
M :
d
, x : N :
d
#
d
x : y fresca
(L)
d
,
d
, y : N[y M/x] :
d
, x : M :
(R)
d
x.M :
Regole esponenziali
d
, x
1
: , . . . , x
n
: M :
(m)
d
, x :! M[x/x
1
, . . . , x/x
n
] :
d
M :
(sp)
!
d
M : !
Secondo ordine
d
, x : [/X] M :
(L)
d
, x : X. M :
d
M : X FV ()
(R)
d
M : X.
Dove
d
#
d
equivale alla seguente condizione dom(
d
) dom(
d
) = ,
ossia i domini dei due contesti sono disgiunti. Questa condizione `e necessaria
se si hanno regole moltiplicative perche se i due contesti non avessero domini
disgiunti (ossia contengono typing di variabili con lo stesso nome) lunione
d
,
d
sarebbe un contesto in cui una variabile pu` o avere due tipi contem-
poraneamente.
Lisomorsmo `e fatto sulleliminazione del taglio dove un termine `e un -
redesso se e solo se `e tipabile con una derivazione la cui regola pi` u vicina alla
radice `e il taglio.
Non verr`a mostrato questo fatto nel dettaglio in quanto questa logica non `e
adatta ad un completo isomorsmo, come verr`a trattato in seguito.
Le regole destre sono equivalenti a quelle date per il Sistema F.
La regola (Cut) ha la seguente interpretazione intuitiva: se un termine M
ha tipo e assumendo che la variabile x libera in N abbia anchessa tipo ,
N ha tipo , allora sostituendola con un altro termine M dello stesso tipo,
il termine ottenuto `e tipabile con lo stesso tipo sostituendo lassunzione
198
x : con il contesto
d
del termine sostituito.
La regola ( L) ha la stessa interpretazione, ma le occorrenze di x vanno
sostituite con le occorrenze di y M che ha lo stesso tipo di x. Inoltre y deve
essere fresca altrimenti potrebbe essere presente in
d
o in
d
provocando il
problema di collisione di variabili con tipo diverso enunciato precedentemen-
te.
Se non si considerano le regole esponenziali, si ricordi che un passo di elimi-
nazione del taglio non duplica derivazioni (la soft promotion `e lunica regola
responsabile di tali duplicazioni). Questo nel -calcolo implica (per isomor-
smo) che non si possono duplicare sottotermini di un -termine durante
un passo di -riduzione. Ma ogni -redesso `e nella forma (x.M)N e ha
come corrispondente -ridotto il termine M[N/x], quindi lunico modo che
si avrebbe per duplicare termini in un passo di -riduzione sarebbe quello
di avere pi` u occorrenze di x in M. Quindi considerando termini tipati senza
utilizzare le regole esponenziali non hanno variabili duplicate. Questo signi-
ca che se una variabile libera in M ha un tipo che non `e in modalit`a !, allora
occorre una ed una sola volta in M (se non occorresse andrebbe eliminata
dal contesto in una visione bottom-up della derivazione, ma nessuna regola
non esponenziale pu` o farlo).
La regola multiplexor, con premessa un termine M che ha n variabili libere
distinte di tipo , permette di sostituire ad M tali occorrenze con occorrenze
di ununica variabile x, che pu` o dunque occorrere pi` u volte e deve dunque
avere tipo !, che indica proprio questo fatto.
Quindi una variabile di tipo in modalit` a ! pu` o essere duplicata.
La regola (sp) invece, indica che dato un contesto
d
, se si passa al contesto
!
d
in cui tutte le variabili sono duplicabili nel contesto !
d
, allora il termine
M pu` o essere duplicato e questo fatto si indica dandogli come tipo !, dove
era il tipo di M nel contesto
d
.
Si noti che la corrispondenza tra eliminazione del taglio e -riduzione, non `e
cos` semplice come in deduzione naturale. Ad esempio si consideri la seguente
derivazione, che denoteremo con
1
: x : A x : A
(R)
x.x : A A
2
: y : A y : A
3
: k
: A k
: A
(L)
y : A, k : A A k y = k
[k y/k
] : A
(Cut)
y : A (x.x) y = (k y)[x.x/k] : A
Inizialmente si supponga che le derivazioni
1
,
2
,
3
contengano soltanto
lassioma,ad esempio
1
`e la derivazione
(Ax)
x : A x : A
.
Lunica regola del taglio corrisponde proprio al -redesso (x.x) y. Appli-
199
cando il passo di eliminazione del taglio (passo simmetrico L) si ottiene
la seguente derivazione
2
: y : A y : A
1
: x : A x : A
(Cut)
y : A x[y/x] = y : A
3
: k
: A k
: A
(Cut)
y : A k
[y/k
] = y : A
Ed in eetti si tratta proprio della derivazione di tipo per il termine
y che `e il -ridotto del termine tipato prima dellapplicazione del passo di
eliminazione del taglio, ossia
(x.x) y
y
Tuttavia, occorre notare che sono stati generati due nuovi tagli che per` o
non corrispondono a redessi ma a forme normali (variabili in questo caso).
Tali tagli quando vengono eliminati generano un typing per lo stesso termine.
Ora si supponga che la derivazione
1
(per il termine (x.x) y) sia la seguente
(Ax)
x : A x : A
(Ax)
r : A r : A
(Cut)
x : A r[x/r] = x : A
A questo punto nella derivazione occorrono due tagli. Se si elimina
quello in
1
, si ha che la derivazione
1
diventa la seguente
(Ax)
x : A x : A
e tutto il resto della derivazione rimane inalterato generando dunque nuo-
vamente un typing per lo stesso termine, (x.x) y. Se tutte 3 le derivazioni
i
sono composte da un taglio come quello appena mostrato, e si eliminano
prima quei tre tagli e successivamente quello della forma ( R, L) si
ottengono i seguenti passi di eliminazione
: y : A (x.x) y : A ;
1
: y : A (x.x) y : A ;
2
: y : A (x.x) y : A ;
3
: y : A (x.x) y : A ;
4
: y : A y : A
Ossia a quattro passi di eliminazione del taglio ne corrisponde uno di -
riduzione.
Si noti che comunque questo non genera particolari problemi perche il -
riduzione dei termini tipabili con SLL rimane polinomiale. Inoltre da questo
esempio si pu` o concludere che il typing di un termine non `e unico.
200
La decorazione per la logica SLL ha per` o un problema. Si consideri ad
esempio il termine M = y ((z.s z) w) ((z.s z) w), siano
= A A B, = B !A, allora un possibile typing per il termine M
`e y : , s : , w : B y ((z.s z) w) ((z.s z) w) : B, mediante la seguente
derivazione di tipo
1
: s : z.s z :
2
: t : , w : B t w :!A
(Cut)
s : , w : B (z.s z) w :!A
3
: y : , x
1
: A, x
2
: A y x
1
x
2
: B
(m)
y :!, x : (y x x) : B
(Cut)
y : , s : , w : B (y x x)[((z.s z) w)/x] : B
Dove (y x x)[((z.s z) w)/x] = y ((z.s z) w) ((z.s z) w),
(z.s z) w = (t w)[z.s z/t]
e le 4 derivazioni non mostrate sono le seguenti
1
(Ax)
z : B z : B k :!A k :!A
(L)
s : = B !A, z : B s z :!A
(R)
s : z.s z : B !A =
Dove k[s z/k] = s z
2
(Ax)
w : B w : B
(Ax)
k :!A k :!A
(L)
t : , w : B t w :!A
Dove k[t w/k] = t w
3
(Ax)
x
1
: A x
1
: A
(Ax)
x
2
: A x
2
: A
(Ax)
k
: B k
: B
(L)
k : A B, x
2
: A k x
2
: B
(L)
y : (A (A B)), x
1
: A, x
2
: A ((y x
1
) x
2
) : B
Dove (k x
2
)[y x
1
/k] e k
[k x
2
/k
] = k x
2
Si noti che il taglio pi` u vicino alle foglie corrisponde proprio al redesso
(z.s z) w, ma il taglio verso la radice non corrisponde a nessun redesso e
nemmeno ad una forma normale. Inoltre applicando un passo di eliminazione
al taglio pi` u vicino alle foglie (passo L) si ottiene la seguente derivazione
201
4
: s : , w : B s w :!A
3
: y : , x
1
: A, x
2
: A y x
1
x
2
: B
(m)
y :!, x : (y x x) : B
(Cut)
y : , s : , w : B (y x x)[(s w)/x] = (y (s w) (s w)) : B
Dove questo termine, ossia (y (s w) (s w)) non pu` o essere ottenuto
tramite una -riduzione ma tramite due. Un passo di eliminazione del taglio
corrispondono dunque a due -riduzioni! Di fatto le -riduzioni per il -
redesso inizialmente dato sono le seguenti
y ((z.s z) w) ((z.s z) w)
y (s w) ((z.s z) w)
y (s w) (s w)
Il motivo per cui si verica questo fenomeno `e che nella derivazione per
((z.s z) w) (vedi la prima derivazione data per il termine in questione) tale
termine ha tipo !A ma il contesto non ha !. Siccome lunico caso in cui leli-
minazione del taglio produce duplicati `e il caso in cui si hanno ! in tutto il
sequente (a sinistra e a destra), qualsiasi sia lordine di eliminazione del taglio
nella derivazione per il termine y ((z.s z) w) ((z.s z) w), la derivazione per
((z.s z) w) non verr` a mai duplicata e quindi quando verr`a rimosso il taglio
corrispondente, si elimineranno contemporaneamente tutte le corrispondenze
di tale redesso nel termine principale, siccome questo occorre una sola volta
nella derivazione. Se invece lintero sequente fosse stato in modalit` a of course
(!) si avrebbe avuto un passo in cui si duplica tale redesso (eventualmente
che non corrisponde ad alcun cambiamento del termine, quindi a nessuna -
riduzione) che avrebbe generato tante duplicazioni quanti sono le occorrenze
del -redesso in questione e poi si sarebbe potuto operare indipendentemente
su ogni redesso.
Lesempio mostrato, rompe il bound polinomiale, ossia non `e pi` u possi-
bile sostenere che il -calcolo tipato con SLL sia polinomiale ereditando tale
propriet` a dalla logica, perche ad un passo di eliminazione del taglio, pu`o cor-
rispondere un numero di riduzioni proporzionale al numero di duplicazioni
di un sottotermine in un termine.
Inoltre nessun passo di eliminazione del taglio potrebbe portare al termine
y (s w) ((z.s z) w) perche questo non `e tipabile con la SLL! Si perde dunque
anche la propriet`a di riduzione del soggetto.
In generale si possono suddividere i cut in tre categorie
202
1. linear cut
d
M :
d
, x : N : non modale
(Cut L)
d
,
d
N[M/x] :
Siccome non `e modale (ossia non contiene un ! davanti allintera
espressione di tipo - ad esempio A B non `e modale mentre !(A B)
lo `e) la variabile x occorre una ed una sola volta in N. Leliminazione
di questo taglio corrisponde alla riduzione di N[M/x] se questo termine
`e un redesso. In ogni caso questo tipo di cut non genera problemi in
quanto se M `e un redesso allora ne occorre uno solo in N[M/x] e ad
esso ne `e associato uno ed uno solo nella derivazione.
2. duplicable cut
!
d
M :!
d
, x :! N :
(Cut D)
d
,
d
N[M/x] :
In questo caso se in N vi sono pi` u occorrenze di x allora `e necessa-
rio applicare la regola multiplexor e quindi a sinistra sar` a applicata
soft promotion. Se M `e un -redesso in N[M/x] occorreranno tanti
-redessi quante sono le occorrenze di x in N (ossia il rango del multi-
plexor). Sia n il rango del multiplexor, leliminazione del taglio porter` a
dunque alla creazione di n tagli in cui la derivazione per M viene du-
plicata n volte. Questa nuova derivazione ha come conclusione sempre
N[M/x] ma questa volta vi `e esattamente una derivazione per ciascuno
degli n -redessi.
Quindi sia nel caso di linear cut, che di duplicable cut, `e possibile asso-
ciare ad ogni redesso una sottoderivazione in modo tale da poter ma-
nipolare ogni redesso singolarmente ed avere dunque la corrispondenza
con la -riduzione
3. sharing cut
d
M :!
d
, x :! N :
d
non interamente modale
(Cut L)
d
,
d
N[M/x] :
Si tratta proprio del cut che causa problemi nellisomorsmo.
Infatti la prova per il termine M non sar`a mai duplicabile mentre la
variabile x lo `e e quindi vi sono n occorrenze di x in N (n > 1) ed
M `e un -redesso, allora vi sono n redessi in N[M/x] ma a questo `e
associata una sola prova, per cui leliminazione del taglio corrisponde
a n -riduzioni parallele!
203
Una delle possibili soluzioni a questo problema consiste dunque nelle-
liminazione dello sharing cut. Ma se una derivazione non contiene sharing
cut, potrebbe comunque contenerne dopo qualche passo di eliminazione del
taglio. Questo potrebbe essere risolto proibendo di applicare passi di elimi-
nazione che conducano a derivazioni con questa regola. Tuttavia cos` facendo
potrebbe non essere possibile ottenere sempre derivazioni cut-free utilizzan-
do lalgoritmo di eliminazione del taglio e dunque si perderebbe comunque
lisomorsmo con tale logica e la propriet`a di riduzione del soggetto. Allora
occorre eliminare la possibilit` a di avere bang a destra di un sequente senza
avere lintero contesto in modalit` a of course. Questo pu` o essere fatto co-
struendo una variante di SLL chiamata ESLL (Essential Soft Linear Logic)
che ha la seguente sintassi
::= A [ V ariabile proposizionale
[ Implicazione lineare
A. Quantificatore universale
::= [ Formula non modale
! Formula modale
ed il suo sistema di deduzione `e il seguente
204
Identita
e taglio
(Ax)
,
(Cut)
,
Regole logiche
,
(L)
, ,
,
(R)
Regole esponenziali
,
(n)
n 0
(m)
, !
(sp)
! !
Secondo ordine
, [/X]
(L)
, X.
X FV ()
(R)
X.
Dove e denotano formule eventualmente modali. Si noti che le for-
mule nella ESLL possono avere la modalit` a ! solo al loro esterno.
(Ax)
Regole logiche
(E)
,
,
(I)
Regole esponenziali
,
(n)
n 0
(m)
, !
(sp)
! !
Secondo ordine
X.
(E)
[/X]
X FV ()
(I)
X.
La propriet`a di sostituzione e di normalizzazione `e presente in questa
logica.
Prima `e necessario dimostrare il seguente lemma.
Lemma 14.
! derivabile =!
Ossia se la parte destra di un sequente ha ! allora tutto il contesto ha
formule modali, ossia con !.
Dimostrazione. Per induzione strutturale sulla derivazione di !.
Lemma 15 (Sostituzione).
1
: , e
2
: S(
1
,
2
) : , derivabile
Dimostrazione. Per induzione strutturale sulla derivazione
1
.
Questa dimostrazione verr` a data mostrando una traduzione da una deriva-
zione che termina con la regola (Subs) (si veda il capitolo 2) ad una che
non la utilizza. In ogni caso si tratta semplicemente di uno stile diverso di
dimostrazione, che rimane dunque analoga a quelle precedentemente date.
206
(Ax)
(Ax)
2
:
(Subs)
;S(
1
,
2
) =
2
:
(sp)
1
: ,
(sp)
!, ! !
2
:
(sp)
! !
(Subs)
!, ! !
;
S(
1
,
2
) : ,
(sp)
!, ! !
Si pu` o concludere che il sequente ! ! ha il contesto necessariamente
modale (denotato con !) per il lemma 14.
(m)
1
: ,
(n)
(m)
, !
2
:
(sp)
!
(Subs)
, ! !
;
S
n
(
1
,
2
) : ,
(n)
================== (m)
, !
Gli altri casi sono analoghi al lemma di sostituzione dato per la logica
intuizionista.
Ora `e possibile denire i passi di normalizzazione di derivazioni NESLL.
Gli unici detour sono introduzione ed eliminazione di e .
1
: ,
(I)
2
:
(E)
,
;S(
1
,
2
) : ,
1
: X FV ()
(I)
X.
(E)
[/X]
;
1
[/X] : [/X]
207
Ora verranno mostrato che la normalizzazione `e polinomiale in NESLL,
omettendo per`o la dimostrazione di questo risultato.
Per prima cosa occorre mostrare che `e possibile tradurre una prova in
NESLL in una ESLL che ha (approssimativamente) le stesse misure. In
questo modo, si prova che leliminazione del taglio `e polinomiale anche nella
dimensione della prova in input, tradotta in NESLL.
Lemma 16. Sia una derivazione in NESLL per il seguente , allora
esiste una traduzione T tale che T() : tale che rk() = rk(T()), [T()[
3 [[).
A questo punto `e possibile dimostrare il seguente lemma.
Lemma 17. Sia una derivazione in ESLL, allora se lalgoritmo di nor-
malizzazione porta nella forma normale
in un numero m
di passi tale che m n e quindi
m [[
3(d()+1)
208
La normalizzazione di una prova in ESLL `e dunque polinomiale nella di-
mensione della prova.
(Ax)
x : x :
Regole logiche
d
M :
d
N :
d
#
d
(E)
d
,
d
M N :
d
, x : M :
(I)
d
x.M :
Regole esponenziali
d
, x
1
: , . . . , x
n
: M : n 0
(m)
d
, x :! M[x/x
1
, . . . , x/x
n
] :
d
M :
(sp)
! M :!
Secondo ordine
d
M : X.
(E)
d
M : [/X]
d
M : X FV ()
(I)
d
M : X.
Si pu`o dimostrare che il -calcolo tipato con questo sistema di tipi (siste-
ma che prende il nome di STA - soft type assignment) permette di computare
tutte e sole le funzioni polinomiali!
Il problema di questo linguaggio `e che la type inference `e indecidibile, proprio
a causa dei quanticatori universali (che rende indecidibile il Sistema F).
Sarebbe dunque necessario trovare una soluzione ad esempio simile a quella
trovata in ML da Milner.
209