Sunteți pe pagina 1din 212

Proof Theory

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 facile dimostrare che la relazione appena denita `e un ordine parziale.


Dimostrando la premessa dellimplicazione principale del principio di indu-
zione completa `e vericata si ricava che anche il conseguente lo `e ed il con-
seguente `e proprio ci` o che si vuole dimostrare.
Eettuare una dimostrazione per induzione signica proprio dimostrare la
premessa dellimplicazione principale del principio di induzione.
Vogliamo dunque dimostrare che
t L (s (s _ t s = t NPlus(s) < Dim(s)) NPlus(t) < Dim(t))
Questo si pu` o dimostrare per induzione strutturale sulla sintassi del linguag-
gio dato, considerando che un termine appartenente ad L deve essere sintatti-
camente corretto e per esserlo deve essere in una delle 4 forme descritte dalla
grammatica. Se si dimostra limplicazione appena scritta per ogni termine
nelle 4 forme, allora si `e dimostrata per tutti i termini del linguaggio.
a: si tratta di un termine con un solo carattere, per cui non ha sot-
totermini e dunque basta dimostrare che NPlus(a) < Dim(a) perche
s (s _ t s = t NPlus(s) < Dim(t)) `e sempre vera in quando la
premessa di questa implicazione `e sempre falsa.
Siccome Nplus(a) = 0 e Dim(a) = 1 il teorema `e dimostrato per a.
Il caso (come questo) in cui non ci sono sottotermini o comunque ele-
menti pi` u piccoli secondo lordinamento dato si chiama caso base
dellinduzione.
b: anche questo `e un caso base non esistendo sottotermini per b. Anche
qu` si ha che NPlus(b) = 0 e Dim(b) = 1.
5
e
1
+ e
2
: dove e
1
ed e
2
sono termini qualsiasi del linguaggio. In questo
caso e
1
ed e
2
sono sottotermini di e
1
+e
2
dato che questultimo termine
`e composto dai primi 2. Quindi non si `e nel caso base ma nel caso
induttivo.
Quello che occorre dimostrare `e dunque che
s (s _ e
1
+e
2
s = e
1
+e
2
NPlus(s) < Dim(s)) NPlus(e
1
+e
2
) < Dim(e
1
+e
2
)
Anche questa implicazione sia vera, quando la premessa (s (s _
e
1
+e
2
s = e
1
+e
2
NPlus(s) < Dim(s))) `e vera deve esserlo anche
la conseguenza (NPlus(s) < Dim(s)). Se la premessa `e vera, si ha che
per ogni sottotermine s di e
1
+e
2
`e vero NPlus(s) < Dim(s). Questa
ipotesi viene detta ipotesi induttiva e viene sfruttata per concludere
la dimostrazione. Infatti, essendo NPlus(s) < Dim(s) vero per tutti i
sottotermini di e
1
+ e
2
lo `e sicuramente anche per e
1
e per e
2
, ossia
NPlus(e
1
) < Dim(e
1
) NPlus(e
2
) < Dim(e
2
)

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

E equivalente alla formula


((() ) )

Inoltre va detto che la congiunzione e la disgiunzione sono associative a


sinistra mentre limplicazione `e associativa a destra. Ossia
= ( )
= ( )
8
= ( ()
Nella sintassi `e stata omessa la biimplicazione, ma questa `e comunque
ricavabile nel modo seguente
= ( ) ( )
Nel seguito denoteremo con le lettere maiuscole dellalfabeto (in ordine
A, B, C, ecc.) le variabili proposizionali e con le lettere greche (tipicamente
, , , ecc.) le formule.
Linsieme innito di tutte le variabili proposizionali verr`a indicato con A.
Occorrono ora alcune denizioni sintattiche.
Denizione 1. Linsieme di tutte le formule proposizionali `e linsieme
T composto da tutte le variabili proposizionali e per ogni coppia di formule
, se , T allora T, T, T e T.
Occorre ora denire linsieme delle variabili libere di una formula. Questo
verr` a denito per induzione strutturale sulla sintassi delle formule proposi-
zionale.
Denizione 2. Linsieme fv() delle variabili libere di una formula `e
denito come
fv(A) = A
fv( ) = fv( ) = fv( ) = fv() fv()
fv() = fv()
Ad esempio, data la formula = AB AC, linsieme delle variabili
libere `e il seguente
fv() = fv(AB)fv(AC) = fv(A)fv(B)fv(A)fv(C) = A, B, C
Denizione 3. La sostituzione `e una funzione : A T tale che (A) =
A tranne che per un numero nito di variabili proposizionali.
Una sostituzione (A) = indica di sostituire alla variabile A la formula
. In generale (A) = A equivale ad aermare che non occorre applicare
alcuna sostituzione alla variabile A, perche la sua sostituzione lascia invariata
la variabile. Tuttavia, esiste un numero nito di variabili per cui questo non
vale, ossia per cui a tali variabili occorre applicare una sostituzione.
In generale, la sostituzione tale che (A) = A tranne che per B
1
, . . . , B
n
dove (B
i
) =
i
pu` o essere indicata con
= [
1
/B
1
, . . . ,
n
/B
n
]
La sostituzione vuota si indica con [] e corrisponde alla sostituzione tale
che (A) = A per ogni variabile A A.
9
Denizione 4. Sia una sostituzione e una formula, allora lapplicazione
della sostituzione alla formula , indicata con `e denita nel modo
seguente
A = A

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.

E anche possibile utilizzare la composizione di sostituzioni dove

equivale a ()

che `e la formula ottenuta applicando la sostituzione

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 [[]]

di una formula logica sotto un assegnazione (cio`e


il valore di verit`a di una formula dato un assegnazione , ossia stabiliti i
valori di verit` a delle variabili proposizionali allinterno della formula), viene
denita per induzione strutturale nel modo seguente
[[A]]

= (A)
[[ ]]

= [[]]

[[]]

[[ ]]

= [[]]

[[]]

[[ ]]

= [[]]

[[]]

[[]]

= [[]]

Si consideri ad esempio una formula = AB AB e un assegnazione


t.c. (A) = , (B) = la semantica [[]]

viene calcolata nel seguente


modo
[[]]

= [[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
, [[]]

= [[]]

Dimostrazione. Per induzione sulle regole della semantica.


= A: [[A]]

= (A) e quindi per denizione di si ha che


[[A]]

= [[(A)]]

= (A) = [[A]]

La prima uguaglianza deriva dalla denizione di applicazione di una


sostituzione ad una formula, la seconda dalla denizione di e lultima
dalla denizione di [[A]]

.
12
= : si ha che
[[()]]

= [[ ]]

= [[]]

[[]]

= [[]]

[[]]

= [[]]

La prima uguaglianza deriva dalla denizione di applicazione di una


sostituzione ad una formula, la seconda dalla denizione di [[ ]]

,
la terza dallipotesi induttiva su e e lultima nuovamente dalla
denizione di [[ ]]

.
= : si ha che
[[()]]

= [[]]

= [[]]

= [[]]

= [[]]

La prima uguaglianza deriva dalla denizione di applicazione di una


sostituzione ad una formula, la seconda dalla denizione di [[]]

, 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
[[ ]]

= [[( )]]

[[ ]]

= [[ ]]

= [[( )]]

Questo risultato si pu`o vericare facilmente calcolando le tabelle di verit` a di


queste due ultime formule.
Inoltre, si ricordi che
[[ ]]

= [[( ) ( )]]

In realt` a, `e suciente un solo connettivo per esprimerli tutti quanti. Si


tratta del connettivo nand ([), dove [ = ( ).
Infatti si ha che
= [
13
Infatti se la formula `e falsa, in nand con se stessa ha valore di verit` a ve-
ro, altrimenti falso. La congiunzione pu` o essere dunque espressa tramite la
seguente uguaglianza
= ([) = ([)[([)
Avendo a disposizione la congiunzione e la negazione possiamo dunque espri-
mere tutti i connettivi.
Analogamente esiste il connettivo nor () tale che = (). Anche
questo pu`o esprimere tutti i connettivi, infatti
=
= ( ) = ( ) ( )
Naturalmente esistono altri modi per dimostrare questi ultimi risultati.
Per completezza, `e necessario citare anche il connettivo xor (

), ossia di or
esclusivo tale che

`e vero solo se esattamente una delle due formule `e


vera.
Questo connettivo pu` o comunque essere ricavato tramite la seguente ugua-
glianza

= ( ) ( )
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.

E importante vericare se un sistema di deduzione ha o meno le propriet` a


di correttezza (ogni formula dimostrabile `e valida secondo la semantica del
sistema logico) e di completezza (ogni formula valida secondo la semantica
pu` o essere dimostrata). Sfortunatamente per logiche espressive come quelle
di ordine superiore al primo non `e possibile avere sistemi di deduzione che
godono di entrambe le propriet` a. Questo risultato deriva dal teorema di in-
completezza di Godel.
1.4.1 Deduzione naturale
Come in molti sistemi di deduzione, il sistema di deduzione naturale `e co-
stituito da regole di inferenza, o regole di deduzione, ossia regole nella
forma
P
1
. . . P
n
(N)
C
che signica: se le premesse P
1
. . . P
n
sono tutte derivabili, allora si pu` o de-
durre che la conseguenza C `e derivabile. N `e il nome della regola.
Le premesse delle regole mostrate nella gura sotto sono dimostrazioni
di formule, mentre le conseguenze sono formule. Una regola pu`o essere ap-
plicata se tutte le formule nelle premesse possono essere dimostrate. Se le
premesse di una regola sono vere si pu` o concludere, o meglio derivare, la
formula nel conseguente della regola stessa.
Data una formula logica dunque, questa `e valida solo se si possono dimostrare
le premesse di una qualche regola che contiene la formula come conclusione.
Le premesse vengono dimostrate applicando per ciascuna formula ricorsiva-
mente delle regole, che generano altre premesse ecc.
Una derivazione `e un grafo dove ogni vertice v `e una formula e i vertici
adiacenti sono le formule delle premesse di una regola che pu` o essere applica-
ta per v, ossia che permette di concludere v, oppure unipotesi da scaricare
(questo ultimo punto verr`a trattato in seguito).
Le regole della deduzione naturale vengono suddivise in introduzioni (la
conseguenza `e una formula che `e formata con un connettivo che lega una o
pi` u formule presenti nelle premesse) ed eliminazioni (la conseguenza `e una
formula pi` u piccola che contiene meno connettivi delle premesse).
15
La regola di introduzione delland (I) ad esempio, richiede nelle pre-
messe che esista una derivazione per , indicato con

e una per , ossia


che si `e dimostrato che e sono formule valide (qundi sempre vere, per
qualunque assegnazione delle variabili). Allora si pu` o derivare che `e
valido. Daltronde se e lo sono, la congiunzione porta sempre a valore
di verit` a vero.
Introduzione Eliminazione

(I)


(E
1
)


(E
2
)

[]
i

i
( I)


( E)

(I
1
)

(I
2
)


[]
i

[]
i

i
(E)

[]
i


i
(I)

(E)

(I)

(E)

Le regole di eliminazione delland ((E


1
) e (E
2
)) indicano che se si pu` o
derivare signica che entrambe le formule sono valide e quindi si pu` o
derivare oppure .
16
Quando si costruisce una derivazione, ad un certo punto occorre arrestarsi,
altrimenti la derivazione sarebbe innita. Le formule che non hanno pi` u
premesse vengono dette, in questo sistema, ipotesi e si assume che siano
valide. Ora, esaminiamo lintroduzione dellimplicazione ( I). Le premesse
richiedono proprio che ci sia una derivazione di che abbia come ipotesi .
[]
i

Assumendo dunque valida si riesce a dimostrare che `e valida, per`o solo


sotto queste assunzioni, altrimenti (a meno di non dimostrare ulteriormente
la validit` a di tale formula, se questa `e valida) non si sarebbe potuta costruire
questa derivazione.
Questo signica che, se `e valida, allora anche lo `e, se invece non `e
valida, nulla si pu` o dire riguardo a . Queste sono proprio le premesse per
poter sostenere che `e valida.
Se `e valida solo sotto lipotesi che lo sia, per non occorre pi` u
assumere questo, perche anche se non `e valida , ossia pu` o avere valore di
verit` a falso per qualche assegnazione, limplicazione ha comunque valore di
verit` a vero.
Lipotesi non `e pi` u necessaria e questo si indica racchiudendola tra parentesi
quadre e identicandola con un valore (tipicamente numerico) i che viene
assegnato anche accanto alla regola per indicare che da quel punto in poi
lipotesi non `e pi` u necessaria.
In gergo quando questa operazione viene eettuata si dice che si scarica li-
potesi.
Una derivazione deve avere tutte le ipotesi scaricate, altrimenti non si pu` o
concludere che la formula `e valida ma solo che lo `e se sono valide le ipotesi.
La regola delleliminazione dellimplicazione `e detta modus ponens ed `e
molto intuitiva.
La regola (E) `e un po particolare. Sono date due derivazioni che dimo-
strano che `e valida, una sotto lipotesi che sia valida ed una con lipotesi
se si `e anche derivato che `e valido, allora si pu` o dedurre . Questo
`e vero perche `e stato dimostrato con due derivazioni distinte ma `e valida
solo sotto le ipotesi appena descritte. Tuttavia, se `e valida, signica
che almeno una delle due ipotesi e , devono essere valide per cui almeno
una derivazione che dimostra `e corretta. Le due ipotesi non sono dunque
pi` u necessarie in quanto in ogni caso `e ora noto che `e deducibile, per cui
17
possono essere scaricate.
La regola (I) stabilisce che se assumendo si deduce una contraddizio-
ne
3
allora lipotesi non pu` o mai essere vera (altrimenti si dedurrebbe una
contraddizione) per cui deve essere insoddisfacibile, cosa che permette di con-
cludere che `e valida.
La regola (E) `e particolare perche le premesse sono sempre false e quindi
si pu`o dedurre qualsiasi formula.
Le variabili , , ecc. sono metavariabili e non variabili proposizionali
vere e proprie in quanto il loro valore pu`o essere una qualsiasi formula pro-
posizionale. Questo permette di eettuare dimostrazioni anche di carattere
pi` u generale. Ad esempio si pu` o dimostrare che per ogni . Segue la
derivazione
[]
1
1
( I)

Le dimostrazioni si costruiscono dal basso verso lalto, ossia partendo da
ci` o che si vuole dimostrare. Data limplicazione, si applica la regola ( I)
dove la premessa `e il conseguente dellimplicazione, ossia la formula . La
formula `e anche unipotesi, per cui si pu` o concludere che si `e derivato
assumendo come ipotesi. Questo consente di utilizzare la regola di intro-
duzione dellimplicazione.
A questo punto lipotesi pu`o essere scaricata derivando . La co-
struzione di una derivazione, `e del tutto analoga al procedimento utilizzato
dagli interpreti Prolog per dimostrare che un goal `e derivabile dal programma.
Le derivazioni ottenute con queste regole, possono essere rappresentate
come gra, i cui nodi sono formule e i loro gli sono le premesse. Si tratta di
un grafo perche le premesse che sono ipotesi hanno come predecessore sia il
conseguente che la formula la cui regola scarica quellipotesi.
Si noti come le regole (I) e (E) siano derivabili dalle altre. Infatti, se
esiste una derivazione

(?)

(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)

Considerazioni analoghe possono essere fatte per la regola di eliminazione


della doppia negazione.
Costruire derivazioni con queste regole `e piuttosto complicato anche per-
che `e complicato gestire le ipotesi da scaricare, per cui spesso viene utilizzata
la deduzione naturale con i sequenti.
Denizione 8. Un sequente `e una coppia nella forma

dove `e un multiinsieme di formule e una formula.
Alcuni testi adottano per un sequente la seguente notazione
, ma `e solo una questione stilistica.
Un sequente va interpretato come: la formula `e sempre vera sotto
le ipotesi in . Il multiinsieme contiene dunque formule ipotizzate valide.
Tale elemento viene chiamato anche contesto. Di fatto questo permette di
costruire regole pi` u semplici dove premesse e conclusioni sono sequenti an-
ziche formule e viene meno tutto il complesso meccanismo che costringe a
scaricare ipotesi.
Con , , dove `e una formula si indica il sequente


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. i multiinsiemi di formule e 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

denota il simbolo di unione tra multiinsiemi (si ricordi che il contesto di


un sequente `e stato denito come multiinsieme)
19
Nella regola ( I) si vede bene come lipotesi non viene scaricata ma
viene eliminata dal contesto. Di fatto questa operazione `e del tutto analoga
allo scaricamento delle ipotesi ma non `e pi` u necessario stabilire in che punto
della derivazione questa ipotesi `e stata fatta.
La formula F presente nella regola (I) `e una qualsiasi formula contrad-
dittoria, come .
(Ax)
,

(I)


1

2
(E
i
)

i
, i = 1, 2
,
( I)


( E)


i
, i = 1, 2
(I
i
)

1

2
, ,
(E)

, F
(I)


(E)


(I)


(E)

Con queste regole, un derivazione `e un albero la cui radice `e il sequente
che contiene la formula da dimostrare, un nodo `e un sequente e i suoi gli
sono le premesse della regola la cui conseguenza `e il nodo stesso. Le foglie
dellalbero sono gli assiomi.
Nello stesso modo in cui le regole precedentemente date permettevano di
costruire una derivazione solo se tutte le premesse sono scaricate, con queste
regole, la radice della derivazione deve avere come contesto linsieme vuoto
(ossia non devono esserci assunzioni).
Segue la dimostrazione di
(Ax)

( I)

Dimostrare ad esempio la validit` a di `e pi` u complicato.
20
(Ax)

(Ax)

(I
2
)

(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

lo sono. Per cui esiste la seguente derivazione


(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

= , , si vuole dimostrare che

[= , cio`e che
(

[[]]

= ) [[]]

=
Ma siccome

allora se la premessa di questultima implicazione


`e vera signica che [[]]

= .
(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

rende vero ma non , allora


[[ ]]

= per qualunque valore di verit` a di [[]]

. 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]]

= , allora le premesse dellimplicazione


non possono mai essere vere, ossia
(

[[]]

= )
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

Secondo il lemma ad esempio, dato (A) = , (B) = e la formula


AB, per ogni , , A, B
ND
AB, cio`e che `e possibile derivare AB
dalle ipotesi date.
Dimostrazione. Per induzione strutturale su .
= A. Si deve dimostrare che , A

`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

Si noti che qu` lipotesi induttiva non `e sullalbero di derivazione ma


su tutte le formule pi` u piccole (ossia con meno termini) di .
Sono possibili tre casi
1.

= e

= : in questo caso sia che sono vere sotto .


Per il lemma di Weakening
5
si pu`o concludere che
, A

1
, . . . , A

n
e , A

1
, . . . , A

n
sono derivabili, dove
fv() = fv() fv() = A

1
, . . . , A

Ossia il contesto dei due sequenti derivabili per ipotesi induttiva


viene espanso inserendo tutte le variabili di entrambe le formule,
5
Si noti come i lemmi possano essere riutilizzati nelle dimostrazioni di diversi teoremi
riducendo (e semplicando) dunque le dimostrazioni
27
ossia tutte le variabili libere di .
Allora `e possibile ottenere la seguente derivazione

, A

1
, . . . , A

, A

1
, . . . , A

n

(I)
, A

1
, . . . , A

n

Per cui , A

1
, . . . , A

n

ND
( )

=
2.

= : Se `e falsa sotto , allora qualunque sia il valore


di verit` a di con questo assegnazione, land ha valore di verit` a
falso, per cui ( )

= ( ). Occorre dunque trovare una


derivazione per il sequente , A

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.

= : la dimostrazione `e analoga a quella appena ricavata ma


occorre sostituire a e (E
2
) a (E
1
) nella derivazione.
= : occorre dimostrare che , A

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.

= : se `e vero sotto , allora sicuramente lor `e vero per cui

= .

1

(I
1
)

1

dove

esiste per ipotesi induttiva e Weakening su .


3.

= : questo caso `e analogo al precedente sostituendo a e


I
2
a I
1
.
= : Sia
1
= , A

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.

= : esiste la seguente derivazione

1
,
(Ax)

1
,
(E)

1
,
( I)

1

3.

= : esiste la seguente derivazione

1
,
( I)

1

= : sono possibili due casi.
1.

= e per ipotesi induttiva


1

ND
e

= ()

= ,
per cui esiste la seguente derivazione

1

(I)

1

2.

= , per cui

= , per ipotesi induttiva


1

ND

e quindi il sequente `e automaticamente dimostrato per ipotesi


induttiva.
Lemma 3. Di raorzamento
,
ND
e ,
ND

ND

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

Questa dimostrazione `e particolarmente ingegnosa e non si limita dun-


que a seguire soltanto il classico schema di dimostrazione per induzione
strutturale.
Dimostrazione. Si pu` o dimostrare il teorema per tre casi: uno con = ,
uno con nito e uno con nel caso generale, ossia eventualmente innito.
Siccome lobiettivo della proof theory `e costruire algoritmi che dimostrano
formule, e anche essi siano realizzabili da un calcolatore nessun elemento
deve essere di lunghezza innita, verr` a scartato il caso generale (quindi si
assumer` a nito) considerando dunque solo i primi due casi.
1. = : si vuole dimostrare che se [= , allora
ND
.
Si consideri un albero di ricerca i cui nodi sono variabili proposizionali
appartenenti allinsieme fv() = A
1
, . . . , A
n
.
La radice `e il nodo A
1
che ha due gli A
2
, ciascuno dei quali ha due
gli A
3
, ecc.
Lalbero formato `e un albero binario dove se un cammino partendo da
A
1
contiene il glio A
2
di sinistra, si considera A
1
vero, altrimenti falso
e analogamente se tale cammino contiene il nodo A
3
di sinistra del nodo
A
2
di sinistra signica che A
2
`e vero, ecc.
Lalbero mostra dunque tutti i possibili assegnamenti delle variabili li-
bere di ed un cammino un possibile assegnazione.
Le foglie dellalbero sono nodi etichettati A
n
. Ad esempio date le
variabili A
1
, . . . , A
3
si ha il seguente albero
A
1

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

sotto lipotesi che [= .


La dimostrazione `e eettuata per induzione strutturale sullalbero di
decisione appena denito partendo da profondit` a n e risalendo no
alla radice, ossia un nodo a livello i precede un nodo a livello i 1
nellordinamento parziale dellinduzione.
caso base: A

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
]]

= per ogni i, allora `e anche vero che


[[
n
]]

= e quindi [[]]

= . Per cui si ha che


(i, 1 i n 1 [[
i
]]

= ) [[
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

Dimostrazione. Segue banalmente dei teoremi di correttezza () e comple-


tezza ().
1.4.2 Calcolo dei sequenti
Finora `e stata descritta sintatticamente e semanticamente la logica classica
ed `e stato fornito il sistema di deduzione naturale che `e corretto e completo.
Si ricordi per` o che lo scopo della proof theory `e trovare algoritmi che costrui-
scano dimostrazioni e di analizzare il legame tra programmi e logica.
Se il lettore ha provato a dimostrare la validit` a di qualche formula con la
deduzione naturale, si sar` a accorto che a volte la ricerca di una dimostrazione
`e assai dicile. Infatti il problema della ricerca di una dimostrazione per una
formula con la deduzione naturale `e un problema di ricerca dove lo spazio
33
degli stati `e innito!
Si consideri ad esempio la seguente derivazione

,
(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

e 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): esiste una derivazione nella forma

,
(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)
,

La dimostrazione della derivabilit`a di queste regole `e data dal lemma di


weakening.
Prima di dimostrare la correttezza e completezza del calcolo dei sequen-
ti, si mostrer` a come la deduzione naturale sia completamente equivalente a
questo sistema di deduzione.
Teorema 6.

ND

LK
0

Dimostrazione. Per induzione sulla derivazione di .


(Ax): il sequente derivabile con lassioma in deduzione naturale `e ,
`e derivabile con la deduzione naturale. Tale sequente `e derivabile con
lassioma anche utilizzando il calcolo dei sequenti.
(I): esiste una derivazione utilizzando la deduzione naturale nella
sequente forma


(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

Dimostrazione. Per induzione sulla derivazione del sequente .


(Ax): , , `e derivabile con il calcolo dei sequenti. Esiste la
seguente derivazione
(Ax)
,
(I
2
)
,
1
. . .
n
Dove =
1
, . . . ,
n
.
(L): esiste la seguente derivazione

, ,
(L)
,
42
per ipotesi induttiva , ,
ND

. Allora esiste la seguente deri-
vazione
(


( E)

( I)

(Ax)


(E
1
)


( E)

Dove

= , ,

, e

, e (W) `e la regola che


deriva dal lemma di weakening per la deduzione naturale.
Dove

`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

. Esiste la seguente derivazione


(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 =

E facile dimostrare che ,

[=

( ), per cui
per il teorema di completezza della deduzione naturale si ha che
, ,


ND

( ) e dunque la derivazione esiste.


(R): questo caso `e immediato.
45
( R): esiste la seguente derivazione

, ,
( R)
,
per ipotesi induttiva ,
ND

. Esiste la seguente derivazione


()

,
(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

= (

) ( ).

E facile dimostrare che , ,

[= ( )m per cui per


il teorema di completezza della deduzione naturale la derivazione

esiste.
(R): esiste una derivazione nella seguente forma.

,
(R)
,
per ipotesi induttiva ,
ND

. Esiste la seguente derivazione.


()

(I)
,
(Ax)
,
(E)


46
dove =

e [= (

) `e vero perche `e vero oppure


`e vero e quindi anche

. Per il teorema di completezza della


deduzione naturale la derivazione esiste.
(Cut): esiste una derivazione nella seguente forma.

,
(Cut)

per ipotesi induttiva
ND

e ,
ND

. Esiste la seguente
derivazione


(Ax)
,

(E)

In alcuni testi, la regola (Cut) `e nella seguente forma


,

(Cut

)
,

ma questo complicherebbe le dimostrazioni per cui la regola (Cut) fornita in


questo testo `e un caso speciale di questa. In ogni caso, proveremo fra poco
che tale regola `e derivabile.
Si noti che le due dimostrazioni appena eettuate non sono strettamente
necessarie per dimostrare la correttezza e completezza, ma sono interessanti
per osservare il legame che intercorre tra deduzione naturale e calcolo dei
sequenti.
A questo punto occorre enunciare e dimostrare i teoremi di correttezza e
completezza per il calcolo dei sequenti.
Denoteremo con [= il fatto che tale sequente `e valido per ogni modello,
ossia
[=
Teorema 8 (Correttezza).

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

Per il teorema di correttezza della deduzione naturale si ottiene


[=

Questo signica che


( [[]]

= ) [[

]]

=
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

La funzione f, detta funzione di scelta, `e una funzione che dato un sequente,


restituisce una qualche formula della sua parte sinistra o destra, che abbia
qualche connettivo. T A indica proprio che lelemento restituito dalla
funzione `e una formula che non `e una variabile (e quindi ha almeno un con-
nettivo).
Si noti che la funzione di scelta pu` o scegliere una qualsiasi formula che non
sia una variabile nel sequente, ma non importa denire con esattezza quale di
queste formule scelga. Quello che importa `e soltanto che scelga una formula
che non sia una variabile proposizionale.
Si denisce ora un algoritmo che, dato il sequente costruisca un
albero di derivazione per tale sequente. Inoltre si prover` a per induzione strut-
turale su tale albero che tutti i nodi dellalbero sono sequenti validi.
Il caso base dellinduzione `e la radice dellalbero, ossia il sequente che
`e valido per ipotesi del teorema.
Per ogni nodo

dellalbero a cui non si sono ancora associati gli


(inizialmente soltanto la radice) se il sequente `e un elemento di o si esegue
la costruzione del suo sottoalbero.
La costruzione viene eettuata scegliendo dalla radice dellalbero una formula
che non sia una variabile in una delle due parti del sequente (questo `e possibile
essendo il sequente in o). Se tale formula `e nella parte sinistra del sequente
allora si applica una regola (L) dove = oppure = e = .
Si dimostra che i gli della radice sono sequenti validi e, per ciascuno di essi
si applica ricorsivamente lalgoritmo.
Se invece al formula `e nella parte destra del sequente, si applica una regola
(R) e anche qu` i gli della radice sono le premesse della regola e si applica
ricorsivamente lalgoritmo.
Sia = f(

).

e = : sia

, il sequente `e nella forma

e il glio di tale nodo, in accordo con la regola (L) `e

, ,

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
[[]]

= [[]]

= oppure una formula in

`e falsa sotto e
quindi

[[

]]

= oppure

[[

]]

.
Questo signica che [=

Si noti che ci`o che si `e costruito `e una parte dellalbero di derivazione


dove il nodo ed il glio possono essere rappresentati secondo lusuale
notazione

, ,

(L)

e = : sia

, allora si costruiscono due gli


del nodo

,
sfruttando lipotesi induttiva si ha che per ogni assegnazione

[[

]]

[[

]]

= , ma allora una formula `e vera in

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

, non appartenendo ad o, possono avere una delle


seguenti propriet` a

= : esiste una formula qualsiasi in comune alle due parti dei


sequenti. In tal caso `e possibile applicare lassioma.
50

A e

= : non `e in realt` a possibile perche contraddireb-


be quanto appena dimostrato, cio`e che ogni nodo dellalbero `e valido.
Infatti, in questo caso il sequente `e nella forma
A
1
, . . . , A
n
B
1
, . . . , B
m
allora esisterebbe un assegnazione tale che [[A
i
]]

= 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

Cominciamo a trovare un modo per rappresentare


2
. Si possono utilizzare
le coppie nel seguente ordine
(0, 0)
(0, 1)
. . .
(0, )
(1, 0)
(1, 1)
. . .
(1, )
. . .
(2, )
. . .
(, )
Ossia quando il secondo elemento della coppia raggiunge si incrementa di
uno il primo elemento e si azzera il secondo. Intuitivamente questa rappresen-
tazione equivalente mostra come raggiunto si possa pensare alla sequenza
+ 1, . . . , + come la seconda sequenza che contiene nuovamente tutti
i naturali e ad
2
come la ne dalla -esima sequenza che contiene tutti i
naturali.
Questa rappresentazione di
2
in termini di coppie, fornisce un particolare
ordinamento lessicograco
(a, b) _ (c, d) SSE a _ b a = b b _ d
Essendo tale ordinamento quello denito sugli ordinali (avendo rappresentato
gli ordinali come coppie) questo rimane un buon ordine.
Linduzione ordinaria sui naturali `e anche detta induzione semplice o su
(di fatto contare da 0 a con lordinamento pu` o essere fatto con i
naturali).
Ci` o che orono gli ordinali `e per`o un potentissimo strumento di induzione,
55
detto induzione doppia. Linduzione doppia `e linduzione su
2
(con la
relazione denita sugli ordinali). Allo stesso modo si pu`o indurre su
3
ottenendo linduzione tripla, e cos` via.
Per riassumere
Linduzione su `e detta induzione semplice e pu`o essere fatta rappre-
sentando gli ordinali come numeri naturali con la relazione di ordina-
mento classica.
Linduzione su
2
`e detta induzione doppia e pu`o essere fatta rap-
presentando gli ordinali come coppie con la relazione di ordinamento
lessicograco.
Linduzione su
3
`e detta induzione tripla e pu` o essere fatta rappresen-
tando gli ordinali come triple estendendo la relazione di ordinamento
lessicograco su triple, ossia
(a, b, c) _ (d, e, f) SSE a _ d a = d b _ e b = e c _ f
Linduzione pu` o essere fatta anche su
4
(sulle quadruple),
5
, ecc. no
a

.
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 di una derivazione nella


derivazione

.
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)
,

Si pu` o a questo punto denire un algoritmo di normalizzazione che ri-


muove un detour ad ogni passo scegliendolo secondo un determinato criterio
e dimostrare che termina.
Per dimostrare che lalgoritmo termina, si pu` o dimostrare che il numero di
detour diminuisce sempre ad ogni passo, no ad arrivare dunque al passo in
cui la derivazione ottenuta non ha detour ed `e dunque in forma normale. Lo
si pu`o dimostrare per induzione sul numero di detour.
Sfortunatamente per` o non `e cos` semplice: ad ogni passo elementare di nor-
malizzazione i detour possono aumentare!
Si consideri ad esempio il caso dellimplicazione

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

ottenuta dal passo di normalizzazione che `e la stessa di nei


livelli superiori rispetto alla ridondanza.

:

1
:
2
:
(I)
,
(E)
,

1
:
======== (W)
,

Il passo di normalizzazione in questo caso non introduce nuove ridon-


danze.
Sia M() =< m, n > e M(

) =< m

, n

>, allora esistono due casi


1. contiene solo una ridondanza massimale: allora si tratta della
stessa ridondanza rimossa, pre cui

contiene solo ridondanze il


cui grado `e minore, allora m

< 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
)

La sostituzione pu` o generare nuove ridondanze per due ragioni


1.
1
contiene ridondanze: in questo caso gi` a S(
2
,
1
) pu` o avere
molte pi` u ridondanze che lintera derivazione , ma non sono mas-
simali perche sono state generate a causa dellaggiunta della de-
rivazione
1
eventualmente pi` u volte (al posto degli assiomi) ma

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
)

Questo caso `e analogo al precedente. Le nuove ridondanze generate


dalla sostituzione (come caso 2 del punto precedente) hanno in que-
sto caso la formula mentre la formula principale della ridondanza
eliminata `e . Ancora d() < d( ) per cui, per le stesse
considerazioni fatte nora M(

) M().
W/C
:

1
: ,
(W)
, ,
(C)
,

Viene eliminata una ridondanza senza aggiungerne altre, per cui


M(

) 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

per lo stesso sequente tale che M(

) 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

Dimostrazione. Per induzione strutturale sulla derivazione in deduzione na-


turale.
Denoteremo con
i
una derivazione in deduzione naturale e con

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

Dimostrazione. Per induzione sulla struttura della derivazione del sequente


con il calcolo dei sequenti.
Come per la dimostrazione precedente, regole strutturali ed assioma sono
casi banali. Anche i casi delle regole destre sono banali.

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

: in cui la misura di un multicut diminuisce oppure


viene rimpiazzata con un numero nito di multicut pi` u piccoli e la misura
degli altri multicut non cresce.
Questo teorema enuncia che 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)
,

Lassioma a sinistra deve necessariamente essere di questa for-


ma perche la formula alla destra del sequente deve essere quella
tagliata, ossia . Il multicut prima delleliminazione ha misura
< d(), 1 + N() > e dopo ha misura < 0, 0 > perche sparisce e
il resto della derivazione non viene alterata.
2. (Ax) a destra
:
(Ax)

(Mix)

;
:

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

ed eventualmente da altre si ottiene

, 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

(o su se = o su altre premesse, ma co-


munque non su ) e lascia invariate tutte le altre formule del contesto
quindi ne ne

verrebbero modicati.
Analogamente R
1
agisce su

lasciando invariate tutte le altre formule


nel contesto, per cui si pu` o aggiungere ai contesti rispettivamente
della premessa e della conclusione.
Le due derivazioni dieriscono soltanto dal cut
3
che viene spostato ver-
so le foglie. La misura del multicut prima dellapplicazione del passo
elementare `e
< d(), N(
1
) + 1 + N(
2
) + 1 >, mentre il grado del multicut dopo
lapplicazione del passo `e
< d(), N(
1
) + N(
2
) > ed `e quindi diminuito.
Si noti inoltre che le regole R
1
ed R
2
possono essere anche applica-
te nellordine inverso nella nuova derivazione e questo signica che la
derivazione multicut-free per un sequente non `e unica.
La formula tagliata occorre con la stessa occorrenza prima di una sola
premessa del multicut
1. occorre a sinistra
. . .
1
:

. . .
(R)

2
: ,
(n)

(Mix)
,

1
:


2
: ,
(n)

(Mix)
. . .

, . . .
(R)
,

In questo caso il multicut viene tirato su di meno, ossia si porta


verso le foglie ma sale solo dalla parte di R perche la prima pre-
messa di
2
non permette di eettuare il taglio non contenendo
dove sarebbe necessario (cio`e nella parte sinistra del sequente).
3
Le regole R
1
ed R
2
possono avere anche pi` u premesse, e questo fatto `e stato indi-
cato con i puntini (. . .) ma queste rimangono invariate nella derivazione ottenuta perche
sono state solo aggiunte formule nel contesto delle premesse evidenziate e in quello della
conclusione.
81
Nella prima derivazione il multicut ha misura
M =< d(), N(
1
) +1 +N(
2
) > mentre dopo lapplicazione del
passo misura
M

=< d(), N(
1
) + N(
2
) > e quindi M

M.
2. occorre a destra

1
:
. . .
2
:

,
(n)
. . .
(R)
,
(n)

(Mix)
,

1
:
2
:

,
(n)

(Mix)
. . . ,

. . .
(R)
,

Questo caso `e molto simile al precedente. Le misure dei due mul-


ticut sono rispettivamente
M =< d(), N(
1
) + N(
2
) + 1 > e
M

=< 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)
,

dove il taglio in esame viene eliminato.


(C)
Supponiamo ora di voler dimostrare che `e sempre possibile spo-
stare un cut verso le foglie ad ogni passo anziche dimostrarlo per
il multicut.
Si potrebbe tentare infatti la seguente conversione

1
:

2
: , ,
(C)
,
(Cut)
,

1
:

1
:
2
: , ,
(Cut)
, ,
(Cut)
, ,
=========================================== (C)
,

La nuova derivazione ha un cut in pi` u ed `e anche pi` u lontano dalle


foglie rispetto a quello presente nella prima derivazione!!!
Infatti nella prima derivazione il cut ha misura
< d(), N(
1
) + N(
2
) + 1 > mentre il cut pi` u lontano nella
derivazione ottenuta applicando il passo di eliminazione ha misura
< d(), N(
1
) + N(
1
) + N(
2
) + 1 >.
Non si riesce dunque ad avvicinare alle foglie il cut nel caso della
contrazione e proprio per questo motivo `e stata introdotta la regola
multicut e si dimostra leliminazione del multicut anziche quella
del cut.
83
Leliminazione diventa dunque la seguente

1
:

2
: ,
(n+1)

(C)
,
(n)

(Mix)
,

1
:
2
: ,
(n+1)

(Mix)
,

Il multicut nella prima derivazione ha misura


< d(), N(
1
) + N(
2
) + 1 > mentre nella seconda
< d(), N(
1
) + N(
2
) >.
()

1
:


2
:


(R)

3
: , ( )
(n1)
,
(L)
, ( )
(n)

(Mix)

1
:

1
:

2
:


(R)


3
: , ( )
(n1)
,
(Mix)

, ,
(Mix)

,
============================================================== (C)

Se nella premessa destra viene applicata (L), siccome in que-


sto caso la formula introdotta `e sempre quella tagliata, allora la
formula tagliata `e . Siccome tale ipotesi vale anche per la
premessa sinistra (altrimenti saremmo nei casi precedenti, in cui
84
si consideravano premesse con regole generali R
1
ed R
2
) la for-
mula introdotta `e sulla destra del sequente che `e quella tagliata,
cio`e per cui la premessa sinistra deve necessariamente avere
come regola applicata R.
Il multicut nella prima derivazione misura
< d( ), N(
1
) + N(
2
) + N(
3
) + 2 >
Nella derivazione ottenuta applicando il passo di eliminazione il
multicut `e stato sostituito con due multicut che hanno per` o misu-
ra minore, infatti questi hanno rispettivamente (dallalto al basso)
misura
< d( ), N(
1
) + N(
2
) + N(
3
) + 1 > e
< d(), 2N(
1
) +N(
2
) +N(
3
) +2 > che `e minore della misura
del cut nella prima derivazione perche d() < d( ).
Se n 1 = 0 la derivazione ottenuta `e invece la seguente

1
:


3
: ,
(Mix)

,
========================== (W)

Nella derivazione iniziale il multicut misura


< d( ), N(
1
) + N(
2
) + 1 + N(
3
) + 1 > mentre in quella
appena elencata, prodotta nel caso n 1 = 0 il multicut misura
< d(), N(
1
) + N(
3
) > che `e minore essendo
d() < d( ).
()

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 [[]]

allora f() [[]]

[[]]

=
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]]

= indipendentemente dal valore di


(B).
Se ad esempio (A) =
1
e (B) =
[[A B]]

= (
1
, 0)
Se (A) =
1
,
2
e (B) =
3
,
4

[[A B]]

`e linsieme che contiene la funzione tale che f(


i
) =
3
, la
funzione tale che f(
i
) =
4
, la funzione tale che f(
1
) =
3
, f(
2
) =

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() [[]]

, ma unesempio di tale funzione `e


f(,

) =
dove la coppia (,

) `e una prova di (e quindi `e una prova di ).


Il lettore esperto avr`a notato che la funzione data al punto precedente
`e la forma currycata di questa funzione.
= ( ) non `e tautologica. Infatti
5
Pi` u precisamente la funzione f `e una funzione f : P P cosicche data una qualsiasi
prova produca come risultato la prova stessa.
90
In assenza di contesto non esiste una prova generica per
Una prova per `e una funzione tale che se , f()
ossia f `e una funzione con domino vuoto, ma se f ha domi-
nio vuoto allora non devono esistere prove per , cosa che non
pu` o essere stabilita in assenza di contesto (non vale per tutte le
interpretazioni).
2.4.2 Semantica alla Kripke
Un altro approccio alla semantica, `e basato sulla nozione di evoluzione della
conoscenza nel tempo. Supponiamo di avere un insieme di conoscenze X su
una formula . Tale insieme `e ordinato in ordine cronologico e con il progre-
dire del tempo la conoscenza si espande. Quindi date due conoscenze x ed
y dellinsieme X, se x y allora la conoscenza y `e ottenuta in un momento
successivo e quindi in tale momento anche la conoscenza x `e disponibile.
Diciamo che x forza una formula se `e noto con nellistante in cui si ottiene
la conoscenza x (che chiameremo anche istante x) che `e vera. Formalmente
denoteremo questo con x [= e con x [= il fatto opposto.
Siccome la conoscenza si accumula, potremmo avere che x [= , che con la
conoscenza y ottenuta ad unistante successivo y [= ma con z tale che
y z dobbiamo necessariamente concludere che z [= .
Denizione 21. Una frame di Kripke `e una tripla (X, , [=) tale che
(X, ) `e un insieme parzialmente ordinato e [= `e una relazione (detta rela-
zione di forcing) tale che
x, y X x [= A e x y y [= A, A A
Anche in questo caso la semantica di una variabile proposizionale (data
dalla relazione di forcing) dipende dal contesto (denito dal frame) e per
denire la relazione di forcing su una generica formula si procede nel seguente
modo
x [= SSE x [= e x [=
x [= SSE x [= o x [=
x [= SSE y x y [= y [=
x [=
Si noti che nel caso dellimplicazione la denizione x [= x [=
sarebbe stata sbagliata perche potrebbe non essere vera nel presente ma
esserlo nel futuro senza che sia vera e quindi x forzerebbe limplicazione
91
ma non la forzerebbe nel futuro il che sarebbe in contraddizione con la se-
mantica data alla relazione [= per cui se una formula `e forzata in unistante
lo `e anche in quelli successivi.
Questa propriet`a viene detta monotonicit`a. In generale una logica `e mo-
notona quando la validit`a di una formula viene preservata se aumenta la
conoscenza a disposizione.
Denizione 22. Una formula `e forzata nel frame (X, , [=) se e solo
se
x X x [=
Intuitivamente il fatto che una formula `e forzata in un frame `e analogo al
fatto che una formula `e vera sotto una determinata interpretazione.
Nel seguito sono stati riproposti gli esempi fatti per la semantica alla Heyting
A B: tutti i frame (X, , [=) tali che x x [= A e x [= B forzano
AB. Il frame (N, , [=) tale che x [= A se e solo se x > 1 ad esempio
non forza A B.
A B: il frame (N, , [=) tale che x [= A x N forza A B ma se
x [= A SSE x > 0 e x [= B SSE x > 1 non la forza perche 0 [= AB.
A B: il frame (N, , [=) tale che x [= A x N forza la formula ma
se ad esempio x [= A SSE x > 1 e 2 [= B la formula non `e pi` u forzata
dal frame.
Denizione 23. Un sequente `e valido (denotato con [= ) se e
solo se
(X, , [=).x X. x [= x [=
Denizione 24. Una formula `e una tautologia se e solo se `e forzata da
ogni frame.
Riproponiamo nel seguito gli esempi fatti per la semantica alla Heyting.
, si deve avere che x [= per ogni elemento dellinsieme
denito in qualsiasi frame, e quindi per denizione di forcing si deve
avere che per ogni y x, se y [= allora y [= , ma questo `e sempre
vero per cui la formula `e tautologica.
, si deve avere che per ogni elemento x (dellinsieme denito
da qualsiasi frame), per ogni y x, se y [= allora y [=
ossia per ogni z y, se z [= allora z [= ma quando y [=
92
continuer`a a forzarlo nel futuro (per monotonicit`a, propriet`a che verr` a
dimostrata tra poco) quindi da quel momento in poi quando per qualche
z y, z [= allora sar` a forzata.
: dato che = , allora x [= se e solo se y x y [=
. Sia dato il frame (N, , [=) tale che 0 [= e x 1 x [= (per
qualche formula ). Anche 0 [= deve essere vera una delle
due seguenti asserzioni
0 [= : ma questo non `e vero per ipotesi
0 [= : ma per essere vero occorre che 1 [= , che non `e vero
per ipotesi
Quindi non tutti gli elementi di N forzano il terzo escluso, per cui tale
formula non `e forzata da tutti i frame e quindi non `e una tautologia.
Si noti che il terzo escluso non `e valido a priori, ossia non `e valido per
ogni ed il motivo `e che non `e noto quando `e vero o quando `e vero
e di fatto `e proprio questo il ragionamento che ha portato con le
due semantiche date a provare la non validit`a. Tuttavia se `e una
tautologia, allora `e valida (infatti lassunzione 0 [= non `e pi` u
vera in questo caso perche contraddirebbe la denizione di tautologia)
ma questo `e coerente con lintuizionismo perche quando `e tautologica
`e noto che `e valida grazie alla validit`a di (e lo stesso discorso
vale anche se `e contraddittoria) quindi in casi come questo `e noto
perche `e valido.
Lemma 6 (Monotonicit` a).
(X, , [=).x X x [= e x y y [=
Dimostrazione. Per induzione sulla sintassi di .
A (caso base): ogni relazione di forcing deve avere la seguente propriet` a
x X x [= A e x y y [= A
per denizione di frame
: per ipotesi induttiva
x X x [= e x y y [=
x X x [= e x y y [=
93
ma per la denizione di relazione di forcing estesa ad una formula ge-
nerica x X x [= e x [= SSE x [= . Occorre dimostrare
che
x X x [= e x y y [=
Ma se x [= , cio`e se x [= e x [= e se x y si conclude che
y [= e y [= , cio`e y [= .
: analogo al caso precedente
: questo punto pu` o essere dimostrato senza avvalersi delle ipotesi
induttive. Occorre dimostrare che
x X x [= e x y y [=
ma per denizione di relazione di forcing sulle formule generiche si ha
che se x [= se e solo se y x y [= y [= . Per cui
occorre dimostrare che
x X (z x z [= z [= ) e x y (z y z [= z [= )
Ma per transitivit` a della relazione dordine (x y e y z x z)
si ha che z x anche nella formula a destra delle metaimplicazione,
per cui occorre dimostrare che
x X (z x z [= z [= ) e x y (z x z [= z [= )
che `e immediato.
: questo elemento sintattico non `e mai forzato per cui la monotonicit` a
`e immediatamente vericata.
Con lausilio di questo lemma ed avvalendosi della semantica alla Kripke,
`e possibile dimostrare la correttezza del sistema di deduzione naturale per la
logica intuizionista (ovviamente si pu`o fare anche utilizzando la semantica
alla Heyting).
Teorema 18 (Correttezza).

NJ
0
[=
Il teorema di correttezza enuncia che se un sequente `e derivabile in dedu-
zione naturale (intuizionista) allora `e forzato da ogni frame.
94
Dimostrazione. Per induzione sulla derivazione di in deduzione natu-
rale. Per ogni frame (X, , [=) occorre dimostrare che
x X ( .x [= ) x [=
(Ax)
(Ax)

Occorre dimostrare che
x X x [= x [=
che `e immediato.
(I)

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

`e unestensione di una logica L se la sintassi di 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 che `e nel linguaggio di L, `e provabile anche in L.


Ad esempio se aggiungiamo alla logica classica anche la costante (chiamia-
mo questa nuova logica L

), ossia la tautologia, tale logica `e unestensione


di quella classica denita in questo documento (chiamiamola L) ma `e anche
unestensione conservativa perche ogni formula che non contiene ed `e pro-
vabile 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

Questo teorema enuncia che le formule e [] sono logicamente equiva-


lenti in logica classica e quindi che anche i sequenti e [] , []
6
lo sono e se il primo `e derivabile in logica classica il secondo lo `e in logica
intuizionista.
Questo intuitivamente signica che ogni teorema dimostrabile classicamente
lo `e anche intuizionisticamente purche venga riformulato in modo tale da
poter avere una dimostrazione costruttiva. Naturalmente essendo linsieme
dei sequenti derivabili in logica intuizionista un sottoinsieme proprio del-
linsieme dei sequenti derivabili classicamente, qualche sequente della logica
classica verr` a tradotto nello stesso sequente.
Dimostrazione. 1. Per induzione sulla sintassi. Si noti che per i teoremi
di correttezza e completezza
[[]]

= [[ [] ]]

`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

) `e invece un costrutto che


permette di scegliere, in base al termine di confronto (M) uno dei due ra-
mi inleft o inright e di sostituire alle occorrenze rispettivamente di x o di y
in N (rispettivamente in N

) con M

tale che M valutato diventa inl(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.

E importante che si sostituiscano solo le occorrenze delle variabili libere in


un termine, altrimenti si cambierebbe il legame di una variabile ottenendo il
binding dinamico, mentre nel -calcolo si vuole il binding statico. Ad esem-
pio dato x (x.y.x y), se si sostituissero tutte le occorrenze di x con un
termine M si avrebbe il seguente termine
M(x.y.M y), dove la variabile x addirittura scompare se M non `e una
variabile. Invece la sostituzione corretta non altera il legame delle variabili e
darebbe origine al seguente termine
M(x.y.x y)
x[M/y] = x se x = y
x[M/x] = M
(x.M)[N/x] = x.M
(y.M)[N/y] = y.M[N/x] se x = y e y FV (N)
(y.M)[N/y] = w.M[y/w][N/w] se x = y e y FV (N) ew fresco
(M M

)[N/x] = M[N/x] M

[N/x]
(< M, M

>)[N/x] =< M[N/x], 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

di -equivalenza di due termini `e la chiu-


sura riessiva, transitiva e simmetrica di .
Inoltre deniamo

come la chiusura riessiva e transitiva di

. Il
fatto che

denoti la chiusura transitiva e riessiva di

denota il fat-
to che dato M

N, N pu` o essere ottenuto da M in 0 passi (M = N,


M

M ossia `e riessiva) oppure in un numero arbitrario di passi (ossia


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

z.z y e di fatto rappresentano la stessa funzione a meno di nome di variabili.


Ora `e possibile denire una semantica operazionale, cio`e una descrizione
formale di come si esegue un programma nel -calcolo . Questo signica as-
sociare un risultato ad ogni termine denendo delle regole.
La relazione di -riduzione

`e denita nel modo seguente


105
Passi computazionali
(x.M)N

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.(fst(< z.z, x >)) y

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

N con N una forma normale, allora questa `e unica.


Dimostrazione. Si assume che esiste unaltra forma normale N

, ossia che
M

N e M

. Allora per il teorema di Church-Rosser necessaria-


mente N

P e N

P ma N ed N

sono due forme normali quindi deve


essere necessariamente N = 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

F FIX F dove FIX viene detto operatore del punto sso.


Quindi se F `e una funzione ricorsiva, allora FIX F `e il punto sso tale che
`e possibile eseguire un numero di passi computazionali stabiliti da F, ossia
108
tale funzione ha il controllo della computazione.
Loperatore del punto sso pi` u semplice `e il seguente
FIX = f.(x.f (x x)) (x.f (x x))
Questo operatore non funzione nel caso di CBV ma funziona per CBN. In
ogni caso in questo documento le varie strategie di riduzione hanno poca
importanza, quello che conta `e trovare operatori o propriet`a che valgono per
una qualche sequenza -riduzione, quindi indipendentemente da una parti-
colare strategia di valutazione.
Mostriamo come esempio la funzione ricorsiva che calcola il fattoriale (as-
sumendo di disporre di operazioni sui numeri naturali e dei numeri naturali
stessi)
FATT = f.n.if n = 0 then 1 else n (f (n 1))
Il parametro f rappresenta la funzione stessa, ossia unapplicazione di f a
qualche argomento allinterno della funzione FATT rappresenta un richiamo
ricorsivo. Ora il punto sso FIX FATT permette di calcolare il fattoriale.
Ad esempio, calcoliamo il fattoriale di 1
((FIX FATT) 1)

((x.FATT (x x)) (x.FATT (x x))) 1

(FATT (((x.FATT (x x)) ((x.FATT (x x)))) 1

(n.if n = 0 then 1 else n (((x.FATT (x x)) ((x.FATT (x x)))) (n 1))) 1

if 1 = 0 then 1 else 1 (((x.FATT (x x)) ((x.FATT (x x)))) (1 1))

1 (((x.FATT (x x)) ((x.FATT (x x)))) (0))

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

(x.(F x x)) (x.(F x x))

F (x.F x x) (x.F x x)

F ((f.(x.f x x) (x.f x x)) F)


= F (Y F)
109
3.1.3 Sistema di tipi
Il programma appena dato `e corretto e permette di calcolare il fattoriale ma
programmi divergenti come (x.(x x)) (x.(x x)) non producono risultati in
quanto non esiste una sequenza nita di -riduzione che lo porta in forma
normale. Inoltre alcune forme normali sono prive di signicato: si vorreb-
be che una forma normale sia una funzione o una coppia e ad esempio non
una variabile. Per questo ad un programma si associa tipicamente un tipo
che indica che il programma produce un risultato e classica tale program-
ma. Il sistema di tipi nasce dunque per dare un tipo ad un programma e
di riconoscere dunque che tale programma ha determinate propriet` a (come
ad esempio quella di terminare, ma non `e detto che tutti i sistemi di tipi la
garantiscano).
Denoteremo con M : il fatto che il -termine M ha tipo .
Il -calcolo che ha il sistema di tipi (che vedremo fra poco) `e detto -calcolo tipato
(semplice se ha solo variabili, astrazioni e applicazioni o esteso se consideria-
mo tutta la sintassi precedentemente data) e verr` a denotato con il simbolo

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

un termine tipato nel -calcolo tipato.


Denizione 28. Un type-judgment `e una relazione M : dove M `e
un -termine, un tipo e un insieme (eventualmente vuoto) di relazioni
variabile-tipo (x : ) tale che se x : allora x :

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) >)

fst(M) e snd(< 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

assumendo che M sia un termine del -calcolo tipato


Dimostrazione. Si parte dai casi base in cui il detour si trova alla radice
(che corrisponde al fatto che il termine che decora il lato destro del sequente
derivato `e un -redesso) e poi si considera il caso induttivo. caso base
detour = redesso applicazione

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

Perche per ipotesi induttiva applicando il passo di normalizzazione a

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 :

Ma per ipotesi induttiva =

e quindi le due derivazioni coincidono


cos` come =

.
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 :

Me per ipotesi induttiva (applicata per

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 >:

Ma per le ipotesi induttive =

e =

per cui =

Gli altri casi sono analoghi a questi


Si noti inoltre che se
1
:
d
M : e
2
:
d
M : allora
1
=
2
e
questo `e facile da provare siccome ogni ad termine pu`o essere applicata una
sola regola.
Questo signica che ogni -termine del -calcolo tipato corrisponde ad una
ed una sola dimostrazione.
Ma `e vera anche lunivocit`a inversa, ossia ogni prova pu`o essere decorata e il
termine ottenuto `e unico (a meno di nomi di variabili).
Teorema 26. Sia una derivazione e
p
la sua variante decorata
: M
d
:
d
M :
e M `e unico, a meno di nomi di variabili.
Dimostrazione. Per induzione strutturale su .
(Ax): la derivazione
(Ax)

E possibile decorare il sequente aggiungendo per ogni formula un nuovo


nome di variabile nel contesto e associando una qualche variabile di tipo
nel contesto, alla formula . Si noti che il termine associato a nella
parte destra del sequente decorato `e unico a meno di nome di variabile.
(Ax)

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

= essendo le due prove uguali) ma rimuovendo


la decorazione il vincolo viene meno e quindi la derivazione `e nella forma pi` u
generale

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.

`e la chiusura riessiva, simmetrica e transitiva di

.
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

linsieme di tutti i termini del -calcolo tipato alla Curry. Si


denisce la classi di equivalenza dei termini a meno di -renaming come
[M]

= 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

Denoteremo ad esempio un termine x.x la sua classe di equivalenza [x.x] =


x.x, y.y, z.z, . . . cos` che si possa indicare x.x .
131
La normalizzazione forte verr` a provata per il -calcolo tipato semplice alla
Curry (quindi senza coppie e inl, inr).
Denizione 30.
SN

= 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

`e saturato allora contiene tutte le variabili ma una variabile `e


gi` a in forma normale per cui fortemente normalizzabile.
2. (a) Occorre dimostrare che x M
1
. . . M
n
A B con M
1
, . . . , M
n
fortemente normalizzabili.
Anche questo sia vero, si deve avere che
M
n+1
A x M
1
. . . M
n
M
n+1
B
Questo `e vero perche ogni M
n+1
`e fortemente normalizzabile per-
che ogni termine di un insieme saturato `e fortemente normalizza-
bile (A 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

`e saturato per il punto 1 del lemma 10.


: per ipotesi induttiva [[]] e [[]] sono saturati per cui per il punto
2 del lemma 10 [[ ]] = [[]] [[]] `e saturato.
Ora occorre fornire uninterpretazione semantica ai termini del -calcolo che
sia molto vicina alla sintassi, o meglio verr` a denita la semantica di un ter-
mine come un termine stesso.
Linterpretazione `e denita come una funzione : V ar ossia come
una funzione da variabili (del -calcolo ) a -termini.
Inoltre si denisce (x := N) come uninterpretazione uguale a eccetto in
x a cui associa il valore N.
Denizione 33.
(x := N)(y) =

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]]

[[]] ma allora per denizione di , [[M]]

[[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.

E necessario estendere la -riduzione allapplicazione di tipo


(X.M)

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

Operatore del punto fisso


Dove ogni termine `e provvisto delle annotazioni di tipo.
La semantica operazionale (denita in stile big-step), data la relazione M n
tale che M si riduce con una sequenza nita di passi computazionali al numero
n, `e la seguente
(num)
n n
(succ)
succ(n) n + 1
(pred 0)
pred(0) 0
(pred)
pre(n + 1) n
M P
(if 0)
if 0 M N P
N P
(if n + 1)
if n + 1 M N P
M[N/x] M
1
. . . M
n
P
(head)
(x.M) N M
1
. . . M
n
P
P(Y P) M
1
. . . M
n
P
(Y )
Y P M
1
. . . M
n
P
Le regole particolarmente interessanti sono (head) e (Y ). La prima mo-
stra come la riduzione di unapplicazione sia una riduzione in testa, ossia si
riducono prima le funzioni e poi si passano immediatamente ai suoi argomen-
ti. PCF implementa dunque la strategia call-by-name. La regola (Y ) mostra
invece come avviene la computazione del punto sso.
La regola di tipo per il punto sso `e la seguente
M :
(Y )
Y M :
La riduzione del soggetto rimane ancora valida perche
(Y M)

(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

che ha soluzione se e solo se esiste una sostituzione S tale che S(t


i
) = S(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

se una variabile occorre nella parte sinistra di unequazione allora non


occorre nella parte destra di nessuna equazione
una variabile occorre nella parte sinistra di una sola equazione
La sostituzione di un sistema in forma risolta x
1
= 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

equivalente ad E. Dopo aver eseguito un determinato numero di passi il


sistema ottenuto `e quello in forma risolta oppure il sistema `e in forma irriso-
lubile.
Per ogni equazione, lalgoritmo riconosce la forma dellequazione (ed even-
tualmente richiede la presenza di altre equazioni nel sistema) ed esegue uno
dei passi sotto elencati modicando lequazione.
1. x = t e x = s (t non variabile) ;x = t e t = s
2. t = x (t non variabile) ;x = t
3. f
(n)
t
1
. . . t
n
= f
(n)
u
1
. . . u
n
;t
1
= u
1
, . . . , t
n
= u
n
4. x = t e u = v (t non variabile) ;x = t e u[t/x] = v[t/x]
5. t = t ;equazione rimossa
Ad esempio il seguente sistema f x = f c, g (h a) y z = g x

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

= h a, y = c, z = c `e in forma risolta, infatti


S(f x) = f c, S(f c) = f c, S(g (h a) y z) = g (h a) c c, S(g 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

Quindi, siccome FV (M) = , allora = e S(


P
) = S() =
y

y
,
quindi il typing `e il seguente
(x.x) (y.y) :
y

y
Assoceremo allalgoritmo di ricostruzione di tipo dato il nome e de-
noteremo con (M) =< E
M
,
M
> il fatto che dato in input il termine M
allalgoritmo , questo restituisce in output la coppia < E
M
,
M
>.
Ora `e possibile enunciare i teoremi di correttezza e completezza.
Teorema 34 (Correttezza). Sia M un -termine e (E
M
,
M
) loutput del-
lalgoritmo dato di ricostruzione di tipo dato linput M, se S `e la soluzione di
E
M
e il contesto tale che (x) = S(
x
), x FV (x) allora M : S(
M
).
Dimostrazione. Per induzione strutturale su M.
x: (x) =< ,
x
>.
La soluzione del sistema `e la sostituzione S tale che S() = ,
ossia S `e la funzione identit`a.
Quindi = x : S(
x
) = x :
x
e = e S(
M
) = S(
x
) =
x
,
quindi il typing trovato dallalgoritmo `e il seguente: x :
x
x :
x
,
che in eetti `e corretto, in quanto esiste la derivazione di tipo
(V AR)
x :
x
x :
x
x.M: (x.M) =< E
M
,
x

M
>Per ipotesi induttiva, sia (M) =<
E
M
,
M
>, il typing trovato dallalgoritmo `e

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

= e per denizione di sostituzione S(


x
) S(
P
) =
S(
x

P
)
2. x FV (M), allora per weakening (essendo x fresca) si ha il
judgment

, 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

tali che x (x) = 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

per cui S() = 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

. Intuitivamente questo pu` o denotare il fatto di consumare una


risorsa (che in eetti `e il contrario di ottenere una risorsa). Mettiamo ora
in relazione questo fatto con il connettivo ` .
Si supponga di entrare in un ristorante e di disporre di 75 euro, allora con
questi soldi `e possibile selezionare un men` u M. Si pu` o esprimere questo fat-
to con il sequente 75F M oppure con la formula 75F

` 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 ( )

senza ricorrere alla denizione


data, mostrando che
( )

e che

( )

In generale denoteremo con il fatto che entrambi i sequenti e


sono derivabili.
per il primo sequente la derivazione `e
(Ax)

(R)

,
(Ax)

(R)

,
(R)

,
(L)
( )

(` R)
( )

per il secondo sequente la derivazione `e


(Ax)

(L)

,
(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 lo stesso vale per ?.


Per essere pi` u precisi, la modalit` a of course `e stata introdotta per permettere
di utilizzare le regole strutturali sinistre mentre why not per utilizzare le
regole strutturali destre.
Tali modalit` a vengono tipicamente chiamate esponenziali.
Nel caso di regole destre si hanno le seguenti regole:
,
(!D)
, !
Questa nuova regola strutturale si chiama dereliction. Intuitivamente que-
sta regola indica che se `e possibile derivare utilizzando una sola risorsa
allora `e possibile sostenere il caso pi` u generale (che `e la conseguenza della
regola) in cui la risorsa viene utilizzata un numero indeterminato di volte.
Questo equivale a dire, sia n il numero di volte che si utilizza , se n = 1
166
allora si pu`o concludere che n 0 tale che la formula viene utilizzata un
numero n di volte per produrre .
, !, !
(!C)
, !
La regola di contrazione pu`o essere utilizzata in questo modo perche a
questo punto utilizzare due volte ! oppure una `e del tutto equivalente,
perche tanto gi` a la sola ! modella il fatto di poter utilizzare un numero
illimitato di volte quindi avere a disposizione due quantit`a potenzialmente
illimitate della stessa risorsa equivale ad averne a disposizione una.

(!W)
, !
La formula ! pu` o essere introdotta dato che in questo caso nella premessa
non viene utilizzata (per cui pu` o essere utilizzata un numero arbitrario di
volte, anche nessuna ed `e proprio questo il caso).
Ad ogni modo si noti che queste sono solo interpretazioni intuitive. In realt` a
le modalit` a sono state introdotte semplicemente per rendere possibili le regole
strutturali.
! , ?
(!)
! !, ?
Dove se =
1
, . . . ,
n
con ! si intende !
1
, . . . , !
n
e con ? si intende
?
1
, . . . , ?
n
.
Questa regola si chiama promotion. Per capirla meglio si noti che il sequente
! , ? equivale al sequente !, !(

) (perche con le regole della


negazione si pu` o spostare una formula qualsiasi da una parte allaltra del
sequente negandola e (?)

=!(

)). Allora siccome tutte le risorse nel


contesto sono in modalit` a of course, possono essere utilizzate anche pi` u volte
per ottenere pi` u copie di e quindi anche pu` o passare a tale modalit` a.
Esistono le stesse regole strutturali che agiscono sul lato sinistro del sequente.
,
(?D)
, ?

(?W)
, ?
, ?, ?
(?C)
, ?
167
!, ?
(?)
!, ? ?
Anche questultima regola si chiama promotion, ma `e la variante per la
modalit` a why not.
Linsieme delle regole della logica lineare `e molto grande, ma si osservi che
i sequenti e

, sono equivalenti, per cui ogni sequente pu`o


essere convertito nella forma economica in cui tutte le formule occorrono
solo sul lato destro. Questo suggerisce la possibilit`a di fornire una versione
economica del calcolo dei sequenti per la logica lineare, in cui `e presente il
numero minimo di regole per renderlo equivalente al calcolo dei sequenti con
due lati (quello mostrato nora). La versione economica `e la seguente
Identita

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
?

:?,
(!)
?, !
;

?
.

\
!
!

La dimostrazione `e stata circondata da un rettangolo che assieme al


nodo ! rappresenta un box per identicare una parte di dimostrazione
che come vedremo nelleliminazione del taglio pu` o essere duplicata o
cancellata assieme al nodo !.
Si pu` o facilmente vericare che date due derivazioni dello stesso sequente
in cui lapplicazione di alcune regole appare in un ordine diverso, queste corri-
spondono alla stessa proofnet. Le proofnet rendono quindi indipendente una
172
dimostrazione dal particolare ordine di applicazione e anche dal sistema di
deduzione utilizzato. Infatti, `e possibile costruire una proofnet e vericare se
questa rappresenta una dimostrazione (non tutte le proofnet rappresentano
dimostrazioni) tramite algoritmi senza ricorrere ad un particolare sistema di
deduzione! Inoltre le proofnet permettono di osservare in maniera pi` u chiara
cosa accade alla dimostrazione quando vengono applicate modiche in essa
(ad esempio un passo di normalizzazione o di eliminazione del taglio).
Il criterio di correttezza, che verica se una rete rappresenta una deriva-
zione corretta in un qualche sistema di deduzione, verica che da ogni nodo
esista un cammino che attraversa tutti gli archi e torna al nodo di parten-
za. In realt` a si tratta di un algoritmo esponenziale perche dove occorre il `
occorre bloccare uno dei due input e vericare che il cammino che attraver-
sa la rete esista tenendo conto che questo non pu` o passare per uno dei due
rami in input e poi vericare la stessa cosa bloccando laltro ramo. In ogni
caso esistono algoritmi che vericano questo criterio di correttezza in tempo
lineare.
Verr`a ora mostrata leliminazione del taglio restringendosi al solo caso in
cui la formula tagliata viene introdotta nelle premesse e quindi prima non
occorreva.
1. (W)

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)

dove ?(i) denota la i-esima delle n formule di ?.


Si noti che la derivazione con la box `e sparita. Questo passo di elimina-
zione del taglio corrisponde dunque ad unoperazione di cancellazione
di un box (quindi di una derivazione). Si ricordi che in realt`a con box
si intende la derivazione
2
ed il nodo !.
2. (!)

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
?

Osservando lapplicazione del passo di eliminazione del taglio sulla


proofnet si vede bene come la box `e stata duplicata.
Si pu` o facilmente vericare che i casi delle regole moltiplicative non com-
portano la duplicazione di nessuna prova (nel caso della MELL, che `e quello
che si sta considerando) anche perche altrimenti i contesti si arricchirebbero
troppo essendo le regole moltiplicative e la contrazione non `e disponibile.
Dallaltro lato non `e possibile rimuovere sottoderivazioni servendosi del wea-
kening perche si tratta di formule lineari. Quindi i casi di eliminazione e
duplicazione di dimostrazione nelleliminazione del taglio sono solo quelli vi-
sti e coinvolgono soltanto i box. Si pu` o dunque dire che la regola promotion
costruisce una box in tutta la sua sottoderivazione (premessa e conclusione
inclusa) che permette alla prova di essere duplicata.
Questo permette di avere operazioni di duplicazione e rimozione in manie-
ra controllata. Avere un controllo sulle duplicazioni di prove consente di
controllare leventuale espansione delle derivazioni e quindi la complessit` a
computazionale dellalgoritmo di eliminazione del taglio (ma queste consi-
176
derazioni possono valere anche per altri algoritmi) il che, come vedremo in
seguito, sar`a molto vantaggioso per linformatica.
4.2 Semantica
Ogni semantica associa ad una formula un valore semantico appartenente ad
un dato insieme, ossia `e una funzione S : T S dove S `e detto spazio
semantico. Nella semantica per la logica classica lo spazio semantico `e lin-
sieme che contiene le due costanti booleane true, false. Nella semantica alla
Heyting lo spazio semantico `e linsieme di prove (che pu` o essere ad esempio
).
Nella logica lineare lo spazio semantico `e un monoide commutativo.
Denizione 41. Un monoide M`e un insieme munito di unoperazione ()
che gode delle seguenti propriet`a
a, b M (a b) c = a (b c), ossia `e unoperazione associativa
1 Mt.c.a M a 1 = 1 a = a, ossia esiste un elemento neutro
1 delloperatore nel monoide M
a, b M a b M
Denizione 42. Un monoide munito della sua operazione si dice com-
mutativo se `e unoperazione commutativa
Si noti come il concetto di valore calcolato dalloperatore sia poco ri-
levante nella denizione di monoide. Infatti, a parte il caso dellelemento
neutro, non importa quale sia il valore di a b, limportante `e che tale valore
appartenga sempre al monoide. Si tratta dunque di unalgebra molto ele-
mentare. Un esempio di monoide `e linsieme N con loperazione di prodotto
oppure di somma.
Prima di denire la semantica della logica lineare, occorre denire lo spazio
della fasi.
Denizione 43. Lo spazio delle fasi `e una coppia < M,
M
> dove M`e
un monoide commutativo e
M
M
Siano X, Y Mnello spazio delle fasi < M,
M
>, denoteremo con XY
linsieme x y [ x X e y Y e con X Y linsieme
y [ x X x y Y . Denoteremo invece con X

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

Ora si deniscono gli operatori per tutti i sottoinsiemi di un monoide.


Dato uno spazio delle fasi < M,
M
>, siano X e Y due sottoinsiemi del
monoide e loperazione associativa e commutativa associata al monoide,
allora sono deniti i seguenti operatori su tali insiemi
X` Y = (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
( )

&

( )

=!()

!()

( )

=!()

Dal punto di vista della semantica alla Heyting, limplicazione lineare-


intuizionista `e una funzione che converte una prova di in una prova di
usando la prova di esattamente una sola volta. Ad esempio la funzione
x.x x, non pu` o essere una prova di nessuna implicazione lineare perche lin-
put x (che `e una prova di ) viene duplicato e quindi viene utilizzato pi` u
volte (si dice che tale funzione non `e lineare).
Intuitivamente `e per questo motivo che la premessa dellimplicazione lineare
`e in modalit` a of course (si pu`o a questo punto utilizzare pi` u volte la prova
di o anche non utilizzarla).
Teorema 36.

LJ
0
SSE !


LLI

Come al solito, la dimostrazione dei due lati della biimplicazione di questo


teorema `e fatta per induzione strutturale sulla derivazione rispettivamente
in LJ
0
() e LLI ().
Si noti che il contesto del sequente derivato con LLI ha lintero contesto in
modalit` a of course in quanto le formule in logica intuizionista nel contesto
possono essere utilizzate un numero arbitrario di volte.
4.4 ICC
Lo studio della complessit`a degli algoritmi ha un ruolo rilevante nellinfor-
matica.
Tra questi studi, `e di grande importanza la complessit` a computazionale impli-
cita, dallinglese Implicit Computational Complexity (abbreviato ICC)
che studia la caratterizzazione di classi di complessit` a (come le note classi P
181
ed NP) mediante la logica. Di fatto lidea `e quella di rappresentare una clas-
se di complessit` a tramite una logica che decorata con un linguaggio come il
-calcolo permetta di scrivere con tale linguaggio solo algoritmi che risolvono
problemi in quella classe di complessit`a.
In questo documento verr` a trattata una logica che permetta di decorare il
-calcolo in modo tale che possano essere scritti tutti e soli i programmi po-
linomiali, ossia i programmi che impiegano un numero di passi che `e O(n
k
)
dove n `e la dimensione dellinput, per qualche costante k.
In altre parole, si cerca una logica che, decorata con il -calcolo , generi un
sistema di tipi tale che un termine del -calcolo `e tipabile in quel sistema se
e solo se `e eseguibile in tempo polinomiale nella dimensione del termine.
Lidea `e quella di stabilire un isomorsmo tra -calcolo e leliminazione
del taglio (invece che tra -calcolo ed eliminazione dei detour) in una qualche
logica. Per vericare che ogni -termine tipabile in tale logica (decorata) `e
polinomiale nella dimensione del termine, `e suciente vericare che lalgorit-
mo di eliminazione del taglio sia sempre polinomiale nella dimensione della
prova.
Questo `e vero perche c`e una relazione tra la dimensione di un termine e
quella della prova associata, per cui se il numero di passi di eliminazione del
taglio su quella prova `e polinomiale nella dimensione della prova, allora il
numero di -riduzioni del termine associato alla prova sar` a anchessa polino-
miale (nella dimensione del termine).
Quindi se si trova una logica che ha leliminazione del taglio polinomiale, si
pu` o ereditare questa propriet` a direttamente nel -calcolo .
La logica MLL, non avendo gli esponenziali, ha una particolare propriet` a:
ad ogni passo di eliminazione del taglio non si duplicano dimostrazioni, ed in
generale la dimensione della prova diminuisce. Questo intuitivamente `e vero
perche avendo a disposizione solo risorse lineari, duplicare una sottoderiva-
zione signicherebbe riutilizzare la stessa risorsa pi` u volte (e la contrazione
non viene in aiuto in questo caso) ma questo non `e possibile.
Sfortunatamente questa logica ha leliminazione del taglio lineare nella di-
mensione della prova, ed `e quindi troppo restrittiva (si permetterebbe di
tipare nella decorazione solo algoritmi lineari).
Daltra parte la logica MELL ha leliminazione del taglio che `e esponenziale.
Di fatto come abbiamo visto nella sezione sulle proofnet, alcuni passi di eli-
minazione del taglio duplicano dimostrazioni.
Si vuole dunque una via di mezzo tra la MLL e la MELL. Si ricordi che
la regola responsabile delle duplicazioni di prove nelleliminazione del taglio
182
(e quindi dellincremento della dimensione della prova, che ha come conse-
guenza lincremento di complessit`a dellalgoritmo) `e soltanto la promotion.
Tale regola creava intuitivamente delle box attorno alla sua derivazione che
permetteva di duplicare o rimuovere tali box. Lidea `e dunque quella di
controllare la creazione delle box in modo tale da controllare la complessit` a
computazionale delleliminazione del taglio.
Esistono pi` u logiche che permettono di controllare la complessit`a delleli-
minazione del taglio (tipicamente vengono dette logiche leggere), tra cui la
BLL (bounded linear logic) che `e per`o molto pesante da analizzare, la LLL
(light linear logic) che aggiunge alla logica lineare una nuova modalit`a per
bloccare le duplicazioni delle prove, e la SLL (soft linear logic) che `e tra le
pi` u semplici ed sar`a lunica esaminata in questo documento.
4.4.1 SLL
La soft linear logic `e una logica leggera che ha due propriet` a molto impor-
tanti
correttezza rispetto a P: ogni derivazione `e normalizzabile (tramite
leliminazione del taglio), e quindi ogni programma del -calcolo tipabile
con la logica SLL decorata `e polinomiale
completezza rispetto a P: ogni funzione polinomiale `e rappresenta-
bile nella SLL.
La logica SSL `e costruita partendo dal frammento delle logica lineare
intuizionista che contiene come connettivo logico solo limplicazione e modi-
cando le regole strutturali. Il suo sistema di deduzione (al secondo ordine)
`e dunque il seguente
183
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.
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

che non sono


presenti in SSL
+
0
.
(W)

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

Dimostrazione. Per induzione strutturale sulla derivazione in SLL


+
0
.
185
(m)

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)
!,

Si hanno pi` u casi


n = 0

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)
,

E facile provare che se


1
: `e derivabile, allora si ha anche la
seguente derivazione
1
[/X] : [/X] [/X]. Questa deri-
vazione `e la stessa di
1
ma ogni occorrenza di X viene sostituita
con una formula qualsiasi . Ma nella premessa in cui appare
1
si ha che X FV () per cui non viene in realt` a eettuata nes-
suna sostituzione sul lato sinistro del sequente e qundi il sequente
derivato da
1
[/X] `e [/X].

1
[/X] : [/X]
2
: , [/X]
(Cut)
,

Passi commutativi: Sono gli stessi di quelli dati nelleliminazione del


taglio per la logica intuizionista.
La formula tagliata non `e stata introdotta da nessuna premessa
del 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)
,

La formula tagliata `e stata introdotta solo dalla premessa destra

1
:


(R)

2
: ,
(Cut)
,

1
:


2
: ,
(Cut)

,
(R)
,

Segue il lemma principale.


Lemma 13. Sia una derivazione in SLL, se applicando un passo di elimi-
nazione del cut si ottiene la derivazione

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

la parte di derivazione modicata


dopo lapplicazione del passo.
(Ax)

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(

, r) `e stato ottenuto sommando tutti i nodi del-


lalbero

e contando per ogni nodo di una derivazione


1
o

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) `e positiva, cosa che permette di concludere che W(, n) >


W(

, n). Se r > n allora


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

`e la derivazione ottenuta con un passo di eliminazione del cut.


Passo simmetrico: per il lemma 13 W(, rk()) > W(

, 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() oppure vengono aggiunti multiplexor


che non superano il rango massimo, e quindi rk(

) = rk(). Siccome
W(, rk()) > W(, rk(

)) per denizione di peso di una derivazione,


W(, rk()) > W(

, rk(

)) per cui diminuisce il primo elemento della


coppia. Queste considerazioni possono essere confermate analizzando i
passi di eliminazione del taglio.
Passo commutativo: per il lemma 13 questi casi non alterano il
peso della prova ma h() > h(

) (i cut vengono spostati verso le


foglie e quindi laltezza della sottoderivazione che termina con quel
cut diminuisce in

e le altre altezze rimangono invariate) per cui la


misura data dalla coppia diminuisce.
196
La dimostrazione del limite di complessit` a viene omessa per semplicit` a, ma
pu` o essere fatta a partire dal lemma 12.
In ogni caso si nota che la complessit` a dellalgoritmo `e polinomiale nella
dimensione della prova.
4.4.2 ESLL e isomorsmo
Ora che si dispone di una logica con leliminazione del taglio polinomiale, `e
possibile decorarla con il -calcolo per ottenere una variante del -calcolo che
contiene solo termini valutabili in tempo polinomiale una volta stabilito li-
somorsmo tra SLL ed eliminazione del taglio. Tutto questo `e ovviamente
ispirato allisomorsmo di Curry-Howard (o forse `e meglio dire allisomor-
smo stabilito nel Sistema F) ma si ricordi che la -riduzione non corrisponde
ad un passo di eliminazione di un detour ma ad un passo di eliminazione del
taglio.
Segue la decorazione di SLL (che `e fatta sul calcolo dei sequenti, unico siste-
ma che `e stato mostrato no ad ora per la soft linear logic). Si utilizza la
versione alla Curry del -calcolo
197
Identita

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.

E facile dimostrare che ESLL `e un sottoinsieme proprio di SLL per cui


leliminazione del taglio `e sempre polinomiale. Inoltre si pu` o dimostrare che
se la parte destra di un sequente `e modale, allora lo `e anche il contesto (quindi
non esistono sharing cut), ma non ci soermeremo su questa logica siccome
ne verr` a proposta una versione in deduzione naturale.
4.4.3 NESLL e isomorsmo
La logica ESLL pu` o essere convertita in una versione in stile deduzione na-
turale preservando le buone propriet`a di ESLL. Tale logica prende il nome
di NESLL ed il sistema di deduzione `e il seguente (la sintassi delle formule
`e identica a quella data per ESLL)
205
Identita

(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 n passi, lalgoritmo di eli-


minazione del taglio porta T() in T(

) in un numero m di passi tale che


n m.
A questo punto `e possibile mostrare il teorema che dimostra che la nor-
malizzazione in NESLL `e polinomiale.
Teorema 40 (Normalizzazione forte e complessit` a polinomiale). Sia una
derivazione in NESLL, allora `e fortemente normalizzabile in un numero di
passi che `e O([[
3(d(+1)
)
Dimostrazione. Sia una derivazione in NESLL e T() la sua traduzione in
ESLL.
Per il lemma 16 si ha che
[T()[ 3[[ e d(T()) = d()
Per il lemma 17 e per il teorema 39, applicando leliminazione del taglio si
raggiunge la derivazione T(

) in un numero n di passi tale che


n [T()[
3(d(T())+1)
e quindi per il lemma 16 e per transitivit` a
n [[
3(d()+1)
Ma per il lemma 17 la derivazione `e normalizzabile in

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.

E ora possibile decorare ESLL nel modo seguente


Identita

(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

S-ar putea să vă placă și