Franco Montagna
Dipartimento di Matematica,
Via del Capitano 15,
53100 Siena.
1 Cenni di Teoria degli Insiemi
La teoria degli insiemi costituisce un elemento unicatore di tutta la matemat-
ica, che viene cos` ridotta a due soli concetti fondamentali: quello di insieme e
quello di appartenenza. Uno dei principi fondamentali impliciti nella teoria `e
che ogni oggetto matematico (un numero reale, un cerchio, uno spazio metrico,
una misura, una funzione di variabile complessa, etc.) `e un insieme. Anche se
non sembra ragionevole che vi siano insiemi che rappresentino adeguatamente
il concetto intuitivo di numero reale o il concetto intuitivo di funzione, nella
teoria degli insiemi si dimostra lesistenza di insiemi che codicano in qualche
senso ragionevole i concetti di cui sopra. Ad esempio, `e possibile rappresentare
una funzione attraverso un insieme se la si identica con il suo graco (che `e
intuitivamente pensabile come un insieme). In un certo senso, lidenticazione
`e lecita, poich`e una funzione `e univocamente determinata dal suo graco, e
viceversa il graco di una funzione `e univocamente determinato dalla funzione
stessa. Tuttavia `e chiaro che in questo modo si perdono alcune peculiarit`a del
concetto intuitivo di funzione (concetto che fa pensare ad un processo dinamico
attraverso il quale partendo da un valore in ingresso si ottiene un valore in us-
cita).
In ogni caso, con la teoria degli insiemi si riesce a fare tutta la matematica
classica allinterno di un unico, semplicissimo linguaggio, per cui dobbiamo ri-
conoscere a tale teoria linnegabile merito di aver raggiunto con successo questo
importante obiettivo.
I padri fondatori della teoria furono da un lato Cantor, che si occup`o (sebbene
non ancora a livello di sistema assiomatico) del concetto astratto di insieme,
scoprendo fra laltro lesistenza di inniti diversi fra loro, e dallaltro Frege, che
aveva introdotto una teoria assiomatica delle classi allinterno della quale era
possibile unicare tutta la matematica.
La teoria di Frege era basata su due assiomi fondamentali, che almeno a prima
vista apparivano entrambi logicamente validi:
1
(1) Due classi con gli stessi elementi sono uguali.
(2) Ogni propriet`a P(x) denita sulla famiglia di tutte le classi determina una
classe C
P
= a : P(a) costituita da tutti e soli quelle classi a che godono
della propriet`a P.
Partendo da questi assiomi, Frege era riuscito a costruire i principali oggetti
matematici, come i numeri naturali, gli interi, i reali. Se la teoria avesse fun-
zionato, sarebbe stato possibile fondare tutta la matematica su principi che
apparivano accettabili su basi puramente logiche. Pertanto, sarebbe stato pos-
sibile ridurre la matematica alla logica.
Invece, B. Russell scopr` che allinterno della teoria era possibile derivare una
contraddizione: per il principio (2) esiste infatti una classe R costituita da tutte
le classi che non appartengono a se stesse: R = x : x / x. Tale classe `e anche
unica per il principio (1).
Dalla denizione di R si ha subito che per ogni x, x R sse x / x. Per x = R si
ottiene che R R sse R / R, da cui segue facilmente una contraddizione. [Es-
ercizio: dimostra tale contraddizione senza usare il principio del terzo escluso o
la reductio ad absurdum].
Pur avendo scoperto il paradosso, Russell era convinto che la teoria di Frege
potesse essere salvata con qualche cambiamento. Per questo, egli invent`o una
teoria dei tipi nella quale ad ogni oggetto veniva assegnato un tipo, con la clau-
sola che oggetti di un dato tipo potevano avere come elementi solo oggetti di
tipo inferiore. Nella teoria non era per`o possibile dimostrare lesistenza di entit`a
innite, per cui cominci`o a farsi strada lidea di introdurre assiomi strettamente
matematici.
Nella Teoria di Zermelo, lassioma (2) viene sostituito dallassioma pi` u debole:
data una propriet`a P(x) ed un insieme a, esiste un insieme b a i cui elementi
sono tutti e soli quegli elementi di a che soddisfano la proprieret`a P(x). In tale
teoria, vi `e anche un assioma che garantisce lesistenza di entit`a innite.
Successivamente, Fraenkel aggiunse alla teoria di Zermelo un assioma che intu-
itivamente aerma che per ogni legge F che associa ad ogni insieme x uno ed
un solo insieme y = F(x), e per ogni insieme a, esiste linsieme F[a] costituito
da tutti e soli gli elementi del tipo F(b) con b a, ossia: F[a] = z : u a(z =
F(u) `e un insieme.
Nasce cos` la Teoria di Zermelo Fraenkel, nota come Teoria ZF, che viene usata
ancor oggi dai matematici.
2 La teoria ZF
Il linguaggio di ZF ha due simboli di relazione binaria, = (uguaglianza) e
(appartenenza). ZF non ha altri simboli relazionali, e inoltre non ha n`e simboli
di funzione n`e simboli di costante. Tuttavia, come vedremo presto, in pratica
2
`e comodo aggiungere dei simboli denibili attraverso e =, e pensarli come
abbreviazioni di formule pi` u complesse contenenti solo e =.
Gli assiomi di ZF sono i seguenti: (li enunciamo in modo informale, lasciando
come esercizio al lettore il compito di scriverli in modo formale nel linguaggio
al primo ordine di ZF).
Assioma di estensionalit`a - Due insiemi con gli stessi elementi sono uguali.
Assioma dellinsieme vuoto - Esiste un insieme privo di elementi. Per lassioma
di estensionalit`a tale insieme `e unico. Esso viene detto insieme vuoto, e viene
denotato con . In termini formali, se (x) `e un qualunque formula, () denota
la formula z(u(u z)&(z)).
Assioma della coppia. Presi comunque due insiemi x e y (non si esclude che
x = y), esiste un insieme z, detto coppia costituita da x e y i cui elementi
sono x e y (e nessun altro). Ancora una volta per lassioma di estensionalit`a si
vede che la coppia costituita da x e y `e unica. Essa viene denotata con x, y.
Pi` u in dettaglio, se (v) `e una formula qualunque, (x, y) denota la formula:
zu(u z (u = x u = y)&(z)).
La coppia x, x si denota con x (si chiama singoletto di x in quanto ha come
unico elemento x).
La coppia ordinata costituita da x e y, con x che precede y, `e per denizione
linsieme x, x, y. Tale coppia ordinata ha come elementi il singoletto di
x e la coppia costituita da x e y. La presenza del singoletto di x ci dice che x
viene per primo nellordine. La coppia ordinata costituita da x e y, con x che
precede y viene indicata con (x, y).
Assioma dellunione. Dato un insieme qualunque x, esiste un insieme y che `e
lunione degli elementi di x, cio`e tale che per ogni insieme z si abbia: z y sse
z sta in almeno un elemento di x. Tale y, unico per lassioma di estensionalit`a
`e indicato con
C =
u : z C(u z `e un insieme. Ora a C, onde
C a, e pertanto
C = u a : z Cu z `e un insieme. In
particolare se x e y sono insiemi, x y =
x, y `e un insieme.
Denizione 2.1 Una funzione da un insieme x a un insieme y `e un sottoinsieme
f del prodotto cartesiano x y tale che per ogni a x esiste uno ed un solo
b y tale che (x, y) f.
Dora in poi scriviamo y = f(x) invece di (x, y) f. Scriviamo inoltre f(x) =
g(y) invece di z((x, z) f (y, z) g.
Una funzione f da a a b si dice iniettiva se per ogni x, y a, se f(x) = f(y),
allora x = y. f si dice suriettiva se per ogni y b esiste un x a tale che
f(x) = y. f `e detta una biiezione se `e sia iniettiva che suriettiva.
Se f `e una funzione da a a b, a si chiama dominio di f, e si indica con Dom(f),
4
mentre linsieme f(x) : x a si chiama range di f e si indica con Range(f).
Se b a, linsieme f(x) : x b viene denotato con f[b].
Esercizio. Dimostra che se y ,= , allora esiste almeno una funzione da x a y.
Dimostra poi che se f `e una funzione da a a b e se g `e una funzione da b a c,
esiste una ed una sola funzione h da a a c (detta composizione di g con f) tale
che per ogni x a sia: h(x) = g(f(x)). Inne dimostra che se f `e una biiezione
da a a b, allora esiste ununica funzione g tale che la composizione di g con f sia
lidentit`a su a e la composizione di f con g sia lidentit`a su b. (N.B.: si richiede
anche di dimostrare che g `e un insieme).
Per postulare lesistenza di un insieme innito, si usa un metodo indiretto (come
vedremo in seguito, lessere innito non `e esprimibile al primo ordine, tuttavia
`e possibile introdurre degli assiomi che sono soddisfacibili solo in strutture in-
nite).
Denizione 2.2 Un insieme x si dice induttivo se x, e per ogni z, se z x,
allora z z x.
Dalla denizione segue subito che se x `e induttivo, allora posto 0 = , 1 =
0 0 = , . . . n +1 = n n, gli insiemi 0, 1, 2 . . . sono tutti elementi di x.
Si pu`o dimostrare che gli elementi 0, 1, 2, . . . sono a due a due distinti, per cui
un insieme induttivo `e realmente innito.
Assioma dellinnito. Esiste almeno un insieme induttivo.
Esercizio. Dimostra che lintersezione di tutti gli insiemi induttivi `e un insieme
induttivo (nota: si deve dimostrare sia che `e un insieme, sia che `e induttivo).
Denizione 2.3 Lintersezione di tutti gli insiemi induttivi si chiama insieme
dei numeri naturali, e si denota con .
Assioma di rimpiazzamento. Anche questo non `e un singolo assioma, ma uno
schema di assiomi. Sia (x, y) una formula di ZF. Listanza dellassioma di
rimpiazzamento corrispondente a dice che se per ogni x esiste uno ed un
solo y (che denoteremo con F
A sse T , A).
Lassioma di scelta ha anche conseguenza indesiderabili, ad esempio:
Non esiste una misura non identicamente nulla, denita su tutti i sot-
toinsiemi di [0, 1] tale che ([0, 1]) = 1, e che sia numerabilmente additiva
(cio`e se A
1
, . . . A
n
, . . . , sono sottoinsiemi di [0, 1] a due a due disgiunti,
allora (
i=1
A
i
) =
i=1
(A
i
)), e invariante per traslazioni, (cio`e se
A [0, 1], se a R, e se A
a
= x +a : x A `e un sottoinsieme di [0, 1],
allora (A
a
) = (A)).
Esiste una decomposizione della sfera di raggio 1 in un numero nito
di parti che possono essere ricomposte (attraverso movimenti rigidi ed
evitando sovrapposizioni) in modo da formare una sfera di raggio 2.
La teoria ZF pi` u assioma di scelta si indica con ZFC (C sta per choice, scelta).
Gli aspetti importanti della teoria ZFC sono molti, ed alcuni di essi sono molto
complessi. Per mancanza di tempo, di spazio, e, almeno in parte, di conoscenza,
mi limiter`o qui a due concetti particolarmente importanti in logica: gli ordinali
e i cardinali.
3 Gli ordinali
Gli ordinali possono essere visti in almeno due modi diversi: il primo modo
consiste nel pensarli come numeri che incontreremmo se potessimo contare
8
allinnito, passando al limite ogni volta che il processo va avanti allinnito.
In questo modo, incontreremmo innanzitutto i numeri naturali 0, 1, 2, 3, . . .. Il
processo di contare i numeri naturali `e innito, e passando al limite otterremmo
. Potremmo poi ricominciare la conta partendo da : , +1, +2, . . .. Pas-
sando ancora una volta al limite otterremmo +. Potremmo poi ripartire da
+: +, + + 1, + + 2, . . ., e cos` di seguito.
In eetti, Cantor si trov`o a dover utilizzare questo tipo di conteggio nel tenta-
tivo di dimostrare il Teorema di Cantor-Bendixon, che aerma che ogni insieme
chiuso della retta reale `e unione di un insieme chiuso privo di punti isolati (detto
insieme perfetto) e un insieme numerabile. Per dimostrare il risultato, Cantor
aveva bisogno di iterare loperazione di togliere i punti isolati dallinsieme. Un
numero nito di iterazioni non bastava, per cui si rendeva necessario poter pas-
sare pi` u volte al limite. Il numero di iterazioni necessarie poteva essere contato
solo usando ordinali inniti.
Un secondo modo per introdurre il concetto intuitivo di ordinale consiste nel
pensare gli ordinali come rappresentanti canonici di tipi di isomorsmo di buoni
ordini.
Denizione 3.1 Un buon ordine su un insieme X `e un ordine parziale (quindi
una relazione riessiva, transitiva, antisimmetrica) _ su X tale che ogni sottoin-
sieme non vuoto Y di X abbia minimo rispetto a _. Un insieme ben ordinato
`e una coppia ordinata (X, _), ove X `e un insieme non vuoto, e _ `e un buon
ordine su X.
Si vede subito che un buon ordine `e anche totale: dati x, y X, linsieme x, y,
essendo non vuoto, ha minimo, e quindi o x _ y (se minx, y = x), o y _ x (se
minx, y = y).
Esercizio. Dire quali delle seguenti relazioni sono buoni ordini, motivando le
risposte:
Lordine naturale su .
Lordine naturale su Z.
La relazione [ su denita da x [ y sse x `e un divisore di y.
La relazione _ su denita da (a, b) _ (c, d) sse o a < c, o a = c e
b d.
La relazione su denita da (x, y) (u, v) sse o maxx, y <
maxu, v, o maxx, y = maxu, v e x < u, o maxx, y = maxu, v,
x = u e y v.
La relazione
= denita sulle sequenze nite di numeri naturali come segue:
Data una sequenza nita di naturali a = (a
0
, . . . , a
n
), la estendo ad una
9
sequenza innita a ponendo a
i
= a
i
per i = 0 . . . , n, e a
i
= 1 per i > n.
Date due sequenze nite di naturali a e b, poniamo allora a
= b sse o a = b,
oppure, indicato con j il minimo naturale i tale che a
i
,= b
i
, `e a
j
< b
j
.
Denizione 3.2 Un segmento iniziale di un insieme bene ordinato (X, _) `e un
sottoinsieme proprio S non vuoto di X tale che se per ogni x S e per ogni
y X, se y _ x allora y S.
Un isomorsmo da un insieme ben ordinato (X, _) a un insieme ben ordinato
(Y,
=).
(ii) Esiste un (necessariamente unico) isomorsmo da (X, _) a un segmento
iniziale di (Y,
=).
(iii) Esiste un (necessariamente unico) isomorsmo da un segmento iniziale di
(X, _) a (Y,
=).
Dimostrazione. Per ogni x X esiste al pi` u un y Y tale che W(x) e W(y)
siano isomor. Se infatti W(x) fosse isomorfo a W(y) tramite lisomorsmo f e
a W(z) tramite lisomorsmo g, con y ,= z, allora supposto per esempio y z,
W(y) sarebbe un segmento iniziale di W(z), e f g
1
sarebbe un isomorsmo
da W(z) al suo segmento iniziale proprio W(y), contro il punto (c) dellesercizio
precedente. Sia S linsieme degli x X per cui esiste un y Y tale che W(x) sia
isomorfo a W(y), e deniamo per ogni x S, F(x) = unico y Y tale che W(x)
`e isomorfo a W(y). Chiaramente F `e una funzione da S a Y . Dimostraimo i
seguenti fatti:
10
F `e crescente: siano x, z S, con x z. Allora, esiste un isomorsmo
da W(z) a W(F(z)), e la restrizione di tale isomorsmo a W(x) `e un
isomorsmo da W(x) a un segmento iniziale W(u) di W(F(z)). Quindi
F(x) = u F(z), e F `e crescente.
O S = X oppure S `e un segmento iniziale di X. Infatti se x z S,
W(z) `e isomorfo a W(F(z)), e la restrizione di tale isomorsmo a W(x) `e
un isomorsmo da W(x) a un segmento iniziale W(u) di W(F(z)). Quindi
F(x) = u, e x S.
O Range(F) = Y , o Range(F) `e un segmento iniziale di Y . Ragionamento
simile al precedente.
F `e un isomorsmo da S a Range(F). Infatti F `e crescente, quindi iniet-
tiva, e suriettiva per denizione di Range(F).
A questo punto basta dimostrare che o S = X e range(F) = Y , o Range(F) = Y
e S `e un segmento iniziale di X, o inne S = X e Range(F) `e un segmento
iniziale di Y .
A tal ne basta escludere che S e Range(F) siano entrambi segmenti iniziali, di
X e, rispettivamente, di Y . Ma se cons` fosse, esisterebbero x, y con S = W(x),
Range(F) = W(y), e F sarebbe un isomorsmo da W(x) a W(y). Questo com-
porterebbe F(x) = y, x Dom(F), e Dom(F) ,= S, assurdo.
Lasciamo come esercizio la verica che non si possono vericare contemporanea-
mente due fra i casi (i), (ii) e (iii).
Denizione 3.4 Un insieme x si dice transitivo se per ogni y, z, se y z e
z x, allora y x. (Equivalentemente possiamo dire che x `e transitivo sse ogni
suo elemento `e suo sottoinsieme).
Un ordinale `e un insieme transitivo ben ordinato dalla relazione
= denita da
x
= y sse x y o x = y.
Nel seguito, On denoter`a la classe degli ordinali. (Nota che On non `e un in-
sieme). Scriveremo quindi On per esprimere il fatto che `e un ordinale.
Esercizio. Dimostra i seguenti fatti: (a) Se On, allora On (in
altre parole On `e una classe transitiva). (b) On. (c) Se On e On,
allora On. Pi` u in generale, se C `e una classe non vuota di ordinali,
allora
C `e un ordinale.
Lemma 3.5 (i) Se On e On, allora sse .
(ii) Se , On, allora si verica una ed una sola delle seguenti: o , o
o = .
(iii) La classe On `e ben ordinata da
=.
(iv) On `e una classe propria (i.e., On non `e un insieme).
11
(v) Per ogni On, On, ed `e il pi` u piccolo (rispetto a
=) ordinale
maggiore di .
(vi) Per ogni insieme X di ordinali, X `e un ordinale, ed `e il pi` u piccolo
(rispetto a
=) maggiorante di X.
Dimostrazione. (i). Se allora , essendo transitivo. Linclusione
`e propria, poich`e , ma / , per lassioma di fondazione (se ,
non avrebbe alcun elemento -minimale). [Avevamo detto che lassioma di
regolarit`a non serve praticamente a nulla. Infatti anche in questo caso, il suo
uso pu`o essere evitato. Come?]
Supponiamo ora . Sia il minimo (rispetto a
=) in . Dico che = ,
da cui segue , cio`e lasserto.
Se , allora, per la transitivit`a di , , e per la minimalit`a di , / ,
i.e., . Quindi .
Viceversa, se , allora , essendo . Poich`e `e ben ordinato da
=,
vi sono tre possibilit`a: o , o = , o .
Se fosse , avremmo , e quindi per la transitivit`a di , ,
assurdo. Similmente se fosse = avremmo = , assurdo. Pertanto
.
Riassumendo, abbiamo dimostrato che , e che se , allora .
Quindi = , come si voleva.
(ii) Supponiamo ,= e / , e dimostriamo . Per il punto (i), , ,
e quindi . Per lesercizio precedente, `e un ordinale, ed essendo
, dal punto (i) si deduce . Dico che = , da cui si
deduce = , come si voleva. Se fosse , per il punto (i)
avremmo . Ma , onde , contro lassioma di
fondazione. (Ancora una volta, il lettore `e invitato a dimostrare che si pu`o fare
a meno di tale assioma).
(iii) La relazione
= `e ovviamente riessiva. Se
=
= On, allora essendo
un insieme transitivo si ottiene subito
= . Pertanto
= `e transitiva. Se
=
= , allora non posso avere altrimenti
= , e usando la
transitivit`a di , , contro lassioma di fondazione. Similmente non pu`o
essere , e quindi = per il punto (ii). Quindi
= `e antisimmetrica. Per
il punto (ii),
= `e lineare, e quindi basta dimostrare che ogni classe non vuota
X di ordinali ha un minimo rispetto a
=. Sia X arbitrario. Se non `e il
minimo di X, X ,= , e quindi essendo On, tale insieme ha minimo
0
rispetto a
=. Se X, o , e allora X, e quindi
0
= , o / ,
e allora
0
= . In ogni caso,
0
= . Quindi
0
= min X.
(iv) Se On fosse un insieme, essendo transitivo e ben ordinato da
=, sarebbe un
ordinale, e quindi On On, contro lassioma di fondazione.
(v) Lasciamo per esercizio la dimostrazione del fatto che `e un ordinale.
12
Ovviamente , e se , allora , onde per il punto (i),
= .
(vi) Lasciamo al lettore la verica del fatto che X `e un ordinale. Ovviamente
X `e lestremo superiore di X rispetto a , e per il punto (i) `e lestremo
superiore di X anche rispetto a
=.
Notazione. Nel seguito scriviamo +1 invece di , e, se X `e un insieme
di ordinali, scriviamo sup X invece di
da (,
=)
ad un segmento iniziale di (X, _). Ora se < , la restrizione di
a `e
un isomorsmo da (,
=) ad un segmento iniziale di (X, _), che per lunicit`a
coincide con
. In altre parole:
() Se < < , allora
() =
().
Poniamo allora per ogni On, () =
+1
(). Si vede facilmente che `e
crescente da (On,
=) a (X, _): se < , allora per la () si ha:
() =
+1
() =
+1
()
+1
() = (),
dove la penultima uguaglianza segue dal fatto che
+1
`e crescente.
Ne segue che `e iniettiva. Sia Y = Range(), e sia linversa di . `e allora
una funzione iniettiva da Y ad On. Essendo Y X, Y `e un insieme, e per
lassioma di rimpiazzamento On sarebbe un insieme, assurdo.
Denizione 3.7 Un ordinale si dice un successore se esiste un ordinale tale
che = + 1. Un ordinale che non sia n`e 0 (ossia ), n`e un successore si dice
un ordinale limite.
Lemma 3.8 , il pi` u piccolo insieme induttivo, `e un ordinale limite, anzi `e il
pi` u piccolo fra gli ordinali limite.
Dimostrazione. Cominciamo ad oservare che On `e un insieme induttivo
(la facile dimostrazione `e lasciata per esercizio). Quindi essendo il pi` u piccolo
insieme induttivo, = On, e quindi On. Dico che `e transitivo.
13
Intanto, se , allora On, essendo On una classe transitiva. Sia
per assurdo il minimo ordinale per cui esiste con , e / .
,= 0, poich`e 0 . Se fosse un successore, diciamo = + 1, allora per la
minimalit`a di , , e ancora , essendo induttivo, assurdo. Se fosse
un ordinale limite, allora `e facile vedere che sarebbe un insieme induttivo non
contenenete (essendo ), contro il fatto che `e il pi` u piccolo insieme
induttivo. In ogni caso abbiamo un assurdo, e `e transitivo.
Pertanto `e transitivo, ed essendo un insieme di ordinali, `e bene ordinato da
=. Perci`o `e un ordinale.
,= 0, poich`e 0 . Inoltre, non `e un successore, poich`e se fosse = + 1,
essendo induttivo, da seguirebbe = + 1 , contro lassioma di
regolarit`a. Quindi `e un ordinale limite.
Per dimostrare che `e il pi` u piccolo ordinale limite, basta osservare che ogni
elemento di o `e 0 o `e un successore. Se cos` non fosse, avrebbe come
elemento un ordinale limite , che sarebbe un insieme induttivo non contenente
, assurdo. Pertanto `e il pi` u piccolo ordinale limite.
Il ben noto principio di induzione sui naturali si estende agli ordinali nel modo
seguente:
Teorema 3.9 (Induzione transnita) Sia (x) una formula. Supponiamo che
valga almeno una delle seguenti:
(a) Per ogni ordinale , se per ogni < vale (), allora (), oppure:
(b) Vale (0), e per ogni ordinale , se vale () allora vale (+1); inoltre
per ogni ordinale limite se per ogni < vale (), allora ().
Allora, per ogni ordinale , vale ().
Dimostrazione. In entrambi i casi si ragiona per assurdo. Se non vale la tesi,
esiste un minimo ordinale su cui non vale. Lasciamo per esercizio al lettore il
compito di trovare un assurdo.
Il metodo induttivo viene usato in matematica non solo per dimostrare teoremi,
ma anche per denire funzioni. Ad esempio, la somma sui naturali viene denita
induttivamente attraverso il successore, e il prodotto sui naturali viene denito
induttivamente a partire dalla somma. Si pu`o generalizzare il principio alla
classe di tutti gli ordinali.
Sia (x, y) una formula, sia C una classe, e supponiamo che per ogni x C esista
uno ed un solo y tale che (x, y). In questo modo abbiamo una legge funzionale
F che ad ogni x C associa lunico y tale che (x, y). Non possiamo parlare
di funzione, poich`e se C `e una classe propria, anche F `e una classe propria. Nel
seguito, useremo il termine classe funzionale. Precisamente, quando diciamo
che F `e una classe funzionale di dominio C, intenderemo dire che esiste una
14
formula (x, y) tale che: (a) per ogni x C esiste uno ed un solo y tale che
(x, y); (b) se x / C, F(x) non `e denita, e se x C, allora F(x) `e lunico y
tale che (x, y).
Teorema 3.10 (Teorema di recursione transnita). Sia G una classe fun-
zionale denita sulluniverso degli insiemi. Allora, esiste una ed una sola fun-
zione F di dominio On tale che per ogni ordinale , sia:
() F() = G((, F()) : < .
Dimostrazione. (A) Dimostriamo che se `e un ordinale oppure se = On,
allora esiste al pi` u una funzione F
e H
() = H
(), da cui:
F
(
0
) = G((, F
()) : <
0
) = G((, H
()) : <
0
) = H
(
0
),
assurdo.
(B) Dimostriamo ora che per ogni On esiste una F
non esiste.
Osserviamo che per il punto (A), si ha
se < < , allora F
() = F
().
Poniamo allora:
F
() =
_
F
() se <
G((, F
()) : < se =
Non `e dicile vericare (esercizio) che F
().
Il fatto che F soddisfa i requisiti del Teorema si dimostra esattamente come il
punto precedente.
In molti casi signicativi, la denizione per recursione distingue il caso = 0
dal caso successore e dal caso limite. Ci`o corrisponde ad una denizione di
G per casi: il caso = 0 corrisponde al caso in cui linput per G `e . Il caso
successore corrisponde al caso in cui linput per G `e una funzione denita su
un ordinale successore, ed il caso limite corrisponde al caso in cui linput per
G `e una funzione denita su un ordinale limite.
Esempi: per ogni On, denisco la funzione (della sola ) + per induzione
come segue: + 0 = ; + ( + 1) = ( +) + 1; + = sup + : <
se `e un ordinale limite.
Per ogni On, denisco la funzione (della sola ) ponendo: 0 = 0;
( + 1) = +; = sup : < se `e un ordinale limite.
15
Inne, per ogni On, denisco la funzione (della sola )
ponendo:
0
= 1;
+1
=
= sup
, (
).
Esercizio. Sia (X, ) un insieme parzialmente ordinato completo (cio`e se
,= Y X, allora Y ha un estremo superiore), e sia F una funzione da
X a X tale che per ogni x X sia F(x) x, e per ogni , = Y X,
F(sup(Y )) = supF(y) : y Y . Dimostra per ogni a X esiste un min-
imo b a tale che b sia punto sso di F (cio`e F(b) = b). (Consiglio: sia
b = supa
n
: n , dove a
n
`e denito per recursione da a
0
= a, a
n+1
= F(a
n
)).
Esercizio. Dedurre dallesercizio precedente che per ogni , On, le funzioni
da On a On +x, x e
x
hanno un minimo punto sso . Calcolare allora
i minimi punti ssi 1 di +x, di x e di
x
.
4 Equivalenti dellAssioma di Scelta
La teoria degli ordinali `e utile anche per determinare degli equivalenti dellAssioma
di Scelta che vengono comunemente usati in matematica.
Denizione 4.1 Sia (X, ) un insieme parzialmente ordinato (nel seguito poset).
Una catena di (X, ) `e un sottoinsieme Y X totalmente ordinato da . Un
elemento massimale `e un a X tale che per ogni b X, se a b, allora
a = b. Un maggiorante di un insieme Y X `e uno z X tale che per ogni
y Y , y z. Un poset si dice induttivo se ogni sua catena non vuota ha un
maggiorante.
Il Lemma di Zorn (ZL) aerma che ogni poset (non vuoto e) induttivo ha almeno
un elemento massimale.
Il Principio del Buon Ordinamento o Principio di Zermelo (WO) aerma che
ogni insieme pu`o essere ben ordinato (cio`e per ogni insieme X esiste un buon
ordnamento su X).
Teorema 4.2 Le seguenti sono equivalenti:
LAssioma di Scelta (AC).
Il principio del buon ordinamento.
IL Lemma di Zorn.
Dimostrazione. AC WO. Sia X un insieme, che senza perdita di generalit`a
possiamo supporre non vuoto. Per AC, esiste una funzione di scelta f da T(X)
16
a X tale che per ogni , = Y X, f(Y ) Y . Deniamo una funzione F da
On a X per recursione come segue:
F(0) = f(X). Notiamo che F(0) X
Sia On, > 0. Se X = F() : < , allora poniamo F() = F(0).
Altrimenti, poniamo F() = f(X F() : < ), e notiamo che in
questo caso F() X, e F() ,= F() per ogni < .
Se esiste un tale che X = F() : < , detto
0
il minimo con questa
proipriet`a, la restrizione di F ad
0
`e una biiezione da
0
a X. F e il buon
ordine
= su
0
inducono allora un buon ordine su X: dato x X, sia o(x) =
min <
0
: F() = x. Basta allora porre: x _ y sse o(x) o(y), ossia sse
o(x)
= o(y).
Daltra parte, un tale esiste, altrimenti F sarebbe una funzione iniettiva da
On ad X, la sua immagine Y sarebbe un insieme, e On = F
1
[Y ] sarebbe un
insieme per lassioma di rimpiazzamento, assurdo.
WO ZL. Sia (X, ) un poset induttivo. Bene ordino X. Poich`e ogni insieme
bene ordinato `e isomorfo ad un ordinale, esiste una biiezione f fra X ed un
ordinale , per cui X = f() : < . Dato x X, indico con o(x) lunico
ordinale < tale che x = f(). Supponiamo per assurdo che non esista
alcun elemento massimale in (X, ). Deniamo una funzione G da On a X per
recursione come segue:
G(0) = f(0). Supponiamo di aver dento G() per ogni < in modo
che se <
X, se , esiste X
tale che . Ma essendo un cardinale, `e _
X = . Quindi , ,
e `e un cardinale.
Denizione 5.7 La classe dei cardinali viene denotata con Card. Deniamo
per recursione la funzione da On a Card come segue (scriviamo
invece di
()):
20
0
= .
+1
= min Card :
= sup
`e un cardinale).
Esercizio. Dimostra che per ogni cardinale innito esiste un (necessariamente
unico) ordinale tale che
.
6 Operazioni su cardinali
Anche in questo paragrafo assumeremo lAssioma di Scelta.
Denizione 6.1 Siano , cardinali. Deniamo:
+ = Card((0 1) (quindi + `e la cardinalit`a dellunione
disgiunta di e ).
= Card( ).
= Card(f : f funzione da ad ).
Esercizio. Si dimostri che linsieme R dei reali `e biiettivo a 2
0
.
Esercizio. Se , 2, allora + . (Consiglio: se e sono en-
trambi niti, lasserto `e chiaro. Suuponiamo ad esempio innito. Allora, posto
f(x, 0) = (x+1, 0), e f(x, 1) = (0, x), si ha che f `e iniettiva da (01)
a .
Esercizio. Si dimostri che la somma e il prodotto di cardinali sono operazioni
commutative ed associative, e che vale la propriet`a distributiva. (Per lultimo
enunciato, si consideri la funzione f da (( 0) ( 1)) denita da
f((x, (y, 0)) = ((x, y), 0), e f((x, (y, 1)) = ((x, y), 1).
Esercizio. Dimostra che se , e sono cardinali, allora ( )
= (
) (
),
che
+
=
, e che
.
Esercizio. Dimostra che le funzioni +, e
0
0
2
0
>
0
, ma non
ci consente di dire se 2
0
`e
1
, oppure
2
, o
712
. Cantor formul`o la seguente
congettura:
ipotesi del continuo di Cantor. 2
0
=
1
.
Si noti che se lipotesi fosse vera, allora ogni sottoinsieme innito di R sarebbe
o numerabile o biiettivo a R. Lipotesi `e stata generalizzata come segue:
ipotesi generalizzata del continuo. Per ogni ordinale , 2
=
+1
.
Godel dimostr`o che se ZFC `e coerente, allora lipotesi generalizzata del con-
tinuo non `e in contraddizione con gli assiomi di ZFC. Successivamente, Cohen
dimostr`o che lipotesi del continuo non `e neppure dimostrabile dagli assiomi di
ZFC. Quindi `e possibile assumerla o assumere la sua negazione.
Laritmetica della somma e del prodotto di cardinali `e invece molto pi` u semplice,
come vedremo fra poco.
7 La biiezione canonica da On
2
a On
Lobiettivo di questo paragrafo `e quello di dimostrare che se `e un cardinale in-
nito, allora
2
= . Come vedremo, questo risultato determina univocamente
la somma ed il prodotto di cardinali inniti. Per stabilire quuesto risultato,
introdurremo una biiezione canonica da On
2
a On.
Denizione 7.1 Siano , , , ordinali. Deniamo (, ) _ (, ) sse si veri-
ca almeno una delle seguenti condizioni:
(a) max, < max, .
(b) max, = max, e < .
(c) max, = max, , = e .
Lemma 7.2 La relazione _ `e un buon ordine su On
2
tale che per ogni (, )
On
2
, la classe W(, ) = (, ) : (, ) (, ) `e un insieme.
Dimostrazione. Lasciamo al lettore la verfca del fatto che _ `e riessiva,
transitiva, antisimmetrica e totale. Sia ,= X On
2
. Sia Y = min, :
(, ) X. Sia
0
= min(Y ), e sia Z = (, ) X : min, =
0
.
Chiaramente, ogni elemento di X ha un minorante in Z, e quindi per dimostrare
che X ha minimo, basta dimostrare che Z ha minimo, in quanto min(Z) =
min(X).
Sia U = On : On((, ) Z), e sia
0
= min(U). Sia poi
W = (, ) Z : =
0
. Ovviamente, ogni elemento di Z `e minorato da un
elemento di W, per cui baster`a dimostrare che W ha minimo.
22
Sia ora V = On : (
0
, ) W, e sia
0
= min(V ). Allora, (
0
,
0
) =
min(W) = min(Z) = min(X).
Dimostriamo ora il secondo asserto del Lemma, cio`e che per ogni (, ) On
2
,
la classe W(, ) `e un insieme. Sia = max, . Se max, > , allora
(, ) ,_ (, ). Quindi se (, ) W(, ), allora max, . Ma questo ci
dice che W(, ) (+1)
2
, e quindi per lassioma di isolamento, W(, ) `e un
insieme.
Per il Lemma precedente, per ogni (, ) On
2
esiste un unico ordinale tale
che (,
=) sia isomorfo a (W(, ), _). Poniamo allora:
(, ) = unico On : (,
=) isomorfo a (W(, ), _).
Nel seguito sottointenderemo la relazione dordine, e diremo: W(, ) `e iso-
morfo a invece di: (W(, ), _) `e isomorfo a (,
=).
Lemma 7.3 `e una biiezione crescemnte (quindi un isomorsmo) da On
2
a
On
Dimostrazione.
`e crescente: Supponiamo (, ) (, ). Sia (, ) = , (, ) = .
Allora W(, ) `e in segmento iniziale di W(, ), e lunico isomorsmo da
W(, ) a manda il segmento iniziale W(, ) di W(, ) in un segmento
iniziale di . Poich`e limmagine di W(, ) in tale isomorsmo `e , si ha
che `e un segmento iniziale di , ossia . Questo dimostra che `e
crescente, e che quindi `e iniettiva.
`e suriettiva. Dimostriamo cio`e che Range() = On. Ragionaimo per
assurdo. Sia
0
il minimo ordinale non in Range(). Sia X = (, ) :
(, ) <
0
. Si vede subito che X `e un segmento iniziale di On
2
: se
(, ) _ (, ) X, allora (, ) (, )
0
, e (, ) X. Per la
minimalit`a di
0
, per ogni
0
esiste (, ) On
2
tale che (, ) =
. Quindi `e crescente e suriettiva (quindi un isomorsmo) da X a
0
.
Ovviamente X non pu`o essere tutto On
2
, essendo On
2
una classe propria,
quindi esiste un minimo (
0
,
0
) On
2
X. Essendo X un segmento
iniziale, ne segue che X = W(
0
,
0
), e quindi W(
0
,
0
) `e isomorfo a
0
.
Ma allora per denizione di , (
0
,
0
) =
0
, assurdo.
Teorema 7.4 Per ogni cardinale innito
, mappa
su
, e quindi
.
23
Dimostrazione. Induzione su . Se = 0, essendo W(, ) (max, +
1)
2
, se ,
0
, allora W(, ) `e nito, e quindi (, )
0
. Pertanto,
[
0
0
]
0
. Essendo una biiezione crescente da On
2
a On, [
0
0
] =
0
.
Sia ora On, > 0. Supponiamo lasserto vero per ogni < , e dimostri-
amolo per . Ancora una volta, `e evidente che per motivi di cardinalit`a e per
il fatto che `e un isomorsmo, `e [
in
, e lasserto `e dimostrato.
Corollario 7.5 Se e sono cardinali 1 ed almeno uno di essi `e innito,
allora
+ = = max, .
Dimostrazione. Dimostriamo prima che + , trovando una funzione
iniettiva da 0 1 a . Senza perdita di generalit`a supponiamo
innito. La funzione richiesta `e allora denita da f(x, 0) = (x + 1, 0), e
f(x, 1) = (0, x). A questo punto, lasserto `e immediato:
max, + (max, )
2
= max, .
Il caso in cui almeno uno fra e (ad es., ) sia zero `e semplice: + 0 = ,
0 = 0. Inne se e siano entrambi niti, la loro somma ed il loro prodotto
non sono altro che lusuale somma e lusuale prodotto di naturali. In conclusione,
la somma ed il prodotto di cardinali sono facilmente calcolabili, e anzi il caso
innito `e ancora pi` u semplice del caso nito.
Denizione 7.6 Sia (x
i
: i I) una famiglia di insiemi. Con
iI
x
i
intendi-
amo
iI
(x
i
i).
Lemma 7.7 Assumiamo lAssioma di Scelta. Allora:
(a) Card(
iI
x
i
) = Card(
iI
Card(x
i
)).
(b) Card(
iI
x
i
) Card(
iI
x
i
).
(c) Card(
iI
x
i
) Card((
iI
x
i
) I).
Dimostrazione. (a). Per ogni i I scelgo una biiezione f
i
da x
i
a Card(x
i
).
Allora, la funzione F denita da F(x, i) = (f
i
(x), i) `e una biiezione da
iI
x
i
a
iI
Card(x
i
).
(b). Fisso un buon ordinamento _ di I, e denisco per ogni x
iI
x
i
,
24
m(x) = mini I : x x
i
(ove min `e inteso rispetto a _). Pongo poi, per ogni
x
iI
x
i
, F(x) = (x, m(x)). Si vede subito che F `e una funzione iniettiva da
iI
x
i
a
iI
x
i
.
(c) Ovvio, essendo
iI
x
i
(
iI
x
i
) I.
Corollario 7.8 Sia X un insieme innito, e sia X
) = Card(X).
Dimostrazione. X
n
X
n
, onde per il Lemma precedente,
Card(X
) Card(
n
Card(X
n
)) = Card(
n
Card(X))
Card(Card(X) ) = Card(X).
8 Sintassi e semantica
Uno degli aspetti fondamentali della logica matematica `e costituito dai rap-
porti fra dimostrabilit`a e verit`a. Una parte della Logica, La Teoria della Di-
mostrazione, si occupa dello studio degli schemi di ragionamento corretti, mentre
unaltra parte della logica, la Teoria dei Modelli, ma pi` u in generale la semantica,
si occupa dellinterpretazione dei concetti logici e del concetto di verit`a secondo
una data interpretazione.
E importante che i due concetti vadano daccordo fra
loro, cio`e che le regole di ragionamento corretto e le interpretazioni ammissibili
soddisno la seguente condizione:
() Per ogni insieme di formule e per ogni formula A, le regole di ragiona-
mento devono consentire di dedurre A da sse ogni interpretazione ammissibile
che rende vera ogni formula in rende vera A.
Uno dei problemi che si pone di solito un docente di Logica `e quello di decidere
chi deve venire per primo, la sintassi, e quindi il concetto di dimostrazione,
oppure la semantica, e quindi il concetto di interpretazione ed il concetto di
verit`a Scegliere la dimostrabilit`a come punto di partenza `e indubbiamente pi` u
stimolante, in quanto cos` facendo si privilegia il ragionamento sulla semantica,
o se si vuole, e se ci si limita alla logica matematica, si privilegia la logica rispetto
alla matematica. Questa scelta `e per`o anche la pi` u impegnativa, in quanto, se
presa sul serio, comporta il raggiungimento dei seguenti obiettivi:
Analisi degli schemi di ragionamento matematico adottati nelle dimostrazioni
matematiche.
Distinzione schemi di ragionamento comunemente accettati e schemi di
ragionamento controversi, e presa di posizione su questi ultimi.
Individuazione di eventuali altri schemi di ragionamento corretti ed in-
dipendenti da quelli nora usati.
25
Solo dopo aver fatto questo, si pu`o cercare una semantica adeguata a rappre-
sentare gli oggetti del ragionamento, e possibilmente dimostrare un teorema di
completezza.
Lapproccio semantico `e indubbiamente pi` u facile, almeno nel caso della logica
classica. Abbiamo infatti un modo naturale di interpretare le formule attraverso
le strutture matematiche e di introdurre il concetto di verit`a. Fatto questo, gli
schemi di ragionamento corretto saranno tutti e soli quelli validi, cio`e quelli per
cui ogni interpretazione che rende vere tutte le premesse di una regola, rende
vera anche la conclusione della stessa.
9 La semantica per la logica classica del primo
ordine
Ul linguaggio del primo ordine `e costituito da:
Un insieme V , di regola numerabile, di variabili individuali.
Un insieme C di simboli di costante.
Un insieme F di simboli di funzione, ed una funzione da F a 0,
che ad ogni simbolo di funzione associa la sua ariet`a.
Un insieme non vuoto P di simboli di predicato, ed una funzione da P a
0, che ad ogni simbolo di predicato associa la sua ariet`a. Si suppone
che gli insiemi V , C, F e P siano a due a due disgiunti.
I connettivi , &, , ed i quanticatori e .
I simboli ausiliari ( , ).
Linsieme dei termini, linsieme delle formule, etc. si deniscono induttiva-
mente nel modo ovvio. Similmente per induzione si deniscono i concetti di
sottoformula, di occorrenza libera e di occorrenza vincolata di una variabile, di
sostituzione in una formula di ogni occorrenza libera di una variabile con un
termine, etc.
Un linguaggio proposizionale `e costituito da un insieme numerabile V P di vari-
abili proposizionali, dai connettivi &, , e dai simboli ausiliari ( e ).
Nella logica proposizionale non ci sono termini, e linsieme delle formule `e
denito induttivamente nel modo ovvio.
Denizione 9.1 Una struttura per un linguaggio del primo ordine / (o anche
uninterpretazione di /) `e una coppia / = (A,
A
), ove A `e un insieme non vuoto
(detto dominio dellinterpretazione), e
A
`e una funzione che associa:
Ad ogni simbolo di costante c un elemento c
A
A.
26
Ad ogni simbolo f di funzione, una funzione f
A
da A
n
ad A, ove n = (f)
`e lariet`a di f.
Ad ogni simbolo p di predicato un sottoinsieme p
A
di A
m
, ove m = (p)
`e lariet`a di p.
Se / `e una struttura per /, /
A
denota il linguaggio ottenuto da / aggiungendo
un simbolo di costante a per ogni a / (si assume che ad elementi diversi siano
assegnati simboli di costante diversi, e che i simboli a non siano in /).
Nel seguito, se non vi `e pericolo di confusione, scriveremo a invece di a.
Nella logica classica, il simbolo pu`o essere denito tramite e tramite
la relazione A B = A B. Dal punto di vista dello studio delle leggi
del pensiero, questa denizione non regge, perch`e nel concetto di implicazione
`e implicito il concetto di deduzione (quando aermo A B implicitamente
sostengo che `e possibile dedurre B dallipotesi A), mentre la formula A B
fa riferimento solo al concetto di verit`a (quando aermo AB dico che o A `e
falsa o B `e vera, e non faccio alcun riferimento a deduzioni). Tuttavia dal punto
di vista della semantica del primo ordine, la denizione `e perfettamente lecita.
Denizione 9.2 Sia / una struttura per un linguaggio /. Deniamo, per ogni
termine ground (privo di variabili) t di /
A
linterpretazione t
A
di t in / nel
seguente modo induttivo:
Se t = c con c simbolo di costante di /, allora t
A
= c
A
.
Se t = a, ove a `e (il simbolo di costante per) un elemento di /, allora
t
A
= a.
Se t = f(t
1
, . . . , t
n
), con f simbolo di funzione n-aria di /, allora t
A
=
f
A
(t
A
1
, . . . , t
A
n
).
Deniamo ora, per ogni formula chiusa A di /
A
il concetto A `e vera in /
(denotato con / [= A) per induzione sul di A come segue:
(i) Se A `e atomica, diciamo A = P(t
1
, . . . , t
n
), con P simbolo di predicato n-
ario, e t
1
, . . . , t
n
termini ground di /
A
, allora / [= A sse P
A
(t
A
1
, . . . , t
A
n
),
ossia sse (t
A
1
, . . . , t
A
n
) P
A
.
(ii) Se A = B C, allora / [= A sse o / [= B o / [= C.
(iii) Se A = B&C, allora / [= A sse / [= B e / [= C.
(iv) Se A = B, allora / [= A sse / ,[= B.
(v) Se A = xB, allora / [= A sse per ogni a /, / [= B(x/a), dove B(x/a)
denota il risultato della sostituzione in B di ogni occorrenza libera di x
con a.
27
(vi) Se A = xB, allora / [= A sse esiste almeno un a / tale che / [=
B(x/a).
Un linguaggio con identit`a `e un linguaggio avente un simbolo speciale di pred-
icato binario . Una struttura / `e detta struttura con identit`a se / `e una
struttura per un linguaggio / con identit`a, e se linterpretazione
A
di in /
`e la relazione di uguaglianza in /.
Denizione 9.3 Uninterpretazione o asegnazione o valutazione del liguaggio
proposizionale `e una funzione V dallinsieme V P delle variabili proposizionali a
0, 1.
Deniamo induttivamente, per ogni formula proposizionale A, il concetto A `e
vera nellinterpretazione V (denotato con V [= A) come segue:
Se A `e una variabile proposizionale, allora V [= A sse V (A) = 1.
(ii) Se A = B C, allora V [= A sse o V [= B o V [= C.
(iii) Se A = B&C, allora V [= A sse V [= B e V [= C.
(iv) Se A = B, allora V [= A sse V ,[= B.
Denizione 9.4 Sia / una struttura per /. Una assegnazione in / `e una
funzione dalinsieme delle variabili individuali di / ad /. Sia A una formula
di /, e sia una assegnazione in /. Con A
denotiamo la formula di /
A
ottenuta sostituendo in A ogni occorrenza libera di una qualsiasi variabile v con
(v). (Si noti che se A `e chiusa, allora A
= A).
Se `e un qualunque insieme di formule di /, se / `e una struttura per / e se
`e unassegnazione in /, con
denotiamo linsieme A
: A .
Denizione 9.5 Sia un insieme di formule di un linguaggio al primo ordine
/ (rispettivamente: di un linguaggio del primo ordine / con identit`a), e sia
A una formula chiusa di /. Diciamo che `e soddisfacibile (rispettivamente:
soddisfacibile nella logica dei predicati con identitit`a) se esistono una struttura
(rispettivamente: una struttura con identit`a) / per / ed unassegnazione in
/ tale che / [=
.
Diciamo che A `e conseguenza semantica di (rispettivamente: conseguenza
semantica di nella logica con identit` a), e scriviamo [= A (rispettivamente:
[=
=
A) se per ogni struttura / per / (rispettivamente: per ogni struttura con
identit`a / per /) e per ogni asegnazione in /, se / [=
, allora / [= A
.
Diciamo che A `e logicamente valida (e scriviamo [= A) sse [= A.
Se `e un insieme di formule proposizionali, ed A `e una formula proposizionale,
diciamo che `e soddisfacibile se esiste uninterpretazione V tale che V [= ,
ossia tale che per ogni B , V [= B. Diciamo che A `e conseguenza semantica
di (e scriviamo [= A) se per ogni interpretazione V , se V [= , allora V [= A.
Diciamo che A`e una tautologia proposizionale se per ogni valutazione V , V [= A.
28
Anche nel caso proposizionale, per esprimere il fatto che A `e una tautologia,
scriviamo [= A invece di [= A.
Denizione 9.6 Siano A, B formule di un linguaggio al primo ordine / (rispet-
tivamente: del calcolo proposizionale). Diciamo che A `e semanticamente equiv-
alente a B (e scriviamo A B) sse per ogni struttura / per / e per ogni
assegnazione in /, si ha: / [= A
sse / [= B
della forma
A
= Q
1
x
1
, . . . , Q
n
x
n
B, dove x
1
, . . . , x
n
sono variabili, dove per i = 1, . . . , n,
Q
i
`e o o , e dove B `e senza quanticatori, tale che A A
.
Esercizio. Sia un insieme di formule di un linguaggio al primo ordine /,
e siano c
1
, . . . , c
n
, . . . costanti distinte non in /. Per ogni formula A di , sia
A
C
la formula chiusa ottenuta rimpiazzando per ogni i, ogni ocorrenza libera
della variabile x
i
in A (se ve ne sono) con c
i
. Sia
C
= A
C
: A .
Dimostra che `e soddisfacibile sse
C
`e soddisfacibile. (Suggerimento: :
date / e tali che / [=
[=
C
.
Viceversa, data /
tale che /
[=
C
, considera la struttura / ottenuta da
/
i
. Si ottiene: / [=
).
29
Esercizio. Sia un insieme di formule di un linguaggio /, e sia A una formula
di /. Dimostra che [= A sse A `e insoddisfacibile.
Teorema 9.8 (Teorema di Compattezza). Sia un insieme di formule di un
linguaggio al primo ordine /. Allora, `e soddisfacibile sse ogni sottoinsieme
nito di `e soddisfacibile.
Dimostrazione. Per un esercizio precedente, salvo sostituire le variabili libere
con nuove costanti, possiamo supporre senza perdita di generalit`a che le formule
di siano tutte chiuse. Partiamo da due denizioni.
Denizione 9.9 Un insieme di formule si dice nitamente soddisfacibile (ab-
breviato: f.s.) se ogni suo sottoinsieme nito `e soddisfacibile.
Un insieme di Henkin `e un insieme di formule chiuse tale che:
(i) `e nitamente soddisfacibile.
(ii) Per ogni formula chiusa del linguaggio di , o o .
(iii) Per ogni formula chiusa del tipo = x, esiste un termine ground
t tale che (x/t) .
Lasserto segue allora immediatamente dal seguente lemma:
Lemma 9.10 (A) Per ogni insieme nitamente soddisfacibile di formule
chiuse, esiste un insieme di Henkin tale che .
(B) Per ogni insieme di Henkin esiste una struttura / per il linguaggio di
tale che per ogni formula chiusa di tale linguaggio, sia: / [= sse
.
Dimostrazione. (A). Sia la cardinalit`a del linguaggio di . Aggiungo a tale
linguaggio un insieme c
il linguaggio cos`
ottenuto. Ovviamente, Card(/
(insieme di
cardinalit`a ), e quindi ha cardinalit`a
n
n
= . Sia allora (
: < ) una
enumerazione di tale insieme, indiciata con gli ordinali minori di . Deniamo
una successione (
0
= .
Sia < , e sia il minimo ordinale < tale c
n`e
in
(un tale ordinale esiste poich`e ad ogni passo aggiungo al pi` u un numero
nito di nuovi simboli, per cui se < in
+1
=
_
se
f.s.
e se
non e
del tipo x
(x/c
) se
f.s.
e se
= x
altrimenti
<
se `e un ordinale limite.
Dimostriamo per induzione su che
`e f.s. e se
`e f.s. e
, (x/c
),
dove c
n`e in
(x/c
, (x/c
`e f.s. Se invece
tale che
`e insoddisfacibile. Ma allora
[=
. Se per assurdo
di
tale che
`e insoddisfacibile, e quindi
[=
. Ma allora
(poich`e
[=
&
`e contenuto in qualche
`e f.s.
Sia ora =
<
+1
o
+1
.
Inne, sia x , e sia < tale che x =
+1
=
, (x/c
), e quindi (x/c
) , e `e di Henkin.
(B) Sia un insieme di Henkin. Deniamo una struttura del primo ordine /
per il linguaggio di tale che per ogni formula chiusa sia: / [= sse
nel modo seguente.
Il dominio A di / `e linsieme dei termini chiusi di tale linguaggio.
Se c `e una costante del linguaggio, c
A
= c (si noti che c
A
A, essendo c
un termine ground).
Se f `e un simbolo di funzione n-aria e se t
1
, . . . , t
n
A (quindi se t
1
, . . . , t
n
sono termini ground), allora f
A
(t
1
, . . . , t
n
) = f(t
1
, . . . , t
n
).
Se P `e un simbolo di predicato n-ario, allora per ogni n-upla (t
1
, . . . , t
n
)
di termini ground, deniamo P
A
(t
1
, . . . , t
n
) sse P(t
1
, . . . , t
n
) .
Osserviamo che in questo modo, per ogni termine ground t `e t
A
= t, come si
vede facilmente ragionando per induzione su t.
31
Dimostriamo che se `e una formula chiusa, allora / [= sse per
induzione su .
Se `e atomica, diciamo = P(t
1
, . . . , t
n
), lasserto segue dalla denizione
di P
A
(e dal fatto che per i = 1, . . . , n, t
A
i
= t
i
).
Supponiamo = . Essendo un insieme di Henkin, si ha: sse
/ sse (ipotesi induttiva) / ,[= sse / [= .
Supponiamo = . Se / [= , allora o / [= o / [= . Per ipotesi
induttiva, o . Se / , avrei , e quindi essendo
sia , che , insoddisfacibili, ho un assurdo. Viceversa, se
, si ha che o o (altrimenti conterrebbe linsieme
insoddisfacibile , , ). Per ipotesi induttiva, o / [= o / [= , e
quindi / [= .
Il caso in cui = & si riduce ai casi e osservando che & sse
( ) , e che / [= & sse / [= ( ).
Supponiamo = x. Allora, sse esiste un termine ground t
tale che (x/t) sse (per ipotesi induttiva) esiste un t A tale che
/ [= (x/t) sse / [= x.
Il caso in cui = x si riduce ai casi ed osservando che x sse
x , e che / [= x sse / [= x.
Questo conclude la dimostrazione del Lemma.
A questo punto, per ottenere lasserto del teorema di compattezza, basta os-
servare che per il punto (A) del Lemma, se `e nitamente soddisfacibile `e
contenuto in un insieme di Henkin , e che per il punto (B) del Lemma es-
iste una struttura / che soddisfa tutte le formule di . Pertanto / (o meglio,
la struttura ottenuta da / cancellando le interpretazioni delle nuove costanti)
soddisfa tutte le formule di , e `e soddisfacibile.
Corollario 9.11 Sia un insieme di formule, e sia A una formula. Allora,
[= A sse esiste un sottoinsieme nito
0
di tale che
0
[= A
Dimostrazione. [= A sse A `e insoddisfacibile sse (per il Teorema di
Compattezza) esiste un sottoinsieme insoddisfacibile nito
di A sse
(senza perdita di generalit`a posso assumere che A
, e posso porre
0
=
`e soddisfacibile:
detto infatti m il massimo numero tale che c > m
0
, baster`a considerare
la struttura R in cui c `e interpretata in m + 1. Tale struttura soddisfa ev-
identemente
0
. Quindi
tale che R
[=
, e sia a = c
R
.
Evidentemente, a > 0, a > 1 . . . , a > n, . . . etc., e quindi R
`e un campo non
Archimedeo in cui valgono tutte le propriet`a al primo ordine vere in R. In tale
campo, il concetto di limite pu`o essere semplicato: si ha lim
xa
f(x) = L sse
per ogni x Dom(f) a, se [ x a [ `e innitesimo, allora [ f(x) L [ `e
innitesimo.
Si noti anche un aspetto negativo di questa costruzione: la completezza di R
non `e esprimibile al primo ordine, dato che esistono strutture non Archimedee
(e quindi non complete) che soddisfano tutte le formule vere in R.
Esercizio. Sia un insieme di formule chiuse di un linguaggio con identit`a che
`e soddisfacibile in strutture con identit`a di cardinalit`a nita arbitrariamente
grande. Dimostrare che `e soddisfacibile in strutture di cardinalit`a arbitrari-
amente grande. (Consiglio: sia un cardinale innito, e sia
ottenuto da
aggiungendo costanti c
`e nitamente soddisfacibile . . . ).
10 Il Teorema di Herbrand - Versione semantica
Vogliamo trovare delle condizioni necessarie e sucienti pi` u semplici possibili
anch`e un insieme di formule sia soddisfacibile. Si noti che la relazione [= A
`e anchessa esprimibile tramite la nozione di (in)soddisfacibilit`a poich`e [= A
sse A `e insoddisfacibile. Il risultato nale, il Teorema di Herbrand,
consente di ricondurre problemi di soddisfacibilit`a per la logica dei predicati a
problemi di soddisfacibilit`a per la logica proposizionale. Bench`e molto forte,
questo risultato non comporta la decidibilit`a del problema della soddisfacibilit`a
per la logica del primo ordine, in quanto la soddisfacibilit`a di un insieme nito di
formule al primo ordine pu`o essere ricondotta al problema della soddisfacibilit`a
proposizionale di un insieme innito di formule.
Iniziamo allora ad arontare il problema della soddisfacibilit`a di un insieme
di formule del primo ordine. Per un esercizio precedente, possiamo limitarci a
considerare il caso in cui linsieme sia costituito da formule chiuse. Inoltre,
36
possiamo assumere senza perdita di generalit`a che ogni formula di sia in forma
normale prenessa.
Denizione 10.1 Deniamo, per ogni formula A in forma normale prenessa,
la formula A
= A.
Se A = xB, allora A
= x
1
. . . x
n
B(y/f(x
1
, , x
n
)), ove f
`e un simbolo di funzione n-ario non nel linguaggio di A.
Deniamo poi per recursione: A
0
= A; A
n+1
= (A
n
)
.
Inne, detto k il numero di occorrenze di in A, poniamo A
s
= A
k
. A
s
si dice
Skolemiana di A.
La Skolemiana di A ha la forma A
s
= x
1
. . . x
n
A
s
, dove A
s
`e senza quanti-
catori, e viene detta matrice Skolemiana di A. Unistanza ground di A
s
`e una
formula chiusa ottenuta sostituendo ogni (occorrenza libera di una) variabile
in A
s
con un termine ground (diverse occorrenze della stessa variabile devono
essere sostituite dallo stesso termine).
Lemma 10.2 A `e soddisfacibile sse A
`e soddisfacibile.
Dimostrazione. Innanzitutto, si vede facilmente che A
[= A, per cui se A
`e
soddisfacibile, anche A `e soddisfacibile, per cui basta dimostrare limplicazione
inversa.
Se A non ha quanticatori esistenziali, lasserto `e ovvio.
Supponiamo A = xB, e quindi A
per il linguaggio di
A
. Evidentemente, /
[= B(x/c), in quanto c
A
= a, e /
[= B(x/a). Quindi
/
[= A
, e A
`e soddisfacibile.
Supponiamo ora A = x
1
. . . x
n
yB. Se / [= A, allora per ogni a
1
, , a
n
/
esiste un b / tale che / [= B(a
1
, , a
n
, b). Per ogni a
1
, , a
n
/, scelgo
b(a
1
, , a
n
) / tale che / [= B(a
1
, , a
n
, b(a
1
, , a
n
)). Interpreto ora
f nella funzione f
A
(a
1
, , a
n
) =
b(a
1
, , a
n
). Sia /
ottenuta da / aggiun-
gendo linterpretazione di f in f
A
[= B(a
1
, , a
n
, f(a
1
, , a
n
)),
poich`e f
A
(a
1
, , a
n
) = b(a
1
, , a
n
), e / [= B(a
1
, , a
n
, b(a
1
, , a
n
)).
Quindi /
[= A
, ed A
`e soddisfacibile.
37
Iterando il Lemma precedente, si ottiene:
Corollario 10.3 Per ogni formula A (in forma normale prenessa) si ha: A `e
soddisfacibile sse A
s
`e soddisfacibile.
Sia ora un insieme possibilmente innito di formule, che possiamo supporre
chiuse ed in forma normale prenessa. Costruisco, per ogni formula A , la
sua Skolemiana A
s
, avendo cura di usare sempre simboli nuovi di costante o di
funzione (in altre parole, se introduco una nuova costante o un nuovo simbolo di
funzione per costruire A
s
, non posso pi` u utilizzarlo per costruire la Skolemiana
di altre formule. Pongo poi
s
= A
s
: A .
Teorema 10.4 `e soddisfacibile sse
s
`e soddisfacibile.
Dimostrazione. Per il verso non banale, supponiamo soddisfacibile. Sia /
tale che / [= . Dimostriamo che
s
`e soddisfacibile in una struttura ottenuta
da / aggiungendo le interpretazioni dei simboli in
s
. Abbiamo visto che per
ogni A posso aggiungere a / le interpretazioni dei simboli in A
s
e non in
A in modo da ottenere un modello di A
s
. Poich`e per formule distinte introduco
simboli distiniti, le nuove interpretazioni che aggiungo non coniggono fra loro
(in altre parole, se A ,= B , posso aggiungere le interpretazioni dei nuovi
simboli per B
s
in modo da renderla vera senza alterare la verit`a di A
s
), per cui
aggiungendo tutte le interpretazioni dei nuovi simboli ottengo una struttura /
tale che /
[=
s
.
Denizione 10.5 Sia / un linguaggio al primo ordine con almeno un simbolo
di costante. Una struttura di Skolem-Herbrand per / `e una struttura / tale
che:
Il dominio di / `e linsieme dei termini ground di /.
Per ogni simbolo di costante c, si ha c
A
= c.
Per ogni simbolo di funzione n-aria f, f
A
`e la funzione n-aria denita, per
ogni n-upla (t
1
, . . . , t
n
) di termini ground, da f
A
(t
1
, . . . , t
n
) = f(t
1
, . . . , t
n
).
Dalla denizione segue che due strutture di Skolem-Herbrand per lo stesso lin-
guaggio / possono dierire solo per linterpretazione dei simboli di predicato.
Denizione 10.6 Sia un insieme di formule chiuse in forma normale pre-
nessa. Sia
s
= A
s
: A . Indichiamo poi con
g
linsieme delle istanze
ground delle formule di
s
. (Se in
s
non vi sono simboli di costante ne aggiun-
giamo uno, in modo da avere almeno un termine ground).
Teorema 10.7 (Teorema di Herbrand - Versione semantica). Un insieme di
formule `e soddisfacibile sse
g
`e proposizionalmente soddisfacibile.
38
Dimostrazione. `e soddisfacibile sse
s
`e soddisfacibile. Ora `e chiaro che
s
[= B per ogni B
g
, per cui se `e soddisfacibile,
s
`e soddisfacibile, e
quindi
g
`e soddisfacibile. Inne la soddisfacibilit`a nella logica dei predicati im-
plica ovviamente la soddisfacibilit`a proposizionale, per cui un verso del teorema
`e ovvio.
Dimostriamo laltro verso. Supponiamo
g
proposizionalmente soddisfacibile,
e sia V unassegnazione di valori di verit`a tale che V [=
g
. Deniamo una
struttura di Herbrand / come segue:
Il dominio e le interpretazioni delle costanti e dei simboli di funzione sono
come in tutti i modelli di Herbrand per il linguaggio di
s
.
Se P `e un simbolo di predicato n-ario e se t
1
, . . . , t
n
sono termini ground,
deniamo P
A
(t
1
, . . . , t
n
) sse V (P(t
1
, . . . , t
n
)) = 1.
Lemma 10.8 Per ogni formula chiusa e senza quanticatori , si ha: / [=
sse V () = 1.
Dimostrazione. Induzione su . Se `e atomica, diciamo = P(t
1
, . . . , t
n
),
si ha: / [= sse P
A
(t
1
, . . . , t
n
) sse V (P(t
1
, . . . , t
n
) = 1.
I passi induttivi corrispondenti ai connettivi sono banali, e vengono quindi las-
ciati al lettore.
Torniamo alla dimostrazione del teorema. Sia A
s
= x
1
. . . x
n
A
s
s
. Al-
lora, per il Lemma 10.8, per ogni istanza ground A
g
s
di A
s
, / [= A
g
s
. In
altre parole, presi comunque termini ground t
1
, . . . , t
n
del linguaggio di
s
,
/ [= A
s
(t
1
, . . . , t
n
). Poich`e il dominio di / `e costituito da tutti e soli i ter-
mini ground del linguaggio di
s
,
/ [= x
1
, . . . x
n
A
s
(x
1
, , x
n
).
Per larbitrariet`a di A
s
s
, / [=
s
.
Esempi. Ci chiediamo se xB, x(B C) [= xC. Questo si verica sse
xB, x(B C), xC `e insoddisfacibile. Scrivendo le formule in forma
normale prenessa e prendendo le Skolemiane, lasserto `e vericato sse
B(x/c), x(B C), xC
`e insoddisfacibile. Inne, per il teorema di Herbrand, lasserto `e vericato
sse linsieme delle istanze ground delle matrici Skolemiane, cio`e delle formule
B(x/c), B C, C, `e proposizionalmente insoddisfacibile. Ora si vede subito
che linsieme di istanze ground B(x/c), B(x/c) C(x/c), C(x/c) `e insod-
disfacibile, per cui la risposta al quesito iniziale `e aermativa.
39
Ci chiediamo ora se xyB(x, y) [= yxB(x, y), ove B `e un simbolo di predi-
cato binario. Ci`o equivale a chiedere se linsieme
xyB(x, y), yxB(x, y)
`e insoddisfacibile. Questo si verica sse linsieme delle Skolemiane
xB(x, f(x)), yB(g(y), y)
`e insoddisfacibile. Per il teorema di Herbrand, questo si verica sse linsieme
delle istanze ground delle formule B(x, f(x)), B(g(x), y) `e proposizionalmente
insoddisfacibile. Si vede subito che non `e cos` poich`e la valutazione V tale
che V (B(t, s)) = 1 sse il numero di simboli in t `e minore del numero di sim-
boli in s rende vere tutte le formule del tipo B(t, f(t)) e false tutte le formule
del tipo B(g(s), s), e quindi rende vere tutte le istanze ground delle formule
B(x, f(x)), B(g(x), y).
Ci chiediamo se u(B(u) C(u)) [= v(B(v) zC(z)). Ci`o equivale a
chiedersi se linsieme u(B(u) C(u)), v(B(v)&zC(z) sia insoddisfaci-
bile Scriviamo le formule in forma normale prenessa e poi Skolemizziamo, ot-
tenendo u(B(u) C(u)), v(B(v)&C(f(v))). Ora linsieme di istanze
ground
B(c) C(c), B(f(c)) C(f(c)), B(c)&C(f(c)), B(f(c))&C(f(f(c)))
`e proposizionalmente insoddisfacibile. Infatti se V che soddisfa tale insieme,
deve essere V (B(c)) = V (B(f(c))) = 1 (dovendo soddisfare la terza e la quarta
formula, e quindi V (C(c)) = V (C(f(c)) = 1, dovendo soddisfare le prime due.
Ma allora V (C(f(c))) = 0, e V non soddisfa la terza formula.
Ci chiediamo se x(A(x) B(x)) [= xA(x) yB(y) (A, B simboli predicativi
unari). Il problema si riduce a controllare se x(A(x)B(x)), xA(x)&yB(y)
`e insoddisfacibile. Passando alle Skolemiane, il tutto si riduce a controllare se
x(A(x)B(x)), A(c)&B(d) `e insoddisfacibile. Per il teorema di Herbrand,
basta controllare se linsieme delle istanze ground di A(x)B(x), A(c), B(d) `e
insoddisfacibile. La risposta `e negativa: la valutazione V denita da V (A(t)) =
1 sse t ,= c e V (B(t)) = 1 sse t ,= d soddisfa tutte le istanze ground di
A(x) B(x), A(c), B(d).
Corollario 10.9 Sia = x, con senza quanticatori e con la sola variabile
x. Allora `e logicamente valida sse esiste una tautologia proposizionale che `e
disgiunzione di istanze ground di .
Dimostrazione. `e logicamente valida sse `e insoddisfacibile sse x
`e insoddisfacibile sse linsieme delle istanze ground di `e proposizionalmente
insoddisfacibile. Per il Teorema di Compattezza per il Calcolo Proposizionale,
ci`o accade sse esiste un insieme nito
(t
1
), . . . , (t
n
)
40
di istanze ground di che `e proposizionalmente insoddisfacibile. Ma questultima
condizione `e vericata sse (t
1
) . . . (t
n
) `e una tautologia.
Esempio. Consideriamo la formula x(x), dove (x) = (P(a)P(b)) P(x).
Si noti che gli unici termini ground del nostro linguaggio sono a e b, e che
inoltre n`e (a) n`e (b) `e una tautologia. Tuttavia, (a) (b) `e una tautologia,
per cui possiamo concludere che x `e logicamente valida. Lesempio modella
la seguente situazione: Supponiamo che gli utenti a e b (e solo loro) abbiano
accesso ad una stanza. Sia P(x) = x ha lasciato la luce accesa. Supponiamo che
al mattino presto la luce della stanza sia accesa. Questo equivale ad assumere
che o a o b abbia lascito la luce accesa. Da questa ipotesi possiamo dedurre
(nella Logica Classica) che qualcuno ha lasciato la luce accesa, pur senza avere
alcuna informazione su chi sia stato.
Il Teorema di Herbrand per la logica dei predicati con identit`a Nel
caso della logica con identit` a ci possiamo facilmente ricondurre al caso generale:
`e insoddisfacibile nella logica con identit`a sse detto / il linguaggio di e
indicato al solito con I(/) linsieme degli assiomi di identit`a per /, I(/)
`e insoddisfacibile sse
s
I(/) `e insoddisfacibile (si noti che I(/)
s
= I(/),
essendo le formule di I(/) prive di quanticatori esistenziali). Sia I
g
linsieme
delle istanze ground delle matrici Skolemiane degli assiomi di identit`a, ossia
linsieme delle istanze ground delle formule ottenute dagli assiomi di identit`a
togliendo i quanticatori universali. Si ha allora:
Teorema 10.10 `e insoddifsacibile sse linsieme
g
I
g
`e proposizionalmente
insoddisfacibile.
Esempi. La formula xy((x y&(P(x) Q(y)) (P(x) Q(x)))
`e valida nella logica al primo ordine con identit`a . Per dimostrare questo,
considero listanza ground = c d&(P(c) Q(d))&P(c)&Q(c). Basta
allora dimostrare che I
g
`e proposizionalmente insoddisfacibile. Ora,
= c d d c e = d c (Q(d) Q(c)) sono in I
g
. Sia per
assurdo V una valutazione tale che V [= , , . Allora, V (c d) = 1, e quindi
essendo V () = 1, si conclude che V (d c) = 1. Essendo V () = 1, sia ha
V (P(c) = 1, e di conseguenza V (Q(d) = 1. Usando il fatto che V () = 1,
concludo che V (Q(c)) = 1. Ma allora V (Q(c)) = 0, e V () = 0, assurdo.
Dimostriamo che xy(x + S(y) S(x + y)) ,[=
=
xy(x + y y + x).
Sia = (a + b b + a), e sia
g
0
linsieme di tutte le istanza ground di
x + S(y) S(x + y). Occorre e basta dimostrare che
g
I
g
`e propo-
sizionalmente soddisfacibile. A tal ne pongo per ogni coppia s, t di termini
ground, V (s t) = 1 sse o s = t o s e t contengono entrambi il simbolo S. Non
`e dicile dimostrare che V soddisfa I
g
g
.
41
11 Il metodo di risoluzione per il calcolo propo-
sizionale
Finora ci siamo occupati della semantica del calcolo proposizionale e del cal-
colo dei predicati, ed abbiamo studiato i concetti di verit`a e di soddisfacibilit`a.
Vogliamo ora occuparci del problema di determinare algoritmi ecaci per de-
cidere se un insieme di formule `e soddisfacibile o meno. Precisiamo che qui non
ci occupiamo del problema di simulare il ragionamento logico, evidenziandone
gli schemi validi. Un buon corso di Fondamenti di Logica si dovrebbe occupare
seriamente di questo problema fondamentale, ma questo importante tema `e gi`a
coperto da un corso di Teoria della Dimostrazione, per cui, pur non ignorando
aatto il problema, rimandiamo il lettore a questultimo corso. In queste note, lo
ripetiamo, ci accontentiamo di approntare degli algoritmi per risolvere, almeno
nei casi pi` u signicativi, il problema della soddisfacibilit`a di un insieme (di solito
nito) di formule chiuse, pur senza pretendere che tali algoritmi simulino il ra-
gionamento logico.
Iniziamo dal caso proposizionale. In questo caso, si comincia con il ridurre cias-
cuna formula in forma normale congiuntiva. Una congiunzione di disgiunzioni
di letterali viene interpretata come insieme nito di disgiunzioni di letterali, e
ciascuna disgiunzione viene a sua volta interpretata come linsieme nito dei
letterali che la compongono.
Un insieme nito di letterali si dice clausola. Poich`e una clausola rappresenta la
disgiunzione dei suoi letterali, diremo che una valutazione V soddisfa la clausola
C se V soddisfa almeno un letterale di C, cio`e se esiste un letterale L C tale
che V [= L. Linsieme vuoto di letterali si chiama clausola vuota e si indica con
2. Dalla denizione segue che 2 `e insoddisfacibile.
Notazione. Nel seguito, se C, D sono clausole e L `e un letterale, scriviamo
C, L invece di C L, e C, D invece di C D. Inoltre, L denota il letterale
cos` denito: se L `e una variabile proposizionale, p diciamo, allora L = p; se
L `e la negazione di una variabile proposizionale, p diciamo, allora L = p.
Una formula viene allora denita come un insieme nito e non vuoto di clau-
sole. Se F = C
1
, . . . , C
n
`e una formula e V `e una valutazione, diciamo che
V soddisfa F sse V soddisfa ogni clausola in F. Se I `e un insieme di formule e
V `e una valutazione, diciamo che V soddisfa I sse soddisfa tutte le formule di
I. Ovviamente, V soddisfa I sse V soddisfa tutte le clausole che compongono
le formule di I, ossia, usando un linguaggio insiemistico, sse V soddisfa ogni
elemento di
, L, e L / D
.
E = E
L, e L / E
.
C = D
, E
.
Se `e un insieme di clausole e C `e una clausola, diciamo che C `e deducibile da
attraverso la rsoluzione proposizionale (e scriviamo C R
(), allora [= C.
Il viceversa non vale: ad esempio, p, p [= q, ma le uniche formule otteni-
bili attraverso la risoluzione proposizionale da p e p sono p, p e 2, quindi
q / R
(p, p).
Lidea generale `e che con il metodo di risoluzione si dimostra tutto per assurdo:
anzicch`e derivare q da p, p, si deriva 2 da p, p, q. Pi` u in generale,
se si vuole dimostare che [= A attraverso il metodo di risoluzione, si dimostra
che A `e insoddisfacibile con il seguente procedimento: sia = A;
esprimiamo ogni formula di come insieme di clausole, utilizzando la forma nor-
male congiuntiva, ottenendo un insieme di clausole che risulta insoddisfacibile
sse `e insoddisfacibile. Inne dimostriamo che `e insoddisfacibile cercando
di dedurre da la clausola vuota 2.
43
Il prossimo teorema esprime la completezza del metodo di risoluzione, pen-
sato come metodo per dimostrare linsoddisfacibilit`a di un insieme di clau-
sole. Poich`e `e possibile ridurre il problema della conseguenza semantica a quello
dellinsoddisfacibilt`a ( [= A sse A `e insoddisfacibile), il metodo funziona
anche per testare la conseguenza semantica.
Teorema 11.2 (Teorema di Completezza per la Risoluzione Proposizionale).
Sia un insieme di clausole. Allora, `e insoddisfacibile sse 2 R
().
Dimostrazione. Un verso segue dal Lemma precedente: se 2 R
(), allora
[= 2, e quindi `e insoddisfacibile.
Dimostriamo ora laltro verso. Per il teorema di Compattezza, si ha che se `e
insoddisfacibile, esiste un sottoinsieme nito insoddisfacibile
0
di . Questo ci
consente di assumere senza perdita di generalit`a che sia nito. Dimostriamo
allora lasserto per induzione sul numero n di variabili presenti in (almeno una
formula di) .
Se n = 0, lunica clausola che posso formare senza usare variabili proposizionali
`e 2. Quindi = 2, e 2 R
().
Supponiamo lasserto vero per n = k, e dimostriamolo per n = k+1: sia dunque
un insieme di clausole insoddisfacibile con k +1 variabili. Fisso una variabile
p in tale che sia p che p compaiano come letterali in qualche clausola. Un tale
p esiste, altrimenti se per ogni variabile p uno solo fra p e p occorresse come
letterale in qualche clausola, esisterebbe una valutazione V che soddisfa : basta
porre per ogni p, V (p) = 1 se p occorre come letterale in qualche clausola di
, e V (p) = 0 altrimenti (quindi V (p) = 0 sse solo p occorre come letterale in
qualche clausola in ). Possiamo supporre senza perdita di generalit`a che non vi
siano clausole in che contengono sia p che p come letterale, in quanto, essendo
tali clausole soddisfatte da tutte le valutazioni, se esse vengono tolte, resta
insoddisfacibile. Divido in tre sottoinsiemi a due a due disgiunti:
0
= C : p / C e p / C
1
= D : p D
2
= E : p E.
Per ogni D
1
, pongo D
= Ep.
Pongo poi
4
= D
: D
1
, E
2
, e
5
=
0
4
. Evidentemente,
5
R
la valutazione
che coincide con V sulle variabili diverse da p e tale che V
(p) = 0. V
soddisfa
1
. Infatti per ogni D
1
, V
soddisfa D
e quindi soddisfa
44
anche D. Inoltre ogni E
2
`e soddisfatta da V
, dato che V
(p) = 0 e
p E. Quindi V
. Per ogni E
2
, V soddisfa
E
, in quanto essendo D
5
, V soddisfa D
, e quindi, non
soddisfacendo D
che coincide
con V sulle variabili diverse da p e tale che V
5
R
(
5
) R
(), e il teorema `e
dimostrato.
Esempi. Ci chiediamo se la formula (A B) ((A C) (A (B&C))
sia o meno una tautologia. Questo pu`o essere controllato direttamente, ma
cerchiamo di farlo usando il metodo di risoluzione proposizionale. A tal ne,
scrivo la negazione della formula in forma normale congiuntiva e poi in forma
clausale, cercando di dedurre la clausola vuota. La negazione della formula in
forma normale congiuntiva `e (A B)&(A C)&A&(B C) Scrivendo la
formula in forma clausale ottengo linsieme di clausole:
(1) A, B.
(2) A, C.
(3) A
(4) B, C.
Dalla (3) e dalla (1) e successivamente dalla (3) e dalla (2) ottengo:
(5) B
(6) C
Dalla (5) e dalla (4) ottengo:
(7) C
e dalla (6) e dalla (7) ottengo 2.
Ci chiediamo ora se
(A B) B [= (B A) A.
45
Questo equivale a chiedere se (A B) B, (B A)&A `e insoddis-
facibile. Riduco le due formule in modo da scriverle in forma normale con-
giuntiva. Ottengo prima (A&B) B, (B A)&A e successivamente
AB)&(BB) (BA)&A, che possono oessere scritte in forma clausale,
ottenendo le seguenti clausole:
(1) A, B.
(2) B, B.
(3) B, A.
(4) A.
Risolvendo (1) con (4) ottengo:
(5) B
che risolta con (3) fornisce:
(6) A
che risolta con (4) fornisce 2.
Quindi la formula considerata `e una tautologia.
Esercizio. Dimostrare che linsieme di clausole p, q, p, q, p, q, p, q `e
insoddisfacibile.
Ci si pu`o domandare cosa succede se linsieme di clausole considerato `e soddis-
facibile. In tal caso ovviamente da esso non si pu`o derivare la clausola vuota. Se
per`o `e nito, esso contiene solo un numero nito di variabili, ed ogni clausola
in R
(
g
C
).
Se dal punto di vista teorico tutto funziona bene, dal punto di vista algoritmico
vi sono problemi alquanto spinosi, poich`e anche se fosse nito,
g
C
`e di re-
gola innito (sicuramente lo `e se nel linguaggio di
s
vi `e almeno un simbolo
di funzione, e se ha almeno un quanticatore universale). Se
g
`e innito,
di regola non si sa a quali clausole in
g
applicare la risoluzione proposizionale
nel tentativo di arrivare alla clausola vuota. Pertanto `e desiderabile avere un
metodo generale che ci suggerisca le scelte pi` u intelligenti.
Il prossimo esempio mostra che di solito, anzicch`e cercare subito le sostituzioni
ground, conviene almeno in un primo tempo considerare sostituzioni meno im-
pegnative, che lascino possibilmente aperta la strada ad altre sostituzioni.
Esempio. Supponiamo che le matrici Skolemiane delle formule di , una volta
scritte in forma clausale, diano luogo allinsieme costituito dalle clausole
C = P(x), Q(x), D = P(y), E = Q(f(z)).
47
Non essendovi costanti nel linguaggio, ne introduciamo una, chiamiamola c. Per
poter risolvere P(x), Q(x) con P(y) potrei sostituire x e y con c, ottenendo
le clausole ground P(c), Q(c) e P(c), che risolvendo danno luogo alla clau-
sola Q(c). Questultima per`o non pu`o essere risolta con una istanza ground
di Q(f(z)), poich`e qualunque termine sostituisca a z non otter`o mai Q(c),
e quindi non potr`o mai risolvere con Q(c).
Se fossimo stati pi` u saggi, avremmo sostituito il meno possibile in P(x), Q(x),
P(y). Le soluzioni meno impegnative consistono nel sostituire x con y o vicev-
ersa. Sostituendo ad esempio x con y nella prima clausola e risolvendo, otterrei
Q(y), e a questo punto potrei sostituire y con f(z) e risolvere con Q(f(z))
ottenendo 2.
Cerchiamo di formalizzare queste idee intuitive.
Partiamo da alcune considerazioni generali. Sia un insieme di formule chiuse
del primo ordine. Ci chiediamo al solito se sia soddisfacibile o meno. A tal ne,
costruiamo
s
, che `e costituito dalle chiusure universali delle matrici Skolemiane
delle formule di . Scriviamo tali matrici in forma normale congiuntiva, e poi
in forma clausale (in altre parole, se una matrice Skolemiana A
s
`e una congiun-
zione di disgiunzioni D
i
=
_
n
i
j=1
L
j
j
(x) (i = 1, . . . , m, rappresento ogni D
i
come
clausola C
i
= L
i
j
: j = 1, . . . , n
i
, e poi rappresento A
s
attraverso linsieme
C
1
, . . . , C
m
. Tale insieme verr`a detto insieme di clausole corrispondenti ad
A
s
, e lunione degli insiemi di clausole corrispondenti alle formule di
s
verr`a
detto insieme di clausole corrispondente a
s
.
Ricordando che A
s
`e la chiusura universale di A
s
, ho che A
s
`e soddisfacibile
sse linsieme delle chiusure universali di D
1
, . . . , D
m
`e soddisfacibile. Queste
considerazioni suggeriscono le seguenti denizioni:
Denizione 12.1 Una clausola al primo ordine `e un insieme nito di letterali
al primo ordine, cio`e di formule atomiche o di negazioni di formule atomiche.
Sia C = L
1
(x), . . . , L
k
(x) una clausola, sia / una struttura per il linguaggio
di C. Diciamo che / [= C sse / [= x(L
1
(x) . . . L
k
(x)), dove al solito x
denota x
1
, , x
n
, e x denota x
1
. . . x
n
.
Si ha subito che A
s
`e soddisfacibile sse il corrispondente insieme di clausole
`e soddisfacibile, e che
s
`e soddisfacibile sse lo `e il corrispondente insieme di
clausole.
Inoltre, per come abbiamo denito il concetto di verit`a di una clausola in una
struttura, si vede subito che se / [= C e se t
1
, . . . , t
n
sono termini arbitrari,
allora / [= C(x
1
/t
1
, . . . , x
n
/t
n
). In termini intuitivi, possiamo dire che le sosti-
tuzioni conservano la verit`a delle clausole. Possiamo inoltre applicare la regole
di risoluzione proposizionale anche alle clausole al primo ordine (basta trattare
un letterale positivo come una variabile proposizionale, e un letterale negativo
cone la negazione di una variabile proposizionale. Ovviamente, la validit`a si con-
serva anche rispetto allapplicazione delle regola di risoluzione proposizionale.
Pertanto:
48
Lemma 12.2 Sia un insieme di formule chiuse del primo ordine, sia
C
linsieme delle clausole corrispondenti a
s
, e sia
+
linsieme delle clausole ot-
tenibili da
C
attraverso sostituzioni o attraverso la regola di risoluzione propo-
sizionale. Allora `e soddisfacibile sse
+
`e soddisfacibile.
Inoltre, poich`e
+
contiene tutte le clausole di
g
(scritto in forma clausale), si
ha che `e insoddisfacibile sse 2
+
.
Lidea `e allora quella di combinare in modo intelligente il metodo di risoluzione
proposizionale con lintroduzione di opportune sostituzioni, in modo da dedurre,
quando `e insoddisfacibile, la clausola vuota.
Poich`e il concetto di sostituzione gioca un ruolo decisivo nel metodo che ci ap-
prestiamo a presetare, `e opportuno dare una denizione formale di tale concetto
e di altri concetti ad esso collegati.
Denizione 12.3 Una sostituzione `e una funzione dallinsieme delle variabili
allinsieme dei termini tale che per tutte le variabili x salvo al pi` u un numero
nito, `e (x) = x.
Sia E una espressione di un linguaggio al primo ordine /, e sia una sosti-
tuzione. Deniamo il risultato della sostituzione applicata ad E, denotato con
(E) = .
Supponiamo di aver denito
(E
di lunghezza
k, e sia E unespressione di lunghezza k + 1. Scriviamo E come E
u
dove u `e un simbolo. Se u non `e una variabile, allora
(E) =
(E
) u.
Altrimenti,
(E) =
(E
) (u).
Denizione 12.4 Date due sostituzioni e , la composizione di e `e la
sostituzione denita, per ogni variabile x, da ()(x) =
((x)).
Sia E un insieme di espressioni, e sia una sostituzione. Diciamo che unica
E se linsieme
[E] =
(e) : e E `e un singoletto.
Diciamo che unica un insieme C = (e
1
, f
1
) . . . , (e
n
, f
n
) di coppie ordinate
di espressioni se per i = 1, . . . , n `e
(e
i
) =
(f
i
).
Diciamo che `e un most general unier (m.g.u.) per un insieme E di espres-
sioni (rispettivamente: per un insieme C di coppie ordinate di espressioni) se
unica E (rispettivamente: unica C) e per ogni sostituzione che unica E
(rispettivamnte: C), esiste una sostituzione tale che = .
Dalla denizione segue subito che:
Lemma 12.5 (a) Nessuna sostituzione unica un letterale positivo con uno
negativo.
(b) Una sostituzione unica due letterali positivi P(t
1
, . . . , t
n
) e Q(s
1
, . . . , s
m
)
(rispettivamente: due letterali negativi P(t
1
, . . . , t
n
) e Q(s
1
, . . . , s
m
)) sse
P = Q, n = m, e per i = 1, . . . , n, unica t
i
con s
i
.
49
(c) Nessuna sostituzione unica due termini composti che iniziano con simboli
diversi o una costante con un termine composto.
(d) Nessuna sostituzione unica due termini uno dei quali `e una variabile, e
laltro `e un termine composto che contiene quella variabile.
(e) unica f(t
1
, . . . , t
n
) con f(s
1
, . . . , s
n
) sse per i = 1, . . . , n, unica s
i
con t
i
.
(f ) unica un insieme t
1
, . . . , t
n
di termini se per i = 1, . . . , n 1,
unica t
i
con t
i+1
.
(g) Sia P un simbolo di predicato n-ario, e supponiamo che L sia o P o P.
Supponiamo che per i = 1, . . . , n e per j = 1, . . . , k, t
j
i
sia un termine.
Allora, una sostituzione unica linsieme
L(t
1
1
, . . . , t
1
n
), . . . , L(t
k
1
, . . . , t
k
n
)
sse per j = 1, . . . k 1 e per i = 1, . . . , n, unica t
j
i
con t
j+1
i
.
La nostra strategia consiste ora nellunicare uno o pi` u letterali in una clausola
con il complemento di uno o pi` u letterali in un altra clausola, per poi poter
applicare la risoluzione proposizionale. Lesempio visto allinizio del paragrafo
mostra che conviene cercare unicatori pi` u generali possibili, e quindi la nostra
strategia consister`a nella ricerca di un m.g.u. per insiemi di letterali. Inoltre,
per il Lemma 12.5, lunicazione di un insieme nito di letterali si riduce alla
unicazione di un numero nito di coppie di termini, e la ricerca di un m.g.u.
per un insieme nito di letterali si riduce alla ricerca di un m.g.u. per un
insieme nito di coppie di termini. Nel prossimo paragrafo arontiamo quindi
il problema della ricerca di un m.g.u. per un insieme di coppie di termini.
13 Il Teorema di unicazione
Teorema 13.1 Esiste un algoritmo (dovuto a Martelli e a Montanari) che,
preso in input un insieme nito E di coppie di termini, termina con una dichiarazione
di fallimento se E non `e unicabile, e termina producendo un m.g.u. per E se
E `e unicabile.
Dimostrazione. Lalgoritmo procede costruendo una sequenza nita E
0
=
E, E
1
, . . . , E
n
di insiemi di coppie di clausole ed una sequenza di sostituzioni
0
, . . . ,
n
con le seguenti propriet`a:
(a) Per ogni sostituzione e per i = 0, . . . , n, si ha: unica E
i
sse
i
unica
E.
(b) Se unica E, per i = 0, . . . , n, esiste una sostituzione
i
tale che
i
i
= .
50
(c) O E
n
`e costituito da coppie identiche, oppure E
n
`e manifestamente non
unicabile, cio`e esiste una coppia (s, t) E
n
tale che o s e t sono termini
composti che iniziano con simboli diversi, o uno fra s e t `e una costante e
laltro un termine composto, o uno fra s e t `e una variabile e laltro `e un
termine composto contenente quella variabile.
La costruzione procede per passi:
Passo 0. Poniamo E
0
= E, e
0
= , ove denota la sostituzione identica.
Se E
0
`e costituito da coppie identiche, la costruzione termina, cio`e n = 0, e
si dichiara
0
un m.g.u. Se E
0
contiene una coppia di termini composti che
iniziano con simboli diversi, oppure una coppia di termini in cui uno `e una
costante e laltro un termine composto, o inne una coppia di cui un elemento `e
una variabile e laltro `e un termine composto che contiene quella variabile, allora
il procedimento termina (quindi ancora una volta n = 0) con una dichiarazione
di fallimento. Altrimenti, andiamo al passo 1.
Osserviamo che le clausole (a) e (b) sono in ogni caso soddisfatte, e se il pro-
cedimento termina al passo 0 con successo `e un m.g.u. per E, mentre se il
procedimento termina al passo 0 con dichiarazione di fallimento, E non `e uni-
cabile.
Passo i + 1. Supponiamo di aver costruito E
0
, . . . , E
i
e
0
, . . . ,
i
in modo
che per ogni j i le condizioni (a) e (b) siano soddisfatte, e supponiamo che
lalgoritmo non sia ancora terminato entro il passo i. Questo signica che E
i
non `e interamente costituito da coppie identiche, e che non esitono in E
i
n`e
coppie di termini composti che iniziano con simboli diversi, n`e coppie di termini
di cui uno `e una costante e laltro un termine composto, n`e coppie costituite da
una variabile e da un termine composto contenente quella variabile. Sia (s, t) la
prima coppia non identica in E
i
. Possono vericarsi solo due casi:
(i) s e t sono termini composti che iniziano con lo stesso simbolo di funzione,
diciamo s = f(s
1
, . . . , s
n
), e t = f(t
1
, . . . , t
n
). Allora si pone
i+1
=
i
, e si costruisce E
i+1
sostituendo in E
i
la coppia (s, t) con le coppie
(s
1
, t
1
), . . . , (s
n
, t
n
).
(ii) Uno fra s e t, diciamo s, `e una variabile, chiamiamola x, e laltro `e un
termine (non necessariamente composto) non contenente quella variabile.
Sia
i
la sostituzione denita da
i
(x) = t, e (y) = y se y ,= x. Sia poi
i+1
=
i
i
, e sia E
i+1
=
i
[E
i
] = (
i
(u),
i
(v)) : (u, v) E
i
.
Se E
i+1
`e costituito interamente da coppie identiche, si conclude la costruzione,
si pone n = i + 1, e si dichiara
i+1
un m.g.u. per E. Se E
i+1
contiene o una
coppia di termini composti che iniziano con simboli diversi, o una coppia in cui
un termine `e una costante e laltro un termine composto, o inne una coppia
di termini di cui uno `e una variabile e laltro un termine composto contenente
quella variabile, allora si pone n = i + 1, e la costruzione termina con una
51
dichiarazione di fallimento.
Dimostriamo che il procedimento termina. Associamo ad ogni E
i
di coppie di
termini lordinale
i
= ( v
i
+ c
i
), ove v
i
`e il numero di variabili in E
i
, e
c
i
`e il numero di occorrenze di simboli in E
i
, escludendo le parentesi. Se si
verica il caso (i), si ha v
i+1
= v
i
e c
i+1
= c
i
2, in quanto sono stati tolte due
occorrenze del simbolo di funzione f. Quindi
i+1
<
i
. Se si verica il caso
(ii), una variabile, x diciamo, viene sostituita dappertutto con un termine t in
cui x non compare. Quindi il numero di variabili diminuisce di 1, (anche se c
i+1
pu`o essere maggiore di c
i
), per cui
i+1
= (v
i
1) +c
i+1
< v
i
+c
i
=
i
.
Se il procedimento non terminasse, avrei una successione decrescente innita di
ordinali
0
> . . . >
n
> . . ., il che `e impossibile.
Poich`e la procedura termina ad un certo passo n, la propriet`a (c) vale per
costruzione. Dimostriamo ora per induzione su i che le propriet`a (a) e (b)
valgono per tutti i j i. Per i = n, avremo allora lasserto. Abbiamo gi`a visto
che (a) e (b) valgono per i = 0. Supponiamo che valgano per i = k < n, e
dimostriamo che valgono per i = k + 1.
Se al passo i + 1 si ha il caso (i), allora
i+1
=
i
, e inoltre `e evidente
che per ogni sostituzione , unica E
i
sse unica E
i+1
. Pertanto,
unica E
i+1
sse unica E
i
sse (ipotesi induttiva)
i
unica E sse (essendo
i+1
=
i
)
i+1
unica E. Questo dimostra (a). Per quanto riguarda
(b), se unica E, allora per ipotsi induttiva esiste
i
tale che =
i
i
.
Ma essendo
i+1
=
i
, si ha che =
i
i+1
, e la (b) `e dimostrata.
Supponiamo che al passo i + 1 si verichi il caso (ii). Allora, unica
E
i+1
=
i
[E
i
] sse
i
unica E
i
. Per ipotesi induttiva, ci`o accade sse
i
=
i+1
(ometto le parentesi dato che la composizione di sosti-
tuzioni `e associativa) unica E. Questo verica (a).
Dimostriamo (b). Sia una sostituzione che unica E. Per ipotesi in-
duttiva, esiste una sostituzione
i
tale che
i
i
= . Ricordando che
i+1
=
i
i
, dove
i
(x) = t e (y) = y se y ,= x, denisco
i+1
ponendo
i+1
(y) =
i
(y) per y ,= x, e
i+1
(x) = x. Dico che
i+1
i+1
= . A tal
ne, essendo =
i
i
e
i+1
=
i
i
, basta dimostrare che
i
=
i+1
i
.
Se y ,= x, allora (
i+1
i
)(y) =
i+1
(y) =
i
(y), essendo
i
(y) = y, e
i+1
(y) =
i
(y). Per concludere lanalisi del punto (b), dimostriamo allora
che (
i+1
i
)(x) =
i
(x). Ricordiamo che
i
i
= unica E, onde per il
punto (a),
i
unica E
i
. In particolare, essendo (x, t) E
i
,
i
(x) =
i
(t).
Poich`e t non contiene occorrenze di x, si ha
i
(t) =
i+1
(t). Quindi
i+1
i
(x) =
i+1
(t) =
i
(t) =
i
(x). Quindi
i+1
i
=
i
, e la propriet`a
(b) `e dimostrata.
Concludiamo la dimostrazione del teorema dimostrando che lalgoritmo produce
un m.g.u. per E se E `e unicabile ed una dichiarazione di fallimento altrimenti.
Supponiamo che la procedura termini al passo n con un fallimento. Se esistesse
52
un unicatore per E, per la propriet`a (b) esisterebbe una sostituzione
n
tale
che
n
n
= . Inoltre per la propriet`a (a),
n
unica E
n
sse
n
n
= unica
E. Quindi E
n
sarebbe unicabile. Ma la procedura termina con un fallimento
solo se in E
n
vi `e una coppia di termini non unicabili, e quindi otteniamo un
assurdo.
Supponiamo ora che la procedura termini con successo. Allora, allultimo passo
n abbiamo un insieme E
n
costituito da coppie identiche. Quindi unica E
n
,
e per il punto (a),
n
=
n
unica E. Pertanto,
n
`e un unicatore di E. Se
poi `e un altro unicatore, per la propriet`a (b) esiste una sostituzione
n
tale
che
n
n
= . Quindi
n
`e un m.g.u. per E, e il teorema `e dimostrato.
Esempi. Per semplicit`a indichiamo con (x
1
, t
1
), . . . , (x
n
, t
n
) la sostituzione
denita da (x
i
) = t
i
per i = 1, . . . , n, e (y) = y se y / x
1
, , x
n
.
Sia E = (f(g(x), y), f(u, v)), (y, g(z)). Lalgoritmo pone E
0
= E,
0
=
. Al passo 1, pone
1
= , E
1
= (g(x), u), (y, v), (y, g(z)). Al passo 2,
si ha
2
= (u, g(x)), E
2
= (g(x), g(x)), (y, v), (y, g(z)). Al passo 3 si
ha
3
= (u, g(x)), (y, v), E
3
= (g(x), g(x)), (v, v), (v, g(z)). Al passo 4,
si pone
4
= (u, g(x)), (y, g(z))(v, g(z)), e E
4
= (g(x), g(x)), (g(z), g(z))
(la coppia (g(z), g(z)) sarebbe ripetuta due volte ma in un insieme non sono
ammesse ripetizioni). Lalgoritmo termina con successo, producendo lm.g.u.
4
= (u, g(x)), (y, g(z))(v, g(z)).
Consideriamo ora linsieme E = (x, g(y)), (y, f(x)). Al solito si parte da
0
=
e E
0
= E. Al passo 1 si pone
1
= (x, g(y)), E
1
= (g(y), g(y)), (y, f(g(y))).
La prima coppia non identica in E
1
`e (y, f(g(y))), che `e costituita da una vari-
abile e da un termine che contiene quella variabile. Il procedimento termina
quindi con fallimento.
Consideriamo inne linsieme E = (f(x), f(y)), (g(x, y), g(f(z), f(u)). Pas-
sando direttamente al passo 1, abbiamo
1
= , E
1
= (x, y), (x, f(z)), (y, f(u))
Al passo 2 abbiamo
2
= (x, y), E
2
= (y, y), (y, f(z)), (y, f(u)). Al passo
3 si pone
3
= (x, f(z)), (y, f(z)), E
3
= (f(z), f(z)), (f(z), f(u)). Al
passo 4 si ha
4
=
3
, E
4
= (f(z), f(z)), (z, u). Al passo 5 si ha
5
=
(x, f(u)), (y, f(u)), (z, u), E
5
= (f(u), f(u)), (u, u). Pertanto il procedi-
mento termina con successo, e
5
`e un m.g.u.
Esercizio Applicare lalgoritmo di unicazione ai seguenti insiemi di coppie di
termini: E = (f(x), f(g(y))), (h(y, g(z)), h(f(u), w)),
F = (f(x), f(g(y))), (h(y, g(z)), h(x, w)).
14 La regola di risoluzione al primo ordine
La regola di risoluzione al primo ordine procede attraverso tre fasi: nella prima
fase si ridenominano le variabili nelle clausole a cui si vuole applicare la regola,
53
in modo che le clausole ottenute dopo tale ridenominazione non abbiano vari-
abili in comune; nella seconda fase, si seleziona un insieme X di letterali nella
prima clausola ed un insieme Y di letterali nella seconda clausola (entrambi non
vouti), e si tenta di unicare linsieme risultante dallunione di X con linsieme
dei complementi dei letterali in Y . Detto un m.g.u. di tale insieme di letter-
ali, si applica ad entrambe le clausole e poi si applica la regola di risoluzione
proposizionale alle clausole cos` ottenute.
Prima di enunciare la regola in modo formale, premettiamo alcune consider-
azioni:
Poich`e le clausole si interpretano come se fossero quanticate univer-
salmente, ridenominando le variabili in una qualsiasi di esse si ha una
clausola ad essa semanticamente equivalente. La ridenominazione delle
variabili `e utile ai ni della successiva unicazione, come mostrato dal
seguente esempio.
Sia C
1
= P(x), C
2
= P(x). Se tentassimo di unicare P(x) con il
complemento di P(f(x)), falliremmo, perch`e ci riconduremmo alla uni-
cazione di x con f(x), che `e chiaramente impossibile. Daltra parte,
linsieme C
1
, C
2
`e chiaramente insoddisfacibile, per cui `e desiderabile
che da esso si ottenga 2. Con la preventiva ridenominazione delle vari-
abili, questo `e possibile: ridenominando la x nella seconda clausola, ot-
tengo C
1
= P(x), C
2
= P(f(y)). Un m.g.u. di P(x) con il comple-
mento di P(f(y)) `e (x, f(y)). Applicando ottengo D
1
= P(f(y)) e
D
2
= P(f(y)), e da D
1
e D
2
con la risoluzione proposizionale ottengo
2.
In alcuni casi conviene unicare un gruppo di letterali (e non un singolo
letterale) nella prima clausola con i complementi dei letterali di un altro
gruppo nella seconda clausola, come `e mostrato dal seguente esempio.
Sia C = P(x), P(y), D = P(z), P(u). Se unicassi solo due letterali
alla volta (dopo aver ridenominato le variabili) e poi risolvessi, avrei ad
ogni passo clausole con due letterali, e quindi non otterrei mai 2. Invece in
questo caso posso unicare in un solo passo P(x) e P(y) con i complementi
di P(z) e P(u). Un m.g.u. `e = (x, u), (y, u), (z, u). Applicando a
C e a D, ottengo la clausole P(u) e P(u), che risolte producono la
clausola vuota 2.
Queste considerazioni ci conducono alla denizione della regola di risoluzione al
primo ordine che enunceremo fra poco.
Notazione. Sia X un insieme nito di letterali. Con X denotiamo linsieme
L : L X.
Denizione 14.1 Siano C, D, E clausole al primo ordine. Diciamo che E `e
ottenuta da C e D attraverso una applicazione della regola di risoluzione al
primo ordine (e scriviamo E RFO(C; D)) sse esistono:
54
(i) Una clausola D
;
(iii) Un m.g.u. dellinsieme di letterali X Y
tali che E = (
[C]
[X]) (
[D]
[Y ]).
In altre parole, dopo aver ridenominato le variabili di D ottenendo D
ed aver
calcolato un m.g.u. di X Y , applicando
a C e a D
, gli elementi di
X vengono mandati in un letterale L e quelli di Y vengono mandati nel suo
complemento L.
A questo punto si applica la risoluzione proposizionale alle clausole
[C] e
[D
], ottenendo (
[C] L) (
[D
] L) = E.
Denizione 14.2 Sia un insieme di clausole e C una clausola. Diciamo che
C `e ottenibile da attraverso la risoluzione al primo ordine (e scriviamo C
RFO
() `e in-
soddisfacibile. Pertanto, per dimostrare che una formula chiusa A`e conseguenza
semantica di un insieme di formule chiuse, posso considerare
= A,
passare alle matrici di Skolem scritte in forma clausale, e poi utilizzando ripetu-
tamente la risoluzione al primo ordine, cercare di ottenere la clausola vuota 2.
Ovviamente se ho successo, posso concludere che [= A. Per ottenere il vicev-
ersa, devo dimostrare che se un insieme di clausole `e insoddisfacibile, allora
2 RFO
().
Esercizio. Dimostrare che linsieme costituito dalle clausole C = T(y, f(y)),
D = E(u), E(f(u)), E = E(u), E(f(u)), F = T(x, y), T(y, z), T(x, z),
G = T(x, y), E(x), E(y) `e insoddisfacibile, deducendo 2 da tali clausole con
la risoluzione al primo ordine.
Esercizio. Dimostrare che linsieme costituito dalle clausole
C = A(x), B(u), D = A(f(z)), S(x), E = S(g(u)), F = B(g(u))
`e insoddisfacibile.
Esercizio. Dimostrare che linsieme costituito dalle clausole
C = A(x), A(y), B(f(y)), D = A(f(u)), A(w), E = B(z)
`e insoddisfacibile.
15 Il Teorema di Completezza per la risoluzione
al primo ordine
Concludiamo il capitolo con il teorema di completezza per la risoluzione al primo
ordine, enunciato e dimostrato nella sua forma clausale:
56
Teorema 15.1 Un insieme di clausole al primo ordine `e insoddisfacibile sse
2 RFO
()
Dimostrazione. Abbiamo gi`a osservato che `e insoddisfacibile sse RFO
()
`e insoddisfacibile, per cui il verso da destra a sinistra del teorema `e immediato.
Basta allora dimostrare che se `e insoddisfacibile, allora 2 RFO
(). Ora se
`e insoddisfacibile, linsieme
g
delle istanze ground di formule di `e propo-
sizionalmente insoddisfacibile, per cui 2 R
(
g
), cio`e esiste una deduzione di
2 da
g
attraverso la risoluzione proposizionale. Per ottenere il teorema, basta
allora dimostrare il seguente:
Lemma 15.2 (Lifting Lemma). Per ogni clausola C R
(
g
), esistono una
clausola C
RFO
(C
) = C.
Prima di dimostrare il lemma, osserviamo che da esso segue immediatamente il
teorema di completezza: infatti se `e insoddisfacibile,
g
`e psoposizionalmente
insoddisfacibile, e quindi 2 R
(
g
). Per il Lifting Lemma, esistono una
clausola C
RFO
(C
). Questultima
condizione `e possibile solo se 2 = C
(). Passiamo
dunque alla dimostrazione del Lifting Lemma.
Dimostrazione. Induzione sulla lunghezza della deduzione di C. Se C
g
,
allora C =
(C
) per qualche C
, E
RFO
() e
due sostituzioni (possibilmente diverse) e tali che D =
(D
), E =
(G).
Per dimostrare il passo induttivo, basta dimostrare che esistono una clausola C
deducibile da D
ed E
(C
). Ridenomino
le variabili in E
`e w ,= v
per qualche v in D
[D
] =
[D
] = D, e che
[E
] = [E
] = E.
Siano L
1
, . . . , L
n
i letterali di D
mandati in L da , e siano M
1
, . . . , M
k
i letterali
di E
mandati da in
L, e sia D
= D
L
1
, . . . , L
n
, E
= E
M
1
, . . . , M
k
.
Allora, `e un unicatore dellinsieme
S = L
1
, . . . , L
n
,
M
1
, . . . ,
M
k
.
Per il Teorema di unicazione, esiste un m.g.u. di S. Poich`e unica S, i
letterali L
1
, . . . , L
n
vengono mandati da in un unico letterale L
, e i letterali
57
M
1
, . . . , M
k
vengono mandati nel suo complemento
L
[D
] =
[D
],
[L
1
, . . . , L
n
] =
[D
]], L.
G,
L = E =
[E
] =
[E
],
[M
1
, . . . , M
k
] =
[D
]],
L.
Risolvendo fra
[D
] e
[E
], si ottiene
[D
],
[E
].
Risolvendo fra
[D
]] = F, L e
[E
]] = G,
L si ha F, G, e quindi
F, G =
[D
],
[E
]] =
[D
],
[E
]].
Sia C
[D
],
[E
]. Allora C
`e ottenuta da D
e E
con la resola di
risoluzione al primo ordine, e inoltre C = F, G =
[C
].
In conclusione, abbiamo trovato una clausola C
RFO
() ed una sostituzione
tali che C = [C
E facile rendersi conto che questo trucco consente di far tornare le ariet`a delle
funzioni adottate, per cui nel seguito non ci preoccuperemo pi` u di questo aspetto
formale.
Esempio. Il prodotto pu`o essere denito per recursione dalla funzione zero e
dalla somma (pi` u le funzioni proiezione, che servono per far tornare le ariet`a,
ma che qui ignoreremo):
x 0 = 0 = Z(x) x (y + 1) = x y +x.
Esercizio. Denire per recursione sul prodotto la funzione esponenziale x
y
e la
funzione x!.
Esercizio. Denire per recursione dalla funzione zero e dalle funzioni proiezione
la funzione predecessore denita da P(0) = 0, e P(x) = x 1 se x > 0.
Esercizio. Denire per recursione partendo dalle funzioni proiezione e dalla
funzione predecessore la funzione dierenza troncata, denita da x y = x y
se y x, e x y = 0 se x < y.
Esercizio. Denire per composizione partendo dalla funzione somma e dalla
funzione dierenza troncata le seguenti funzioni: [ x y [ (valore assoluto della
dierenza fra x e y), minx, y (minimo fra x e y), maxx, y (massimo fra x e
y), sg(x) = 1 se x > 0 e 0 altrimenti.
66
Denizione 19.5 La classe delle funzioni primitive ricorsive `e la pi` u piccola
classe P
0
tale che:
Ogni funzione iniziale appartiene a P
0
.
P
0
`e chiusa per composizione e per recursione.
Esercizio. Dimostra che le funzioni + (somma), (prodotto), P (predecessore),
(dierenza troncata), [ x y [, maxx, y, minx, y, e sg sono primitive
ricorsive.
Esercizio. Dimostra che le seguenti funzioni sono primitive ricorsive: la fun-
zione esponenziale x
y
, il fattoriale x!, la funzione Quoz(x, y) (quoziente Euclideo
fra x e y se y ,= 0, 0 se y = 0), Resto(x, y) (resto della divisione fra x e y se
y ,= 0, e x altrimenti).
Esercizio. Dimostra che ogni funzione primitiva ricorsiva `e ow-chart com-
putabile.
Denizione 19.6 Sia g una funzione parziale da N
n
a N. Al solito, abbrevi-
amo x
1
, , x
n
con x.
La funzione z.g(x, z) 0 `e denita per ogni x N
n
, come segue:
Se esiste un y (necessariamente unico) tale che
(i) g(x, y) = 0
(ii) per ogni y < y, g(x, y) `e denita e g(x, y) ,= 0,
allora z.g(x, z) 0 = y.
Se un tale y non esiste, allora z.g(x, z) 0 non `e denita.
Si dice che z.g(x, z) 0 `e ottenuta da g per minimalizzazione.
Nota:
z.g(x, z) 0 dipende da x, ma non da z.
Se g `e totale, allora per ogni x per cui z.g(x, z) 0 `e denita, la funzione
fornisce il minimo z tale che g(x, z) = 0. Tuttavia se g non `e totale, questo
non `e necessariamente vero. Ad esempio se g(x, 0) non `e denita e se per
z > 0, g(x, z) = 0, allora z.g(x, z) 0 non `e denita, anche se il minimo
z tale che g(x, z) = 0 `e 1.
z.g(x, z) 0 pu`o non essere denita anche se g `e totale. Ci`o accade e.g.
se g non `e mai zero.
67
Denizione 19.7 (Kleene 1938). La classe delle funzioni parziali ricorsive `e la
pi` u piccola classe P tale che:
Ogni funzione iniziale `e in P.
P `e chiusa per composizione, per recursione e per minimalizzazione.
Esercizio. Dimostra che la funzione vuota `e parziale ricorsiva.
Esercizio. Dimostra che la funzione x y denita da x y = x y se x y,
e x y non denita altrimenti, `e parziale ricorsiva.
Esercizio. Determina una funzione parziale ricorsiva da N a N che ha come
dominio linsieme dei numeri pari.
Denizione 19.8 Una funzione si dice totale ricorsiva se `e parziale ricorsiva e
totale.
Esercizio. Dimostra che ogni funzione primitiva ricorsiva `e totale ricorsiva.
20 La tesi di Church
Abbiamo visto tre modelli matematici del concetto intuitivo di funzione com-
putabile. Previa codica delle stringhe, possiamo pensare che non solo le fun-
zioni ow-chart computabili e le funzioni parziali ricorsive ma anche le funzioni
Turing computabili siano funzioni parziali da Na N, o almeno da N
k
a N. Mod-
ulo questa convenzione, `e possibile dimostrare il seguente sorprendente risultato:
Teorema 20.1 Una funzione parziale da N
k
a N `e parziale ricorsiva sse `e
Turing-computabile sse `e ow-chart computabile.
Vi sono stati altri tentativi di formalizzare il concetto di funzione computabile,
ad esempio tramite il lambda calcolo, o tramite le macchine a registri, o inne
tramite il calcolo delle equazioni. Si pu`o dimostrare che tutte queste denizioni
sono equivalenti alle denizioni precedenti. Questo suggerisce che tali formaliz-
zazioni catturino esattamente il concetto di funzione calcolabile.
Tesi di Church. (Church-Turing 1936). Le funzioni intuitivamente calcolabili
sono precisamente le funzioni Turing-calcolabili (o equivalentemente le funzioni
parziali ricorsive, o le funzioni ow-chart computabili.
Osserviamo che una delle due inclusioni `e intuitivamente evidente: una funzione
Turing-computabile `e intuitivamente computabile. Il problema riguarda invece
linclusione opposta. Ci sono molti argomenti a favore della tesi di Church, vale
a dire:
Tutte le funzioni computabili trovate nora sono Turing-computabili.
68
Il fatto che tutte le formalizzazioni del concetto di funzione computabile
introdotte nora siano equivalenti fra loro, pur essendo formalmente dis-
tinte, `e un ulteriore argomento a favore della tesi: se ci fossero funzioni
intuitivamente computabili ma non Turing computabili, bisognerebbe am-
mettere tutti coloro che hanno tentato di formalizzare il concetto di fun-
zione computabile, fra cui molti dei pi` u famosi logici, abbiano commesso
lo stesso errore.
I programmi dei moderni calcolatori sono (teoricamente) simulabili da
macchine di Turing.
Molti logici, fra cui lo stesso Church, proposero lenunciato come denizione
di funzione computabile. Naturalmente, si pu`o adottare questa scelta, tuttavia
ci`o non toglie che esista un concetto intuitivo di computabilit`a, intensional-
mente diverso da quello di Turing-computabilit`a. Quindi, fermo restando che
la Turing-computabilit`a pu` o legittimamente essere presa come denizione del
concetto di computabilit`a, resta aperto il problema se la denizione formale
catturi esattamente il concetto intuitivo. Oltre a questo, chi adotta la Turing
computabilit`a come denizione di computabilit`a `e tenuto a non fare mai riferi-
mento allintuizione per dimostrare che una certa funzione `e computabile o che
un certo problema `e decidibile.
Pi` u deboli sono gli argomenti contro la tesi di Church. In ogni caso, mentre
sembra comunemente accettato (anche se non formalmente dimostrato) che le
funzioni computabili in modo meccanico siano Turing-computabili, `e plausibile
che vi siano funzioni computabili da un agente umano ma non da una macchina.
Questa ipotesi esclude una tesi che vedremo pi` u avanti, e cio`e quella secondo
cui la mente umana `e simulabile almeno limitatamente allattivit`a scinetica,
da una macchina di Turing.
Mentre ci si pu`o aspettare che se la tesi di Church `e falsa qualcuno prima
o poi lo dimostri, trovando un esempio di funzione che tutti i matematici ri-
conoscano come computabile, e che dimostrabilmente dierisca da ogni funzione
computabile, dimostrare la tesi di Church nel caso questa fosse vera risulta molto
pi` u problematico. Infatti, innanzitutto dovremmo superare lostacolo consis-
tente nel confronto fra un concetto formale e un concetto intuitivo. In secondo
luogo, come potrebbe funzionare una dimostrazione di equivalenza? I modi pi` u
naturali che vengono in mente sono o un metodo per trasformare un metodo
per computare una funzione (nel senso intuitivo del termine, quindi non neces-
sariamente un programma) in una macchina di Turing, cosa che appare poco
plausibile, dato che non abbiamo una nozione formale di metodo di calcolo in
senso intuitivo, oppure tentare una dimostrazione induttiva sulla generazione
della funzione, ma anche questa strada appare poco plausibile, poich`e non sem-
bra probabile che si possa trovare un metodo generativo che dimostrabilmente
produca tutte le funzioni intuitivamente calcolabili.
69
Vi sono alcune interessanti varianti della tesi di Church, vale a dire:
Supertesi di Church. Non solo ogni funzione intuitivamente com-
putabile `e Turing-computabile, ma ogni computazione eettuata da un
ideale agente umano `e simulabile da una macchina di Turing.
Mente e macchine. Il cervello umano, almeno limitatamente allattivit`a
logico-scientica, `e simulabile da una macchina di Turing.
Costruttivismo e computabilit`a. Ogni funzione denita in modo
costruttivo `e Turing computabile. (Qui il termine construttivo `e inteso in
senso intuizionista, cio`e come sinonimo di ottenuto attraverso una costruzione
mentale).
Su queste suggestive tesi si potrebbe discutere per giorni interi, ma purtoroppo
non posssiamo farlo in questa sede per mancanza di tempo.
Concludiamo il paragrafo con un breve cenno alluso pratico della tesi di Church.
In molti libri di testo, la tesi di Church `e di fatto usata per semplicare le
dimostrazioni di alcuni teoremi. La dimostrazione semplicata procede cos`:
supponiamo di voler dimostrare che una funzione `e Turing computabile. Al-
lora, assumendo la tesi di Church, baster`a dimostrare che la funzione medesima
`e intuitivamente computabile, e quindi baster`a trovare un algoritmo in senso
intuitivo che la computa.
Questa linea dimostrativa `e spesso usata in logica matematica, tuttavia non
`e accettabile se si assume la Turing-computabilit`a come denizione della com-
putabilit`a. In ogni caso, luso della tesi di Church per dimostrare in modo
intuitivo la computabilit`a di una funzione ha il vantaggio di semplicare molto
la dimostrazione, ma ha lo svantaggio di renderla non assoluta, in quanto vinco-
lata alla verit`a della Tesi stessa. Quindi, una dimostrazione del tutto formale `e
di gran lunga preferibile, anche se una dimostrazione tramite la Tesi di Church
di solito suona convincente, e spesso fornisce le linee guida per ottenere una
dimostrazione formale.
Un modo pi` u ranato di usare la tesi di Church consiste nellinferire da essa
la non computabilit`a di una funzione, una volta che si sia dimostrato che essa
non `e Turing-computabile. Ad esempio, dalla non esistenza di una Macchina di
Turing che decida linsieme di tutte le formule vere dellaritmetica, dimostrata
da Godel e da Church, la tesi di Church permette di inferire la non esistenza di
un algoritmo (in senso intuititvo) per decidere linsieme di tali formule.
Questo secondo enunciato sembra un po pi` u forte del precedente, e, qualora
si accettasse anche la tesi secondo cui il cervello umano `e simulabile da una
macchina di Turing, costituirebbe una pesante limitazione non solo alle possi-
bilit`a delle macchine, ma anche alle possibilit`a della mente umana.
70
21 Insiemi ricorsivi e insiemi ricorsivamente enu-
merabili
Denizione 21.1 Sia X N
n
. La funzione caratteristica di X `e la funzione
C
X
denita da
C
X
(x
1
, . . . , x
n
) =
_
0 se (x
1
, . . . x
n
) X
1 altrimenti
Un sottoinsieme X di N
n
di dice ricorsivo (rispettivamente: primitivo ricor-
sivo) se la sua funzione caratteristica C
X
`e (totale) ricorsiva (rispettivamente :
primitiva ricorsiva).
Un sottoinsieme X di N
n
si dice ricorsivamente enumerabile se X `e il dominio
di denizione di una funzione parziale ricorsiva da N
n
a N.
Lidea intuitiva che sta dietro a queste denizioni `e la seguente: un insieme `e
ricorsivo se esiste un algoritmo per decidere, data una n-upla (x
1
, . . . , x
n
), se
questa gli appartiene o meno.
(Nel nostro caso, lalgoritmo `e il seguente:
Data la n-upla x (x
1
, . . . , x
n
), computa C
X
(x); se essa ottieni 0, x X; se
ottieni 1, x / X).
Invece un insieme X N
n
`e ricorsivamente enumerabile se esiste un algoritmo
che applicato a x:
se x X termina con risposta aermativa,
se x / X pu`o o terminare con risposta negativa o non terminare aatto.
Tale algoritmo `e il seguente: sia X = dom() con parziale ricorsiva. Dato x,
computa (x). Se la computazione termina, x X. Se la computazione non
termina, allora lalgoritmo non d`a alcuna risposta.
Si noti che se lalgoritmo non termina, la non terminazione pu`o anche non essere
evidente. Ad esempio se `e denita per minimalizzazione da g(x, z), `e possibile
che per certi x si abbia che per ogni z, sia g(x, z) ,= 0 (e quindi (x) non sia
denita), ma che loperatore non sia in grado di prevedere questo fatto, perch`e
potrebbe non essere evidente a priori che per ogni z, g(x, z) ,= 0.
Quindi, mentre lappartenenza ad un insieme ricorsivamente enumerabile pu`o
essere vericata in modo algoritmico, la non appartenenza potrebbe non essere
vericabile algoritmicamente.
Esercizio. Dimostra che se X e Y sono sottoinsiemi ricorsivi di N
n
, allora
X Y , X Y , N
n
X sono ricorsivi.
71
Esercizio. Dimostra che i seguenti insiemi sono primitivi ricorsivi: (a) ogni
insieme nito; (b) ogni insieme il cui complemetare `e nito; (c) linsieme dei
numeri pari; (d) linsieme dei numeri dispari.
Esercizio. Dimostra che se se f, g sono funzioni totali ricorsive da N
n
a N, gli
insiemi:
X = x : f(x) = g(x) e Y = x : f(x) g(x)
sono ricorsivi.
Esercizio. Dimostra che se X N
n+1
`e ricorsivo, allora gli insiemi
Z = (x, y) : z y((x, z) X, e U = (x, y) : z y((x, z) X
sono ricorsivi
Esercizio. Siano X
1
, . . . X
k
sottoinsiemi ricorsivi di N
n
a due a due disgiunti
tali che X
1
. . . X
k
= N
n
, e siano f
1
. . . , f
n
funzioni totali ricorsive da N
n
a
N.
Dimostra che la funzione
g(x) =
_
_
_
f
1
(x) se (x) X
1
. . . . . .
f
k
(x) se (x) X
k
`e totale ricorsiva.
Esercizio. Sia g(x, z) una funzione totale ricorsiva, e sia z y.g(x, z) 0 la
funzione h(x, y) denita da:
h(x, y) =
_
minz y : g(x, z) = 0 se un tale z esiste
y + 1 altrimenti
Dimostra che z y.g(x, z) 0 `e totale ricorsiva.
Dimostra inoltre che se g `e primitiva ricorsiva, anche z y.g(x, z) 0 lo `e.
Esercizio. Dimostrare che se X N
n
`e ricorsivo, allora sia X che N
n
X sono
ricorsivamente enumerabili.
Consiglio: detta C
X
la funzione caratteristica di X, si considerino le funzioni
z.(1 C
X
(x) 0) e z.(C
X
(x) 0).
Vedremo in seguito che, mentre vale il viceversa, cio`e un insieme ricorsivamente
enumerabile il cui complemento sia ricorsivamente enumerabile `e ricorsivo, es-
istono per`o insiemi ricorsivamente enumerabili che non sono ricorsivi.
72
22 Codiche ricorsive
Ci proponiamo ora di codicare gli insiemi niti di numeri naturali, le coppie
ordinate di numeri naturali e le sequenze nite di numeri naturali mediante nu-
meri naturali. Le codiche dovranno essere calcolabili, nel senso che vogliamo
che ci siano delle Macchine di Turing per passare dagli oggetti in questione alle
loro codiche e viceversa. Qui nel seguito ci accontenteremo di dimostrare che
le codiche sono intuitivamente calcolabili, anche se `e possibile trovare esplici-
tamente la Macchine di Turing appropriate. Iniziamo dagli insiemi niti.
Innanzitutto, la codica dellinsieme vuoto `e per denizione 0. Escluso tale caso,
per ogni insieme nito non vuoto X = x
1
, . . . , x
n
, ove x
1
< x
2
< . . . < x
n
,
consideriamo il seguente procedimento:
Formiamo la sequenza nita = (s
0
, s
1
, . . . , s
x
n
) di lunghezza x
n
+ 1
denta, per i = 0, 1, . . . , x
n
, da s
i
= 1 se i X, e s
i
= 0 altrimenti.
Invertiamo lordine della sequenza, scrivendo
= (s
x
n
, . . . , s
1
, s
0
).
Essendo s
x
n
= 1 (in quanto x
n
X), la sequenza
inizia con 1, e
quindi rappresenta lespansione binaria di un numero N. Tale numero `e
per denizione la codica di X.
Si noti che in questo modo di ottiene:
N = 2
x
1
+. . . + 2
x
n
.
Per decodicare, cio`e per passare dalla codica allinsieme, si eettua il proced-
imento al contrario, cio`e dato un numero N, si procede cos`:
Se N = 0, allora linsieme codicato da N `e linsieme vuoto.
Se N > 0, lo scrivo in binario, ottenendo una sequenza
.
Inverto lordine di
1
((m, n)) = m,
2
((m, n)) = n, e
(
1
(k),
2
(k)) = k.
Si pu`o dimostrare che le funzione
1
e
2
sono anchesse primitive ricorsive (vedi
esercizio successivo).
Esercizio: Dimostra che
1
e
2
sono primitive ricorsive.
Passiamo inne alla codica delle stringhe nite di numeri naturali. Il modo
pi` u comune di introdurre le stringhe nite di numeri naturali in un linguaggio
insiemistico `e quello di denirle come funzioni da un numero naturale n =
0, . . . , n 1 a N.
Per comodit`a le considereremo invece come funzioni da 1, . . . , n a N. Quindi
la sequenza (s
1
, s
2
, . . . , s
n
) `e per denizione linsieme (1, s
1
), (2, s
2
), . . . (n, s
n
).
Una tale sequenza viene codicata come segue:
La sequenza vuota viene codicata con 0, per cui possiamo limitarci nel
seguito al caso di sequenze (s
1
, s
2
, . . . , s
n
) non vuote.
Sostituiamo a ciascuna coppia (i, s
i
) la pseudocoppia (i, s
i
), ottenendo
linsieme nito
S = (1, s
1
), . . . (n, s
n
).
75
Codichiamo linsieme nito S cos` ottenuto mediante la codica degli
insiemi niti precedentemente introdotta.
La codica 2
(1,s
1
)
+ . . . + 2
(n,s
n
)
dellinsieme S cos` ottenuto `e per
denizione la codica della sequenza (s
1
, . . . , s
n
).
Esercizio. Dimostra che le seguenti funzioni e relazioni sono primitive ricorsive:
xEy sse x `e elemento dellinsieme codicato da y;
x . y =codica dellunione degli insiemi codicato da x e da y; x y =
codica dellunione degli insiemi codicati da x e da y;
SEQ=insieme delle codiche di sequenze nite;
p(s, i) =i-esimo elemento della sequenza codicata da s (se s non codica
alcuna sequenza o se codica una sequenza di lunghezza i, allora p(s, i)
viene posto uguale a s + 1);
s t =codica della concatenazione delle sequenze codicate da s e da
t (non ci importa cosa succede se s e t non codicano entrambi delle
sequenze); lth(s) =lunghezza della sequenza codicata da s (se s non
codica una sequenza deniamo lth(s) = s + 1).
23 Funzioni universali
Lidea che ha portato alla scoperta di funzioni parziali ricorsive universali `e
stata quella di cercare programmi che implicitamente contengano tutti gli altri.
Un esempio elementare che ricorda vagamente questa situazione `e il seguente:
quando accendo il computer posso accedere ai vari programmi in esso disponibili.
Quindi il programma in base al quale lavora il computer implicitamente contiene
tutti i programmi di cui sopra. Qui per`o stiamo parlando della possibilit`a teorica
di costruire un programma universale che contenga tutti i possibili programmi,
e non solo quelli che possono essere salvati nel disco rigido di un computer.
Denizione 23.1 Indichiamo al solito x
1
, , x
n
con x. Una funzione parziale
ricorsiva K(x, x) viene detta universale (relativamente alle funzioni di n vari-
abili) se per ogni funzione parziale ricorsiva di n variabili (x) esiste un numero
e (detto indice di ) tale che per ogni x
1
, , x
n
sia:
(x) = K(e, x).
n
e
(x) = K
n
(e, x).
Ometteremo lapice
n
quando lariet`a sar`a chiara dal contesto.
Il teorema precedente pu`o essere raorzato, ottenendo una funzione universale
che genera tutte le funzioni parziali ricorsive, di qualunque ariet`a. Dato infatti
un indice e per una funzione parziale ricorsiva, esiste un unico n (calcolabile a
partire da e) che fornisce lariet`a della funzione di codice e. Deniamo quindi:
T(e, x, z) sse esistono n, y tali che:
e `e un indice di una funzione parziale ricorsiva n-aria .
x codica una n-upla x di numeri naturali.
z codica lalbero di computazione di (x) = y.
Si pu`o dimostrare che T `e primitiva ricorsiva. Pertanto si ha:
Teorema 23.8 Esiste una funzione parziale ricorsiva di due variabili detta fun-
zione universale, e precisamente
K(u, x) = U(z.C
T
(u, x, z) 0)
tale che per ogni funzione parziale ricorsiva in un numero n arbitrario di
argomenti, esiste un e tale che per ogni x sia:
(x) = K(e, x).
Osservazioni.
(o) Si noti il diverso ruolo di e nei due membri del Teorema 23.8: in
e
, il
numero e codica un programma, mentre in K(e, x), e fa parte dellinput.
Quindi in una funzione universale linput `e diviso in due parti, una delle
quali va pensata come programma.
(i) Dalla denizione di
n
e
segue che se e non `e un indice per una funzione
parziale ricorsiva n-aria, allora
n
e
`e la funzione parziale ricorsiva vuota,
cio`e
n
e
(x) non `e denita per nessun valore di x.
80
(ii) Ogni funzione parziale ricorsiva (x) ha inniti indici. Infatti
(x) = (x) +Z(U
n
1
(x)),
per cui se e `e un indice per e s `e un indice per +, allora, ricordando che
un indice per Z(U
n
1
(x)) `e dato da n
0
3, 2, n, 1, 0, un indice per
(x) = (x) +Z(U
n
1
(x))
`e dato da 3, e, n
0
, s.
Corollario 23.9 (Padding Lemma). Esiste una funzione totale ricorsiva p(e, n, x),
strettamente crescente nella variabile x, tale che per ogni e, n, m e per ogni
x N
n
si ha:
n
e
(x) =
n
p(e,m)
(x).
In particolare, per ogni e, n, la successione
p(e, n, 0), p(e, n, 1), . . . , p(e, n, m), . . .
`e una successione computabile crescente che fornisce inniti indici per la stessa
funzione
n
e
.
Dimostrazione. Sia n
0
= 3, 2, n, 1, 0, e sia s un indice per +. Allora
posto f(e, n) = 3, e, n
0
, s, si ha
n
e
(x) =
n
f(e,n)
(x).
Baster`a allora denire per recursione:
p(e, n, 0) = e.
p(e, n, m+ 1) = f(p(e, n, m), n).
Esercizio. Dimostra che ogni funzione parziale ricorsiva `e denibile usando una
sola volta il operatore, e che una funzione totale ricorsiva `e denibile usando il
operatore solo in contesti del tipo z.g(x, z) 0, dove g `e primitiva ricorsiva
e dove per ogni x esiste uno z tale che g(x, z) 0.
Esercizio. Dimostra che esistono funzioni totali ricorsive ma non primitive
ricorsive.
Consiglio: la relazione Prim(e) sse e `e un indice per una funzione ricorsiva
in una variabile il cui programma non utilizza mai il operatore `e primitiva
ricorsiva. Inoltre ogni funzione primitiva ricorsiva in una variabile ha un indice
e tale che Prim(e). Si prenda allora la funzione
F(x) =
_
U(z.C
T
1(x, x, z) 0) + 1 se Prim(x)
0 altrimenti
81
Sia x = x
1
, , x
n
, y = y
1
, . . . , y
m
, a = a
1
, , a
n
. Sia f(x, y) una funzione
parziale ricorsiva da N
n+m
a N. Se sso le prime n variabili ponendo x = a,
(a N
n
), ottengo una funzione parziale g
a
(y) da N
m
a N, denita da
g
a
(y) = f(a, y).
Intuitivamente, le istruzioni per calcolare g
a
si ottengono dalle istruzioni per
calcolare f con laggiunta della ulteriore istruzione che consiste nel ssare x =a.
Sembra quindi naturale aspettarci che un indice per g
a
possa essere computato
a partire da un indice per f e dai valori a.
Il cosiddetto Teorema S
m
n
assicura proprio questo.
Teorema 23.10 (S
m
n
teorema: Kleene 1938). Per ogni coppia m, n di numeri
naturali positivi, esiste una funzione primitiva ricorsiva S
m
n
tale che per ogni
x N
n
e per per ogni y N
m
sia:
S
m
n
(e,x)
(y) =
e
(x, y).
Dimostrazione. Sia, per ogni numero naturale r,
K
r
(y) = S(. . . (S(
. .
r volte
(Z(U
m
1
(y))) . . .).
Si noti che per ogni m-upla
b di numeri naturali, si ha: K
r
(
b) = r. Baster`a
allora prendere S
m
n
(e, x) tale che per ogni e, x, S
m
n
(e, x) sia un indice per la
funzione
e
(K
x
1
(y), . . . , K
x
n
(y), U
m
1
(y), . . . , U
m
m
(y)).
Infatti essendo K
x
i
(y) = x
i
, si ha
e
(K
x
1
(y), . . . , K
x
n
(y), U
m
1
(y), . . . , U
m
m
(y)) =
e
(x, y).
Ora, per ogni r un indice i(r) per K
r
si ottiene come funzione primitiva ricorsiva
di r:
i(0) = 3, 0, 2, m, 1
i(r + 1) = 3, 1, i(r).
Basta allora prendere
S
m
n
(e, x) = 3, i(x
1
), . . . , i(x
n
), 2, m, 1, . . . , 2, m, m.
Deniamo su N una equivalenza ponendo e i sse
e
=
i
, cio`e se e ed i
sono codiche di programmi che computano la stessa funzione.
82
Teorema 23.11 (Teorema di Recursione o del Punto Fisso). Per ogni funzione
totale ricorsiva f(x) esiste un n
0
tale che f(n
0
) n
0
, cio`e
f(n
0
)
=
n
0
.
Dimostrazione. Sia K(x, y) una funzione universale. Deniamo:
() H(x, y) = K(f(K(x, x)), y) =
f(
x
(x))
(y).
Per lS
m
n
Teorema, indicato con e un indice di H, `e
H(x, y) =
e
(x, y) =
S
1
1
(e,x)
(y).
Sia h(x) = S
1
1
(e, x), e sia n un indice per h.
Si ha allora: H(x, y) =
h(x)
(y) =
n
(x)
(y).
Sostituendo x con n e utilizzando la (), si ottiene:
()
n
(n)
(y) = H(n, y) =
f(
n
(n))
(y).
Osserviamo che S
1
1
(e, x) `e totale ricorsiva, e quindi anche h =
n
lo `e. Pertanto
n
(n) `e denita.
Posto allora
n
(n) = n
0
, uguagliando i secondi membri della () si ottiene:
n
0
(y) =
f(n
0
)
(y),
cio`e la tesi.
Il Teorema di punto sso appena dimostrato consente di ottenere funzioni def-
inite in modo apparentemente circolare, come emerge da alcuni degli esercizi
seguenti.
Esercizio. Dimostra che per ogni funzione ricorsiva g(x) esiste una funzione
totale ricorsiva f(x) tale che f(0) `e un indice di f, e per x > 0, f(x) = g(x).
Esercizio. Dimostra che esiste una funzione parziale ricorsiva che ha come
indici due numeri consecutivi.
Esercizio. Dopo aver dimostrato, usando lS
m
n
Teorema, che esiste una fun-
zione totale ricorsiva h(x) tale che
h(x)
(y) =
x
(y) + 1, applica il Teorema di
Recursione trovando un n
0
tale che per ogni y sia:
n
0
(y) =
h(n
0
)
(y) =
n
0
(y) + 1.
Posto z =
n
0
(y), abbiamo z = z + 1. Come si spiega questo apparente para-
dosso?
83
24 Insiemi ricorsivamente enumerabili vs insiemi
ricorsivi
Dalla denizione di insieme ricorsivamente enumerabile e dal Teorema di Forma
Normale per le funzioni parziali ricorsive segue che ogni insieme ricorsivamente
enumerabile X N pu`o essere indiciato attraverso un indice per una funzione
parziale ricorsiva che ha X come dominio.
Infatti se X = Dom() e ha indice e, (come abbiamo visto si scrive =
e
)
possiamo usare e come indice per X, e scrivere X = W
e
.
Quindi ogni insieme ricorsivamente enumerabile pu`o essere scritto come W
e
per un opportuno e. Analogamente ogni insieme ricorsivamente enumerabile
X N
n
pu`o essere rappresentato come W
n
e
= Dom(
n
e
) per un opportuno e.
Dal teorema di forma normale segue anche che se e `e un indice per una funzione
parziale ricorsiva in n argomenti, allora si ha:
W
n
e
= x : zT
n
(e, x, z).
Infatti essendo,
n
e
(x) = U(z.C
T
n(e, x, z) 0),
si ha che
n
e
(x) `e denita sse esiste uno z tale che C
n
T
(e, x, z) = 0 e quindi sse
esiste uno z tale che T
n
(e, x, z).
Ne deduciamo:
Teorema 24.1 Un insieme X N
n
`e ricorsivamente enumerabile sse esiste
una insieme ricorsivo R N
n+1
tale che
X = a N
n
: b((a, b) R.
Dimostrazione. Se X `e ricorsivamente enumerabile, diciamo X = W
n
e
, allora
X = a : x(T
n
(e, a, z). Basta quindi prendere R = (a, z) : T
n
(e, a, z).
Viceversa se X = a N
n
: b((a, b) R, indicata con C
R
la funzione
caratteristica di R, e posto
(x) = z.C
R
(x, z) 0,
si ha subito che `e parziale ricorsiva, e X = Dom().
Esercizio. Si dimostri che lunione e lintersezione di due insiemi ricorsivamente
enumerabili X, Y N sono ricorsivamente enumerabili.
Consiglio: per X Y , siano e funzioni parziali ricorsive tali che
X = Dom() e Y = Dom(),
84
e siano e, i indici per e per rispettivamente. Sia
(x) = z.(C
T
1(e, x, z) C
T
1(i, x, z) 0).
Si dimostri che X Y = Dom().
Esercizio. Usando il Teorema del punto sso, dimostra che per ogni funzione
totale ricorsiva f(x) esiste un e tale che W
f(e)
= W
e
.
Esercizio. Dimostra che per ogni insieme ricorsivamente enumerabile W esiste
un W
e
tale che W
e
= W e. In particolare, prendendo W = , esiste un
indice e tale che W
e
= e.
Esercizio. Dimostra che per ogni insieme ricorsivamente enumerabile W es-
iste un insieme ricorsivamente enumerabile W
e
tale che e = min(W
e
), e che la
dierenza simmetrica fra W e W
e
sia nita.
Teorema 24.2 X N `e ricorsivo sse sia che X che NX sono ricorsivamente
enumerabili.
Dimostrazione. Abbiamo gi`a dimostrato un verso del teorema, per cui dimos-
triamo laltro verso.
Siano e, i tali che X = W
e
e N X = W
i
. Sia:
F(x) = z.(C
T
1(e, x, z) C
T
1(i, x, z) 0).
Per ogni x, se x X = W
e
esiste uno z tale che T
1
(e, x, z), e se x NX = W
i
,
esiste uno z tale che T
1
(i, x, z). Quindi per ogni x esiste uno z tale che
C
T
1(e, x, z) C
T
1(i, x, z) = 0.
Pertanto F `e totale ricorsiva.
Mostriamo che C
T
1(e, x, F(x)) `e la funzione caratteristica di X.
Dalla denizione di F segue che per ogni x, una ed una sola fra C
T
1(e, x, F(x))
e C
T
1(i, x, F(x)) si annulla.
Se C
T
1(e, x, F(x)) = 0, esiste uno z tale che T
1
(e, x, z), e quindi x W
e
= X.
Se C
T
1(i, x, F(x)) = 0, x W
i
= N X, e quindi non esiste alcuno z tale che
T
1
(e, x, z). Pertanto, C
T
1(e, x, F(x)) = 1.
Ne segue che C
T
1(e, x, F(x)) `e la funzione caratteristica di X.
85
Lintuizione comune del concetto di insieme ricorsivamente enumerabile `e quello
di insieme del cui sia possibile elencare gli elementi attraverso una funzione
totale ricorsiva. Questo concetto intuitivo `e formalmente diverso dalla nostra
denizione di insieme ricorsivamente enumerabile. Vedremo per`o nel prossimo
teorema che le due denizioni sono equivalenti.
Teorema 24.3 Un insieme X N `e ricorsivamente enumerabile sse o X =
o esiste una funzione totale ricorsiva f tale che
X = Range(f)
def
= f(n) : n N.
Dimostrazione. . Sia X ,= , e sia a X. Per un teorema precedente,
esiste una relazione ricorsiva R(x, y) tale che
() X = x : yR(x, y).
Ricordando che
1
e
2
sono le funzioni primitive ricorsive che invertono la
funzione pseudocoppia (x, y), deniamo una funzione ricorsiva f per casi:
f(u) =
_
1
(u) se R(
1
(u),
2
(u))
a altrimenti
Ovviamente, f `e totale ricorsiva, per cui basta dimostrare che X = Range(f).
Dimostriamo la doppia inclusione.
Se x X, allora esiste un y tale che R(x, y). Posto allora u = (x, y), axe
R(
1
(u),
2
(u)), onde f(u) = x, e x Range(f).
Se x Range(f), o x = a, e allora x = a X per ipotesi, oppure
esiste un u tale che x =
1
(u), e R(
1
(u),
2
(u)). Ma allora per la (),
x =
1
(u) X.
Questo completa la dimostrazione di .
. Poich`e la funzione vuota `e parziale ricorsiva, se X = allora X `e ricorsi-
vamente enumerabile. Supponiamo ora X = Range(f) con f totale ricorsiva.
Ricordo che la funzione [ x y [ (valore assoluto della dierenza fra x e y) `e
primitiva ricorsiva. Sia ora
(x) = z. [ x f(z) [ 0.
Per ogni x N, (x) `e denita sse esiste uno z tale che [ xf(z) [= 0 sse esiste
uno z tale che x = f(z) sse x Range(f).
Quindi Dom() = Range(f) = X, e X `e ricorsivamente enumerabile.
86
Dimostriamo ora lesistenza di insiemi ricorsivamente enumarabili ma non ri-
corsivi. Bench`e negativo, questo risultato ha una grande importanza in log-
ica. Vi sono infatti molti problemi per i quali esiste un algoritmo di ricerca
della soluzione tale che, se la soluzione esiste, lalgoritmo la calcola, ma se tale
soluzione non esiste, lalgoritmo potrebbe non accorgersene, e mandare avanti la
ricerca allinnito. Dimostrare la non esistenza di una soluzione consentirebbe
un enorme risparmio di tempo (se sappiamo che la soluzione non c`e, `e inutile
cercarla). Questi problemi corrispondono in modo naturale ad insiemi ricorsi-
vamente enumerabili ma non ricorsivi. Vediamo qualche esempio:
Data una formula, determinare se essa `e dimostrabile o meno nel calcolo
dei predicati puro. In questo caso, una soluzione del problema `e una
dimostrazione della formula. Si pu`o dimostrare che la relazione D denita
da
D(x, y) sse x codica una dimostrazione della formula codicata da y
`e primitiva ricorsiva. Per ogni formula , indichiamo con
la sua codi-
ca. Per decidere se `e un teorema, basta determinare se esiste un x tale
che D(x,
).
Intuitivamente, possiamo provare con x = 0, x = 1, . . . , x = n, . . . nch`e
non troviamo un n tale che D(n,
).
Se `e un teorema, prima o poi troveremo un tale n, ma se non lo `e la
ricerca prosegue allinnito.
Data unequazione diofantea
P(x, y) = Q(x, y)
con P, Q polinomi a coecienti in N, determinare, per ogni scelta dei
parametri x =a, se lequazione nelle sole y
P(a, y) = Q(a, y)
ha soluzioni in N o no.
Data una n-upla di numeri naturali a, per decidere se lequazione
P(a, y) = Q(a, y)
ha soluzioni in N posso enumerare enumerare tutte le possibili m-uple y
in base allordine delle loro codiche, e via via sostituirle nellequazione
nch`e non trovo una soluzione.
87
Se lequazione ha soluzione il procedimento termina, ma se non ha soluzioni,
la ricerca prosegue allinnito.
Il problema di deteminare se esista o meno un algoritmo che decida, data
una qualsiasi equazione diofantea, se essa ha soluzioni o meno in N, cos-
tutuisce il Decimo Problema di Hilbert. Il problema `e stato risolto nega-
tivamente da Matjiasiewicz.
Dati due numeri naturali e ed n, voglio determinare se
e
`e denita su n.
Se
e
(n) `e denita, me ne accorgo, perch`e prima o poi mandando avanti
i clacoli la computazione di
e
(n) termina.
Se per`o
e
(n) non `e denita, la computazione procede allinnito.
In questo caso, una soluzione del problema:
e
(n) `e denita? `e costituita
da una (eventuale) codica dellalbero di computazione, cio`e da uno z tale
che T(e, n, z).
Si vede facilmente che gli insiemi a cui abbiamo fatto riferimanto negli esempi
precedenti, cio`e:
Linsieme T = y : xD(x, y),
Linsieme S = (a) : y(P(a, y) = Q(a, y)
Linsieme (e, n) : zT(e, n, z)
sono ricorsivamente enumerabili. Daltra parte, sembra dicile a prima vista
trovare un algoritmo per decidere lappartenenza agli insiemi suddetti. Si pu`o
dimostrare che un tale algoritmo non esiste per nessuno degli insiemi citati, in
quanto nessuno di tali insiemi `e ricorsivo.
Un metodo generale per trovare risultati negativi, che nel nostro caso serve per
determinare insiemi ricorsivamente enumerabili ma non ricorsivi, `e costituito
dal Lemma Diagonale di Cantor.
Lemma 24.4 (Lemma Diagonale di Cantor). Sia R una relazione binaria su
un insieme (o su una classe) U. Sia per ogni a U, R
a
= b U : bRa, e sia
D = x U : (xRx). Allora per ogni a U, D ,= R
a
.
Dimostrazione. Dalla denizione di D e di R
a
segue che per ogni a U
risulta: a D sse a / R
a
. Quindi per ogni a U, a appartiene alla dierenza
simmetrica di D e R
a
, per cui D ,= R
a
.
Prima di applicare il Lemma alla costruzione di un insieme ricorsivamente enu-
merabile ma non ricorsivo, vediamo en passant qualche altra interessante appli-
cazione del Lemma stesso:
88
Paradosso di Russell. Sia xRy sse x y. Quindi per ogni insieme a,
R
a
= x : x a = a.
Dal Lemma di Cantor segue allora che per ogni insieme a la classe di
Russell D = x : x / x = x : (xRx) `e diversa da R
a
= a. In altre
parole, la classe di Russell `e una classe propria.
Sia F una funzione da un insieme X alla famiglia T(X) dei sottoinsiemi
di X. Sia, per ogni x, y X, xRy sse x F(y). Quindi per ogni a X `e
R
a
= F(a). Posto
D = x X : (xRx) = x X : x / F(x),
si ha che D `e un sottoinsieme di X diverso da F(a) per ogni a X.
Quindi F non `e suriettiva. Abbiamo quindi dimostrato che non esiste
alcuna funzione suriettiva (quindi a fortiori nessuna biiezione) da X a
T(X).
Sia
(n)
: n N un insieme numerabile di numeri reali in [0, 1) le cui
cifre decimali siano tutte 0 oppure 1, e sia, per ogni n, m N,
(n)
m
la
m-esima cifra dellespansione decimale di
(n)
.
Deniamo, per ogni n, m N:
nRm sse
(n)
m
> 0.
Allora per ogni n risulta: R
n
= m :
(n)
m
> 0. Posto al solito
D = n : (nRn),
si ha per il Lemma Diagonale di Cantor, che per ogni n `e D ,= R
n
.
Deniamo ora un numero reale = 0, a
0
. . . a
n
. . ., ponendo a
i
= 1 se
i D, e a
i
= 0 altrimenti.
Per ogni n si ha:
a
n
= 0 sse n / D sse n R
n
sse
(n)
n
,= 0.
Quindi avendo le n-esime cifre decimali diverse (ed essendo esclusi casi
patologici come quello in cui le cifre decimali sono uguali a 9 da un certo
punto in poi), ,=
(n)
per ogni n. Questo dimostra che linsieme dei
numeri reali in [0, 1) le cui cifre decimali siano tutte < 2 `e non numerabile.
A fortiori, linsieme di tutti i numeri reali `e non numerbaile.
89
Denizione 24.5 Deniamo:
K = n N : n W
n
.
Teorema 24.6 K `e ricorsivamente enumerabile, ma non ricorsivo.
Dimostrazione. Deniamo: (x) =
x
(x).
Evidentemente `e parziale ricorsiva. Inoltre, si ha:
x Dom() sse x W
x
sse x K.
Quindi K = Dom() `e ricorsivamente enumerabile.
Per dimostrare che K non `e ricorsivo, deniamo, per ogni n, m N,
nRm sse n W
m
.
Sia ha per ogni a N,
R
a
= n N : n W
a
= W
a
,
D = n N : (nRn) = N K.
Il Lemma Diagonale di Cantor assicura che per ogni a N, `e D ,= R
a
, e quindi
D ,= W
a
. Quindi D non `e ricorsivamente enumerabile.
Ne segue che K non `e ricorsivo, altrimenti il suo complemento D = N K
sarebbe ricorsivamente enumerabile (per un teorema precedente).
Concludiamo il capitolo con alcuni esercizi di ricapitolazione.
Esercizio. Sia X N tale che esiste una funzione totale ricorsiva debolmente
crescente f (cio`e f(x) f(x+1) per ogni x) tale che X = Range(f). Dimostra
che X `e ricorsivo.
Consiglio: supponiamo senza perdita di generalit`a X innito. Essendo X ri-
corsivamente enumerabile (perch`e?), basta dimostrare che il suo complemento
`e ricorsivamente enumerabile. A tale ne, si osservi che
N X = z : u(f(u) > z&v < u(f(v) ,= z)),
e che la relazione
R(z, u) f(u) > z&v < u(f(v) ,= z)
`e ricorsiva.
90
Esercizio. Si dimostri che ogni insieme ricorsivamente enumerabile innito X
ha un sottoinsieme ricorsivo innito.
Consiglio: sia f totale ricorsiva tale che X = Range(f). Deniamo per recur-
sione:
g(0) = f(0) g(x + 1) = maxg(x), f(x + 1)
Si dimostri che g `e debolmente crescente, e che Range(g) `e un sottoinsieme
innito di X. Si applichi lesercizio precedente.
Esercizio. Si denisca creativo un insieme ricorsivamente enumerabile X N
per cui esiste una funzione totale ricorsiva f(x) tale che se W
x
X = allora
f(x) / X W
x
.
[Lidea intuitiva che sta dietro a questo concetto `e quella di insieme ricorsiva-
mente enumerabile costruttivamente non ricorsivo. Infatti un insieme ricorsi-
vamente enumerabile `e ricorsivo sse il suo complemento `e ricorsivo. Ora se X
`e creativo, la funzione ricorsiva f testimonia che il complemento di X non `e
ricorsivamente enumerabile (e quindi che X non `e ricorsivo): dato W
x
disgiunto
da X, f(x) costruisce un elemento che non `e n`e in X n`e in W
x
, testimoniando
cos` il fatto che W
x
non `e il complemento di X].
Si dimostri che linsieme K = x : x / W
x
`e creativo.
Esercizio. Si dimostri che per ogni insieme creativo X esiste un sottoinsieme
innito ricorsivamente enumerabile (e quindi anche un sottoinsieme ricorsivo
innito, grazie ad un esercizio precedente) Y tale che X Y = .
Consiglio: si dimostri preliminarmente che esiste una funzione totale ricorsiva
g(x, y) tale che per ogni x, y sia W
g(x,y)
= W
x
y. Sia poi f totale ricorsiva
tale che se X W
z
= allora f(z) / X W
z
. Sia e un indice per linsieme
vuoto. Deniamo h(y) per recursione:
h(0) = e h(n + 1) = g(h(n), f(h(n))).
Per induzione su n si dimostri che h(n) `e indice di un insieme di n elementi
disgiunto da X, e che
W
h(0)
. . . W
h(n)
. . . .
Si dimostri poi che Range(f(h(x))) `e linsieme desiderato.
Esercizio. Si dimostri che linsieme degli indici delle funzioni totali ricorsive
non `e ricorsivamente enumerabile.
Consiglio: Sia per assurdo f totale ricorsiva tale che Range(f) sia linsieme
degli indici delle funzioni totali ricorsive. Sia g(x) =
f(x)
(x) + 1. Si dimostri
che g `e totale ricorsiva, e che nessun indice di g `e in Range(f), il che costituisce
una contraddizione.
Esercizio. Chiamiamo graco di una funzione parziale da N
k
a N linsieme
G
= (x, y) : (x) = y.
Si dimostri che `e parziale ricorsiva sse il suo graco G
`e ricorsivamente
enumerabile. Si dimostri poi che se `e totale ricorsiva, allora G
`e ricorsivo.
91
Consiglio, per quanto riguarda il primo enunciato: se `e parziale ricorsiva,
indicato con e un suo indice, si ponga
(x) = z.C
T
k(e, x) 0,
(x, y) =[ U((x)) y [,
dove U(z) `e la funzione che abbiamo denito nella dimostrazione del Teorema
di Forma Normale, tale cio`e che
k
e
(x) = U(z.T
k
(e, x, z) 0).
Si dimostri che `e parziale ricorsiva, e che G
= Dom().
Viceversa, sia G
= Dom(
k+1
e
), ove
k+1
e
`e la funzione parziale ricorsiva di k + 1 argomenti di indice e. Si dimostri
che per ogni x `e:
(x) =
1
(z.C
T
k+1(e, x,
1
(z),
2
(z)) 0).
25 Il Programa di Hilbert
Il Programma di Hilbert si proponeva di dare una sistemazione denitiva ai
fondamenti della matematica attraverso i sistemi formali. Molti sono gli ostacoli
che incontriamo se vogliamo fondare la matematica su basi certe:
(a) La denizione dei concetti matematici rimanda necessariamente ad altri
concetti. Infatti la denizione di concetto C di regola ha la forma: Un C
`e un C
, etc.
E chiaro che un simile processo prosegue allinnito,
e per uscire da questo labirinto nelle scuole secondarie ci dicevano che
alla ne ci si riconduce ad enti primitivi che non hanno bisogno di essere
deniti perch`e autoevidenti. [Commento di F.M.: Nondum matura est!]
(b) Proprio lapparente evidenza, pu`o spesso condurre allerrore. Gli esempi
non mancano: Giuseppe Peano era un maestro nel trovare esempi strani
che confutavano quelle che sembravano verit`a evidenti. Ad esempio, sem-
bra evidente che se si traccia una curva continua nel piano, linsieme dei
suoi punti debba avere area 0: se stiriamo la curva no a renderla una
linea otteremo o un segmento o una semiretta o una retta, in ogni caso un
insieme di area 0. Ebbene, Peano dimostr`o che esistono curve continue che
riempiono un quadrato arbitrariamente grande, e quindi la misura piana
dei punti di una curva pu`o essere arbitrariamente grande. Di fronte a tali
esempi intuitivamente paradossali, viene da chiedersi:
Esistono criteri per stabilire se un ragionamento matematico sia corretto
o meno, e quindi per avere la certezza che la conclusione del ragionamento
sia vera?
92
(c)
E evidente che il numero delle scoperte matematiche in qualsiasi momento
`e nito, poich`e il cervello umano ha una memoria nita. Quindi nessun
uomo (e anche nessun computer, dati i limiti di memoria) potr`a mai sco-
prire tutte le verit`a matematiche. Neppure la collettivit`a degli uomini
ci riuscir`a mai, poich`e linsieme degli uomini `e nito, e le conoscenze di
ciascuno di essi costituiscono un insieme nito. Ci`o non toglie a pri-
ori la possibilit`a teorica che un uomo in grado di vivere in eterno o un
computer con memoria arbitrariamente grande possano scoprire tutte le
vaerit`a matematiche. Formulata in modo pi` u preciso, la domanda `e la
seguente:
Si pu`o scrivere un programma che, qualora non avesse limiti di tempo e di
memoria, sarebbe in grado di risolvere qualunque problema matematico?
(d) La scoperta di risultati antiintuitivi legati allesistenza di insiemi inniti,
ad esempio il paradosso di Banach Tarski che aerma che `e possibile
sezionare una sfera in un numero nito di parti e poi rimettere insieme le
parti con movimenti rigidi in modo da ottenere una sfera pi` u grande (o pi` u
piccola, facendo il processo a rovescio) poneva il problema delladabilit`a
della matematica dellinnito, soprattutto quando luso dellinnito `e ab-
binato alluso di metodi non costruttivi, come lassioma di scelta. Sorge
allora il seguente problema:
Possiamo darci della matematica dellinnito, senza paura che porti a
contraddizioni, oppure `e pi` u prudente limitarci alla matematica del nito?
La domanda ha interesse non solo teorico: anche materie decisamente ap-
plicate come la sica utilizzano in modo pesante la matematica dellinnito.
Il Programma di Hilbert prevedeva di arrivare ad una risposta denitiva a tutte
questi problemi e a tutte queste domande attraverso i sistemi formali.
(a) Gli oggetti matematici sono deniti implicitamente dagli assiomi del sis-
tema formale. Una volta stabiliti gli assiomi per certe enti matematici,
questi ultimi possono essere implicitamente deniti come oggetti che sod-
disfano gli assiomi. Lunico requisito che si deve porre perch`e un insieme
di assiomi denisca qualcosa `e che da tale insieme non si possa dedurre
una contraddizione attraverso regole logiche. Il Teorema di Completezza
di Godel dir`a poi che questa idea era ragionevole, in quanto ogni insieme di
assiomi che non porta ad una contrddizione logica pu`o essere soddisfatto
in un opportuno modello.
(b) Il problema della correttezza dei ragionamenti matematici pu`o essere risolto
trovando un insieme di regole formali che simulino il ragionamento logico.
Fatto questo, per dimostrare una propriet`a di un concetto matematico,
baster`a dedurla dagli assiomi che deniscono il concetto attraverso le re-
gole di inferenza. Si intende che la verica della correttezza delle derivazioni
deve poter essere adata ad un agente meccanico.
93
(c) Evidentemente il Punto (c), la costruzione di un programma in grado
(teoricamente) di risolvere ogni problema matematico, si presentava molto
spinoso. Tuttavia la teoria degli insiemi, che era riuscita a unicare le varie
discipline matematiche e i vari concetti matematici riducendoli tutti al
concetto di insieme sembrava in grado di risolvere il problema: la speranza
era che ogni enunciato matematico potesse essere o dimostrato o refutato
usando le regole logiche e gli assiomi della teoria degli insiemi. Il fatto che
alcuni problemi, come lipotesi del continuo di Cantor non fossero stati
ancora risolti non era necessariamente un motivo di grave preoccupazione:
forse sarebbe bastato aspettare qualche anno, e qualcuno avrebbe risolto
anche quel problema.
(d) Hilbert era convinto che solo la matematica del nito fosse autoevidente
e quindi sicuramente immune da contraddizioni. (Questultima poteva
anche trattare insiemi potenzialmente inniti, come i numeri naturali, pen-
sati per`o come procedimento per generarli, ma non come totalit`a preesistente).
Tuttavia, Hilbert si rendeva conto che linnito costituiva e costituisce il
sale della matematica, e quindi si proponeva di salvare la matematica
dellinni- to giusticandola con i mezzi sicuri ed adabili della matem-
atica del nito.
Anche per quanto riguarda le propriet`a, Hilbert distingueva fra propriet`a
astratte, proprie della matematica dellinnito, e propriet`a reali, tipiche
della matematica nitistica. Queste ultime sono quelle propriet`a che pos-
sono essere espresse tramite una formula del tipo x
1
. . . x
n
P(x), dove
P `e un predicato primitivo ricorsivo. Esse sono chiusure universali di
propriet`a che fanno riferimento solo ad una parte nita delluniverso dei
numeri.
) = V al(t) +V al(t
).
(iv) V al(t t
) = V al(t) V al(t
).
dove le occorrenze di + e nei membri a sinistra delle (i) . . . (iv) denotano i
simboli del linguaggio di Q per la somma e il prodotto rispettivamente, mentre
le occorrenze di + e nei membri di destra denotano la somma e il prodotto in
N.
Lemma 26.5 Siano t, t
) allora Q t = t
, e se V al(t) ,= V al(t
) allora
Q (t = t
).
(c) Se V al(t) V al(t
) allora Q t t
) allora
Q (t t
).
Dimostrazione. (a). Ragioniamo per induzione sulla complessit`a di t.
Se t = 0 lasserto `e ovvio dalla denizione di V al. Se t = S(t
) e V al(t) = n,
allora V al(t
) = n, cio`e lasserto.
Se t = t
+ t
= V al(t
) e h
= V al(t
) risulta
h
+ h
= h
e Q t
= h
, da cui
tramite gli assiomi di uguaglianza si deduce Q t
+t
= h
+h
. Daltra parte,
essendo h
+ h
+ h
= n, ed inne
Q t
+t
= n.
Il caso in cui t = t
`e simile.
(b). Se V al(t) = V al(t
), allora posto
n = V al(t) = V al(t
),
per la parte (a) si ha che
Q t = n e Q t
= n,
da cui Q t = t
.
Se V al(t) ,= V al(t
), allora posto
n = V al(t) e m = V al(t
),
`e n ,= m. Quindi per il Lemma 26.3 (o),
Q (n = m).
100
Inoltre per la parte (a),
Q t = n e Q t
= m.
Dalle ultime formule si deduce: Q (t = t
).
(c). Sia n = V al(t), m = V al(t
). Per (a)
Q t = n, e Q t
= m.
Se V al(t) V al(t
.
Se m < n allora, ancora per il Lemma 26.3,
Q (n m).
Da queste e dal fatto che
Q t = n, e Q t
= m
si deduce che Q (t t
).
Corollario 26.6 Sia N il modello standard di numeri naturali con lordine ,
con la somma, il prodotto, loperazione di successore e lo zero. Per ogni formula
atomica chiusa si ha: se N [= allora Q , e se N [= allora Q .
Dimostrazione. Una formula atomica ha o la forma t = t
o la forma t t
,
con t, t
), e N [= t t
sse
V al(t) V al(t
o del tipo x n
.
Per il Corollario 26.8, nel primo caso `e dimostrabilmente equivalente alla
formula
(0)&. . . &
(0) . . .
(n).
Possiamo quindi trasformare i passi induttivi corrispondenti ai quanticatori
limitati in passi induttivi corrispodenti a & e a , passi induttivi che sono gi`a
stati trattati. Questo conclude la dimostrazione di (i).
(ii). Induzione sulla denizione di . Se `e
0
, lasserto segue da (i). I passi
induttivi corrispondenti ai connettivi & e si trattano come nella dimostrazione
di (i) (solo relativamente al verso: se N [= , allora Q ).
I passi induttivi corrispondenti ai quanticatori limitati si riducono a passi in-
duttivi corrispondenti a & e come nella dimostrazione di (i).
Per quanto riguarda inne il passo induttivo corrispondente a , sia x
,
e supponiamo N [= . Allora esiste un n N tale che N
(n), e quindi Q x
, ossia Q .
Osservazione. Possiamo chiederci:
103
(i) Perch`e per le istanze chiuse di
1
formule si riesce solo a dimostrare una
delle due implicazioni (se N [= allora Q ) e non laltra (se N ,[=
allora Q ?)
(ii) Perch`e nella dimostrazione di (ii) non si pu`o imitare la dimostrazione del
passo induttivo corrispondente a fatta nella dimostrazione di (i)?
Le risposte a queste domande sono le seguenti:
(i) Il verso: se N ,[= allora Q salta nel passo : supponiamo se N ,[= ,
con x
(n).
Tuttavia dallinsieme innito di formule
(n) : n N
non possiamo dedurre Q x
.
(ii) Lenunciato (i) consta di due parti, una positiva (se N [= allora Q )
ed una negativa (se N ,[= allora Q ).
Nei passi induttivi corrispondenti a & e a si utilizzano per la parte
positiva la parte positiva dellipotesi induttiva, e per la parte negativa la
parte negativa dellipotesi induttiva. Quindi se ho a disposizione solo la
parte positiva dellipotesi induttiva, posso completare la parte positiva del
passo induttivo.
Invece il passo induttivo corrispondente a utilizza per la parte positiva
la parte negativa dellipotesi induttiva, e viceversa, e quindi se ho a dispo-
sizione solo la parte positiva dellipotesi induttiva, non posso completare
il passo induttivo (sempre per la parte positiva) corrispondente a .
Il Lemma 26.11 costituisce un risultato di completezza relativamente alle istanze
chiuse di
1
formule: se unistanza chiusa di una
1
formula `e vera in N, allora
`e dimostrabile in Q.
Questa propriet`a (detta
1
completezza) vale ovviamente per qualunque esten-
sione T di Q.
Viceversa, se unistanza chiusa di una
1
formula `e dimostrabile in Q, allora
N [= . Ci`o `e dovuto al fatto che N [= Q, cio`e in N sono veri tutti gli assiomi
di Q (e quindi tutti i teoremi di Q).
Questo secondo risultato non `e pi` u vero per tutte le estensioni di Q, ad esempio
`e falso in una estensione non coerente di Q.
Denizione 26.12 Una teoria T nel linguaggio di Q si dice
1
sound se per
ogni istanza chiusa di una
1
formula, se T , allora N [= .
104
27 Denibilit`a
Denizione 27.1 Una formula si dice stettamente
1
se `e del tipo x
0
,
ove
0
`e una
0
formula.
Lemma 27.2 Per ogni
1
formula esiste una formula
strettamente
1
tale che N [=
.
Dimostrazione. Induzione sulla denizione della classe delle
1
formule.
Se `e una
0
formula, allora N [= v, dove v `e una variabile che
non compare in , e quindi basta prendere
v.
Sia &. Per ipotesi induttiva esistono
0
formule
0
e
0
, e variabili u
e v (che senza perdita di generalit`a possiamo supporre distinte, altrimenti
ridenominiamo una delle due) tali che
N [= u
0
e N [= v
0
.
Allora, indicata con w una variabile che non compare n`e in n`e in
0
n`e
in
0
, si ha:
N [= wv wu w(
0
&
0
),
e wv wu w(
0
&
0
) `e strettamente
1
.
Il caso `e trattato in modo simile.
Supponiamo x. Per ipotesi induttiva esistono una
0
formula
0
ed una variabile y (senza perdita di generalit`a posso supporre che y non
occorra in ) tale che N [= y
0
. Ma allora si ha:
N wy w
0
,
ove w `e una variabile che non compare n`e in n`e in
0
. Quindi basta
prendere
wy w
0
.
Il caso x y `e trattato in modo simile al precedente.
Supponiamo inne u y. Per ipotesi induttiva esistono una
0
formula
0
ed una variabile z (senza perdita di generalit`a posso supporre
che z non occorra in ) tale che N [= z
0
.
Sia w una variabile che non occorre n`e in n`e in
0
. Aermo che
N [= wu yz w
0
.
Per quanto riguarda il verso dicile () dellequivalenza, evidenziamo le
variabili libere di , di e di
0
per maggior chiarezza:
(x, y) u y(x, u),
105
N [= (x, u) z
0
(x, u, z).
Siano a, k N, tali che
N [= (a, k),
ove a denota a
1
, . . . , a
n
.
Allora per ogni i k esiste un h
i
tale che
N [=
0
(a, i, h
i
).
Posto h = maxh
0
, . . . , h
k
, ho che per ogni i k esiste h
i
h tale che
N [=
0
(a, i, h
i
).
In conclusione,
N [= wu kz w
0
(a, u, z).
Per larbitrariet`a di k, a, questo conclude la dimostrazione. Basta quindi
prendere
wu yz w
0
.
Denizione 27.3 Sia un insieme di formule del linguaggio di Q, e sia X
N
n
. X si dice denibile se esiste una formula (x) tale che per ogni
a N
n
si abbia:
a X sse N [= (a).
Una funzione parziale si dice denibile se il suo graco `e denibile.
Lemma 27.4 Sia X N
n
, e sia una funzione parziale da N
n
a N.
(i) Se X `e
0
denibile, allora X `e primitivo ricorsivo.
(ii) Se X `e
1
denibile, allora X `e ricorsivamente enumerabile.
(iii) Se `e
1
denibile, allora `e parziale ricorsiva.
Dimostrazione. (i). Le interpretazioni dei termini di Q in N sono funzioni
primitive ricorsive, essendo composizioni di +, e S. Per alcuni esercizi prece-
denti, se f(x) e g(x) sono primitive ricorsive, allora gli insiemi
a : f(a) = g(a), e a : f(a) g(a)
sono primitivi ricorsivi.
Questo dimostra che le formule atomiche deniscono insiemi primitivi ricorsivi.
Inne, essendo la classe delle relazioni primitive ricorsive chiusa per unioni nite,
intersezioni nite e complementazione, ed essendo altres` chiusa per quantica-
tori limitati, concludiamo la classe delle formule che deniscono insiemi primitivi
106
ricorsivi `e chiusa per &, , e per quanticazione limitata. Quindi ogni insieme
0
denibile `e primitivo ricorsivo.
(ii) Per il Lemma 27.2, se X `e
1
denibile, esso `e anche strettamente
1
denibile. Esiste quindi una
0
formula
0
(x, y) tale che
X = a : N [= y
0
(a, y).
Poniamo
Y = (a, b) : N [=
0
(a, b).
Per il punto (i) di questo lemma, Y `e primitivo ricorsivo. Inoltre
X = a : b((a, b) Y .
Indicata con C
Y
la funzione caratteristica di Y , otteniamo che
X = a : bC
Y
((a, b) = 0,
e quindi X = Dom(z.C
Y
(x, z) 0).
Pertanto X `e ricorsivamente enumerabile.
(iii). Se `e
1
denibile, il suo graco, essendo
1
denibile, `e ricorsivamente
enumerabile. Per un esercizio precedente, una funzione il cui graco `e ricorsi-
vamente enumerabile `e parziale ricorsiva.
Dimostreremo che i punti (ii) e (iii) del Lemma 27.4 possono essere invertiti,
ossia che ogni insieme ricorsivamente enumerabile `e
1
denibile e che ogni
funzione parziale ricorsiva `e
1
denibile.
Teorema 27.5 Ogni funzione parziale ricorsiva `e
1
denibile.
Dimostrazione. Per induzione sulla denizione delle funzioni parziali ricorsive,
mostreremo che `e possibile associare ad ogni funzione parziale ricorsiva da N
n
a N una
1
formula F
(x, y) x = x&y = 0.
Se `e la funzione successore, basta prendere
F
(x, y) y = S(x).
Se `e la funzione proiezione U
n
i
, basta prendere
F
(x, y) x
1
= x
1
&. . . &x
n
= x
n
&y = x
i
.
107
Supponiamo che (x) sia denita per composizione:
(x) = g(h
1
(x), . . . , h
k
(x)).
Abbreviamo per comodit`a y
1
, . . . , y
k
con y, e y
1
. . . y
k
con y.
Per ipotesi induttiva esistono
1
formule
F
h
1
(x, y
1
), . . . , F
h
k
(x, y
k
), F
g
(y, z)
che deniscono i graci di h
1
, . . . , h
k
e g rispettivamente. Basta allora prendere
F
(x, z) y(F
h
1
(x, y
1
)&. . . &F
h
k
(x, y
k
)&F
g
(y, z)).
Supponiamo ora che sia denita da g(x, z) con il operatore, cio`e che
(x) = z.g(x, z) 0.
Per ipotesi induttiva esiste una
1
formula F
g
(x, z, y) che denisce il graco di
g. Ricordando che (x) = z sse g(x, z) = 0 e per ogni v < z, g(x, v) `e denita e
g(x, v) ,= 0, basta prendere
F
(x, z) F
g
(x, z, 0)&v < zw(F
g
(x, v, w)&(w = 0))
dove v < z `e unabbreviazione per
v z(((v = z)) ).
Abbiamo lasciato per ultimo il caso pi` u complicato in cui (x, y) `e denita per
recursione:
(x, 0) = h(x) (x, y + 1) = g(x, y, (x, y)).
Per ipotesi induttiva esistono
1
formule F
h
(x, z) e
F
g
(x, u, v, z) che deniscono i graci di h e g rispettivamente.
Lidea di partenza per dimostrare che `e
1
denibile consiste nellosservare
che luguaglianza (x, y) = z `e equivalente alla seguente condizione:
() Esiste una sequenza nita s = (s
0
, . . . , s
y
) (questa volta `e pi` u comodo
far partire gli indici da 0 anzicch`e da 1) tale che:
(a) s
0
= h(x)
(b) s
y
= z
(c) Per ogni i < y, s
i+1
= g(x, i, s
i
).
Infatti si vede per induzione che se una tale sequenza s esiste, allora per ogni i
y, (x, i) = s
i
. Tutto sta allora nellesprimere la condizione () nel linguaggio
di Q. Utilizziamo innazitutto il seguente:
108
Teorema cinese del resto. Dati a
0
, . . . , a
n
a due a due primi fra loro, e
s
0
< a
0
, . . . , s
n
< a
n
, esiste un (unico) S < a
0
a
1
. . . a
n
tale che per
i = 0, . . . , n sia
Resto(B, a
i
) = s
i
,
ove al solito Resto(x, y) denota il resto della divisione di x per y.
Omettiamo la dimostrazione, che viene lasciata per esercizio (vedi esercizio suc-
cessivo).
Lemma 27.6 Presi comunque s
0
, . . . , s
n
, e posto:
M = maxs
0
, . . . , s
n
, n, A = M!,
per i = 0, . . . , n i numeri a
i
= A (i + 1) + 1 sono a due a due primi fra loro, e
per ogni i `e s
i
< a
i
.
Dimostrazione. Scriviamo x [ y per esprimere che x divide y, ossia che esiste
uno z N tale che z x = y.
Sia per assurdo p un numero primo tale che per certi 0 i < j n si abbia:
p [ A (i + 1) + 1 e p [ A (j + 1) + 1.
Allora, p [ A (j + 1) + 1 (A (i + 1) + 1) = A(j i).
Essendo p primo, o p [ A, oppure p [ j i.
Poich`e A `e multiplo di tutti i numeri n, j i [ A, e quindi in ogni caso p [ A.
Ma essendo a
i
= A (i + 1) + 1, se p [ A, il resto della divisione di a
i
per p `e 1,
e p non pu`o dividere a
i
, contro lipotesi.
La disuguaglianza s
i
< a
i
`e ovvia.
Ritorniamo alla dimostrazione del teorema.
Lemma 27.7 La condizione () formulata nella parte precedente della dimostrazione
`e equivalente alla seguente condizione:
() Esistono A, B tali che
(d) Resto(B, A 1 + 1) = h(x).
(e) Resto(B, A (y + 1) + 1) = z.
(f ) Per i < y, si ha: Resto(B, A (i +2)+1) = g(x, i, Resto(B, A (i +1)+1)).
Dimostrazione. Supponiamo vericata la (). Posto per i = 0, . . . , y,
s
i
= Resto(B, A (i + 1) + 1),
la sequenza (s
0
, . . . , s
y
) soddisfa le condizioni (a), (b) e (c) della ().
109
Viceversa se (s
0
, . . . , s
y
) soddisfa le (a), (b) e (c) della (), se A, a
0
, a
1
, , a
n
sono deniti come nel Lemma 27.6 (con n = y) e se B `e il numero di cui il
teorema cinese del resto asserisce lesistenza, allora si ha per i = 0, . . . , y:
s
i
= Resto(B, 1 +A (i + 1)).
Se per i = 0, . . . , y sostituiamo nelle (a), (b) e (c) della () il valore s
i
con
Resto(B, A (i + 1) + 1), si ottengono le (d), (f) e (g), e quindi vale la ().
Osserviamo ora che la relazione
R(B, A, i, z) z = Resto(B, A (i + 1) + 1)
`e denibile nel linguaggio di Q tramite la
0
formula (B, A, i, z) riportata qui
sotto:
z < A (i +1) +1&w B(B = w (A (i +1) +1)) +z).
Riassumendo, abbiamo:
La condizione (a) si esprime tramite la
1
formula
0
(x, B, A) v
0
((B, A, 0, v
0
)&F
h
(x, v
0
)).
La condizione (b) si esprime tramite la
1
formula
1
(B, A, y, z) (B, A, y, z).
La condizione (c) si esprime tramite la
1
formula
2
(x, B, A) riportata
qui sotto:
i < yv
1
v
2
((B, A, i, v
1
)&(B, A, i +1, v
2
)&F
g
(x, i, v
1
, v
2
)).
Pertanto il graco di `e denito dalla
1
formula
F
(x, y, z) AB(
0
(x, B, A)&
1
(B, A, y, z)&
2
(x, B, A).
Questo conclude la dimostrazione.
Esercizio. Dimostra il teoreme cinese del resto.
Consiglio: dati a
0
, a
1
, , a
n
a due a due primi fra loro, e s
0
< a
0
, . . . , s
n
< a
n
,
poniamo
A = a
0
a
1
. . . a
n
.
Consideriamo la funzione
F : [0, A1] [0, a
0
1] . . . [0, a
n
1]
110
denita per ogni B [0, A1] da
F(B) = (Resto(B, a
0
), . . . , Resto(B, a
n
)).
Si dimostri che F `e iniettiva. Avendo linsieme di partenza e quello di arrivo la
stessa cardinalit`a, F `e suriettiva, e quindi esiste B < A tale che
F(B) = (b
0
, . . . , b
n
).
Teorema 27.8 Ogni insieme ricorsivamente enumerabile `e
1
denibile.
Dimostrazione. Sia X N
n
ricorsivamente enumerabile. Allora X `e il
dominio di una funzione parziale ricorsiva . Per il Teorema 27.5, il graco G
di `e
1
denibile. Sia F
(x, y) una
1
formula che denisce G in N. Allora,
essendo
Dom() = (x) : y((x, y) G
),
si ha che X = Dom() `e denito dalla
1
formula
yF
(x, y).
Denizione 27.9 Sia T una teoria nel linguaggio di Q, sia X N
n
e sia (x)
una formula. Diciamo che numera X in T sse
X = (a) : T (a).
Teorema 27.10 Sia T unestensione
1
sound di Q. Allora per ogni insieme
ricorsivamente enumerabile X N
n
esiste una
1
formula che numera X in
T.
Dimostrazione. Per il Teorema 27.5, esiste una
1
formula che denisce X
in N. Quindi per ogni a N si ha:
a X sse N [= (a).
Ora, (a) `e unistanza chiusa di una
1
formula. Quindi per il Lemma 26.11,
se N [= (a), allora Q (a) e quindi a fortiori T (a).
Viceversa, se T (a), essendo T una teoria
1
sound, N [= (a), e quindi
a X.Quindi
X = (a) : T (a).
111
28 Aritmetizzazione
Per dimostrare i teoremi di incompletezza occorre applicare propriet`a denite
su insiemi di numeri naturali, come quella di essere o non essere ricorsivo, a
insiemi di formule del linguaggio di Q. Il primo passo consiste nel codicare
gli oggetti sintattici (come le variabili, i termini, le formule, le dimostrazioni)
tramite numeri, che in omaggio a Kurt Godel, verranno detti anche numeri di
Godel.
Anche se lidea generale che tutto (anche ad esempio la Divina Commedia, le
Variazioni Goldberg di Bach, ma in linea teorica anche i quadri di Picasso o una
fotograa di Naomi Campbell) possa essere rappresentato tramite numeri pu`o
apparire stupefacente, tuttavia il principio generale `e semplice: si associa ad
ogni simbolo del linguaggio in questione (nel nostro caso il linguaggio di Q, nel
caso della Divina Commedia quello della lingua italiana del tardo Medio Evo,
nel caso delle Variazioni Goldberg il linguaggio musicale, e nel caso dei quadri
di Picasso o della foto di Naomi Campbell un linguaggio i cui elementi sono le
coordinate dei vari punti e un codice per ciascuna tonalit`a di colore) un numero
naturale, che costituir`a il numero di Godel di quel simbolo, e poi si codica ogni
stringa nita di simboli tramite la codica della stringa dei rispettivi numeri di
Godel. Anche se si perde limmediatezza (nessuno rimarrebbe in estasi di fronte
al numero di Godel delle Variazioni Goldberg), tuttavia `e possibile passare dalla
codica a ci`o che essa rappresenta attraverso un processo di decodica.
Nel caso del linguaggio di Q che a noi interessa in questo momento, possiamo
codicare i simboli come segue:
Innanzitutto ci riconduciamo ad un alfabeto nito, rappresentando ogni indice
n con n sbarre. Il nostro alfabeto consister`a allora dei seguenti simboli:
0, S, +, , ( (parentesi aperta), ) (parentesi chiusa), , (la virgola), v (simbolo con
cui iniziano le variabili), [ (sbarra usata per denotare lindice delle variabili), =,
, &, , , , , .
Ad ogni simbolo associamo il suo numero di Godel
= 2, S
= 3, +
= 4,
= 5, (
= 6 )
= 7, ,
= 8, v
= 9 [
= 10, =
= 11,
= 12, &
= 13,
= 14,
= 15,
= 16,
= 17,
= 18.
Sia
1
. . .
n
una sequenza nita di simboli del linguaggio di Q. La codica
di `e denita da
1
, . . . ,
n
.
(Si ricordi la codica delle stringhe nite di numeri denita precedentemente).
Quindi la codica di una variabile v
n
sar`a 9, 10, . . . , 10 (n occorrenze di 10).
Un termine (o una formula) `e una stringa nita che pu`o a sua volta avere come
elemento una variabile, che a sua volta `e una stringa nita. Per codicare
112
il termine (o la formula) basta scrivere la codica della stringa numerica dei
numeri di Godel degli elementi della stringa.
y e x
y, x
y e x
i
(x) e
i
(x), le funzioni che associano al numero di Godel di una formula
il numero di Godel di v
i
(v
i
rispettivamente).
(x) e (x), le funzioni che associano al numero di Godel di una formula il
numero di Godel della sua chiusura universale (rispettivamente: esisten-
ziale).
Num(x), la funzione che associa ad ogni n N il numero di Godel di n.
Sub(x, u, z), la funzione che associa ai numeri di Godel x di una formula
, v di una variabile v
i
e z di un termine t il risultato della sostituzione
in di ogni occorrenza libera di v
i
con t.
Denizione 28.1 Una teoria T si dir`a decidibile se linsieme T
dei numeri di
Godel dei teoremi di T `e ricorsivo. Altrimenti, T si dir`a indecidibile.
A questo punto siamo pronti per dimostrare il Teorema di Church.
Teorema 28.2 (Church 1936).
(i) Ogni estensione coerente T di Q `e indecidibile.
(ii) Il calcolo dei predicati (in un linguaggio che contiene quello di Q) `e inde-
cidibile.
114
Dimostrazione. Dimostriamo (i) nel caso particolare in cui T `e
1
sound (la
restrizione non `e molto forte, in quanto le teorie pi` u interessanti sono
1
sound).
Sappiamo (Corollario 27.10) che esiste una formula (x) che numera K in T.
Quindi per ogni n `e:
n K sse Sub(
, x
, Num(n)) T
.
Se T fosse decidibile, la funzione caratteristica C
T
(y) di T
, x
, Num(y))).
Se C
T
fosse ricorsiva, anche C
K
risulterebbe ricorsiva, e K sarebbe ricorsivo,
assurdo.
(ii). Da (i) segue che Q `e indecidibile. Sia P il calcolo dei predicati nel lin-
guaggio di Q, sia P
= x :
x P
.
Se P
, essendo data da C
Q
(x) = C
P
(
x)
sarebbe a sua volta ricorsiva, e quindi Q
= y; xDim
T
(x, y).
Osserviamo ora che T sse la chiusura universale di `e dimostrabile in
T. Quindi non `e dimostrabile in T sse la chiusura universale di non
`e dimostrabile in T. Essendo T completa, ci`o accade sse la negazione della
chiusura universale di `e dimostrabile in T. Quindi il complemento (T
)
c
di
T
`e denito da
(T
)
c
= x : Form(x) x : Form(x)&
(x) T
.
Essendo T
ricorsivamente enumerabile, (T
)
c
`e a sua volta ricorsivamente enu-
merabile (essendo unione di due insiemi ricorsivamente enumerabili), e quindi
T
).
Lidea di Godel consisteva allora, data una estensione coerente T di Q, nel pren-
dere come (x) una formula che esprime la non dimostrabilit`a in T, costruendo
cos` una formula che dice di se stessa: Io non sono dimostrabile in T. Si vede
allora che `e vera sse non `e dimostrabile in T.
Da questo fatto taluni hanno inferito una superiorit`a delluomo rispetto alle
macchine (qui le macchine sono simulate dai sistemi formali). Largomentazione
procede pi` u o meno cos`: dato un sistema formale
1
sound T, luomo pu`o
costruire una formula che `e vera ma non dimostrabile in T. Quindi luomo
pu`o in un certo senso fare meglio di un qualunque sistema formale corretto, in
quanto dimostra la verit`a di una formula che il sistema non riesce a dimostrare.
A questo ragionamento si possono muovere le seguenti obiezioni:
La formula di cui sopra pu`o essere computata da una macchina di Turing
dato un indice per un sistema di assiomi per T. Quindi largomento di cui
sopra dimostra in realt`a che ogni macchina (sistema formale) pu`o essere
migliorata da unaltra macchina. Ci`o non `e molto pi` u sorprendente del
fatto che per ogni numero naturale ce ne sia uno pi` u grande.
La verit`a della formula `e garantita solo se T `e
1
sound, e non esiste
un algoritmo per decidere se un sistema formale `e
1
sound o no. Quindi
luomo pu`o solo trovare una formula che o `e vera e non dimostrabile in T
oppure `e falsa e dimostrabile in T, ma in genere non sa quale delle due
eventualit`a si verica.
Il mio parere personale `e il seguente: da un lato tendo a credere che la mente
umana non sia simulabile da una macchina (ad esempio, come potrebbe una
117
macchina simulare la ricerca di una assiomatizzazione per la teoria degli in-
siemi? Come potrebbe una macchina valutare la ragionevolezza di un assioma?);
dallaltro non mi risulta che ci siano prove evidenti di questa tesi, e il Primo Teo-
rema di Godel dimostra tutto fuorch`e la superiorit`a delluomo sulle macchine.
Concludiamo il capitolo con lenunciato del Secondo Teorema di Godel. Diamo
qui per scontato che per ogni teoria T che estende Q vi sia un enunciato reale
Con
T
che esprime in modo naturale la coerenza di T (la nozione di naturale pu`o
essere formalizzata, ma qui non ci addentriamo nei dettagli). Si ha allora:
Teorema 28.6 (Secondo Teorema di Godel). Se T `e una estensione coerente
e ricorsivamente assiomatizzabile di PA, allora T , Con
T
.
Inutile dire che il secondo teorema di Godel segna linsuccesso dellultimo punto
del Programma di Hilbert, la giusticazione dellinnito su basi nitistiche. In-
fatti la coerenza di PA `e espressa da un enunciato reale Con
PA
. Tale enunciato
non pu`o essere dimostrato nitisticamente (essendo indimostrabile in PA), ma
pu`o essere dimostrato in una teoria pi` u forte, come la teoria degli insiemi: lidea
`e che N `e un modello di PA, e quindi se PA dimostrasse una contraddizione
questa sarebbe vera in N, il che `e evidentemente impossibile. Quindi i sistemi
transiniti sono pi` u potenti di quelli nitari anche se ci si limita agli enunciati
reali.
29 Cenni di Teoria della Complessit`a
Come abbiamo detto la Teoria della Computabilit`a studia le funzioni astratta-
mente computabili senza preoccuparsi dellecienza dellalgoritmo che le com-
puta. La Teoria della Complessit`a si occupa invece, anche se in modo astratto,
di questultimo aspetto.
Cosa intendiamo per algoritmo eciente? Evidentemente non possiamo as-
pettarci che un algoritmo termini in fretta indipendentemente dallinput, in
quanto di regola un algoritmo prevede di esaminare tutto linput prima di
terminare. Se linput `e molto lungo, `e prevedibile che lalgoritmo eettui un
numero di computazioni elementari molto alto prima di produrre il risultato.
Sembra quindi ragionevole chiamare eciente un algoritmo il cui numero di com-
putazioni non sia esageratamente superiore alla lunghezza dellinput. Quindi
dovr`a esistere una funzione f che non cresca troppo rapidamente e tale che se
linput ha lunghezza k, il numero di computazioni eettuate dallalgoritmo non
sia superiore a f(k). Se immaginiamo che lalgoritmo sia realizzato attraverso
una Macchina di Turing, il numero delle computazioni sar`a il numero dei passi
eettuati (o il numero delle istruzioni eseguite, contando le ripetizioni).
118
Quanto alla scelta della funzione f, `e chiaro che ssare una sola funzione sarebbe
del tutto arbitrario e poco adatto ad una denizione astratta ragionevole. Ad
esempio se dichiarassimo eciente un algoritmo il cui numero di computazioni
fosse non superiore a 3 volte la lunghezza dellinput pi` u 7 (quindi se fosse f(x) =
3x+7), uno potrebbe chiedersi: perch`e proprio 3x+7 e non ad esempio 2x+21?
Quindi appare ragionevole fare riferimento ad una classe di funzioni e non ad
una singola funzione.
Una classe ragionevole potrebbe essere quella delle funzioni lineari. Tuttavia
molti algoritmi naturali (che sembra ragionevole considerare ecienti) come
quello per calcolare il prodotto di due numeri, richiedono un numero di passi
non lineare nellinput.
La scelta `e allora caduta sulla classe delle funzioni polinomiali. In altre parole,
il concetto astratto di algoritmo eciente adottato dagli esperti di Teoria della
Complessit`a `e il seguente:
Un algoritmo A `e eciente se esiste un polinomio P(x) tale che per ogni input
i, lalgoritmo calcola loutput corrispondente allinput i con un numero di com-
putazioni non superiore a P([ i [), ove [ i [ `e la lunghezza della rappresentazione
dellinput.
Importante! Se linput `e (la rappresentazione binaria di) un numero N, la
lunghezza di tale rappresentazione `e logaritmica nel numero stesso. Ad esempio,
il numero N = 2
100
`e rappresentato da un 1 seguito da 100 zeri, e quindi la
lunghezza della sua rappresentazione binaria `e 101 = log
2
(N)+1, che `e molto pi` u
piccolo di N. Un algoritmo che ricevendo in input (la rappresentazione binaria
di) un numero N impiega N passi per produrre un output non `e eciente:
avendo la sua rappresentazione binaria una lunghezza dellordine di log
2
(N), ed
essendo N = 2
log
2
(N)
, il numero dei passi di computazione sar`a esponenziale (e
non polinomiale) nella lunghezza della rappresentazione di N.
30 La classe P
Denizione 30.1 Una funzione f si dice computabile in tempo polinomiale se
esistono un polinomio P(x) ed una macchina di Turing M tali che:
M computa f.
Su ogni input , M produce un output in al pi` u P([ [) passi, ove [ [
denota la lunghezza di .
Denizione 30.2 Sia A un alfabeto nito, e sia A
k
p).
125
Siccome ho dato a p valore Vero, e quindi p assume valore Falso, D
k
pu`o
essere sostituito da D
k
.
Dopo questa operazione ho ottenuto un insieme I
1
di disgiunzioni ciascuna
della quali ha ancora al pi` u un letterale positivo. Tale insieme `e soddis-
facibile sse I
0
`e soddisfacibile. Inoltre I
1
ha meno simboli di I
0
(ho tolto
alcuni letterali, fra cui certamente p, e, possibilmente, p).
Riapplico il procedimento, ottenendo insiemi I
2
, . . . , I
n
sempre con un
numero minore di simboli.
Ogni passaggio da un insieme I
k
allinsieme I
k+1
richiede di leggere tutto I
k
e
di togliere alcuni letterali.
E chiaro quindi che un singolo passaggio richiede un
numero di passi non molto superiore alla lunghezza dellinput . Poich`e ad ogni
passaggio la lunghezza dellinsieme ottenuto diminuisce, lalgoritmo termina (o
dichiarando la formula soddisfacibile o dichiarandola insoddisfacibile) dopo un
numero di passaggi pari al massimo alla lunghezza di . In totale con questo
algoritmo bastano allincirca [ [
2
passi.
Esercizio. Dimostrare che il problema di determinare se due numeri sono primi
fra loro (cio`e privi di divisori comuni diversi da 1) `e in P.
Esercizio. Dimostrare che non esiste una funzione U(x, y) computabile in
tempo polinomiale e universale per la classe delle funzioni computabili in tempo
polinomiale, tale cio`e che per ogni funzione f(y) computabile in tempo polino-
miale esista un e tale che per ogni y, f(y) = U(e, y). (Suggerimento: usa una
diagonalizzazione).
31 La classe NP
Abbiamo visto che molti problemi che a prima vista hanno complessit`a esponen-
ziale sono invece risolubili in tempo polinomiale. Ci`o `e dovuto al fatto che per
tali problemi `e possibile sostituire lalgoritmo pi` u ovvio (scarsamente eciente)
con un algoritmo pi` u ranato, che risulta stavolta eciente.
Vi sono per`o problemi per i quali un algoritmo che lavora in tempo polinomiale
non `e ancora stato trovato, anche se non `e stato neppure dimostrato che un tale
algoritmo non esiste. Tali problemi sono:
Decidere, data una formula proposizionale , se essa `e soddisfacibile op-
pure no.
Decidere, dato un grafo nito, se `e possibile colorare i suoi vertici con tre
colori, in modo che due vertici uniti da uno spigolo non abbiano mai lo
stesso colore (in questo caso il grafo si dice 3-colorabile).
126
Decidere, dato un grafo nito, se `e possibile partire da un suo vertice e
percorrere tutti i vertici del grafo passando ogni volta da un vertice ad un
altro attraverso uno spigolo che li unisce, senza mai passare per lo stesso
vertice.
Decidere, data una formula del calcolo dei predicati ed un numero k, se
esiste o meno una dimostrazione di con al massimo k simboli.
Decidere, dati tre numeri naturali a, b, c se lequazione a x
2
+b y = c ha
soluzioni in N.
(Questultimo problema sembra essere stato risolto recentemente). De-
cidere, dato un numero n, se n `e primo oppure no.
A parte lultimo problema, tutti gli altri hanno la seguente tipologia:
Sono dati un insieme S, quello che corrisponde al problema in questione, ed una
relazione R(x, y) computabile in tempo polinomiale, interpretata come x `e un
certicato di y tale che per ogni y si ha:
y S sse xR(x, y).
Questa formula ricorda da vicino una caratterizzazione degli insiemi ricorsiva-
mente enumerabili: X `e ricorsivamente enumerabile sse esiste una relazione
ricorsiva R tale che per ogni y si abbia:
y X sse xR(x, y).
Mentre per`o nel caso degli insiemi ricorsivamente enumerabili linsieme dei
potenziali certicati `e innito, nel nostro caso vi `e per ogni y un insieme nito di
potenziali certicati. Tuttavia la cardinalit`a di tale insieme `e esponenzialmente
pi` u grande della lunghezza di y.
Se potessimo indovinare un certicato x di y, il controllare che x `e veramente
un tale certicato richiede un tempo polinomile, poich`e la relazione R `e in P.
Tuttavia, controllare tutti i potenziali certicati richiede un tempo esponenziale.
Esaminiamo nel dettagli i problemi elencati sopra, cercando di inquadrarli nella
tipologia suddetta.
Nel problema della soddisfacibilit`a linsieme S `e linsieme delle formmule
soddisfacibili, la relazione R `e una relazione fra valutazioni e formule
denita da R(v, ) sse v `e una valutazione che soddisfa . Per ogni formula
, linsieme dei potenziali certicati di `e linsieme di tutte le valutazioni
sulle variabili proposizionali di , un insieme di cardinalit`a 2
n
, ove n `e il
numero delle variabili in .
127
Nel problema della 3-colorabilit`a linsieme S consiste di tutti gra niti,
la relazione R `e una relazione fra i gra e le loro colorazioni, tale che per
ogni grafo G e per ogni sua colorazione c, R(c, G) vale sse non esistono
due vertici uniti da uno spigolo a cui c assegna lo stesso colore. Dato un
grafo G, linsieme dei potenziali certicati di G `e costituito da tutte le sue
colorazioni, un insieme di cardinalit`a 3
k
, ove k `e il numero di vertici di G.
Nel problema dei cammini su un grafo nito, S `e ancora la famiglia di
tutti i gra niti, e R `e una relazione fra gra e sequenze contenenti tutti
i vertici del grafo senza ripetizioni, denita, per ogni grafo nito G e
per ogni sequenza s, da R(s, G) sse (s contiene tutti i vertici di G senza
ripetizioni e) ogni coppia di vertici che compaiono consecutivamente in s `e
unita da uno spigolo. Qui i potenziali certicati sono k!, dove k `e il numero
di vertici del grafo G. (Si ricordi che `e 2
k
k! k
k
, quindi i potenziali
certicati sono in numero esponenziale nella cardinalit`a del grafo).
Nel problema di controllare se una formula ha una dimostrazione di al pi` u
s simboli, linsieme S `e costituito da tutte le coppie (, s) tali che `e un
teorema dimostrabile con una dimostrazione di non pi` u di s simboli. La
relazione R `e una relazione fra sequenze di simboli logici e coppie (, s),
denita da R(, (, s)) sse `e una dimostrazione di di lunghezza s.
I potenziali certicati di sono tutte le sequenze di simboli di lunghezza
s. Tale insieme ha cardinalit`a
is
k
i
, ove k `e il numero di simboli
del linguaggio. Ancora una volta la cardinalit`a dellinsieme dei potenziali
certicati `e esponenziale in s.
Nel problema di decidere, dati tre numeri naturali a, b, c se lequazione
a x
2
+ b y = c ha soluzioni in N, linsieme S `e linsieme delle terne
(a, b, c) per cui lequazione a x
2
+b y = c ha soluzioni in N, la relazione
R `e una relazione fra terne (a, b, c) di numeri naturali e coppie (x, y) di
numeri naturali, denita da R((x, y), (a, b, c)) sse a x
2
+b y = c.
Apparentemente, linsieme dei potenziali certicati `e innito, tuttavia `e
chiaro che se x > c o y > c lequazione non `e soddisfatta. Baster`a al-
lora controllare tutte le coppie (x, y) con x, y [0, c], in tutto c
2
coppie.
Tale cardinalit`a nonostante le apparenze non `e polinomiale nella lunghezza
dellinput, poich`e la lunghezza della rappresentazione binaria di c `e ap-
prossimativamente log
2
(c). Quindi c
2
`e approssimativamente 2
|c|
2
, una
quantit`a esponenziale in [ c [.
Nellultimo problema, quello di decidere se un numero `e primo o no, `e
pi` u facile trovare certicati per numeri non primi: per dimostrare che
un numero n non `e primo, basta infatti trovare un divisore k di n tale
che 1 < k < n. Tuttavia `e stato dimostrato che `e possibile trovare dei
certicati, testabili in tempo polinomiale, che assicurano che un numero
128
`e primo. Quindi sia linsieme dei numeri primi, sia il suo complemento,
sono inquadrabili nello schema di cui sopra.
Il concetto generale che emerge da questo schema `e quello di problema risolubile
in due fasi, la prima delle quali consiste nellindovinare un potenziale certicato
fra un insieme di cardinalit`a esponenziale nella lunghezza dellinput, e la seconda
consiste nel vericare se il potenziale certicato `e veramente un certicato.
Ovviamente la prima fase `e non deterministica, ma pu`o essere portata a termine
in tempo polinomiale nella lunghezza [ x [ dellinput x: gli elementi di un insieme
di cardinalit`a 2
P(|x|)
possono essere rappresentati tramite stringhe binarie di
lunghezza P([ x [) (in quanto le stringhe binarie di lunghezza P([ x [) sono
proprio 2
P(|x|)
). Indovinare uno dei potenziali certicati equivale a scegliere
non deterministicamente P([ x [) numeri nellinsieme 0, 1.
La seconda fase, cio`e la verica che il potenziale certicato c `e veramente un
certicato dellinput x `e invece eseguibile in tempo polinomiale in modo questa
volta deterministico, vericando se vale la relazione R(c, x) (ricordiamo che la
relazione R `e in P).
La classe dei problemi del tipo sopra indicato costituisce la classe dei problemi
decidibili in tempo polinomiale non deterministico, e viene detta classe NP.
Per dare una denizione formale di tale classe di problemi, abbiamo bisogno di
introdurre il concetto di Macchina di Turing non deterministica.
Denizione 31.1 Le Macchine di Turing non deterministiche sono denite in
modo analogo a quelle deterministiche, con la dierenza che viene omessa la
richiesta che per ogni stato q
i
e per ogni simbolo a vi sia al pi` u una istruzione
che inizia con q
i
a.
Ne segue che in una computazione eseguita tramite una Macchina di Turing non
deterministica loperatore pu`o trovarsi in una certa fase della computazione con
la macchina nello stato q
i
e con il cursore posizionato sul simbolo a, in presenza
di pi` u di una istruzione che inizia con q
i
a.
Se ad esempio vi fosse una istruzione del tipo q
i
abLq
j
ed unaltra istruzione
del tipo q
i
acRq
k
, loperatore pu`o scrivere b nella casella su cui `e posizionato il
cursore, spostare il cursore di una casella a sinistra e passare nello stato q
j
, ma
pu`o invece scrivere il carattere c nella casella su cui `e posizionato il cursore,
spostarsi di una casella a destra e passare nello stato q
k
.
Una situazione di questo tipo pu`o vericarsi pi` u volte durante una computazione
con una Macchina di Turing non deterministica; ad esempio potrebbe esserci
unaltra coppia di istruzioni che iniziano con gli stessi primi due simboli, dici-
amo q
r
deLq
s
e q
r
dfLq
t
. Oppure loperatore potrebbe trovarsi pi` u volte con la
macchina nello stato q
j
e con il cursore posizionato su una casella contenente il
simbolo a. In ciascuna di queste situazioni la computazione si biforca a seconda
129
che loperatore scelga una opzione oppure laltra. Linsieme di tutte le possibili
computazioni viene a formare un albero, di cui loperatore pu`o seguire un ramo
a sua scelta.
Esempio. Consideriamo la seguente Macchina di Turing non deterministica:
q
0
BBRq
1
, q
1
00Rq
1
, q
1
00Rq
2
, q
1
11Rq
1
, q
1
11Rq
3
,
con q
3
stato di accettazione, q
0
, q
1
, q
2
stati di riuto. Allinizio la macchina
comincia a leggere linput. Se il primo bit `e 0, la macchina pu`o passare nello
stato q
2
e fermarsi in uno stato di riuto, oppure spostarsi a destra restando
nello stato q
1
. Appena incontra un 1 la macchina pu`o o passare nello stato q
3
e
fermarsi in stato di accettazione, oppure spostarsi a destra restando nello stato
q
1
. In altre parole, quando la macchina trova uno zero essa pu`o o fermarsi in
stato di riuto, oppure muoversi a destra cercando un 1; quando la macchina
incontra un 1 essa pu`o o fermarsi in stato di accettazione, oppure spostarsi a
destra cercando un altro 1. Se la macchina arriva alla ne dellinput, allora
si ferma in uno stato di riuto. Ne viene che la macchina non accetta mai le
stringhe prive di 1, mentre sulle stringhe che contengono almeno un 1 vi sono
dei rami di computazione che terminano in uno stato di accettazione ed altri
che terminano in uno stato di riuto.
Siamo pronti a denire la classe NP dei problemi decidibili in tempo polinomiale
non detrministico.
Denizione 31.2 Sia A un alfabeto nito, e sia S A
. Diciamo che S `e in
NP se esistono una Macchina di Turing non deterministica M ed un polinomio
P(x) tali che per ogni A
:
Se S, almeno uno dei rami di computazione di M su input termina
in al massimo P([ [) passi in uno stato di accettazione.
Se / S, nessun ramo di computazione di M su input termina entro
P([ [) passi in uno stato di accettazione.
Poich`e le Macchine di Turing deterministiche sono un caso particolare delle Mac-
chine di Turing non deterministiche, dalla denizione segue subito che un prob-
lema in P `e anche in NP. Il problema di decidere se valga o meno limplicazione
inversa costituisce uno dei pi` u importanti problemi aperti dellinformatica teor-
ica.
Problema aperto: P = NP?
Una caratterizzazione equivalente dei problemi NP `e la seguente: sia A un
alfabeto nito, e sia S A
si ha:
() S sse x A
1
n
i=1
(P
iB
P
iR
P
iV
).
131
Esprimiamo poi la condizione che ogni vertice deve essere colorato con un solo
colore:
2
n
i=1
((P
iB
P
iR
)&(P
iB
P
iV
)&(P
iR
P
iV
)).
Inne, esprimiamo il fatto che due vertici uniti da uno spigolo non devono avere
lo stesso colore. Questo fatto viene espresso con un insieme di assiomi, uno per
ogni coppia (non ordinata) di vertici uniti da uno spigolo:
Per i, j = 1, . . . , n, se V
i
e V
j
sono uniti da uno spigolo, introduciamo la formula
ij
(PiB P
jB
)&(P
iR
P
jR
)&(P
iV
P
jV
).
Sia ora
G
la congiunzione di
1
,
2
e di tutte le
ij
tali che V
i
e V
j
sono
uniti da uno spigolo.
E abbastanza evidente che
G
`e soddisfacibile sse il grafo
`e 3-colorabile.
Data infatti una 3-colorazione del grafo, la valutazione che assegna Vero a P
iB
(rispettivamente: a P
iR
, a P
iV
) sse V
i
`e colorato di Bianco (rispettivamente: di
Rosso, di Verde) rende vera
G
.
Viceversa, se e `e una valutazione che rende vera
G
, allora per i = 1, . . . , n, una
ed una sola fra le variabili P
iB
, P
iR
e P
iV
riceve valore Vero. Si vede abbastanza
facilmente che colorando (per i = 1, . . . , n) V
i
di Bianco se e(P
iB
) = V ero,
di Rosso se e(P
iR
) = V ero, e di Verde se e(P
iV
) = V ero, si ottiene una 3-
colorazione del grafo in cui due vertici uniti da uno spigolo hanno sempre colore
diverso.
Osserviamo che la formula
G
pu`o essere computata a partire dal grafo G, e che
la computazione ha lunghezza lineare nella lunghezza dei dati del grafo. Infatti
1
e
2
possono essere scritte rapidamente a partire dalla lista dei vertici di
G, e le
ij
possono essere scritte rapidamente a partire dalla lista degli spigoli
(identicati con le coppie dei vertici che essi uniscono).
Ne segue che se disponessi di un oracolo che risponde esattamente e in modo
istantaneo ad ogni istanza del problema della soddisfacibilit`a riuscirei a risolvere
in tempo polinomiale deterministico il problema della 3-colorabilit`a dei gra. In
particolare, se il problema della soddisfacibilit`a delle formule proposizionali fosse
in P (nel qual caso loracolo in questione sarebbe fornito da una Macchina di
Turing deterministica che lavora in tempo polinomiale), anche il problema della
3-colorabilit`a dei gra sarebbe in P.
Questo esempio suggerisce la seguente denizione:
Denizione 32.1 Siano A, B alfabeti niti, e sia S A
, e T B
. Diciamo
132
che T `e P-riducibile a S se esiste una funzione computabile in tempo polinomiale
h tale che per ogni B