Professional Documents
Culture Documents
1
1
2
2
abbrevia (
1
1
) (
2
2
) .
Quando lo stesso connettivo `e utilizzato ripetutamente, sara inteso
come applicato da destra a sinistra. Per esempio,
abbrevia ( ) ,
abbrevia ( ) .
In base a queste convenzioni, le formule in (1.1) possono essere riscritte come
p (q r) , (p q) (p r) , p p .
Nel caso non si sia sicuri di rispettare le convenzioni `e sempre possibile non
eliminare parentesi.
Dalla denizione dellinsieme delle formule proposizionali segue che esso sod-
disfa un principio di induzione analogo al principio di induzione per linsie-
me dei numeri naturali. In base a questo principio, per dimostrare che una
propriet`a S() vale per ogni formula , `e suciente dimostrare che
vale S(p), per ogni p P,
valgono S() e S(),
se valgono S() e S() allora valgono S(), S( ), S( ).
Per esempio, questo principio puo essere utilizzato per dimostrare che ogni
formula contiene un numero pari di parentesi. Abbiamo anche un analogo
del principio di denizione per ricorsione di funzioni per i numeri naturali,
che non enunciamo esplicitamente ma utilizzeremo quando introdurremo il
concetto di valutazione.
5
1.2 Il calcolo della deduzione naturale
Sia un insieme di formule e una formula. Vogliamo denire che cosa
signichi per essere derivabile da . Lidea che vogliamo rendere precisa
`e che linsieme costituisce un insieme di ipotesi da cui segue la conclusio-
ne . Esistono diversi, ma essenzialmente equivalenti, sistemi per assioma-
tizzare questa nozione. Noi seguiremo il sistema della deduzione naturale,
che cattura in maniera intuitiva e precisa le leggi utilizzate comunemente nel
ragionamento matematico. Per esempio, il sistema della deduzione naturale
ci permette di dimostrare che dallinsieme di ipotesi , ,
segue tramite la costruzione del seguente albero di deduzione:
I
Le regole della deduzione naturale sono regole per costruire alberi di dedu-
zione come il precedente. Nel dare le regole della deduzione naturale, distin-
gueremo (quando `e appropriato farlo) tra regole di introduzione e regole di
eliminazione.
Regole per la congiunzione. Per la congiunzione, abbiamo una regola di
introduzione e due regole di eliminazione:
E,1
E,2
E,2
E,1
I
6
(ii) Per dimostrare che da () segue () costruiamo lalbero
( )
E,1
E,1
( )
E,1
E,2
( )
E,2
I
( )
Regole per limplicazione. Per limplicazione, abbiamo una regola di
introduzione e una regola di eliminazione. La regola di introduzione `e
[]
n
I,n
La regola di eliminazione `e
[]
1
I,1
( )
7
(ii) Per dimostrare ( ) (( ) ), costruiamo lalbero
[ ]
2
[ ]
1
E,1
I,1
( )
I,2
( ) (( ) )
(iii) Per dimostrare , costruiamo lalbero
[]
1
[]
2
I,1
I,2
Lapplicazione della regola di eliminazione dellimplicazione nel primo
passaggio `e giusticata dalla denizione della negazione. Infatti, questo
passaggio `e identico al seguente:
I,1
( )
La giusticazione per questa regola `e che data dal fatto che potremmo sem-
pre introdurre passaggi ridondanti che coinvolgono la formula scaricata non
assunta. Per esempio, potremmo derivare ( ) nel modo seguente:
8
[]
2
[]
1
I,1
I,2
( )
Regole per la disgiunzione. Abbiamo due regole di introduzione e una
regola di eliminazione.
I,1
I,2
[]
n
[]
m
E,n,m
E,2
( )
E,1
[]
1
I,1
( ) ( )
( )
E,1
[]
2
I,2
( ) ( )
E,1,2
( ) ( )
Regole per le dimostrazioni per assurdo. La regola per le dimostra-
zioni per assurdo `e
9
[]
n
RAA
n
Questa regola, nota anche come reductio ad absurdum, ci dice che se sap-
piamo dedurre il falso dallipotesi , allora possiamo dedurre , senza pi u
bisogno dellipotesi . Ancora una volta, utilizziamo parentesi quadre e
indici per indicare che lipotesi viene scaricata nellapplicazione della
regola.
Esempio 1.2.5. Dimostriamo la legge della doppia negazione, ovvero .
[]
2
[]
1
RAA
1
I,2
Si noti che lapplicazione della regola di eliminazione dellimplicazione, nel
primo passaggio, `e giusticata dalla denizione della negazione. In partico-
lare, quel passaggio puo essere riscritto equivalentemente come
Per la prima regola, visto che `e lunica ipotesi dellalbero, dobbiamo dimo-
strare che se , allora . Questo `e evidente. Per la seconda regola,
ogni valutazione `e tale che V() = 1 e quindi non c`e nulla da dimostrare.
Se lultima regola applicata `e lintroduzione della congiunzione, lalbero
di deduzione ha la forma
1
2
Ipotesi induttive.
Se
1
contiene tutte le ipotesi del sottoalbero con conclusione
1
allora
1
1
.
Se
2
contiene tutte le ipotesi del sottoalbero con conclusione
2
allora
2
2
.
Tesi. Se contiene le tutte ipotesi dellalbero con conclusione
1
2
allora
1
2
.
16
Dimostrazione della tesi. Sia un insieme che contiene tutte le ipotesi del-
lalbero con conclusione
1
2
. Deniamo
1
come linsieme delle ipotesi
del sottoalbero con conclusione
1
,
2
come linsieme delle ipotesi del sot-
toalbero con conclusione
2
. Dalle ipotesi induttive, segue che
1
1
e
2
2
. Oltre a questo, abbiamo che
1
2
. Sia ora V una valuta-
zione che rende valida ogni formula in . In particolare V rende valida ogni
formula in
1
e in
2
. Visto che
1
1
e
2
2
, ne segue che V(
1
) = 1
e V(
2
) = 1. Da questo possiamo dedurre V(
1
2
) = 1, come volevasi
dimostrare.
Se lultima regola applicata `e uneliminazione della congiunzione, lalbero
di deduzione ha una delle seguenti due forme:
1
2
E,1
1
2
E,2
2
Le due regole sono analoghe e quindi trattiamo solo lalbero a sinistra.
Ipotesi induttiva. Se `e un insieme che contiene tutte le ipotesi del sottoal-
bero con conclusione
1
2
, allora
1
2
.
Tesi. Se contiene tutte le ipotesi dellalbero con conclusione
1
, allora
1
.
Dimostrazione della tesi. Sia allora un insieme che contiene tutte le ipotesi
dellalbero con conclusione
1
. Chiaramente, contiene tutte le ipotesi
del sottoalbero con conclusione
1
2
. Dallipotesi induttiva, possiamo
concludere che
1
2
. Da questo segue immediatamente che
1
,
come volevasi dimostrare.
Se lultima regola applicata `e lintroduzione dellimplicazione, lalbero
ha la forma:
[]
n
I,n
Ipotesi induttiva. Se contiene tutte le ipotesi dellalbero
17
()
allora .
Tesi. Se
.
Dimostrazione della tesi. Sia
= ( ).
Allora, esiste una valutazione V che soddisfa ogni formula in
, ma che non
soddisfa . Questo avviene se e solo se V() = 1 e V() = 0. Si
denisca allora
=
def
.
Chiaramente, V soddisfa tutte le formule in . Inoltre, contiene tutte le
ipotesi dellalbero in (). Per lipotesi induttiva, si ha che e quindi
che V() = 1, una contraddizione.
Se lultima regola applicata `e leliminazione dellimplicazione, lalbero ha
la forma:
Ipotesi induttive.
Se
.
Se
.
Tesi. Se contiene tutte le ipotesi dellalbero con conclusione , allora
.
Dimostrazione della tesi. Se contiene tutte le ipotesi dellalbero con con-
clusione , allora contiene anche tutte le ipotesi del sottoalbero con conclu-
sione e del sottoalbero con conclusione . Dallipotesi induttiva, ne
segue che e . Per vericare che , si consideri una
valutazione V che soddisfa tutte le formule in . Da , segue che
18
V( ) = 1, e da segue che V() = 1. Deve quindi valere che
V() = 1. Se non lo fosse, avremmo V( ) = 0, una contraddizione.
Se lultima regola applicata `e lintroduzione della disgiunzione, lalbero
ha la forma
I,1
1
2
I,2
1
2
Come nel caso delleliminazione della congiunzione, le due regole sono es-
senzialmente analoghe e quindi trattiamo solo quella di sinistra.
Ipotesi induttiva. Se
1
contiene tutte le ipotesi del sottoalbero con conclu-
sione
1
allora
1
1
.
Tesi. Se contiene tutte le ipotesi dellalbero con conclusione
1
2
, allora
1
2
.
Dimostrazione della tesi. Chiaramente, se contiene tutte le ipotesi del-
lalbero con conclusione
1
2
, allora contiene anche tutte le ipotesi del
sottoalbero con conclusione
1
. Dallipotesi induttiva, possiamo concludere
che
1
. Da questo segue immediatamente
1
2
, come volevasi
dimostrare.
Se lultima regola applicata `e leliminazione della disgiunzione, lalbero
ha la forma
1
2
[
1
]
n
[
2
]
m
E,n,m
Ipotesi induttive.
Se contiene tutte le ipotesi del sottoalbero con conclusione
1
2
,
allora
1
2
.
Se
1
contiene tutte le ipotesi del sottoalbero
allora
1
.
19
Se
2
contiene tutte le ipotesi del sottoalbero
allora
2
.
Tesi. Se
.
Dimostrazione della tesi. Se
2
e quindi, per ipotesi induttiva,
2
. Vogliamo dimostrare che
1
2
, deve
valere V(
1
) = 1 o V(
2
) = 1. Nel primo caso, deniamo
1
=
def
Chiaramente,
1
contiene tutte le ipotesi del sottoalbero
RAA
n
()
allora .
Tesi. Se
.
Dimostrazione della tesi. Supponiamo che
= . Allora,
esiste una valutazione V che soddisfa tutte le formule in
, ma tale che
V() = 0. Quindi, V() = 1. Deniamo allora
=
def
.
`
E chiaro che contiene le ipotesi dellalbero in () e che V soddisfa le formule
in . Per lipotesi induttiva, abbiamo V() = 1, una contraddizione.
La dimostrazione del teorema di validit`a `e completa.
Corollario 1.4.3. Se `e un teorema, allora `e una tautologia.
Dimostrazione. Caso speciale del teorema di validit`a, con =
21
1.5 Il teorema di completezza
Proposizione/Denizione 1.5.1. Sia un insieme di formule. Le se-
guenti condizioni sono equivalenti.
(i) Esiste una formula tale che e .
(ii) .
(iii) Per ogni formula , si ha che .
Se soddisfa queste condizioni, diremo che `e contraddittorio. Se non `e
contraddittorio, lo chiameremo coerente.
Dimostrazione. Esercizio.
Lemma 1.5.2. Sia un insieme di formule e una formula.
(i) Se `e contraddittorio, allora .
(ii) Se `e contraddittorio, allora .
Dimostrazione.
(i) Se `e contraddittorio, allora esiste un albero di derivazione
RAA
n
Quindi .
(ii) Se `e contraddittorio, allora esiste una derivazione
22
Possiamo quindi estendere questo albero con unapplicazione della leg-
ge per lintroduzione dellimplicazione:
[]
n
I,n
Quindi .
Denizione 1.5.3. Un insieme coerente massimale `e un insieme di formule
che `e coerente e tale che, per ogni insieme coerente
, se
allora
=
.
Lemma 1.5.4. Sia un insieme coerente massimale e una formula.
Se allora .
Dimostrazione. Si supponga che . Per assurdo, si supponga che / .
Visto che `e coerente massimale, non pu`o essere coerente, ed `e
quindi contraddittorio. Da questo segue che . Abbiamo quindi che
e , ovvero che `e contraddittorio, un assurdo.
Lemma 1.5.5. Sia un insieme coerente massimale e una formula.
(i) oppure .
(ii) se e solo se / .
Dimostrazione.
(i) Deniamo
=
def
. Se
`e contraddittorio, allora . Da
questo segue che . Se invece
che contiene .
Dimostrazione. Visto che linsieme delle formule atomiche `e al pi` u numerabi-
le, anche linsieme di tutte le formule lo `e. Fissiamo quindi unenumerazione
delle formule
0
,
1
, . . . ,
n
,
n+1
, . . .
Deniamo una famiglia di insiemi di formule (
n
[ n N) nel modo seguente:
0
=
def
n+1
=
def
_
n
n+1
, se
n
n+1
`e coerente.
n
, altrimenti.
Si noti che
n
`e coerente per ogni n N. Ora deniamo
=
def
nN
n
.
Chiaramente,
e conclusione . Per 1 i m,
esiste n
i
N tale che
i
m
i
. Deniamo n =
def
max(n
i
[ 1 i m). Da
questo segue che
1
, . . . ,
m
n
e quindi che
n
, una contraddizione.
Inne, dimostriamo che
. Dimostriamo che
. Sia .
Dallesistenza di una enumerazione di tutte le formule, segue che esiste n N
tale che =
n
. Visto che
n
n
`e coerente. Quindi
n+1
=
n
n
, da cui segue che
n
.
Lemma 1.5.8 (Lemma di Esistenza di Valutazioni). Sia un insieme di
formule. Se `e coerente allora esiste una valutazione che soddisfa ogni
formula in .
24
Dimostrazione. Supponiamo che sia coerente. Sappiamo che esiste un
insieme massimamente consistente
tale che
. La dimostrazione
si conclude in tre passi. Per il primo passo, deniamo una valutazione v
ssando
V (p) =
def
_
1 se p
,
0 altrimenti.
Per il secondo passo, dimostriamo per induzione che, per ogni formula ,
vale V () = 1 se e solo se
.
Caso base. Per le formula atomiche p P, vale che V (p) = 1 se e solo se
p
per denizione di V .
Primo caso induttivo. Date formule e , dobbiamo dimostrare che V (
) = 1 se e solo se V () = 1 e V () = 1. Per ipotesi induttiva, questo vale
se e solo se
.
Secondo caso induttivo. Date formule e , dobbiamo dimostrare che V (
) = 1 se e solo se
, per ipotesi
induttiva. Rimane quindi da dimostrare che
se e solo se
. Si ha che V ( ) = 0 se e solo se
V () = 1 e V () = 0. Per ipotesi induttiva, questo vale se e solo se
e /
.
Per il terzo e ultimo passo, dimostriamo che V soddisfa tutte le formule
in . Avendo dimostrato che V () = 1 se e solo se
I
x(x)
Questa regola `e soggetta alla condizione che la variabile x non sia una delle
variabili libere delle ipotesi non scaricate nel sottoalbero con conclusione
(x). La regola di eliminazione per il quanticatore universale `e
x(x)
E
(t)
Questa regola `e soggetta alla condizione che il termine t sia sostituibile per
x in (x). Deniremo precisamente che cosa vuol dire che un termine t `e so-
situibile per una variabile x in una formula (x) pi u avanti. Informalmente,
questa condizione garantisce che nessuna delle variabili libere che compaio-
no in t venga legata (ovvero resa non libera) da uno dei quanticatori che
compaiono in (x). Per il momento, ci baster`a sapere che x `e sempre sosti-
tuibile per x in (x), cosicch`e la seguente istanza della regola
E
`e sempre
corretta:
x(x)
E
(x)
()
Esempio 2.2.1. Diamo due esempi di applicazioni corrette delle regole.
(i) Costruiamo un albero di derivazione la cui unica ipotesi non scaricata
`e xy(x, y) e la cui conclusione `e yx(x, y). Lalbero `e costruito
come segue:
xy(x, y)
E
y(x, y)
E
(x, y)
I
x(x, y)
I
yx(x, y)
Si noti come le applicazioni della regola
I
soddisfano la condizione
necessaria per la loro applicazione, visto che le variabili x e y non
compaiono come variabili libere nellipotesi non scaricata dellalbero.
La regola
E
`e stata poi applicata solo nel caso speciale indicato in ().
(ii) Costruiamo un albero con conclusione la formula x(x) x(x) e la
cui unica ipotesi non scaricata `e la formula x((x) (x)). Lalbero
`e costruito come segue:
30
x((x) (x))
E
(x) (x)
E
(x)
I
x(x)
x((x) (x))
E
(x) (x)
E
(x)
I
x(x)
I
x(x) x(x)
Esempio 2.2.2. Diamo due esempi di applicazioni scorrette delle regole.
(i) Nel linguaggio dellaritmetica di Peano, lapplicazione
x = 0
x(x = 0)
della regola
I
non `e corretta, in quanto la variabile x compare come
variabile libera nella formula x = 0, che non `e scaricata.
(ii) Lapplicazione
xy(x = y)
y(y = y)
della regola
E
non `e corretta. Abbiamo applicato la regola
E
con
la formula y(x = y) al posto della formula (x) e y al posto del
termine t. Secondo la denzione che daremo pi u avanti, tuttavia, y
non `e sostituibile per x in y(x = y). Informalmente, questo avviene
perch`e la variabile y appare tra le variabili quanticate di y(x = y)
e quindi se sostituiamo y per x in questa formula otteniamo che y viene
legata dal quanticatore y. Anche se non abbiamo introdotto ancora
la nozione di validit`a di una formula, anticipiamo che lipotesi non
scaricata dellalbero `e valida in ogni struttura con almeno due elementi
distinti, mentre la conclusione non `e valida in una tale struttura.
Regole per il quanticatore esistenziale. La regola di introduzione `e
(t)
I
x(x)
Questa regola `e soggetta alla condizione che il termine t sia sostituibile per
x in (x). La regola di eliminazione `e
x(x)
[(x)]
E,
31
Questa regola `e soggetta alla condizione che la variabile x non sia una delle
variabili libere n`e di n`e delle ipotesi non scaricate nel sottoalbero con
conclusione tranne (x).
Esempio 2.2.3. Costruiamo un albero con conclusione x(x) x(x) e
con unica ipotesi non scaricata x((x) (x)). Lalbero `e il seguente:
x((x) (x))
[(x) (x)]
3
[(x)]
1
x(x)
x(x) x(x)
[(x)]
2
x(x)
x(x) x(x)
E,1,2
x(x) x(x)
E,3
x(x) x(x)
Si noti che lapplicazione della regola
E
`e corretta in quanto le ipotesi
(x) e (x) che potrebbero contenere la x tra le loro variabili libere sono
state scaricate nellapplicazione della regola
E
, e quindi non sono pi u tra
le ipotesi non scaricate del sottoalbero con conclusione x(x) x(x).
Le nozioni di albero di derivazione, di derivabilit`a di una formula da un
insieme di formule e di teorema sono denite come per la logica proposizio-
nale. Useremo notazione identica a quella introdotta precedentemente. In
particolare, scriveremo per indicare che esiste un albero di derivazione
con conclusione e le cui ipotesi non scaricate sono contenute in .
Come promesso, deniamo che cosa vuol dire che un termine t `e sostituibile
per una variabile x in una formula . Per ricorsione su , deniamo:
t `e sempre sostituibile per x in P(t
1
, . . . , t
n
).
t `e sostituibile per x in , ove , , , se t `e sostituibile per
x in e .
t `e sostituibile per x in y e y se vale almeno una delle seguenti
due possibilit`a:
x non compare come variabile libera in (y) e y.
y non compare come variabile libera in t e t `e sostuibile per x in
.
32
2.3 Strutture e modelli
Denizione 2.3.1. Sia L un linguaggio del primo ordine. Una struttura
per L consiste dei seguenti dati.
Un insieme non vuoto /, detto il dominio della struttura.
Una funzione che assegna ad ogni costante a di L un elemento a /.
Una funzione che assegna ad ogni simbolo di funzione n-ario f di L
una funzione
f : /. . . /
. .
n volte
/
Una funzione che assegna ad ogni simbolo di predicato n-ario P di L
un sottoinsieme
P /. . . /
. .
n volte
.
Denizione 2.3.2. Sia L un linguaggio del primo ordine e /una struttura
per L. Unassegnazione per le variabili di L in /`e una funzione : Var
L
/.
Notazione 2.3.3.
`
E utile introdurre la seguente notazione per modicare il
valore di una assegnazione su di una variabile. Sia : Var
L
/ una
assegnazione. Dati x Var
L
e m /, deniamo la valutazione [x m] :
Var
L
/ nel modo seguente. Il valore di questa valutazione su x `e m,
ovvero:
[x m](x) =
def
m,
mentre il valore su di ogni altra variabile y `e lo stesso di , ovvero:
[x m](y) =
def
(y) .
Fissiamo ora una struttura /per L ed unassegnazione : Var
L
/. Da-
to un termine t di L, deniamo lelemento t
/, detto linterpretazione
di t in / relativa ad , tramite la seguente denizione ricorsiva:
x
=
def
(x)
a
=
def
a
f(t
1
, . . . , t
n
)
=
def
f
_
t
1
, . . . , t
n
_
33
Usando questa denizione, deniamo il valore di verit` a di una formula
di L in / relativo ad tramite la seguente denizione ricorsiva:
P(t
1
, . . . , t
n
)
=
def
_
1 se
_
t
1
, . . . , t
n
_
P
0 altrimenti
t
1
= t
2
=
def
_
1 se t
1
= t
2
0 altrimenti
=
def
_
1 se
= 1 e
= 1
0 altrimenti
=
def
_
1 se
= 1 o
= 1
0 altrimenti
=
def
_
0 se
= 1 e
= 0
1 altrimenti
x(x)
=
def
_
1 se per ogni d / vale che (x)
[xd]
= 1 ,
0 altrimenti.
x(x)
=
def
_
1 se esiste d / tale che (x)
[xd]
= 1 ,
0 altrimenti.
Diremo che (/, ) soddisfa una formula se vale che
= 1. Si noti che
se `e una formula chiusa il suo valore di verit`a non dipende dallassegna-
zione . In questo caso, scriveremo semplicemente anziche
. Se T
una teoria del primo ordine in L, un modello di T `e una struttura / per L
che soddisfa tutti gli assiomi di T.
Denizione 2.3.4.
Sia un insieme di formule e sia una formula. Diremo che implica
semanticamente se ogni coppia (/, ) che soddisfa tutte le formule
in soddisfa anche . Scriveremo per indicare che implica
semanticamente .
Sia una formula. Diremo che `e una tautologia se ogni coppia
(/, ) soddisfa . Scriveremo per indicare che `e una tautologia.
34
2.4 Il teorema di validit`a
Lemma 2.4.1 (Lemma di Sostituzione). Sia L un linguaggio del primo
ordine. Siano (x) una formula e t un termine di L. Per ogni coppia
(/, ), vale che
(x)
[xt
]
= (t)
.
Traccia della dimostrazione. Consideriamo solo un caso particolare. Per
esempio, si ha
x = y
[xt
]
= t = y
.
Infatti il valore di verit`a sulla sinistra `e 1 se e solo se vale che
x
[xt
]
= y
[xt
]
.
Questo vale se e solo se t
= y
= 1.
Nella dimostrazione del teorema di validit`a, assumeremo che se x(x)
allora la variabile x non compare tra le variabili libere di . Infatti, anche
quando questa assunzione non `e vericata `e sempre possibile cambiare no-
me alle variabili senza modicare il senso dellasserzione. Per esempio, si
consideri
x(P(x) Q(x)) , xP(x) , R(x) xQ(x) . ()
In questo caso, x FV() in quanto x FV(R(x)). Tuttavia, lasserzione
in () `e chiaramente equivalente a
y(P(y) Q(y)) , yP(y) , R(x) yQ(y) .
E adesso abbiamo che y / FV(), come volevasi.
Teorema 2.4.2 (Teorema di Validit`a). Se allora [= .
Dimostrazione. Si ricordi che signica che esiste un albero di deriva-
zione il cui insieme di ipotesi non scaricate `e contenuto in e con conclu-
sione . Per dimostrare il teorema di validit`a procederemo per induzione
sullaltezza di questalbero, distinguendo diversi casi a seconda di quale sia
lultima regola applicata. Tutti i casi riguardanti i connettivi della logica
proposizionale sono trattati in maniera completamente analoga a quanto fat-
to nella dimostrazione del teorema di validit`a per la logica proposizionale.
Si tratta quindi di considerare solo i casi in cui lultima regola applicata sia
35
una delle regole per luguaglianza oppure una delle regole per i quantica-
tori. Il caso delle regole per luguaglianza `e omesso, in quanto la verica `e
immmediata.
Caso dellintroduzione del . Se lultima regola applicata `e lintroduzione di
un quanticatore universale, la derivazione ha la forma:
(x)
x(x)
Ipotesi induttiva. Se contiene le ipotesi del sottoalbero con conclusione
(x), allora [= (x).
Tesi. Se contiene le ipotesi dellalbero con conclusione x(x), allora
[= x(x).
Dimostrazione della tesi. Sia come nella tesi. Salvo cambiare variabili,
possiamo supporre che x non compaia tra le variabili libere di . Dallipotesi
induttiva (che possiamo applicare visto che lalbero e il sottoalbero hanno
lo stesso insieme di ipotesi non scaricate), segue che [= (x). Dobbiamo
dimostrare che [= x(x). Sia quindi (/, ) una coppia che soddisfa
tutte le formule in . Dobbiamo dimostrare che
x(x)
= 1 .
Questo vale se e solo se per ogni d / si ha che
(x)
[xd]
= 1
Visto che x non compare in , si ha che la coppia (/, [x d]) soddisfa
tutte le formule in . Dal fatto che [= (x), segue che
(x)
[xd]
= 1
come volevasi dimostrare.
Caso delleliminazione del . Se lultima regola applicata `e uneliminazione
del quanticatore universale, la derivazione ha la forma:
x(x)
(t)
36
Ipotesi induttiva. Se contiene le ipotesi non scaricate del sottoalbero con
conclusione x(x), allora [= x(x).
Tesi. Se contiene le ipotesi dellalbero con conclusione (t) allora [=
(t).
Dimostrazione della tesi. Sia come nella tesi. Applicando lipotesi indut-
tiva, si ha che [= x(x). Dobbiamo dimostrare che [= (t). Sia quindi
(/, ) una coppia che soddisfa tutte le formule in . Dobbiamo dimostrare
che
(t)
= 1
Da [= x(x) segue che per ogni d / si ha
(x)
[xd]
= 1
In particolare, considerando d = t
, si ha che
(x)
[xt
]
= 1
Applicando il Lemma di Sostituzione, abbiamo che
(t)
= (x)
[xt
]
= 1
come volevasi dimostrare.
Caso dellintroduzione del . Se lultima regola applicata `e lintroduzione
del quanticatore esistenziale, la derivazione ha la forma:
(t)
x(x)
Ipotesi induttiva. Se contiene tutte le ipotesi del sottoalbero con conclu-
sione (t), allora [= (t).
Tesi. Se contiene tutte le ipotesi del sottoalbero con conclusione x(x),
allora [= x(x).
Dimostrazione della tesi. Sia come nella tesi. Applicando lipotesi indut-
tiva, si ha che [= (t). Dobbiamo dimostrare che [= x(x). Sia (/, )
una coppia che soddisfa tutte le formule in . Quindi vale che
(t)
= 1 .
37
Dobbiamo dimostrare che
x(x)
= 1
Questo vale se e solo se esiste d / tale che
(x)
[xd]
= 1
Consideriamo d = t
]
= (t)
= 1
come volevasi dimostrare.
Caso delleliminazione del . Se lultima regola applicata `e leliminazione
del quanticatore esistenziale, la derivazione ha la forma:
x(x)
[(x)]
E,
allora
[= .
Tesi. Se contiene le ipotesi del sottoalbero con conclusione , allora [= .
Dimostrazione della tesi. Sia come nella tesi. Salvo cambiare variabili,
possiamo supporre che x non compaia in . Dobbiamo dimostrare che [=
. Sia (/, ) una coppia che soddisfa tutte le formule in . Per la prima
ipotesi induttiva, vale che [= x(x). Quindi, si ha che
x(x)
= 1
38
Questo vuol dire che esiste d / tale che
(x)
[xd]
= 1
Sia
=
def
(x). Chiaramente, vale che (/, [x d]) soddisfa tutte
le formule in
[xd]
= 1
Ma x non compare tra le variabili libere di e quindi
=
[xd]
= 1
come volevasi dimostrare.
La dimostrazione del teorema di validita `e completa.
2.5 Il teorema di completezza
Teorema 2.5.1 (Teorema di Completezza). Sia un insieme di formule,
una formula. Se [= allora .
La dimostrazione del teorema di completezza per la logica del primo ordi-
ne non `e in programma, ma ne discutiamo qualche aspetto. Il passaggio
fondamentale consiste nel dimostrare il Lemma di Esistenza dei Modelli,
che `e lanalogo per la logica del primo ordine del Lemma di Esistenza di
Valutazioni per la logica proposizionale.
Lemma 2.5.2 (Lemma di Esistenza dei Modelli). Sia un insieme di for-
mule. Se `e coerente, allora ha un modello, ovvero esiste una coppia
(/, ) che soddisfa tutte le formule in .
Lidea alla base della dimostrazione del Lemma di Esistenza dei Modelli `e
di costruire il modello richiesto a partire dal linguaggio L. A tal ne, si
potrebbe ssare
/ =
def
t [ t termine di L
e denire : Var
L
/ ponendo (x) =
def
x. Ci sono due problemi da
risolvere. Come primo problema, dobbiamo decidere come assegnare valori
di verit`a alle formule di L, in modo da rendere valida ogni formula di .
Come secondo problema, dobbiamo essere sicuri che se x(x) allora la
struttura /contiene un elemento d /, ovvero un termine del linguaggio,
39
tale che (x)
[xd]
= 1. Per risolvere il primo problema, `e suciente
considerare, come nel caso della logica proposizionale, insiemi massimamente
consistenti che contengano . Per risolvere il secondo problema, invece, `e
necessario estendere il linguaggio con nuove costanti, in modo da garantire
lesistenza di termini che siano dei testimoni per le asserzioni esistenziali
derivabili da . Questo secondo problema viene risolto tramite il metodo
delle cosiddette teorie di Henkin, che non tratteremo. Per questo argomento,
si veda [3, 4, 7]. Discutiamo invece qualche applicazione del Teorema di
Completezza.
Teorema 2.5.3 (Teorema di Compattezza). Sia T una teoria del primo
ordine. Allora T ha un modello se e solo se ogni sottoinsieme nito T
T
ha un modello.
Dimostrazione. Sia T come nellenunciato. Dimostreremo il seguente enun-
ciato, equivalente a quello desiderato: T non ha nessun modello se e solo
se esiste un sottoinsieme nito T
T tale che T
.
Questo perch`e ogni derivazione ha un numero nito di premesse non scarica-
te. Dal fatto che T
segue che T
T che non
ha nessun modello. Allora `e impossibile che esista un modello di T. Infatti,
se esistesse, questo sarebbe anche un modello di T
, essendo T
T.
Teorema 2.5.4 (Teorema di Lowenhein-Skolem Downward). Sia T una
teoria del primo ordine. Se T ha un modello innito, allora T ha un modello
di cardinalita numerabile.
Traccia della dimostrazione. Il modello di T `e costruito a partire dallinsie-
me dei termini del linguaggio L, che abbiamo assunto essere numerabile,
tramite operazioni che preservano la numerabilit`a dellinsieme. Per esem-
pio, se aggiungiamo al linguaggio costanti c
come lestensione
del linguaggio L con una nuova costante c
i
per ogni i I. Sia adesso
T
= T c
i
,= c
j
[ i, j I, i ,= j
Adesso dimostriamo che T
a , b.
6. Assioma delle parti.
(a)(b)(x)
_
x b x a
_
.
Questo assioma dice che per ogni insieme a esiste un insieme b tale che
(x)
_
x b x a
_
.
Anche in questo caso, un tale insieme b `e unico e noi lo indicheremo
con il simbolo T(a).
43
7. Assioma dellinnito.
a
_
a x(x a x x a)
.
Come vedremo, questo assioma implica lesistenza dellinsieme dei
numeri naturali.
8. Assioma di fondazione.
a
_
a ,= (m a)(x)(x m x / a)
.
La spiegazione di questo assioma richiede lintroduzione di alcune
nozioni ausiliarie e quindi la postponiamo temporaneamente.
9. Schema di Rimpiazzamento. Per ogni formula (x, y) abbiamo
lassioma
(a)
_
(x a)(!y)(x, y) (b)(x a)(!y b)(x, y)
_
.
Consideriamo una formula (x, y) ssata. Sia a un insieme e suppo-
niamo che valga
(x a)(!y)(x, y)
Dato x a, scriviamo F(x) per indicare lunico insieme y per cui
vale (x, y). Lassioma di rimpiazzamento ci permette, insieme al-
lassioma di separazione, di dimostrare che esiste un insieme b tale
che
(y)
_
y b (x a)(y = F(x))
_
.
Questo insieme b `e unico e lo indicheremo con F(x) [ x a.
Nel seguito, utlizzeremo spesso la notazione delle classi. Formalmente, una
classe `e una formula del linguaggio di ZF con una variabile libera. Rappre-
senteremo la classe data da una formula (x) con la notazione x [ (x).
Un elemento di una classe A = x [ (x) `e un insieme x per cui vale
(x). Nel seguito, scriveremo x A per indicare che x `e un elemento di A.
Due classi sono uguali se e solo se hanno gli stessi elementi. Un insieme a
pu`o essere sempre visto come una classe, ovvero la classe dei suoi elementi
x [ x a, ma il viceversa non vale sempre. Una classe A = x [ (x) `e
un insieme se e solo se esiste un insieme a che ha gli stessi elementi di A,
ovvero vale che x
_
x a (x)
_
.
44
Il cosiddetto paradosso di Russell `e losservazione che la classe di tutti gli
insiemi V =
def
x [ x = x non `e un insieme. Infatti, supponiamo che esista
un insieme a tale che
(x)(x a x = x) .
Per lassioma di separazione, possiamo denire b =
def
x a [ x / x.
Dalla denizione di a, segue che b = x [ x / x. Ma adesso abbiamo
b b b / b, una contraddizione. Una classe che non `e un insieme `e detta
una classe propria.
3.2 Codica in ZF e induzione insiemistica
Come esempio di come sia possibile codicare la pratica matematica allin-
terno di ZF, dimostriamo lesistenza dellinsieme N dei numeri naturali. Per
altri esempi, si veda [2]. Deniamo 0 =
def
. Dato un insieme x, deniamo
il successore di x come linsieme x + 1 =
def
x x. Dato un insieme a,
deniamo la formula
Ind(a) =
def
0 a (x)
_
x a x + 1 a
_
.
Un insieme a per cui vale Ind(a) verra detto induttivo. Vogliamo denire
linsieme dei numeri naturali come il pi u piccolo insieme induttivo. A questo
ne, deniamo la formula
Nat(x) =
def
(a)(Ind(a) x a
_
.
Proposizione 3.2.1.
(i) La classe N =
def
x [ Nat(x) `e un insieme.
(ii) Il principio di induzione per i numeri naturali,
_
(0) (x N)
_
(x) (x + 1)
_
(x N) (x) ,
`e un teorema di ZF.
Dimostrazione.
(i) Lassioma dellinnito ci dice che esiste un insieme induttivo a. Vo-
gliamo dimostrare che N = x a [ Nat(x), da cui segue quanto
richiesto. Lunica cosa da dimostrare `e che se vale Nat(x) allora x a.
Visto che a `e induttivo, vale (x)(Nat(x) x a), che implica quanto
desiderato.
45
(ii) Ragioneremo in maniera informale. Supponiamo (0) e (x N)((x)
(x + 1)). Deniamo
a =
def
x N [ (x)
Le ipotesi implicano che a `e induttivo. Quindi vale che (x)(Nat(x)
x a
_
. Da questo segue che (x N) (x), come volevasi dimostrare.
Ritorniamo a considerare lassioma di fondazione. Prima daremo una spie-
gazione della sua formulazione e poi una sua applicazione. Sia A un insieme.
Una relazione binaria < su A `e detta essere ben fondata se ogni sottoinsie-
me non vuoto S A ha un elemento <-minimale. Data una classe A e una
relazione binaria < su A, la ben fondatezza di < `e espressa dalla formula
(S A)
_
S ,= (m S)(x)(x < m x / S)
_
.
Lassioma di fondazione esprime esattamente che la relazione sulla clas-
se V =
def
x [ x = x `e ben fondata. Infatti, possiamo riscrivere lassioma
di fondazione equivalentemente come:
(S V )
_
S ,= (m S)(x)(x m x / S)
_
.
Illustriamo adesso come lassioma di fondazione permette di dedurre il co-
siddetto principio di induzione insiemistica, ovvero lo schema
(a)
_
(x a)(x) (a)
(a)(a) ,
ove (x) `e una formula arbitraria con una variabile libera x. A tal ne,
introduciamo la nozione di insieme transitivo.
Denizione 3.2.2. Un insieme a `e transitivo se vale che (x a)(x a).
Dato un insieme a, la chiusura transitiva di a `e il pi u piccolo insieme transi-
tivo che contiene a. Questo insieme, che indicheremo con TC(a), puo essere
denito esplicitamente come
TC(a) = a ,
_
a ,
__
a , . . . .
Proposizione 3.2.3. ZF Principio di Induzione Insiemistica.
Dimostrazione. Supponiamo che valga
(a)
_
(x a)(x) (a)
. (3.1)
46
Dobbiamo dimostrare che vale (a)(a). Per assurdo, si supponga che non
valga, e che quindi esista a tale che (a). Consideriamo adesso linsieme
b = x TC(a) [ (x) .
Visto che a TC(a) e (a), vale che a b e quindi b non `e vuoto.
Per lassioma di fondazione, deve avere un elemento -minimale, diciamo
m. Visto che m b, deve valere (m). Ma vale anche che
(x m)(m) ,
visto che gli elementi di m sono in TC(a) b. Ma allora, dallipotesi
in (3.1), segue (m), una contraddizione.
La dimostrazione appena svolta utilizza in maniera essenziale lassioma di
fondazione. Sulla base degli altri assiomi di ZF, infatti, lassioma di fonda-
zione `e equivalente al principio di induzione insiemistico.
3.3 Ordinali
Denizione 3.3.1. Sia A un insieme. Un buon ordine su A `e un ordine
parziale < rispetto al quale ogni sottoinsieme non vuoto di A ha un ele-
mento minimo. Un buon ordinamento `e una coppia (A, <) costituita da un
insieme A e un buon ordine <.
Esempi 3.3.2.
(N, <) `e un buon ordinamento.
Per ogni n N, linsieme 0, 1, . . . , n `e bene ordinato.
(Z, <) non `e un buon ordinamento, visto che x Z [ x < 0 non ha
un elemento minimo.
Se (A, <) `e un buon ordinamento, allora < `e un ordine totale. Infatti, dati
x, y A, il sottoinsieme x, y deve avere un elemento minimo. Inoltre, < `e
una relazione ben fondata. Infatti, dato un sottoinsieme non vuoto S A,
il minimo di S `e anche lunico elemento minimale di S.
Denizione 3.3.3. Un ordinale `e un insieme transitivo per cui la relazione
di appartenenza `e un buon ordine.
47
Una delle ragioni che motivano lintroduzione e lo studio degli ordinali `e
che essi rappresentano le classi di equivalenza di buoni ordini. Infatti, si
pu`o dimostrare che per ogni buon ordine (A, <) esiste un ordinale e un
isomorsmo di buoni ordinamenti f : (A, <) (, ). Questo signica che f
`e una funzione biiettiva tale che sia f che f
1
rispettano lordine, ovvero
per ogni x, y A, x < y se e solo se f(x) f(y). Per una dimostrazione di
questo fatto, che non `e parte del programma, si veda [2, 4].
Esempio 3.3.4. Si ricordi che i numeri naturali sono codicati in ZF indut-
tivamente nel modo seguente:
0 =
def
n + 1 =
def
n n .
Per esempio, abbiamo
1 = 0 , 2 = 1 1 , 3 = 2 2 , . . .
Da questo segue che 0 1 2 3 . . .. Ogni numero naturale, visto come
insieme, `e un ordinale. Per vericarlo, cominciamo con il dimostrare per
induzione che ogni numero naturale `e transitivo. Per il passo base, si osservi
che 0 =
def
`e trivialmente un ordinale. Per il passo induttivo, supponiamo
che n N sia un ordinale e dimostriamo che n + 1 =
def
n n `e un
ordinale. Innanzitutto, dimostriamo che n + 1 `e transitivo. Sia i n + 1 e
j i. Dobbiamo dimostrare che j n+1. Se i n+1, allora i n o i = n.
Nel primo caso, j n per la transitivit`a di n, da cui segue che j n + 1.
Nel secondo caso, j n + 1 visto che n n + 1. Rimane da dimostrare che
la relazione dappartenenza `e un buon ordine su ogni numero naturale. Ma
questo segue dal fatto che la relazione dappartenenza sui numeri naturali
coincide con la familiare relazione dordine.
Per lAssioma di Fondazione, per ogni insieme A, la restrizione della relazio-
ne di appartenza su A `e ben fondata. Utilizzando questo fatto, dimostre-
remo che, anch`e sia un buon ordinamento, `e suciente che la restrizione
di su A sia tricotoma. Per dimostrare questo fatto, consideriamo una
relazione ben fondata in generale.
Lemma 3.3.5. Sia A un insieme e < una relazione binaria su A.
(i) Se < `e ben fondata, allora `e irriessiva.
(ii) Se < `e ben fondata e tricotoma, allora `e transitiva.
Dimostrazione.
48
(i) Se < non fosse irriessiva, esisterebbe x A tale che x < x. Al-
lora il sottoinsieme x A non avrebbe un elemento minimale, in
contraddizione con la ben fondatezza di <.
(ii) Siano x, y, z A e supponiamo che x < y e y < z. Il sottoinsieme
x, y, z A, deve avere un elemento minimale. Questo elemento
minimo non pu`o essere n`e y n`e z, visto che x < y e y < z, e quindi
deve essere x. Per la tricotomia di <, deve valere x < z o x = z
o z < x. Ma non vale n`e x = z (altrimenti z sarebbe minimale) n`e
z < x (altrimenti x non sarebbe minimale). Quindi deve valere x < z,
come volevasi dimostrare.
Proposizione 3.3.6. Una relazione binaria < su di un insieme A `e un buon
ordine se e solo se < `e ben fondata e tricotoma.
Dimostrazione. Dimostriamo le due implicazioni separatamente. Supponia-
mo che < sia un buon ordine. Abbiamo gi`a visto che < `e ben fondata.
Inoltre, essere tricotoma `e parte della denizione di buon ordine. Viceversa,
supponiamo che < sia ben fondata e tricotoma. Dal Lemma 3.3.5, abbiamo
che < `e irriessiva e transitiva e quindi che `e antisimmetrica. Rimane da
dimostrare che ogni sottoinsieme non vuoto S A ha un elemento minimo,
ma questo segue dal fatto che in un ordine totale, un elemento minimale di
un sottoinsieme `e necessariamente il suo minimo.
In base alla Proposizione 3.3.6, un insieme `e un ordinale se e solo se `e
transitivo e la relazione di appartenenza su `e tricotoma, ovvero vale che
(x, y )(x y x = y y x) .
Utilizzeremo questo fatto per dimostrare una serie di risultati che ci permet-
tono di costruire nuovi esempi di ordinali.
Lemma 3.3.7. Se `e un ordinale, allora + 1 `e un ordinale.
Dimostrazione. Si ricordi che +1 = . Dimostriamo che `e transitivo.
Supponiamo che e . Se , allora per la
transitivit`a di , da cui segue + 1. Se invece = , si ha ancora che
e quindi, come prima, +1. La dimostrazione che la relazione
su + 1 `e tricotoma `e ugualmente facile.
Lemma 3.3.8. Gli elementi di un ordinale sono ordinali.
49
Dimostrazione. Sia un ordinale. Se , la transitivit`a di implica
che . Da questo segue che `e ben ordinato da . Per dimostrare
che `e transitivo, si consideri e . Visto che e , si
ha . Per la transitivit`a di , si ottiene quindi che . Dal fatto
che , possiamo concludere che . Visto che e e che
`e un ordinale, deve valere o o = o . Ma le ultime due
possibilit`a non possono valere, perch`e altrimenti il sottoinsieme , ,
non avrebbe un elemento minimo. Deve quindi valere che , come
volevasi dimostrare.
Lemma 3.3.9. Se e sono ordinali, o .
Dimostrazione. Supponiamo che _ . Allora non `e vuoto e quindi
ha un elemento -minimo, . Dimostriamo che = . Per uninclusione,
sia . Visto che `e un ordinale, abbiamo che o o = o
. Nei primi due casi, dovrebbe valere che , in contraddizione
con lipotesi che . Quindi, vale , come volevasi dimostrare.
Per laltra inclusione, sia . Visto che , dalla transitivit`a di
possiamo dedurre che . Ma / , visto che altrimenti avremmo
una contraddizione con la -minimalit`a di tra gli elementi di . Da
e / segue che e quindi , come volevasi
dimostrare. Dalle due inclusioni, segue che = . Visto che ,
abbiamo che . Abbiamo quindi dimostrato che se _ allora
. Analogamente, si pu`o dimostrare che se _ allora .
Quindi, se non valesse n`e n`e , avremmo che , in
contraddizione con lassioma di fondazione.
Corollario 3.3.10. Siano e ordinali.
(i) se e solo se o = .
(ii) o = o .
(iii) Se
i
[ i I `e un insieme non vuoto di ordinali, allora
iI
i
`e un
ordinale ed `e lelemento -minimo di
i
[ i I.
Dimostrazione.
(i) Se , allora = oppure _ . Nel caso valga _ , abbiamo
(come visto nella dimostrazione del Lemma 3.3.9). Ma
e quindi = , da cui segue .
(ii) Segue dal punto (i) e dal Lemma 3.3.9.
50
(iii) Innanzitutto, si osservi che
iI
i
j
per ogni j I. Per lassioma
di fondazione, linsieme
i
[ i I ha un elemento -minimale e
quindi esiste j I tale che
j
`e -minimale. Visto che la relazione di
appartenza tra ordinali `e tricotoma,
j
`e in eetti lelemento -minimo
di
i
[ i I. Essendo
j
il -minimo di
i
[ i I, dal punto (ii)
segue che
j
i
per ogni i I e quindi
j
iI
i
. Abbiamo
quindi che
j
=
iI
i
e quindi
iI
i
`e eettivamente lelemento
-minimo di
i
[ i I, come volevasi dimostrare.
Proposizione 3.3.11. Lunione di un insieme di ordinali `e un ordinale.
Dimostrazione. Lunione di un insieme di insiemi transitivi `e sempre un
insieme transitivo. Sia
i
[ i I un insieme di ordinali. Dobbiamo
dimostrare che
iI
i
`e un ordinale. Gli elementi di
iI
i
sono ordi-
nali per il Lemma 3.3.8 e sono ordinati totalmente per il punto (ii) del
Corollario 3.3.10.
Possiamo applicare i risultati appena dimostrati per costruire nuovi ordinali.
Per esempio, sappiamo che tutti i numeri naturali sono ordinali. Quindi,
possiamo considerare linsieme n [ n N e prenderne lunione
nN
n.
Visto che N =
nN
n, dal Lemma 3.3.11 possiamo concludere che linsieme
dei numeri naturali `e un ordinale. Quando considerato come ordinale, `e
consuetudine scrivere anzich`e N. Possiamo poi considerare gli insiemi
+ 1 , + 2 , +n, . . .
che sono tutti ordinali per il Lemma 3.3.7. Applicando ancora il Lem-
ma 3.3.11, otteniamo che
2 =
def
_
nN
+n
`e un ordinale. In maniera analoga, si possono costruire gli ordinali
3, . . . , n, . . . In questo modo, si possono continuare a generare ordinali
sempre e sempre pi` u grandi.
Scriveremo Ord per la classe degli ordinali. Il cosiddetto paradosso di Burali-
Forti `e losservazione che la classe Ord non pu`o essere un insieme. Infatti,
per il lemma 3.3.8, la classe Ord `e transitiva, nel senso che se Ord allora
Ord. Inoltre, per il corollario 3.3.10 (ii), la relazione di appartenenza
su Ord `e un buon ordine. Se Ord fosse un insieme, sarebbe quindi un
ordinale e quindi avremmo che Ord Ord, in contraddizione con lassioma
di fondazione.
51
Anche se non lo dimostreremo, gli ordinali si possono dividere in tre gruppi:
lo zero, 0, gli ordinali successori, ovvero gli ordinali per cui esiste un
ordinale tale che = + 1, e gli ordinali limite, ovvero gli ordinali tali
che =
)
V
=
_
SI
S = A.
(ii) (i). Data una famiglia (A
i
[ i I), deniamo
A =
iI
A
i
.
Sia f : T(A) A una funzione di scelta per A. La funzione desiderata
`e data dalla funzione f
: I
iI
A
i
`e denita da f
(i) =
def
f(A
i
), per
i I.
Proposizione 3.4.2. Sia A un insieme. Le seguenti aermazioni sono
equivalenti.
(i) Esiste un buon ordinamento di A,
(ii) Esiste una funzione di scelta su A.
Traccia della dimostrazione.
(i) (ii). Sia < un buon ordinamento su A. La funzione di scelta f :
T(A) A `e data denendo f(S) come lelemento minimo di S, ove
S T(A) .
(ii) (i). Non `e in programma.
53
La Proposizione 3.4.2 implica che lassioma della scelta `e equivalente al co-
siddetto principio del buon ordinamento, che asserisce che ogni insieme ha
un buon ordinamento.
Introduciamo il Lemma di Zorn, un principio equivalente allAssioma della
Scelta che viene utilizzato spesso nella pratica matematica. Per enunciarlo,
dobbiamo ssare un po di terminologia. Sia (A, <) un ordine parziale.
Una catena in A `e un sottoinsieme S a che `e totalmente ordinato dalla
restrizione di < a S. In altre parole, (S, <) `e un ordine totale. Diremo che
(A, <) `e induttivo se per ogni catena S A ha un maggiorante, ovvero esiste
a A tale che per ogni x S si ha x a . Inne, diciamo che m A `e un
elemento massimale di (A, <) se vale che (x A)
_
m x m = x
_
.
Lemma di Zorn. Se un insieme parzialmente ordinato `e induttivo, allora
ha un elemento massimale.
Proposizione 3.4.3. I seguenti principi sono equivalenti.
(i) Lassioma della scelta.
(ii) Il lemma di Zorn.
Dimostrazione.
(i) (ii). Non `e in programma.
(ii) (i). La dimostrazione `e un tipico esempio di applicazione del lemma
di Zorn. Sia a un insieme. Vogliamo denire una funzione di scelta su a. La
strategia della dimostrazione `e di denire un insieme parzialmente induttivo
il cui elemento massimale `e la funzione richiesta. A questo ne, consideriamo
linsieme delle funzioni f con dominio un sottoinsieme di T(a) tali che
f(p) p, per ogni p dom(f). Questo insieme ha un ordine parziale denito
dichiarando f
1
f
2
se f
2
estende f
1
, ovvero dom(f
1
) dom(f
2
) e f
1
(p) =
f
2
(p) per ogni p dom(f
1
). Questo ordine parziale `e induttivo e quindi,
per il lemma di Zorn, ha un elemento massimale, diciamo f. Vogliamo
dimostrare che dom(f) = T(a). Se non valesse, esisterebbe x
_
T(a)
_
dom(f), ovvero un elemento di T(a) che non appartiene al
dominio di f. Visto che x non `e vuoto, esiste y x e quindi possiamo
denire una funzione f
=
def
card(B
A
)
ove A + B `e lunione disgiunta di A e B, A B `e il prodotto cartesiano di
A e B e B
A
`e linsieme delle funzioni da A a B.
Si osservi che, per ogni insieme A, esiste una biiezione : T(A) 2
A
, ove
2 = 0 , 1, denita mappando S T(A) nella funzione caratteristica di S,
S
: A 2. Da questo segue
card(T(A)) = card(2
A
) = 2
card(A)
.
55
Deniamo
0
= card(N) e
1
come il pi u piccolo cardinale strettamente
maggiore di
0
. Lipotesi del continuo `e lasserzione
2
0
=
1
(CH)
Visto che linsieme dei numeri reali 1 `e in biiezione con T(N), vale che
card(1) = card(T(N)) = 2
card(N)
= 2
0
Lipotesi del continuo pu`o essere quindi letta come lasserzione che il pi` u
piccolo cardinale strettamente maggiore della cardinalit`a di N `e dato dalla
cardinalit`a di 1, o, equivalentemente, che non esiste alcun cardinale tra [N[
e [1[. Cohen e Godel hanno rispettivamente dimostrato che se ZFC non `e
contraddittoria, allora ZFC - CH e ZFC - CH. Questi risultati esprimono
che gli assiomi di ZFC non sono sucienti a dimostrare n`e lipotesi del
continuo n`e la sua negazione. Per una dimostrazione, si veda [2, 5].
56
Capitolo 4
Teoria della Calcolabilit`a
4.1 Macchine a registri
Cominciamo introducendo le macchine a registri, modelli idealizzati di calco-
latori, molto simili alle macchine di Turing. Una macchina a registri consiste
di un nastro innito
R
1
R
2
R
3
R
4
ove R
1
, R
2
, . . . N, sono detti i registri della macchina. Un programma per
una macchina a registri `e una sequenza di istruzioni, o stati. Abbiamo due
stati speciali:
S
0
, lo stato terminale, in cui lesecuzione del programma termina.
S
1
, lo stato iniziale, da cui comincia sempre lesecuzione del program-
ma.
Per ogni stato S
i
abbiamo due istruzioni possibili:
Aggiungi 1 al registro R
n
ed esegui S
j
,
Verica se R
n
= 0. Se s, esegui S
j
; altrimenti, sottrai 1 al registro R
n
ed esegui S
k
.
Per convenzione, se un programma termina, considereremo R
1
come il ri-
sultato del programma. Utilizzeremo la seguente notazione per abbreviare
questi comandi:
R
n
:= R
n
+ 1 ed esegui S
j
,
57
Se R
n
= 0 allora esegui S
j
altrimenti R
n
:= R
n
1 ed esegui S
k
.
Esempio 4.1.1. Il seguente programma aggiunge il valore di R
2
a R
1
.
S
0
Termina
S
1
Se R
2
= 0 allora esegui S
0
altrimenti R
2
:= R
2
1 ed esegui S
2
S
2
R
1
:= R
1
+ 1 ed esegui S
1
,
Si verichi che il programma, cominciando con
5 2 0 0
termina con
7 0 0 0
Si verichi che `e possibile scrivere programmi che non terminano, ovvero che
non raggiungono mai ad eseguire S
0
.
Denizione 4.1.2. Una funzione f : N
n
N `e calcolabile se esiste un
programma P tale che, per ogni (x
1
, . . . , x
n
) N
n
, si ha che:
se f(x
1
, . . . , x
n
) esiste, allora il programma, cominciando con
x
1
x
2
x
n
0 0
termina arrivando a
f(x
1
, . . . , x
n
)
se f(x
1
, . . . , x
n
) non esiste, allora P non termina.
4.2 Funzioni ricorsive
Linsieme delle funzioni ricorsive `e il pi u piccolo insieme X di funzioni da
potenze di N (ovvero insiemi della forma N
n
, per qualche n N) a N che
soddisfa le propriet`a seguenti.
(i) Per ogni 1 i n, la proiezione i-esima
i
: N
n
N
(x
1
, . . . , x
n
) x
i
`e in X.
58
(ii) La funzione costante 0 e la funzione successore
c
0
: N N
x 0
S : N N
x x + 1
sono in X.
(iii) Se f : N
n
N `e in X e, per ogni 1 i n, g
i
: N
m
N `e in X, allora
la funzione composta
f(g
1
, . . . , g
n
) : N
m
N
x
1
, . . . , x
m
f(g
1
(x
1
, . . . , x
n
), . . . , g
n
(x
1
, . . . , x
n
))
`e in X.
(iv) Se f : N
n
N e g : N
n+2
N sono in X, allora la funzione
h : N
n+1
N
(x
1
, . . . , x
n
, 0) f(x
1
, . . . , x
n
)
(x
1
, . . . , x
n
, y + 1) g(x
1
, . . . , x
n
, y, h(x
1
, . . . , x
n
, y)
`e in X.
(v) Se f : N
n+1
N `e in X, allora la funzione
Min(f) : N
n
N
(x
1
, . . . , x
n
) minx N [ f(x
1
, . . . , x
n
, x) = 0
`e in X.
Scriveremo Rec per indicare linsieme delle funzioni ricorsive. Le funzioni
in (i) e (ii) sono dette le funzioni ricorsive di base. Le funzioni ottenute
tramite lapplicazione delle regole in (i)-(iv) sono dette le funzioni primitive
ricorsive.
Si noti che linsieme delle funzioni ricorsive include non solo funzioni totali,
ma anche funzioni parziali f : N
n
N, che non necessariamente associano
un valore ad ogni elemento (x
1
, . . . , x
n
) N
n
. Per esempio, anche se f :
N
n+1
N `e una funzione totale, Min(f) : N
n
N `e una funzione parziale
qualora ci sia una sequenza (x
1
, . . . , x
n
) N
n
per cui non esiste x N tale
che f(x
1
, . . . , x
n
) = 0.
59
Nel caso n = 0, la denizione per ricorsione in (iv) assume la seguente
forma. Dato un elemento a N e una funzione g : N N N, abbiamo
una funzione
h : N N
0 a
y + 1 g(y, h(y))
Nel caso n = 1, la denizione per ricorsione in (iv) assume la seguente forma.
Date funzioni f : N N e g : N N N N, abbiamo una funzione
h : N N N
(x, 0) f(x)
(x, y + 1) g(x, y, h(x, y))
Osservazione 4.2.1. La funzione f : N N che calcola i numeri di Fibonacci
soddisfa le equazioni
f(0) = 1
f(1) = 1
f(x + 2) = f(x) +f(x + 1)
Nonostante la denizione di questa funzione non rientri nello schema delle
funzioni ricorsive, `e possibile tuttavia dimostrare che `e ricorsiva. In generale
possiamo denire funzioni ricorsive f : N N anche quando f(x+1) dipende
da tutti i valori f(0), . . . , f(x), e non solo da f(x). Per dimostrare questo,
`e necessario codicare i valori f(0), . . . , f(x) in un singolo numero. Lidea
che ci permette di fare questo `e di associare ad una sequenza
x
0
, x
1
, , . . . , x
n
di numeri (che, per semplicit`a, supponiamo diversi da zero), il numero
2
x
0
3
x
1
. . . p
x
n
n
ove, per 0 i n, p
i
denota il numero primo (i + 1)-esimo.
`
E chiaro che
questa denizione determina una funzione ricorsiva f : N
n
N.
`
E meno
evidente, ma comunque vero, che per ogni 0 i n, possiamo denire
una funzione da N a N che assegna ad un numero x il numero (x)
i
, denito
come lesponente della pi u alta potenza di p
i
che divide x. In con questa
denizione, `e chiaro che vale
(2
x
0
3
x
1
. . . p
x
n
n
)
i
= x
i
per ogni 0 i n. Grazie ha questa idea, data una funzione ricorsiva f :
N
n+1
N`e possibile denire una nuova funzione ricorsiva
f : N
n+1
N tale
che
f(x
1
, . . . , x
n
, y+1) codica tutti i valori f(x
0
, . . . , x
n
, 0), . . . f(x
0
, . . . , x
n
, y).
60
4.3 La tesi di Church
Teorema 4.3.1. Ogni funzione ricorsiva `e calcolabile.
Dimostrazione. Deniamo
X = f : N
n
N [ f `e calcolabile
Dimostreremo che X soddisfa le proprieta (i)-(v) con cui abbiamo denito
linsieme Rec delle funzioni ricorsive. Dalla minimalita di Rec, seguira che
Rec X, da cui si ottiene lasserzione desiderata. Dimostreremo ciascuna
delle proprieta separatamente.
Per (i), dobbiamo dimostrare che ciascuna delle proiezioni
i
: N
n
N, per
1 i n, `e calcolabile. Per i = 1, `e suciente scrivere un programma che
non modica R
1
e che poi termina. Per esempio:
S
0
Termina
S
1
R
2
:= R
2
+ 1 ed esegui S
0
Per i > 1, scriviamo un programma che azzera R
1
, trasferisce il valore di R
i
in R
1
e termina:
S
0
Termina
S
1
Se R
1
= 0 allora esegui S
2
altrimenti R
1
:= R
1
1 ed esegui S
1
S
2
Se R
i
= 0 allora esegui S
0
altrimenti R
i
:= R
i
1 ed esegui S
3
S
3
R
1
:= R
1
+ 1 ed esegui S
2
Per (ii), la funzione costante c
0
: N N `e calcolata dal programma:
S
0
Termina
S
1
Se R
1
= 0 allora esegui S
0
altrimenti R
1
:= R
1
1 ed esegui S
1
La funzione successore S : N N `e invece calcolata dal programma:
S
0
Termina
S
1
R
1
:= R
1
+ 1 ed esegui S
0
Per (iii), supponiamo di avere una funzione calcolabile f : N
n
N e, per
ogni 1 i n, una funzione calcolabile g
i
: N
m
N. Dobbiamo dimostrare
61
che la funzione f(g
1
, . . . , g
n
) : N
m
N `e calcolabile. Per capire come scri-
vere il programma, si ricordi che il valore di questa funzione su (x
1
, . . . , x
m
)
`e dato da:
f(g
1
(x
1
, . . . , x
m
), . . . , g
n
(x
1
, . . . , x
m
))
Calcoleremo separatamente i valori di g
1
(x
1
, . . . , x
m
), . . . , g
n
(x
1
, . . . , x
m
). A
questo ne, `e necessario salvare i valori di x
1
, . . . , x
m
in modo da poterli uti-
lizzare pi u di una volta. Possiamo poi applicare il il programma che calcola
f sui valori di g
1
(x
1
, . . . , x
m
), . . . , g
n
(x
1
, . . . , x
m
) per ottenere il risultato
desiderato. Il programma desiderato `e quindi il seguente.
Primo passo. Copiamo i valori di R
1
, . . . , R
m
in R
k+1
, . . . , R
k+m
,
R
1
R
2
R
m
R
k+1
R
k+m
ove k > m `e sucientemente grande da fare in modo che questi valori non
vengano modicati dai calcoli che seguono. Questo ci permette di utilizzare
ripetutamente i valori iniziali di R
1
, . . . , R
m
, come faremo nel secondo passo.
Secondo passo. Per ogni 1 i n, copiamo i valori di R
k+1
, . . . , R
k+m
in
R
n+1
, . . . , R
n+m
:
R
n+1
R
n+m
R
k+1
R
k+m
A questo punto, applichiamo il programma che calcola g
i
: N
m
N, traslato
di n, ai valori in R
n+1
, . . . , R
n+m
. Il valore ottenuto `e contenuto in R
n+1
.
Copiamo questo valore in R
i
.
Terzo passo. A questo punto, per 1 i n, il registro R
i
contiene il valore
ottenuto dallapplicazione del programma che calcola g
i
sui valori iniziali di
R
1
, . . . , R
m
. Possiamo quindi applicare il programma che calcola f su
R
1
R
2
R
n
e terminare il programma.
Per (iv), supponiamo di avere due funzioni computabili f : N
n
N e
g : N
n+2
N. Dobbiamo dimostrare che la funzione h : N
n+1
N, denita
da
h(x
1
, . . . , x
n
, 0) = f(x
1
, . . . , x
n
) ,
h(x
1
, . . . , x
n
, y + 1) = g(x
1
, . . . , x
n
, y, h(x
1
, . . . , x
n
, y)) .
62
`e calcolabile. Per capire come funziona il programma che calcola h, consi-
deriamo qualche esempio:
h(x
1
, . . . , x
n
, 0) = f(x
1
, . . . , x
n
)
h(x
1
, . . . , x
n
, 1) = g(x
1
, . . . , x
n
, 0, h(x
1
, . . . , x
n
, 0))
h(x
1
, . . . , x
n
, 2) = g(x
1
, . . . , x
n
, 1, h(x
1
, . . . , x
n
, 1))
h(x
1
, . . . , x
n
, 3) = g(x
1
, . . . , x
n
, 2, h(x
1
, . . . , x
n
, 2))
.
.
.
.
.
.
Consideriamo i seguenti registri:
R
1
R
n
R
n+1
R
n+2
R
k+1
R
k+n
R
k+n+1
R
k+n+2
I registri saranno utilizzati come segue.
I registri R
1
, . . . , R
n
vengono utilizzati per calcolare f o g e poi rista-
biliti al loro valore iniziale.
Dopo averne salvato il valore iniziale, il registro R
n+1
viene ssato a
0 e poi incrementato progressivamente, assumendo i valori 0, 1, 2, . . .,
analogamente allincremento dellargomento (n+1)-esimo di g nel lato
destro delle equazioni precedenti.
Il registro R
n+2
contiene i valori temporanei di h.
I registri R
k+1
, . . . , R
k+n
conservano i valori iniziali di R
1
, . . . , R
n
.
Il registro R
k+n+1
viene inizialmente ssato con il valore di R
n+1
e poi progressivamente decrementato, in modo da segnalare quando
dobbiamo terminare il programma.
Il registro R
k+n+2
viene inizialmente ssato a 0 e poi progressivamente
incrementato, permettendoci di incrementare R
n+1
.
Inizio. Assumiamo che il registro abbia la forma
R
1
R
2
R
n
R
n+1
0 0
Primo passo. Copiamo R
1
, . . . , R
n
, R
n+1
in R
k+1
, . . . , R
k+n
, R
k+n+1
R
1
R
n
R
n+1
R
n+2
R
k+1
R
k+n
R
k+n+1
R
k+n+2
ove k > n + 1 `e sucientemente grande.
Secondo passo. Applichiamo il programma che calcola f ai valori in R
1
, . . . , R
n
.
Terzo passo. Se R
k+n+1
= 0 allora esegui S
0
altrimenti R
k+n+1
:= R
k+n+1
N come segue:
g(x
1
, . . . , x
n
, 0, t) `e denito come il numero dello stato raggiunto dal
P dopo aver eseguito t passi, assumendo di iniziare con
x
1
x
n
0 0
Conveniamo che se P termina in meno di t passi, siamo nello stato S
0
.
Per i > 0, g(x
1
, . . . , x
n
, i, t) `e denito come il valore del registro R
i
dopo che P ha eseguito t passi.
Dimostreremo che
f(x
1
, . . . , x
n
) = g(x
1
, . . . , x
n
, 1, h(x
1
, . . . , x
n
)) ()
ove h(x
1
, . . . , x
n
) `e denito come il minimo t tale che g(x
1
, . . . , x
n
, 0, t) = 0.
Per dimostrare (), `e suciente osservare che g(x
1
, . . . , x
n
, 1, h(x
1
, . . . , x
n
))
`e il valore di R
1
dopo che P ha eseguito h(x
1
, . . . , x
n
) passi. Per denizione
di h, quindi, g(x
1
, . . . , x
n
, 1, h(x
1
, . . . , x
n
)) `e il valore di R
1
dopo che P ha
eseguito il minimo numero di passi t tale che g(x
1
, . . . , x
n
, 0, t) = 0. Per
denizione di g, quindi, questo valore `e il contenuto del registro R
1
dopo
che P ha eseguito il minimo numero di passi che permettono di raggiungere
S
0
, ovvero di terminare. Visto che P calcola f, il valore in R
1
quando P
termina `e esattamente f(x
1
, . . . , x
n
). Rimane da dimostrare che g, e quindi
h sono ricorsive. Da questo, tramite lequazione in (), seguira che f `e
ricorsiva, come vogliamo dimostrare. Questultima verica non `e parte del
programma.
4.4 Esempio di una funzione non ricorsiva
Vogliamo dare un esempio di una funzione f : N
n
N che non sia ricorsiva.
`
E chiaro che una tale funzione deve esistere, visto che linsieme delle funzioni
ricorsive f : N
n
N `e numerabile, mentre linsieme di tutte le funzioni
f : N
n
N non lo `e. Per denire una funzione non ricorsiva, procederemo
in tre passi. Nel terzo passo, utilizzeremo il metodo della diagonalizzazione
di Cantor.
Come primo passo, osserviamo che uninstruzione del tipo
R
n
:= R
n
+ 1 ed esegui S
j
65
`e completamente determinata dai numeri n e j. Per convenzione, le asse-
gneremo il codice 2
n
5
j
. Invece, unistruzione del tipo:
Se R
n
= 0 allora esegui S
j
altrimenti R
n
:= R
n
1 ed esegui S
k
`e completamente determinata dai numeri n, j, e k. Quindi, per convenzione,
le assegnamo il codice 2
n
3 5
j
7
k
. Il fattore 3 in questo codice serve
per aiutarci a distinguere i numeri che codicano istruzioni del primo tipo
rispetto ad istruzioni del secondo tipo.
Come secondo passo, si noti che un programma per macchine a registri non
`e nientaltro che una sequenza di istruzioni. Quindi possiamo assegnare
a ciascun programma un codice nel modo seguente. Dato un programma
che consiste di istruzioni S
0
, . . . , S
n
, innanzitutto assegnamo un codice a
ciascuna istruzione, secondo quanto spiegato nel primo passo, e otteniamo
quindi una sequenza di numeri i
0
, . . . , i
n
. Dopodich`e, associamo a questa
sequenza di numeri il singolo numero
2
i
0
3
i
1
. . . p
i
n
n
Tra i numeri naturali, esisteranno quindi numeri n ottenuti tramite questa
procedura. Possiamo pensare a questi numeri come codici di programmi per
macchine a registri. Dato n N, scriveremo P
n
per il programma codicato
da n, se questo esiste.
Come terzo e ultimo passo, dati n N e k N deniamo f
n,k
come la
funzione ricorsiva f
n,k
: N
k
N calcolata dal programma P
n
, se questo
esiste.
Teorema 4.4.1. La funzione g : N N denita da
g(n) =
_
f
n,1
(n) + 1 , se f
n,1
esiste e f
n,1
(n) `e denito.
0 , altrimenti.
non `e ricorsiva.
Dimostrazione. Innanzitutto, non esiste n N tale che g = f
n,1
. Infatti se
esistesse, avremmo sia che g(n) = f
n,1
(n) (per ipotesi) che g
n
(n) = f
n,1
(n)+
1 (per denizione di g). Da questo segue che g non `e ricorsiva. Infatti, se lo
fosse, esisterebbe un programma P
n
per qualche n N, che calcola g. Ma
allora avremmo g = f
n,1
, in contraddizione con quanto appena stabilito.
66
4.5 Insiemi ricorsivi e ricorsivamente enumerabili
Denizione 4.5.1. Un sottoinsieme S N `e detto essere ricorsivo se la
sua funzione caratteristica
S
: N N, denita da
S
(x) =
_
1 se x S ,
0 altrimenti ,
`e una funzione ricorsiva.
Proposizione/Denizione 4.5.2. Sia S N. Le seguenti condizioni sono
equivalenti.
(i) Esiste una funzione ricorsiva f : N
n
N tale che
S = f(x
1
, . . . , x
n
) N [ (x
1
, . . . , x
n
) N
n
.
(ii) Esiste una funzione ricorsiva f : N N tale che
S = x N [ f(x) `e denito .
(iii) La funzione
S
: N N denita da
S
(x) =
_
1 se x S
non denito altrimenti
`e ricorsiva.
(iv) La funzione
S
: N N denita da
S
(x) =
_
x se x S
non denito altrimenti
`e ricorsiva.
Un sottoinsieme S N che soddisfa queste condizioni sar`a detto ricorsiva-
mente enumerabile. delle condizioni equivalenti.
Dimostrazione. Dimostreremo (ii) (iii) (iv) (i) (ii).
(ii) (iii). Sia f come in (ii). Dato un programma P che calcola f, pos-
siamo ottenere un programma che calcola
S
aggiungendo a P uni-
struzione che, dopo aver calcolato f(x), assegna il valore 1 al registro
R
1
.
67
(iii) (iv). Dato un programma che calcola
S
`e immediato scrivere un
programma che calcola
S
. Per esempio, basta copiare x in una parte
remota della macchina, eseguire il programma per
S
, e poi copiare x
su R
1
.
(iv) (i).
`
E suciente considerare f data da
S
.
(i) (ii). Sia f : N
n
N come in (i). Dato un programma che calcola f,
descriviamo un programma Q che, dato un input x S, termina se
e solo se x S. Dato un input x, il programma Q calcola i valori
di f(x
1
, . . . , x
n
) e confronta il risultato ottenuto con x. Se il risultato
ottenuto `e uguale ad x, allora il programma termina. Altrimenti, Q
procede a calcolare un altro valore di f(x
1
, . . . , x
n
).
Proposizione 4.5.3. Un sottoinsieme S N `e ricorsivo se e solo se sia S
che N S sono ricorsivamente enumerabili.
Dimostrazione. Sia S un insieme ricorsivo. Per denizione,
S
`e ricorsi-
va. Da questo segue che sia
S
che
N\S
sono ricorsive, e quindi che sia S
che N S sono ricorsivamente enumerabili. Viceversa, supponiamo che S e
N S siano ricorsivamente enumerabili. Allora
S
che
N\S
sono ricorsive.
Utilizzando i programmi che calcolano
S
e
N\S
, `e possibile scrivere un
programma che calcola
S
nel modo seguente: dato un input x, il program-
ma calcola simultaneamente
S
(x) e
N\S
(x) e produce 1 o 0 a seconda di
quale programma termina prima. Si noti che almeno uno dei due programmi
deve terminare.
Teorema 4.5.4. Esiste una funzione ricorsiva u : N
3
N tale che, per
(n, k, m) N
3
, si ha che se n `e il codice di un programma, m`e il codice di una
sequenza ((m)
1
, . . . , (m)
k
)), e f
n,k
(((m)
1
, . . . , (m)
k
)) = r, allora u(n, k, m) =
r; altrimenti, u(n, k, m) non `e denito.
Un programma che calcola la funzione u del Teorema 4.5.4 `e detto un pro-
gramma universale, in quanto `e capace di simulare lazione di un qualsiasi
programma per macchine a registri. Applichiamo questo teorema al seguente
corollario.
Corollario 4.5.5. Le inclusioni
S [ S `e ricorsivo S [ S `e ricorsivamente enumerabile T(N)
sono inclusioni strette, ovvero
S [ S `e ricorsivo _ S [ S `e ricorsivamente enumerabile _ T(N) .
68
Dimostrazione. Sia u una funzione come nel Teorema 4.5.4. Deniamo
S =
def
n N [ u(n, 1, 3
n
) `e denito .
Linsieme S `e ricorsivamente enumerabile perche soddisfa la propriet`a (ii)
della Propositione/Denizione 4.5.2. Verichiamo che S non `e ricorsivo.
Abbiamo che
u(n, 1, 3
n
) = r sse n `e il codice di un programma, 3
n
`e il codice di
una sequenza (3
n
)
1
e f
n,1
((3
n
)
1
) = r
sse n `e il codice di un programma e f
n,1
(n) = r
Quindi,
u(u, 1, 3
n
) =
_
f
n,1
(n) se n `e il codice di un programma
non `e denito altrimenti
Da questo segue che la funzione non ricorsiva g : N N denita preceden-
temente puo essere descritta come
g(n) =
_
u(n, 1, 3
n
) + 1 se n `e il codice di un programma
0 altrimenti
Se S fosse ricorsivo, allora anche g sarebbe ricorsiva. Quindi, S non `e
ricorsivo, come volevasi dimostrare.
Diamo adesso un esempio di un insieme non ricorsivamente enumerabile.
Sia
S =
def
n N [ f
n,1
`e totale .
Se S fosse ricorsivamente enumerabile, esisterebbe una funzione ricorsiva
totale h : N N tale che S = h(n) [ n N (questo `e un fatto che non
dimostreremo). Allora, possiamo denire
h
(n) = f
h(n),1
+ 1
Si noti che
h
(n) = f
h(n),1
+ 1 = u(h(n), 1, 3
n
) + 1
A questo punto avremmo una contraddizione tra il fatto che h
`e ricorsiva
e totale e il fatto che h
,= f
n,1
per ogni n S. Quindi, S non puo essere
ricorsivo, come volevasi dimostrare.
69
Appendice A
Appendice
A.1 Insiemi, relazioni e funzioni
Utilizzeremo le lettere A, B, C, . . . X, Y, Z, . . . per indicare insiemi. Scrivere-
mo a A per indicare che a `e un elemento di A. Scriveremo a / A quando
questo non si verica. Una notazione simile verr`a adottata per la negazione
di altre relazioni. I simboli N, Z, , 1 indicano, come al solito, gli insiemi
dei numeri naturali (che per noi includono lo zero), interi, razionali e reali.
Siano A e B due insiemi. Scriveremo A B per indicare che A `e un sottoin-
sieme di B. Scriveremo invece A B per indicare che A `e un sottoinsieme
proprio di B, ovvero A B e A ,= B. Abbiamo che A = B se e solo se
A B e B A.
Sia A un insieme. Data una propriet`a (x) che gli elementi x A possono
avere o non avere, scriveremo x A [ (x) per indicare il sottoinsieme
di A che contiene tutti e soli gli elementi x A per cui vale (x). Per
esempio, linsieme dei numeri naturali pari `e dato da n N [ n `e pari .
Utilizzeremo questa notazione per richiamare la denizione delle operazioni
di intersezione, unione e dierenza tra sottoinsiemi di un insieme A ssato.
Dati S, T A, abbiamo
S T =
def
x A [ x S e x T ,
S T =
def
x A [ x S o x T ,
S T =
def
x A [x S e x / T .
Tra i sottoinsiemi di A ci sono anche linsieme vuoto, che indichiamo con il
simbolo , e linsieme A stesso. Linsieme delle parti di A `e linsieme T(A)
che ha come elementi i sottoinsiemi di A. Ovvero, S T(A) se e solo se
S A.
70
Siano A e B due insiemi. Il prodotto cartesiano di A e B `e linsieme AB che
ha come elementi le coppie ordinate della forma (a, b), ove a A e b B.
Se A ,= B allora A B ,= B A. Due coppie (a, b), (a
, b
) A B
sono uguali se e solo se a = a
e b = b
B, se (x, y) f e (x, y
) f
allora y = y
.
In base alla denizione, una funzione f : A B `e un sottoinsieme f AB
tale che per ogni x A esiste un unico y B tale che (x, y) f. Dato un
elemento x A, scriveremo f(x), come al solito, per indicare lunico y B
tale che (x, y) f. Per denire una funzione f : A B `e quindi necessario
denire per ogni x A un elemento f(x) B. A volte, questo sar`a fatto
tramite la notazione
f : A B
x . . .
ove i punti di sospensione saranno sostituiti dalla denizione di f(x).
Sia f : A B una funzione. Chiameremo A e B il dominio e il codominio
di f, rispettivamente. Diremo che due funzioni f : A B e f
: A B sono
uguali se sono uguali come sottoinsiemi di AB. Questo vale se e solo se per
ogni x Asi ha che f(x) = f
A,
f(x) = f(x
) implica che x = x
per ogni x A, x x,
(ii)
-(iii)
,
possiamo denire un ordine parziale dichiarando che
x y se e solo se x < y o x = y .
Inoltre, se la relazione < soddisfa anche la condizione in (iv)
allora `e un
ordine totale. Nel seguito, passeremo implicitamente da un ordine stretto <
a un ordine debole e viceversa, a seconda di cosa risulti pi` u conveniente.
Esempio A.2.3. Nel seguito utilizzeremo frequentemente diagrammi della
forma
a
E
E
E
E
E
E
E
b
y
y
y
y
y
y
y
c
d
{
{
{
{
{
{
{
C
C
C
C
C
C
C
e f
per denire ordini parziali. Un diagramma di questo tipo determina lordine
parziale (A, ) denito nel modo seguente. Innanzitutto, A `e linsieme dei
nodi del diagramma. In questo caso,
A =
def
a, b, c, d, e, f
Lordine parziale `e denito ssando che, per x, y A, vale x < y se esiste
un tratto ascendente da x verso y. In questo caso, abbiamo e < d, f < d,
d < c, c < a, c < b. Inoltre, visto che lordine parziale `e transitivo, si ha
anche, per esempio, che d < a e e < b. Quando non c`e un tratto ascendente
tra due elementi, vuol dire che questi non sono confrontabili nellordine. Per
esempio, il diagramma indica che a _ b e b _ a. Di consequenza, questo
diagramma rappresenta un ordine parziale che non `e totale.
73
Proposizione/Denizione A.2.4. Sia (A, ) un insieme parzialmente or-
dinato. Dato S A, per un elemento m S, le seguenti propriet`a sono
equivalenti.
(i) Non esiste x S tale che x < m.
(ii) Per ogni x S, se x m allora x = m.
(iii) Per ogni x A, se x < m allora x / S.
Quando m ha una, e quindi ognuna, di queste propriet`a, diremo che `e
un elemento minimale di S.
Dimostrazione. Esercizio.
Esempio A.2.5.
Si consideri lordine parziale (Z, ) e il sottoinsieme S Z denito
da S =
def
x Z [ x < 0. Questo insieme non ha un elemento
minimale.
Si consideri lordine parziale (T(N), ) e il sottoinsieme S T(N)
denito da S =
def
p T(N) [ p ,= . Tutti gli insiemi del tipo n,
per n N, sono elementi minimali di S. Si noti che un elemento
minimale, se esiste, non `e unico.
Denizione A.2.6. Sia (A, ) un insieme parzialmente ordinato e S A.
Diremo che m S `e un elemento minimo di S se x m per ogni x S.
Esempio A.2.7.
In generale, un elemento minimale non `e un elemento minimo. Per
esempio, 0 `e minimale in S = p T(N) [ p ,= , ma non `e
minimo. Infatti, 0 _ 2, 3.
Se (A, ) `e un ordine totale, un elemento minimale m di un sottoin-
sieme S A `e il suo minimo. Infatti, dato x S il fatto che m sia
minimale implica che x m. Da questo, per la tricotomia di <, segue
che m x.
74
Bibliograa
[1] G. S. Boolos, J. P. Burgess, and R. C. Jerey. Computability and Logic.
Cambridge University Press, 5th edition, 2007.
[2] F. R. Drake and D. Singh. Intermediate Set Theory. Wiley, 1996.
[3] H. B. Enderton. A Mathematical Introduction to Logic. Academic Press,
2nd edition, 2001.
[4] P. T. Johnstone. Notes on Logic and Set Theory. Cambridge University
Press, 1987.
[5] K. Kunen. Set Theory - An Introduction to Independence Proofs.
Elsevier, 1980.
[6] I. Moerdijk and J. van Oosten. Sets, models and proofs. Dispense
disponibili alla pagina web di J. van Oosten, 2009.
[7] D. van Dalen. Logic and Structure. Springer, 4th edition, 2008.
75