Sei sulla pagina 1di 134

Fondamenti di Logica

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

x. Si noti che lusuale unione di due insiemi x e y non `e altro


che

x, y (ma secondo una tradizione consolidata, la indicheremo con x y).


Assioma dellinsieme potenza. Per ogni insieme x esiste un insieme y, (unico
per lassioma di estensionalit`a) detto potenza di x e denotato con T(x), i cui
elementi sono tutti e soli i sottoinsiemi di x. (Un insieme y `e detto sottoinsieme
di x (notazione: y x) se ogni elemento di y `e anche elemento di x).
Notazione. Nel seguito, con x y denotiamo la formula x(x y&),
mentre con x y denotiamo la formula x(x y ). Per abuso di
linguaggio, per ogni formula (x) indichiamo con x : (x) la collezione di
tutti gli insiemi x tali che (x). Tale collezione di regola non `e un insieme,
e quindi non `e un oggetto del nostro universo. Questo per`o non ci vieta di
pensarla come esistente, almeno nella nostra mente. Ad esempio, x : x = x
`e la collezione di tutti gli insiemi, che non `e un insieme, ma ci`o non ci vieta
di parlarne almeno a livello metalinguistico. Inoltre possiamo tradurre molti
3
dei ragionamenti che facciamo su queste collezioni (che dora in poi chiameremo
classi) anche allinterno di ZF. Ad esempio, per dire che x : (x) x : (x),
basta dire: x((x) (x)), e per dire y x : (x) basta dire semplicemente:
(y).
Assioma di isolamento. Questo non `e un singolo assioma, ma uno schema di
assiomi. Per ogni formula (v) del linguaggio di ZF vi `e un assioma che dice:
per ogni insieme x vi `e un insieme y (denotato con v x : (v)) i cui elementi
sono tutti e soli gli elementi v di x tali che (v).
Notiamo che dallassioma di isolamento, dallassioma della coppia, da quello
dellunione e da quello dellinsieme potenza possiamo dedurre lesistenza del
prodotto cartesiano di due insiemi: dati due insiemi x e y, esiste un insieme z,
detto prodotto cartesiano di x e y e denotato con xy, i cui elementi sono tutte
e sole le coppie ordinate (a, b) tali che a x e b y. Infatti, con lassioma
della coppia e con quello dellunione posso formare linsieme x y. Una coppia
a, b con a x e b y `e un sottoinsieme di x y, e quindi un elemento di
T(x y) (insieme che esiste per lassioma dellinsieme potenza). Gli elementi
della coppia ordinata (a, b) sono a e a, b, e quindi sono elementi di T(xy).
Pertanto ogni elemento (a, b) con a x e b y `e un sottoinsieme di T(x y), e
quindi un elemento di T(T(x y)). Ora, si ha:
x y = u TT(x y) : a xb y(u = (a, b)
Per lassioma di isolamento, ove si prenda come (u) la formula
a xb y(u = (a, b)),
x y `e un insieme.
Notiamo che dallassioma di isolamento segue che lintersezione di una classe
non vuota di insiemi `e un insieme: sia infatti C = x : (x) la classe in
questione. Sia a C (quindi assumiamo (a)). Vogliamo dimostrare che

C =
u : z C(u z `e un insieme. Ora a C, onde

C a, e pertanto

C = u a : z Cu z. Qui z Cu z `e unabbreviazione per


z((z) u z) (si ricordi che C = x : (x), onde x C sse (x)).
Per lassioma di isolamento,

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

(x)) tale che (x, y), allora per ogni insieme u


la collezione F

(x) : x u `e un insieme. [Nel linguaggio di ZF la frase la


collezione F

(x) : x u `e un insieme si esprime con la formula zy(y z


x u(x, y))].
Abbiamo ora a disposizione quasi tutti gli assiomi indispensabili per fare la
usuale matematica. Mancano ancora due assiomi, uno dei quali, lassioma
di regolarit`a non `e utilizzato in matematica ma semplica molto la struttura
delluniverso di tutti gli insiemi, laltro, lassioma di scelta, `e invece molto usato
in matematica, ma ha anche conseguenze sorprendenti e per certi versi antiin-
tuitive. Prima di introdurre tali assiomi, vediamo brevemente come gli assiomi
nora introdotti possano venir utlizzati per costruire le strutture di base della
5
matematica.
Abbiamo visto che gli assiomi nora introdotti ci consentono di costruire linsieme
dei numeri naturali: il pi` u piccolo insieme induttivo contiene 0 = , 1 = 0
0, 2 = 1 1, 3 = 2 2, . . .. Daltra parte la collezione costituita da
0, 1, 2, . . . , `e un insieme induttivo, e quindi deve contenere linsieme dei naturali,
che pertanto risulta costituito proprio da 0, 1, 2, . . .. Si pu`o poi dimostrare esiste
una funzione S da a (detta funzione successore) denita da S(x) = xx,
e che la collezione delle funzioni da a `e chiusa per composizione e per re-
cursione. Quindi abbiamo funzione la somma, denita per recursione a partire
dal successore, e il prodotto, denito per recursione sulla somma. Inoltre,
soddisfa lusuale principio di induzione di Peano, con il quale si dimostrano le
principali propriet`a (e.g. la propriet`a commutativa, la propriet`a associativa, la
propriet`a distributiva) della somma e del prodotto.
Dai naturali si passa agli interi, che sono costruiti partendo da (abbiamo
dimostrato che il prodotto cartesiano di due insiemi `e un insieme; intuitiva-
mente la coppia ordinata (a, b) `e pensata come a b), ed introducendo quindi
lequivalenza (a, b) (c, d) sse a+d = b+c. Si costruisce poi linsieme quoziente
nel seguente modo: innanzitutto si osserva che per ogni (a, b) , la ua
classe di equivalenza modulo `e un insieme per lassioma di isolamento; poi si
considera la legge che associa ad ogni coppia (a, b) la sua classe di equivalenza
[(a, b)] modulo .
Per lassioma di rimpiazzamento, possiamo formare linsieme Z = [(a, b)] :
(a, b) , che `e appunto linsieme quoziente di modulo . Le
operazioni di somma, prodotto e sottrazione e la relazione dordine sugli interi
sono come `e noto denibili a partire da quelle sui naturali.
Inoltre tali operazioni sono sottoinsiemi di Z Z e quindi sono insiemi per
lassioma di isolamento (e per gli assiomi che consentono di costruire il prodotto
cartesiano di due insiemi).
Costruiamo cos` la quintupla (Z, +, , , ), che costituisce lanello ordinato
degli interi. Si dimostra poi che gli interi formano un dominio di integrit`a ordi-
nato.
Con una ulteriore costruzione che passa attraverso il prodotto cartesiano ed uti-
lizza poi un passaggio allinsieme quoziente, si arriva al campo ordinato delle
frazioni su Z, cio`e al campo ordinato Q dei razionali.
Dai razionali si passa poi ai reali attraverso loperazione di completamento. Lo
scopo della costruzione `e quella di introdurre un estremo superiore per ogni in-
sieme superiormente limitato e non vuoto di numeri razionali, tenendo presente
che due insiemi conali (in cui cio`e ogni elemento delluno `e maggiorato da al-
meno un elemento dellaltro) devono avere lo stesso estremo superiore.
Lidea per ottenere questo scopo `e quella di prendere come insieme R dei reali
linsieme delle semirette razionali, cio`e gli insiemi di razionali non vuoti, superi-
ormente limitati, chiusi allingi` u e privi di massimo, immaginando di identicare
ciascuno di tali insiemi con il suo estremo superiore (seguendo questo ordine di
idee nella direzione opposta, potremmo dire che ogni reale viene identicato con
6
linsieme dei razionali che lo precedono).
La famiglia R delle semirette razionali `e una sottoclasse denibile della potenza
di Q, e quindi `e un insieme per lassioma dellinsieme potenza e per lassioma
di isolamento.
I razionali si immergono nei reali tramite la funzione che associa ad ogni q Q
la semiretta razionale x Q : x < q. Si possono poi denire le operazioni
di somma, di prodotto, di reciproco additivo, loperazione parziale di reciproco
moltiplicativo e lordine in modo che limmersione di Q in R sia compatibile
con tali operazioni e con la relazione dordine, e che le operazioni si estendano
con continuit`a da Q a R. In denitiva, si riesce a dimostrare che R con le oper-
azioni denite tramite la costruzione a cui abbiamo accennato sopra, e rispetto
allordine denito tramite linslusione insiemistica di semirette razionali, risulta
un campo ordinato completo.
Passiamo ora agli ultimi due assiomi.
Assioma di regolarit`a - Per ogni insieme non vuoto a esiste un b a che `e mini-
male fra gli elementi di a rispetto allappartenenza, cio`e tale che per ogni c a,
c / b. In modo formalmente pi` u semplice, ma forse meno chiaro da un punto
di vista intuitivo, possiamo formulare lassioma come segue: per ogni insieme
a ,= esiste un b a tale che b a = .
Non perderemo molto tempo con questo assioma, che come abbiamo detto ha
lunico scopo di semplicare la descrizione delluniverso degli insiemi, pur non
limitandone le potenzialit`a (nel senso che tutte le costruzioni matematiche che
possiamo fare utilizzando insiemi che non soddisfano lassioma di fondazione
possiamo ottenerle a meno di isomorsmi anche utilizzando solo quegli insiemi
che soddisfano tale assioma).
La teoria i cui assiomi sono quelli n qui esposti si indica con ZF (da Zermelo
e Fraenkel).
Prenderemo ora in considerazione lassioma di scelta, un assioma che viene uti-
lizzato frequentemente in matematica.
Assioma di scelta - Ogni insieme X i cui elementi siano tutti insiemi non vuoti
ammette una funzione di scelta, cio`e una funzione F da X a

X tale che per


ogni x X, F(x) x.
Anche se questo assioma appare intuitivamente vero, ad un esame pi` u approfon-
dito esso non risulta del tutto evidente: dalla sola informazione che gli insiemi
in X sono non vuoti si aerma lesistenza di un metodo (la funzione F) per
ottenere un elemento da ciascuno di tali insiemi. Per fare un esempio concreto,
se avessimo a che fare con innite paia di scarpe, avremmo un metodo per
sceglierne una per ogni paio (e.g., scegliendo quella sinsistra, oppure scegliendo
quella destra), mentre se avessimo a che fare con innite paia di calze, anche se
ciscun paio `e un insieme non vuoto, non avremmo un metodo per scegliere una
7
calza da ciascun paio: si pu`o ad esempio sceglierne una a caso da ciascun paio,
ma `e discutibile che questo metodo random denisca una funzione nel senso
della teoria degli insiemi.
Lassioma di scelta semplica molto la vita in matematica, e in particolare in
algebra. Esso implica ad esempio i seguenti teoremi:
Ogni spazio vettoriale ha una base.
Ogni campo ha una chiusura algebrica.
Ogni anello ha un ideale massimale.
Il prodotto di spazi compatti `e compatto.
Una funzione f `e continua in x
0
Dom(f) sse per ogni successione a
n
:
n Ndi elementi di Dom(f) avente come limite x
0
, si ha lim
n
f(a
n
) =
f(x
0
).
Anche in logica lassioma di scelta ha importanti conseguenze, ad esempio:
Lemma di Lindenbaum. Se T `e una teoria coerente (cio`e T , ) su un
linguaggio qualsiasi, esiste unestensione T

di T sullo stesso linguaggio che `e


sia coerente che completa (cio`e per ogni formula chiusa A, T

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,

=) `e una biiezione h da X a Y tale che per ogni x, z X sia: x _ z sse


h(x)

= h(z).
Esercizi. (a) Sia (X; _) un insieme ben ordinato, e sia x X. Deniamo:
W(x) = y X : y x (ove y x sta per y _ x e y ,= x). Dimostra che per
ogni segmento iniziale S di (X, _) esiste un x X tale che S = W(x).
(b) Dimostra che se h `e un isomorsmo da un insieme ben ordinato (X, _) ad
un insieme ben ordinato (Y,

=), allora per ogni x X, limmagine di W(x) in


h `e W(h(x)).
(c) Dimostra che non esiste alcun isomorsmo da un insieme ben ordinato ad
un suo segmento iniziale.
(d) Dimostra che lunico isomorsmo da un insieme ben ordinato in se stesso `e
lidentit`a.
(e) Dimostra che pu`o esistere al pi` u un isomorsmo da un insieme ben ordinato
ad un altro.
(f) Dimostra che se (X, _) `e un insieme ben ordinato, se , = Y X, e se _
Y
denota la restrizione di _ a Y , allora (Y, _
Y
) `e un insieme ben ordinato.
Teorema 3.3 (Tricotomia). Siano (X, _) e (Y,

=) due insiemi ben ordinati.


Allora si verica una ed una sola delle seguenti cose:
(i) Esiste un (necessariamente unico) isomorsmo da (X, _) a (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

X. Inoltre, scriviamo < invece di


, e invece di

= .
Teorema 3.6 Ogni insieme bene ordinato `e isomorfo ad uno ed un solo ordinale
(munito della relazione

=).
Dimostrazione. Per il Teorema di tricotomia, dati un insieme bene ordinato
(X, _) e un ordinale si possono vericare tre casi: o (X, _) `e isomorfo a un
segmento iniziale di (

=), o (X, _) `e isomorfo a (,

=), o (

=) `e isomorfo
ad un segmento iniziale di (X, _). Poich`e un segmento iniziale di un ordinale
rispetto a

= `e un ordinale, per ottenere lasserto basta escludere la possibilit`a
che per ogni ordinale , (,

=) sia isomorfo ad un segmento iniziale di (X, _).
Ora, se cos` fosse, per ogni vi sarebbe un unico isomorsmo

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

di dominio che soddisfa la () per ogni


. Ragiono per assurdo. Sia un ordinale per cui esistono due funzioni
distinte F

e H

che soddisfano la () per ogni < , e sia


0
il minimo ordinale
su cui dieriscono. Allora per ogni <
0
`e F

() = H

(), da cui:
F

(
0
) = G((, F

()) : <
0
) = G((, H

()) : <
0
) = H

(
0
),
assurdo.
(B) Dimostriamo ora che per ogni On esiste una F

che soddisfa la () per


ogni . Per assurdo, sia il pi` u piccolo ordinale per cui 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

soddisfa la () per ogni , contro


quanto assunto in precedenza.
(C) A questo punto la funzione F desiderata si ottiene ponendo: F() = 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

: < se `e un ordinale limite.


Esercizio. Dimostrare che la somma e il prodotto di ordinali non sono oper-
azioni commutative. Calcolare poi: 3 +, +
2
, 2

, (

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

< , allora G() < G(

). Per denire G(), distinguo due


casi:
Se = +1, osservo che essendo G() un elemento non massimale, esiste
un x X tale che G() < x. Sia Y () = o(x) : x X e G() < x. Sia
m() = min(Y ()).
Pongo allora G() = f(m()), osservando che G() < G(), e la crescenza
di G `e conservata.
Se `e un ordinale limite, allora per ipotesi induttiva la sequenza (G() :
< `e crescente, onde linsieme C() = G() : < `e una catena
priva di massimo (poich`e linsieme degli ordinali < non ha massimo).
Quindi C() ha un maggiorante, necessariamente maggiore di tutti gli
elementi di C(). Sia
Z() = o(x) : x X e x maggiorante di C(),
e sia m() = min(Z()). Poniamo G() = f(m()). Si vede subito che
G() `e un maggiorante di C(), e quindi a crescenza di G `e conservata.
17
Abbiamo cos` denito una funzione crescente G da On ad una sottoclasse deni-
bile Y di X. Essendo X un insieme, Y `e un insieme per lassioma di isolamento.
Ma allora G
1
sarebbe una biezione fra Y e On, e On sarebbe un insieme per
lassioma di rimpiazzamento, assurdo.
ZL AC. Sia X un insieme di insiemi non vuoti. Sia P la collezione di tutte
le funzioni parziali di scelta, cio`e
P = f : Dom(f) X e u Dom(f)(f(u u).
Si ha: P ,= , poich`e la funzione vuota `e in P. Ordiniamo parzialmente P
tramite linclusione. Si vede facilmente che lunione di una catena in (P, )
`e un elemento di P, e quindi P `e induttivo. Sia f massimale in P. Dico
che Dom(f) = X, e quindi f `e una funzione di scelta per X, come volevasi.
Supponiamo per assurdo x X Dom(f). Sia y x (ricordiamo che x ,= ), e
sia g = f (x, y). Si vede subito che g P, e g f, contro la massimalit`a di
f, assurdo.
5 I cardinali
I cardinali sono insiemi che servono per misurare la numerosit`a di un insieme.
Il punto di partenza consiste nel denire la relazione avere la stessa cardinalit`a
Denizione 5.1 Due insiemi X e Y hanno la stessa cardinalit`a (e si scrive
X Y ) sse esiste una biiezione da X a Y . Un insieme X ha cardinalit`a a Y
(e si scrive X _ Y ) sse esiste una funzione iniettiva da X a Y .
Si vede facilmente che `e una relazione di equivalenza (o meglio, lo sarebbe
se fosse un insieme e non una classe propria), e che _ `e riessiva e transitiva,
e quindi un preordine. Il prossimo teorema aerma che `e la relazione di
equivalenza indotta da _, cio`e X Y sse X _ Y e Y _ X. Il verso da sinisstra
a destra `e ovvio, mentre laltro verso `e dimostrato nel seguente teorema.
Teorema 5.2 (Teorema di Cantor-Bernstein). X _ Y e Y _ X, allora X
Y .
Dimostrazione. Posso assumere senza perdita di generalit`a
() X Y ed esiste una funzione iniettiva da Y a X.
Infatti se h `e iniettiva da X a Y e f `e iniettiva da Y a X, `e X Range(h), e
Range(h) Y . Inoltre esiste una funzione iniettiva da Y a Range(h), e pre-
cisamente la funzione composta h f. Posso dunque sostituire X con Range(h)
(dato che i due insiemi sono in biiezione), e f con h f, ottendo la (), che
quindi nel seguito supporr`o essere soddisfatta da X, Y e f. Denisco allora:
Y
0
= Y, X
0
= X, Y
n+1
= f[X
n
], X
n+1
= f[X
n
].
18
Deniamo ora per ogni y Y :
g(y) =
_
f(y) se n(y Y
n
X
n
)
y altrimenti
Dimostriamo che g `e la biiezione desiderata da Y a X.
g va da Y a X. Infatti, se n(y Y
n
X
n
), allora g(y) = f(y) X, poich`e
f va da Y a X. Altrimenti, se per ogni n y / Y
n
X
n
, allora y / Y
0
X
0
,
e quindi y X
0
= X, e g(y) = y X.
g `e iniettiva. Siano infatti y ,= z Y , e dimostriamo che g(y) ,= g(z).
La cosa `e ovvia se o g(y) = f(y) e g(z) = f(z) (ricordiamo che f `e
iniettiva), oppure g(y) = y e g(z) = z. Resta da considerare il caso in cui
ad esempio g(y) = f(y) ,= y e g(z) = z ,= f(z). In questo caso, esiste un
n tale che y Y
n
X
n
, mentre invece per ogni n, z / (Y
n
X
n
). Ora
essendo f iniettiva, g(y) = f(y) f[Y
n
] f[X
n
] = Y
n+1
X
n+1
, mentre
g(z) = z / Y
n+1
X
n+1
. Quindi g(y) ,= g(z).
g `e suriettiva. Sia x X arbitrario, e dimostriamo che x Range(g). Se
per ogni n, x / (Y
n
X
n
), allora g(x) = x, e lasserto `e ovvio. Altrimenti,
sia n tale che x Y
n
X
n
. Ora x X = X
0
, onde n > 0, diciamo
n = m + 1. Allora, x f[Y
m
] f[X
m
], e quindi (sempre per liniettivit`a
di f) esiste z Y
m
X
m
tale che x = f(z). Poich`e z Y
m
X
m
,
g(z) = f(z) = x, e x Range(g).
Sembra naturale lesigenza di introdurre, per ogni insieme X un oggetto matem-
atico che contenga come unica informazione quella relativa alla cardinalit`a di
X, e che quindi prescinda dalle altre peculiarit`a di X. Questo comporta che se
X Y , allora a X e a Y debba essere associato lo stesso oggetto.
La prima idea che viene in mente `e quella di associare ad ogni insieme X la
collezione di tutti gli insiemi ad esso biiettivi. Linconveniente di questo ap-
proccio `e che in questo modo le classi di equivalenza sarebbero classi proprie.
Unidea migliore consiste allora nel denire insiemi che costituiscano rappre-
sentanti canonici di ciascuna classe di equivalenza rispetto a . Nel seguito
assumeremo lAssioma di Scelta. Con tale assunzione, ogni insieme `e ben
ordinabile, e quindi biiettivo ad un ordinale. Pertanto `e lecita la seguente
denizione:
Denizione 5.3 La La cardinalit` a di un insieme X (denotata con Card(X))
`e il minimo ordinale biiettivo ad X.
Esercizio. Dimostra che X Y sse Card(X) = Card(Y ), e che X _ Y sse
Card(X) Card(Y ). [Per quanto riguarda il secondo enunciato, limplicazione
da destra a sinitra `e facile, e per quanto riguarda laltra implicazione, si vede
19
subito che se X _ Y , vi `e una funzione iniettiva da X a Card(Y ), e quindi
vi `e una funzione iniettiva da Card(X) a Card(Y ). Ora se fosse Card(Y ) <
Card(X), per il Teorema di Cantor Bernstein, . . .
Esercizio. Dimostra che Card(Card(X)) = Card(X).
Denizione 5.4 Un cardinale `e un ordinale che non `e biiettivo a nessun ordi-
nale minore di lui.
Esercizio. Dimostra che un ordinale `e un cardinale sse esiste un insieme X
tale che = Card(X).
Esercizio. Dimostra che ogni ordinale nito (cio`e ogni ordinale in ) `e un
cardinale. Dimostra poi che `e un cardinale, anzi che `e il minimo cardinale
innito.
Esrcizio. Dimostra che nessuno degli ordinali + 1, +,
2
`e un cardinale.
Esercizio. Dimostra che un cardinale innito `e necessariamente un ordinale
limite.
Il prossimo teorema, pur avendo una dimostrazione molto semplice, costitu-
isce una delle pi` u grandi scoperte nella teoria dei cardinali, in quanto dimostra
lesistenza di diversi tipi di innito.
Teorema 5.5 (Teorema di Cantor). Per ogni insieme X, Card(X) < Card(T(X)).
Dimostrazione. Una funzione iniettiva da X a T(X) `e la funzione f denita,
per ogni x X, da f(x) = x. Quindi X _ T(X), e per un esercizio prece-
dente, Card(X) Card(T(X)). Se fosse Card(X) = Card(T(X)), esisterebbe
una biiezione F da X a T(X). Posto allora Y = x X : x / F(x), essendo
F suriettiva, esisterebbe y X tale che F(y) = Y . Ma allora dalla denizione
di Y avremmo:
y Y sse y / F(y) sse y / Y,
assurdo.
Teorema 5.6 (A) Per ogni cardinale ve n`e uno pi` u grande.
(B) Lunione di un insieme di cardinali `e un cardinale.
Dimostrazione. (A) Abbiamo visto nel teorema precedente che Card(T()) >
Card().
(B) Sia X un insieme di cardinali, sia =

X. Dobbiamo dimostrare che se


< , allora , . Ora, per denizione di =

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 :

< (tale esiste per la parte (A) del


teorema precedente).
Se `e un ordinale limite, allora

= sup

: < (per la parte (B)


del teorema precedente,

`e un cardinale).
Esercizio. Dimostra che per ogni cardinale innito esiste un (necessariamente
unico) ordinale tale che

= . (Consiglio: sia per assurdo


0
il minimo
cardinale innito per cui ci`o non si verica . . . ).
Esercizio. Dimostra che per ogni ordinale `e

, e osserva che per ogni


insieme X di ordinali,
sup(X)
= sup

: X. Concludi che esiste un


minimo punto sso della funzione , cio`e un minimo 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

sono debolmente crescenti


sia in che in .
Il calcolo della potenza di un cardinale `e di solito molto dicile, al punto che
in certi casi non `e possibile determinare tale potenza usando solo gli assiomi di
21
ZFC. Ad esempio, il Teorema di Cantor ci dice che

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 [

, per cui basta dimostrare


linclusione opposta. Se (, )

, allora posto = max, ,


0
+ 1,
`e <

, e quindi Card() <

, poich`e un ordinale minore di un car-


dinale ha cardinalit`a minore. Inoltre W(, )
2
. Per ipotesi induttiva,
Card(
2
) = (Card())
2
= Card() <

, e quindi (, ), ossia lunico ordi-


nale isomorfo a W(, ), `e minore di

. In altre parole, mappa

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

linsieme di tutte le se-


quenze nite di elementi di X. Allora, Card(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 / [=

, ossia tale che per ogni B , / [= B

.
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

(rispettivamente: se per ogni


interpretazione V , V [= A sse V [= B).
Esercizio. Dimostra i seguenti fatti: (AB) A&B; (A&B) AB;
A&(B C) (A&B) (A&C); A (B&C) (A B)&(A C); se denota
uno qualsiasi fra e &, allora A B B A, e A (B C) (A B) C.
Denizione 9.7 Un letterale `e una formula atomica oppure la negazione di una
formula atomica.
Esercizio. Dimostra che ogni formula proposizionale, come pure ogni formula
predicativa senza quanticatori, `e sematicamente equivalente sia ad una con-
giuinzione di disgiunzioni di letterali (Forma Normale Congiuntiva), sia ad una
disgiunzione di congiunzioni di letterali (Forma Normale Disgiuntiva).
Esercizio. Dimostra il seguente Teorema delle Costanti. Sia un insieme di
formule di un linguaggio /, sia A una formula di /, sia c un simbolo di costante
in / che non occorre in (nessuna formula di) , e sia x una variabile che non ha
occorrenze libere in . Allora, [= xA sse [= A(x/c). Inoltre, se B `e una
formula di / che non contiene occorrenze n`e di c n`e di x, allora xA [= B
sse A(c) [= B.
Esercizio. Siano v, w variabili distinte che non hanno occorrenze n`e in A
n`e in B. Sia poi uno qualsiasi fra & e . Dimostrare i seguenti fatti:
xA uB uw((A(x/v) B(u/w)); xA uB vw(A(x/v) B(u/w));
xA xA; xA xA.
Esercizio. Dimostra che per ogni formula A esiste una formula A

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

, interpreta ogni costante c


i
in (x
i
), ottenendo una
struttura /

per il linguaggio / esteso con le nuove costanti, tale che /

[=
C
.
Viceversa, data /

tale che /

[=
C
, considera la struttura / ottenuta da
/

omettendo linterpretazione delle costatnti c


1
, . . . , c
n
, . . ., e lassegnazione
denita da (x
i
) = c
A

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

: < di nuove costanti. Sia /

il linguaggio cos`
ottenuto. Ovviamente, Card(/

) = + = . Linsieme delle formule chiuse


di /

`e contenuto nellinsieme delle sequenze nite di simboli di /

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

: < ) di estensioni di nel seguente modo induttivo


(usando il principio di recursione):

0
= .
Sia < , e sia il minimo ordinale < tale c

non compare n`e in

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

vo sono < nuovi simboli).


Poniamo allora:
30

+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. Se = 0, lasserto `e ovvio.


Se = + 1, lasserto `e ovvio se

`e f.s. e se

non `e del tipo x.


Se

`e f.s. e

`e della forma x, allora

, (x/c

),
dove c

non compare n`e in

n`e in

. Imitando la dimostrazione del Teorema


delle costanti, si vede subito che

(x/c

) `e f.s., e quindi anche


+1
=

, (x/c

`e f.s. Se invece

non `e nitamente soddisfacibile, esiste


un sottoinsieme nito di

tale che

`e insoddisfacibile. Ma allora
[=

. Se per assurdo

fosse insoddisfacibile, esisterebbe


un sottoinsieme nito

di

tale che

`e insoddisfacibile, e quindi

[=

. Ma allora

sarebbe un sottoinsieme nito insoddisfacibile di

(poich`e

[=

&

), contro lipotesi induttiva.


Inne se `e un ordinale limite, `e facile vedere che ogni sottoinisieme nito di

`e contenuto in qualche

con < , e quindi `e soddisfacibile per ipotesi


induttiva.
Questo dimostra che ogni

`e f.s.
Sia ora =

<

. Con il ragionamento adottato per trattare il caso


ordinale limite, si vede che anche `e f.s.
Dimostriamo ora che `e un insieme di Henkin. Sia una formula chiusa, e
sia tale che =

. Allora per costruzione, o


+1
o


+1
.
Inne, sia x , e sia < tale che x =

. Allora per costruzione

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

A), esiste un insieme nito


0
tale che
0
A `e insoddisfacibile
sse esiste
0
nito tale che
0
[= A.
Con una dimostrazione analoga, ma pi` u semplice, si dimostra il seguente:
Teorema 9.12 (Teorema di Compattezza per il calcolo proposizionale). Un
insieme di formule proposizionali `e soddisfacibile sse ogni suo sottoinsieme
nito `e soddisfacibile.
32
Veniamo ora alla logica del primo ordine con identit`a. Il seguente lemma `e
immediato:
Lemma 9.13 In ogni struttura con identit`a /, le seguenti formule sono vere:
(A) x(x x), xy(x y y x), xyz((x y&y z) x z).
(B) Per ogni simbolo f di funzione n-aria e per ogni simbolo P di predicato
n-ario, le formule:
xy((x
1
y
1
&. . . &x
n
y
n
) (f(x) f(y)), e
xy((x
1
y
1
&. . . &x
n
y
n
) (P(x) P(y)),
ove x, y x e y denotano rispettivamente x
1
, , x
n
, y
1
, , y
n
, x
1
. . . x
n
e y
1
. . . y
n
rispettivamente.
Dimostrazione. Ovvia.
Denizione 9.14 Le formule di tipo (A) e del tipo (B) nel Lemma 9.13 pren-
dono il nome di assiomi di identit`a. Linsieme degli assiomi di identit`a per un
linguaggio / viene denotato con I(/).
Lemma 9.15 Sia / un linguaggio con identit`a e sia / una struttura (non
necessariamente con identit`a) per / in cui sono veri tutti gli assiomi di identit`a.
Deniamo, per ogni a, b /, a b sse / [= a b. Allora:
(i) `e una relazione di equivalenza.
(ii) Indichiamo, per ogni a /, con [a] la classe di equivalenza di a modulo
, e con [A] il quoziente del dominio di A modulo . Poniamo, per ogni
simbolo c di costante, c
[A]
= [c
A
]; per ogni simbolo di funzione n-ario f e
per ogni a
1
, , a
n
/, poniamo
f
[A]
([a
1
], . . . , [a
n
]) = [f
A
(a
1
, , a
n
)].
Poniamo inne, per ogni simbolo di predicato n-ario P e per ogni a
1
, , a
n

/,
P
[A]
([a
1
], . . . , [a
n
]) sse P
A
(a
1
, . . . , a
n
).
Allora, f
[A]
e P
[A]
sono ben deniti, cio`e se per i = 1, . . . , n, a
i
= b
i
,
allora
[f
A
(a
1
, , a
n
)] = [f
A
(b
1
, , b
n
)] e
P
A
(a
1
, , a
n
) sse P
A
(b
1
, , b
n
).
(iii) Detta [/] la struttura ([A],
[A]
), per ogni formula (x
1
, , x
n
) e per ogni
a
1
, , a
n
/, si ha:
/ [= (a
1
, , a
n
) sse [/] [= ([a
1
], . . . , [a
n
]).
33
Dimostrazione. Che sia unequivalenza segue subito dal fatto che gli assiomi
di identit`a del gruppo (A) sono veri in /, e che le f
[A]
e P
[A]
siano bene denite
segue dal fatto che in / sono veri gli assiomi di identit`a del gruppo (B). Lasserto
(iii) si dimostra per induzione sulla complessit`a di . Innanzitutto, per induzione
su t, si mostra che per ogni termine t(x
1
, , x
n
) e per ogni a
1
, , a
n
/, `e
t
[A]
([a
1
], . . . , [a
n
]) = [t
A
(a
1
, , a
n
)].
Da questo e dalla denizione di P
[A]
segue subito che, posto per comodit`a
[a] = ([a
1
], . . . , [a
n
]), si ha:
[/] [= P(t
1
([a]), . . . , t
k
([a])) sse / [= P(t
1
(a), . . . , t
k
(a)).
Quindi lasserto vale per le formule atomiche.
I passi induttivi corrispondenti ai connettivi sono pressoch`e banali.
Per quanto riguarda i passi corrispondenti ai quanticatori, trattiamo il caso ,
lasciando per esercizio il caso . Sia dunque (x
1
, , x
n
) = y(x
1
, , x
n
, y).
Per ogni a
1
, , a
n
/, si ha:
/ [= y(a
1
, , a
n
, y) sse esiste un b / tale che / [= (a
1
, , a
n
, b).
Per ipotesi induttiva, questo `e vero sse esiste un b / tale che [/] [= ([a], [b]),
e quindi sse [/] [= x([a], x).
Questo completa la dimostrazione.
Teorema 9.16 Sia un insieme di formule chiuse di un linguaggio / con
identit`a e sia I(/) linsieme degli assiomi di identit`a di /. Le seguenti sono
equivalenti:
(i) `e soddisfacibile in una struttura con identit`a.
(ii) I(/) `e soddisfacibile.
Dimostrazione. (i) (ii). Se / `e una struttura con identit`a che soddisfa ,
/ soddisfa anche I(/), e quindi I(/) `e soddisfacibile.
(ii) (i). Se /`e una struttura (non necesssariamente con identit`a) che soddisfa
I(/), la struttura [/] costruita come nel Lemma 9.15 soddisfa le stesse
formule chiuse vere in /, per il punto (iii) del Lemma 9.15. Quindi [/] [= .
Inoltre, si ha [/] [= [a] [b] sse / [= a b sse [a] = [b]. Quindi `e interpretato
nelluguaglianza, e pertanto [/] `e una struttura con identit`a. Ne segue che `e
soddisfatto in una struttura con identit`a come si voleva.
Corollario 9.17 (Teorema di Compattezza per la logica al primo ordine con
identit`a). Sia un insieme di formule di un linguaggio con identit`a. Allora
`e soddisfacibile in una struttura con identit`a sse `e nitamente soddisfacibile in
una struttura con identit`a.
34
Dimostrazione. Un verso `e banale. Per laltro verso, posso ancora una volta
ricondurmi al caso in cui sia costituito solo da formule chiuse. Ora, supponi-
amo che ogni sottoinsieme nito
0
di sia soddisfacibile in una struttura con
identit`a. Ne segue che per il teorema precedente
0
I(/) `e soddisfacibile, e
quindi a maggior ragione ogni sottoinsieme nito di I(/) `e soddisfacibile.
Per il Teorema di Compattezza, I(/) axe soddisfacibile, e per il teorema
precedente, `e soddisfacibile in una struttura con identit`a.
Conseguenze del Teorema di Compattezza. La dimostrazione del Teo-
rema di Compattezza in realt`a mostra che un insieme nitamente soddisfacibile
di formule di un linguaggio di cardinalit`a `e soddisfacibile in una struttura
di cardinalit`a se lavoriamo nella logica senza identit`a, e di cardinalit`a
se lavoriamo nella logica con identit`a. Questo comporta il seguente apparente
paradosso:
Paradosso di Lowenheim-Skolem. Supponiamo che ZF sia nitamente sod-
disfacibile. Allora, dalla dimostrazione del Teorema di Compattezza (per la
logica con identit`a), ZF `e soddisfacibile in una struttura / la cui cardinalit`a `e
al massimo quella del linguaggio di ZF, cio`e
0
. In /, linsieme dei naturali
`e numerabile. Poich`e lassioma dellinsieme potenza vale in /, dentro / posso
costruire T(), che, essendo un sottoinsieme dellinsieme numerabile /, `e nu-
merabile. Quindi T() e hanno la stessa cardinalit`a, contro il Teorema di
Cantor (che vale in /, essendo / un modello di ZF). Abbiamo cos` un assurdo,
che apparentemente dimostra che ZF non `e nitamente soddisfacibile.
Il paradosso `e per`o solo apparente: bisogna infatti distinguere fra il vero T()
e T() nel senso di / (infatti non tutti i sottoinsiemi di sono in /, dato che
/ `e numerabile) e fra essere numerabile e lessere numerabile in /, in quanto
certe biiezioni con potrebbero non essere in /. Linsieme T() nel senso di
/ `e infatti numerabile, poich`e `e un sottoinsieme di /, ma non `e numerabile
nel senso di /, in quanto le biezioni da T() (nel senso di /) e non sono
elementi di / (del resto, non stupisce che molte biiezioni non siano presenti in
/, in quanto ad esempio le biiezioni da in se sono un insieme non numerabile,
mentre / `e numerabile, quindi la maggior parte delle biiezioni di in se non
sono in /).
Analisi non-standard. Come `e noto, nellanalisi classica non vi sono numeri
innitesimi n`e numeri inniti. Ogni volta che serve il concetto intuitivo di in-
nitesimo o di innito, come ad esempio nel concetto di limite, si rimedia con la
solita denizione . Sarebbe bello per`o usare gli innitesimi e gli inniti come
oggetti reali, e non attraverso la metafora degli . Ora, si pu`o dimostrare
lesistenza di campi non-Archimedei in cui valgono tutte le propriet`a al primo
ordine che sono vere nei reali. In tali campi, `e possibile disporre di innitesimi
ed inniti, pur salvando le propriet`a al primordine di R. Utilizziamo il linguag-
gio dei campi arricchito con tutti i simboli di costante, di funzione e di pedicato
che ci servono, ad esempio possiamo aggiungere un simbolo di costante per ogni
35
reale, un simbolo di funzione per ogni fnzione reale, ed un simbolo di predicato
per ogni relazione su R. Sia linsieme delle formule di tale linguaggio che sono
vere nella struttura dei reali arricchita in cui ciascun simbolo `e interpretato in
ci`o che rappresenta (e.g., la costante per sar`a interpretata in , il simbolo di
funzione per e
x
sa`a interpretato nella funzione e
x
, etc.). Per abuso di linguag-
gio, chiamiamo tale struttura arricchita ancora con R.
Aggiungiamo a una nuova costante c, e gli assiomi c > 0, c > 1, c > 2, . . . ,
etc., ottenendo un insieme

. Ogni sottoinsieme nito


0
di

`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

`e nitamente soddisfacibile, e per il Teorema di


Compattezza, esso `e soddisfacibile. Sia R

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 gli assiomi (c

) per ogni , <


con ,= . Si dimostri che

`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

nel seguente modo:


Se A non ha quanticatori esistenziali, A

= A.
Se A = xB, allora A

= B(x/c), dove c `e un simbolo di costante che non


appartiene al linguaggio di A.
Se A = x
1
. . . x
n
yB, 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

= B(x/c). Se A `e soddisfacibile, detta /


una struttura tale che / [= A, esiste un a / tale che / [= B(x/a). Aggiungo
a / linterpretazione di c in a, ottenendo una struttura /

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

denita per ogni a


1
, , a
n
/, da f
A

(a
1
, , a
n
) =
b(a
1
, , a
n
). Sia /

la struttura per il linguaggio di A

ottenuta da / aggiun-
gendo linterpretazione di f in f
A

. Si ha, per ogni a


1
, , a
n
/:
/

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

I. Ovviamente, un insieme I di formule si dice soddisfacibile se


esiste una valutazione V che lo soddisfa.
Dal punto di vista della soddisfacibilit`a possiamo dunque identicare un in-
sieme I di formule con

I, che `e un insieme (possibilmente innito) di clausole.


Quindi possiamo ricondurci al problema della soddisfacibilit`a (proposizionale)
42
di insiemi (niti o inniti) di clausole.
Come `e ovvio, se `e un insieme di clausole e C `e una clausola, diciamo che
[= C se ogni valutazione che soddisfa soddisfa anche C.
Lunica regola che useremo `e la seguente Regola di Risoluzione Proposizionale:
(R)
C, L D, L
C, D
ove L `e un qualunque letterale, e C, D sono clausole arbitrarie. Diciamo allora
che C, D `e ottenuto da C, L e da D, L con un passo della regola di risoluzione,
e scriviamo: C, D R(C, L; D, L).
In modo pi` u formale, se C, D, E sono clausole, diciamo che C R(D; E) sse
esistono clausole D

ed un letterale L tali che:


D = D

, 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

()) se esiste una


sequenza nita di clausole C
1
, . . . , C
n
tale che:
C
n
= C.
Per i = 1, . . . , n si ha che o C
i
, o esistono j, k < i tali che C
i

R(C
j
; C
k
).
Il seguente Lemma `e pressoch`e banale, e la sua dimostrazione viene lasciata per
esercizio.
Lemma 11.1 Sia un insieme di clausole, e sia C una clausola. Se 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

= Dp, e per ogni E


2
, pongo E

= Ep.
Pongo poi
4
= D

: D
1
, E
2
, e
5
=
0

4
. Evidentemente,

5
R

(). Inoltre, p non compare in


5
, e le altre variabili in
5
sono anche
in . Pertanto
5
ha n variabili.
Lemma 11.3
5
`e insoddisfacibile.
Dimostrazione. Sia per assurdo V una valutazione che soddisfa
5
. Si ha
subito che V soddisfa
0
, essendo
0

5
. Deduco un assurdo dimostrando
che `e soddisfacibile. Distinguo due casi:
(a) Per ogni D
1
, V soddisfa D

. In questo caso, sia V

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

soddisfa , contro lipotesi.


(b) Esiste un D
1
tale che V non soddisfa D

. Per ogni E
2
, V soddisfa
E

, in quanto essendo D


5
, V soddisfa D

, e quindi, non
soddisfacendo D

, deve necessariamente soddisfare E

. Si noti che questo


vale per ogni E
2
. Quindi possiamo fare un ragionamento simmetrico a
quello fatto nel punto (a), concludendo che la valutazione V

che coincide
con V sulle variabili diverse da p e tale che V

(p) = 1 soddisfa , contro


lipotesi.
Sono arrivato ad un assurdo dovuto allaver assunto che
5
fosse soddisfacibile,
ed il lemma `e dimostrato.
Concludo la dimostrazione del teorema di completezza. Per quanto visto prima,

5
R

(), ed ha solo n variabili. Inoltre per il lemma precedente,


5
`e
insoddisfacibile. Per ipotesi induttiva, 2 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

() contiene solo quelle variabili. Ora con un numero nito di variabili


possiamo ottenere solo un numero nito di clausole, per cui prima o poi arriv-
iamo ad un punto a partire dal quale risolvendo non si ottengono pi` u clausole
nuove. Se arrivati a questo punto non abbiamo ancora ottenuto 2, signica che
era soddisfacibile.
Esempio. Consideriamo le clausole:
(1) p, q
(2) q, r
(3) r
(4) p.
Risolvendo fra le (1), (2), (3) e (4) si ottengono le seguenti clausole:
(5) p, r
46
(6) q
A questo punto, risolvendo fra le (1), . . . , (6) le clausole otenute sono ancora
fra le (1), . . . , (6), e quindi non si ottegono nuove clausole. Pertanto la clausola
vuota non `e ottenibile tramite risoluzione dall (1), . . . , (4). Questa situazione
pu`o essere analizzata in un contesto un po pi` u generale: ognuna della (1), . . . ,
(4) contiene almeno un letterale negato, e risolvendo fra clausole aventi cias-
cuna almeno un letterale negato si ottengono clausole aventi ancora almeno un
letterale negato, e quindi non si pu`o ottenere 2.
Che vantaggi pu`o avere luso del metodo di risoluzione proposizionale rispetto
al metodo brutale consistente nel considerare i valori di verit`a della formula
rispetto a tutte le valutazioni? Ovviamente il secondo metodo richiede di con-
siderare un numero di valutazioni esponenziale nel numero delle variabili della
formula, ma anche il metodo di risoluzione ha in genere complessit`a esponen-
ziale. Tuttavia vi `e un caso in cui il metodo di risoluzione, a dierenza del
metodo brutale, ha complessit`a polinomiale, vale a dire il caso in cui le clausole
contengono al pi` u un letterale positivo. Questo caso `e trattato nel capitolo sulla
complessit`a.
12 Risoluzione al primo ordine
Per passare dal caso proposizionale al caso predicativo, ricordiamo che il Teo-
rema di Herbrand ci assicura un insieme `e insoddisfacibile sse
g
`e propo-
sizionalmente insoddisfacibile. Scriviamo
g
in forma clausale, ottenendo un
insieme
g
C
di clausole ground. Il Teorema di Completezza per la risoluzione
proposizionale garantisce che `e insoddisfacibile sse 2 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) per induzione sulla lunghezza k di E come segue:


Se k = 0, cio`e se E = , allora

(E) = .
Supponiamo di aver denito

(E

) per ogni espressione 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

ottenuta da D attraverso una ridenominazione delle vari-


abili e non avente variabili in comune con C;
(ii) Due insiemi niti non vuoti di letterali X C e Y 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

()) sse esiste una sequenza nita C


1
, . . . , C
n
di clausole tali che C
n
= C,
e per i = 1, . . . , n, o C
i
, o esistono j, h < i tali che C
i
RFO(C
j
; C
h
).
Si vede subito che un insieme di clausole `e insoddisfacibile sse 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

(). Questo risultato, che costituisce il teorema di completezza per


la rsoluzione al primo ordine, verr`a dimostrato nel prossimo paragrafo. Per il
momento, vediamo alcuni esempi.
Esempi. Dimostriamo che la formula
(x(P(x) Q(x)) (z(P(z) uQ(u)))
`e valida. A tal ne, osserviamo che la negazione della nostra formula `e equiv-
alente alla formula x(P(x) Q(x))&zu(P(z)&Q(u)). Questultima `e
insoddisfacibile sse linsieme di clausole
= x(P(x) Q(x)), zu(P(z)&Q(u))
`e insoddisfacibile. Passando alla Skolemiana e alla forma clausale, otteniamo:
le clausole: C = P(x), Q(x), D = P(z), E = Q(f(z)). Risolvo C con
D (non vi `e bisogno di ridenominare le variabili, poich`e non vi sono variabili
comuni). Unico allora P(x) con il complemento di P(z), ottenuendo lm.g.u.
= x, z) e usando la risoluzione proposizionale, ottengo Q(z). Risolvo
55
ora questa con E. Questa volta ridenomino la variabile z in E, ottenendo
E

= Q(f(w)). Unico ora Q(z) con il complemento di Q(f(w)), otte-


nendo lm.g.u. = (z, f(w)). Applicando alle due clausole tale m.g.u. ottengo
Q(f(w)) e Q(f(w)), e applicando la risoluzione proposizionale ottengo 2.
Consideriamo ora la formula (P(0)&x(P(x) P(S(x)))) xP(x), che es-
prime il principio di induzione relativo al predicato P. Ci chiediamo se la for-
mula `e valida o no. Prendendo la negazione e scrivendola in forma clausale
(saltiamo alcuni ovvi passaggi intermedi), otteniamo le clausole: C = P(0),
D = P(x), P(S(x)), E = P(c). Possiamo solo risolvere fra C e D, unif-
icando P(0) con il complemento di P(x). Otteniamo lm.g.u. = (x, 0), e
la clausola P(S(0)). Risolvendo questa con D, otteniamo P(S(S(0))), che
possiamo ancora risolvere con D ottenendo P(S(S(S(0)))), etc. Non occorre
chiamarsi Kurt Godel per capire che cos` si va poco lontano. In eetti, linsieme
considerato risulta soddisfacibile: basta prendere luniverso di Herbrand in cui
P(t) vale sse o t = 0 o esiste un n 0 tale che t = S(. . . S(0) . . .)
. .
n volte
. Per ora
non avremmo potuto concludere che linsieme `e soddisfacibile (e quindi che la
formula in questione non `e valida) solo dal fatto che `e impossibile derivare 2 da
C, D ed E. Come abbiamo detto, nel prossimo paragrafo dimostreremo anche
laltro verso: se un insieme di clausole al primo ordine `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

() ed una sostituzione tali che

(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

() ed una sostituzione tale che 2 =

(C

). Questultima
condizione `e possibile solo se 2 = C

, e quindi solo se 2 RFO

(). 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 per qualche sostituzione , e lasserto


`e immediato. Supponiamo che C sia dedotta da D e da E risolvendo rispetto
ad un letterale ground L. In altre parole, supponiamo che D = F, L, E = G,

L,
(ove al solito usiamo la virgola invece del simbolo di unione), che L / F e

L / G,
e che C = F, G. Per ipotesi induttiva, esistono clausole D

, 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

ed una sostituzione tali che C =

(C

). Ridenomino
le variabili in E

, in modo che nella clausola E

cos` ottenuta non vi siano


variabili in comune con D

. Per ogni variabile v E

, chiamo la sua nuova


denominazione con v

. Sia la sostituzione denita, per ogni variabile w, come


segue:
Se per ogni variabile v in E

`e w ,= v

, allora (w) = (w).


Se w = v

per qualche v in D

, allora (w) = (v).


Si vede subito che

[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

. Inoltre, dalla denizione


di m.g.u. segue che esiste una sostituzione tale che = . Riassumendo,
abbiamo la seguente situazione:
F, L = D =

[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

], come si voleva. Questo conclude la dimostrazione del


Lifting Lemma, e quindi la dimostrazione del Teorema di Completezza per la
risoluzione al ptimo ordine.
16 Il concetto intuitivo di funzione computabile
Se volessimo esprimere in modo informale il concetto di funzione computabile,
potremmo dire che f `e computabile se esiste un insieme nito di istruzioni
non ambigue e deterministiche tale che un agente (umano o meccanico), dato
comunque un valore x in ingresso, eseguendo alla lettera le istruzioni, e senza
bisogno di particolare intelligenza o abilit`a, ottenga come risultato loutput f(x)
se x Dom(f), e non ottenga alcun risultato (e.g. poich`e la computazione
prosegue allinnito) altrimenti. Precisiamo inoltre che:
Non sono ammesse istruzioni vaghe, che dipendano ad esempio dai gusti
o dalle opinioni delloperatore.
Le istruzioni non possono richiedere operazioni casuali come il lancio di
un dado o di una moneta.
Ad ogni passo del procedimento di calcolo deve essere possibile applicare
al pi` u una istruzione, e questa deve prevedere in modo univoco le azioni
dellopera- tore. Non sono quindi ammesse scelte fra varie azioni possibili.
La computazione deve dipendere solo dalle istruzioni e dallinput, e non da
fattori esterni (e.g. non pu`o dipendere dalle condizioni metereologiche).
Ribadiamo che un operatore preciso e scrupoloso, ma non dotato di parti-
colare intelligenza deve essere in grado di eseguire le istruzioni passo dopo
passo.
58
Non poniamo invece alcun limite al tempo necessario ad eseguire la com-
putazione, n`e allo spazio di memoria richiesto. Lidea infatti `e quella di
descrivere non tanto le funzioni sicamente computabili, ma piuttosto le
funzioni teoricamente computabili.
Quindi una funzione pu`o essere computabile nel nostro senso, pur richiedendo un
numero di computazioni elementari pari allet`a delluniverso espressa in secondi,
e uno spazio di memoria pari a un miliardo di volte il contenuto dellEnciclopedia
Britannica.
Esempio. La somma di due numeri naturali `e intuitivamente computabile: un
semplice algoritmo `e quello che viene insegnato alle scuole elementari.
Esempio. La dierenza di due numeri naturali `e intuitivamente computabile,
ma questa volta il risultato pu`o non essere un numero naturale.
`
E opportuno sottolineare n dora la dierenza che sussiste fra funzione com-
putabile ed algoritmo che la computa. Possiamo pensare ad una funzione come
ad una scatola nera in cui in corrispondenza ad ogni ingresso di un valore in in-
put esce un valore output senza che sia visibile il modo in cui loutput `e prodotto.
Un algoritmo `e invece un metodo per computare la funzione. Facciamo presente
che la stessa funzione pu`o essere computata da pi` u algoritmi. Ad esempio, la
somma pu`o essere eseguita in base dieci con il solito metodo, ma pu`o essere anche
calcolata scrivendo prima gli addendi in notazione unaria, poi giustapponendo
le due stringhe e ottenendo la somma in notazione unaria, ed inne passando
dalla notazione unaria a quella decimale. Ovviamente il secondo metodo `e molto
pi` u lento, ma `e anchesso ammissibile.
La dierenza fra le funzioni e gli algoritmi che le computano `e simile alla dif-
ferenza fra i teoremi e le loro dimostrazioni, o fra gli insiemi e le loro denizioni.
Nel seguito tenteremo di dare delle denizioni formali del concetto intuitivo di
funzione computabile descritto sopra.
17 Flow charts
I ow charts costituiscono un tentativo di formalizzazione abbastanza naturale
del concetto di funzione computabile. Essi ricordano da vicino i moderni pro-
grammi.
Denizione 17.1 Un ow chart `e un grafo orientato etichettato che consta di:
59
Un ingresso in cui vengono richiesti i valori in input (che supponiamo
codicati da numeri naturali).
Una o pi` u uscite a cui pu`o eventualmente arrivare loutput della com-
putazione. Ogni uscita contiene una dichiarazione del tipo: OUTPUT =
Z, ove Z `e una opportuna variabile.
Alcuni blocchi di istruzioni, ciascuna delle quali `e del tipo: X Y (poni-
amo X uguale a Y ), o X 0 (poniamo X uguale a zero), o X := X + 1
(aggiorniamo il valore di X aggiungendogli una unit`a), o X := X 1
(aggiorniamo il valore di X togliendogli una unit`a); possibilmente, al-
cune distinzioni per casi, espresse tramite istruzioni interrogate del tipo
X = Y ?.
Un insieme di frecce che collegano fra loro i blocchi di istruizioni, tali che da
ciascun blocco di istruzioni non interrogate parta al massimo una freccia, e
dalle istruzioni interrogate partano due frecce, una corrispondente al caso
SI, e laltra corrispondente al caso NO.
Una volta ricevuto linput, che pu essere costituito da un numero o da una
n-upla di numeri, loperatore deve partire dal blocco di ingresso, e di volta in
volta eseguire le eventuali istruzioni contenute nel blocco e proseguire nel senso
indicato dalle frecce no ad arrivare ad una delle uscite. Il valore aggiornato
della variabile di output quando si arriva ad una delle uscite `e per denizione
il risultato della computazione. Si noti che un ow-chart pu`o anche avere dei
loops, per cui `e possibile che una computazione tramite ow-chart non termini.
Denizione 17.2 Una funzione f : N
k
N si dice ow-chart computabile se
esiste un ow chart F tale che per ogni n
1
, . . . , n
k
, n N si abbia:
f(n
1
, . . . , n
k
) = n sse dando in input a F i numeri
n
1
, . . . , n
k
ed eseguendo le istruzioni di F, la computazione termina con output
n.
Esercizio. Trovare un ow-chart che computa la funzione f(x) = 2x.
Esercizio. Trovare un ow-chart che computa la funzione f(x) = 2
x
.
Esercizio. Trovare un ow-chart che computa una funzione parziale, denita
solo sugli input che sono numeri pari.
18 Macchine di Turing e funzioni Turing-computabili
Introduciamo ora un nuovo modello della computabilit`a, vale a dire le funzioni
computabili tramite una macchina di Turing. Come vedremo, le funzioni com-
putabili in questo nuovo senso dieriscono dalle funzioni ow-chart computabili
60
per il fatto di agire su stringhe nite anzicch`e su numeri. La dierenza `e per`o
solo apparente, in quanto le stringhe su un alfabeto nito possono essere codi-
cate attraverso numeri. Una volta identicata una stringa con la sua codica, `e
possibile dimostrare che le funzioni Turing-computabili sono esattamente quelle
ow-chart computabili. Il modello che introduciamo ora, dovuto ad Alan Tur-
ing, bench`e in apparenza molto rudimentale, `e il precursore di tutti i linguaggi
di programmazione, e, modulo codiche, `e in grado di simularli perfettamente.
Denizione 18.1 (Turing 1936). Una macchina di Turing `e un dispositivo
costituito da:
Un alfabeto nito A di almeno due elementi, a cui appartengono tutti i
caratteri stampabili dal cursore, e che include un simolo B (blank) per la
casella vuota.
Un nastro innito in entrambe le direzioni suddiviso in caselle (ordinate
come Z).
Un cursore che scorre lungo il nastro, e che ad ogni istante pu`o sostituire
un carattere con un altro, (scrivere B al posto di un carattere a equivale
a cancellare a), spostarsi di un passo a destra e spostarsi di un passo a
sinistra.
Un input, costituito da una parola (nita) sullalfabeto A B, scritto
di seguito nel nastro a partire dalla casella immediatamente a destra della
posizione iniziale del cursore.
Un insieme nito di stati q
0
, q
1
, . . . , q
n
.
Un insieme nito S di istruzioni, costituite da quintuple q
i
abvq
j
, ove q
i
, q
j
sono stati, a, b sono elementi dellalfabeto, e v pu`o essere L (sposta il
cursore di una casella a sinistra, R (sposta il cursore di una casella a
destra) o I (tieni fermo il cursore).
Nel caso delle macchine di Turing deterministiche che `e quello che noi
studiamo, si richiede anche che in S non vi siano quintuple distinte che
abbiano in comune i primi due caratteri.
La quintupla q
i
abvq
j
va interpretata come segue: se ad un qualsiasi passo della
computazione la macchina si trova nello stato q
i
, e se nella casella in cui `e
posizionato il cursore c`e il simbolo a, il cursore sostituisce a con b (non fa nulla
se a = b), si muove di una casella a sinistra se v = L, a destra se v = R e resta
dovera se v = I, dopodiche passa nello stato q
j
.
Per denizione resta inteso che allinizio della computazione la macchina si trovi
nello stato q
0
, che tutte le caselle con eccezione di quelle su cui `e scritto linput
61
siano vuote (B), e che il cursore sia posizionato nella casella immediatamente a
sinistra dellinput.
La computazione avviene come segue:
Allinizio la macchina si trova nello stato q
0
e il cursore si trova nella casella
B immediatamente a sinistra dellinput. Per poter eseguire il primo passo di
computazione occorre che vi sia una quintupla che inizia con q
0
B. Se non
ve ne sono la computazione termina subito. Altrimenti, essendo la macchina
deterministica, ci pu`o essere solo una istruzione, diciamo q
0
Bavq
i
che inizia con
q
0
B.
La macchina allora rimpiazza B con a, e il cursore si sposta di una casella a
sinistra se v = L, a destra se v = R e resta al suo posto se v = I. Inne la
macchina passa nello stato q
i
.
Sia ora c il carattere scritto nella casella su cui `e posizionato il cursore (si noti
che al passo precedente il cursore pu`o essersi spostato o a destra o a sinistra o
pu`o essere rimasto fermo). Se nessuna istruzione inizia con q
i
c, la macchina si
ferma. Altrimenti, ci pu`o essere una sola istruzione, diciamo q
i
cbwq
j
che inizia
con q
i
c.
In tal caso, il cursore rimpiazza c con b, e si sposta di una casella a sinistra se
w = L, a destra se w = R, e resta fermo se w = I. Inoltre la macchina entra
nello stato q
j
.
Si prosegue in questo modo nch`e la macchina si ferma. Ci`o avviene se e solo
se ad un certo passo della computazione la macchina si trova in un certo stato
q
h
, nella casella in cui `e posizionato il cursore c`e un certo simbolo x, e non c`e
alcuna istruzione che inizia con q
h
x.
Se questa circostanza non si verica mai, la macchina non si ferma mai, cio`e
continua la sua computazione allinnito, e non produce alcun output.
Se invece la circostanza di cui sopra si verica, la macchina si ferma, e per
denizione loutput `e la stringa che compare a destra del cursore al momento
della fermata, no al primo B escluso.
Se `e linput dato alla macchina di Turing M e se M si ferma su input , il
relativo output `e indicato con M().
Denizione 18.2 Sia M una macchina di Turing (deterministica). La funzione
computata da M `e la funzione F
M
, denita per ogni stringa nita sullalfabeto
A B della macchina, da F
M
() = M() se la macchina M sullinput si
ferma, e F
M
() non denita altrimenti.
62
Sia A un alfabeto nito, e sia A

linsieme di tutte le stringhe nite sullalfabeto


A. Una funzione F da S A

ad A si dice Turing-computabile se esiste una


macchina di Turing M sullalfabeto A B che computa F.
Esercizio. Descrivere la computazione eettuata dalla macchina di Turing
q
0
BBq
1
, q
1
01Rq
1
, q
1
10Rq
1
, q
1
BBLq
2
, q
2
00Lq
2
, q
2
11Lq
2
.
Esercizio. Si consideri la machina di Turing M le cui unica istruzione `e:
q
0
BBLq
0
.
Si dimostri che qualunque sia linput la macchina non si ferma mai. Quindi M
computa la funzione vuota.
Esercizio. Descrivere il comportamento della macchina di Turing sullalfabeto
0, 1, B le cui istruzioni sono:
q
0
BBRq
1
, q
1
0BRq
1
, q
1
1BRq
1
.
Esercizio. Sia M la macchina di Turing sullalfabeto 0, 1, B le cui istruzioni
sono:
q
0
BBRq
1
, q
1
00Rq
1
, q
1
11Rq
1
, q
1
BBLq
2
, q
2
01Lq
3
, q
2
10Lq
4
, q
3
00Lq
3
,
q
3
11Lq
3
, q
4
10Lq
4
, q
4
01Lq
3
, q
4
B1Lq
3
.
Sia F
M
la funzione computata da M. Si dimostri che se `e lespansione binaria
di un numero n, F
M
() `e lespansione binaria di n + 1.
Esercizio. Trovare una macchina di Turing che computa la funzione F(x) =
x 1 se x > 0, F(x) = 0 se x = 0. (Conveniamo che sia linput che loutput
siano scritti in binario).
Esercizio. Trovare una macchina di Turing che data una stringa binaria nita
in input, la ricopia a destra lasciando un B fra loriginale e la copia:
= . . . [ B [ . . . [ B [ a
1
[ . . . [ a
n
[ B [ . . . [ B [ . . .
F() = . . . [ B [ . . . [ B [ a
1
[ . . . [ a
n
[ B [ a
1
[ . . .
[ a
n
[ B [ . . . [ B [ . . . .
Le macchine di Turing possono essere usate anche come riconoscitori di lin-
guaggi. Lidea `e la seguente: `e dato un linguaggio L (insieme di stringhe nite
su un certo alfabeto nito A). Si vuole trovare (se possibile) una macchina di
Turing M con le seguenti propriet`a:
(i) Linsieme degli stati di M `e partizionato in due classi disgiunte S
A
(stati
di accettazione) e S
R
(stati di riuto).
(ii) Per ogni parola L, la macchina M su input si ferma in uno stato
q
i
S
A
, cio`e in uno stato di accettazione.
63
(iii) Per ogni parola / L, la macchina M su input o non si ferma o si ferma
in uno stato q
j
S
R
(stato di riuto).
Se queste condizioni sono vericate, si dice che la macchina M riconosce il
linguaggio L.
Se inoltre la macchina si ferma su qualunque input (e quindi per ogni / L si
ferma in uno stato di riuto) si dice che M decide il linguaggio L.
Esercizio. Dimostrare che la macchina di Turing:
q
0
BBRq
1
, q
1
00Rq
1
, q
1
11Rq
2
,
con q
0
, q
1
stati di accettazione e q
2
stato di riuto, decide il linguaggio costituito
da tutte le parole prive di occorrenze di 1.
Esercizio. Trovare una macchina di Turing che decide il linguaggio su 0, 1
costituito da tutte le parole che non hanno due simboli uguali consecutivi.
Esercizio. Trovare una macchina di Turing che decide il linguaggio su 0, 1
costituito da tutte e sole le parole in cui il numero delle occorrenze di 1 non
supera il numero di occorrenze di 0.
Esercizio. Trovare una macchina di Turing che decide il linguaggio su 0, 1
costituito da tutte e sole le parole in cui il numero di occorrenze di 1 `e pari.
Esercizio. Una parola a
0
, a
1
, . . . , a
n
si dice palindroma se per ogni i n,
`e a
i
= a
ni
. Ad esempio, le parole OTTO, AMA, LATAL, (giocatore della
Cekia) INGIRUMIMUSNOCTEETCONSUMIMURIGNI (motto degli indemo-
niati) sono parole palindrome.
Trovare una mcchina di Turing che decide il linguaggio su 0, 1 costituito da
tutte e sole le parole palindrome.
19 Le funzioni parziali ricorsive
Mostriamo ora un terzo tentativo di formalizzazione del concetto di funzione
computabile.
Denizione 19.1 Una funzione parziale da N
k
a N (k 1) `e una funzione f
il cui dominio `e un sottoinsieme S di N
k
(possibilmente S = N
k
oppure S = ),
e il cui codominio `e un sottoinsieme di N. Una funzione f si dir`a totale se
Dom(f) = N
k
.
Si noti che qui totale non `e il contrario di parziale: una funzione totale da da
N
k
a N `e anche una funzione parziale da N
k
a N .
Denizione 19.2 Le seguenti funzioni vengono dette iniziali:
64
La funzione Z(x) = 0 (funzione zero).
La funzione S(x) = x + 1 (funzione successore).
Per ogni n > 0 e per ogni 1 i n, la funzione U
n
i
(x
1
, . . . , x
n
) = x
i
(proiezione i-esima).
Denizione 19.3 Siano f
1
, . . . , f
k
funzioni pariali da N
n
a N, e sia g una
funzione parziale da N
k
a N. La funzione
h(x
1
, . . . , x
n
) = g(f
1
(x
1
, . . . , x
n
), . . . , f
k
(x
1
, . . . , x
n
))
si dir`a ottenuta da f
1
, . . . , f
k
e g per composizione.
Resta inteso che dati x
1
, . . . , x
n
Nad arbitrio, se per almeno un i, f
i
(x
1
, . . . , x
n
)
non `e denita, allora h(x
1
, . . . , x
n
) non `e denita, e che se per i = 1, . . . , k,
f
i
(x
1
, . . . , x
n
) `e denita, posto per i = 1, . . . , k, y
i
= f
i
(x
1
, . . . , x
n
), allora:
Se g(y
1
, . . . , y
k
) non `e denita, allora h(x
1
, . . . , x
n
) non `e denita.
Se g(y
1
, . . . , y
k
) `e denita, allora
h(x
1
, . . . , x
n
) = g(y
1
, . . . , y
k
).
Esercizio. Caratterizzare le funzioni ottenute per composizione (iterata) dalla
funzione zero, dalla funzione successore, dalle funzioni proiezione, e dalla fun-
zione somma.
Esercizio. Caratterizzare le funzioni ottenute per composizione (iterata) dalle
funzioni costanti (unarie), dalle funzioni proiezione, dalla funzione somma e
dalla funzione prodotto.
Denizione 19.4 Sia h una funzione parziale da N
n
a N, e sia g una funzione
parziale da N
n+2
a N. Abbreviamo x
1
, , x
n
con x.
Deniamo induttivamente una funzione parziale f da N
n+1
a N tramite le
clausole:
f(x, 0) = h(x)
f(x, y + 1) = g(x, y, f(x, y))
dove si intende che:
f(x, 0) `e denita sse h(x) `e denita, e in tal caso f(x, 0) = h(x).
Se f(x, y) non `e denita, neppure f(x, y + 1) lo `e.
Se f(x, y) `e denita, posto z = f(x, y), si ha per denizione che f(x, y +1)
`e denita sse g(x, y, z) lo `e, e in tal caso f(x, y + 1) = g(x, y, z).
65
La funzione f di cui sopra si dice ottenuta da h a da g per recursione.
Esempio. La funzione somma `e ottenibile per recursione dalle (o meglio da
una una composizione delle) funzione proiezione e funzione successore.
() x + 0 = x x + (y + 1) = S(x +y)
A rigore, questa denizione non rientra nello schema di denizione per recur-
sione. Infatti, in base a tale schema la somma (operazione binaria) deve essere
denita tramite una funzione h unaria ed una funzione g ternaria. Possiamo
ovviare a tale inconveniente usando opportunamente le funzioni proiezione:
Sia h(x) = U
1
1
(x) g(x, y, z) = S(U
3
3
(x, y, z)).
Per recursione deniamo:
f(x, 0) = h(x) f(x, y + 1) = g(x, y, f(x, y)).
Si ottiene: f(x, 0) = x f(x, y + 1) = S(f(x, y)), che `e essenzialmente la
().

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

ottenendo una sequenza = (s


0
, s
1
, . . . , s
n
).
A questo punto, linsieme codicato da N `e linsieme i n : s
i
= 1
Esempio. Vogliamo codicare linsieme 2, 3, 5. Eseguendo il procedimento,
si arriva alla sequenza
(0, 0, 1, 1, 0, 1).
Invertendo lordine di si perviene alla sequenza
(1, 0, 1, 1, 0, 0),
che `e lespansione binaria di 2
2
+2
3
+2
5
= 44. Lasciamo come esercizio al lettore
di vericare che decodicando 44 si ritorna allinsieme di partenza 2, 3, 5.
73
Esempio. Dato il numero N = 37, determinare linsieme da esso codicato.
Scriviamo 37 in binario:
37 = (1, 0, 0, 1, 0, 1). Scriviamo la sequenza a rovescio: (1, 0, 1, 0, 0, 1). La se-
quenza ha un 1 ai posti 0, 2, 5. Quindi linsieme codicato `e 0, 2, 5.
Passiamo ora alla codica delle coppie ordinate di numeri naturali. A questo
scopo, disponiamo le coppie ordinate di numeri naturali in una matrice innita:
(0, 0) (0, 1) (0, 2) (0, n)
(1, 0) (1, 1) (1, 2) (1, n)
(2, 0) (2, 1) (2, 2) (2, n)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
(n, 0) (n, 1) (n, 2) (n, n)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Percorriamo la matrice lungo le diagonali come mostrato in gura.




.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
La prima diagonale contiene solo (0, 0), la seconda contiene (0, 1) e (1, 0),
. . . , la k-esima contiene (0, k 1), (1, k 2), . . . (k 2, 1), (k 1, 0). Notiamo
che la k-esima diagonale contiene tutte le coppie tali che la somma delle loro
cooordinate sia k 1. Tali coppie sono in numero di k.
Ad ogni coppia (n, m) associamo come codica il numero di passi necessari per
raggiungerla diminuito di 1. Quindi a (0, 0) associamo 0, a (0, 1) associamo 1,
a (1, 0) associamo 2, etc.
Quale sar`a la codica di (m, n)?
Prima di raggiungere (m, n) dovremo innanzitutto percorrere tutte le diagonali
aventi come somma delle componenti 0, 1, . . . , m+n 1.
Sulla prima diagonale c`e un elemento, sulla seconda ce ne sono due, sulla m+
n 1-esima ce ne sono n +m, in totale 1 + 2 +. . . +m+n =
(m+n)(m+n+1)
2
.
Per arrivare a (m, n) dovremo poi percorrere la m + n + 1 esima diagonale
partendo da (0, m+n) no a (m, n), impiegando altri m+ 1 passi.
74
Il numero totale di passi impiegato per arrivare a (m, n) diminuito di 1 `e dunque
(m+n) (m+n + 1)
2
+m.
Denizione 22.1 La codica della generica coppia ordinata (m, n) di numeri
naturali `e per denizione data dal numero (m, n) =
(m+n)(m+n+1)
2
+m. Tale
numero si chiamer`a anche pseudocoppia ordinata formata da m e da n.
Dalla costruzione segue subito che `e una biiezione da NN a N: ogni coppia
(m, n) `e raggiunta dopo un opportuno numero di passi (precisamente (m, n)),
e inoltre ogni coppia compare una sola volta nella matrice, e quindi il numero
di passi necessario a raggiungerla `e univocamente determinato.
Inoltre, `e primitiva ricorsiva, essendo composizione di funzioni primitive ri-
corsive.
Inne, essendo una biiezione, ha una funzione inversa che va da N a NN.
La prima e la seconda proiezione di tale inversa si indicano con
1
e
2
. Si ha
quindi:

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

E chiaro che il programma di una funzione parziale ricorsiva universale (rela-


tivamente alle funzioni parziali ricorsive di n variabili) contiene implicitamente
tutti i programmi per queste ultime: se `e una di tali funzioni, un programma
per `e ottenibile sotituendo in K(x, x) la variabile x con un indice e per .
76
La limitazione sul numero di variabili `e solo apparente: usando le codiche (e
decodiche) di stringhe, potremmo ricondurci al caso di funzioni di una variabile:
detta x la codica di x, basta identicare (x) con (x) e K(x, x) con
K(x, x).
Usando la tesi di Church, ci si pu`o rendere conto che tali programmi esistono:
immaginiamo infatti di codicare tutti i programmi (come abbiamo detto, us-
ando le codiche e le decodiche, possiamo limitarci a programmi che computano
funzioni di una variabile). Consideriamo il seguente programma U:
Programma U
Data una coppia di numeri (n, m) in input, U controlla innanzitutto se n
`e la codica di una istruzione di un programma.
Se non lo `e, U restituisce in output un numero pressato qualsiasi, e.g., 0.
Se lo `e, U decodica n ottenendo un programma P che fa lavorare sullinput
m, e restituisce in output leventuale output di P sullinput m.
Si vede subito che ogni programma P `e simulato dal programma U:
Detta n la codica di P, per ogni x, per calcolare P(x) baster`a far lavorare U
sulla coppia (n, x).
Lesistenza di una funzione universale pu`o essere dimostrata in modo rigoroso.
La dimostrazione `e molto noiosa, tuttavia riteniamo opportuno darne almeno
un cenno.
Iniziamo a codicare le funzioni parziali ricorsive: ricordando che x denota la
codica della n-upla x, deniamo la codica in modo induttivo:
Le funzioni Z(x), S(x) e U
n
i
(x
1
, . . . , x
n
) sono codicate rispettivamente
con 0, 1 e 2, n, i.
Se le funzioni h
1
(x), . . . , h
m
(x) sono codicate rispettivamente da b
1
, . . . , b
m
,
e se g(y
1
, . . . , y
m
) `e codicata da c, allora g(h
1
(x) . . . , h
n
(x)) `e codicata
da 3, b
1
, . . . , b
n
, c.
Se f(x, y) `e ottenuta per recursione (su y) da h(x) e da g(x), e se h e g sono
codicate rispettivamente da a e da b, allora f `e codicata da 4, a, b.
Se g(x, z) `e codicata da a, allora z.g(x, z) 0 `e codicata da 5, a.
Esercizio. Dimostra che ogni funzione parziale ricorsiva ha inniti indici. In
altre parole, vi sono inniti indici per la stessa funzione.
Per ogni funzione parziale ricorsiva (x), e per ogni n-upla a, tale che (a) sia
denita, posto b = (a), deniremo il concetto di albero di computazione di
77
(a) = b. Lidea intuitiva `e quella di rappresentare attraverso un albero tutte
le computazioni necessarie per concludere che (a) = b.
Denizione 23.2 Data una funzione parziale ricorsiva (x), e dati a, b tali che
(a) = b, deniamo lalbero di computazione di (a) = b per induzione come
segue:
La radice dellalbero di computazione sar`a una codica di (a) = b. Se e
denota il numero di codice di , prendiamo come codica di (a) = b il
numero e, a, b.
Sia dato un nodo dellalbero m, c, d, ove c sta per c
1
, . . . , c
k
. Supponi-
amo che tale nodo codichi (c) = d, ove m `e la codica della funzione
parziale ricorsiva .
Se `e una funzione iniziale, allora il nodo m, c, d non ha gli, cio`e non
vi `e nessun nodo sopra di esso.
Se posto y = y
1
, . . . , y
k
, `e (y) = h(g
1
(y), . . . , g
r
(y)), allora, posto g
i
(c) =
d
i
, i gli di m, c, d saranno le codiche di
g
1
(c) = d
1
, . . . , g
r
(c) = d
r
e di h(d
1
, . . . , d
r
) = d,
vale a dire:
m
1
, c, d
1
, . . . , m
r
, c, d
r
e s, d
1
, . . . , d
k
, d,
ove m
1
, . . . , m
r
, s denotano le codiche di g
1
, . . . , g
r
e h.
Se posto per comodit`a:
z = y
1
, . . . , y
k1
, e = c
1
, . . . , c
k1
, y = y
k
, e = c
k
,
`e denita per recursione su y da f(z) e da g(z, y, u), allora posto per
i e,
i
= (e, i), i gli di m, c, d saranno le codiche di
f(e) =
0
, g(e, 0,
0
) =
1
, . . . , g(e, e 1,
e1
) =
e
,
(ove
e
= d).
Se, con le convenzioni di cui ai punti precedenti, (y) = z.(y, z) 0,
posto per i < d, (c, i) = m
i
,= 0, allora i gli di m, c, d sono le codiche
di
(c, 0) = m
1
, . . . , (c, d 1) = m
d1
, (c, d) = 0.
Resta da codicare lalbero di computazione con un numero. Lidea `e semplice:
lalbero pu`o essere denito induttivamente partendo dalle foglie e aggiungendo
ogni volta un nodo sotto alcuni dei suoi sottoalberi.
Quindi la codica pu`o essere eettuata seguendo questo procedimento induttivo:
78
La codica di una foglia n `e n.
Dato un nodo m al di sopra del quale si trovano k sottoalberi T
1
, . . . , T
k
,
se t
1
, . . . , t
k
denotano le codiche di T
1
, . . . , T
k
, la codica del sottoalbero
generato da m (cio`e del sottoalbero costituito da m e da tutti i nodi al di
sopra di esso) `e m, t
1
, . . . , t
k
.
Denizione 23.3 Deniamo: T
n
(e, x, z) sse:
(i) e `e la codica di una funzione parziale ricorsiva n-aria
(ii) Esiste un y tale che z `e la codica dellalbero di computazione di (x) = y.
Supponiamo che e sia un indice di (x), e che T
n
(e, x, y, z) sia vericata. Sap-
piamo allora che z codica lalbero di computazione di (x) = y, e quindi z
codica una sequenza il cui primo elemento `e e, x, y.
Quindi loutput y di sullinput x si ottiene prendendo prima la prima com-
ponente p(z, 1) = e, x, y, della sequenza codicata da z, e poi prendendo la
terza proiezione y della terna codicata da p(z, 1) = e, x, y.
In altri termini, y = p(p(z, 1), 3). Posto allora U(z) = p(p(z, 1), 3), si ha:
Lemma 23.4 (i) T(e, x, z) sse e codica una funzione parziale ricorsiva (x),
e z codica la computazione di (x) = U(z).
(ii) Se (x) ha indice e, l(eventuale) output y di sullinput x `e ottenibile
cercando prima il minimo (e unico) z che codica lalbero di computazione
di (relativamente allindice e) sullinput x, e poi calcolando U(z).
Da (i) segue che la relazione T
n
`e intuitivamente computabile. In eetti, si pu`o
dimostrare di pi` u:
Lemma 23.5 Per ogni n > 0 la relazione T
n
`e primitiva ricorsiva.
La dimostrazione viene omessa. Si veda comunque [Odifreddi 1989], pagg. 90-
96.
Dai lemmi 23.4 e 23.5 segue subito il seguente teorema:
Teorema 23.6 (Teorema di Forma Normale). Per ogni n N 0 esistono
una relazione primitiva ricorsiva T
n
e una funzione primitiva ricorsiva U tali
che per ogni funzione parziale ricorsiva in n argomenti, esiste un numero
naturale e, detto indice di , tale che per ogni x N
n
, sia:
(x) = U(z.C
n
T
(e, x, z) 0).
Come conseguenza, otteniamo:
79
Teorema 23.7 Siano T
n
e U come nel Teorema di Forma Normale. La fun-
zione
K
n
(y, x) = U(z.C
T
n(e, x, z) 0)
`e universale relativamente alla classe delle funzioni parziali ricorsive in n vari-
abili.
Notazione. Per ogni numero naturale e, deniamo:

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

`e ricorsivamente enumerabile, diciamo 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

tale che . . . . Ovviamente tale denizione presuppone come nota


la denizione di C

, che a sua volta pu`o essere denito tramite un altro


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

E interessante notare come la classe degli enunciati reali contenga i princi-


pali teoremi della teoria dei numeri (in particolare, il teorema di Fermat),
cos` come molti problemi aperti, come la congettura di Goldbach (ogni
numero pari `e somma di due numeri primi).
Ora lidea di Hilbert era che per la dimostrazione degli enunciati reali veri
potessero bastare i metodi nitari, per cui una condizione naturale per
lada- bilit`a dei metodi transniti era che ogni enunciato reale dimostra-
bile con metodi transniti fosse anche dimostrabile con metodi nitari. In
altre parole, i metodi transniti, pur potendo semplicare le dimostrazioni
e renderle pi` u eleganti, dovevano, almeno in linea teorica, essere eliminabili
nella trattazione dei problemi della matematica nitaria.
Hilbert riduceva poi questo obiettivo ad uno apparentemente pi` u sem-
plice: quello della dimostrazione della coerenza (non contradditoriet`a)
della matematica astratta del transnito con metodi nitari.
Il ragionamento proposto era il seguente:
94
Sia T una teoria forte in cui si possano sviluppare metodi transniti (e.g.,
T potrebbe essere una delle tante teorie degli insiemi), e sia F una teoria
debole in cui solo i metodi nitari siano formalizzabili, ma abbastanza
forte da formalizzare le computazioni primitive ricorsive.
Supponiamo che la coerenza di T sia dimostrabile in F, e dimostriamo che
ogni enunciato reale dimostrabile in T `e dimostrabile in F.
Sia x
1
. . . x
n
P(x) un enunciato reale dimostrabile in T, con P
primitiva ricorsiva.
In F formalizziamo il seguente ragionamento:
Supponiamo . Allora
x
1
. . . x
n
P(x).
Sia a tali che P(a). Allora, essendo il complemento di P primitivo ricor-
sivo, T con una semplice computazione vericherebbe che P(a). Quindi
T . Poich`e T , T non sarebbe coerente, assurdo.
(Ricordiamo che stiamo assumendo che F dimostri la coerenza di T).
Quindi F dimostra . Per larbitrariet`a di , concludiamo che se F di-
mostra la coerenza di T, F dimostra tutti gli enunciati reali dimostrabili
in T, che `e quello che si desidera.

E importante sottolineare che, secondo il Programma di Hilbert, la di-


mostrazione della coerenza di T doveva essere nitaria. Per chiarire le
idee, consideriamo una teoria T i cui assiomi siano le propriet`a ovvie
della somma, del prodotto e dellordine in N pi` u il principio di induzione.
Proponiamo una dimostrazione non nitaria della coerenza di T, che per
quanto intuitivamente convincente sarebbe stata considerata inaccettabile
da Hilbert:
(a) Tutti gli assiomi sono veri in N.
(b) La deduzione conserva la verit`a in N.
(c) Nessuna proposizione assurda `e vera in N.
(d) Ergo nessuna proposizione assurda `e derivabile dagli assiomi dellaritmetica.
Una dimostrazione del genere non `e nitistica, poich`e essa fa riferimento
alla totalit`a dei numeri naturali, che `e una totalit`a innita.
Se il programma di Hilbert avesse avuto successo, sarebbe stato possibile pro-
porre i sistemi formali come soluzione di tutti i problemi fondazionali. Certa-
mente, il fatto che ogni problema matematico fosse potenzialmente risolubile da
95
una macchina avrebbe notevolmente diminuito il fascino della matematica, ma
probabilmente questo aspetto veniva considerato, per usare termini moderni,
un eetto collaterale inevitabile.
Anche se personalmente sono contento che il programma di Hilbert sia fallito,
va detto che a priori il programma era pi` u che ragionevole. Infatti, anche se
i metodi propri di teorie forti come le teorie degli insiemi non sono nitari,
la nozione di dimostrazione lo `e, per cui non era aatto assurdo pensare che si
potessero tenere sotto controllo le dimostrazioni di tale sistema forte con metodi
nitari, arrivando ad una dimostrazione di coerenza nitistica.
Il Programma di Hilbert fu messo in crisi dai teoremi di incompletezza di Godel
e di Church. Prima di enunciare tali teoremi abbiamo bisogno di introdurre
alcune nozioni di base sui sistemi per laritmetica.
26 Sistemi formali per laritmetica
Denizione 26.1 La teoria Q `e denita come segue:
(a) Il linguaggio di Q ha come simboli non logici il simbolo predicativo binario
L (il cui signicato inteso `e costituito dalla relazione dordine in N), i
simboli di funzione binaria A e P (che denotano rispettivamente somma e
prodotto in N), il simbolo di operazione unaria S (successore), e il simbolo
di costante 0 (lo zero).
Seguendo una tradizione consolidata, scriveremo:
x y al posto di L(x, y),
x +y al posto di A(x, y), e
x y al posto di P(x, y).
Questo `e un abuso di linguaggio, anche perch`e in questo modo confon-
diamo tipogracamente il simbolo logico con la sua interpretazione, ma
questa notazione illecita `e cos` comoda e naturale da indurci a sacricare
il formalismo pur di aiutare lintuizione.
(b) Gli assiomi di Q sono gli assiomi logici (inclusi gli assiomi di identit`a) pi` u
i seguenti:
(Q0) x(S(x) = 0)
(Q1) xy(S(x) = S(y) x = y)
(Q2) x(x = 0 y(S(y) = x))
(Q3) x(x + 0 = x)
(Q4) xy(x +S(y) = S(x +y))
96
(Q5) x(x 0 = 0)
(Q6) xy(x S(y) = (x y) +x)
(Q7) xy(x y z(x +z = y))
(Q8) xy((x y&y x) x = y)
(Q9) xy(x y y x)
(Q10) xyz((x y&y z) x z)
(Q11) xy((y S(x)) (y x y = S(x)))
(c) Le regole logiche sono:
Modus Ponens:
A A B
B
e GEN:
A
xA
.
I primi tre assiomi riguardano loperazione di successore, e dicono che 0 non `e
il successore di nessun numero, che loperazione di successore `e iniettiva, e che
ogni numero diverso da 0 ha un predecessore.
Gli assiomi (Q3) . . . (Q6) costituiscono le equazioni denitorie della somma e
del prodotto tramite la recursione.
Lassioma (Q7) denisce lordine di N attraverso la somma, e gli assiomi (Q8),
(Q9) e (Q10) garantiscono che sia un ordine totale.
Inne (Q11) dice che per ogni numero naturale x non esiste nessun numero
naturale compreso fra x e x + 1.
Notazione. Deniamo per ogni numero naturale n il simbolo n per induzione
su n.
0 `e gi`a denito come lunico simbolo di costante del linguaggio di Q (il simbolo
che denota 0).
Deniamo poi n + 1 = S(n).
Nel seguito useremo x < y come abbreviazione per
x y&(y x).
Denizione 26.2 Sia (x, y) una formula nelle variabili libere indicate. Con
IND() denotiamo la formula:
x(((x, 0)&y((x, y) (x, S(y))) y(x, y)),
dove x `e una abbreviazione per x
1
. . . x
n
.
La teoria PA (Aritmetica di Peano al primo ordine) `e la teoria nel cui linguaggio
di Q ottenuta aggiungendo agli assiomi e alle regole di Q lo schema
IND() : formula di Q.
97
Esercizio. Dimostra che Q x(x x).
Esercizio. Dimostra che Q x(0 x). [Lesercizio sarebbe banale se potes-
simo dimostrare in Q la commutativit`a della somma, ma questo non `e possibile].
Diamo una dimostrazione informale, che per`o utilizza solo gli assiomi di Q, e
quindi pu`o essere formalizzata in Q. Sia x arbitrario, e dimostriamo che 0 x.
Lasserto `e ovvio se x = 0. Altrimenti lassioma (Q2) garantisce che esiste un y
tale che x = S(y).
Supponiamo allora per assurdo (0 x)). Allora per lassioma (Q9), x =
S(y) 0, e per lassioma (Q7) esiste uno z tale che S(y) +z = 0.
Non pu`o essere z = 0, altrimenti per (Q3) otterremmo S(y) = 0, che contrasta
con (Q0). Per lassioma (Q2), esiste quindi un u tale che z = S(u). Da questo
si deduce che S(y) +S(u) = 0.
Ma per lassioma (Q4) otterremmo S(y) + S(u) = S(S(y) + u) = 0, il che
contrasta con lassioma (Q0).
Il seguente lemma dimostra che Q `e abbastanza forte da formalizzare le com-
putazioni elementari.
Lemma 26.3 Siano n, m, k N. Allora:
(o) Se n = m allora Q n = m e se n ,= m allora Q (n = m).
(i) Se n+m = k allora Q n+m = k, e se n+m ,= k allora Q (n+m =
k).
(ii) Se n m = k allora Q n m = k, e se n m ,= k allora Q (n m = k).
(iii) Se n m allora Q n m, e se n > m allora Q n m.
Dimostrazione. Dimostriamo solo (o) e (i), e diamo solo uno sketch delle
dimostrazioni di (ii) e (iii).
(o). Se n = m allora n e m sono sintatticamente uguali, onde Q n = m
(istanza di un assioma di identit`a). Supponiamo ora n ,= m. Senza perdita di
generalit`a supponiamo n < m, diciamo m = n + k con k > 0. Baster`a allora
dimostrare che se k > 0 allora per ogni n, Q (n +k = n). Ragioniamo
per induzione su n. Se n = 0 allora Q (S(k 1) = 0) (istanza dellassioma
(Q0)). Supponiamo vero lasserto per n = h, e dimostriamolo per n = h +1. Si
ha:
() Q n +h + 1 = h + 1 n +h = h
(istanza dellassioma (Q1)), e:
() Q (n +h = h)
(ipotesi induttiva). Dalla () e dalla () si deduce:
Q (n +h + 1 = h + 1),
98
e la dimostrazione del passo induttivo `e completa.
(i). Dimostriamo prima per induzione su m che
n +m = k Q n +m = k.
Se m = 0 e n + m = k allora n = k, e Q n + 0 = n, in quanto la formula `e
unistanza dellassioma (Q3).
Supponiamo lasserto vero per m = h, e dimostriamolo per m = h + 1. Se
n +h + 1 = k, allora n +h = k 1, e per ipotesi induttiva Q n +h = k 1.
Ne segue che Q S(n + h) = k (per uno degli assiomi di identit`a), ed inne,
usando lassioma (Q4) si conclude
Q n +h + 1 = k,
cio`e lasserto.
Se invece n + m ,= k, allora n + m = r con r ,= k. Per (o) e per la parte di (i)
che abbiamo appena dimostrato,
Q n +m = r,
e
Q (r = k).
Usando gli assiomi di identit`a, si ottiene
Q (n +m = k).
(ii). La prima parte di questo enunciato viene dimostrata per induzione su m.
Per m = 0 si usa lassioma (Q5). Per il passo induttivo si usa lipotesi induttiva,
lassioma (Q6) e la prima parte di (i). La seconda parte di (i) si dimostra in
modo analogo alla seconda parte di (i).
(iii). Se n m, esiste un h tale che n+h = m. Per la parte (i), Q n+h = m,
e dallassioma (Q7) si deduce Q n m. Se m < n, allora m n, e quindi
per quanto abbiamo appena visto Q m n. Inoltre, m ,= n, onde per (o),
Q (m = n). Da queste e dagli assiomi dordine (Q8), (Q9) e (Q10) si deduce
Q (n m).
Denizione 26.4 Associamo ad ogni termine chiuso t del linguaggio di Q un
numero naturale V al(t) (intuitivamente: il numero denotato da t) nel seguente
modo induttivo:
(i) V al(0) = 0.
(ii) V al(S(t)) = V al(t) + 1.
99
(iii) V al(t +t

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

termini chiusi del linguaggoio di Q, e sia n N.


Allora:
(a) Se V al(t) = n, allora Q t = n.
(b) Se V al(t) = V al(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

, e se V al(t) > V al(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 1, e per ipotesi induttiva Q t

= n 1. Da questo per gli


assiomi di uguaglianza si deduce Q S(t

) = n, cio`e lasserto.
Se t = t

+ t

e V al(t) = n, allora posto h

= V al(t

) e h

= V al(t

) risulta
h

+ h

= n. Inoltre per ipotesi induttiva Q t

= h

e Q t

= h

, da cui
tramite gli assiomi di uguaglianza si deduce Q t

+t

= h

+h

. Daltra parte,
essendo h

+ h

= n, per il Lemma 26.3 (i) si ha: Q 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

) allora n m, e per il Lemma 26.3,


Q n m.
Da queste si deduce: Q t 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

termini chiusi. Ora N [= t = t

sse V al(t) = V al(t

), e N [= t t

sse
V al(t) V al(t

). Lasserto segue allora dal Lemma 26.5.


Lemma 26.7 Per ogni n N,
Q x((x n) ((x = 0) . . . (x = n))).
Dimostrazione. Induzione su n. Se n = 0, ricordando che Q x(0 x),
dallassioma (Q8) otteniamo: Q x((x 0) (x = 0)).
Supponiamo lasserto vero per n = k, e dimostriamolo per n = k+1. Dallassioma
(Q11) segue
x((x k + 1) (x k x = k + 1)).
Per ipotesi induttiva,
Q x((x k) ((x = 0) . . . (x = k))).
Dalle ultime due formule si ottiene:
Q x((x k + 1) ((x = 0) . . . (x = k + 1))),
e il passo induttivo `e completato.
101
Notazione. Per ogni formula (x), deniamo:
x y(x) x(x y (x))
x y(x) x(x y&(x)).
Corollario 26.8 Per ogni formula (x) e per ogni numero naturale n si ha:
Q (x n(x)) ((0) . . . (n)),
Q (x n(x)) ((0)&. . . &(n)).
Dimostrazione. Segue facilmente dal Lemma 26.7 (e dalla deduzione logica).
Denizione 26.9 Linsieme delle
0
formule `e il pi` u piccolo insieme tale
che:
Se `e una formula atomica, allora .
Se e , allora:
&, , , x y, x y
(ove x e y sono variabili distinte).
Linsieme delle
1
formule `e il pi` u piccolo insieme tale che:
Se
0
, allora .
Se e , allora
&, , x, x y, x y
(ancora una volta, x e y sono variabili distinte).
La dierenza fra linsieme delle
0
formule e quello delle
1
formule `e che
questultimo `e chiuso rispetto alla quanticazione esistenziale illimitata, mentre
il primo non lo `e.

E importante notare che linsieme delle


1
formule non `e chiuso n`e per negazione
n`e per quanticazione universale illimitata. Lidea `e che le
0
formule rapp-
resentano relazioni primitive ricorsive, mentre le
1
formule rappresentano re-
lazioni ricorsivamente enumerabili (un quanticatore esistenziale non limitato
fa passare da una relazione ricorsiva ad una ricorsivamente enumerabile).

E allora naturale richiedere che linsieme delle


1
formule non sia chiuso per
negazione, in quanto la classe degli insiemi ricorsivamente enumerabili non `e
chiusa per complementazione.
102
Denizione 26.10 Un numerale `e un termine chiuso del tipo n, n N.
Unistanza chiusa di una formula `e una formula ottenuta da sostituendo
ciascuna (occorrenza libera di una) variabile con un numerale (ovviamente di-
verse occorrenze libere della stessa variabile devono essere sostituite dallo stesso
numerale).
Lemma 26.11 (i) Sia unistanza chiusa di una
0
formula. Se N [= ,
allora Q , e se N [= , allora Q .
(ii) Sia unistanza chiusa di una
1
formula. Se N [= , allora Q .
Dimostrazione. (i). Induzione sulla complessit`a (numero di connettivi e quan-
ticatori) di .
Se `e atomica, lasserto segue dal Lemma 26.6. I passi induttivi corrispondenti
ai connettivi sono facili. Vediamo il caso in cui e quello in cui ,
e lasciamo gli altri casi al lettore.
Sia . Se N [= , N ,[= , e per ipotesi induttiva Q , ossia Q .
Se N ,[= , allora N [= , e per ipotesi induttiva Q . Quindi Q :
Supponiamo ora .
Se N [= , allora o N [= o N [= . Per ipotesi induttiva, nel primo caso Q ,
e nel secondo caso Q . In ogni caso, Q .
Se invece N ,[= , allora N ,[= e N ,[= . Per ipotesi induttiva, Q , e
Q . Quindi Q &, e quindi Q .
Vediamo ora i passi induttivi corrispondenti ai quanticatori limitati. Essendo
unistanza chiusa, se inizia con un quanticatore limitato, essa sar`a del tipo
x n

o del tipo x n

.
Per il Corollario 26.8, nel primo caso `e dimostrabilmente equivalente alla
formula

(0)&. . . &

(n), e nel secondo caso `e dimostrabilmente equivalente


alla formula

(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). Per ipotesi


induttiva, Q

(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

. Allora per ogni n N, N ,[=

(n), e quindi dallipotesi


induttiva possiamo dedurre che per ogni n N, si ha: Q

(n).
Tuttavia dallinsieme innito di formule

(n) : n N
non possiamo dedurre Q x

(ossia ), poich`e ogni derivazione


logica utilizza un insieme nito di formule, e da un sottoinsieme nito di
premesse del tipo

(n) non possiamo evidentemente dedurre 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) che denisce il graco di .


Se `e una funzione iniziale, distinguiamo i seguenti casi:
Se `e la funzione zero allora basta prendere
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

nel seguente modo:


0

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

E possibile dimostrare che le seguenti relazioni sono primitive ricorsive:


V ar(x) x codica una variabile.
Atterm(x) x codica un termine atomico (del linguaggio di Q).
Term(x) x codica un termine.
Atform(x) x codifca una formula atomica.
Form(x) x codica una formula.
Occ(v, i, x) x codica una formula, v codica una variabile, e li-esimo
simbolo della formula codicata da x `e la variabile codicata da v.
Libocc(v, i, x) x codica una formula, v codica una variabile, li-esimo
simbolo della formula codicata da x `e la variabile codicata da v, e la
corrispondente occorrenza di tale variabile `e libera.
Scope(v, i, v
j
, x) x codica una formula, v codica una variabile, li-
esimo simbolo della formula codicata da x `e la variabile codicata da v,
e la corrispondente occorrenza di tale variabile `e sotto lazione di v
j
.
Scope(v, i, v
j
, x), simile al precedente ma con al posto di .
Sent(x) x codica una formula chiusa.
Openform(x) x codica una formula senza quanticatori.
Free(t, v, x) x codica una formula, v codica una variabile, e t codica
un termine libero per la variabile codicata da v nella formula codicata
da x (cio`e nessuna occorrenza della variabile codicata da v si trova sotto
lazione di un quanticatore che agisce su una variabile che compare nel
termine codicato da t).
Logax(x) x codica un assioma logico.
AXQ(x) x codica un assioma di Q.
AXPA(x) x codica un assioma di PA.
Dim(x, y) x codica una dimostrazione nel calcolo dei predicati della
formula codicata da y.
Dim
Q
(x, y) x codica dimostrazione in Q della formula codicata da
y.
113
Dim
PA
(x, y) x codica dimostrazione in PA della formula codicata
da y. Pi` u in generale, se T `e una teoria tale che linsieme dei numeri di
Godel degli assiomi di T sia ricorsivo, allora la relazione
Dim
T
(x, y) x codica una dimostrazione in T della formula codicata
da y
`e ricorsiva.
Inoltre, le seguenti funzioni sono primitive ricorsive:
S

(x), la funzione che associa al numero di Godel di un termine t il numero


di Godel del termine S(t).
x +

y e x

y, le funzioni che associano ai numero di Godel di termini s e


t il numero di Godel del termine s +t e, rispettivamente s t.

x, la funzione che associa al numero di Godel di una formula il numero


di Godel della sua negazione.
x&

y, x

y e x

y, le funzioni che associano ai numeri di Godel di due


formule e il numero di Godel di &, e rispettivamente.

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

sarebbe totale ri-


corsiva.
Notiamo allora che la funzione caratteristica di K `e data da
C
K
(y) = C
T
(Sub(

, 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

linsieme dei numeri di Godel dei teoremi di P, e sia


Q
la congiunzione degli assiomi di Q. Per il Teorema di Deduzione si ha:
Q sse P
Q
.
Ne segue che linsieme Q

dei numeri di Godel dei teoremi di Q `e dato da


Q

= x :

x P

.
Se P

fosse ricorsivo, la sua funzione caratteristica C


P
sarebbe ricorsiva. Ma
la funzione caratteristica C
Q
di Q

, essendo data da C
Q
(x) = C
P
(

x)
sarebbe a sua volta ricorsiva, e quindi Q

sarebbe ricorsivo, assurdo.


Il Teorema di Church `e in realt`a successivo a quello di Godel. Daremo fra
poco una dimostrazione del Primo Teorema di Godel che (a dierenza della
dimostrazione originaria di Godel) utilizza il Teorema di Church.
Denizione 28.3 Una teoria T si dice ricorsivamente assiomatizzabile se T ha
un insieme di assiomi A tale che linsieme A

dei numeri di Godel degli assiomi


di A sia ricorsivo.
Una teoria T si dice completa se per ogni formula chiusa del linguaggio di T
si ha: o T oppure T .
Teorema 28.4 (Primo Teorema di Incompletezza di Godel). Ogni estensione
coerente e ricorsivamente assiomatizzabile di Q `e incompleta.
Dimostrazione. Partiamo dal seguente lemma.
Lemma 28.5 Una teoria completa e ricorsivamente assiomatizzabile T `e de-
cidibile.
115
Dimostrazione. Se T non `e coerente, allora T

`e dato dai numeri di Godel di


tutte le formule, e quindi `e ricorsivo. Supponiamo dunque T coerente. Abbiamo
visto che se T `e ricorsivamente assiomatizzabile, allora la relazione
Dim
T
(x, y) x codica una dimostrazione in T della formula codicata da y
axe ricorsiva. Allora linsieme T

dei numeri di Godel dei teoremi di T `e ricor-


sivamente enumerabile, essendo
T

= 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

essendo ricorsivamente enumerabile ed avendo complemento ricorsivamente


enumerabile, `e ricorsivo.
Torniamo alla dimostrazione del Primo Teorema di Godel. Sia T unestensione
ricorsivamente assiomatizzabile e coerente di Q. Se T fosse completa, per il
lemma precedente T

sarebbe ricorsivo, contro il Teorema di Church.


Qual `e limportanza fondazionale del Primo Teorema di Godel e del Teorema
di Church?

E evidente che essi costituiscono un duro colpo al punto (c) del
Programma di Hilbert, la costruzione di un programma in grado (teoricamente)
di risolvere ogni problema matematico. Abbiamo visto che i programmi sono
simulabili dai sistemi formali, in quanto, essendo il graco di ogni funzione
ricorsiva numerato in ogni estensione
1
sound T di Q da una
1
formula, T
`e in grado di descrivere il comportamento di una qualunque funzione parziale
ricorsiva. Ora per il Primo teorema di Godel, ogni estensione T di Q con un
insieme di assiomi ricorsivo `e incompleto. Sia una formula chiusa che non `e
n`e dimostrabile n`e refutabile in T. Allora, o o `e vera e non dimostrabile.
Quindi per ogni sistema formale ragionevole T vi `e una formula chiusa vera che
T non riesce a dimostrare.
Ma anche il progetto di denire gli enti matematici in modo assiomatico ha
subito un duro colpo dal Primo teorema di Godel. Infatti, una buona denizione
di un oggetto matematico dovrebbe implicitamente contenerne tutte le pro-
priet`a, e quindi in particolare una buona denizione assiomatica dei numeri
116
naturali dovrebbe consentire di dedurre dagli assiomi tutte e sole le propriet`a
vere in tale struttura. Il Primo Teorema di Godel dice che questo `e impossibile
se linsieme degli assiomi `e ricorsivo, e quindi se il sistema formale `e simulabile
da una macchina.
Il Teorema di Church ci dice che la situazione `e ancora peggiore: i programmi
non riescono neppure a decidere se una formula `e logicamente valida o no, in
altre parole, non riescono a dominare neppure le leggi del ragionamento.
Storicamente, il Teorema di Godel ha preceduto quello di Church, ed `e stato
dimostrato in modo indipendente da questultimo. Infatti la dimostrazione orig-
inaria di Godel utilizzava un analogo sintattico del teorema del punto sso, cio`e
il Lemma di Diagonalizzazione: per ogni formula (x) nella sola variabile libera
x esiste una formula chiusa tale che indicato con

il numerale del numero


di Godel di si ha:
Q (

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

linsieme delle sequenze


nite di elementi di A. Un insieme S A

si dice decidibile in tempo polinomiale


119
(o pi` u semplicemente in P) se la funzione caratteristica di S `e computabile in
tempo polinomiale.
Un modo alternativo ma equivalente per denire gli insiemi in P `e il seguente:
Un insieme S A

`e in P sse esistono un polinomio P(x) e una Macchina di


Turing M tali che:
Su ogni input A

, M si ferma dopo al massimo P([ [) passi.


Su ogni input A

, M si ferma in stato di accettazione sse S.


Un ulteriore modo equivalente per denire gli insiemi in P `e il seguente:
Un insieme S A

`e in P sse esistono un polinomio P(x) e una Macchina di


Turing M tali che su ogni input A

, M si ferma dopo al massimo P([ [)


passi sse S.
Esempi. Diamo ora alcuni esempi di funzioni computabili in tempo polinomi-
ale e di insiemi in P. La nostra trattazione sar`a informale, e quindi anzicch`e
ssarci sul modello delle macchine di Turing e sul numero di passi di com-
putazione, faremo riferimento al numero di operazioni elementari necessarie per
terminare la computazione, dandoci del fatto che se tale numero `e polinomiale
nella lunghezza dellinput, allora esiste una macchina di Turing che simula la
computazione e che lavora in tempo polinomiale.
Sottolineiamo che per dimostrare che una funzione `e computabile in tempo
polinomiale `e necessario precisare lalgoritmo (o la macchina di Turing) a cui si
fa riferimento: infatti potrebbero esistere due algoritmi che computano la stessa
funzione, di cui uno lavora in tempo polinomiale e laltro no.
In alcuni casi, questo rende complicato il dimostrare che un insieme non `e in
P, in quanto il fatto che un algoritmo di decisione per linsieme non lavori in
tempo polinomiale non esclude a priori che ne esista un altro che invece lavora
in tempo polinomiale.
() Lalgoritmo che computa la somma di due numeri (eseguita in colonna)
lavora in tempo lineare nella lunghezza dellinput. Qui linput `e costituito da
una coppia di numeri, che a loro volta sono presentati come stringa binaria. Fra
un numero e laltro viene inserita una virgola che serve da separatore. Ora le
operazioni elementari necessarie sono delle somme di zeri e uni. Il numero di
somme da eseguire `e al massimo pari alla lunghezza massima dei due input, pi` u
il numero di somme che coinvolgono i riporti, che sono ancora in numero pari
al massimo alla lunghezza massima dei due input.
Se per`o utilizzassimo la denizione della somma attraverso la recursione sul
successore (e quindi se per sommare x +y dovessimo addizionare a x il numero
120
1 per y volte), lalgoritmo richiederebbe y somme, e quindi almeno y passi
di computazione. Essendo la lunghezza (della rappresentazione binaria) di y
dellordine di grandezza di log
2
(y), la computazione richiede un numero di passi
esponenziale nella lunghezza dellinput. Quindi ci sono (almeno) due algoritmi
per calcolare la somma, di cui uno lavora in tempo polinomiale e laltro no.
() Lalgoritmo utilizzato per le moltiplicazioni in colonna richiede un numero
di operazioni elementari quadratico nella lunghezza dellinput. Dati infatti x e
y in input (presentati come un unico input, con la virgola che funge da sepa-
ratore), per calcolare il prodotto di x per y devo moltiplicare x per ogni bit di
y, incolonnando opportunamente questi risultati parziali, in tutto [ x [ [ y [
operazioni elementari, se si escludono le operazioni necessarie ad incolonnare i
numeri. Occorre poi sommare i risultati parziali, il che richiede ancora allincirca
[ x [ [ y [ operazioni elementari.
Se per`o utilizzassimo la denizione di prodotto imparata alle elementari (il
prodotto un numero a per un numero b > 0 `e la somma di tanti addendi uguali
ad a quante sono le unit`a di b) dovremmo eettuare almeno b1 somme ciascuna
delle quali richiede diverse computazioni elementari. Lalgoritmo utilizzerebbe
allora pi` u di b operazioni elementari, cio`e un numero esponenzialmente maggiore
della lunghezza dellinput, che `e dellordine di log
2
(a) +log
2
(b).
() Essendo la classe di tutte le funzioni computabili in tempo polinomiale
chiusa per composizione (detto molto alla buona, cio`o `e dovuto al fatto che
la composizione di polinomi `e un polinomio), abbiamo che tutti i polinomi a
coecienti in N sono computabili in tempo polinomiale. Tuttavia vi `e una
funzione che asintoticamente supera qualsiasi polinomio e che `e computabile in
tempo polinomiale, precisamente la funzione (x) = 2
|x|
2
. Per computare la
funzione su input x basta contare il numero dei bits di x (cosa che richiede [ x [
passi), moltiplicare [ x [ per se stesso scrivendo il risultato in unario (cosa che
richiede poco pi` u di [ x [
2
passi), ed inne scrivere 1 seguito da [ x [
2
zeri (cosa
che richiede [ x [
2
passi). Che 2
|x|
2
superi asintoticamente qualunque polinomio
segue dal fatto che per ogni n, x
n
cresce allincirca come 2
n|x|
che per x grande
`e minore di 2
|x|
2
.
() Un altro esempio di algoritmo polinomiale `e lalgo- ritmo di Euclide per cal-
colare il massimo comun divisore fra due numeri naturali a e b. Tale massimo
comun divisore pu`o essere denito equivalentemente come il massimo fra i divi-
sori comuni ad a e a b, o come quel numero naturale che divide sia a che b e che
`e multiplo di tutti gli altri divisori comuni ad a e a b. Supponiamo ad esempio
a b. Il metodo barbaro per determinare il massimo comun divisore fra a e b
consiste nel provare tutti i numeri b, e per ciascuno controllare se divide sia a
che b. Si forma allora un elenco di tutti i divisori comuni, e si cerca il massimo
fra questi. Questo richiede almeno b divisioni, un numero quindi esponenziale
nella lunghezza di b (e oltretutto ciascuna divisione non `e una operazione ele-
mentare ma richiede vari passi). Lalgoritmo di Euclide raggiunge lo scopo pur
121
lavorando in tempo polinomiale. Esso `e basato sul seguente fatto:
Lemma 30.3 Indichiamo il massimo comun divisore fra a e b con MCD(a, b)
e il resto della divisione fra a e b con Resto(a, b). Allora, se a b, si ha:
MCD(a, b) = MCD(b, Resto(a, b)).
Dimostrazione. Sia q il quoziente euclideo di a e b (cio`e quellunico numero
naturale per cui esiste un naturale r < b con a = b q +r). Ogni divisore comune
ad a e a b divide anche a q b = Resto(a, b). Viceversa ogni divisore comune
a b e a Resto(a, b) divide anche b q +Resto(a, b) = a. Quindi i divisori comuni
ad a e a b sono esattamente i divisori comuni a b e a Resto(a, b). Pertanto,
MCD(a, b) = MCD(b, Resto(a, b)).
Lalgoritmo di Euclide procede allora cos`: senza perdita di generalit`a supponi-
amo a b.
Poniamo a
0
= a e b
0
= b, e dividiamo a
0
per b
0
.
Se Resto(a
0
, b
0
) = 0, allora MCD(a, b) = b
0
= b.
Altrimenti, sostituiamo la coppia (a, b) = (a
0
, b
0
) con la coppia (a
1
, b
1
),
dove a
1
= b
0
e b
1
= Resto(a
0
, b
0
).
Per il Lemma, MCD(a, b) = MCD(a
1
, b
1
), e inoltre a
1
< a
0
e b
1
< b
0
.
Riapplichiamo il procedimento partendo da (a
1
, b
1
) anzicch`e da (a, b).
Allora o b
1
divide a
1
, e in tal caso
b
1
= MCD(a
1
, b
1
) = MCD(a, b),
oppure otteniamo una nuova coppia (a
2
, b
2
) ponendo a
2
= b
1
e b
2
=
Resto(a
1
, b
1
).
La nuova coppia sar`a tale che a
2
< a
1
, b
2
< b
1
, e MCD(a, b) = MCD(a
2
, b
2
).
Procediamo in questo modo nch`e non otteniamo b
n+1
= 0. Ci`o succede
prima o poi perch`e i b
i
diminuiscono al crescere di i.
Poich`e b
n+1
= Resto(a
n
, b
n
), ne segue che b
n
divide a
n
, e quindi
b
n
= MCD(a
n
, b
n
) = MCD(a, b).
Quante operazioni elementari devono essere eseguite prima che lalgoritmo ter-
mini? Osserviamo il numero di operazioni elementari necessarie per dividere
due numeri di n cifre `e dellordine di n
2
. Quindi essendo a
i
, b
i
numeri < a, ogni
divisione richiede un numero di operazioni elementari dellordine al massimo di
[ a [
2
.
122
Non resta che contare il numero di divisioni necessarie per arrivare alla con-
clusione. A tal ne dimostriamo che per ogni n, se lalgoritmo non termina al
passo n + 1, `e a
n+2
<
a
n
2
. Infatti detto q il quoziente della divisione di a
n
per
b
n
, o q = 1, e allora a
n+2
= b
n+1
= a
n
1 b
n
< a
n
b
n+1
, e quindi b
n+1
<
a
n
2
,
oppure q 2, e allora
a
n+2
< a
n+1
= b
n

a
n
q

a
n
2
.
Per induzione su n si vede allora che a
2n
<
a
2
n
. Posto allora K = 2 log
2
(a), il
procedimento deve essere terminato prima del K-esimo passo, altrimenti avrei
a
K
<
a
2
log
2
(a)
= 1, e quindi a
K
= 0 e b
K
< a
K
, assurdo.
In totale sono quindi necessarie meno di 2 log
2
(a) divisioni, ciascuna delle quali
richiede un numero di operazioni elementari dellordine di [ a [
2
. Poich`e [ a [
`e allincirca log
2
(a), il numero totale di operazioni elementari `e dellordine di
[ a [
2
[ a [=[ a [
3
. Pertanto lalgoritmo lavora in tempo polinomiale nella
lunghezza dellinput.
Vediamo ora due problemi che a prima vista sembrano di alta complessit`a ma
che a conti fatti risultano essere in P.
() Sia f una funzione da Na Ncomputabile in tempo polinomiale e debolmente
crescente, cio`e tale che per ogni x, y se x y allora f(x) f(y). Consideriamo
il seguente problema: dati in input due numeri naturali A > 0 e B, si deve
determinare se esiste un n A tale che f(n) = B. Per comodit`a supponiamo
che A sia una potenza di 2, A = 2
n
.
Anche qui c`e un algoritmo brutale ma stupido che consiste nel calcolare suc-
cessivamente f(0), f(1), . . . , f(A) e vedere se qualcuno di questi valori `e uguale
a B. Questo richiede un numero di computazioni pari almeno ad A, e sappiamo
che A `e esponenziale nella lunghezza [ A [ della sua rappresentazione. Questo
algoritmo non tiene conto dellinformazione che f `e debolmente crescente.
Il metodo alternativo che esporremo ora, detto ricerca binaria consiste nel dimez-
zare ad ogni passo lintervallo di ricerca della soluzione (nel caso specico, del
numero n tale che f(n) = B) nch`e ad un certo punto o scopriremo che la
soluzione non esiste, oppure ci saremo ridotti ad esaminare un intervallo fatto
da un solo elemento.
Preventivamente, calcolo f(0) e f(A).
Se f(0) = B o f(A) = B esiste una soluzione.
Se f(0) > B, essendo f debolmente crescente sar`a sempre f(x) > B, e quindi
non vi sono soluzioni.
Analogamente se f(A) < B, per x [0, A] sar`a sempre f(x) < B, e quindi non
vi sono soluzioni.
123
Se inne f(0) < B < f(A), `e possibile che vi sia una soluzione in [0, A]. Il
nostro intervallo di ricerca diventa allora [a
0
, b
0
] con a
0
= 0 e b
0
= A.
Successivamente, calcolo f(
b
0
2
) = f(
A
2
).
Se f(
b
0
2
) = B, evidentemente una soluzione esiste.
Se f(
b
0
2
) < B, le eventuali soluzioni non possono trovarsi in [0,
b
0
2
], e quindi
posso restringere lo spazio di ricerca a [
b
0
2
, b
0
].
Pongo allora a
1
=
b
0
2
, b
1
= b
0
, e osservo che lintervallo di ricerca si `e dimezzato.
Se f(
b
0
2
) > B, le eventuali soluzioni non possono trovarsi in [
b
0
2
, b
0
], e quindi
posso restringere lo spazio di ricerca a [0,
b
0
2
].
Pongo allora a
1
= 0, b
1
=
b
0
2
, e osservo anche in questo caso lintervallo di
ricerca si `e dimezzato.
Supponiamo che dopo n passi lo spazio di ricerca si sia ridotto a un intervallo
[a
n
, b
n
] di cardinalit`a
A
2
n
e tale che f(a
n
) < B < f(a
n
).
Se lintervallo [a
n
, b
n
] ha solo due elementi (necessariamente a
n
e b
n
), allora
essendo f(a
n
) < B < f(b
n
) non vi sono soluzioni.
Altrimenti posto c =
a
n
+b
n
2
, calcolo f(c).
Se f(c) = B la soluzione esiste.
Se f(c) < B, le eventuali soluzioni possono trovarsi solo nellintervallo [c, b
n
].
Pongo dunque a
n+1
= c, b
n+1
= b
n
, e osservo che lo spazio di ricerca si `e
dimezzato.
Se f(c) > B, le eventuali soluzioni possono trovarsi solo nellintervallo [a
n
, c].
Pongo dunque a
n+1
= a
n
, b
n+1
= c, e osservo che lo spazio di ricerca si `e
dimezzato.
Poich`e allinizio lo spazio di ricerca ha cardinalit`a A, dopo log
2
(A) 1 passi lo
spazio di ricerca avr`a cardinalit`a 2, e la ricerca sar`a terminata.
Si tratta dunque di computare f su log
2
(A) +1 [ A [ numeri (includendo f(0)
e f(A) computati allinizio). Sia P(x) un polinomio tale che per ogni x, f(x)
sia computata con P([ x [) operazioni elementari. Allora per ogni n [0, A]
il computo di f(n) richiede al massimo P([ n [) P([ A [) computazioni
elementari. Poich`e lalgoritmo prevede di calcolare f su [ A [ numeri allincirca, il
numero totale di operazioni elementari eettuate dallalgoritmo sar`a dellordine
di [ A [ P([ A [), quindi polinomiale in [ A [.
() Un altro problema nella classe P proviene dalla Logica Matematica.
Denizione 30.4 Una formula proposizionale si dice Horn se essa `e congiun-
zione di disgiunzioni di letterali di cui al pi` u uno positivo (un letterale `e una
124
variabile proposizionale o la negazione di una variabile proposizionale; un let-
terale si dice positivo se esso `e una variabile proposizionale).
Una formula proposizionale si dice soddisfacibile se esiste una valutazione propo-
sizionale che la rende vera.
Cerchiamo ora un algoritmo possibilmente eciente che data una formula Horn
, decida se `e soddisfacibile o no.
Ancora una volta esiste un algoritmo barbaro, che consiste nel tentare tutte le
valutazioni sulle variabili proposizionali di e per ciascuna di esse controllare se
soddisfa o no attraverso le tavole di verit`a Anche se per una singola valutazione
tale controllo `e rapido, tuttavia se ha n variabili, vi sono 2
n
valutazioni
possibili. Poich`e in molti casi la lungheza di non si discosta molto dal numero
delle sue variabili, questo algoritmo risulta nei casi peggiori esponenziale nella
lunghezza di .
Consideriamo ora il seguente algoritmo alternativo.
Ricordiamo che `e congiunzione di formule D
1
, . . . , D
n
ciascuna delle quali `e
disgiunzione di letterali di cui al pi` u uno positivo.
Ovviamente `e soddisfacibile se e solo se esiste una valutazione che soddisfa
simultaneamente D
1
, . . . , D
n
, cio`e sse linsieme I
0
= D
1
, . . . , D
n
`e soddisfaci-
bile.
Procediamo allora cos`:
Se nessun D
i
consiste di un solo letterale positivo, allora tutti i D
i
con-
tengono almeno un letterale negativo. Quidi dando valore Falso a tutte le
varibili proposizionali, ogni D
i
risulta soddisfatto, e `e soddisfacibile.
Altrimenti, considero un D
i
che consta di un solo letterale positivo, dici-
amo p.
Anch`e D
i
sia soddisfatto, dovremo dare a p valore Vero.
Una volta dato il valore Vero a p, possiamo togliere tutti i D
j
che con-
tengono p come disgiunto, in quanto essi sono automaticamente soddis-
fatti.
Se qualche D
j
`e costituito dal solo letterale p, `e ovviamente insoddis-
facibile.
Se nessun D
j
`e di questo tipo, considero i letterali D
k
che contengono p
come disgiunto (quindi a meno dello scambio di letterali, D
k
= D

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

. Allora, S `e in NP sse esistono una relazione


binaria R(x, y) su A

ed un polinomio P(X) tali che:


130
R `e in P.
Per ogni A

si ha:
() S sse x A

([ x [ P([ [)&R(x, )).


Questa caratterizzazione stabilisce una certa analogia fra insiemi in P ed insieme
in NP da una parte, e insiemi ricorsivi ed insiemi ricorsivamente enumerabili
dallaltra. Ricordiamo infatti che un insieme X `e ricorsivamente enumerabile
sse esiste una relazione ricorsiva R(x, y) tale che per ogni n si abbia:
n X sse xR(x, n),
formula che presenta una certa analogia con la ().
Lanalogia con gli insiemi ricorsivi e ricorsivamente enumerabili e lesistenza di
insiemi ricorsivamente enumerabili e non ricorsivi suggerirebbe che P ,= NP.
Tuttavia la diagonalizzazione che consente di dimostrare lesistenza di insiemi
ricorsivamente enumerabili e non ricorsivi, nel caso delle classi P e NP non
funziona, poich`e per cominciare non esiste una funzione universale in P per le
funzioni computabili in tempo polinomiale.
Lopinione pi` u diusa fra gli studiosi `e che P ,= NP, ma una dimostrazione di
questa congettura sembra ancora lontana.
32 Problemi NP-completi
Immaginiamo di voler confrontare fra loro il problema della 3-colorabilit`a di un
grafo con quello della soddisfacibilit`a delle formule proposizionali.
Anche se apparentemente i due problemi non hanno nulla a che vedere luno
con laltro, non `e dicile ridurre il primo problema al secondo.
Dato infatti un grafo G, e detti V
1
, . . . , V
n
i suoi vertici, immaginiamo per ssare
le idee che i tre colori a disposizione siano il Bianco, il Rosso e il Verde.
Introduciamo allora, per i = 1, . . . , n, delle variabili P
iB
(la cui interpretazione
`e V
i
`e colorato di Bianco), P
iR
(la cui interpretazione `e V
i
`e colorato di Rosso)
e P
iV
(la cui interpretazione `e V
i
`e colorato di Verde).
Esprimiamo ora la condizione che ogni vertice deve essere colorato con uno dei
tre colori Bianco, Rosso o Verde:

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

sia T sse h() S.


Denizione 32.2 Un insieme S A

si dice NP-hard se per ogni T NP, T


`e P-riducibile a S.
S si dice NP-completo se S `e in NP e se `e NP-hard.
Dalla denizione segue subito che se un insieme NP-completo S `e in P, allora
P = NP.
Infatti, la funzione caratterisitca C
S
di S `e computabile in tempo polinomiale.
Dato allora un insieme X NP esiste una funzione h computabile in tempo
polinomiale tale che per ogni sia X sse h() S.
La funzione caratteristica di X `e allora C
X
() = C
S
(h()), che essendo com-
posizione di due funzioni computabili in tempo polinomiale, risulta essa stessa
computabile in tempo polinomiale. Quindi X `e in P.
Viceversa, `e evidente che se P = NP, allora ogni problema NP-completo `e in
P.
In conclusione, se S `e NP-completo, le seguenti aermazioni sono equivalenti:
S P.
P = NP.
Un famoso teorema dovuto a Cook aerma lesistenza di problemi NP-completi:
Teorema 32.3 (Cook) Il problema di determinare, data una formula propo-
sizionale, se essa sia soddisfacibile o no, `e NP-completo.
Lidea della dimostrazione `e la seguente: dato un problema S in NP, associato
ad una macchina di Turing non deterministica M e ad un polinomio P(X).
Ad ogni input del problema, associamo una formula proposizionale (),
computabile in tempo polinomiale a partire da (M, da P e da) , tale che
() risulti soddisfacibile sse esiste un ramo della computazione di M su input
che termina in stato di accettazione entro P([ [) passi. Naturalmente,
nel corso della dimostrazione vengono introdotte delle variabili il cui signicato
inteso si riferisce o allo stato della macchina oppure alla posizione del cursore,
oppure alle lettere dellinput, e la formula impone dei vincoli sulle variabili che
rispecchiano le istruzioni della macchina e la richiesta che essa si fermi in stato
di accettazione.
Anche se concettualmente non dicilissima, una dimostrazione completa richie-
derebbe troppo tempo, e quindi non viene riportata in queste note.
133
Per concludere il corso, osserviamo che, a parte il problema di decidere se un
numero `e primo oppure no, tutti gli altri problemi menzionati allinizio del
paragrafo sulla classe NP sono NP-completi. In particolare, il problema di
decidere, dato un numero s ed una formula se essa ha una dimostrazione con
al massimo s simboli, `e NP-completo. A titolo di curiosit`a ricordiamo che il
problema fu formulato per la prima volta da Godel, che ancora non conosceva
lesistenza dei problemi NP.
134