Sei sulla pagina 1di 55

Appunti del corso di Logica, turni A e B

Versione beta, 14 ottobre 2011


Alessandro Andretta
alessandro.andretta@unito.it
Felice Cardone
felice@di.unito.it
1 Tecniche di dimostrazione
Le conoscenze alle quali pervengono le scienze esatte si esprimono generalmente in
forma di proposizioni, frasi dichiarative con il verbo allindicativo; per esempio:
(i) lequazione x
2
= 2 non ha soluzioni razionali.
Analogamente, in informatica possiamo esprimere la correttezza di un algoritmo
a di ordinamento di vettori mediante la proposizione:
(ii) Per ogni vettore v, lalgoritmo a produce una permutazione degli elementi
di v ordinata in ordine crescente.
La logica analizza queste proposizioni scomponendole in elementi che apparten-
gono ad un numero ristretto di categorie grammaticali, mettendone in evidenza
la struttura mediante una traduzione in formule di un opportuno linguaggio
formale.
Una caratteristica delle proposizioni come (i) e (ii) `e che la loro verit`a non pu`o
essere stabilita mediante esperimenti. Nessun esperimento potr`a mai escludere
lesistenza di una soluzione razionale dellequazione x
2
= 2, ne un numero nito
di esperimenti sar`a mai suciente per stabilire la correttezza di un algoritmo. Per
questo la nozione di dimostrazione assume unimportanza centrale: `e per mezzo
di dimostrazioni che si stabilisce la verit`a di proposizioni come quelle degli esempi
(i) e (ii).
Una dimostrazione ha laspetto di una serie di proposizioni concatenate in
modo tale che la conclusione (la proposizione da dimostrare) sia fatta dipendere
da altre proposizioni mediante inferenze. La logica analizza la struttura delle
dimostrazioni formalizzandole come derivazioni, strutture di formule costruite in
accordo con le regole di inferenza opportunamente riformulate in modo da operare
su quei particolari oggetti simbolici che sono le formule.
Prima di studiare formalmente le derivazioni, consideriamo in modo ancora
informale alcuni esempi di schemi di dimostrazione.
Esempio 1.1 (Dimostrazione diretta). In questo esempio dimostriamo un enunciato
della forma
(1) A B.
Una strategia generica che si pu`o applicare in questo caso consiste nel dimostrare B
avendo assunto A. Da un punto di vista operativo, assumere A signica poter usare
A nella dimostrazione di B. Da un punto di vista semantico, assumere A signica
supporre che A sia vera. Questo tipo di dimostrazione di A B viene chiamata
anche dimostrazione diretta. Gracamente, una dimostrazione diretta pu`o
essere rappresentata cos`:
1
A (assunzione)
.
.
.
B
A B (conclusione)
In questa rappresentazione di una dimostrazione, trascriviamo i passaggi che la
compongono uno per riga; le barre verticali servono a delimitare il campo di azione
di una assunzione. In questo caso, lassunzione A si estende per tutte le righe della
dimostrazione tranne lultima riga, in cui lassunzione viene scaricata: mentre
lenunciato B dipende ancora da A, lenunciato A B non ne dipende pi` u,
quindi si trova allesterno della barra orizzontale, che evidentemente rappresenta
la struttura dinnestamento dei campi di azione delle assunzioni.
Spesso si vuole dimostrare una proposizione A per tutti i valori di una varia-
bile x scelti in un certo insieme. Una strategia che pu`o essere adottata in questi
casi consiste nel dimostrare la proposizione A per un valore generico di x: poiche
niente distingue il valore generico scelto per x da tutti gli altri, la proposizione vale
allora per tutti i valori di x. Non sempre questa strategia `e suciente: vedremo
che per dimostrare una propriet`a per tutti i numeri naturali `e spesso necessario
ricorrere al principio di induzione.
Si ricordi che un numero intero n `e pari se n = 2k per qualche intero k. Analoga-
mente, n `e dispari se n = 2 +1 per qualche . Vediamo una dimostrazione diretta
dellenunciato seguente:
Per tutti i numeri interi n ed m, se n `e dispari e m `e pari
. .
A
allora n +m `e dispari
. .
B
Per la dimostrazione: siano n ed m interi qualsiasi, ed assumiamo
n `e dispari e m `e pari.
Bisogna dimostrare che n + m `e dispari. Per denizione n = 2 + 1 per qualche
intero , mentre m = 2k per qualche intero k. Perci`o
n +m = (2 + 1) + 2k
= (2 + 2k) + 1
= 2( +k) + 1
che dimostra che n + m `e dispari perche ha la forma 2j + 1 (basta prendere
j = +k).
Esercizio 1.2. Si dia una dimostrazione diretta del fatto che, se n `e pari, allora
n
2
`e divisibile per 4.
2
Esercizio 1.3. Dimostrare i seguenti enunciati utilizzando la tecnica appropriata:
1. Per tutti i numeri interi n, m, se n ed m sono pari allora n +m `e pari.
2. Per tutti i numeri interi n, m, se n ed m sono dispari allora n +m `e pari.
3. Per tutti i numeri interi n, m, se n ed m sono pari allora nm `e pari.
4. Per tutti i numeri interi n, m, se n ed m sono dispari allora nm `e dispari.
5. Per tutti i numeri interi n, m, se n `e pari ed m `e dispari, allora nm `e pari.
Esercizio 1.4. Siano a e b due numeri reali. Si denisce il minimo min(a, b) tra
a e b nel modo seguente:
min(a, b) =
_
a if a b;
b if a > b.
Si dia una dimostrazione diretta dellenunciato:
Se x min(a, b), allora x a e x b.
Esempio 1.5 (Dimostrazione per assurdo). Una dimostrazione per assurdo `e
una dimostrazione di una proposizione A che assume che A sia falsa e da questa
assunzione deriva una contraddizione, una proposizione della forma C C
(dove C `e una proposizione qualsiasi). In particolare, una dimostrazione per as-
surdo di una proposizione della forma (1) assume che A sia vera e che B sia falsa,
e da queste assunzioni deriva una contraddizione. Una dimostrazione con questa
struttura viene anche chiamata una dimostrazione indiretta.
Vediamo una dimostrazione per assurdo dellenunciato:
Per tutti i numeri reali x, y, se x +y 2
. .
A
allora x 1 oppure y 1
. .
B
.
Si osservi che assumere che x 1 oppure y 1 sia falsa `e equivalente ad assumere
che x < 1 e y < 1. Siano x e y numeri reali qualsiasi, e supponiamo che:
x +y 2
x < 1
y < 1
Allora x +y < 1 +1 = 2, quindi x +y < 2, ma questo contraddice la nostra prima
assunzione, e questo dimostra (per assurdo) che se x + y 2 allora x 1 oppure
y 1.
3
Esercizio 1.6. Dimostrare che, se 100 palline vengono distribuite in 9 scatole,
almeno una scatola contiene non meno di 12 palline.
Esercizio 1.7. Dimostrare che, se 40 monete vengono distribuite in 9 borse in
modo tale che nessuna borsa sia vuota, almeno due borse contengono lo stesso
numero di monete.
Dimostriamo ora lenunciato:
Per ogni numero intero n, se n
2
`e pari
. .
A
allora n `e pari
. .
B
.
Usiamo una dimostrazione diretta, assumendo che n
2
sia pari. Vorremmo conclu-
dere che n `e pari. Per arrivare a questa conclusione usiamo una dimostrazione per
assurdo, cio`e assumiamo che n sia dispari e facciamo vedere che questa assunzione
porta ad una contraddizione. Sia n dispari: allora n = 2m + 1 per qualche intero
m. Allora possiamo calcolare:
n
2
= (2m+ 1)
2
(2)
= 4m
2
+ 4m+ 1
= 2(2m
2
+ 2m) + 1
che dimostra che n
2
`e dispari, che contraddice la prima ipotesi. Allora abbiamo
dimostrato (per assurdo) che n `e pari, quindi abbiamo dimostrato (in modo diretto)
che se n
2
`e pari, allora n `e pari, per ogni intero n.
Gracamente, la struttura di questa dimostrazione potrebbe essere rappresentata
in questo modo:
n
2
pari (assunzione della dimostrazione diretta)
n dispari (assunzione della dimostrazione per assurdo)
.
.
.
(n
2
pari) (per (2))
n
2
pari (per ipotesi della dimostrazione diretta)
n pari (conclusione della dimostrazione per assurdo)
n
2
pari n pari (conclusione della dimostrazione diretta)
Il prossimo esempio introduce una tecnica che pu`o essere utilizzata per semplicare
la dimostrazione che abbiamo appena visto.
Esempio 1.8 (Dimostrazione per contrapposizione). Per dimostrare un enunciato
della forma (1), si pu`o anche dimostrare (in modo diretto) lenunciato equivalente:
(3) B A.
Per esempio, si dimostra per contrapposizione lenunciato:
4
Per ogni numero intero n, se n
2
`e pari
. .
A
allora n `e pari
. .
B
.
dimostrando (in modo diretto) lenunciato:
per ogni numero intero n, se n `e dispari
. .
B
allora n
2
`e dispari
. .
A
Sia n un intero qualsiasi, e si assuma che n sia dispari; bisogna dimostrare allora
che anche n
2
`e dispari. Se n = 2k + 1 per qualche intero k, abbiamo
n
2
= (2k + 1)
2
= (4k
2
+ 4k + 1)
= 2(2k
2
+ 2k) + 1
quindi n
2
`e pari, perci`o lenunciato `e dimostrato.
Esempio 1.9 (Dimostrazione per casi). Quando si deve dimostrare un enuncia-
to della forma (1) dove A ha la forma A
1
A
2
. . . A
n
, si pu`o cercare
equivalentemente di dimostrare tutte le implicazioni
(A
1
B) . . . (A
n
B).
Per esempio, si pu`o usare una dimostrazione per casi del seguente enunciato:
Per ogni numero reale x, x [x[.
Distinguiamo due casi:
x < 0: in questo caso, si ricordi che [x[ = x, quindi [x[ > 0 > x perci`o
[x[ x;
x 0: [x[ = x 0 anche in questo caso.
Si pu`o allora concludere che x [x[ per ogni reale x.
Esercizio 1.10. Si dimostri che per tutti i numeri reali x, y, min(x, y)+max(x, y) =
x +y.
5
2 Dal linguaggio naturale alla logica
Questa sezione `e ladattamento di un capitolo delle dispense del corso
di Logica Matematica tenuto dal Prof. Gabriele Lolli per il Corso di
Laurea in Informatica no allanno 2008. Il segno

a margine (curva pericolosa) segnala un passaggio particolarmente


delicato, sul quale vale la pena soermarsi.
La prima competenza che bisogna acquisire `e quella della formalizzazione, ovvero
della traduzione di frasi della lingua naturale o del gergo matematico che `e
un misto di formule e di parole in espressioni di un linguaggio semplicato,
schematico e dalla sintassi precisa.
Le frasi che si prendono in considerazione formano un sottoinsieme della to-
talit`a delle frasi. Non si considerano espressioni di interrogazione, esclamazione o
comando, ma solo frasi dichiarative. Ci si riduce, come primo livello di sempli-
cazione, a frasi elementari che esprimono fatti, e a loro combinazioni mediante
particelle logiche.
Non si considerano inoltre frasi con indicatori di tempo e luogo (tempi dei
verbi, avverbi di tempo, luogo e modo).
La semplicazione `e guidata dalla volont`a di restringersi ad espressioni mate-
matiche.
Si devono evitare ambiguit`a e ridondanze, con lobiettivo di capire e far emer-
gere la struttura logica. Una frase come
La vecchia porta la sbarra
`e ambigua perche non `e chiara la sua struttura sintattica: se vecchia sia un
aggettivo sostantivato o un aggettivo, se porta e sbarra siano sostantivi (nomi)
o forme verbali.
Una frase come
Giovanni vede Mario che `e malato e piange
e ambigua per ragioni di scansione, occorrono delimitatori come le virgole.
2.1 Predicati e relazioni
Noi saremo interessati a linguaggi simbolici in cui formiamo proposizioni a partire
da nomi o da altre proposizioni mediante operazioni che corrispondono a modi di
costruzione delle proposizioni che si trovano nei linguaggi naturali (in particolare,
6
litaliano). Nella logica simbolica, tuttavia, resta ben poco della struttura alta-
mente complessa di un linguaggio naturale. Per esempio, vengono dimenticati gli
avverbi, i tempi, le persone ed i modi dei verbi, i verbi e gli aggettivi vengono
in molti casi identicati. C`e una motivazione storica per questo impoverimento
di struttura: nel ragionamento matematico, che `e stata la motivazione principale
per lo sviluppo della logica matematica (o formale, o simbolica), risulta superuo
considerare modo, tempo e persona dei verbi, e parti del discorso come avverbi.
Possiamo dare quasi una denizione:
con proposizione si intender`a sempre una frase dichiarativa, per la
quale abbia senso chiedersi se `e vera o falsa (in un contesto determina-
to).
`
E pi` u dicile spiegare esattamente che cosa si intender`a con nome: in gene-
rale verr`a sottintesa una competenza linguistica preesistente, basata sulla nostra
esperienza di parlanti di un linguaggio naturale, che ci permette di riconoscere
intuitivamente quando un sintagma si comporta come un nome.
In logica, per denizione, ci occupiamo della struttura logica delle proposizioni.
Questa struttura `e il risultato di unanalisi che risente di presupposti losoci e
che, proprio per questo, `e cambiata attraverso i secoli.
Tanto per introdurre il nostro argomento e per apprezzare meglio il contributo
della logica formale, vediamo brevemente unanalisi delle proposizioni come `e stata
praticata per quasi due millenni, a partire da Aristotele (384 a. C. 322 a. C.).
Secondo Aristotele, una proposizione come
Socrate `e mortale
pu`o essere vista come un esempio di uno schema
(4) S `e P
dove S `e il soggetto e P `e il predicato, mentre il verbo essere che esprime
lattribuzione del predicato al soggetto `e detto copula. Nella teoria aristotelica
del sillogismo, che `e la teoria della dimostrazione sviluppata da Aristotele, ogni
proposizione che compare allinterno di un sillogismo ha la forma (4). Oltre a nomi
di individui, al posto della variabile S possiamo avere anche i seguenti termini
generali:
(A) Ogni X,
(I) Qualche X,
(E) Nessun X, e
7
(O) Non ogni X.
Gi`a analizzando le proposizioni secondo lo schema (4) si pu`o progredire note-
volmente verso una classicazione delle proposizioni da un punto di vista logico,
cio`e verso un utilizzo delle proposizioni allinterno di dimostrazioni corrette. Per
esempio, alla base della logica aristotelica si trova il seguente quadrato delle
opposizioni:
(A) contrarie
contraddittorie
I
I
I
I
I
I
I
I
(E)
u
u
u
u
u
u
u
u
u
(I) subcontrarie (O)
In questo quadrato le lettere indicano i corrispondenti tipi di soggetto di ciascuna
proposizione:
Proposizioni contraddittorie non possono essere entrambe vere e
non possono essere entrambe false (es.: Tutti gli X sono P e Qualche
X non `e P; Qualche X `e P e Nessun X `e P);
Proposizioni contrarie non possono essere entrambe vere, ma pos-
sono essere entrambe false (es.: Tutti gli X sono P e Nessun X `e
P);
Proposizioni subcontrarie possono essere entrambe vere (es.: Qual-
che X `e P e Qualche X non `e P).
Il passaggio dalla logica tradizionale, aristotelica, alla logica moderna avviene
con i lavori del logico Gottlob Frege (1848 1925) verso la ne del 1800. La pro-
posta di Frege `e semplice: invece di analizzare le proposizioni come nello schema
(4), cio`e secondo una struttura soggetto/predicato, queste vengono analizzate se-
condo una struttura funzione/argomento. Vedremo in che senso questo `e possibile,
e quali sono i vantaggi di questo cambiamento di prospettiva per lespressivit`a del
formalismo logico. Diventer`a evidente, per esempio, che lanalisi aristotelica delle
proposizioni in termini di soggetto e predicato, anche usando i termini generali,
non si pu`o estendere in modo da riuscire a distinguere le due possibili letture della
proposizione:
Ogni uomo ha ballato con qualche donna,
vale a dire:
(i) Per ogni uomo c`e una donna con la quale ha ballato.
(ii) C`e una donna con la quale ogni uomo ha ballato.
8
Le frasi elementari nel linguaggio naturale sono di diverso tipo, ma in tutte si
pu`o individuare un soggetto, un verbo e un complemento (eventualmente pi` u sog-
getti e pi` u complementi, o nessuno). I verbi possono essere intransitivi o transitivi,
ed esprimere stati o azioni.
Nella terminologia logica si introducono predicati (o propriet`a) e relazio-
ni; i primi corrispondono ai verbi intransitivi e alla copula essere, le seconde ai
verbi transitivi.
Si dice che una propriet`a `e goduta da un soggetto, o che un soggetto ha una
determinata propriet`a o che soddisfa un predicato. Si dice anche che una propriet`a
`e predicata di un soggetto, espressione dalla quale si vede il collegamento tra i due
termini.
Con la rosa `e profumata o la rosa profuma si esprime il fatto che la rosa ha
una propriet`a, quella di essere profumata. Lo stesso se si dice la rosa ha profumo.
Il verbo avere in generale indica possesso, ma non in questo caso. In Giovanni
ama Maria invece
1
il verbo amare ha un soggetto e un complemento oggetto;
in logica si dice che sussiste una relazione tra Giovanni e Maria, o che Giovanni e
Maria stanno nellordine in una relazione, che `e la relazione (non simmetrica) di
amore.
Tutti i verbi si potrebbero standardizzare nella forma della attribuzione di
uno stato a uno o pi` u termini, e questo corrisponderebbe ad avere un solo verbo,
la copula essere, nelle due versioni essere qualcosa per i verbi intransitivi
e essere nella relazione . . . con per i verbi transitivi. Questo `e il motivo per
cui nella trattazione formale si user`a la dizione unica predicati per propriet`a e
relazioni, distinguendo quelli a un argomento (propriet`a) da quelli a pi` u argomenti
(relazioni). Il numero di argomenti `e il numero di entit`a a cui si applica il
predicato. Ma informalmente si preferisce distinguere tra predicati in senso stretto
(a un solo argomento, o predicati monadici), e relazioni (a pi` u argomenti).
La frase Giovanni dorme pu`o diventare Giovanni ha la propriet`a di stare
dormendo (o Giovanni `e addormentato, Giovanni sta dormendo, Giovanni
`e nello stato di sonno).
Giovanni possiede un Piaggio 50 diventa la relazione di possesso sussiste
tra Giovanni e un Piaggio 50, o meglio come vedremo la relazione di possesso
sussiste tra Giovanni e una cosa, e questa cosa `e un Piaggio 50.
Le frasi matematiche elementari, uguaglianze e disuguaglianze, `e uguale a, `e
minore di, rientrano in questa tipologia. Cos` quelle insiemistiche con appartiene
a, cio`e `e un elemento di.
Alcune frasi possono essere rese sia mediante relazioni che mediante predicati;
dipende da come si deniscono le relazioni e i predicati. In Giovanni `e amico
1
O Maria `e amata da Giovanni, la distinzione tra forma attiva e passiva `e inessenziale, salvo
che dal punto di vista psicologico.
9
di Mario si pu`o considerare la propriet`a essere amico di Mario e attribuirla
a Giovanni, oppure la relazione essere amico di e aermare che sussiste tra
Giovanni e Mario.
Non si pu`o dire che una sia giusta e laltra no; dipende dal contesto; se do-
po la prima osservazione si vuole aggiungere che Giovanni piange perche Mario `e
malato, e bisogna quindi citare di nuovo Mario, si deve usare il nome Mario e
allora `e meglio la versione relazionale, perche in quella con il predicato in nome
Mario scompare, nella versione formalizzata, assorbito dal simbolo per il predi-
cato: essere amico di Mario in quanto predicato, nellanalisi logica, `e una unit`a
linguistica non scomponibile, anche se espressa in italiano da una successione di
parole tra le quali compare Mario.
Le relazioni a due argomenti, come quelle viste negli esempi, si chiamano bina-
rie. Le relazioni non sono solo binarie: il punto C giace tra A e B `e un esempio
di una relazione ternaria, o tra tre termini.
2.2 Termini
I soggetti o gli oggetti, pi` u in generale i termini tra cui sussiste una relazione,
sono indicati da vari costrutti linguistici. Il pi` u semplice `e il nome proprio, come
Giovanni e Maria. Gli altri sono le descrizioni e i nomi comuni.
In Maria ama il padre di Giovanni, padre di Giovanni `e una descrizione,
ben precisa, di una persona. Analogamente il quadrato di 2 `e una descrizione
di un numero; entrambe le descrizioni sono ottenute applicando una funzione
2
, nel
primo caso padre di nel secondo il quadrato di, a descrizioni pi` u semplici, che
in questi esempi sono nomi. Si possono dare descrizioni pi` u complesse, come la
madre del padre di Giovanni o meno il quadrato di 2.
I nomi comuni richiedono una trattazione indiretta. Nella frase Giovanni
possiede un Piaggio 50, il Piaggio 50 di Giovanni `e uno di una categoria di cose
simili; Piaggio 50 non `e un nome proprio, ma un nome comune; `e in eetti un
predicato, ragione della versione sopra proposta per la frase, che Giovanni possiede
una cosa che ha la propriet`a di essere un Piaggio 50. Questa frase non `e pi` u tuttavia
elementare, `e in eetti la congiunzione di due frasi: Giovanni possiede una cosa
e questa cosa `e un Piaggio 50.
Da questo esempio si vede la necessit`a di chiarire ancora almeno tre aspetti:
come rendere cosa, come rendere la congiunzione delle due frasi, e come rendere
questa cosa, che nella seconda frase stabilisce un collegamento con la prima.
2
Preciseremo in seguito cosa sono le funzioni dal punto di vista matematico.
10
2.3 Connettivi
Le particelle logiche della lingua italiana sono parole come e, oppure, se e
altre, che collegano frasi di senso compiuto. Nella lingua italiana queste parole da
una parte sono polivalenti e ambigue, hanno diversi sensi in generale discriminati
dal contesto e dallaltra si presentano in tante versioni equivalenti.
La congiunzione e pu`o ad esempio essere resa da una virgola, da e anche,
da ma e ancora altre espressioni. Il senso avversativo di ma `e uno degli
aspetti che vengono lasciati cadere nel passaggio ad un linguaggio formalizzato,
in quanto esprime unaspettativa soggettiva. La congiunzione `e resa anche da
costrutti pi` u complicati, come sia . . . sia: parto sia che piova sia che faccia bel
tempo signica se fa bel tempo parto, e se piove parto, magari con laggiunta
di un ugualmente che di nuovo esprime una determinazione soggettiva.
La stessa congiunzione talvolta esprime qualcosa di pi` u o di diverso dalla sem-
plice aermazione di entrambe le proposizioni congiunte; talvolta pu`o signicare
e poi, come in si sposarono e vissero felici; talvolta signica e quindi, come
in si immerge una cartina di tornasole, e diventa rossa (se questa frase `e intesa
non come una descrizione di avvenimenti, nel qual caso e signica e dopo, ma
come come una caratterizzazione di particolari sostanze).
La disgiunzione, o o oppure, talvolta ha un senso debole (uno o laltro
o tutte due), talvolta un senso esclusivo (uno o laltro ma non tutte due).
Laermazione piove o c`e il sole `e compatibile con la situazione in cui piove
da una nuvola anche se c`e il sole. Il latino aveva due parole diverse vel e aut,
ma la distinzione non `e rimasta nelle lingue moderne. Sar`a invece ripristinata nei
linguaggi formali. La dierenza qualche volta `e espressa dalla semplice ripetizione
di o (o piove o c`e il sole) ma pi` u spesso dallenfasi della pronuncia; il tono e
il contesto devono essere tenuti presenti per capire il signicato inteso. C`e voluto
del tempo per tornare a riconoscere due particelle diverse, e anche per accettare
vel come disgiunzione:
Alcuni dicono che per la verit`a di una disgiunzione si richiede sempre
che uno dei disgiunti sia falso, perche se entrambi fossero veri non
sarebbe una vera disgiunzione, come dice Boezio. Questo per`o non mi
piace. In realt`a io dico che se entrambe le parti di una disgiunzione
sono vere, lintera disgiunzione `e vera (Walter Burleigh, De Puritate,
XCI, 3-19, XIV sec .)
La disgiunzione in italiano talvolta `e resa con ovvero, ma questa parola
signica anche cio`e, vale a dire, cio`e una precisazione, non unalternativa.
La o si esprime anche con altrimenti come in Lasciate un messaggio,
altrimenti non sarete richiamati, solo apparentemente pi` u ingiuntiva della versione
con la o.
11
Qualche volta la stessa frase pu`o essere espressa sia con la e che con la o. Si
pu`o dire equivalentemente sia Tutti, bianchi o neri, hanno unanima, sia Tutti,
bianchi e neri, hanno unanima. Laermazione mele e pere sono frutti vuole
anche dire che una cosa che sia una mela o una pera `e un frutto.
La negazione di una frase si realizza in diversi modi, di solito con la particella
non, inserita per`o (o soppressa) in vari modi nella frase da negare, con diversi
costrutti che coinvolgono altre parole, in particolare i verbi. Da piove a non
piove, o non `e vero che piove; da qualche volta piove a non piove mai;
da piove sempre a qualche volta non piove; da non ama nessuno a ama
qualcuno, da `e bello a `e brutto, e cos` via. Per negare non piove non si
dice non non piove ma piove o non `e vero che non piove.
Per mettere in evidenza propriet`a delle particelle logiche, che non dipendono
dal signicato delle frasi che connettono, negli esempi proposti useremo dora in
avanti le lettere A, B, . . . per indicare frasi imprecisate, e scriveremo: A e B,
A oppure B e simili.
La parola se `e unaltra particella dai molteplici sensi, e dalle molteplici rese,
ad esempio con B, se A, A solo se B, se A allora B, A implica B, A,
quindi B ma quindi ha anche un signicato temporale, come poi.
Quando si aerma se A allora B, A `e detta condizione suciente per B, e B
condizione necessaria per A. A `e condizione suciente per B e B condizione
necessaria per A sono altri modi di esprimere se A allora B.
Al se . . . allora sar`a dedicata una discussione speciale per la sua importanza
rispetto allinferenza logica.
Spesso se . . . allora non `e presente in frasi che tuttavia esprimono quel tipo di
collegamento: un numero primo maggiore di 2 `e dispari signica se un numero
`e primo e maggiore di 2 allora `e dispari. Torneremo sullargomento.
In considerazione delle ambiguit`a e molteplicit`a di espressione messe in luce, un
primo passo `e quello di introdurre una sola versione ssa delle particelle logiche, sia
come simboli che come signicati; fatto questo tuttavia, la competenza pi` u impor-
tante consiste poi nel saper tradurre le frasi della lingua naturale, disambiguandole
quando necessario e possibile, e trovando la versione formale corrispondente.
La precedente discussione non esaurisce certo la complessit`a della lingua, ma `e
stata proposta a titolo esemplicativo. Solo una costante (auto)analisi delle varie
forme espressive (leggi: tanti esercizi) aiuta a riconoscere le varie insidie.
La standardizzazione `e necessaria per poter comunicare con le macchine; ma
prima di parlare alle macchine occorre parlare ad altre persone e a se stessi per
costruire gli algoritmi. Nellapprendere a formalizzare si deve anche ranare la
propria logica naturale.
Tuttavia non esiste un elenco completo di quelle che nei linguaggi naturali si
riconoscono come particelle logiche. Non abbiamo menzionato ad esempio ne
12
. . . ne, o a meno che.
3
Qualche volta, parole che non sembrano particelle logi-
che possono essere usate in questo modo, e lo si riconosce nella formalizzazione:
quando `e di solito una determinazione temporale, ma quando piove, prendo
lombrello viene resa quasi necessariamente da se piove, prendo lombrello.
Nellottica della formalizzazione, chiedere cosa signica quando piove, prendo
lombrello non `e altro che la richiesta di tradurre la frase in unaltra in cui compaia
una delle particelle logiche riconosciute tali e scompaia quando, se non `e tra
quelle; cos` si vede a quale delle particelle note la parola `e equivalente; ma non
sempre `e evidente una possibile riduzione di una frase ad unaltra, ne sempre una
sola.
Esistono peraltro parole anche di dicile catalogazione, che sembrano particelle
logiche in quanto legano due frasi, ma hanno sfumature importanti che si perdono
nella formalizzazione: ad esempio siccome piove, prendo lombrello, o prendo
lombrello perche piove potrebbero essere espresse dallasserzione unica la pioggia
`e la causa del mio prendere lombrello, che coinvolge peraltro la delicata parola
causa; le frasi contengono tuttavia una determinazione temporale implicita (sta
piovendo), o anche una qualitativa (un riferimento forse a un particolare tipo di
pioggia a dirotto) che non le rende del tutto equivalenti a quando piove, prendo
lombrello o a la pioggia `e la causa del mio prendere lombrello.
Esistono parimenti frasi che ne assommano diverse; la stessa siccome piove,
prendo lombrello invece che una frase pu`o essere considerata un argomento, poi-
che in essa si aerma un fatto, che piove, oltre a un legame condizionale. Potrebbe
corrispondere ad un esempio di modus ponens (si vedr`a a suo tempo): Se piove,
prendo lombrello. Piove. Quindi prendo lombrello.
Useremo simboli speciali per rappresentare alcune particelle logiche che sembra-
no di uso pi` u comune, almeno nei discorsi meno sosticati. Per queste si potrebbero
usare parole della lingua italiana o comunque di una lingua naturale ssando
per convenzione in modo rigido il loro signicato, come si fa ad esempio quando
per la congiunzione si usa and, in informatica. Quando si usano and e simili, si
vuole che il linguaggio sia friendly perche ci si deve concentrare su altro; noi invece
vogliamo concentrarci proprio su quelle parole, per cui sono meglio simboli nuovi,
insoliti, che sorprendano.
Useremo per le particelle logiche i simboli:
per la negazione
per la congiunzione
3
Si noti luso della o nella nostra frase, di nuovo scambiabile con e: si voleva dire che non
abbiamo menzionato ne . . . ne e non abbiamo menzionato a meno che; avremmo potuto dire
che non abbiamo menzionato ne ne . . . ne ne a meno che, usando proprio ne . . . ne; luso di
o suggerisce unaltra versione equivalente: una particella che sia ne . . . ne o a meno che
non `e stata menzionata.
13
per la disgiunzione inclusiva
per la disgiunzione esclusiva
per il condizionale se . . . allora
per il bicondizionale se e solo se
senza escluderne a priori altri, e li chiameremo connettivi proposizionali. La ne-
gazione `e un connettivo unario (cio`e agisce su una proposizione), gli altri indicati
sono connettivi binari (cio`e connettono due proposizioni).
Fissare i simboli `e come decidere che in italiano la congiunzione si esprime
sempre cone e non in altri modi. Per evitare invece la molteplicit`a di senso
occorrer`a in seguito dare regole opportune.
La scelta di simboli articiali `e pi` u vantaggiosa anche perche, procedendo, que-
sti simboli non saranno soltanto abbreviazioni, ma insieme ad altri diventeranno
una struttura che `e essa stessa, se si vuole, oggetto di una teoria matematica, con
suoi problemi specici.
Ad esempio una prima questione, comprensibile anche solo sulla base di quan-
to detto nora, `e se le particelle sopra scelte sono anche fondamentali, e in che
senso, o se sono sucienti, o quante ce ne potrebbero essere. Unaltra riguarda
lequivalenza, aermata per alcuni esempi precedenti, tra frasi diverse espresse con
particelle diverse.
2.4 Variabili
Torniamo a quanto lasciato in sospeso, a come rappresentare una cosa e questa
cosa. Nella grammatica, un ruolo fondamentale `e svolto dai pronomi, che si
presentano in grande variet`a, come uno, chiunque, ogni, qualche e simili.
I pronomi servono a formare nuove frasi collegandone alcune che hanno un
riferimento in comune; nella frase se uno ha un amico, `e fortunato si individuano
due proposizioni componenti uno ha un amico e `e fortunato. La seconda frase
non presenta il soggetto, ma sintende che `e lo stesso della prima; si pu`o ripetere
(uno `e fortunato) oppure pi` u spesso, in altri casi, si deve precisare, con un
indicatore che faccia capire esplicitamente che il soggetto `e lo stesso (ad esempio
egli, costui e simili).
Nella seconda di due frasi collegate, il soggetto della prima pu`o essere presente
come oggetto, ad esempio in se uno `e generoso, tutti ne dicono bene, dove ne
signica di lui.
Anche per questo tipo di parti del discorso, si hanno molte versioni equivalenti,
ciascuna con i suoi vantaggi e la sua convenienza, ad esempio chiunque abbia
un amico `e fortunato, coloro che hanno un amico sono fortunati; talvolta ad-
14
dirittura basta ununica frase indecomponibile, come i generosi sono lodati per
coloro che sono generosi sono lodati
4
.
`
E necessario comunque mettere in rilievo il fatto che entrambe le frasi hanno un
riferimento comune; se si formalizza la frase se uno ha un amico, uno `e fortunato
introducendo una lettera A per la prima e una lettera B per la seconda, si ottiene
A B che non mostra la struttura ne della frase, e non permette quindi di
indagare se sia vera o no.
Il simbolismo deve essere arricchito. Luso dei pronomi `e standardizzato per
mezzo di simboli che si chiamano variabili: x, y, . . .. Il simbolo x sta per una
cosa, uno, una persona se il discorso si riferisce a esseri umani, un numero
se il discorso si riferisce ai numeri e cos` via.
La variabile `e creduta un elemento alieno del linguaggio, che compare solo nei
simbolismi matematici, ma non `e cos`. Se uno ha un amico, `e fortunato equivale
nella semiformalizzazione a: se x ha un amico, x `e fortunato.
Avendo introdotto questi simboli speciali, come peraltro abbiamo gi`a fatto
con i connettivi, tanto vale utilizzare anche altre schematizzazioni e completare il
distacco del lessico naturale.
Introduciamo perci`o simboli per designare predicati, e altri per costruire ter-
mini, che corrispondono alle descrizioni.
Useremo preferibilmente
le lettere P, Q, R, . . . per predicati e relazioni
le lettere f, g, . . . per funzioni
le lettere a, b, c, . . . per costanti (nomi propri)
le lettere x, y, . . . con o senza indici, per variabili.
La struttura di una frase del tipo Giovanni dorme `e rappresentata da dor-
me(Giovanni), o
P(a).
Giovanni ama Maria da ama(Giovanni, Maria), o
R(a, b).
Questa notazione
5
`e volutamente analoga a quella delle funzioni, in quanto si pensa
che un predicato o una relazione si applichino ai soggetti interessati; si potrebbero
anche pensare come funzioni, aventi come valori vero e falso.
4
La possibilit`a di questa espressione `e allorigine di una diversa analisi del linguaggio, che ha
portato alla prima logica formale della storia, nellopera di Aristotele, come vedremo trattando
i sillogismi.
5
La preciseremo in seguito.
15
Pi` u in generale, i termini a cui si applica la relazione non sono necessariamente
costanti, o nomi, ma anche descrizioni, come Il padre di Giovanni ama Maria,
che diventa
R(f(a), b),
o descrizioni incomplete, cio`e contenenti variabili, come
Uno dorme: P(x).
Tuttavia la rappresentazione graca scelta per i simboli non `e essenziale, per
comodit`a di traduzione si possono anche usare altre lettere, come le iniziali delle
parole italiane (A per essere amici), o addirittura complessi di lettere o parole
intere, magari in caratteri particolari, come amici(x, y).
Anche la particolare forma R(a, b) non `e rigida, talvolta pu`o essere sostituita
da a R b. Questo succede in particolare con i simboli per tradizionali relazioni
matematiche che hanno adottato tale notazione: x < y, x = y.
Volgiamoci ora alla formalizzazione della frase Giovanni possiede un Piaggio
50, gi`a trasformata sopra in Giovanni possiede una cosa, e questa cosa `e un
Piaggio 50: con una costante g per Giovanni, un simbolo di relazione R per
possedere, un simbolo di predicato P per Piaggio 50, si pu`o provare a scrivere
R(g, x) P(x),
ma non `e suciente.
2.5 Quanticatori
Luso delle variabili o della loro versione con pronomi presenta aspetti delicati per
trattare i quali il formalismo nora introdotto non `e abbastanza discriminante.
Se si dice A Giovanni piace il Piaggio 50 si intende che a Giovanni piacciono
tutti i Piaggio 50, anche se probabilmente desidera averne solo uno (comunque non
tutti); se si usa R(y, x) per la relazione a y piace x la frase diventerebbe uguale
alla precedente, pur avendo un altro senso (in particolare pu`o essere vere o false
indipendentemente luna dallaltra).
Nella frase se uno ha un amico, `e fortunato ci sono due tipi di uno, il
primo uno `e il soggetto, presente tacitamente anche come soggetto di `e fortu-
nato, e il secondo `e lun di ha un amico
6
. Il primo uno signica chi, nel
senso di chiunque, il secondo signica qualche. La stessa parola uno, e le
corrispondenti variabili x e y possono cio`e avere sia un senso universale che uno
particolare.
6
Non c`e dierenza tra uno e un; si potrebbe dire in entrambi i casi una persona,
ristabilendo luniformit`a.
16
Anche se il senso della frase `e ovvio, per chiarezza `e meglio dire chiunque
abbia qualche amico `e fortunato. Cos` si potrebbe dire A Giovanni piace un
qualunque Piaggio 50 o A Giovanni piacciono tutti i Piaggio 50 o A Giovanni
piacciono i Piaggio 50. La variet`a di costrutti linguistici disponibili nelle lingue
naturali ha la funzione di evitare possibili ambiguit`a in altre frasi di non immediata
decifrazione.
Un esempio di frase ambigua, se presa isolatamente, `e uno che segue il corso
di Logica si addormenta. Il professore spera che voglia solo dire che si conosce
uno studente che tende ad addormentarsi, ma magari gli studenti intendono che
tutti si addormentano sempre.
Luso delle variabili da sole non risolve le ambiguit`a, anzi le potrebbe accrescere,
se vengono a mancare le dierenze di signicato dei pronomi specici; in se x ha y
come amico, x `e fortunato, se y fosse presa in senso universale, come la x, allora
la frase signicherebbe che chi `e amico di tutti `e fortunato, il che `e discutibile,
piuttosto `e un santo.
Un altro esempio `e il seguente: nelle due frasi di argomento aritmetico
un numero moltiplicato per se stesso d`a 1
e
un numero sommato al suo opposto d`a 0
un numero `e da intendersi in modo diverso; nel primo caso lunico numero con
quella propriet`a `e 1, e la frase potrebbe essere una sua descrizione estrapolata dal
contesto, o un indovinello: quale `e . . . ?; nel secondo caso un numero signica
qualunque numero.
La dierenza non si coglie neanche se si formalizza, la prima frase con x x = 1
e la seconda con x + (x) = 0; per capire la dierenza si deve pensare a quali
specici numeri soddisfano le formule, 1 e 1 in un caso, tutti i numeri nellaltro.
Nella terminologia usuale, la prima `e unequazione, la seconda unidentit`a.
Le variabili da sole non rendono la duttilit`a delle parole che indicano se si parla
di uno, qualcuno o tutti.
Si introducono allora due simboli che si chiamano quanticatori,
quanticatore universale
e
quanticatore esistenziale
e questi segni si premettono alle formule con variabili per segnalare che, nel loro
raggio dazione determinato dalle parentesi, le variabili stesse devono essere intese
nel senso di tutti ovvero nel senso di qualcuno.
17
La frase uno che ha un amico `e fortunato diventa, schematizzata,
x(y(A(x, y)) F(x)).
Luso delle parentesi sar`a codicato quando si studier`a il formalismo, addirit-
tura in modo pignolo. Per ora basti osservare che quando un quanticatore si
riferisce a una variabile ssando il senso delle sue occorrenze, universale o parti-
colare, in una frase, tutta la frase che contiene quelle occorrenze della variabile va
racchiusa tra parentesi (nellesempio, tutta la frase y(A(x, y)) F(x) per quel
che riguarda x, e A(x, y) per quel che riguarda la y cosa che `e gi`a stata fatta
7
).
Quando si leggono frasi gi`a formalizzate, i quanticatori x e x si leggono
usualmente sempre nello stesso modo: per tutti gli x (o per ogni x) e esiste
un x tale che (o esistono x tali che), anche quando non `e la lettura pi` u elegante.
Invece in italiano ci sono diversi modi di esprimersi.
Alcune espressioni della lingua naturale hanno tuttavia signicati colloquiali
che non hanno interesse logico e che comunque non sono esprimibili nel formalismo.
Anzi bisogna fare attenzione a non lasciarsi inuenzare. Ad esempio qualche
viene spesso usato per dire pochi, per indicare un certo numero ma non grande,
e spesso maggiore di uno, che se `e uno si dice uno. Invece x vuol sempre dire
esiste almeno un . . . , e possono essere uno, dieci o centomila, o anche tutti.
Quando si usa qualche, talvolta in italiano si sottintende non tutti
8
; in-
vece x . . . `e compatibile col fatto che tutti soddisno la condizione; `e solo unaf-
fermazione pi` u debole: se si sa che tutti i gamberi sono rossi, si pu`o aermare
x(gambero(x) rosso(x)) come vero; naturalmente cos` non si aerma che tutti i
gamberi sono rossi (che sarebbe reso da x(gambero(x) rosso(x))) ma che esiste
un gambero rosso.
Le variabili svolgono il ruolo di uno, una cosa, un numero e simili; di
quale esattamente dipende dalluniverso di discorso. Questo va precisato, in vari
modi. Spesso la scelta dei predicati e delle relazioni suggerisce implicitamente di
cosa si parla: se si usa una relazione A per essere amico di . . . `e implicito che
si parla di persone o animali. Allora x(yA(x, y) F(x)) si legge ogni persona
o animale che abbia . . . .
Tuttavia `e dicile che il discorso entro il quale si inserisce x(yA(x, y)
F(x)) si limiti a persone o animali; nel prosieguo possono essere menzionate anche
cose o idee. Al di fuori della matematica, dove `e di solito ben precisato,
9
luniverso
7
In realt`a dopo A(x, y) la y non occorre pi` u e non c`e bisogno delle parentesi per una lettera
corretta, come sar`a spiegato in seguito: scriveremo anche x(yA(x, y) F(x)).
8
Da un compito in classe: Se qualche triangolo isocele `e equilatero, di conseguenza qualche
triangolo isocele non lo `e. La conclusione `e vera, ma di conseguenza no, e lunico modo per
immaginare come sia stata concepita `e linterpretazione di qualche come non tutti.
9
Non sempre: s e si discute una equazione e non si precisa quale `e il dominio numerico, le
risposte possono essere bene diverse.
18
di discorso `e ricco e variegato. x . . . si legge dunque per ogni x . . . dove x a
priori pu`o stare per gli elementi pi` u disparati.
In molte frasi tuttavia i quanticatori chiaramente non si riferiscono a tutti
gli elementi delluniverso di discorso ma a parti pi` u ristrette; le frasi aritmetiche
per esempio raramente iniziano con tutti i numeri, piuttosto con tutti i numeri
positivi, o tutti i numeri primi; e raramente si parla di tutti gli esseri viventi,
ma piuttosto di tutti gli uomini, o di tutte le donne, o di tutti gli italiani e cos`
via restringendo.
Nel formalismo logico la restrizione dei quanticatori avviene nel seguente
modo. La frase tutti i tedeschi sono biondi si rappresenta con due predicati,
tedesco e biondo, e la forma
x(T(x) B(x)),
dove il quanticatore x `e letto per tutte le persone, cio`e con la x che varia su
tutto luniverso del discorso (la specie umana): per ogni x, se x `e tedesco allora
x `e biondo.
Questa forma `e corretta grazie alle propriet`a del condizionale, che vedremo
meglio in seguito. Se T(x) B(x) `e vero per tutte le persone, allora ogni tedesco
rende vero il condizionale, lantecedente e quindi vero il conseguente, ed `e vero che
tutti i tedeschi sono biondi; se viceversa `e vero che tutti i tedeschi sono biondi,
anche lenunciato di sopra che si riferisce con x non ai tedeschi ma a tutte le
persone `e vero: se uno `e tedesco, allora `e biondo e il condizionale `e vero; se
Giovanni `e biondo ma non `e tedesco, lo si vorr`a considerare un controesempio che
falsica laermazione? Non sembra ragionevole; si assume che T(Giovanni)
B(Giovanni) sia vero, e cos` T(x) B(x) `e vera per tutte le persone.
In pratica, gli aggettivi sono resi da predicati con lausilio del condizionale: in
tutte le persone tedesche sono bionde laggettivo tedesco diventa il predicato
essere tedesco e la frase tutte le persone, se sono tedesche, sono bionde.
Tutti i P sono . . . e qualche P `e . . . , dove P delimita il campo di varia-
bilit`a del riferimento, si realizzano dunque introducendo un predicato unario P e
scrivendo rispettivamente x(P(x) . . .) e x(P(x) . . .). Si noti ovviamente la
dierenza nel caso del quanticatore esistenziale, dove la restrizione `e realizzata
con la congiunzione, che viene dalla traduzione di esiste uno che `e P e che . . . .
In particolare `e da sottolineare che si usa un solo tipo di variabili; nella pratica
matematica talvolta se ne usa pi` u di uno, ad esempio in geometria lettere maiuscole
A, B, . . . per punti e minuscole r, s, . . . per rette. Ma ci si riconduce a un solo tipo
di variabili usando gli opportuni predicati, ad e sempio essere un punto e essere
una retta.
19
2.6 Esempi:
2.6.1 dal linguaggio naturale. . .
Esempio 2.1. Maria ama il padre di Giovanni `e formalizzata da
A(m, f(g)),
dove m e g sono costanti, m per Maria e g per Giovanni, ed f un simbolo
funzionale per il padre di . . . .
Esempio 2.2. Per formalizzare Maria ama il glio di Giovanni non si pu`o usare
un simbolo f per il glio di, perch`e glio di non `e una funzione univoca: a
una persona possono corrispondere diversi gli, o nessuno. Allora Maria ama il
glio di Giovanni si formalizza come sotto Maria ama un glio di Giovanni e a
parte si aerma che Giovanni ha un solo glio (vedremo come).
Esempio 2.3. Maria ama un glio di Giovanni `e formalizzata da
x(A(m, x) F(x, g)),
letta
esiste un x tale che Maria ama x e x `e glio di Giovanni,
dove F `e un simbolo relazionale a due posti, e F(x, y) sta per x `e glio di y.
Si potrebbe anche dire Maria ama uno, che `e glio di Giovanni o Maria ama
un tizio che `e glio di Giovanni.
In questo caso glio di Giovanni ha la funzione di nome comune, come Piag-
gio 50 in Giovanni possiede un Piaggio 50, e infatti si formalizza nello stesso
modo.
Esempio 2.4. Maria ama i gli di Giovanni, che signica che Maria ama tutti i
gli di Giovanni, si formalizza con
x(F(x, g) A(m, x))
e non con x(A(m, x) F(x, g)); questa signica che tutti sono gli di Giovanni,
e che Maria li ama tutti.
Per la formalizzazione corretta, pu`o essere utile vedere nella frase un caso di
quanticatore ristretto, ai gli di Giovanni, leggendola Tutti i gli di Giovanni,
Maria li ama o al passivo: Tutti i gli di Giovanni sono amati da Maria.
Esempio 2.5. Non tutte le ciambelle riescono col buco.
Si scelga un predicato C per essere una ciambella e una relazione B(x, y) per
x `e un buco di y. Quindi si trasforma la frase eliminando non tutte a favore
20
di qualche ciambella non riesce col buco. Riuscire con buco o avere il buco
possono essere trattate come equivalenti: la prima versione allude al processo di
fabbricazione che nisce male, la seconda al risultato. Allora
y(C(y) xB(x, y)).
Esempio 2.6. Ogni rosa ha le sue spine.
Sia R il predicato essere una rosa e S(x, y) la relazione x `e una spina di y.
x(R(x) yS(y, x)).
Si noti che se S(x, y) `e la relazione x `e una spina di y, S(y, x) si legge y `e
una spina di x. C`e grande libert`a nelluso delle variabili: yS(y, x) si potrebbe
scrivere anche zS(z, x); in italiano hanno la stessa traduzione x ha qualche
spina. Quello che importa `e non usare la stessa variabile quando devono essere
distinte: se si scrive xS(x, x) si dice che c`e una rosa che `e una spina.
Esempio 2.7. Ogni rosa ha qualche spina.
La frase `e la stessa di prima, perche se una rosa ha delle spine queste sono sue.
Entrambe possono comunque essere formalizzate anche in un altro modo, con un
predicato per essere una spina e una relazione binaria H di possesso:
x(R(x) y(S(y) H(x, y))).
Esempio 2.8. Chi rompe paga e i cocci sono suoi.
Rompere `e verbo transitivo, salvo che in usi metaforici, quindi bisogna pen-
sare che si dica chi rompe qualcosa, una qualunque cosa; sia R(x, y) la relazione
x rompe y; sia quindi C(x, y) la relazione che intercorre tra due pezzi di materia
se il primo `e un coccio dellaltro, cio`e un pezzo che risulta dalla sua rottura; sce-
gliamo la relazione S(x, y) a indicare che x paga il valore di y, e sia inne H(x, y)
la relazione x assume il possesso di y. Allora
xy(R(x, y) S(x, y) z(C(z, y) H(x, z))).
Il complesso xy . . . si legge per ogni x e per ogni y . . . .
`
E anche lecito
abbreviare con x, y . . ., cos` come xy . . . con x, y . . ..
Chiunque rompa qualunque cosa . . . o Qualunque cosa uno rompa . . .
sono equivalenti: in base a questa lettura `e evidente che risulter`a che xy . . . `e
equivalente a yx . . . e che xy . . . `e equivalente a yx . . ..
La precedente formula `e tuttavia ambigua, e deve essere corretta in
xy(R(x, y) (S(x, y) z(C(z, y) H(x, z))))
in modo che entrambe le conseguenze (pagare e tenere i cocci) dipendano da
R(x, y). Altrimenti se si pensasse a (R(x, y) S(x, y)) . . . la frase z(C(z, y)
H(x, z)) signicherebbe che x si prende i cocci di ogni cosa, che labbia rotta lui o
no.
21
Esempio 2.9. Un regalo conquista un amico.
Cominciamo a riformulare la frase spogliandola di signicati metaforici (un
regalo `e una cosa e non conquista nulla). Si intende ovviamente dire che chi
fa un regalo acquista un amico, e pi` u dettagliatamente che se una persona fa un
regalo a unaltra persona, questa diventa suo amico. Usiamo una relazione ternaria
R(x, y, z) per x regala y a z e una relazione binaria per A(x, y) x diventa amico
di y.
xy(zR(x, z, y) A(y, x)).
Esempio 2.10. A Natale si fanno regali agli amici.
Si intende che a Natale ognuno fa un regalo a ciascuno dei suoi amici. Non `e
il caso di mettere in evidenza Natale, che non `e rilevante per la struttura logica
della frase. Usiamo una relazione ternaria R(x, y, z) per x a Natale regala y a z
e una relazione binaria A(x, y) per y `e un amico di x.
xy(A(x, y) zR(x, z, y)).
Esempio 2.11. Chi non risica non rosica.
Risicare `e verbo intransitivo (anche se qualche volta si dice ha rischiato
qualcosa, ma si intende ha rischiato un po ). Rosicare `e transitivo, anche se
nella frase non compare il complemento oggetto, ma si intende non rosica nulla.
Usiamo un predicato R per risicare e una relazione S(x, y) per x rosica y.
x(R(x) yS(x, y)).
Esempio 2.12. Sono eligibili tutti e soli gli studenti in corso.
Non interessa a cosa siano eligibili; serve un predicato per essere eligibile,
uno per essere studente e uno per essere in corso.
x(E(x) S(x) C(x)).
La dizione tutti e soli `e strettamente legata a se e solo se. Tutti gli studenti
in corso sono eligibili `e formalizzata da
x(S(x) C(x) E(x)),
mentre solo gli studenti in corso sono eligibili da
x(E(x) S(x) C(x)).
La congiunzione di queste due ultime frasi `e equivalente, come vedremo, alla prima.
22
2.6.2 . . . dalla matematica
Esempio 2.13. La frase dati due numeri, uno minore dellaltro, esiste un terzo
numero compreso tra i due, vera nel campo dei razionali e in quello dei reali,
falsa negli interi, pu`o essere resa da
xy(x < y z(x < z z < y)).
La congiunzione x < z z < y si pu`o abbreviare, secondo luso matematico, con
x < z < y.
Non esiste un quanticatore che quantichi sulle coppie; ci si comporta come
se la frase fosse dato un primo numero e dato un secondo numero . . . . Ma un
primo e un secondo servono solo a facilitare lespressione, si sarebbe potuto dire
anche dato un numero e dato un numero . . . , con qualche dicolt`a nel seguito
per i riferimenti appropriati.
Si faccia attenzione che neanche la presenza di due vuol dire che i numeri
devono essere considerati diversi; tale forma comune di espressione distingue il
modo, il momento in cui i numeri sono presentati, o pensati, ma non `e escluso in
generale che si presenti lo stesso numero due volte.
Nellesempio 2.10 precedente, a Natale uno fa anche regali a se stesso, se si
vuole bene.
Dati due numeri signica fatta due volte la scelta di un numero, e le scelte
possono cadere sullo stesso numero. In termini probabilistici, si tratta di scelte
con reimmissione; oppure si deve considerare che la scelta di un numero non lo
toglie certo dallinsieme. Dati due numeri, esiste la loro somma si pu`o scrivere
xyz(z = x +y)
ma esiste anche la somma di ogni numero con se stesso; x e y possono prendere
tutti i valori in tutte le combinazioni possibili, quindi anche valori uguali.
Quando tuttavia si mette come sopra la condizione uno minore dellaltro
come nella frase proposta allora si esclude che possano essere uguali perch`e la
relazione minore di non `e riessiva. Tuttavia lo si esclude solo attraverso una
deduzione, non con la semplice scrittura: se x e y denotano lo stesso numero,
e bisogna considerare anche questo caso per vericare se la frase `e vera, in x <
y z(x < z z < y) lantecedente x < y risulta falso (come nellesempio dei
tedeschi).
Con un terzo di nuovo si vuol dire semplicemente un numero, e che sia
diverso dai primi due segue automaticamente se compreso signica strettamente
compreso; altrimenti, se la relazione dordine fosse intesa come allora potrebbe
anche essere uguale a uno dei due; non `e questo il senso della frase, che vuole
esprimere la densit`a dellordine dei numeri reali e anche dei razionali.
23
Se nella stessa formula il segno di relazione `e interpretato su di una relazione
riessiva, come
xy(x y z(x z z y)),
o pi` u in generale se R `e riessiva allora . . . , ovvero
xR(x, x) xy(R(x, y) z(R(x, z) R(z, y))),
allora la formula `e banalmente vera per ogni relazione
10
.
Esempio 2.14. La relazione R `e riessiva, che signica che ogni elemento sta
nella relazione R con se stesso, si scrive
xR(x, x),
come abbiamo fatto sopra.
Esempio 2.15. La relazione R `e simmetrica, che signica che se la relazione R
sussiste tra uno primo e un secondo elemento allora sussiste anche tra il secondo
e il primo, si scrive
xy(R(x, y) R(y, x)).
Esempio 2.16. La relazione R `e transitiva, che signica che se R sussiste tra un
primo elemento e un secondo, e tra questo e un terzo, allora sussiste anche tra il
primo e il terzo, si scrive,
xyz(R(x, y) R(y, z) R(x, z)).
Esempio 2.17. Come non esiste un quanticatore sulle coppie, cos` non esiste un
quanticatore che esprima esiste esattamente un . . . , o esiste un solo . . . . Tale
locuzione si realizza mediante luguaglianza come nel seguente esempio.
La frase dati due numeri, esiste un solo numero che `e la loro somma si
formalizza come
xyz(z = x +y u(u = x +y u = z)).
In generale Esiste un solo x tale che P(x) si formalizza come
x(P(x) y(P(y) x = y)).
Esempio 2.18. In modo analogo si pu`o esprimere la locuzione esistono esattamente
due elementi tali che . . . (esercizio).
Suggerimento. Si scriva prima esistono almeno due elementi tali che . . . ,
ricordando quanto detto nellesempio 2.13 a proposito delle coppie di quanticatori.
10
Con banalmente sintende che dati x e y come z si pu`o prendere o x o y, e la formula non
ci d`a veramente informazioni.
24
Esempio 2.19. Non si riesce invece con nessun giro di formule del formalismo che
stiamo usando ad esprimere la maggior parte degli elementi . . . o quasi tutti
. . . . Analogamente non si riesce ad esprimere tanti.
Esempio 2.20. La frase dati due numeri diversi tra loro, esiste un numero che `e
propriamente compreso tra i due numeri dati si rappresenta con
xy(x ,= y z(x < z < y y < z < x)).
dove x ,= y `e unabbreviazione per (x = y).
Esempio 2.21. La frase ogni numero positivo ha una radice quadrata, vera nei
reali, falsa nei razionali, si rappresenta come
x(0 < x y(x = y
2
)),
dove con y
2
si indica la funzione potenza di esponente 2.
Esempio 2.22. Un numero `e divisibile per un altro numero se e solo se esiste un
terzo numero che moltiplicato per il secondo d`a il primo.
Scriviamo x[y per y `e divisibile per x o x divide y e usiamo il solito segno
di moltiplicazione:
xy(x[y z(y = x z)),
ma di nuovo si noti che x, y, z non devono necessariamente indicare numeri tutti
diversi tra loro.
Esempio 2.23. Esistono due numeri primi consecutivi.
Per questa frase complicata procediamo in due passi; usiamo unabbreviazione
pr(x) per x `e primo e scriviamo
xy(x = y + 1 pr(x) pr(y))
riservandoci di sostituire pr(x) con la sua scrittura corretta data nel prossimo
esercizio.
Che i numeri siano due non risulta dallo scrivere xy ma da x = y + 1
che implica x ,= y (lo si deduce facilmente dagli assiomi dei numeri naturali); si
potrebbe anche scrivere:
x(pr(x) pr(x + 1)),
dando per scontato, come sopra, che x ,= x + 1.
Esempio 2.24. Un numero `e primo se e solo se `e maggiore di 1 ed `e divisibile solo
per 1 e per se stesso.
Per esprimere questa che `e la denizione di un nuovo predicato usiamo un
nuovo simbolo pr(x) e scriviamo
x(pr(x) x > 1 z(z[x z = 1 z = x))
25
Esempio 2.25. 2 `e lunico numero primo pari.
Numero pari signica divisibile per 2. La frase si pu`o trasformare in 2 `e
primo e pari e se un numero `e primo e pari allora `e uguale a 2. Quindi
pr(2) 2[2 x(pr(x) 2[x x = 2).
Esempio 2.26. 3 `e dispari
Il predicato dispari si pu`o denire come non pari e quindi
2[3,
o meglio (2[3) perche non si confonda con un segno aritmetico
11
, oppure dicendo
che un numero dispari `e della forma 2 y +1, e in aritmetica si dimostra che le due
denizioni sono equivalenti, quindi
y(3 = 2 y + 1).
Esempio 2.27. Ogni primo maggiore di 2 `e dispari
`e un caso di quanticatore ristretto, ma lo si pu`o restringere in due modi: ai
numeri primi oppure ai numeri primi maggiori di 2. Il predicato essere primo
maggiore di 2 si pu`o denire con (pr(x) x > 2) e si ha allora, se si scrive disp(x)
per x `e dispari ,
x((pr(x) x > 2) disp(x)).
Oppure se si restringe solo ai primi si deve scrivere
x(pr(x) (x > 2 disp(x))).
In questo caso le parentesi interne servono a evidenziare la composizione corretta
della frase mediante le due occorrenze del condizionale.
Esempio 2.28. Esistono numeri pari arbitrariamente grandi.
La locuzione arbitrariamente grandi o grandi quanto si vuole signica che
comunque si dia un numero, ne esiste uno pi` u grande con la propriet`a in oggetto
non che un numero `e grande quanto si vuole, un numero `e quello che `e. Quindi
xy(x < y 2[y).
Esempio 2.29. Ci sono almeno due quadrati minori di 10.
Consideriamo 10 una costante (in realt`a `e un termine complesso). x `e un
quadrato signica che x `e il quadrato di qualche numero, e si formalizza come
u(x = u
2
). Quindi
xy(x ,= y x < 10 y < 10 u(x = u
2
) u(y = u
2
)).
11
Che non si legga 2 come diverso da 2.
26
Si noti che da u(x = u
2
) u(y = u
2
)) non segue che la u sia la stessa, e quindi x
e y uguali; le due frasi sono indipendenti; `e come se si dicesse: esiste un numero
il cui quadrato `e x ed esiste un numero il cui quadrato `e y; non vuol dire che sia
lo stesso numero. Ma si sarebbe potuto anche scrivere u(x = u
2
) v(y = v
2
)).
Esempio 2.30. Per due punti passa una e una sola retta.
Primo modo. Usiamo variabili diverse per punti e rette e una relazione binaria
Q per un punto giace su una retta.
ABr(Q(A, r) Q(B, r) s(Q(A, s) Q(B, s) r = s))
Secondo modo. Usiamo un solo tipo di variabili e due predicati P per essere un
punto e R per essere una retta.
xy(P(x) P(y) z(R(z) Q(x, z) Q(y, z)
u(R(u) Q(x, u) Q(y, u) z = u)).
Le due soluzioni sono equivalenti; nella prima si usa un linguaggio a due sorta
di variabili, che ha le stesse propriet`a logiche di quello con una sola sorta.
Esempio 2.31. La funzione y = x
3
`e iniettiva e suriettiva si formalizza
x
1
x
2
(x
1
,= x
2
x
3
1
,= x
3
2
) yx(y = x
3
),
in un linguaggio che abbia il simbolo = e un simbolo funzionale indicato con x
3
.
Esempio 2.32. Laermazione che la relazione y = 2x `e una relazione funzionale
e iniettiva `e formalizzata da:
xy(y = 2 x z(z = 2 x z = y)) x
1
x
2
(x
1
,= x
2
2 x
1
,= 2 x
2
).
Dagli esempi si traggono diverse regole euristiche: riformulare la frase in un
italiano semplice, con soggetto, verbo e complementi; trasformare i pronomi quan-
titativi come ognuno, alcuni, nessuno, uno . . . usando sempre solo per
tutti . . . ed esiste un . . . , anche se la frase diventa barocca; guardare i verbi,
se sono intransitivi o transitivi, e sostituire le frasi elementari con le dizioni ha la
propriet`a . . . e sussiste la relazione . . . ; non prendere relazioni troppo inglo-
banti che nascondano la sintassi informale, immaginando possibili proseguimenti
della frase che richiedono di riprendere certi elementi; invece lasciare cadere parti-
colari empirici; nelle frasi matematiche, risalire sempre alle denizioni dei termini
coinvolti.
27
2.7 Esercizi
Esercizio 2.33. Formalizzare A Giovanni piacciono i Piaggio 50; trasformarla
prima in italiano in modo da far comparire un quanticatore ristretto.
Esercizio 2.34. Formalizzare I professori premiano gli studenti meritevoli.
Esercizio 2.35. In unassemblea di politici, questi si dividono in onesti e disonesti,
e si sa che
1. esiste almeno un politico onesto;
2. presi due politici a caso, uno almeno `e disonesto.
Si formalizzino le condizioni sui politici.
Se nellassemblea ci sono cento politici, si pu`o decidere (dedurre) quanti sono
gli onesti e quanti i disonesti? Formalizzare anche la risposta.
Esercizio 2.36. Usando un predicato S per x `e uno studente, una relazione C
per x `e un computer, un predicato F per x `e funzionante e una relazione U
per x utilizza y, formalizzare le seguenti frasi:
1. Un computer non `e utilizzato da nessun studente.
2. Ogni computer funzionante `e utilizzato da almeno uno studente.
3. Non tutti i computer sono funzionanti.
Quale dei seguenti enunciati `e una traduzione corretta di (1)?
x(C(x) y(S(y) U(y, x)))
x(C(x) y(S(y) U(y, x)))
x(C(x) y(S(y) U(y, x)))
Qual`e il signicato delle altre formule? Tradurre (2) e (3) in opportuni enun-
ciati del linguaggio formale introdotto.
Esercizio 2.37. Una base di dati relazionale `e una tabella come la seguente:
Codice genitori Nome gli
Codice 1 Paola
Codice 1 Francesco
Codice 2 Paola
Codice 3 Anna
Codice 3 Lea
Codice 4 Giovanni
28
Le interrogazioni sono del tipo:(insieme dei) codici dei genitori che non hanno
gli di nome Paola. Se si usa una relazione R(x, y) per x `e il codice di genitori che
hanno gli di nome y, rappresentata dalla tabella, linterrogazione si formalizza
come y(R(x, y) y = Paola), che denisce linsieme x : y(R(x, y) y =
Paola).
Formalizzare la interrogazione codici dei genitori che hanno gli di nome
diverso da Paola.
29
3 Insiemi
3.1 Elementi ed insiemi
In matematica `e uso comune considerare delle collezioni di oggetti e queste colle-
zioni si dicono insiemi. Useremo anche le espressioni classe e famiglia come
sinonimo di insieme, ma non il termine gruppo che in matematica ha un signicato
dierente. Un oggetto o elemento pu`o appartenere o meno ad un insieme. Per
dire che loggetto x appartiene allinsieme A scriveremo
x A
Un insieme `e completamente determinato dai suoi elementi. Questo discende dal
seguente:
Principio di estensionalit`a. Due insiemi coincidono se e solo se hanno gli stessi
elementi.
Linsieme formato dagli elementi x
1
, . . . , x
n
lo si indica con
x
1
, . . . , x
n
.
Per esempio linsieme delle soluzioni dellequazione x
3
4x
2
+x + 6 `e linsieme
(5) 1, 2, 3,
che per il principio di estensionalit`a `e lo stesso insieme che 2, 1, 3 oppure
3, 2, 3, 1. In altre parole: lordine in cui vengno elencati gli elementi di un
insieme `e irrilevante, e le eventuali ripetizioni non contano. Linsieme di tutti gli
x che godono della propriet`a P `e indicato con
x [ P(x)
o anche con
x : P(x) .
A volte ci basta considerare tutti gli x appartenenti ad un insieme A e tali che
soddisfano la propriet`a P, cio`e x [ x A e P(x). In questo caso scriveremo
x A [ P(x) .
Un insieme si dice vuoto se non contiene elementi. Per il principio di estensio-
nalit`a due insiemi vuoti coincidono, per cui parleremo dellinsieme vuoto, che si
indica con .
Un insieme A `e contenuto in un insieme B ovvero A `e un sottoinsieme
di B, in simboli A B, se ogni elemento di A `e anche un elemento di B. Dal
principio di estensionalit`a si ottiene subito il
30
Principio di doppia inclusione. Dati due insiemi A e B coincidono se e solo se
A B e B A.
Osserviamo che A A. Quando A B ma A ,= B diremo che A `e contenuto
propriamente in B e scriveremo A B. Per vericare che A non `e contenuto in
B, in simboli A B `e suciente trovare un elemento di A che non appartiene a
B. Poiche non ha elementi ne consegue che B per ogni insieme B.
Osservazione 3.1. Non bisogna confondere la nozione di appartenenza con quella
di inclusione : la prima collega elementi ad insiemi, la seconda confronta insiemi.
3.2 Esempi
Linsieme dei numeri naturali
N = 0, 1, 2, . . .
`e contenuto propriamente nellinsieme dei numeri interi
Z = . . . , 2, 1, 0, 1, 2, . . .
Linsieme Q dei numeri razionali `e linsieme di tutti i numeri della forma n/m
con n, m Z e, naturalmente, m ,= 0. Ogni intero k pu`o essere scritto come
k/1 quindi Z Q e poiche ci sono razionali che non sono interi, linclusione `e
propria, cio`e Z Q. Un razionale ha unespansione decimale nita (per esempio
1
2
= 0,5) oppure unespansione periodica (per esempio
1
3
= 0,33333 . . .). I numeri
la cui espansione decimale `e arbitraria (cio`e nita, periodica o aperiodica) si dicono
numeri reali e linsieme dei numeri reali si denota con R. Chiaramente Q R
e poiche ci sono numeri reali che non sono razionali (per esempio

2), linclusione
`e propria.
3.3 Operazioni su insiemi
Dati due insiemi A e B possiamo costruire altri insiemi:
Lintersezione di A e B, in simboli A B, `e linsieme di tutti gli enti che
stanno tanto in A quanto in B.
Lunione di A e B, in simboli AB, `e linsieme di tutti gli enti che stanno
in A o in B (o in entrambi gli insiemi),
La differenza tra A e B, in simboli A B, `e linsieme di tutti gli enti che
stanno in A ma non in B.
31
La differenza simmetrica tra A e B, in simboli AB, `e linsieme di
tutti gli enti che stanno in uno dei due insiemi ma non nellaltro.
Linsieme delle parti di un insieme A `e linsieme di tutti i sottoinsiemi di
A
P(A) = B [ B A .
Osserviamo che linsieme delle parti `e un insieme i cui elementi sono a loro volta
insiemi.
Le operazioni di unione e di intersezione possono essere generalizzate a famiglie
arbitrarie di insiemi. Una famiglia arbitraria di insiemi `e denotata da A
i
[ i I
ad ogni indice i I corrisponde un insieme A
i
. Lunione degli A
i
`e linsieme
_
iI
A
i
= x [ x A
i
, per qualche i I
mentre lintersezione degli A
i
`e linsieme

iI
A
i
= x [ x A
i
, per ogni i I .
Chiaramente ogni

iI
A
i
contiene ogni A
j
mentre

iI
A
i
`e contenuta in ogni A
j
.
Per esempio, se consideriamo la famiglia A
n
[ n N di intervalli di R dove
A
n
= [1; 1 2
n
], allora
_
nN
A
n
= [1; 1) e

nN
A
n
= [1; 0].
Se invece A
n
= [1; 1 + 2
n
], allora
_
nN
A
n
= [1; 2) e

nN
A
n
= [1; 1].
3.4 Relazioni e funzioni
Il prodotto cartesiano di A e B, in simboli A B, `e linsieme di tutte le
coppie ordinale (x, y) dove x A e y B, cio`e
A B = (x, y) [ x A e y B .
Osserviamo che, a dierenza degli insiemi, nelle coppie ordinate lordine `e fonda-
mentale, cio`e (x, y) `e un oggetto diverso da (y, x), a meno che x non sia y. Quindi
A B `e distinto da B A, a meno che A = B nel qual caso scriveremo A
2
. Per
esempio R
2
`e linsieme delle coppie ordinate di numeri reali e questo insieme viene
32
usualmente identicato con il piano mediante un sistema di assi cartesiani. In
generale se n 2
(x
1
, x
2
, . . . , x
n
)
indica la n-upla ordinata costituita degli elementi x
1
, x
2
, . . . , x
n
e
A
n
= A A
. .
n
`e il prodotto cartesiano di n-copie dellinsieme A.
Una relazione n-aria, con n 1 `e un sottoinsieme di A
1
A
n
, per
qualche insieme A
1
, . . . , A
n
e se questi insiemi sono tutti lo stesso insieme A parle-
remo di relazione n-aria su A. Se n = 1 parleremo di relazione unaria o predicato,
se n = 2 parleremo di relazione binaria, se n = 3 parleremo di relazione ternaria,
etc. Spesso le relazioni binarie si dicono semplicemente relazioni e si scrive a R b
invece di (a, b) R.
Denizione 3.2. Diremo che una relazione (binaria) R su un insieme A `e
riessiva se a R a per ogni a A,
simmetrica se ogni qual volta a R b ne segue che b R a,
antisimmetrica se ogni qual volta a R b e b R a ne segue che a = b,
transitiva se da a R b e b R c segue che a R c.
Denizione 3.3. Una relazione di equivalenza su A `e una relazione ries-
siva, simmetrica e transitiva su A.
La diagonale o identit
`
a dellinsieme A `e
I(A) =
def
(a, a) [ a A .
I(A) e A A sono relazioni di equivalenza su A. Inoltre se E `e una relazione di
equivalenza su A, allora I(A) E A A.
La classe di equivalenza di un elemento a A relativamente ad una
relazione di equivalenza E su A `e
[a]
E
=
def
x A [ x E a
linsieme di tutti gli elementi E-equivalenti ad a. Spesso si usa il simbolo a/E
invece di [a]
E
. Linsieme quoziente `e
A/E =
def
[a]
E
[ a A
linsieme di tutte le classi di equivalenza. Osserviamo che linsieme quoziente `e
una famiglia di sottoinsiemi di A, cio`e
A/E P(A).
33
Proposizione 3.4. Data una relazione di equivalenza E su un insieme A, due
classi di equivalenza sono disgiunte o coincidono.
Dimostrazione. Fissiamo due classi di equivalenza [a]
E
e [b]
E
, dove a, b A.
Caso 1: a E b. Sia c [a]
E
: allora c E a e per la propriet`a transitiva c E b e
quindi c [b]
E
. Quindi [a]
E
[b]
E
.
Sia c [b]
E
: allora c E b, per la propriet`a simmetrica b E a e per la propriet`a
transitiva c E a e quindi c [a]
E
. Quindi [b]
E
[a]
E
.
Per il principio della doppia inclusione abbiamo quindi [a]
E
= [b]
E
.
Caso 2: a , E b. Verichiamo che in questo caso [a]
E
[b]
E
= . Supponiamo,
per assurdo, che ci sia un c [a]
E
[b]
E
. Allora c E b e quindi b E c
per simmetria, e dato che c E a si ha b E a per transitivit`a. Ma questo
contraddice la nostra assunzione.
Quindi il risultato `e dimostrato.
Denizione 3.5. Una partizione di un insieme A ,= `e una famiglia ( di
sottoinsiemi non vuoti di A, a due a due disgiunti, che ricoprono A, cio`e
(1) se X ( allora , = X A,
(2) se X, Y ( e X ,= Y allora X Y = ,
(3) ogni elemento di A appartiene a qualche X (.
Se E `e una relazione di equivalenza su A, allora A/E `e una partizione di A.
Viceversa, data una partizione ( di A, la relazione E A
2
denita da
a E b se e solo se a e b appartengono al medesimo X (
`e una relazione di equivalenza su A.
Denizione 3.6. Una relazione dordine su A o pi` u semplicemente: un
ordine o ordinamento su A `e una relazione riessiva, antisimmetrica e
transitiva su A.
Lesempio canonico di ordinamento `e la relazione su N, cio`e linsieme
_
(n, m) N
2
[ n m
_
.
Analogamente `e un ordinamento sugli insiemi Z, Q e R. Lordinamento su
questi insiemi `e un ordine lineare, dove
34
Denizione 3.7. Un ordine R su un insieme A `e lineare o totale se a R b o
b R a per ogni scelta di a, b A.
Linclusione `e un ordinamento su P(A), ma se A ha almeno due elementi,
diciamo a e b, questo ordine non `e lineare, dato che a e b non sono sottoinsiemi
luno dellaltro.
Denizione 3.8. Sia _ un ordinamento su A. Un elemento a A si dice
massimo se b _ a per ogni b A
minimo se a _ b per ogni b A.
Esempi 3.9. Lordinamento su N ha minimo (il numero 0), ma non ha
massimo.
Lordinamento su Z non ha ne minimo, ne massimo.
Lordinamento sullintervallo (0; 1] =
def
x R [ 0 < x 1 ha massimo
(il numero 1) ma non ha minimo.
Lordinamento su P(A) ha minimo (linsieme ) e massimo (linsieme A).
Esercizio 3.10. Deniamo _ su N come
n _ m se e solo se m = nk, per qualche k N.
Dimostrare che _ `e un ordine non totale su N che ha minimo e massimo.
La relazione < non `e un ordine su N, Z, Q o R dato che non vale la propriet`a
riessiva. Per questo motivo introduciamo la seguente
Denizione 3.11. Un ordine stretto su A `e una relazione R su A tale che
R I(A)
`e un ordine su A.
Denizione 3.12. Una relazione F A B `e una funzione da A in B se
(1) per ogni a A c`e un b B tale che (a, b) F.
(2) ogni qual volta (a, b
1
) F e (a, b
2
) F succede che b
1
= b
2
.
In questo caso scriveremo F : A B e lunico b B tale che (a, b) F lo si indica
con F(a).
35
Denizione 3.13. Una funzione F : A B `e
iniettiva se da a
1
,= a
2
segue che F(a
1
) ,= F(a
2
), o, equivalentemente, se da
F(a
1
) = F(a
2
) segue che a
1
= a
2
;
suriettiva se ogni b B `e della forma F(a) per qualche a A;
biettiva se `e iniettiva e suriettiva.
Denizione 3.14. Una operazione n-aria su A `e una F : A
n
A.
36
4 Il principio di induzione
In matematica (ed in informatica) `e spesso necessario dimostrare che una certa
propriet`a `e vera per tutti i numeri naturali. Per esempio:
Per ogni n N,
n

i=0
i =
n(n + 1)
2
.
Consideriamo un frammento di codice della forma:
while (b)
S;
Se P `e una proposizione che esprime una relazione tra i valori delle variabili
che compaiono nellistruzione S, allora si pu`o denire unaltra propriet`a
Q(n) P `e vera dopo n iterazioni del ciclo while.
Propriet`a di questo tipo sono utilizzate per stabilire che P `e una propriet`a
invariante del ciclo in questione.
Se E(n) `e unespressione aritmetica che contiene la variabile n, lequazione
f(n) = E(n)
stabilisce che la funzione f per largomento n ha lo stesso valore dellespres-
sione E(n). Se immaginiamo che la funzione f sia denita ricorsivamente, si
pu`o dimostrare per induzione che f(n) = E(n) per ogni valore naturale di n,
stabilendo cos` la correttezza della denizione ricorsiva della funzione il cui
valore per n `e dato da E(n).
La formulazione pi` u generalmente nota del principio di induzione `e la seguente.
principio di dimostrazione per induzione: Data una propriet`a
P dei numeri naturali, se P(0) e P(n) P(n+1), allora x N.P(x).
Qui una propriet`a dei numeri naturali `e una propriet`a per la quale abbia senso
chiedersi se `e vera o falsa per un numero naturale. La base dellinduzione `e la
dimostrazione di P(0), mentre il passo induttivo `e la dimostrazione dellim-
plicazione P(n) P(n + 1), che normalmente si articola nel modo seguente: si
assume che P(n) sia vera (questa `e detta lipotesi induttiva), e si dimostra che
P(n +1). Unaltra formulazione, del tutto equivalente alla prima, del principio di
induzione, usa lestensione della propriet`a P, cio`e linsieme dei numeri naturali
per i quali la propriet`a `e vera:
Se A N `e tale che 0 A e, per ogni n N, n A n + 1 A,
allora A = N.
37
Aritmetica Vediamo subito il primo esempio di utilizzo del principio di indu-
zione:
Proposizione 4.1. Per ogni n N,
n

i=0
i =
n(n + 1)
2
.
Dimostrazione. Qui la propriet`a P(k) `e
k

i=0
i =
k(k + 1)
2
.
La base consiste nel vericare che entrambi i lati dellinduzione hanno valore 0.
Per dimostrare il passo induttivo, assumiamo che
n

i=0
i =
n(n + 1)
2
e dimostriamo che
n+1

i=0
i =
(n + 1)(n + 2)
2
.
Ora,
n+1

i=0
i =
_
n

i=0
i
_
+ (n + 1)
=
n(n + 1)
2
+ (n + 1) per lipotesi induttiva
=
n(n + 1)
2
+
2(n + 1)
2
=
(n + 1)(n + 2)
2
e mediante unapplicazione del principio di induzione si ottiene la conclusione.
Correttezza di programmi Consideriamo il problema di calcolare il quoziente
q ed il resto r della divisione di due numeri interi X 0 e D > 0. Lalgoritmo
usuale consiste nel sottrarre ripetutamente D a X, aumentando ogni volta di 1 il
valore di q che inizialmente ha valore 0. Schematicamente, lalgoritmo `e il seguente:
1. no a quando X D esegui le seguenti azioni: sottrai D a X; aumenta q di
1
38
2. quando X < D, poni r = X.
Un programma Java che realizza questo algoritmo `e il seguente:
class divisione {
public static void main (String[] args) {
int X, D, q, r;
X = 14;
D = 3;
q = 0;
r = X;
while (r >= D) {
r = r - D;
q = q + 1;
}
System.out.println ("Il quoziente `e: " + q);
System.out.println ("Il resto `e: " + r);
}
}
Come si pu`o dimostrare che il programma precedente `e corretto? Prima di tutto,
serve una specica precisa del problema da risolvere: La condizione di ingresso del
programma, cio`e la propriet`a che i dati in ingresso X e D devono soddisfare, `e che
X 0 e D > 0 (la seconda propriet`a serve ad evitare casi di divisione per 0). La
condizione di uscita del programma, cio`e la propriet`a che i dati in uscita q ed r
devono soddisfare, `e che X = q D+r, con r < D. Questa propriet`a dice proprio
che q ed r sono, rispettivamente, il quoziente ed il resto della divisione intera di X
per D. La correttezza del programma (qualche volta si parla di questa condizione
come di correttezza parziale) asserisce che:
per ogni dato in ingresso che soddisfa la condizione di ingresso, se il
programma termina, allora i dati in uscita soddisfano la condizione di
uscita.
Una condizione pi` u esigente di correttezza `e quella che si chiama correttezza
totale:
per ogni dato in ingresso che soddisfa la condizione di ingresso, il
programma termina e i dati in uscita soddisfano la condizione di uscita.
Per stabilire che un programma soddisfa la specica vi sono vari modi, ma la
tecnica pi` u conveniente consiste nel trovare quello che si chiama un invariante
(di ciclo):
39
invariante (di un ciclo) `e una propriet`a che lega (tutte o alcune del)le
variabili coinvolte nel ciclo, e che `e vera dopo un numero arbitrario
di iterazioni del ciclo. In particolare, `e vera allingresso nel ciclo (cio`e
dopo 0 iterazioni).
Ci sono molte propriet`a invarianti del ciclo
while (r >= D) {
r = r - D;
q = q + 1;
}
nel programma precedente, per esempio la propriet`a q 0. Tra tutte le possibili
propriet`a ce ne sono alcune che sono pi` u interessanti di altre. Consideriamo ora la
propriet`a:
(6) X = q D +r
che `e molto simile alla condizione di uscita del programma. Che si tratti veramente
di un invariante `e qualcosa che deve ancora essere dimostrato, ma per il momento
assumiamo che lo sia. Quando il ciclo termina (e prima o poi deve terminare,
perche ad ogni iterazione a r viene sottratto il valore D che, per la condizione di
ingresso, `e un numero > 0, quindi prima o poi deve accadere che r < D) abbiamo
che X = q D + r perche abbiamo assunto che questa propriet`a sia invariante,
ed inoltre si esce dal ciclo perche r < D. Ma allora `e vera la propriet`a X =
q D + r, con r < D, che `e proprio la condizione di uscita del programma. Luso
dellinvariante ci permette quindi di dimostrare che il programma `e (parzialmente)
corretto. In questo caso abbiamo gi`a implicitamente dimostrato che il programma
`e anche totalmente corretto, perche abbiamo gi`a visto che il ciclo deve terminare.
Resta da dimostrare che la propriet`a (6) `e proprio invariante. Questo si pu`o fare
per induzione sul numero di iterazioni del ciclo. Supponiamo che questo numero
sia 0 (base dellinduzione) (ovviamente, la dimostrazione che (6) `e invariante vale
in generale, non solo per gli specici valori di X e D che abbiamo scelto). Allora
q = 0(perche q non viene incrementato) e r = X. Allora X = q D + r perche
questo si riduce a dire che X = 0D+X, che `e ovviamente vero. Supponiamo che
il ciclo sia stato eseguito n volte, e che la propriet`a (6) sia vera (ipotesi induttiva);
vogliamo dimostrare ora che resta vera anche dopo la (n + 1)-esima iterazione.
Durante questa iterazione vengono modicati i valori di q e di r, ottenendo valori
q

= q + 1
r

= r D
dove q

ed r

sono i valori delle variabili q ed r dopo lesecuzione delle istruzioni


40
r = r - D;
q = q + 1;
Allora calcoliamo:
q

D +r

= (q + 1) D + (r D)
= q D +D +r D
= q D +r = X
dove lultimo passaggio sfrutta lipotesi induttiva. Per induzione si conclude allora
che la propriet`a (6) `e vera per qualsiasi numero di iterazioni del ciclo, quindi (6)
`e invariante.
Esempio 4.2. (Quadrato di un numero naturale) Vediamo un altro esempio della
tecnica appena usata per dimostrare la correttezza del programma per la divisione
intera, utilizzandola questa volta per sintetizzare un programma per calcolare il
quadrato di un numero naturale N. La condizione di ingresso sar`a dunque N 0,
mentre la condizione di uscita sar`a Y = X X e X = N dove Y `e il dato in uscita
ed X una variabile ausiliaria utilizzata come contatore. Linvariante appropriato
in questo caso `e la formula
(7) Y = X X.
Inizialmente avremo dunque X = 0 e Y = 0: linvariante `e ovviamente vero
in questo caso, e questo stabilisce la base della dimostrazione induttiva che la
propriet`a (7) `e invariante.
class quadrato {
public static void main (String[] args) {
int N, X, Y;
N = ? ; // inizializzazione
X = 0;
Y = 0;
while (X < N) {
Y = Y + 2 * X + 1;
X = X + 1;
}
System.out.println ("Quadrato = " + Y);
}
}
Per quanto riguarda il passo induttivo, lipotesi induttiva `e
41
Y = X X dopo ln-esima iterazione;
bisogna dimostrare che (7) resta vera dopo la (n + 1)-esima iterazione. Se Y

`e il
valore di Y dopo lesecuzione dellistruzione Y = Y + 2 X + 1, mentre X

`e il
valore di X dopo lesecuzione dellistruzione X = X + 1, possiamo calcolare
Y

= Y + 2 X + 1
= (X X) + 2 X + 1 (per ipotesi induttiva)
= (X + 1) (X + 1)
= X

da cui si conclude che (7) `e proprio invariante. Poiche il valore di N X decresce


strettamente ad ogni iterazione, il ciclo deve terminare (Perche non ci pu`o essere
una sequenza innita di numeri naturali k
0
> k
1
> k
2
> . . .) alluscita dal ciclo
avremo X = N (perche la condizione del while `e diventata falsa e sappiamo,
per come `e fatto il programma, che X N) quindi, per linvariante, Y = N N.
Questo mostra che la condizione di uscita `e soddisfatta dal dato in uscita Y , perci`o
il programma `e corretto.
Denizioni ricorsive di funzioni Immaginiamo di volere denire una funzione
f : N A, dove N `e linsieme dei numeri naturali ed A un insieme qualsiasi. Si
pu`o allora utilizzare il seguente schema di ricorsione:
f(0) = a
f(n + 1) = E(f(n))
dove a `e un elemento di A e con la notazione E(f(n)) si indica che lespressione
E( ) pu`o utilizzare il valore f(n). Una giusticazione intuitiva di questo schema si
pu`o ottenere considerando la struttura dei numeri naturali: la funzione f `e denita
per 0 perche la prima clausola dello schema ne fornisce il valore a; supponiamo
invece che k sia un numero positivo, e che quindi k = n + 1 per qualche numero
naturale n. Si pu`o immaginare di avere gi`a calcolato il valore di f(n)(la funzione f
viene calcolata dal basso, partendo dallargomento 0), e si pu`o quindi calcolare
E(f(n)) che d`a il valore di f(n+1). (Una giusticazione rigorosa di questo metodo
di denizione di funzioni verr`a data pi` u tardi, nel Teorema 4.13.)
Vediamo solo un esempio di applicazione di questo schema, riprendendo un
esempio gi`a visto trattato mediante un programma iterativo dimostrato corretto
mediante invarianti:
Esempio 4.3. (La funzione quadrato) Si pu`o denire ricorsivamente il quadrato di
un numero naturale mediante le clausole:
q(0) = 0
q(n + 1) = q(n) + 2 n + 1
42
Vediamo che le clausole precedenti deniscono eettivamente la funzione desidera-
ta, dimostrando per induzione che la propriet`a q(n) = n n `e vera per ogni valore
di n:
(Base dellinduzione)
q(0) = 0 (per denizione)
= 0 0
(Passo indutttivo)
q(n + 1) = q(n) + 2 n + 1 (per denizione)
= n n + 2 n + 1 (per ipotesi induttiva)
= (n + 1) (n + 1) (per propriet`a algebriche)
Osservazione Le clausole della denizione ricorsiva della funzione q(n) consentono
anche di calcolare il valore di questa funzione per un valore arbitrario dellargo-
mento. Per esempio:
q(5) = q(4 + 1)
= q(4) + 2 4 + 1
= q(3 + 1) + 2 4 + 1
= q(3) + 2 3 + 1 + 2 4 + 1
= q(2 + 1) + 2 3 + 1 + 2 4 + 1
= q(2) + 2 2 + 1 + 2 3 + 1 + 2 4 + 1
= q(1 + 1) + 2 2 + 1 + 2 3 + 1 + 2 4 + 1
= q(1) + 2 1 + 1 + 2 2 + 1 + 2 3 + 1 + 2 4 + 1
= q(0 + 1) + 2 1 + 1 + 2 2 + 1 + 2 3 + 1 + 2 4 + 1
= q(0) + 2 0 + 1 + 2 1 + 1 + 2 2 + 1 + 2 3 + 1 + 2 4 + 1
= 0 + 2 0 + 1 + 2 1 + 1 + 2 2 + 1 + 2 3 + 1 + 2 4 + 1
= 1 + 2 + 1 + 4 + 1 + 6 + 1 + 8 + 1
= 25
Esercizio 4.4. Dimostrare per induzione che la funzione denita dalle clausole:
_
f(0, y, z) = z y
f(x + 1, y, z) = z +f(x, y, z)
`e tale che, per ogni x, y, z N:
f(x, y, z) = (x +y) z
43
Esercizio 4.5. Dimostrare per induzione che la funzione denita dalle clausole:
_
f(0) = 1
f(n + 1) = f(n) +f(n)
`e tale che, per ogni n N:
f(n) = 2
n
.
Esercizio 4.6. Dimostrare per induzione che la funzione denita dalle clausole:
_
f(0) = 0
f(n + 1) = (n + 1) +f(n)
`e tale che, per ogni n N:
f(n) =
n

i=0
i
4.1 Generalizzazioni del principio di induzione
C`e un altro principio fondamentale per ragionare sui numeri naturali:
Principio del minimo: Se la propriet`a P `e vera per qualche numero
naturale, allora c`e un minimo numero naturale n tale che P(n).
Dire che n `e il minimo per il quale la propriet`a P vale implica, in particolare,
che k < n. P(k). Una conseguenza fondamentale del principio del minimo `e la
seguente propriet`a, che si esprime dicendo che la relazione dordine stretta < sui
numeri naturali `e ben fondata:
In N non esiste alcuna successione discendente innita della forma
(8) n
0
> n
1
> n
2
> . . .
Infatti, se esistesse una successione della forma (8), linsieme n
0
, n
1
, n
2
, . . . non
avrebbe un minimo elemento. Limportanza di questa propriet`a dei numeri natu-
rali, che verr`a generalizzata nella sezione 4.1.2, risiede tra laltro nellutilizzo che
se ne pu`o fare per dimostrare la terminazione di programmi. Si ricordi che implici-
tamente questa propriet`a era gi`a stata utilizzata, per esempio, nella dimostrazione
della correttezza totale del programma per la divisione intera. La terminazione del
ciclo che calcola sul quale quel programma si basa viene dimostrata assegnando a
ciascuna congurazione di valori c = (X, D, q, r) assunti dalle corrispondenti va-
riabili del programma un numero naturale T(c) (nel caso specico r). Si utilizza
44
poi losservazione che, se il programma permette di passare da una congurazione
c = (X, D, q, r) ad una congurazione c

= (X

, D

, q

, r

), allora T(c) > T(c

).
Questo `e suciente a stabilire la terminazione: se il programma non terminasse
dovrebbe esistere una successione di congurazioni c
0
, c
1
, c
2
, . . . tale che il program-
ma passa dalla congurazione c
i
alla congurazione c
i+1
, per ogni i = 0, 1, 2, . . ..
Ma allora dovrebbe anche esistere una successione discendente di numeri naturali
T(c
0
) > T(c
1
) > T(c
2
) > . . ., contro la buona fondazione di < su N.
Dimostriamo ora che il principio di induzione implica il principio del minimo. Il
viceversa, cio`e che il principio del minimo implica il principio di induzione, `e un
bellesercizio per voi.
Teorema 4.7. Se P `e vera per qualche numero naturale, allora c`e un numero n
tale che P(n) ed inoltre k < n. P(k).
Dimostrazione. Per assurdo, cio`e cerchiamo di derivare una contraddizione dalla
negazione di quello che vogliamo dimostrare, che `e equivalente alla congiunzione
delle proposizioni seguenti:
(9) m N.P(m) n N.P(n) q < n.P(q).
Detto in italiano, assumiamo che ci sia un numero naturale che soddisfa P ma non
ci sia un minimo numero che soddisfa P e cerchiamo di ottenere una contraddizione.
Per induzione, dimostriamo che i N.Q(i), dove Q(i) `e vera se e solo se j <
i. P(j).
Base: Q(0) `e vera perche non c`e nessun numero naturale minore di 0 che la renda
falsa.
Passo induttivo: Assumiamo lipotesi induttiva Q(i), cio`e che
(10) j < i. P(j),
e dimostriamo che Q(i + 1), cio`e che j i. P(j). Sappiamo gi`a, per (10),
che P(0), . . . , P(i 1), ci resta da dimostrare che P(i), e facciamo questo
ancora per assurdo. In eetti, se P(i), mentre j < i. P(j) per (10), allora
i `e il minimo numero naturale che soddisfa P, ma questo contraddice lipotesi
(9). Quindi P(i) e perci`o j i. P(j), cio`e j < i + 1. P(j), che signica
Q(i +1). Unapplicazione del principio di induzione ci permette di concludere che
i N.Q(i). Ma allora non ci pu`o essere un numero naturale che soddisfa P:
infatti se ci fosse un n siatto, poiche vale Q(n + 1) per quanto abbiamo appena
concluso, si dovrebbe avere P(n) per la denizione di Q e per il fatto che Q `e
vera per ogni numero naturale, contro lipotesi (9). Abbiamo quindi raggiunto una
contraddizione con la nostra prima ipotesi, e questo dimostra che il principio del
minimo `e vero.
45
Vediamo unapplicazione del principio del minimo:
Proposizione 4.8. Ogni numero naturale 2 ha una scomposizione in fattori
primi.
Dimostrazione. Per assurdo, sia n 2 tale da non avere una scomposizione in
fattori primi. Supponiamo anche che n sia il minimo numero con questa propriet`a.
Ci sono due casi:
1. n `e primo: allora n ha una scomposizione in fattori primi, assurdo.
2. n `e composto: sia n = pq, dove p, q 2. I numeri p e q devono avere una
scomposizione in fattori primi, perche n `e il minimo che non ce lha, quindi
anche n deve averla, componendo in modo opportuno le scomposizioni di p
e q, assurdo.
In entrambi i casi abbiamo contraddetto lipotesi che ci sia un numero naturale che
non ha scomposizione in fattori primi, quindi abbiamo dimostrato la proposizione.
Esercizio 4.9. Sia s
1
, . . . , s
n
, dove n 2, una sequenza di interi dove s
1
`e positivo,
s
n
`e negativo e per ogni i, se 1 i < n, s
i+1
= s
i
1 o s
i+1
= s
i
+ 1. Si dimostri
che esiste i, con 1 < i < n, tale che s
i
= 0.
4.1.1 Il principio di induzione forte
Si pu`o anche dare la seguente formulazione del principio di induzione, che risulter`a
essere equivalente alla prima. Diciamo che una propriet`a P dei numeri naturali `e
progressiva se
(y < x.P(y)) P(x),
e scriviamo Prog(P) per indicare che P `e una propriet`a progressiva.
principio di dimostrazione per induzione forte: Se Prog(P),
allora n N.P(n).
Vediamo di dimostrare che il principio di induzione implica il principio di induzione
forte. A questo scopo, assumiamo che Prog(P). Lidea naturale sarebbe quella
di dimostrare per induzione che P(n) per ogni n N. In eetti si dimostra che
P(0) perche y < 0.P(y) e non c`e alcun elemento di N minore di 0, quindi per
lassunzione che Prog(P) abbiamo P(0). Per dimostrare il passo induttivo tuttavia,
dovremmo riuscire a dimostrare che P(n+1) assumendo che P(n), ma questo non
basta per applicare lipotesi Prog(P).
46
Allora seguiamo unaltra strategia: dimostriamo per induzione che n N.P

(n),
dove la nuova propriet`a P

`e denita nel modo seguente, per x N:


P

(x) se e solo se y < x.P(y).


Possiamo concludere per lo stesso ragionamento di prima che P

(0). Supponiamo
ora (ipotesi induttiva) che P

(n) per un generico n N, e vediamo di dimostrare


che `e anche vero che P

(n + 1). Se P

(n), allora per la denizione di P

abbiamo
y < n.P(y). Poiche Prog(P), P(n) `e vera e quindi y < n + 1.P(y), ma questo
equivale alla verit`a di P

(n + 1). Per induzione concludiamo allora che n


N.P

(n). Sia ora k un generico numero naturale: allora P

(k + 1), quindi y <


k + 1.P(y) e perci`o P(k), quindi possiamo asserire che n N.P(n), che `e la
conclusione desiderata.
Un modo pi` u semplice per dimostrare che il principio di induzione implica il
principio di induzione forte sfrutta lequivalenza del principio di induzione con il
principio del minimo. Supponiamo che Prog(P), e che esista (per assurdo) un
n N tale che non P(n). Allora c`e un minimo m N tale che non P(m). Quindi
y < n.P(y) e dalla progressivit`a di P segue che P(n), assurdo.
Esercizio 4.10. Dimostrare che il principio di induzione forte implica il principio
di induzione. [Suggerimento: supponiamo che P(0) e che P(n) P(n + 1) per
un generico n N, e assumiamo per assurdo che P non sia progressiva; allora per
qualche k N abbiamo che y < k.P(y) ma non P(k). Ci sono due casi: k = 0 e
k ,= 0, che portano entrambi ad una contraddizione.]
Il principio di induzione forte ammette una generalizzazione interessante a
insiemi per i cui elementi `e denita una nozione di altezza.
Corollario 4.11 (Principio di induzione strutturale). Sia A un insieme con una
funzione h : A N. Data una propriet`a P, assumiamo che per ogni n N:
() se P(a) per ogni a con h(a) < n, allora P(a) per ogni a con h(a) = n.
Allora P(a), per ogni a A.
Dimostrazione. Deniamo, per un generico n N:
P(n) se e solo se a A (h(a) = n P(a)).
Abbiamo Prog(P), perche P(k) per ogni k < n implica che P(n), per lipotesi ()
su P. Quindi, per induzione forte, P(n) per ogni n N. Sia a A qualsiasi: ab-
biamo allora P(h(a)), perci`o P(a), da cui la conclusione del principio di induzione
strutturale.
47
Naturalmente, questa formulazione del principio di induzione strutturale `e signi-
cativa soltanto nel caso in cui la funzione h non sia a sua volta denita induttiva-
mente sulla costruzione di A. Purtroppo, questo `e quello che accade nella maggior
parte delle applicazioni: `e cos` necessario in generale trovare unaltra giustica-
zione di questo principio, che tuttavia richiede lapprofondimento di tecniche che
escono dallambito di questo corso.
4.1.2 Induzione noetheriana
Il principio di induzione forte sfrutta una propriet`a essenziale dellordine stretto
dei numeri naturali: non ci sono catene discendenti innite della forma
. . . x
2
< x
1
< x
0
che si esprime dicendo che la relazione < su N `e ben fondata. In generale, una
relazione binaria R su un insieme non vuoto A `e ben fondata se non esistono
catene discendenti innite della forma
. . . x
2
Rx
1
Rx
0
e possimo pensare di generalizzare il principio di induzione forte a tali relazioni
denendo, per una propriet`a P di elementi di A
Prog(P) (yRx.P(y)) P(x).
In eetti abbiamo il seguente:
Principio di induzione noetheriana: Se la relazione binaria R `e
ben fondata su A, per ogni propriet`a P di elementi di A:
Prog(P) x A.P(x).
4.2 La caratterizzazione dei numeri naturali
Verso la ne del secolo scorso, Richard Dedekind ha trovato un modo puramente
formale di caratterizzare linsieme dei numeri naturali
N = 0, 1, 2 . . .
e di conseguenza di dare un signicato preciso ai tre puntini . . . che sottointen-
dono un modo unico di continuare la successione.
La descrizione seguente del lavoro di Dedekind e di alcuni sviluppi successivi `e
tratta quasi testualmente da un articolo di Leon Henkin.
Se ammettiamo che non sia problematica lesistenza di insiemi inniti, tra cui
isolare linsieme dei numeri naturali, allora `e legittimo introdurre una classe di
strutture del tipo di similarit`a adatto:
48
Denizione 4.12. Un modello di Peano `e una struttura
N, 0, S)
che verica le condizioni:
1. x N.Sx ,= 0;
2. xy N.x ,= y Sx ,= Sy;
3. Principio di induzione:
G N.(0 G x N.x G Sx G) G = N.
Per ogni modello di Peano, si pu`o dimostrare il teorema di denizione per
ricorsione, che assume la forma seguente:
Teorema 4.13 (Denizione per ricorsione). Sia
N = N, 0, S)
un modello di Peano, e sia / = A, a A, f : A A) una struttura dello stesso
tipo di similarit`a. Esiste un unico omomorsmo
h : N /,
cio`e una funzione N A per cui valgano le condizioni:
h(0) = a
h(Sy) = f(hy).
Non consideriamo la dimostrazione di questo teorema, ma vediamo soltanto dove
risiede la dicolt`a. Un argomento che potrebbe venire in mente per dimostrare il
teorema `e il seguente, basato sul solo principio di induzione (3) della Denizione
4.12:
h `e denita per 0, perche h(0) = a;
sia h denita per y, allora h `e anche denita per Sy, perche h(Sy) = f(hy);
quindi, h `e denita per ogni elemento di A.
Ma che cosa `e h in questo argomento? Ovviamente, la funzione che si tratta
di costruire, e questo argomento comporta pertanto una circolarit`a che non `e
accettabile.
Dalle considerazioni precedenti si ottiene anche una giusticazione delluso del sim-
bolo . . . per indicare il proseguimento della serie 0, 1, 2, . . .: essa pu`o continuare
essenzialmente in un solo modo.
Corollario 4.14. I modelli di Peano sono a due a due isomor.
49
5 Sistemi formali
Vediamo ora una nozione che, oltre a essere fondamentale per la logica formale,
ore un modo alternativo per precisare la nozione di insieme induttivamente ge-
nerato: quella di sistema formale. Un sistema formale serve, essenzialmente, a
generare induttivamente un insieme, i cui elementi si chiameranno teoremi. Tan-
to per avere presente un esempio, consideriamo un sistema formale i cui teoremi
sono (in corrispondenza biunivoca con) i numeri naturali.
Esempio 5.1. Abbiamo una costante 0 ed un operatore ad un argomento s. C`e
un predicato unario num che `e descritto (induttivamente) dallassioma:
num(0)
e dalla regola di inferenza:
num (x)
num(s(x))
Una regola di inferenza della forma:
t
1
, . . . , t
n
t
permette di passare da proposizioni t
1
, . . . , t
n
dette le premesse ad una proposi-
zione t detta la conclusione. (Si intende che, nellapplicazione delle regole, ogni
variabile deve essere rimpiazzata da un oggetto del sistema formale di categoria N.
Un assioma, quando contiene variabili, si intende come uno schema che abbrevia
tutte le proposizioni (che di solito sono innite di numero) che si possono ottenere
rimpiazzando le variabili con oggetti di categoria N.)
Possiamo usare il sistema formale appena descritto per produrre i teoremi
num(0), num(s(0)), num(s(s(0))), . . .
mediante dimostrazioni che consistono di applicazioni della regola di inferenza a
partire dallassioma. Per esempio, abbiamo la dimostrazione:
num(0)
num(s(0))
.
In generale, un sistema formale consiste dei seguenti elementi:
1. Operatori, includendo tra questi anche le costanti come operatori con
nessun argomento.
2. Predicati, e
50
3. Regole di inferenza, includendo tra questi anche gli assiomi, che sono
regole di inferenza con nessuna premessa.
`
E fondamentale il concetto di dimostrazione in un sistema formale. Vediamone
la denizione:
Denizione 5.2 (Dimostrazione). (i) Un assioma t `e una dimostrazione di se
stesso.
(ii) Se
1
, . . . ,
n
sono dimostrazioni rispettivamente di t
1
, . . . , t
n
, e se
t
1
, . . . , t
n
t
`e una regola, allora

1
, . . . ,
n
t
`e una dimostrazione di t.
Si pu`o associare ad ogni dimostrazione un numero naturale, detto la sua al-
tezza, nel modo seguente:
Una dimostrazione che consiste di ununica occorrenza di un assioma ha
altezza 0;
Una dimostrazione della forma

1
. . .
n
t
,
dove
1
, . . . ,
n
sono dimostrazioni di altezze rispettive k
1
, . . . , k
n
, ha altezza
maxk
1
, . . . , k
n
+ 1.
Vediamo ora alcuni esempi di sistemi formali:
Esempio 5.3. Uguaglianza di numeri naturali.
Operatori: come nellesempio 5.1.
Predicati: oltre a quelli dellesempio 5.1, una relazione = di categoria (N, N)F.
Regole di inferenza: oltre a quelle dellesempio , un assioma 0 = 0, e la regola
di inferenza
x = y
s(x) = s(y)
.
Esempio 5.4. Addizione di numeri naturali.
Operatori: oltre a quelli dellesempio 5.1, un operatore + di categoria (N, N)N.
Predicati: come nellesempio 5.3.
51
Regole di inferenza: oltre a quelle dellesempio 5.3, lassioma x + 0 = x e la
regola di inferenza
x +y = z
x +s(y) = s(z)
.
Si possono introdurre variazioni a questo esempio. Una possibilit`a `e quella di
sostituire la relazione = e loperatore + con una singola relazione A di categoria
(N, N, N)F con linterpretazione: la somma di e `e , con lassioma
A(x, 0, x) e la regola di inferenza
A(x, y, z)
A(s, s(y), s(z))
.
Esempio 5.5. Prodotto di numeri naturali.
Operatori: oltre a quelli dellesempio 5.4, un operatore di categoria (N, N)N.
Predicati: come nellesempio 5.4.
Regole di inferenza: un assioma x 0 = 0 e la regola di inferenza
x y = z x +z = u
x s(y) = u
.
Esempio 5.6. Numeri non primi.
Operatori: come nellesempio 5.5.
Predicati: oltre a quelli dellesempio 5.5, un predicato P di categoria (N)F.
Regole di inferenza: oltre a quelle dellesempio 5.5, la regola di inferenza
s(s(x)) s(s(y)) = z
P(z)
.
Esercizio 5.7. Scrivere esplicitamente una dimostrazione che stabilisce che
P(s(s(s(s(s(s(0)))))))
`e un teorema del sistema formale dellesempio 5.6.
Esercizio 5.8. (a) Costruire un sistema formale che abbia, tra gli altri, predicati
P e D di categoria (N)F tali che:
1. P(x) se e solo se x `e un numero naturale pari, e
2. D(x) se e solo se x `e un numero naturale dispari.
(b) Dimostrare che la equivalenze 1 e 2 sono vere, per induzione (Suggerimento:
per ciascuna delle due equivalenze, limplicazione da sinistra a destra deve essere
dimostrata per induzione sullaltezza delle derivazioni, mentre limplicazione da
destra a sinistra deve essere dimostrata per induzione sui numeri naturali).
52
Esercizio 5.9. (a) Costruire un sistema formale che abbia, tra gli altri, un predi-
cato M di categoria (N)F tale che:
1. M(x) se e solo se x rappresenta un numero naturale multiplo di 3.
(b) Dimostrare che lequivalenza 1 `e vera.
Esercizio 5.10. Si consideri il sistema formale con a, b : N, un operatore di
categoria (N, N)N che forma il termine xy a partire da termini x, y : N ed il
predicato unario S : (N)F, lunico assioma S(ab) e le regole
S(x)
S(axb)
S(x) S(y)
S(xy)
Dimostrare che se S(x) in questo sistema formale, allora x contiene lo stesso
numero di simboli a e b.
Vediamo ora una distinzione importante tra le regole di un sistema formale, pren-
dendo come esempio un sistema formale che ha operatori o di categoria N, di
categoria (N)N e 2 di categoria (N, N)N. I predicati sono O di categoria (N)F,
W di categoria (N)F e T di categoria (N)F. Abbiamo due assiomi: O(o) e
T(o 2 o) e le seguenti regole di inferenza:
O(x)
O((x))
O(x) O(y)
W(x 2 y)
T(x 2 y)
T((x) 2 (y))
Consideriamo prima la regola:
T(x 2 y)
T(((x)) 2 ((y))))
.
Si vede che questa regola si pu`o ottenere componendo le regole di inferenza del
sistema. Abbiamo qui un esempio di regola derivata. Invece, le seguenti
regole:
O(x)
T(x 2 x)
T(x 2 y)
W(x 2 y)
non si possono ottenere componendo le regole di inferenza del sistema, e tuttavia,
se usate, non permettono di ottenere nuovi teoremi rispetto a quelli che gi`a si
potevano dimostrare usando soltanto le regole di inferenza del sistema. Queste
regole sono esempi di regole ammissibili.
Proposizione 5.11. La regola
O(x)
T(x 2 x)
`e ammissibile.
53
Dimostrazione. Per induzione sullaltezza della dimostrazione della premessa della
regola.
Base: quando la premessa ha una dimostrazione di altezza 0, lunica possibilit`a `e
che questa sia un assioma, precisamente lassioma O(o). In questo caso allora la
conclusione `e semplicemente lassioma T(o 2 o).
Passo induttivo: se la premessa ha una dimostrazione di altezza > 0, allora deve
avere la forma
.
.
.
O(y)
O((y))
dove x = (y). Per ipotesi induttiva abbiamo che T(y 2y), quindi T((y) 2(y))
usando la regola di inferenza, e questo signica appunto T(x 2 x).
Esercizio 5.12. Dimostrare che la regola
T(x 2 y)
W(x 2 y)
`e ammissibile.
Esercizio 5.13. Per il sistema formale dellesercizio precedente:
(1) si interpreti a come ( e b come ). Si dimostri che, se S(x), allora linter-
pretazione di x `e una sequenza ben formata di parentesi.
(2) Dimostrare che la regola:
S(aaxbb)
S(axb)
non `e ammissibile in questo sistema formale.
54

Potrebbero piacerti anche