Professional Documents
Culture Documents
Corso A
Indice i
1 Introduzione 1
3 Logica proposizionale 28
3.1 Sintassi 28
3.1.1 Il linguaggio proposizionale 29
3.1.2 Analisi sintattica 31
3.1.3 Esercizi 39
3.2 Semantica 41
3.2.1 Tavole di verità 42
3.2.2 Esercizi 44
3.2.3 Validità e conseguenza 45
3.2.4 Esercizi 50
3.3 Sull0 implicazione 52
i
4.2 Algebre di Boole 67
4.2.1 Esercizi 70
4.3 Algebra delle proposizioni 71
4.4 Rapporti tra proposizioni e insiemi 76
5 Relazioni 81
5.1 Prodotto cartesiano 81
5.2 Relazioni 82
5.2.1 Esercizi 85
5.3 Relazioni d0 ordine 86
5.4 Relazioni di equivalenza 90
5.5 Funzioni 93
6 Forme normali 97
6.1 Definibilità dei connettivi 97
6.1.1 Esercizi 99
6.2 Forme normali disgiuntive 100
6.3 Forme normali congiuntive 101
6.4 Esercizi 106
ii
8.1 Alfabeto 124
8.2 Termini e formule 124
8.3 Variabili libere e vincolate 128
8.4 Interpretazioni 131
8.5 Esercizi 134
10 Sillogismi 155
10.1 Sillogismi categorici 156
10.2 Diagrammi di Venn 165
iii
1 Introduzione
Lo scopo di questo corso è quello di rendere familiari con le forme di ragiona-
mento tipiche degli argomenti matematici; in informatica in particolare inte-
ressano soprattutto quelli che mirano a trovare la soluzione di un problema,
a dimostrare che è una soluzione e a presentarla come un algoritmo.
Un algoritmo è un insieme articolato e connesso di istruzioni per risolvere
un problema; gli algoritmi non sono scritti in un linguaggio di program-
mazione, ma inizialmente nel linguaggio matematico o addirittura in quello
naturale, e in questo devono essere formulati e riconosciuti tali, prima che la
loro descrizione guidi alla traduzione nei relativi programmi.
La maggior parte degli algoritmi che sostengono le prestazioni dei calcola-
tori non sono numerici ma riguardano manipolazioni di simboli (ad esempio
l’ordinamento di una lista, o la fusione di due liste in una), quindi la prima
consapevolezza - e competenza - da acquisire è che il linguaggio matematico
non è solo quello dei numeri, ma abbraccia qualsiasi argomento che si possa
riferire ad elementi strutturati.
I ragionamenti relativi devono avere ed hanno lo stesso rigore di quelli
numerici, e si svolgono con l’ausilio di un simbolismo appropriato, che è
quello della logica matematica (= logica formale moderna).
In vista della precisione richiesta, che non ammette rilassamenti né licen-
ze, è bene realizzare che ogni ragionamento si può rappresentare in forme
standardizzate di passaggi, e imparare a farlo, usando regole logiche e la
proprietà fondamentale dei numeri naturali che è il principio di induzione.
Il corso è l’equivalente di quelli che nelle università americane si chiamano
di Introduction to Proofs, che contengono in genere anche elementi di ma-
tematica discreta (strutture finite, combinatoria). Tali corsi sono concepiti
come ponte tra la scuola secondaria e il college, rivolti a studenti che hanno
appreso la matematica come un insieme di ricette e di calcoli, senza aver mai
imparato a seguire e tanto meno a fare una dimostrazione. Soprattutto non
hanno coscienza del fatto che le dimostrazioni sono presenti ovunque, à la
Molière, in particolare ogni volta che si stabilisce in modo giusto e preciso
cosa fa e cosa deve fare un algoritmo.
Nella scuola italiana qualche esperienza con le dimostrazioni si acquisisce
con la geometria, ma limitatamente alle sue costruzioni, nulla relativamente
all’aritmetica o ad altre strutture simboliche e senza approfondire le ragio-
ni di tale forma di ragionamento tipicamente matematica. Né tale problema
sarà indagato in questo corso introduttivo: lo studio delle dimostrazioni e l’o-
1
biettivo della familiarità con esse sono perseguiti qui non in vista di spiegare
il senso dell’impostazione deduttiva delle teorie, ma solo per abituare a vede-
re le connessioni tra i vari risultati, la loro mutua dipendenza e derivabilità,
il che aiuta anche a ricordarli meglio.
Capire le dimostrazioni presuppone comunque la comprensione degli ar-
gomenti trattati, e costituisce quindi un’occasione di ripasso di nozioni ele-
mentari di aritmetica che sono alla base del pensiero informatico.
Nel testo, il segno !!! a margine segnala che si deve prestare particolare
attenzione. !!!
Gli esercizi sono di due tipi; alcuni ripetitivi, per soddisfare le richieste di
studenti che vogliono tanti esempi sui quali applicare le tecniche o verificare
i concetti imparati; gli altri servono per approfondimento e non sono meno
importanti, anzi; tutti sono parte del programma.
I riferimenti in nota del tipo “Horstmann, p. 186 rimandano al testo del
corso di Programmazione C. S. Horstmann, Java 2 .
Le parti scritte in corpo minore sono letture con informazioni integrative.
Il segno 2 è usato per indicare la fine di una dimostrazione, al posto del
tradizionale QED.
2
2 Dal linguaggio naturale alla logica
La prima competenza che bisogna acquisire è quella della formalizzazione,
ovvero della traduzione di frasi della lingua naturale o del gergo matematico
- che è un misto di formule e di parole - in espressioni di un linguaggio
semplificato, schematico e dalla sintassi precisa.
Le frasi che si prendono in cosiderazione formano un sottoinsieme della
totalità delle frasi. Non si considerano espressioni di interrogazione, esclama-
zione o comando, ma solo frasi dichiarative. Ci si riduce, come primo livello di
semplificazione, 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 semplificazione è guidata dalla volontà di restringersi ad espressioni
matematiche o comunque preparate alla loro traduzione in programmi (nei
linguaggi imperativi si usano comandi, ma questi sono rivolti alla macchina,
non costituiscono le frasi da elaborare).
Si devono evitare ambiguità e ridondanze, non per sfizio ma con l’obiettivo
di capire e far emergere la struttura logica. Una frase come
3
Nella terminologia logica si introducono “predicati” (o “proprietà”) e “re-
lazioni”; i primi corrispondono ai verbi intransitivi e alla copula “essere”, le
seconde ai verbi transitivi.
Si dice che una proprietà è goduta da un soggetto, o che un soggetto ha
una determinata proprietà o che soddisfa un predicato. Si dice anche che
una proprietà è predicata di un soggetto, espressione dalla quale si vede il
collegamento tra i due termini.
Con “la rosa è profumata” o “la rosa profuma” si esprime il fatto che
la rosa ha una proprietà, quella di essere profumata. La frase “la rosa ha
profumo” invece usa il verbo “avere”, che ha un soggetto e un complemento
oggetto; in logica si dice che sussiste una relazione tra la rosa e il profumo, o
che rosa e profumo stanno in una relazione, che è la relazione di possesso.
Tutti i verbi si potrebbero standardizzare nella forma della attribuzione
di uno stato a uno o più termini, e questo corrisponderebbe ad avere un so-
lo verbo, la copula “essere”, nelle due versioni “essere qualcosa” per i verbi
intransitivi e “essere nella relazione . . . con” per i verbi transitivi. Questo
è il motivo per cui nella trattazione formale successiva (cap. 8) si userà la
dizione unica “predicati” per proprietà e relazioni, distinguendo quelli a un
argomento (proprietà) da quelli a più argomenti (relazioni). Il “numero di ar-
gomenti” è il numero di entità 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ù argomenti).
La frase “Giovanni dorme” può diventare “Giovanni ha la proprietà di
stare dormendo” (o “Giovanni è dormiente”, “Giovanni sta dormendo”, “Gio-
vanni è nello stato di sonno”).
“Giovanni possiede un Piaggio 50” diventa “la relazione di possesso sussi-
ste tra Giovanni e un Piaggio 50”, o meglio come vedremo “la relazione di pos-
sesso sussiste tra Giovanni e una cosa, e questa cosa è un Piaggio 50”; “Gio-
vanni ama Maria”, cosı̀ come “Maria è amata da Giovanni”1 , vuol dire che
la relazione di amore sussiste tra Giovanni e Maria (ma non necessariamente
tra Maria e Giovanni, perché la relazione di amore non è simmetrica).
Le frasi matematiche elementari, uguaglianze e disuguaglianze, “è uguale
a”, “è minore di”, rientrano in questa tipologia. Cosı̀ quelle insiemistiche con
“appartiene a”, cioè “è un elemento di”.
1
La distinzione tra forma attiva e passiva è inessenziale, salvo dal punto di vista
psicologico.
4
Alcune frasi possono essere rese sia mediante relazioni che mediante pre-
dicati; dipende da come si definiscono le relazioni e i predicati. In “Giovanni
è amico di Mario” si può considerare la proprietà “essere amico di Mario” e
attribuirla a Giovanni, oppure la relazione “essere amico di” e affermare che
sussiste tra Giovanni e Mario.
Non si può dire che una sia giusta e l’altra no; dipende dal contesto; se
dopo la prima osservazione si vuole aggiungere che Giovanni piange perché
Mario è malato, e bisogna quindi citare di nuovo Mario, si deve usare il
nome “Mario” e allora è meglio la versione relazionale, perché in quella con il
predicato in nome “Mario” scompare, nella versione formalizzata, assorbito
dal simbolo per il predicato: “essere amico di Mario” in quanto predicato,
nell’analisi logica, è una unità 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
binarie. Le relazioni non sono solo binarie: “il punto C giace tra A e B” è
un esempio di una relazione ternaria, o tra tre termini.
2.1.1 Termini
I soggetti o gli oggetti, più in generale i termini tra cui sussiste una relazione,
sono indicati da vari costrutti linguistici. Il più semplice è 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” è una descri-
zione, ben precisa, di una persona. Analogamente “il quadrato di 2” è una
descrizione di un numero; entrambe le descrizioni sono ottenute applicando
una funzione2 , nel primo caso “padre di” nel secondo “il quadrato di”, a
descrizioni più semplici, che in questi esempi sono nomi. Si possono dare
descrizioni più 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 è uno di una categoria di
cose simili; “Piaggio 50” non è un nome proprio, ma un nome comune; è
in effetti un predicato, ragione della versione sopra proposta per la frase,
che Giovanni possiede una cosa che ha la proprietà di essere un Piaggio 50.
Questa frase non è più tuttavia elementare, è in effetti la congiunzione di due
frasi: “Giovanni possiede una cosa” e “questa cosa è un Piaggio 50”.
2
Preciseremo in seguito cosa sono le funzioni dal punto di vista matematico.
5
Da questo esempio si vede la necessità di chiarire ancora almeno tre aspet-
ti: 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.2 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 dall’altra si presentano in tante
versioni equivalenti.
La congiunzione “e” può ad esempio essere resa da una virgola, da “e
anche”, da “ma” e ancora altre espressioni. Il senso avversativo di “ma” è
uno degli aspetti che vengono lasciati cadere nel passaggio ad un linguaggio
formalizzato, in quanto esprime un’aspettativa soggettiva. La congiunzione
è resa anche da costrutti più complicati, come “sia . . . sia”: “parto sia che
piova sia che faccia bel tempo” significa “se fa bel tempo parto, e se piove
parto”, magari con l’aggiunta di un “ugualmente” che di nuovo esprime una
determinazione soggettiva.
La stessa congiunzione talvolta esprime qualcosa di più o di diverso dalla
semplice affermazione di entrambe le proposizioni congiunte; talvolta può
significare “e poi”, come in “si sposarono e vissero felici”; talvolta significa
“e quindi”, come in “si immerge una cartina di tornasole, e diventa rossa” (se
questa frase è intesa non come una descrizione di avvenimenti, nel qual caso
“e” significa “e dopo”, ma come come una caratterizzazione di particolari
sostanze).
La disgiunzione, “o” o “oppure”, talvolta ha un senso debole (“uno o
l’altro o tutt’e due”), talvolta un senso esclusivo (“uno o l’altro ma non tutt’e
due”). L’affermazione “piove o c’è il sole” è compatibile con la situazione in
cui piove da una nuvola anche se c’è il sole. Il latino aveva due parole diverse
vel e aut, ma la distinzione non è rimasta nelle lingue moderne. La differenza
qualche volta è espressa dalla semplice ripetizione di “o” (“o piove o c’è il
sole”) ma più spesso dall’enfasi della pronuncia; il tono e il contesto devono
essere tenuti presenti per capire il significato inteso. C’è voluto del tempo per
tornare a riconoscere due particelle diverse, e anche per accettare vel come
disgiunzione:
6
Alcuni dicono che per la verità di una disgiunzione si richiede
sempre che uno dei disgiunti sia falso, perché se entrambi fossero
veri non sarebbe una vera disgiunzione, come dice Boezio. Questo
però non mi piace. In realtà io dico che se entrambe le parti di
una disgiunzione sono vere, l’intera disgiunzione è vera (Walter
Burleigh, De Puritate, XCI, 3-19, XIV sec .)
7
Spesso “se . . . allora” non è presente in frasi che tuttavia esprimono quel
tipo di collegamento: “un numero primo maggiore di 2 è dispari” signifi-
ca “se un numero è primo e maggiore di 2 allora è dispari”. Torneremo
sull’argomento.
In considerazione delle ambiguità e molteplicità di espressione messe in
luce, un primo passo è quello di introdurre una sola versione fissa delle par-
ticelle logiche, sia come simboli che come significati; fatto questo tuttavia,
la competenza più importante 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à della lingua,
ma è stata proposta a titolo esemplificativo. Solo una costante (auto)analisi
delle varie forme espressive (leggi: tanti esercizi) aiuta a riconoscere le varie
insidie.
La standardizzazione è 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. Nell’apprendere a formalizzare si deve anche
raffinare 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 esem-
pio “né . . . né”, o “a meno che”3 . Qualche volta, parole che non sembrano
particelle logiche possono essere usate in questo modo, e lo si riconosce nel-
la formalizzazione: “quando” è di solito una determinazione temporale, ma
“quando piove, prendo l’ombrello” viene resa quasi necessariamente da “se
piove, prendo l’ombrello”.
Nell’ottica della formalizzazione, chiedere cosa significa “quando piove,
prendo l’ombrello” non è altro che la richiesta di tradurre la frase in un’al-
tra in cui compaia una delle particelle logiche riconosciute tali e scompaia
“quando”, se non è tra quelle; cosı̀ si vede a quale delle particelle note la
parola è equivalente; ma non sempre è evidente una possibile riduzione di
una frase ad un’altra, né sempre una sola.
Esistono peraltro parole anche di difficile catalogazione, che sembrano particelle
3
Si noti l’uso della “o” nella nostra frase, di nuovo scambiabile con “e”: si voleva
dire che non abbiamo menzionato “né . . . né” e non abbiamo menzionato “a meno che”;
avremmo potuto dire che non abbiamo menzionato né “né . . . né” né “a meno che”, usando
proprio “né . . . né”; l’uso di “o” suggerisce un’altra versione equivalente: “una particella
che sia “né . . . né” o “a meno che” non l’abbiamo menzionata”.
8
logiche in quanto legano due frasi, ma hanno sfumature importanti che si perdono
nella formalizzazione: ad esempio “siccome piove, prendo l’ombrello”, o “prendo
l’ombrello perché piove” potrebbero essere espresse dall’asserzione unica “la pioggia
è la causa del mio prendere l’ombrello”, 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
l’ombrello” o a “la pioggia è la causa del mio prendere l’ombrello”.
Esistono parimenti frasi che ne assommano diverse; la stessa “siccome piove,
prendo l’ombrello” invece che una frase può essere considerata un argomento, poi-
ché in essa si afferma un fatto, che piove, oltre a un legame condizionale. Potrebbe
corrispondere ad un esempio di modus ponens (si vedrà a suo tempo): “Se piove,
prendo l’ombrello. Piove. Quindi prendo l’ombrello”.
Useremo simboli speciali per rappresentare alcune particelle logiche che
sembrano di uso più comune, almeno nei discorsi meno sofisticati. Per queste
si potrebbero usare parole della lingua italiana - o comunque di una lingua
naturale - fissando per convenzione in modo rigido il loro significato, 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 perché
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
∨ per la disgiunzione inclusiva
⊕ per la disgiunzione esclusiva
→ per il condizionale “se . . . allora”
↔ per il bicondizionale “se e solo se”
9
e in che senso, o se sono sufficienti, o quante ce ne potrebbero essere. Un’al-
tra riguarda l’equivalenza, affermata per alcuni esempi precedenti, tra frasi
diverse espresse con particelle diverse.
Queste strutture forniranno inoltre un ricco campo di scrittura di algo-
ritmi non numerici ma simbolici, applicati a liste o alberi o altre strutture di
dati.
Il significato delle particelle logiche è lo stesso a prescindere dal lessico, e
per studiarlo occorre non fissarsi su un linguaggio particolare; la trattazione
deve valere per tutti, quindi useremo lo stesso artificio matematico di usa-
re lettere per indicare entità non precisate, che nelle applicazioni dovranno
essere asserzioni sensate.
La formalizzazione del linguaggio naturale non è qualcosa di meccanico e di
compiuto per l’intera gamma delle potenzialità espressive. Esistono argomenti
controversi e ancora oggetto di discussioni e di proposte per una formalizzazione
soddisfacente - che rientrano in studi più avanzati.
La restrizione alle frasi dichiarative è uno di questi, dal momento che i comandi
ad esempio hanno un ruolo apparentemente importante nella programmazione.
Abbiamo visto qualche difficoltà con “siccome” e il suo significato causale. Allo
stesso modo è discutibile se “è necessario che . . . ” sia da considerare una particella
logica: “è necessario che al giorno segua la notte” (o “al giorno segue necessaria-
mente la notte”) non sembra equivalente a “al giorno segue la notte” e neanche
a “al giorno segue sempre la notte”, che è equivalente alla precedente se “segue”,
privo di determinazioni temporali, assorbe il “sempre”; anche “necessariamente 2
+ 2 = 4” forse dice di più di “2 + 2 = 4”, ma non è del tutto chiaro che cosa.
Ancora, è possibile sostenere che il costrutto “è vero che . . . ” è pleonastico,
in quanto “è vero che piove” è equivalente a “piove”, ma è altrettanto possibile
sostenere che non è possibile farne a meno.
Altre locuzioni della lingua naturale non formalizzabili le vedremo in seguito.
2.2.1 Esercizi
1. Esaminare i seguenti discorsi (e altri tratti a scelta da fonti letterarie
o giornalistiche) ed individuare le particelle logiche e le frasi elementa-
ri (racchiudendole tra parentesi e se necessario riformulando in modo
equivalente i discorsi e le loro frasi).
10
que sostenere che se le azioni delle persone sono prevedibili
allora le persone sono perfettamente razionali.
Se non Prev allora o non Det o non Raz. Chi sostiene Det
allora deve sostenere che se Prev allora Raz
11
le frasi della competenza linguistica siano immagazzinate in
memoria.
5. Trasformare la frase
6. Trovare altre particelle logiche della lingua italiana, oltre a quelle men-
zionate nel testo.
2.3 Variabili
Gli esempi dell’esercizio 1 mostrano che le semplificazioni sono troppo dra-
stiche se si vogliono usare solo i connettivi tra frasi complete; quelle collegate
restano complesse e non analizzate. Torniamo perciò a quanto lasciato in
sospeso, a come rappresentare “una cosa” e “questa cosa”. Nella grammati-
ca, un ruolo fondamentale è svolto dai pronomi, che si presentano in grande
varietà, 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, è fortunato” si
individuano due proposizioni componenti “uno ha un amico” e “è fortunato”.
12
La seconda frase non presenta il soggetto, ma s’intende che è lo stesso della
prima; si può ripetere (“uno è fortunato”) oppure più spesso, in altri casi,
si deve precisare, con un indicatore che faccia capire esplicitamente che il
soggetto è lo stesso (ad esempio “egli”, “costui” e simili).
Nella seconda di due frasi collegate, il soggetto della prima può essere
presente come oggetto, ad esempio in “se uno è generoso, tutti ne dicono
bene”, dove “ne” significa “di lui”.
Anche per questo tipo di parti del discorso, si hanno molte versioni equiva-
lenti, ciascuna con i suoi vantaggi e la sua convenienza, ad esempio “chiunque
abbia un amico è fortunato”, “coloro che hanno un amico sono fortunati”;
talvolta addirittura basta un’unica frase indecomponibile, come “i generosi
sono lodati” per “coloro che sono generosi sono lodati”4 .
È 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 è fortunato” introducendo una lettera A per la prima e una lettera B
per la seconda, si ottiene A → B che non mostra la struttura fine della frase,
e non permette quindi di indagare se sia vera o no.
Il simbolismo deve essere arricchito. L’uso dei pronomi è 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 è creduta un elemento alieno del linguaggio, che compare solo
nei simbolismi matematici, ma non è cosı̀.
“Se uno ha un amico, è fortunato” equivale nella semiformalizzazione “se
x ha un amico, x è fortunato”.
Avendo introdotto questi simboli speciali, come peraltro abbiamo già
fatto con i connettivi, tanto vale utilizzare anche altre schematizzazioni e
completare il distacco del lessico naturale.
Introduciamo perciò simboli per designare predicati, e altri per costruire
termini, che corrispondono alle descrizioni.
Useremo preferibilmente
13
le lettere a, b, c, . . . per costanti (nomi propri)
le lettere x, y, . . . per variabili, con o senza indici.
P (a).
R(a, b),
R(g, x) ∧ P (x),
ma non è sufficiente.
14
2.4 Quantificatori
L’uso delle variabili o della loro versione con pronomi presenta aspetti de-
licati per trattare i quali il formalismo finora introdotto non è 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; 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ò essere
vera, mentre la precedente falsa).
Nella frase “se uno ha un amico, è fortunato” ci sono due tipi di “uno”,
il primo “uno” è il soggetto, presente tacitamente anche come soggetto di
“è fortunato”, e il secondo è l’“un” di “ha un amico”5 . Il primo “uno”
significa “chi”, nel senso di “chiunque”, il secondo significa “qualche”. La
stessa parola “uno”, e le corrispondenti variabili x e y possono cioè avere sia
un senso universale che uno particolare.
Anche se il senso della frase è ovvio, per chiarezza è meglio dire “chiunque
abbia qualche amico è 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à di costrutti linguistici disponi-
bili nelle lingue naturali ha la funzione di evitare possibili ambiguità in altre
frasi di non immediata decifrazione.
Un esempio di frase ambigua, se presa isolatamente, è “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.
L’uso delle variabili da sole non risolve le ambiguità, anzi le potrebbe
accrescere, se vengono a mancare le differenze di significato dei pronomi
specifici; in “se x ha y come amico, x è fortunato”, se y fosse presa in senso
universale, come la x, allora la frase significherebbe che chi è amico di tutti
è fortunato, che è discutibile, piuttosto è un santo.
Un altro esempio è il seguente: nelle due frasi di argomento aritmetico
e
5
Non c’è differenza tra “uno” e “un”; si potrebbe dire in entrambi i casi “una persona”,
ristabilendo l’uniformità.
15
un numero sommato al suo opposto dà 0
“un numero” è da intendersi in modo diverso; nel primo caso l’unico numero
con quella proprietà è 1, e la frase potrebbe essere una sua descrizione estra-
polata dal contesto, o un indovinello: “quale è . . . ?”; nel secondo caso “un
numero” significa “qualunque numero”.
La differenza non si coglie neanche se si formalizza, la prima frase con
x · x = 1 e la seconda con x + (−x) = 0; per capire la differenza si deve
pensare a quali specifici numeri soddisfano le formule, −1 e 1 in un caso,
tutti i numeri nell’altro. Nella terminologia usuale, la prima è un’equazione,
la seconda un’identità.
Le variabili da sole non rendono la duttilità delle parole che indicano se
si parla di uno, qualcuno o tutti.
Si introducono due simboli che si chiamano quantificatori,
∀ quantificatore universale
e
∃ quantificatore esistenziale
e questi segni si premettono alle formule con variabili per segnalare che, nel
loro raggio d’azione determinato dalle parentesi, le variabili stesse devono
essere intese nel senso di “tutti” ovvero nel senso di “qualcuno”.
La frase “uno che ha un amico è fortunato” diventa, schematizzata,
∀x(∃yA(x, y) → F (x)).
16
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”6 ;
invece ∃x . . . è compatibile col fatto che tutti soddisfino la condizione; è
solo un’affermazione più debole: se si sa che tutti i gamberi sono rossi, si
può affermare ∃x(gambero(x) ∧ rosso(x)) come vero; naturalmente cosı̀ non
si afferma che tutti i gamberi sono rossi (che sarebbe ∀x(gambero(x) →
rosso(x))) ma che esiste un gambero rosso.
In molte frasi i quantificatori apparentemente non si riferiscono a tutti gli
elementi dell’universo di discorso ma a parti più 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 quantificatori 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 quantificatore ∀x è letto “per tutte le persone”, cioè con la x che varia
su tutto l’universo del discorso (la specie umana): “per ogni x, se x è tedesco
allora x è biondo.
Questa forma è corretta grazie alle proprietà del condizionale, che vedre-
mo meglio in seguito. Se T (x) → B(x) è vero per tutte le persone, allora
ogni tedesco rende vero il condizionale, l’antecedente e quindi vero il con-
seguente, ed è vero che tutti i tedeschi sono biondi; se viceversa è vero che
tutti i tedeschi sono biondi, anche l’enunciato di sopra che si riferisce con
∀x non ai tedeschi ma a tutte le persone è vero: se uno è tedesco, allora è
biondo e il condizionale è vero; se Giovanni è brutto ma non è tedesco, lo
si vorrà considerare un controesempio che falsifica l’affermazione? Non sem-
bra ragionevole; si assume che T (Giovanni) → B(Giovanni) sia vero, e cosı̀
T (x) → B(x) è vera per tutte le persone.
In pratica, gli aggettivi sono resi da predicati con l’ausilio del condizionale:
in “tutte le persone tedesche sono bionde” l’aggettivo “tedesco” diventa il
predicato “essere tedesco” e la frase “tutte le persone, se sono tedesche, sono
bionde”.
6
Da un compito in classe: “Se qualche triangolo isocele è equilatero, di conseguenza
qualche triangolo isocele non lo è”. La conclusione è vera, ma “di conseguenza” no.
17
“Tutti i P sono . . . ” e “qualche P è . . . ”, dove P delimita il campo di
variabilità del riferimento, si realizzano dunque introducendo un predicato
unario P e scrivendo rispettivamente ∀x(P (x) → . . .) e ∃x(P (x) ∧ . . .). Si
noti ovviamente la differenza nel caso del quantificatore esistenziale, dove !!!
la restrizione è realizzata con la congiunzione, che viene dalla traduzione di
“esiste uno che è P e che . . . ”.
2.5 Esempi
2.5.1 dal linguaggio naturale
1. “Maria ama il padre di Giovanni” è formalizzata da
A(m, f (g))
letta
18
4. “Maria ama i figli di Giovanni”, che significa che Maria ama tutti i figli
di Giovanni, si formalizza con
e non con ∀x(A(m, x) ∧ F (x, g)); questa significa che tutti sono figli di
Giovanni, e che Maria li ama tutti; il che implica che Giovanni sia Dio,
e forse Maria la Madonna.
Per la formalizzazione corretta, può essere utile vedere nella frase un ca-
so di quantificatore ristretto, ai figli di Giovanni, leggendola al passivo:
“Tutti i figli di Giovanni sono amati da Maria”.
19
7. “Ogni rosa ha qualche spina”.
la frase è la stessa di prima, perché 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:
20
9. “Un regalo conquista un amico”.
Cominciamo a riformulare la frase spogliandola di significati metaforici
(un regalo è una cosa e non conquista nulla). Si intende ovviamente
dire che chi fa un regalo acquista un amico, e più dettagliatamente
che se una persona fa un regalo a un’altra 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”.
La dizione “tutti e soli” è strettamente legata a “se e solo se”. “Tutti !!!
gli studenti in corso sono eligibili” è formalizzata da
21
∀x(S(x) ∧ C(x) → E(x)),
22
∀x∀y∃z(z = x + y)
2. “La relazione R è riflessiva”, che significa che ogni elemento sta nella
relazione R con se stesso, si scrive
∀xR(x, x),
23
3. “La relazione R è simmetrica”, che significa che se la relazione R sus-
siste tra uno primo e un secondo elemento allora sussiste anche tra il
secondo e il primo, si scrive
5. Come non esiste un quantificatore sulle coppie, cosı̀ non esiste un quan-
tificatore che esprima “esiste esattamente un . . . ”, o “esiste un so-
lo . . . ”. Tale locuzione si realizza mediante l’uguaglianza come nel
seguente esempio.
La frase “dati due numeri, esiste un solo numero che è la loro somma”
si formalizza come
8. Non si riesce invece con nessun giro di formule del formalismo che
stiamo usando ad esprimere “la maggior parte degli elementi . . . ” o
“quasi tutti . . . ”.
10. La frase “dati due numeri diversi tra loro, esiste un numero che è
propriamente compreso tra i due numeri dati” si rappresenta con
24
11. La frase “ogni numero positivo ha una radice quadrata”, vera nei reali,
falsa nei razionali, si rappresenta come
12. “un numero è divisibile per un altro numero se e solo se esiste un terzo
numero che moltiplicato per il secondo dà il primo”.
Scriviamo x|y per “y è divisibile per x” o “x divide y” e usiamo il solito
segno di moltiplicazione:
25
15. “2 è l’unico numero primo pari”.
“Numero pari” significa “divisibile per 2”. La frase si può trasformare
in “2 è primo e pari e se un numero è primo e pari allora è uguale a 2”.
Quindi
26
2.6 Esercizi
1. Formalizzare frasi del linguaggio comune come le seguenti e altre a
piacere:
Il mio cellulare è migliore del tuo ma costa di più.
Chi è senza peccato scagli la prima pietra.
Senza soldi si vive male.
Senza amici si è soli.
I supermercati abbondano di ogni ben di Dio.
Maria ama il figlio di Giovanni.
Il 33,3% circa degli italiani possiede due macchine.
Chi ha superato solo una delle due prove di esonero, all’esame porta
solo la parte non superata.
Chi lascia la via vecchia per la nuova sa quel che lascia ma non sa quel
che trova.
27
3 Logica proposizionale
La logica proposizionale studia quello che si può dire sulle frasi considerando
solo la struttura determinata dai connettivi; si considerano cioè frasi formate
da frasi più semplici per mezzo dei connettivi.
Introdotti i simboli per i connettivi, occorre dare le loro precise regole
d’uso - alcune delle quali abbiamo già anticipato negli esempi - sia dal punto
di vista sintattico (dove scriviamo ad esempio ¬ per formare la negazione
di un’asserzione?), sia dal punto di vista semantico (come interpretiamo il
significato delle frasi composte, in funzione delle frasi componenti?).
3.1 Sintassi
La necessità di fornire regole rigide per la formazione delle frasi è data dalla
volontà di evitare le ambiguità possibili nelle lingue naturali. Alcune am-
biguità si riferiscono proprio alla distribuzione dei connettivi; supponiamo
ad esempio di leggere un problema rappresentato dall’insieme delle seguenti
disequazioni:
x2 + 4x + 3 < 0 e x < −3
oppure si ha che
x > −2;
si può anche intendere che si chieda quali siano i valori per cui si ha
x2 + 4x + 3 < 0
ma ristretti ad essere
28
Nel primo caso la risposta è (−2, +∞), nel secondo caso è (−2, −1).
Naturalmente l’ambiguità, che nel parlato si risolve con le pause, nella
scrittura matematica si risolve con le parentesi, il primo caso essendo
e il secondo caso
29
(cioè non ulteriormente analizzata e scomposta nel contesto della trattazio-
ne).
Per il resto della definizione, occorre parlare di proposizioni qualunque e
della loro composizione; è quindi necessario avere delle variabili che variano
sull’insieme delle proposizioni, e che si chiamano metavariabili 4 ; useremo le
lettere A, B, . . .
Si danno quindi le seguenti clausole:
30
4. ((p) → (q)) è una proposizione perché ottenuta dalle proposizioni ato-
miche (p) e (q) con una applicazione della clausola induttiva relativa a
→.
5. (¬((p) → (q))) è una proposizione perché ottenuta dalle proposizioni
atomiche (p) e (q) con una prima applicazione della clausola induttiva
relativa a → e una seconda applicazione della clausola relativa a ¬.
6. ((p) non è una proposizione perché:
In ogni proposizione il numero di parentesi sinistre è uguale al numero
di parentesi destre.
7. (pq) non è una proposizione perché non è atomica e non contiene nessun
connettivo.
Se una proposizione è della forma (¬A) o della forma (A • B), ¬ e • sono
rispettivamente il suo connettivo principale, e A e B le sottoproposizioni
immediate.
Si dice che (¬A) è una negazione, citando il suo connettivo principale, la
negazione di A - e si legge “non A”; si dice che (A ∧ B) è una congiunzione,
la congiunzione di A e B - e si legge “A e B”; A e B sono le proposizioni
congiunte in (A∧B); analogamente per la disgiunzione7 (A∨B) - che si legge
“A o B”; (A⊕B) si può leggere “o A o B”; (A → B) si dice un condizionale -
e si legge di solito “se A allora B”; A si chiama antecedente, e B conseguente;
(A ↔ B) si dice bicondizionale - e si legge “A se e solo se B”.
31
e antisimmetrica11 . Gli elementi dell’albero si chiamano nodi . Se x y, si
dice che y è un successore, o un discendente di x. Esiste un nodo minimo
r tale che r x per ogni nodo di X, e si chiama radice. I nodi a tali che
non esiste b 6= a per cui a b si chiamano foglie12 . Ogni nodo che non sia
una foglia ha uno o al massimo due successori immediati13 , dove si dice che
b è un successore immediato di a se a b, a 6= b e non esiste un c tale che
a c b, con c 6= a e c 6= b.
•
.&
• •
.& ↓
• • •
↓
•
32
• ogni nodo ha nessuno, uno o due successori immediati a seconda che
la proposizione etichetta del nodo sia atomica, o della forma (¬A), o
della forma (A • B). Nel secondo caso il successore è etichettato con
A, nel terzo caso i due successori sono etichettati rispettivamente con
A e con B.
33
il contatore, inizializzato a 0, torni a 0 solo alla fine della parola. Perché poi !!!
la parola sia una proposizione bisogna che gli altri simboli siano distribuiti
in mezzo alle parentesi in modo corretto.
Ad esempio per
0 1 2 3 2 3 4 3 2 1 2 3 2 1 0.
0 1 2 1 2 3 2 1 0 1 2 1 0
((p) ∧ (¬(q))),
(¬(p))
34
((p) ∧ (¬(q))).
Il contatore applicato a questa assume i valori
0 1 2 1 2 3 2 1 0
e applicato a
(p) ∧ (¬(q))
i valori
0 1 0 1 2 1 0
tornando la prima volta a 0 alla fine di (p), individuando a destra il connet-
tivo ∧, che lega (p) e (¬(q)). In questo modo si arriva a costruire l’albero
sintattico.
Invece
(((p) ∧ (q(¬))) ∨ (¬(p)))
non è una proposizione, nonostante il contatore si comporti come nel caso
precedente (esercizio).
Oltre ai casi che si presentano nel precedente esempio, un altro possibile
è il seguente. Data la parola
(¬((p) → ((p) ⊕ (q))))
il contatore assume i valori
0 1 2 3 2 3 4 3 4 3 2 1 0
ma se si tolgono le parentesi esterne e si riapplica il contatore, esso torna a 0
solo alla fine. In questo caso il connettivo, che deve esserci perché è ovvio che
non si tratta di formula atomica, non può che essere la negazione, all’inizio.
Infatti in questo caso c’è. Se non ci fosse, la parola sarebbe della forma ((A)),
che non è una proposizione.
Alcune parentesi sono sovrabbondanti, ma solo quelle della coppia più
esterna e quelle nelle proposizioni atomiche, dove sono usate sia per unifor-
mità sia per sottolineare la differenza tra una lettera come elemento dell’al-
fabeto e la lettera come proposizione17 . Ma ora per comodità di scrittura e
17
Tra simboli dell’alfabeto e parole c’è una differenza di tipo logico. Nei linguaggi
naturali si presentano alcune eccezioni, ma solo le vocali “a”, “e”, “i”, “o” sono usate
come parole; tuttavia è raro che si parli dell’alfabeto; quando lo si fa, si scrive appunto
“e” e non e.
35
lettura è meglio ridurre il numero di parentesi con le seguenti convenzioni:
non si scrivono le parentesi intorno alle lettere nelle proposizioni atomiche,
non si scrivono le parentesi più esterne, e si eliminano alcune coppie di pa-
rentesi intorno ad alcune sottoproposizioni, con un criterio sufficiente a farle
ripristinare in modo corretto e univoco che è formulato nel seguente modo.
Si ordinano per priorità i connettivi secondo le seguente graduatoria:
¬
∧
∨
⊕
→
↔
Data quindi una parola le cui parentesi non rispettano le condizioni per
essere una proposizione (sı̀ però la parità, il fatto che il numero di parentesi
sinistre sia uguale a quello delle parentesi destre, il fatto che in ogni punto
che non sia l’ultimo il numero di sinistre è maggiore o uguale di quello delle
destre, e tutte le proprietà che si mantengono quando si eliminano alcune
coppie di parentesi corrispondenti) le parentesi si rimettono secondo questo
procedimento: prima si rimettono le parentesi a sinistra e a destra delle
lettere18 ; quindi si prende in esame la negazione, se occorre nella parola; si
esamina un’occorrenza della negazione che non abbia immediatamente alla
sua destra un’altra negazione19 . Alla sua destra c’è una parentesi sinistra -
altrimenti si può dire che quella parola non proviene dalla eliminazione di
coppie di parentesi da una genuina proposizione (brevemente, che non è una
proposizione). Sia σ la parola alla sua destra che termina con la parentesi
destra che chiude la parentesi sinistra. Per trovare la parentesi destra che
“chiude” la parentesi sinistra si usa di nuovo il contatore in modo ovvio. !!!
Allora si rimette una parentesi sinistra alla sinistra della negazione, se non
18
Questo praticamente si può fare anche alla fine, per non appesantire la scrittura,
ma si faccia attenzione che in questo caso, nel procedimento sotto descritto, adiacenti ai
connettivi si possono trovare anche lettere, oltre a parole che sono delimitate da parentesi.
In particolare la negazione che non abbia alla sua destra un’altra negazione può avere o
una parentesi, e si procede come nel testo, oppure una lettera p e allora si introducono le
parentesi (¬p) se non ci sono già. Si veda oltre l’esempio.
19
A parte questa condizione, l’ordine in cui si lavora sulle eventuali diverse occorrenze
della negazione, se ce ne è più di una, non è rilevante; lo si può anche (immaginare di)
fare in simultanea. Un calcolatore lo può fare in parallelo. Lo stesso vale per gli altri
connettivi.
36
c’è già, e una parentesi destra a destra di σ, se non c’è già, ottenendo (¬σ);
si ripete per ogni occorrenza di ¬, quindi si passa ai connettivi binari e per
ciascuno di essi, indicato con •, nell’ordine di priorità, si considerano le più
corte sottoparole σ e τ a sinistra e a destra di • che sono chiuse tra due
parentesi sinistre e destre, e si introduce una parentesi ( a sinistra di σ e ) a
destra di τ , se non ci sono già, ottenendo (σ • τ ), e cosı̀ via.
Per occorrenze dello stesso connettivo si conviene l’associazione a destra,
cioè ad esempio con A → B → C si intende A → (B → C).
Esempi
Data p ∧ ¬q ∨ ¬p, la reintroduzione delle parentesi avviene attraverso
questa successione di passi:
1 p → ¬(q ∧ ¬(¬r))
2 p → ¬(q ∧ (¬(¬r)))
37
3 p → (¬(q ∧ (¬(¬r))))
4 (p → (¬(q ∧ (¬(¬r)))))
(esercizio, e si confrontino i due alberi sintattici), per cui le due parentesi la-
sciate in p → ¬(q ∧¬¬r) sono essenziali, se si vuole parlare della proposizione !!!
((p) → (¬((q) ∧ (¬(¬(r))))) .
p ∧ ¬q ∨ ¬p
.&
p ∧ ¬q ¬p
.& ↓
p ¬q p
↓
q.
38
Le etichette sono diverse, ma l’albero è lo stesso della proposizione analizzata
in precedenza.
Dal prossimo paragrafo, chiameremo “proposizioni” anche le parole otte-
nute da proposizioni per eliminazione di parentesi.
3.1.3 Esercizi
1. Discutere se le seguenti parole sono proposizioni:
(p ∧ (q)
(p)) ∧ q)
((p) ∧ q)
((p) ∧ (¬(q)))
((p) → ∧)
p
((p)).
39
In ogni proposizione la sua lunghezza (come lista) è maggiore della sua
altezza.
40
7. Definire le proposizioni nel seguente modo: Ogni lettera p è una pro-
posizione; se A è una proposizione, anche ¬(A) è una proposizione; se
• è un connettivo binario e A e B sono proposizioni, anche (A) • (B) è
una proposizione.
Definire il nuovo procedimento per decidere se una parola è una pro-
posizione e costruire l’albero sintattico.
Discutere eventuali vantaggi e svantaggi della definizione alternativa.
3.2 Semantica
La semantica ha a che fare con le interpretazioni, grazie alle quali le proposi-
zioni, con la sostituzione di frasi alle lettere, vengono ad assumere un senso
(che a noi non interessa, lo bypassiamo) e diventano vere o false. Tale attri-
buzione finale di valori di verità è per noi l’operazione di interpretazione, che
viene studiata in astratto per vedere se abbia proprietà generali, indipendenti
dalle interpretazioni concrete.
I valori di verità saranno rappresentati dall’insieme20 {0, 1}. Ci si colloca
con tale scelta nell’ottica della logica classica a due valori.
Nell’insieme {0, 1} è necessario introdurre un minimo di struttura21 : la
più semplice consiste in convenire che 0 < 1 e usare la sottrazione come se 0
e 1 fossero numeri interi, con | x | a indicare il valore assoluto.
Un’interpretazione è una funzione22 i : L −→ {0, 1}; una valutazione è
una funzione v : P −→ {0, 1} che soddisfa le seguenti condizioni23 :
v((¬A)) = 1 − v(A)
v((A ∧ B)) = min{v(A), v(B)}
v((A ∨ B)) = max{v(A), v(B)}
v((A ⊕ B)) = | v(A) − v(B) |
v((A → B)) = max{1 − v(A), v(B)}
v((A ↔ B)) = 1− | v(A) − v(B) | .
20
Altre notazioni per i valori di verità sono {V, F }, {T, F }, {>, ⊥}, {True, False}.
21
Vedremo in seguito che si può considerare un’algebra di Boole.
22
La notazione con la freccia sarà spiegata in seguito; per ora si intenda che a ogni lettera
corrisponde un valore di verità, e per la valutazione v che a ogni proposizione corrisponde
o 0 o 1.
23
Si noti che in v((¬A)) e in altre espressioni analoghe ci sono due tipi di parentesi, che
andrebbero tipograficamente distinte; quelle interne sono le parentesi della proposizione,
quelle esterne servono per la notazione funzionale v(x).
41
In alternativa, si considerano 0 e 1 come interi modulo24 2, {0, 1} = Z2 , e si
scrivono le condizioni:
v((¬A)) = 1 + v(A)
v((A ∧ B)) = v(A) · v(B)
v((A ∨ B)) = v(A) + v(B) + v(A) · v(B)
v((A ⊕ B)) = v(A) + v(B)
v((A → B)) = 1 + v(A) · (1 + v(B))
v((A ↔ B)) = 1 + (v(A) + v(B)).
A ¬A
0 1
1 0
la tavola di verità della congiunzione:
A B A∧B
0 0 0
0 1 0
1 0 0
1 1 1
24
Per chi non sa cosa significa, sarà spiegato in seguito, l’importante è che 1 + 1 = 0.
42
la tavola di verità della disgiunzione:
A B A∨B
0 0 0
0 1 1
1 0 1
1 1 1
la tavola di verità della disgiunzione esclusiva:
A B A⊕B
0 0 0
0 1 1
1 0 1
1 1 0
la tavola di verità del condizionale:
A B A→B
0 0 1
0 1 1
1 0 0
1 1 1
e la tavola di verità del bicondizionale:
A B A↔B
0 0 1
0 1 0
1 0 0
1 1 1
43
Se A è p ∧ ¬p → q:
p q ¬p p ∧ ¬p p ∧ ¬p → q
0 0 1 0 1
0 1 1 0 1
1 0 0 0 1
1 1 0 0 1
Se A è p ∨ r → ¬p ∧ (q → r):
p q r ¬p q → r ¬p ∧ (q → r) p ∨ r A
0 0 0 1 1 1 0 1
0 0 1 1 1 1 1 1
0 1 0 1 0 0 0 1
0 1 1 1 1 1 1 1
1 0 0 0 1 0 1 0
1 0 1 0 1 0 1 0
1 1 0 0 0 0 1 0
1 1 1 0 1 0 1 0
3.2.2 Esercizi
1. Costruire la tavola di verità delle proposizioni:
(p → p) → p
p → (p → p)
p∨q →p∧q
44
p∨q∧r →p∧r∨s
(p ∨ q) ∧ r → p ∧ (r ∨ s)
p → (q → p).
2. Spiegare quale è la disgiunzione usata nella programmazione, in consi-
derazione del fatto che ivi si adotta la valutazione pigra: “quando vie-
ne valutata una disgiunzione, e la prima condizione è vera, la seconda
condizione non viene esaminata”25 .
3. Trovare le tavole di verità corrispondenti a “a meno che”, “anche se”.
4. Scrivere la tavola di verità per le particelle logiche “né . . . né” e “non
(è vero che) sia . . . sia . . . ”.
5. Costruire la tavola di verità per “se . . . allora . . . , altrimenti . . . ”.
Avvertenza. Si faccia attenzione che il costrutto if . . . then nei lin-
guaggi di programmazione è usato piuttosto come ↔; se lo statement
è falso l’istruzione non viene eseguita: ad esempio “se si esegue
45
Si dice che B è conseguenza logica di A, o che A implica B, e si scrive
A |= B
A |= B se e solo se |= A → B.
A ≡ B se e solo se |= A ↔ B.
27
Si veda fra due pagine per la notazione.
46
Leggi logiche notevoli 1
47
Per verificare queste leggi, dove A, B, . . . sono qualunque, si devono pri-
ma verificare le stesse nel caso particolare che A, B, . . . siano atomiche (ad
esempio p → p per la legge dell’identità), e poi sfruttare il fatto che se A[p]
è una tautologia e B è qualunque, allora anche il risultato della sostituzione
di B a p in A è una tautologia (vedi esercizi).
Per le leggi che nella tabella sono scritte come condizionali e non bicondi-
zionali, si vedrà in seguito che l’implicazione inversa in generale non sussiste
(salvo alcuni casi, ad esempio per l’inverso della riduzione all’assurdo debole
¬A → (A → ¬A), che rientra nell’affermazione del conseguente).
L’associatività della congiunzione giustifica che si possa scrivere senza
ambiguità, indipendentemente dalle convenzioni sulle parentesi, A ∧ B ∧ C
per (indifferentemente) A ∧ (B ∧ C) o (A ∧ B) ∧ C, o in generale A1 ∧ . . . ∧ An
(e lo stesso per la disgiunzione). A ∧ (B ∧ C) e (A ∧ B) ∧ C sono diverse
(si disegni il loro albero sintattico) ma si dice che sono uguali a meno di
equivalenza logica.
A → B ↔ ¬A ∨ B
(A ↔ B) ↔ (A → B) ∧ (B → A)
A ⊕ B ↔ (A ∧ ¬B) ∨ (B ∧ ¬A)
A ⊕ B ↔ (A ∨ B) ∧ ¬(A ∧ B).
Si noti che le due leggi per ⊕ forniscono un esempio di come una particella
logica possa essere espressa con diversi giri di frase equivalenti; queste equi-
valenze in genere mostrano cosa significa che frasi diverse vogliono dire la
stessa cosa.
Per mezzo di esse, dalle leggi elencate sopra se ne derivano altre; ad
esempio dal modus ponens e dall’esportazione, con la prima, si ricava
48
A, A → B
,
B
il sillogismo disgiuntivo da
A, ¬A ∨ B
B
o da
¬A, A ∨ B
,
B
l’eliminazione della congiunzione da
A∧B A∧B
e
A B
e l’introduzione della disgiunzione da
A B
e
A∨B A∨B
e altre ancora possibili.
49
Un modo per riconoscere la sussistenza di A |= B è quello di inserire tra A
e B altre proposizioni legate tra loro dalla relazione di premesse-conclusione
di regole corrette.
(r → p ∨ q) ∧ r ∧ ¬p |= q
(r → p ∨ q) ∧ r ∧ ¬p
r →p∨q
r
¬p
p∨q
q
3.2.4 Esercizi
1. Verificare con le tavole di verità le precedenti leggi logiche.
2. Spiegare perché
50
6. Verificare che A → B ≡ ¬(A ∧ ¬B) (sia con le tavole, sia in base alla
definizione di interpretazione).
12. Verificare che la regola del sillogismo disgiuntivo è corretta anche con
⊕ al posto di ∨.
15. Verificare se A ⊕ (B ⊕ C) ≡ (A ⊕ B) ⊕ C.
18. Si consideri il problema del merging di due liste List1 e List2 in una
terza lista List3 (ad esempio nomi, in ordine alfabetico).
Una prima formulazione dell’algoritmo è la seguente: nello scorrere le
due liste, se List1 non è esaurita e List2 è esaurita oppure l’elemento
in considerazione di List1 precede il primo non ancora inserito di List2,
allora l’elemento di List1 è inserito in List3.
Un’altra formulazione potrebbe essere la seguente: il prossimo elemento
in List3 è preso da List1, ed è il primo elemento di List1 non ancora
inserito, quando List1 non è esaurita e List2 sı̀, oppure quando List1
non è esaurita e l’elemento in considerazione di List1 precede il primo
non ancora inserito di List2.
Usando lettere p, q, r per rappresentare rispettivamente “List1 non è
esaurita”, “List2 è esaurita” e “l’elemento di List1 precede quello di
51
List2”, scrivere le proposizioni corrispondenti alle due versioni delle
condizioni (che portano entrambe a mettere in List3 l’elemento in esame
di List1), e discutere se siano o no equivalenti, in base a quali leggi.
Si noti che ovviamente nella prima versione c’è un’ambiguità dovuta
alla presenza di congiunzione e disgiunzione; discutere le due versioni
e scegliere quella giusta.
22. “La storia insegna che non si impara niente dalla storia”. Vero o falso?
Perché?
Suggerimento. Riduzione all’assurdo debole.
3.3 Sull’implicazione
Abbiamo distinto il condizionale, che è un connettivo, o il nome di una pro-
posizione della forma A → B, dall’implicazione, che è una relazione tra
proposizioni, e non si scrive A → B ma |= A → B. “A implica B” significa
“il condizionale A → B è una tautologia”.
52
La terminologia è qualche volta ambigua perché per leggere ad esempio
una regola come il sillogismo disgiuntivo si trova anche detto “se A e ¬A ∨ B
allora B”, in alternativa a “A e ¬A ∨ B implicano B”. Se si è in un contesto
deduttivo si capisce forse che si sta parlando dell’implicazione e non leggendo
semplicemente la forma di una proposizione. L’importante ad ogni modo non
è la terminologia quanto capire la differenza.
Il soggetto di “A implica B” non è A ma A → B. Qualche volta, in
analogia al caso dell’equivalenza, si introduce un simbolo speciale per l’im-
plicazione, che assomigli a un connettivo, ad esempio A ⇒ B; il nostro
simbolo è |=.
Si dice ad esempio “il condizionale p → p ∨ q ha cinque simboli”, non
“l’implicazione p → p ∨ q ha cinque simboli”, perché l’implicazione è un
fatto che sussiste o no, e un fatto non è formato da simboli. Al massimo è
un predicato, sotto cui cadono alcuni condizionali, come in “il condizionale
p → p ∨ q è un’implicazione”. Oppure si può dire che vale l’implicazione
p → p ∨ q, ma non si parlerà ad esempio dell’implicazione p → q ∨ r, che non
è una tautologia.
Siccome purtroppo la terminologia non è uniforme, e si possono trovare
usate entrambe le parole, bisogna fare attenzione al contesto.
Nella tradizione logica, il condizionale era anche chiamato “implicazione mate-
riale”, per distinguere la relazione di conseguenza da altre forme di implicazione,
o da altri sensi del costrutto “se . . . allora”.
In effetti, il significato di “se . . . allora” è polimorfo:
• significato definitorio:
Se è scapolo, allora non è sposato.
• significato causale:
Se si immerge una cartina di tornasole e diventa rossa, allora il liquido è un
acido.
• significato materiale:
Se la Terra vola, allora la Terra è piatta.
53
È difficile trovare qualcosa di positivo in comune tra queste diverse accezioni del
“se . . . allora”. In particolare il caso che ha sollevato maggiori discussioni è l’ultimo,
come considerare il condizionale se antecedente e conseguente sono entrambe false.
Una cosa in comune ce l’hanno, ed è che in tutte le accezioni l’unico modo
per dichiarare il condizionale falso è quello di riscontrare antecedente vera e con-
seguente falsa, anche per il significato materiale: “se la Terra è rotonda, allora il
Sole è freddo” si considera falso.
Allora il significato parziale comune si può esprimere riempiendo la tavola di
verità con i valori che sono di fatto quelli di ¬(A ∧ ¬B): !!!
Con questa scelta per la tavola di → si giustifica la regola del modus ponens, che
è quello che interessa, per l’uso che se ne fa nei discorsi con “se . . . allora”.
Il motivo per cui il condizionale è difficile e controverso è che non gli si può
associare una rappresentazione mentale immediata di quello che descrive. Quando
si ascolta A ∧ B, le rappresentazioni nella mente del fatto descritto da A e di quello
descritto da B vengono fuse in un’unica rappresentazione, del fatto descritto da A∧
B, affiancandole o integrandole; anche con A ∨ B le due rappresentazioni possono
essere compresenti, con l’attenzione che si sposta dall’una all’altra e viceversa,
come se si guardassero alternativamente due quadri vicini. Con il condizionale non
è possibile avere una rappresentazione del fatto descritto da A → B, combinando
quelle relative ad A e B. Non esiste una rappresentazione unica della falsità di
A. Vengono meno perciò gli ausili dell’immaginazione e della sensibilità; l’unico
modo per dominare il condizionale è quello di imparare bene fino a interiorizzarle
54
le sue condizioni d’uso, sia il calcolo dei valori di verità sia le leggi e le regole che
lo concernono.
La definizione del condizionale tuttavia non è solo adeguata per svolgere le
dimostrazioni, grazie alla giustificazione del modus ponens, ma è anche comoda
(nella scelta di dare il valore vero quando l’antecedente è falsa) per la costruzione
generale dei linguaggi formali, e la trattazione dei quantificatori universali ristretti,
come abbiamo visto.
55
4 Insiemi e algebre di Boole
Esempi di proposizioni a cui si applicano utilmente le nozioni e le tecniche
logiche sono le formule matematiche; consideriamo dapprima formule senza
quantificatori, che sono quelle a cui gli studenti sono abituati, anzi le uniche
che sono abituati a chiamare formule. In esse compaiono le variabili x, y, . . .
Le variabili che occorrono in una formula, ad esempio x in 1 < x <
3, si chiamano anche variabili individuali, perchè prendono come valori gli
elementi dell’universo del discorso. In generale, un’asserzione in cui compare
la variabile x sarà indicata con p(x).
Una formula del genere, ad esempio 1 < x < 3, non si può dire né vera
né falsa, in quanto non è precisato se la variabile della essere intesa in senso
universale o particolare. Non la si riesce neanche a leggere in italiano: “un
numero compreso tra 1 e 3”? “i numeri compresi tra 1 e 3”? ma manca il
verbo. Non si può leggere “un numero è compreso tra 1 e 3” perché allora
come leggere 3 < x < 1? Di fronte a questa si dice “non esiste un numero
maggiore di 3 e minore di 1”, ma allora si introducono i quantificatori.
Di solito la si legge tuttavia come una proposizione che afferma qualcosa
a proposito di x, dove x denota un elemento non precisato dell’universo: “x
è compreso tra 1 e 3”; è come se fosse presente un numero incappucciato, che
dice “io sono compreso tra 1 e 3”. Se si toglie il cappuccio ed appare 2 ha
detto il vero, se appare 0, o 3 o 5 ha detto il falso.
Supponiamo che l’universo sia costituito dai numeri naturali. Se il nu-
mero incappucciato continua dicendo “quindi io sono il numero 2”, bisogna
ammettere che l’inferenza è corretta, anche senza togliergli il cappuccio. La
formula 1 < x < 3 è soddisfatta dal solo elemento 2, e possiamo affermare
1 < x < 3 → x = 2.
Se invece l’universo di discorso, che dalla formula in sé non si evince, è !!!
quello
√ dei numeri reali, la formula è soddisfatta anche da 1.1, da 1.9, da 2.5,
da 2 e da tutti gli infiniti elementi dell’intervallo (1, 3).
Le formule p(x) senza quantificatori sono usate in matematica per studiare
da quali elementi sono soddisfatte: innanzi tutto se ∀xp(x) è vero o falso,
e se ∃xp(x) è vero o falso; ma soprattutto, quando ∃xp(x) è vero, quale è
l’insieme dei valori che soddisfano p(x).
La formula 1 < x < 3 d’altra parte è un’abbreviazione per 1 < x ∧ x < 3;
perché un valore di x la soddisfi, questo valore deve soddisfare sia 1 < x sia
x < 3.
Abbiamo dunque formule che assomigliano a quelle le linguaggio propo-
56
sizionale, in quanto sono composizione mediante connettivi di formule atom-
iche, solo che queste ultime invece di lettere sono espressioni che contengono
anche x. Si potrebbe dire che si tratta di un linguaggio proposizionale ap-
plicato. Ogni volta che si dà a x un valore, nell’universo fissato, è come
assegnare il valore vero o falso alle componenti atomiche. Parleremo per
semplicità anche in questo caso per ora di proposizioni, per non complicare
la terminologia, quando applicheremo risultati della logica proposizionale,
oppure le chiameremo formule, in analogia alle formule matematiche.
57
Se U è l’insieme dei numeri naturali e p(x) è la condizione “x è divisibile
per 2”, l’insieme di verità di p(x) è l’insieme dei numeri pari, e tale insieme
è definito dalla condizione “x è divisibile per 2”.
58
X ∩ Y = {x ∈ U | x ∈ X ∧ x ∈ Y }.
X ∪ Y = {x ∈ U | x ∈ X ∨ x ∈ Y }
X ∩ Y ⊆ X3
X ∩Y ⊆Y
se Z ⊆ X e Z ⊆ Y allora Z ⊆ X ∩ Y
X ⊆X ∪Y
Y ⊆X ∪Y
se Y ⊆ X e Z ⊆ X allora Y ∪ Z ⊆ X.
59
Nella proprietà di minimalità dell’unione troviamo la spiegazione dello
scambio di “e” ed “o” osservato in precedenza in certe frasi. Se si indica
con Y l’insieme delle mele, con Z l’insieme delle pere, e con X l’insieme dei
frutti, allora la frase “mele e pere sono frutti”, intesa come “le mele sono
frutti e le pere sono frutti” significa che Y ⊆ X ∧ Z ⊆ X, ma questa implica
Y ∪ Z ⊆ X, cioè che “mele o pere sono frutti”.
Viceversa, se Y ∪Z ⊆ X, allora siccome Y ⊆ Y ∪Z si ha, per la transitività
di ⊆ - vedi oltre - che Y ⊆ X e analogamente Z ⊆ X, cioè “mele o pere sono
frutti” implica a sua volta “le mele sono frutti e le pere sono frutti”.
V¬p(x) = ∼ Vp(x)
Vp(x)∧q(x) = Vp(x) ∩ Vq(x)
Vp(x)∨q(x) = Vp(x) ∪ Vq(x) .
In particolare si ha Vx∈X = X.
Si può osservare allora che le operazioni non sono tutte indipendenti, ad
esempio:
X \ Y = X ∩ (∼ Y ).
Infatti
X \Y = {x | x ∈ X ∧ x 6∈ Y }
= {x | x ∈ X ∧ x ∈∼ Y }
= {x | x ∈ X ∩ (∼ Y )}
= X ∩ (∼ Y ).
Ma le mutue relazioni delle operazioni le vedremo meglio più avanti.
60
∅ = {x ∈ U |p(x) ∧ ¬p(x)},
o
∅ = {x ∈ U |x 6= x}.
Se si denotasse questo insieme ∅U e si definisse ∅V = {x ∈ V | x 6= x} si
avrebbe ∅U = ∅V perché i due insiemi hanno gli stessi elementi, nessuno per
entrambi.
Caratteristica dell’insieme vuoto è che per ogni x, in qualunque U , x 6∈ ∅.
Due insiemi X e Y la cui intersezione sia vuota, X ∩ Y = ∅, cioè non
abbiano alcun elemento in comune, si dicono disgiunti .
61
Esistono altre leggi che riguardano la relazione ⊆ (alcune già menzionate),
come
22 X⊆X
23 ∅⊆X
24 X⊆U
25 X ⊆X ∪Y
26 X ∩Y ⊆X
e proprietà come
27 se X ⊆ Y e Y ⊆ Z allora X ⊆ Z
28 X ⊆ Y se e solo se X ∩ Y = X
29 X ⊆ Y se e solo se X ∪ Y = Y
30 X ⊆ Y se e solo se X ∩ (∼ Y ) = ∅
31 X ⊆ Y se e solo se ∼ X ∪ Y = U
32 se X ⊆ Y e X ⊆ Z allora X ⊆ (Y ∩ Z)
33 se Y ⊆ X e Z ⊆ X allora (Y ∪ Z) ⊆ X.
Esempi
3 X ∩ Y = Y ∩ X.
Dimostrazione Se x ∈ X ∩ Y , allora x ∈ X ∧ x ∈ Y ; ma per la
commutatività della congiunzione si ha allora x ∈ Y ∧ x ∈ X, quindi
x ∈ Y ∩ X. Il viceversa, partendo da x ∈ Y ∩ X, è analogo.
4 X ∪ Y = Y ∪ X.
Dimostrazione Se x ∈ X ∪ Y allora x ∈ X ∨ x ∈ Y . La conclusione
segue come sopra per la commutatività della disgiunzione. Oppure
usiamo la distinzione di casi: se x ∈ X, allora x ∈ Y ∨ x ∈ X per la
tautologia A → B ∨ A. Se x ∈ Y allora per la tautologia A → A ∨ B
62
si ha x ∈ Y ∨ x ∈ X. Quindi x ∈ X ∨ x ∈ Y → x ∈ Y ∨ x ∈ X e
X ∪ Y ⊆ Y ∪ X. Il viceversa è analogo.
5 X ∩ (Y ∪ Z) = (X ∩ Y ) ∪ (X ∩ Z).
Dimostrazione Mostriamo prima che X ∩ (Y ∪ Z) ⊆ (X ∩ Y ) ∪ (X ∩ Z).
Se x ∈ X ∩(Y ∪Z) allora x ∈ X e x ∈ Y ∪Z. Ci sono due casi: o x ∈ Y
o x ∈ Z. Nel primo caso, x ∈ X e x ∈ Y , quindi x ∈ X ∩ Y , e quindi
x ∈ (X ∩ Y ) ∪ (X ∩ Z) per la 25, che supponiamo dimostrata4 . Nel
secondo caso, x ∈ X e x ∈ Z, quindi x ∈ X ∩ Z e quindi x appartiene
a (X ∩ Y ) ∪ (X ∩ Z), per la 25 e la 4.
Si mostri ora nello stesso modo (esercizio) che (X ∩ Y ) ∪ (X ∩ Z) ⊆
X ∩ (Y ∪ Z), e l’uguaglianza è provata.
21 X ∪ ∅ = X.
Dimostrazione Se x ∈ X ∪ ∅, allora x ∈ X ∨ x ∈ ∅, ma x 6∈ ∅ quindi
per il sillogismo disgiuntivo x ∈ X. Il viceversa segue dalla 25.
24 X ⊆ U.
Dimostrazione x ∈ U → (x ∈ X → x ∈ U ) - quale legge logica
interviene?
23 ∅ ⊆ X.
Dimostrazione Per ogni x, x ∈ ∅ → x ∈ X è vera, qualunque sia X,
perché l’antecedente è falso.
17 X ∪ (∼ X) = U .
Dimostrazione Per ogni x, x ∈ X ∨ ¬(x ∈ X) è vera per la legge del
terzo escluso. Cosı̀ si dimostra ⊇, il viceversa è 24.
30 X ⊆ Y se e solo se X ∩ (∼ Y ) = ∅.
Dimostrazione Da sinistra a destra. Se x ∈ X allora x ∈ Y ; se ora
esistesse un x ∈ X ∩(∼ Y ) si avrebbe una contraddizione x ∈ Y e x ∈∼
Y . La dimostrazione è per assurdo, ma di questa forma particolare:
per dimostrare A → B si assume A ∧ ¬B. Da questa si deriva una
contradizione, quindi ¬(A ∧ ¬B), cioè A → B.
Il viceversa per esercizio.
4
La dimostrazione è implicita nella precedente dimostrazione di 4.
63
Come si vede dagli esempi, alcune proprietà delle operazioni sono di-
retta conseguenza delle omonime proprietà dei connettivi corrispondenti; dal
terzo esempio relativo alla 5 si vede anche che in dimostrazioni di questo
tipo fa comodo, per saltare qualche passaggio, fare appello ad altre delle
leggi elencate - più semplici, o intuitive o già dimostrate. Più in generale,
una volta dimostrate alcune delle suddette leggi in modo diretto, è possibile
derivare le altre in stile algebrico, usando quelle già dimostrate e le leggi
dell’uguaglianza.
Con leggi dell’uguaglianza si intendono le proprietà riflessiva, simmetrica
e transitiva di =, rappresentate dalle formule
x=x
x=y→y=x
x = y ∧ y = z → x = z,
e le proprietà di sostituzione, che sono di due tipi:
t = s → f (t) = f (s),
dove t ed s sono termini del linguaggio in uso, e f (x) un altro termine con-
tenente la x, e
t = s → (p(t) ↔ p(s)),
dove p(x) sta per una proposizione qualunque contenente x.
Queste leggi sono tacitamente usate nei passaggi di trasformazione di
formule algebriche, o di proposizioni di qualunque linguaggio che contenga
l’uguaglianza. I passaggi da un’uguaglianza ad un’altra presuppongono il
modus ponens: da t = s a f (t) = f (s) grazie a t = s → f (t) = f (s).
Nel caso delle leggi insiemistiche in esame le variabili sono X, Y, . . . invece
che x, y . . ., perché tali leggi non si riferiscono agli elementi ma ai sottoinsiemi.
Esempi
1. La 15 segue dalla 14 e dalla 11 con i passaggi
∼∅=U
∼ (∼ ∅) =∼ U
∅ =∼ U
∼ U = ∅.
64
2. La 17 segue dalla 16 e dalle 12, 14, 11, 4, nell’ordine, con i seguenti
passaggi
X ∩ (∼ X) = ∅
∼ (X ∩ (∼ X)) =∼ ∅
(∼ X) ∪ (∼ (∼ X)) = U
(∼ X) ∪ X = U
X ∪ (∼ X) = U .
X ∪ (∼ X) = U
U = X ∪ (∼ X)
X ∩ U = X ∩ (X ∪ (∼ X))
X ∩ U = (X ∩ X) ∪ (X ∩ (∼ X))
X ∩U =X ∪∅
X ∩ U = X.
Grazie alla validità delle leggi associative per unione e intersezione, queste
operazioni possono essere generalizzate a più di due insiemi.
Se A1 , . . . , An sono n sottoinsiemi di U , la loro unione è l’insieme i cui
elementi sono gli elementi di U che appartengono a qualche Ai , in simboli:
n
[
Ai = {x ∈ U | per qualche i, 1 ≤ i ≤ n, x ∈ Ai }
i=1
o anche
Sn S
i=1 Ai , o semplicemente Ai .
65
L’intersezione generalizzata degli n insiemi è l’insieme degli elementi che
appartengono a tutti gli Ai , in simboli:
n
\
Ai = {x ∈ U | per ogni i, 1 ≤ i ≤ n, x ∈ Ai }
i=1
o anche
Tn T
i=1 Ai , o semplicemente Ai .
Per queste operazioni generalizzate valgono molte delle leggi dell’unione
e intersezione, opportunamente riformulate, ad esempio le proprietà commu-
tativa, associativa e di assorbimento; valgono le leggi di De Morgan:
∼ ( ni=1 Ai ) = ni=1 (∼ Ai )
T S
e
∼ ( ni=1 Ai ) = ni=1 (∼ Ai ).
S T
n
\ n
\
( Ai ) ∪ B = (Ai ∪ B)
i=1 i=1
e
n
[ n
[
( Ai ) ∩ B = (Ai ∩ B).
i=1 i=1
66
4.2 Algebre di Boole
Indagando la reciproca derivabilità delle varie leggi, ci si accorge che tutte
(sia quelle elencate che altre, quelle che sono valide per ogni famiglia di
sottoinsiemi di un insieme) sono derivabili dalle seguenti:
67
2 X =X ∪X (esercizio)
20 X ∩∅=∅
X ∩ ∅ = X ∩ (X∩ ∼ X) per la 16
X ∩ ∅ = (X ∩ X)∩ ∼ X per la 5
X ∩ ∅ = X∩ ∼ X per la 1
X ∩∅=∅ per la 16.
19 X ∪U =U (esercizio).
36 Se X ∩ Y = ∅ e X ∪ Y = U allora X =∼ Y .
Dimostrazione
X =X ∩U per la 18
= X ∩ (Y ∪ ∼ Y ) per la 17
= (X ∩ Y ) ∪ (X∩ ∼ Y ) per la 7
= ∅ ∪ (X∩ ∼ Y ) per l0 ipotesi
= (Y ∩ ∼ Y ) ∪ (X∩ ∼ Y ) per la 16
= (Y ∪ X)∩ ∼ Y per la 7
= U∩ ∼ Y per l0 ipotesi
=∼ Y per la 18,
usando anche la 3.
11 X =∼∼ X
68
13 ∼ (X ∪ Y ) =∼ X∩ ∼ Y
(∼ X∩ ∼ Y ) ∪ (X ∪ Y ) = U
(∼ X∩ ∼ Y ) ∩ (X ∪ Y ) = ∅.
(∼ X∩ ∼ Y ) ∪ (X ∩ Y ) = (∼ X ∪ X ∪ Y ) ∩ (∼ Y ∪ X ∪ Y )
=U ∩U =U
(∼ X∩ ∼ Y ) ∩ (X ∪ Y ) = (∼ X∩ ∼ Y ∩ X) ∪ (∼ X∩ ∼ Y ∩ Y )
= ∅ ∪ ∅ = ∅.
37 X ∩ Y = X se e solo se X∩ ∼ Y = ∅
Dimostrazione
X =X ∩U per la 18
= X ∩ (Y ∪ ∼ Y ) per la 17
= (X ∩ Y ) ∪ (X∩ ∼ Y ) per la 5
quindi se X∩ ∼ Y = ∅ allora X = X ∩ Y .
Viceversa se X = X ∩ Y
U = ∼X ∪ X per la 17
= ∼ X ∪ (X ∩ Y )
= (∼ X ∪ X) ∩ (∼ X ∪ Y ) per la 6
= U ∩ (∼ X ∪ Y ) per la 17
= ∼X ∪ Y per la 18
Quindi ∅ = X∩ ∼ Y per la 13 e la 15 (esercizio).
69
9 X ∩ (X ∪ Y ) = X
X ∩ (X ∪ Y ) = (X ∩ X) ∪ (X ∩ Y ) = X ∪ (X ∩ Y )
X ∩ (X ∪ Y ) = X se e solo se X ∩ (∼ X∩ ∼ Y ) = ∅
ma X ∩ (∼ X∩ ∼ Y ) = (X ∩ ∼ X)∩ ∼ Y = ∅ ∩ ∼ Y = ∅, per
l’associatività, la commutatività e la 20.
4.2.1 Esercizi
1. Dimostrare
A ∩ (B ∪ (C \ A)) = A ∩ B
A ∩ B ∩ (A ∪ B) = A ∩ B
A ∪ (C ∩ (A ∪ B)) = A ∪ (C ∩ B)
(A \ B) ∪ (B ∩ A) = A
(A ∩ (B ∪ C)) ∩ (∼ B ∪ A) = (A ∩ B) ∪ (A ∩ C).
3. Lo stesso, usando una volta 29, una volta 30 e una volta 31 come
definizione di ⊆
70
4.3 Algebra delle proposizioni
Due altre notevoli algebre di Boole sono importanti, l’algebra 2 e l’algebra
delle proposizioni.
Quando si dice che gli assiomi sopra elencati sono gli assiomi delle algebre
di Boole, non si intende che i simboli di operazioni usati nella formulazione
degli assiomi denotino le operazioni insiemistiche di unione, intersezione e
complemento; altrimenti le uniche algebre di Boole sarebbero le algebre di
insiemi. S’intende solo che siano operazioni rispettivamente binarie (le prime
due) e unaria (la terza), e che soddisfino le proprietà espresse dagli assiomi.
Può essere utile addirittura riscrivere gli assiomi con altri simboli che non
abbiamo un significato già consolidato7 :
x◦ y =y◦x commutatività
x+y =y+x commutatività
x ◦ (y ◦ z) = (x ◦ y) ◦ z associatività
x + (y + z) = (x + y) + z associatività
x ◦ (y + z) = (x ◦ y) + (x ◦ z) distributività
x + (y ◦ z) = (x + y) ◦ (x + z) distributività
x ◦ (−x) = 0 inverso
x + (−x) = 1 inverso
x◦ 1=x elemento neutro
x+0=x elemento neutro
1
↑
0
71
L’algebra 2 è l’algebra dei valori di verità. Le sue tre operazioni sono
quelle che intervengono nel calcolo dei valori di verità di negazioni, disgiun-
zioni e congiunzioni.
Esistono altre algebre di Boole finite, come ad esempio l’algebra 4
1
% -
a b
- %
0
dove a e b sono inconfrontabili rispetto a ≤; ≤ è proprio parziale.
Esercizio: definire le operazioni in modo che questa struttura diventi
un’algebra di Boole.
Esercizio. Dimostrare che è l’algebra dei sottoinsiemi di un universo con
due elementi.
L’algebra delle proposizioni si ottiene nel seguente modo; già si sono di-
mostrate (considerando anche gli esercizi) quasi tutte le leggi logiche che
hanno lo stesso nome degli assiomi delle algebre di Boole:
72
[A] = {B | A ≡ B}
e si ha che
(esercizio).
Date due proposizioni A e B, esse o sono logicamente equivalenti o no.
Nel primo caso, [A] = [B]. Nel secondo caso le due classi [A] e [B] sono
disgiunte: se infatti ci fosse un elemento C in comune, vorrebbe dire che
A ≡ C e che B ≡ C, ma allora per la transitività si avrebbe A ≡ B e
[A] = [B].
A si dice un rappresentante della classe [A]; ogni classe ha più rappresen-
tanti, anzi infiniti. Se B ∈ [A] allora B ≡ A quindi [A] = [B] e B è un altro
rappresentante di [A]. In particolare ad esempio [A] = [A∧A] = [A∧A∧A] . . .
Si possono definire tra queste classi le seguenti operazioni:
−[A] = [¬A]
[A] ◦ [B] = [A ∧ B]
[A] + [B] = [A ∨ B].
73
[A] ◦ [B] = [B] ◦ [A] commutatività di ◦
[A] + [B] = [B] + [A] commutatività di +
[A] ◦ ([B] ◦ [C]) = ([A] ◦ [B]) ◦ [C] associatività di ◦
[A] + ([B] + [C]) = ([A] + [B]) + [C] associatività di +
[A] ◦ ([B] + [C]) = ([A] ◦ [B]) + ([A] ◦ [C]) distributività
[A] + ([B] ◦ [C]) = ([A] + [B]) ◦ ([A] + [C]) distributività.
x◦y =x
allora
1 = x + (−x)
1 = (x ◦ y) + (−x)
1 = (x + (−x)) ◦ (y + (−x))
1 = y + (−x)
0 = x ◦ (−y).
8
O anche da [A]+[B] = [B]; a seconda dei casi converrà usare l’una o l’altra definizione.
74
Viceversa se
x ◦ (−y) = 0
allora
x=x◦1
x = x ◦ (y + (−y))
x = (x ◦ y) + (x ◦ (−y))
x = x ◦ y.
A ≡ A ∧ B se e solo se |= A → B.
A ∨ ¬A
(A ∧ B) ∨ ¬A
(A ∨ ¬A) ∧ (B ∨ ¬A
B ∨ ¬A
A → B.
A ↔ A ∧ (B ∨ ¬B)
A ↔ (A ∧ B) ∨ (A ∧ ¬B)
A ↔ A ∧ B.
75
Il fatto che per ogni A, 0 ≤ [A] ≤ 1 corrisponde al fatto che una con-
traddizione implica qualsiasi proposizione, e una tautologia è implicata da
qualsiasi proposizione.
La relazione booleana ≤ ha le seguenti proprietà, che se a ≤ b allora
−b ≤ −a e per ogni c, c ◦ a ≤ c ◦ b e c + a ≤ c + b (esercizio).
Queste proprietà corrispondono per l’implicazione al fatto che se |= A →
B allora |= ¬B → ¬A e per ogni C, |= C ∧ A → C ∧ B e |= C ∨ A → C ∨ B
(esercizio).
La proprietà transitiva di ≤ corrisponde alla transitività del condizionale,
mentre la proprietà di sostituzione t = s → f (t) = f (s) corrisponde ad
un’analoga proprietà logica: se in una proposizione si sostituisce una sotto-
proposizione con una equivalente, il risultato è una proposizione equivalente
a quella iniziale.
Conviene indicare l’operazione di rimpiazzamento di una sottopropo-
sizione B con C in una proposizione A, con la notazione: A[B//C].
Si ha allora che
se B ≡ C allora A ≡ A[B//C].
76
U ), procedendo direttamente in base alla definizione di uguaglianza tra in-
siemi (X = Y se e solo se X ⊆ Y e Y ⊆ X) ci si riconduca ad applicare leggi
logiche a proposizioni costruite su atomiche della forma x ∈ X, x ∈ Y, . . .
Si possono anche al contrario derivare le leggi logiche dalle leggi dell’algebra
degli insiemi.
In generale due proposizioni (con o senza la x) logicamente equivalenti9
hanno lo stesso insieme di verità in ogni U .
Supponiamo infatti che p(x) sia equivalente a q(x). Allora siccome p(x) →
q(x) e q(x) → p(x) sono sempre vere, Vp(x)→q(x) e Vq(x)→p(x) sono entrambi
uguali a U ; ma siccome Vp(x)→q(x) = (∼ Vp(x) ) ∪ Vq(x) , se questo è uguale a
U allora Vp(x) ⊆ Vq(x) ; stabilito nello stesso modo il viceversa, partendo da
Vq(x)→p(x) , si ha Vp(x) = Vq(x) .
Vale anche il viceversa; diciamo che una proposizione p(x) è valida in U
se Vp(x) = U ; allora se Vp(x) = Vq(x) in U si ha che p(x) ↔ q(x) è valida in U .
Basta ripercorrere all’indietro i precedenti passaggi.
Supponiamo allora di voler dimostrare |= ¬(p ∨ q) ↔ ¬p ∧ ¬q.
Pensiamo ad un insieme qualunque U (che non c’è bisogno di precisare,
in accordo col fatto che usiamo leggi valide per insiemi qualunque). Conside-
riamo i sottoinsiemi Vp = {x ∈ U | p } e Vq = {x ∈ U | q }. Per definizione di
insieme di verità, x ∈ Vp ↔ p, cioè Vp è definito ponendo che x ∈ Vp è vero se
e solo se p è vero. Se p non contiene x, p o è vera o è falsa, indipendentemente
da x. In tal caso Vp = {x ∈ U | p } o è ∅ o è U .
Dalla definizione di insieme di verità e dalla legge insiemistica
∼ (Vp ∪ Vq ) = (∼ Vp ) ∩ (∼ Vq ),
cioè
x ∈∼ (Vp ∪ Vq ) se e solo se x ∈ (∼ Vp ) ∩ (∼ Vq ),
¬(p ∨ q) ↔ ¬p ∧ ¬q
9
Nel senso che p(x) e q(x) hanno sempre lo stesso valore di verità calcolato a partire
dalla attribuzione di 0 e 1 alle loro componenti atomiche, anche se contengono x.
77
è vero qualsiasi siano p e q, la cui verità o falsità non gioca alcun ruolo nella
dimostrazione10 .
Un altro modo più semantico è il seguente. Siccome p e q non contengono
la x, gli insiemi Vp = {x ∈ U | p } e Vq = {x ∈ U | q } come abbiamo detto
sono o ∅ o U .
Possiamo interpretare allora ∼ (Vp ∪ Vq ) = (∼ Vp ) ∩ (∼ Vq ) o direttamente
¬(p ∨ q) ≡ ¬p ∧ ¬q nell’algebra 2, riscrivendola formalmente come
−(x + y) = −x ◦ −y,
se z ≤ x e z ≤ y allora z ≤ x ◦ y.
z ◦ (−x) = 0
z ◦ (−y) = 0
allora
z ◦ (−x) + z ◦ (−y) = 0
z ◦ (−x + −y) = 0
z ◦ −(x ◦ y) = 0
z ≤ x ◦ y.
10
Si vede in particolare che le leggi logiche dimostrate per il linguaggio proposizionale
costruito astrattamente sulle lettere, valgono anche per proposizioni contententi variabili.
78
Si conclude quindi correttamente che
z ≤x∧z ≤y →z ≤x◦y
|= (C → A) ∧ (C → B) → (C → A ∧ B),
che equivale a
se [C → A] = 1 e [C → B] = 1 allora [C → A ∧ B] = 1,
se |= C → A e |= C → B allora |= C → A ∧ B.
ma
79
x ⇒ y = −x + y.
|= (C → A) ∧ (C → B) ↔ (C → A ∧ B).
80
5 Relazioni
5.1 Prodotto cartesiano
Un’operazione su insiemi diversa, e in un certo senso più importante di quelle
booleane è il prodotto cartesiano di due insiemi.
Si indica hx, yi la coppia ordinata di x e y, e x e y si chiamano rispettiva-
mente prima e seconda componente di hx, yi, o proiezioni. La coppia ordinata
è ben diversa dalla coppia non ordinata {x, y}, per cui vale {x, y} = {y, x}
e non ha senso parlare di primo o secondo elemento. Invece hx, yi = 6 hy, xi
a meno che non sia x = y; inoltre hx, yi = hz, ui se e solo se x = z e y = u,
cioè se le due coppie hanno uguali rispettivamente le prime e le seconde
proiezioni1 .
Il prodotto cartesiano di X e Y è
X × Y = {hx, yi | x ∈ X e y ∈ Y }.
81
Il prodotto X ×X si indica anche con X 2 , e |X × ·{z
· · × X} con X n , insieme
n
delle n-uple di elementi non necessariamente distinti di X.
5.2 Relazioni
Un sottoinsieme di un insieme X × Y si chiama anche relazione tra X e Y . !!!
Se X = Y una relazione R ⊆ X × X si dice anche relazione in X.
La rappresentazione grafica usuale delle relazioni è quella per mezzo di
un diagramma cartesiano, come il seguente:
YO
· · · · · · · · ·
· · · · •· · · · ·
· · · · · · · · ·
· · · •· · · · · ·
· · · · · · · · ·
· · •· · · · · · ·
· · · · · · · · ·
2· •· · · · · · · ·
· · · · · · · · ·
•· · · · · · · · ·/ X
1
ZO
· · · · · · · · •·
· · · · · · · •· ·
· · · · · ·•· · ·
· · · · · •· · · ·
· · · · •· · · · ·/Z
· · · •· · · · ·
· · •· · · · · · ·
· •· · · · · · · ·
•· · · · · · · · ·
hx, y, zi si può definire il prodotto a tre fattori X × Y × Z, e anche quello a n fattori con
le n-uple come elementi.
82
rappresenta la relazione {hx, yi ∈ Z × Z | x = y } solo in una regione limitata
del piano a coordinate intere, ma si intende che va estesa uniformemente
all’infinito.
Esempi
La relazione di paternità è una relazione nell’insieme del genere umano,
l’insieme di tutte le coppie hx, yi dove x è un maschio che ha generato, e y
uno dei suoi figli.
La relazione di discendenza genealogica nell’insieme del genere umano è
l’insieme di tutte le coppie hx, yi dove x è un antenato (maschile o femminile)
di y.
La relazione di divisibilità4 {hx, yi ∈ N × N | x | y } tra numeri naturali
è rappresentata, nell’area limitata disegnata, dal diagramma:
NO
· •· · •· · · · · · •·
· •· •· · •· · · · •· ·
· •· · · · · · •· · ·
· •· •· •· · · •· · · ·
· •· · · · •· · · · ·
· •· •· · •· · · · · ·
· •· · •· · · · · · ·
· •· •· · · · · · · ·
· •· · · · · · · · ·
· •· •· •· •· •· •· •· •· •· /N
83
ZO
· · · · · · · · · · ·
· · · · · · · · · · ·
· · · · · · · · · · ·
· · · · · · · · · •· ·
· · · · · · •· · · · ·
· · · · · •· · · · · ·/Z
· · · · · · • · · · ·
· · · · · · · · · •· ·
· · · · · · · · · · ·
· · · · · · · · · · ·
· · · · · · · · · · ·
ZO
· · · · · · · · · · ·
· · · · · · •· · · · ·
· · · · · · · · · · ·
· · · · · · · •· · · ·
· · · · · · · · · •· ·
· · · · · · · · · · · /Z
· •· · · · · · · · · ·
· · · •· · · · · · · ·
· · · · · · · · · · ·
· · · · •· · · · · · ·
· · · · · · · · · · ·
84
QO
· · · · · · · · · · ·
· · · · · · •· · · · ·
· · · · · · ·•• · · · ·
· · · · · · · •· •· · ·
· · · · · · · · · •· •·
· · · · · · · · · · · /Q
· •· · · · · · · · · ·
· · · ••· · · · · · · ·
· · · ·•· · · · · · ·
· · · · •· · · · · · ·
· · · · · · · · · · ·
5.2.1 Esercizi
1. Disegnare in un diagramma cartesiano le relazioni (o parte di esse):
{hx, yi ∈ N × N | x2 + y 2 < 20}
{hx, yi ∈ Z × Z | x2 + y 2 < 20}
{hx, yi ∈ N × N | x < 6 ∧ y < 4}.
2. Abbiamo visto esempi di relazioni finite e infinite; come è {hx, yi ∈
85
Z × Z | xy = 12 }?
86
Le relazioni {hx, yi | xy = 4} e {hx, yi | x = y} sono simmetriche8 . La
prima non è riflessiva, ma neanche antiriflessiva. La seconda è riflessiva. La
relazione {hx, yi | x = y 2 } non è simmetrica.
La relazione di conseguenza logica, nell’insieme delle proposizioni, è rif-
lessiva (legge dell’identità) e transitiva (transitività del condizionale).
xx
xy∧y z →xz
x y ∧ y x → x = y.
xy∨y x
87
Dato un ordine si può sempre introdurre una nuova relazione ≺ con la
definizione x ≺ y ↔ x y ∧ x 6= y, che risulta antiriflessiva, antisimmetrica
e transitiva.
Osservazione. L’antiriflessività vale in generale per una relazione R tale
che hx, yi ∈ R → x 6= y.
Viceversa, data una relazione ≺ antisimmetrica e transitiva, si può definire
x y ↔ x ≺ y ∨ x = y e si ha una relazione d’ordine.
Un minorante di x - rispetto a un ordine hU, i - è un elemento y ∈ U
tale che y x. Il minorante è stretto, o proprio, se x 6= y.
Un maggiorante di x è un elemento y ∈ U tale che x y. Il maggiorante
è stretto, o proprio, se x 6= y.
Dato un insieme totalmente o parzialmente ordinato hU, i, un elemento
x ∈ U si dice minimo - rispetto all’ordine - se x y per ogni y ∈ U . Si dice
massimo se y x per ogni y ∈ U .
Dato X ⊆ U , un minimo di X è un elemento x ∈ X tale che x y per
ogni y ∈ X; simmetricamente per il massimo.
Il minimo di un insieme X è unico; analogamente il massimo.
Dato un insieme parzialmente ordinato hU, i, un elemento x ∈ U si dice
minimale - rispetto all’ordine - se non ha minoranti propri. Si dice massimale
se non ha maggioranti propri.
Se X ⊆ U , un elemento minimale di X è un elemento x ∈ X tale che
per nessun y ∈ X, y 6= x si ha y x, cioè che non ha minoranti propri
appartenenti a X; simmetricamente per un elemento massimale. Gli elementi
minimali o massimali non sono necessariamente unici.
Esempi
La relazione d’ordine totale ≤ nell’insieme dei numeri naturali ha un min-
imo, nessun massimo. Negli altri insiemi numerici degli interi, dei razionali
e dei reali10 ≤ è un ordine totale senza né minimo né massimo.
La relazione d’ordine parziale ⊆ nell’insieme dei sottinsiemi di un insieme
U ha un massimo U e un minimo ∅. Nell’insieme dei sottoinsiemi non vuoti di
U esistono tanti elementi minimali, gli {x}, quanti sono gli elementi x ∈ U .
Nell’insieme di tutti gli insiemi contenuti sia in X sia in Y l’intersezione
X ∩ Y è il massimo.
10
I numeri complessi invece non possono essere ordinati in modo che la relazione d’ordine
sia compatibile con le operazioni, ad esempio nel senso che se x y allora x + z y + z.
88
In generale, in un’algebra di Boole, la relazione {hx, yi | x ◦ −y = 0} è un
ordine parziale con minimo 0 e massimo 1.
Esempio L’ordine dei numeri naturali e quello dei numeri interi sono
ordini discreti.
Un ordine si dice denso se dati due qualunque elementi distinti x e y, con
x ≺ y, esiste uno z tale che x ≺ z ≺ y.
Esempio L’ordine dei razionali e quello dei reali sono ordini densi.
89
Il fatto che l’insieme dei naturali sia bene ordinato significa che al di là
della catena formata da 0 e dal successore di 0, e dal successore del successore
di 0 e cosı̀ via, non ci sono altri elementi, come sarebbe ad esempio in una
struttura del genere:
t0 t t t t t t s s s s r qq t
e questo è importante per le proprietà dei naturali che studieremo nel para-
grafo 12.
La struttura ordinata disegnata sopra ha un massimo, e certo non può
essere fatta cosı̀ una struttura con le proprietà dei numeri naturali. Ogni
elemento deve avere un successore e ogni elemento diverso da 0 un predeces-
sore. Al di là di tutti i numeri raggiungibili da 0 ci potrebbe essere ancora
ad esempio una struttura ordinata come quella degli interi; ma se ci fossero
elementi non standard ci sarebbe una catena discendente
0
t t t t t t t s s s s r qq q q q r r s
90
Esempi
R = {ha, ai, hb, bi, hc, ci, hd, di, he, ei,
ha, bi, hb, ai, ha, ci, hc, ai, hb, ci, hc, bi,
hd, ei, he, di}
UO
e· · · •· •·
d· · · •· •·
c•· •· •· · ·
b•· •· •· · ·
a•· •· •·c · ·e/ U
b d
[x] = {y ∈ U | xR y }
12
x ≡ y (mod p) si legge“x congruo a y modulo p”.
91
e x si chiama rappresentante della classe [x].
Date due classi [x] e [y ], queste o sono uguali (hanno gli stessi elementi)
o sono disgiunte. Se xR y, allora ogni z ∈ [x], essendo xR z, è anche zR y,
quindi z ∈ [y], e viceversa. Allora x e y sono due diversi rappresentanti della
stessa classe.
Se x non sta nella relazione R con y, allora non ci può essere uno z ∈
[x] ∩ [y ], altrimenti si avrebbe zR x e zR y, e quindi xR y.
L’insieme U è ripartito dalla relazione di equivalenza R in una famiglia
di insiemi disgiunti, di cui U è l’unione. Una tale famiglia si chiama appunto
partizione di U .
Esempi
Per la relazione dell’esempio 2 di sopra, [a] = [b] = [c] = {a, b, c} e
[d] = [e] = {d, e}. Nel grafico si vedono i due agglomerati di punti che
formano le due classi disgiunte.
Per la relazione di congruenza x ≡ y (mod 2) ci sono due classi, quella
dei numeri pari e quella dei numeri dispari.
Esempio Nel quoziente degli interi rispetto alla relazione x ≡ y (mod p),
che si indica Zp , si definisce la somma +p con13
92
(m + n − m1 − n1 )p è divisibile per p e x + y e x1 + y1 appartengono alla
stessa classe.
Nella congruenza (mod 2), in Z2 , 1 +2 1 = 0 corrisponde al fatto che la
somma di due dispari qualunque è pari.
5.5 Funzioni
Una relazione R si dice funzionale se per ogni x ∈ dom(R) esiste un solo y
tale che hx, yi ∈ R.
Una relazione funzionale R tra X e Y si dice anche una funzione tra X
e Y , o una funzione da dom(R) in Y . Se si parla di una funzione da X in Y
s’intende che il suo dominio è tutto X.
Per le funzioni si usano di solito i simboli f, g, . . .. Se f è una funzione
da X in Y si scrive anche
f : X −→ Y .
f : X ,→ Y .
93
Se una funzione f è iniettiva, per ogni y ∈ im(f ) f −1 (y) ha un solo elemento
x che si chiama lui controimmagine di y. Quindi f −1 è una funzione, con
dominio im(f ).
Viceversa, se ogni f −1 (y) ha un solo elemento, per y ∈ im(f ), f è iniettiva.
Una funzione f : X −→ Y si dice suriettiva, o sopra se Y = im(f ),
ovvero se per ogni y ∈ Y esiste almeno un x ∈ X tale che y = f (x).
Esempi
La funzione
f : Z −→ Z
x 7→ 2x
è iniettiva, non suriettiva.
La funzione
f : Q −→ Q
x 7→ 2x
è iniettiva e suriettiva.
La funzione
f : Q −→ Q
x 7→ x2
non è iniettiva e non è suriettiva, cosı̀ come14
f :Rp−→ R
x 7→ |x|.
La funzione
f : R −→ R
x 7→ x3 − x.
invece non è iniettiva ma è suriettiva.
La corrispondenza definita da x 7→ x1 , o dalla formula y = 1
x
, definisce
una funzione tra Q e Q il cui dominio è Q \ {0}:
f : Q \ {0} −→ Q
x 7→ x1
14
√ p
Se x è presa col segno positivo; altrimenti {hx, yi | y = |x|} non è una funzione.
94
è iniettiva e non è suriettiva.
La funzione
f : Q \ {0} −→ Q \ {0}
x 7→ x1
è iniettiva e suriettiva.
Una funzione f : X −→ Y che sia iniettiva e suriettiva si dice biiettiva, o
una biiezione tra X e Y o una corrispondenza biunivoca tra X e Y .
Se X = Y si parla di una biiezione di X in sé.
Esempi
La funzione
f : Q −→ Q
x 7→ 2x
è una biiezione di Q in se stesso.
La funzione
f : Z −→ Z
x 7→ 2x
è invece solo una iniezione di Z in sé.
La funzione
f : Q \ {0} −→ Q \ {0}
x 7→ x1
è una biiezione di Q \ {0} in sé..
La funzione che a ogni i < n associa i + 1 e a n associa 0 è una biiezione
di {0, 1, . . . , n} in sé.
Le biiezioni di un insieme finito in sé si chiamano permutazioni dell’insieme.
Il concetto di “funzione” è molto comodo per definire o collegare diversi
altri concetti matematici; abbiamo visto quello di “permutazione”; le se-
quenze ha0 , . . . , an i di elementi di X si possono definire come funzioni da
{0, 1, . . . , n} in X; le disposizioni di X a n elementi, se X ha più di n el-
ementi, sono le funzioni iniettive da {0, 1, . . . , n} in X; un insieme {ai }i∈I
indiciato da I è l’immagine di una funzione da I nell’insieme cui apparten-
gono gli ai ; un sottoinsieme X ⊆ U è anche uguale a c−1 X (1), dove cX è la
funzione caratteristica di X, cioè la funzione U −→ {0, 1} definita da
95
1 se x ∈ X
cX (x) =
0 se x ∈
6 X,
e cosı̀ via, tutte le nozioni matematiche si possono esprimere in termini in-
siemistici.
96
6 Forme normali
Dopo aver imparato le definizioni riguardanti la semantica delle proposizioni,
e alcune prime tecniche per stabilire in particolare se sono tautologie, sia di-
rettamente con il calcolo del valori di verità sia deducendole da altre con
passaggi logici o algebrici booleani, passiamo a porci alcuni problemi meta-
teorici sul linguaggio proposizionale.
p q r ?
0 0 0 1
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 0
97
Per le proprietà della valutazione della disgiunzione e congiunzione - che una
disgiunzione è vera se e solo se almeno un disgiunto è vero, e una congiunzione
se e solo se tutti i congiunti sono veri - e della negazione, si può facilmente
vedere procedendo al contrario che la tavola associata a questa proposizione
è uguale alla tavola data, che era la tavola di p ∨ q → ¬p ∧ (q → r). 2
A B A↑B
0 0 1
0 1 0
1 0 0
1 1 0
98
Ad esempio in geometria piana per due rette “r//s ↔ r e s non si
intersecano”, in aritmetica “x | y ↔ esiste uno z per cui xz = y”, o
il simbolo di potenza al quadrato “x2 = x · x”, nell’algebra degli insiemi
“X \ Y = X∩ ∼ Y ”.
Ma il precedente risultato dice anche che gli stessi connettivi del lin-
guaggio proposizionale sono sovrabbondanti, perché {¬, ∧, ∨} è adeguato, e
neanche il più ridotto possibile. Quando un sistema adeguato è minimale,
nel senso che nessun suo sottoinsieme proprio è ancora adeguato, si chiama
una base, in analogia con le basi degli spazi vettoriali (si vedano gli esercizi).
Si ha che p ⊕ q risulta equivalente a (¬p ∧ q) ∨ (p ∧ ¬q), e p → q ≡
(¬p ∧ ¬q) ∨ (¬p ∧ q) ∨ (p ∧ q) e analogamente p ↔ q (esercizio).
Ognuna di queste equivalenze comporta l’eliminabilità del connettivo
definito, cioè che all’interno di una proposizione una sottoproposizione, ad
esempio della forma A → B, può essere rimpiazzata dalla proposizione equiv-
alente (¬A ∧ ¬B) ∨ (¬A ∧ B) ∨ (A ∧ B).
6.1.1 Esercizi
1. Dimostrare che {¬, ∧} e {¬, ∨} sono due basi di connettivi, definendo
la disgiunzione nel primo e la congiunzione nel secondo.
99
6.2 Forme normali disgiuntive
La proposizione costruita a partire da una tavola di verità nel modo sopra
descritto ha una forma particolare. Si chiami letterale una proposizione che
sia o una lettera p, letterale positivo, o la negazione di una lettera ¬p, letterale
negativo.
La proposizione associata alla tavola ha dunque la forma di una disgiun-
zione di congiunzioni di letterali. Una tale forma di chiama forma normale
disgiuntiva. Poiché è evidente che
Teorema 6.2.1 Per ogni proposizione A esiste una proposizione con le stesse
lettere che è in forma normale disgiuntiva ed è logicamente equivalente ad A.
100
(¬p ∧ q) ∨ (p ∧ ¬q)
(¬p ∧ q) ∨ p
Per confermare che questa proposizione ha la tavola data come sua tavola di
verità occorre questa volta ricordare che una congiunzione è falsa se e solo
se una delle proposizioni congiunte è falsa, e che una disgiunzione è falsa se
e solo se tutte le proposizioni disgiunte sono false.
Una proposizione che sia una congiunzione di disgiunzioni di letterali si
dice in forma normale congiuntiva.
101
Come sopra, risolvendo a parte anche il caso in cui nella tavola non ci
siano 0, si ha:
Teorema 6.3.1 Per ogni proposizione A esiste una proposizione con le stesse
lettere che è in forma normale congiuntiva ed è equivalente ad A.
102
(¬p ∧ ¬q) ∨ (¬p ∧ q) ∨ (p ∧ q)
(¬p ∧ (¬q ∨ q)) ∨ (p ∧ q)
¬p ∨ (p ∧ q)
(¬p ∨ p) ∧ (¬p ∨ q)
¬p ∨ q
• eliminare ⊕, ↔ e →
103
la forma normale disgiuntiva il procedimento è lo stesso con scambiati i ruoli
di ∧ e ∨).
Consideriamo il connettivo principale della proposizione; se è ∧, passiamo
alle due sottoproposizioni immediate trasformandole separatamente con il
procedimento sotto descritto5 e facendo alla fine la congiunzione delle due
forme congiuntive cosı̀ ottenute; se è ∨, e la proposizione è della forma A ∨ B,
è necessaria qualche preparazione.
Se in A non occorresse per nulla ∧, potremmo lavorare su B come detto
sotto, dopo aver fatto, per la precisione, lo scambio con B ∨ A. Possiamo
allora supporre che A sia della forma C ∧ D, perché se A a sua volta fosse
una disgiunzione C ∨ D, potremmo considerare al suo posto l’equivalente
C ∨ (D ∨ B) e andare a cercare ∧ in C, oppure in D dopo aver fatto lo
scambio con l’equivalente D ∨ (C ∨ B).
La proposizione data si trasforma allora nella equivalente (C ∨B)∧(D∨B)
e possiamo applicare ricorsivamente il procedimento alle due proposizioni più
corte C ∨ B e D ∨ B. Quando procedendo in questo modo si è portato il
connettivo ∧ a legare solo letterali a sinistra di B, si passa a lavorare nello
stesso modo su B.
Esempio Da
(p → q) → (r ∨ ¬p)
¬(p → q) ∨ (r ∨ ¬p)
¬(¬p ∨ q) ∨ (r ∨ ¬p)
(¬¬p ∧ ¬q) ∨ (r ∨ ¬p)
(p ∧ ¬q) ∨ (r ∨ ¬p),
che è in forma normale disgiuntiva
(p ∧ ¬q) ∨ r ∨ ¬p
con due disgiunti unitari r e ¬p. Se invece si vuole la forma normale con-
giuntiva, si continua con
(p ∨ (r ∨ ¬p)) ∧ (¬q ∨ (r ∨ ¬p))
(p ∨ r ∨ ¬p) ∧ (¬q ∨ r ∨ ¬p).
104
(p ∧ ¬q) ∨ (¬p ∧ q)
(p ∨ (¬p ∧ q)) ∧ (¬q ∨ (¬p ∧ q)).
Il primo congiunto si trasforma in
(p ∨ ¬p) ∧ (p ∨ q),
il secondo in
(¬q ∨ ¬p) ∧ (¬q ∨ q),
quindi la proposizione in
(p ∨ ¬p) ∧ (p ∨ q) ∧ (¬q ∨ ¬p) ∧ (¬q ∨ q),
da cui si possono ancora eliminare le tautologie, ottenendo
(p ∨ q) ∧ (¬q ∨ ¬p).
Non è detto che questo procedimento, che ha il merito di far vedere
la terminazione del compito, se lo si segue come filo d’Arianna, sia sem-
pre il più efficiente; può essere utilmente integrato con l’applicazione in
itinere dell’eliminazione delle ripetizioni, e con l’eliminazione delle tautolo-
gie dalle congiunzioni, e della contraddizioni dalle disgiunzioni, ogni volta
che sia possibile; sono utili le leggi di assorbimento ed equivalenze come !!!
¬(A → B) ≡ A ∧ ¬B; oppure ci sono scorciatoie come quando, volendo mi-
rare a una forma congiuntiva, si incontra una sottoproposizione della forma
(A ∧ B) ∨ (C ∧ B) che conviene rimpiazzare direttamente con (A ∨ C) ∧ B.
105
che per l’assorbimento è equivalente a ¬p. Questa seconda strada è più lunga,
ma è proposta solo per illustrare l’effetto delle varie mosse possibili.
Le forme normali disgiuntive e congiuntive si trovano ai poli estremi di
uno spettro su cui si immagini di collocare le proposizioni misurando la loro
distanza con il numero di applicazioni delle proprietà distributive necessarie
per passare dall’una all’altra. Se si pensasse di decidere se una proposizione
in forma normale disgiuntiva è una tautologia applicando il teorema 6.3.2,
dovendola prima trasformare in forma congiuntiva, si affronterebbe un com-
pito non inferiore come complessità a quello di costruire la tavola di verità
completa (e forse più rischioso, se fatto a mano).
6.4 Esercizi
1. Scrivere la forma normale congiuntiva e disgiuntiva, usando le tavole
di verità, delle seguenti proposizioni:
(p ∨ q → r) ∧ ¬p ∧ ¬r
¬p → ¬(q → p)
(¬(p → q) ∨ ¬q) → p.
2. Per le proposizioni del precedente esercizio, trasformare la forma nor-
male disgiuntiva in quella congiuntiva e viceversa con l’algoritmo forma
normale.
3. Scrivere la forma normale disgiuntiva e congiuntiva, usando l’algoritmo
forma normale, delle seguenti proposizioni:
(p ∨ q) → ¬(p → (q → r))
(p ∨ q) → ¬(p ∧ (q → r))
p → (¬q ∨ p → (r → p))
p ⊕ (¬p ⊕ q) → q.
4. Trasformare le leggi logiche del paragrafo 3.3.3 in forma normale con-
giuntiva e disgiuntiva.
5. Osservare che la tavola della proposizione p ∨ q → ¬p ∧ (q → r) di 3.3.1
è uguale a quella di ¬p (se questa è estesa a una tavola a tre entrate
p, q, r indipendente da q e r) e trasformare in ¬p la sua forma normale
disgiuntiva ottenuta dalla tavola.
106
6. Scrivere ¬p ∨ q → ¬p ∧ q in forma normale disgiuntiva e leggerne i
modelli. Discutere le relazioni con p ⊕ q.
7. Verificare, ai fini dell’applicazione delle trasformazioni con le leggi dis-
tributive, che è
(A ∨ B) ∧ (C ∨ D) ≡ (A ∧ C) ∨ (A ∧ D) ∨ (B ∧ C) ∨ (B ∧ D)
e analogamente
(A ∧ B) ∨ (C ∧ D) ≡ (A ∨ C) ∧ (A ∨ D) ∧ (B ∨ C) ∧ (B ∨ D).
8. Verificare come si trasforma, applicando le leggi di De Morgan, la
negazione di una forma normale congiuntiva (rispettivamente disgiun-
tiva) in una forma normale disgiuntiva (rispettivamente congiuntiva).
9. Spiegare, utilizzando le leggi di De Morgan e la legge della doppia
negazione, perché cnf(A) ≡ ¬dnf(¬A) e dnf(A) ≡ ¬cnf(¬A).
L’osservazione fornisce un altro modo per ottenere la forma normale
disgiuntiva, o congiuntiva, di una proposizione. Se si vuole ad esempio
la forma normale disgiuntiva di A, si può provare a vedere se non sia
relativamente facile ottenere cnf(¬A); ottenuta questa, la si nega e
si applica De Morgan; spesso si evita cosı̀ l’applicazione ripetuta delle
leggi distributive.
Errore frequente: lo studente ha trovato dnf(A) e per ottenere cnf(A) !!!
nega dnf(A) e applica De Morgan, ricordando malamente l’esercizio 8,
perché ottiene sı̀ una forma congiuntiva, ma quella della negazione:
cnf(¬A). È forse il residuo dell’idea di premettere due negazioni, us-
andone una per trasformare dnf in cnf con De Morgan: ¬¬dnf(A),
¬(¬dnf(A)), ¬cnf(¬A). Di quella esterna però ci si dimentica - se si
tenesse conto dell’altra negazione, una nuova applicazione di De Mor-
gan riporterebbe a dnf(A). Due negazioni consecutive non possono
creare nulla di nuovo.
10. In riferimento alle osservazioni del precedente esercizio, trovare la forma
normale disgiuntiva e congiuntiva e confrontare i diversi modi per ot-
tenerle, per le proposizioni
(p → q) → (r → ¬p)
p ∨ q → ¬p ∨ q
p ∨ (q ∧ r) → (¬r → p).
107
7 Alberi di refutazione
7.1 Il metodo
La risposta alle domande semantiche, sulla verità logica o sulla insoddisfaci-
bilità delle proposizioni, si può dare con metodi più efficienti della ricerca
esaustiva offerta dalla costruzione delle tavole di verità, che è di complessità
esponenziale. Uno di questi è il metodo degli alberi di refutazione 1 . Il nome
deriva dal fatto che sono impostati, per rispondere alla domanda sulla verità
logica, secondo la ricerca del controesempio: si cerca di scoprire se esiste
un’interpretazione che falsifichi la proposizione. Il metodo ha la proprietà che
o la trova, se esiste, e quindi fornisce un’interpretazione in cui la negazione
della proposizione è vera (controesempio: la proposizione è falsa) oppure !!!
mostra che non è possibile che esista, e quindi la proposizione è una tautolo-
gia.
Più in generale, il metodo serve a stabilire se esista o no un’interpretazione
che soddisfa una proposizione composta, non partendo dal basso dalle possi-
bili interpretazioni delle lettere (bottom up) ma dall’alto, dalla proposizione
data, scendendo verso le sottoproposizioni componenti (top down); nel pro-
cesso, si accumulano condizioni necessarie che l’ipotetica interpretazione, se
esiste e soddisfa la radice, dovrebbe pure soddisfare - nel senso di quali
altre proposizioni essa dovrebbe soddisfare o no - fino alle condizioni nec-
essarie riguardanti le proposizioni atomiche; queste, se non sono incom-
patibili tra di loro, si traducono in condizioni sufficienti per la definizione
dell’interpretazione.
Gli alberi di refutazione possono dunque essere usati anche per rispondere
alle altre domande semantiche, ad esempio quella sulla soddisfacibilità.
Si chiamano in generale calcoli logici i metodi per rispondere ai quesiti
logici sulla verità, l’insoddisfacibilità, la conseguenza, metodi che sono pro-
cedure guidate dalla sintassi, e che si articolano in applicazioni iterate di
regole che producono strutture come sequenze o alberi di proposizioni, che si
chiamano derivazioni o dimostrazioni.
Gli alberi di refutazione sono alberi etichettati con proposizioni. Identi-
fichiamo per comodità di scrittura i nodi con le loro etichette. Nella radice
è una proposizione, di cui si vuole sapere se esiste un modello. L’albero è
1
Altri nomi usati, insieme a qualche variante di presentazione, sono quelli di alberi
semantici , oppure di tableaux semantici.
108
sviluppato secondo la seguente procedura.
Ad ogni stadio, si saranno già prese in considerazione alcune proposizioni,
messe tra parentesi quadre o segnate con un asterisco, e ne resteranno da
considerare altre. Se sono già state considerate tutte, l’albero è terminato;
se no, si prende in esame una proposizione A non ancora considerata, e a
seconda della sua forma si prolunga l’albero nel modo seguente, dopo aver
segnato A e aver notato quali sono i rami non chiusi che passano per A, dove
un ramo si dice chiuso se su di esso occorre sia una proposizone sia la sua
negazione:
• Se A è una proposizione senza connettivi, non si fa nulla (si va al passo
successivo).
• Se A è B ∧ C, alla fine di ogni ramo non chiuso passante per A si
appendono alla foglia due nodi in serie etichettati con B e C, come
nello schema:
[B ∧ C]
..
.
↓
F
↓
B
↓
C
• Se A è B ∨ C, alla fine di ogni ramo non chiuso passante per A si
aggiunge alla foglia una diramazione con due nodi B e C, come nello
schema:
[B ∨ C]
..
.
↓
F
. &
B C
con l’ovvia generalizzazione (qui e nella prececente regola) che se si
tratta di congiunzioni o disgiunzioni generalizzate si appendono in serie
o rispettivamente si fanno diramazioni con tanti nodi quante sono le
sottoproposizioni immediate.
109
• Se A è B → C, alla fine di ogni ramo non chiuso passante per A si
aggiunge alla foglia una diramazione con due nodi ¬B e C, come nello
schema:
[B → C]
..
.
↓
F
. &
¬B C
[¬¬C]
..
.
↓
F
↓
C
110
B1 e ¬B2 , come nello schema:
[¬(B1 → B2 )]
..
.
↓
F
↓
B1
↓
¬B2
Ovviamente se per il nodo in considerazione non passa alcun ramo non chiuso,
non si fa nulla. Dalla formulazione è chiaro che quando tutti i rami sono
chiusi il procedimento termina, anche se non tutte le proposizioni sono state
considerate, e in tal caso l’albero si considera terminato e si dice chiuso.
Non diamo le regole per il bicondizionale (esercizio) perché non sareb-
bero altro che l’adattamento di quelle che derivano dal fatto che p ↔ q è
equivalente a (p → q) ∧ (q → p). Lo stesso per ⊕, ma si preferisce eliminare
prima questi connettivi (comunque, si diano le regole per ⊕ - esercizio), e
questa è l’unica preparazione o trasformazione che si fa sulle proposizioni;
altrimenti si prendono cosı̀ come sono, e questo è un vantaggio del metodo, !!!
nessun preprocessing.
111
Esempio
1. Consideriamo la proposizione ¬((¬p ∨ q) ∧ p → q) che mettiamo nella
radice dell’albero
¬((¬p ∨ q) ∧ p → q)
[¬((¬p ∨ q) ∧ p → q)]
↓
[(¬p ∨ q) ∧ p]
↓
[¬q]
↓
[¬p ∨ q]
↓
p
. &
¬p q.
112
Non è neanche necessario indicare che si sono presi in considerazione le
restanti proposizioni, perché il loro effetto è nullo. L’albero è chiuso, perché
su uno dei sue due rami occorrono p e ¬p, e sull’altro occorrono q e ¬q.
Se si deve interpretare come è stato ottenuto un albero sviluppato, è di
aiuto che sia segnato a fianco di ogni proposizione l’ordine in cui è stata presa
in considerazione, come in
[¬((¬p ∨ q) ∧ p → q)]1
↓
[(¬p ∨ q) ∧ p]2
↓
[¬q]3
↓
[¬p ∨ q]4
↓
p
. &
¬p q.
Esempio
113
dove il ramo di destra con foglia ¬q non è sviluppato con
¬q
. &
¬¬p ¬q
come dovrebbe essere per il lavoro su ¬(¬p ∧ q), perché il ramo è già chiuso;
il ramo di sinistra non è prolungato con
¬¬p
↓
p
Avvertenza Non si confondano gli alberi di refutazione con gli alberi !!!
sintattici. L’albero sintattico si una proposizione contiene solo le sottopropo-
sizioni di quella data, l’albero di refutazione anche altre. Ad esempio
p∨q →p∧q
.&
p∨q p∧q
.& .&
p q p q
p∨q →p∧q
.&
¬(p ∨ q) p∧q
↓ ↓
¬p p
↓ ↓
¬q q
dove, oltre a una struttura diversa, compaiono proposizioni come ¬p, ¬q,
¬(p ∨ q).
In alcune presentazioni gli alberi di refutazione sono alberi i cui nodi
sono proposizioni etichettate con i simboli V ed F , per “vero” e “falso”. La
114
corrispondenza con la presente versione si ottiene sostituendo V A con A e
F A con ¬A, e viceversa.
Ad esempio le due regole per la congiunzione sono:
V ∧: Quando si lavora su V (A ∧ B) (al fondo di ogni ramo . . . ) si appen-
dono in serie V A e V B.
F ∧: Quando si lavora su A F (A ∧ B) (al fondo di ogni ramo . . . ) si
appende una diramazione con con F A e F B.
115
Quando si dà un metodo sintattico per rispondere a quesiti di natura
semantica (o un calcolo per risolvere un problema), si pone la questione, e la
richiesta, della correttezza e completezza del metodo. Correttezza significa
che le risposte che dà il metodo sono giuste, completezza significa che quando
la risposta c’è il metodo la dà, quella giusta.
Qualche ambiguità può sussistere quando le domande possibili sono di-
verse, e tuttavia collegate. Ad esempio per il fatto che
116
o il ramo3 σ _ B1 o il ramo σ _ B2 soddisfano la proprietà richiesta, a seconda
che B1 o B2 siano vere in i. Lo stesso vale per gli altri casi (esercizio). 2
Viceversa
Lemma 7.2.5 Se l’albero non si chiude, allora per ogni ramo non chiuso
e terminato esiste un’interpretazione i che soddisfa tutti le proposizioni del
ramo, inclusa la radice.
Se in un ramo terminato non chiuso manca una lettera che occorre nella
radice, nel definire l’interpretazione si può dare ad essa il valore che si vuole;
ciò significa che al ramo è associata più di una interpretazione.
L’esito complessivo dei teoremi di correttezza e completezza è che il
metodo degli alberi prende in esame tutte le possibili strade per provare
a definire interpretazioni, e se ce ne sono le fornisce tutte, e se non ce ne sono
lo rivela.
3 _
σ B1 è il ramo prolungato con B1 ; la notazione è quella della concatenazione di liste.
117
La dimostrazione delle proprietà di correttezza e completezza non prende
in considerazione l’ordine in cui si sviluppa l’albero. Il procedimento degli
alberi di refutazione si può rendere deterministico fissando un ordine progres-
sivo per le proposizioni introdotte e quelle da prendere in considerazione ma
proprio il fatto che la dimostrazione è indipendente dall’ordine permette di
vedere che la risposta dell’albero e le sue proprietà non dipendono dall’ordine
eventualmente fissato; lavorare su una proposizione prima che su di un’altra
può modificare l’albero ma non la risposta finale; ogni mossa dipende solo
dalla proposizione in considerazione e non dalle altre presenti in altri nodi.
Si può sfruttare questa circostanza (oltre che come si è fatto nella di-
mostrazione della terminazione) per formulare utili regole euristiche, come
quella di prendere in esame prima le proposizioni che si limitano ad allungare !!!
i rami e non introducono diramazioni.
Riassumendo
↓
A
↓
¬B
118
dopo di che si continua lavorando solo su A e su ¬B e loro sottoproposizioni.
Si può addirittura partire con
A
↓
¬B
se interessa la domanda A |= B.
119
prima; rami diversi non danno necessariamente interpretazioni diverse. La !!!
proposizione non è una tautologia in quanto manca l’interpretazione i(p) =
i(q) = 0 tra i suoi modelli.
7.4 Esercizi
1. Verificare con gli alberi di refutazione le leggi logiche del paragrafo
3.3.3.
120
(p → ¬q) ∧ ¬p ∧ q
(p → ¬q) ∧ p ∧ q
(p ∨ ¬q ∨ r) ∧ ¬r ∧ (¬p ∨ q) ∧ ¬p.
121
8 Linguaggi predicativi
Finora abbiamo considerato, nell’algebra degli insiemi, solo formule conte-
nenti una variabile x, a cui abbiamo associato, in ogni universo U , un insieme
di verità.
Gli insiemi di verità si incontrano invero quasi solo in matematica, dove è
proprio tipico lo studio di insiemi definibili. Ad esempio dopo aver introdotto
la definizione dei numeri primi ci si chiede come è l’insieme dei numeri primi
(se finito o infinito), si elaborano algoritmi per trovare i suoi elementi, se
ne studiano sottoinsiemi. Studiare il concetto di “numero primo” significa
studiare l’insieme dei numeri definiti dal concetto “primo”.
Tuttavia la definizione dei numeri primi richiede i quantificatori. Le
definizioni riguardanti le proprietà delle relazioni coinvolgono quantificatori.
In generale tutte le frasi che intervengono in matematica coinvolgono quantifi-
catori che devono essere padroneggiati correttamente per fare dimostrazioni
corrette.
Supponiamo di stare ragionando su questioni di aritmetica, e di voler ad
esempio dimostrare che
il successore di un numero pari è dispari.
Il primo passo della versione aritmetica è quello di scrivere:
se x è pari, allora x + 1 è dispari.
Questa abbiamo visto che è una delle funzioni delle variabili, quella di indicare
un elemento generico. Quindi occorre sostituire i termini tecnici con le loro
definizioni, continuando con
se x è divisibile per 2, allora x + 1 non è divisibile per 2.
La frase “x è divisibile per 2” si formalizza con ∃y(x = 2 · y), che traduce:
“esiste un numero che moltiplicato per 2 dà x”; tale numero è indicato con
y, perché non lo conosciamo, e non possiamo conoscerlo se non conosciamo
x, o finché non conosciamo x; non possiamo dire che y è x/2 perché a rigore
non abbiamo l’operazione di divisione, se stiamo considerando solo i numeri
naturali (la si introduce proprio cosı̀, come inversa della moltiplicazione, ma
in generale insieme a un resto)1 .
1
Naturalmente una possibilità di espressione esplicita con un termine del linguaggio è
comoda, quando è disponibile; in generale però y non è una funzione esplicita di x con un
simbolo dell’alfabeto.
122
La frase successiva “x + 1 è dispari” significa che tutti i numeri z molti-
plicati per 2 sono diversi da x + 1.
In italiano, si direbbe correttamente:
se per qualche y si ha x = 2y, allora per nessun z si ha x + 1 = 2z.
Nel gergo matematico, si scrive soltanto
se x = 2y, allora x + 1 6= 2z,
ma la scrittura precisa è
123
vincoli che vedremo. Nelle definizioni invece occorre scrivere tutti i necessari
quantificatori nel modo corretto; non è lecito ometterne alcuni.
Per una trattazione rigorosa dei quantificatori occorrono altre precisazioni,
che si possono dare meglio nel contesto di un linguaggio formale, adatto alla
formalizzazione di tutte le frasi, che presentiamo in maniera analoga a quanto
fatto per il linguaggio proposizionale.
8.1 Alfabeto
L’alfabeto è stato già descritto informalmente nel capitolo 1.
Per ottenere i linguaggi predicativi, all’alfabeto costituito dai connettivi e
dalle parentesi si aggiungono le variabili, con i due quantificatori, e simboli di
predicato, di funzione e di costante. Le variabili sono disponibili in quantità
illimitata, anche se ogni volta se ne utilizzeranno solo un numero finito. Gli
altri simboli differiscono da linguaggio a linguaggio, possono anche mancare,
anche se almeno un simbolo di predicato deve sempre essere presente.
I simboli di predicato, di funzione e di costante costituiscono la parte
extralogica dell’alfabeto di un linguaggio.
P (t1 , . . . , tn )
124
sono liste di simboli dell’alfabeto e quella che costituisce in effetti il termine
in questione è semplicemente la concatenazione f t1 . . . tn .
Si può dimostrare che non esiste ambiguità nel ricostruire come è com-
posto il termine a partire da quali argomenti e quale simbolo funzionale,
anche senza parentesi (e tanto meno virgole). Si deve solo supporre che nel
dare l’alfabeto a ogni simbolo f sia associato in modo esplicito il numero
di argomenti di f . Questo fatto mostra i vantaggi della notazione prefissa
rispetto a quella infissa nella manipolazione meccanica.
Lo stesso vale per la scrittura P (t1 , . . . , tn ), che useremo ma che cor-
risponde alla parola P t1 . . . tn .
I termini chiusi sono i termini che non contengono variabili. !!!
Quando si trattano argomenti matematici, si usano le convenzioni a cui
si è abituati, di scrivere i simboli delle operazioni usuali3 in mezzo ai termini,
laddove la notazione funzionale preferisce mettere il simbolo di funzione da-
vanti; la stessa notazione infissa si adotta per le relazioni =, < e ≤.
Esempio Supponiamo di avere una costante 0 e un simbolo funzionale a
un argomento, indicato con 0 ; scriveremo x0 per 0 (x) e quindi x00 per 0 (0 (x)), . . .
I termini sono
0, x, y, . . . per tutte le variabili
0 0 0
0 , x , y , ...
000 , x00 , y 00 , . . .
...
L’insieme degli infiniti termini può essere enumerato in una successione unica,
ad esempio
0, 00 , x, 000 , x0 , y, 0000 , x00 , y 0 , z, . . .
Il criterio che guida l’enumerazione è quello, dopo il primo passo iniziale 0, 00 ,
di introdurre una nuova variabile, aggiungere un apice ai termini precedenti,
e ricominciare con una nuova variabile.
L’insieme dei termini distribuito in una matrice infinita viene percorso
secondo le diagonali:
3
In aritmetica e algebra si parla preferibilmente di operazioni, ma sono la stessa cosa
delle funzioni. Qualche volta il segno di moltiplicazione non si scrive.
125
0 x y z ...
7 7
?
00 x0 y 0 . . .
7
000 x00 y 00 . . .
7
0000
..
.
126
3 Se A e B sono formule e • un connettivo binario, anche (A • B) è una
formula.
127
P (x) ¬Q(y) ∃yR(x, y)
↓ ↓
Q(y) R(x, y).
Esempi
1. Tipiche formule atomiche di argomenti aritmetici e algebrici sono x −
1 = 0, x · y + x = x · (y + 1), x + (y + z) = (x + y + z), x < x + 1, e in
generale t1 = t2 e t1 ≤ t2 o t1 < t2 dove t1 e t2 sono termini.
2. Le identità booleane sono altri esempi di formule atomiche, ma si sono
anche incontrate altre formule più complesse del linguaggio insiemistico,
ad esempio le definizioni
∀x(x ∈ X ∩ Y ↔ x ∈ X ∧ x ∈ Y )
X ⊆ Y ↔ ∀x(x ∈ X → x ∈ Y )
o teoremi come
∀x(x ∈ X → x ∈ X ∨ x ∈ Y ),
5
Si può anche considerare ∈ come un simbolo di relazione tra insiemi, quando si studiano
questioni più avanzate che coinvolgono insiemi di insiemi, insiemi i cui elementi sono
insiemi, e non si fa una distinzione logica tra individui ed insiemi; tutte le variabili variano
su insiemi e si possono trovare formule come x ∈ y ∧ y ∈ z.
128
8.3 Variabili libere e vincolate
La clausola 4 della definizione del linguaggio predicativo6 è la clausola nuova,
rispetto al linguaggio proposizionale.
In una formula del tipo (∀xA), o (∃xA), A si chiama raggio d’azione
del primo quantificatore universale, o rispettivamente esistenziale. Tutte
le occorrenze di x all’interno del raggio d’azione vanno intese in senso o
universale, o rispettivamente esistenziale (con una riserva che vedremo).
Naturalmente in (∀xA) fuori dal raggio d’azione del primo quantificatore
non c’è nulla, ma si potrebbe pensare a (∀xA) come parte di un’altra formula,
ad esempio (∀xA) ∧ B.
Per le occorrenze di x al di fuori del raggio d’azione del quantificatore, se
non cadono dentro al raggio d’azione di un altro quantificatore, il senso in cui
vanno interpretate non è determinato. L’interpretazione di tutta la formula
allora è ambigua, o necessita di ulteriori precisazioni per essere compresa.
Ad esempio ∀x(x2 + 1 > 0), che si legge “per tutti gli x, x2 + 1 > 0”,
ha un senso compiuto, è l’affermazione di un fatto, e in particolare è vera in
tutti i domini numerici usuali ordinati; nella formula
129
(e cosı̀ pure la x adiacente a ∀ in ∀x o a ∃ in ∃x, che spesso non viene neanche
menzionata); le altre si dicono libere.
Se si vuole mettere in evidenza che la formula A contiene occorrenze libere
di x si scrive A(x), se contiene occorrenze libere di x e di y A(x, y).
Qualche volta si dice brevemente che x è libera in A per dire che in
A vi sono occorrenze libere di x, o che x è vincolata per dire che vi sono
occorrenze vincolate, ma bisogna fare attenzione che allora come abbiamo
visto una variabile può essere sia libera sia vincolata in una formula.
Le formule in cui non ci sono occorrenze libere di variabili si dicono enun-
ciati . Sono le formule per cui ha senso chiedere se sono vere o false (una volta
fissata l’interpretazione con il dominio di discorso).
Le formule che non sono enunciati saranno anche chiamate, per sottolin-
eare la differenza, formule aperte; esse non esprimono frasi, piuttosto definis-
cono insiemi, o relazioni, a seconda di quante variabili libere hanno.
Un’altra loro funzione è quella di intervenire nel procedimento per de-
cidere se gli enunciati sono veri o falsi.
Esempi
In ∀x(x2 + 1 > 0) ∧ x < 0 le prime due occorrenze di x sono vincolate; la
terza è libera.
In ∀x(x2 + 1 > 0) ∧ ∃x(x < 0) tutte le occorrenze della x sono vinco-
late, ma le prime due dal quantificatore universale, le altre dal quantificatore
esistenziale.
130
che richiede di essere letto con attenzione. Quando nella costruzione di una
formula si premette ad A un quantificatore con la variabile x, questo quan-
tificatore vincola tutte le occorrenze di x che sono libere in A, e solo quelle. !!!
Proprio per come è stato ottenuto, è chiaro che il quantificatore esistenziale
nell’esempio vincola l’occorrenza di x che prima era libera, cioè l’ultima, e
solo quella. L’azione del quantificatore esistenziale premesso ∃x scavalca la !!!
parte d. . .e in
d∀x(x2 + 1 > 0)∧ex < 0,
dove non ci sono occorrenze libere di x, per agire su x < 0 dove x occorre
libera. Le occorrenze vincolate di x in d. . .e, essendo già vincolate, sono
insensibili all’azione di un altro quantificatore. In effetti, è come se fosse
scritto ad esempio
∀z(z 2 + 1 > 0) ∧ x < 0,
e si ottenesse perciò
∃x(∀z(z 2 + 1 > 0) ∧ x < 0),
che è un modo di scrivere l’enunciato più chiaro, ed equivalente. Se si legge la
frase in italiano si vede bene che non c’è interferenza tra le occorrenze libere
e vincolate di x, perché si possono usare locuzioni diverse; “esiste un numero
tale che, mentre ogni numero elevato al quadrato e aumentato di 1 è maggiore
di 0, lui è negativo”8 . Ancor meglio, conviene leggere: “mentre ogni numero
elevato al quadrato e aumentato di 1 è maggiore di 0, esiste un numero che
è negativo”. Infatti un altro modo di evitare difficoltà interpretative è quello
di andare a piazzare il nuovo ∃x dove è richiesto, cioè scrivendo
∀x(x2 + 1 > 0) ∧ ∃x(x < 0).
Vedremo in seguito che tali trasformazioni equivalenti sono legittime.
Infine un quantificatore relativo ad una variabile x si può premettere
anche a una formula che non contenga alcuna occorrenza di x libera, ad
esempio ∃x∀y(y 2 + 1 > 0) o ∀x(y < 0). La definizione di “formula” non
lo esclude9 . In questi casi l’effetto del primo quantificatore è nullo, la sua
presenza superflua, e la formula ottenuta equivalente a quella originaria.
8
Si è usato qui “mentre” come congiunzione, per sottolineare la non connessione tra le
due parti della frase.
9
Non lo esclude perché sarebbe stato complicato inserire la condizione sulle occorrenze
libere nella definizione stessa iniziale.
131
8.4 Interpretazioni
Le formule matematiche presentate negli esempi visti finora possono essere
interpretate in diversi domini numerici; alcune sono vere negli uni e false
negli altri. La possibilità di diverse interpretazioni è ancora più evidente in
formule del tipo ∀x(∃yA(x, y) ↔ F (x)), dove ci sono simboli predicativi A
e F che non hanno un’interpretazione nemmeno nell’uso comune (come è il
caso dei simboli matematici), e questa è la caratteristica della logica formale.
∀x(∃yA(x, y) ↔ F (x)) può essere interpretato nell’universo delle persone,
e significare che chi ha un amico è felice, e solo se ha un amico - se A e F
sono interpretati in questo modo10 ; potrebbe significare che uno è felice se e
solo se ha un lavoro, o ancora avere altri significati; ma lo stesso enunciato
può essere interpretato nei numeri naturali, usando A(x, y) per “x è divisibile
per y con quoziente maggiore di 1 e minore di x” e F (x) per “x è un numero
composto”, e l’enunciato è vero in questa intepretazione.
Prima di chiedersi se un enunciato è vero o no occorre precisare quale
interpretazione si ha in mente, vale a dire innanzi tutto quale sia l’universo del
discorso, che deve essere un insieme non vuoto U ; quindi si devono stabilire le
relazioni e funzioni su questo insieme che corrispondono ai simboli predicativi
e funzionali che occorrono nell’enunciato. Se ci sono costanti, bisogna fissare
gli elementi di U di cui le costanti sono nomi.
Dare un’interpretazione significa conoscere gli insiemi definiti dalle loro !!!
formule atomiche, o i loro insiemi di verità11
Dare un’interpretazione comporta anche in particolare di determinare
quali elementi denotano le costanti e tutti i termini chiusi, e se questi el-
ementi stanno o no nelle relazioni in esame, e quindi se gli enunciati atomici
sono veri o no.
Un enunciato privo di quantificatori, ma contenente connettivi, ad esem-
pio 1 = 1 + 0 ∨ 1 6= 1 è vero in un’interpretazione U se assume il valore 1
quando sia considerato come una proposizione costruita a partire dagli enun-
ciati atomici, ai quali sono assegnati 1 o 0 a seconda che siano veri o no
nell’interpretazione U .
10
Qualcuno potrebbe non essere d’accordo che l’enunciato è vero, perché il suo amico
è un cane, e se l’universo è l’universo delle persone, l’∃y non è verificato dal cane; se si
vuole inserire anche gli animali nel discorso, allora l’universo deve essere modificato di
conseguenza a tutti gli esseri viventi.
11
Non si intende che queste conoscenze siano effettive, ma solo determinate in linea di
principio.
132
Un enunciato che inizia con un quantificatore universale ∀xA è vero in !!!
un’interpretazione U se l’insieme di verità di A è tutto U . Si dice anche in
tal caso che la formula A è valida nell’interpretazione.
Un enunciato che inizia con un quantificatore universale ∃xA è vero in
un’interpretazione U se l’insieme di verità di A non è vuoto. Si dice anche
che la formula A è soddisfacibile nell’interpretazione U .
L’insieme di verità di una formula composta si ottiene, a partire dagli
insiemi corrispondenti alle formule atomiche, ricordando la corrispondenza
tra i connettivi e le operazioni insiemistiche.
Tuttavia l’interrelazione tra quantificatori e connettivi nella valutazione12
di una formula è resa complicata dal fatto che i quantificatori possono trovarsi
non solo all’inizio di una formula, e quindi occorre saper trovare anche gli
insiemi di verità di formule che contengono quantificatori.
Ad esempio nell’insieme dei numeri interi Z, l’insieme di verità di
133
i quantificatori universali, ad esempio davanti agli assiomi, presentati come
formule valide.
La verifica della verità di un enunciato si riduce dunque al calcolo del
suo insieme di verità, ∅ o U , calcolo che può richiedere, come si è visto
nell’esempio di sopra, la considerazioni di sottoinsiemi di U × U o di spazi di
maggiori dimensioni.
L’insieme di verità di una formula soddisfa le seguenti condizioni:
se A è della forma ∀xB, l’insieme di verità di A è la cilindrificazione
dell’insieme di verità di B; se A è un enunciato, il suo insieme di verità è U
se l’insieme di verità di B è U , altrimenti è ∅;
se A è della forma ∃xB, l’insieme di verità di A è la proiezione dell’insieme
di verità di B; se A è un enunciato, il suo insieme di verità è U se l’insieme
di verità di B non è vuoto, altrimenti è ∅;
se A è della forma ¬B, l’insieme di verità di A è il complemento dell’insieme
di verità di B;
se A è della forma B ∧ C, l’insieme di verità di A è l’intersezione degli
insiemi di verità di B e di C;
se A è della forma B ∨ C, l’insieme di verità di A è l’unione degli insiemi
di verità di B e di C;
se A è atomica, il suo insieme di verità è dato dalla relazione corrispon-
dente al suo simbolo relazionale.
134
8.5 Esercizi
1. Scrivere in linguaggio predicativo tutte le definizioni relative alle re-
lazioni d’ordine del paragrafo 5.3 (massimo, maggiorante, . . . ).
135
9 Leggi logiche
La terminologia semantica introdotta per i linguaggi proposizionali si estende
agli enunciati predicativi. Un’interpretazione (del linguaggio) dell’enunciato
A si dice modello di A se A è vero nell’interpretazione.
Un enunciato A si dice logicamente vero se è vero in ogni interpretazione,
e si scriverà |= A.
Un enunciato B si dice conseguenza logica di A se in ogni interpretazione
in cui A è vero anche B è vero, e si scriverà A |= B.
Un enunciato B si dice logicamente equivalente a un enunciato A se A |=
B e B |= A.
Un enunciato A si dice insoddisfacibile o contraddittorio o inconsistente
se non è vero in nessuna interpretazione.
Vale ancora che per ogni A e B, A |= B se e solo se |= A → B se e solo
se A ∧ ¬B è insoddisfacibile.
Qualche volta, poiché gli enunciati sono pur sempre formule, si dice anche
“A logicamente valida” per |= A.
Ma inoltre si estendono le definizioni in modo da applicarle proprio anche
a formule aperte. Se A è una formula in cui occorre x libera, A si dice
logicamente valida se ∀xA è logicamente vero, cosı̀ come si dice valida in
un’interpretazione se ∀xA è vero in quell’interpretazione. Una formula si
dice soddisfacibile se esiste un’interpretazione in cui essa è valida1 .
Le formule logicamente valide continuano a chiamarsi anche leggi logiche.
136
c’è bisogno di considerare alcuna interpretazione e vedere se in essa ∃xP (x)
è vero o falso, perché comunque essa sia, e comunque sia l’interpretazione di
P , e quindi il valore di ∃xP (x), in essa ∃xP (x) ∨ ¬∃xP (x) risulterà vero.
Lo stesso succede con qualsiasi altra tautologia, e con la sostituzione di
una qualunque formula.
Quindi tutte le leggi logiche proposizionali restano tali considerando ora
le lettere A, B, . . . che vi compaiono come formule di un qualunque linguaggio
predicativo.
Ma esistono anche altre leggi logiche per formule con quantificatori che
non si ottengono in questo modo e dipendono proprio dal significato dei
quantificatori. Ad esempio
∀x¬A ↔ ¬∃xA
è una di queste2 .
Per verificarlo si ragiona nel seguente modo: in una qualunque interpre-
tazione, se ∀x¬A è vero, l’insieme di verità di ¬A è tutto l’universo, quindi
l’insieme di verità di A è vuoto; allora ∃xA è falso, e quindi ¬∃xA è vero.
Analogamente nell’altra direzione (esercizio)3 . 2
La legge si può considerare una generalizzazione di quelle di De Morgan,
se si pensa che affermare ∀xA(x) sia come fare una grande congiunzione per
tutte le A(x), al variare di x nell’universo, e affermare ∃xA(x), cioè che A
vale per almeno un x, sia come fare una grande disgiunzione.
Si è visto già nella definizione di unione e intersezione generalizzate come
i quantificatori esistenziale ed universale siano usati come generalizzazione
della disgiunzione e della congiunzione.
Se si combina questa legge logica con quella della doppia negazione si
ottengono altre versioni, come
¬∀x¬A ↔ ∃xA
∀xA ↔ ¬∃x¬A
2
Nella verifica di questa e delle successive leggi logiche, come già nella precedente della
forma A ∨ ¬A, supporremo per semplicità che si tratti di enunciati, solo per mostrare in
modo più facile l’idea soggiacente.
3
La legge vale naturalmente anche se x non occorre libera in A, ma in tal caso non dice
nulla, si riduce a ¬A ↔ ¬A.
137
che mostrano come i due quantificatori non siano indipendenti, ma l’uno
definibile in termini dell’altro, e della negazione. Si chiamano anche leggi
della interdefinibilità dei quantificatori.
∀xA(x) → A(t),
138
divide y, allora (2x)|y significa che 2x divide y, 1|y che 1 divide y, 0|y che
0 divide y, u|y che u divide y, ma ∃z(y = z · z) significherebbe che y è un
quadrato.
Quando si applica la legge di particolarizzazione per dedurre A(t) da !!!
∀xA(x) perciò, t per essere ammissibile non deve essere e non deve contenere
variabili quantificate in A e tali che qualche occorrenza libera di x cade nel
raggio d’azione dei loro quantificatori. I termini chiusi sono sempre ammis-
sibili.
Le applicazioni della legge sono frequenti; gli assiomi di una teoria sono in
genere enunciati che iniziano con un quantificatore universale (oppure sono
presentati come formule valide, supponendo tacitamente una possibilità di
sostituzione di termini qualsiasi alle variabili che è di fatto un’applicazione
della particolarizzazione).
Si trovano sia esempi di applicazioni in cui t è chiuso sia esempi in cui
contiene variabili.
Esempio
La legge boleana dell’unicità dell’elemento neutro dell’addizione
∀x(x + y = x) → y = 0
A(t) → ∃xA(x),
139
stata ottenuta per sostituzione di −y a z in y + z = 0 e si può altrettanto
correttamente dedurre ∃z(y + z = 0).
Un’applicazione di questa regola appare nella dimostrazione che se due
numeri sono divisibili per 3 anche la loro somma lo è: dato due numeri n ed
m, per ipotesi esistono i e j tali che n = 3i e m = 3j, quindi n + m = 3(i + j)
da cui ∃k(n + m = 3k).
140
sono immediate conseguenze del significato dei simboli logici.
Mentre è pure ovvio che siano logicamente valide
141
Per verificare la prima, dato un U qualsiasi e supposto per semplicità che A
sia un enunciato, distinguiamo due casi. Se A è falso, A → ∀xB(x) è vero,
ma d’altra parte anche ∀x(A → B(x)) è vero perché l’insieme di verità di
A → B(x), che è sempre soddisfatta se A è falso, è tutto U .
Se A è vero, l’insieme di verità di A → B(x) è uguale all’insieme di verità
di B(x). Se è uguale a U , ∀x(A → B(x)) è vero, ma anche ∀xB(x) lo è, e
cosı̀ pure A → ∀xB(x). Se non è uguale a U si ha falso da entrambi i lati. 2
∀x(A(x) → B) ≡ ∃xA(x) → B
∃x(A(x) → B) ≡ ∀xA(x) → B
142
Per la dimostrazione, si supponga ∃xA(x) → B vero, quindi B vero o
∃xA(x) falso. Se B è vero, allora l’insieme di verità di A(x) → B è tutto
l’universo, perché per ogni elemento il condizionale ha il conseguente vero. Se
∃xA(x) è falso, di nuovo l’insieme di verità di A(x) → B è tutto l’universo,
perché per ogni elemento il condizionale ha l’antecedente falso.
Se invece ∃xA(x) → B è falso, allora B è falso e ∃xA(x) è vero, quindi
almeno un elemento soddisfa A. Quando si esamina la formula A(x) → B,
per questo elemento si ha vero-falso per il condizionale, che risulta falso, e
quindi l’insieme di verità di A(x) → B non è tutto l’universo e ∀x(A(x) → B)
è falso. 2
L’altra analoga legge si ricava nello stesso modo; se ∃x(A(x) → B) è vero
in U , allora qualche elemento di U soddisfa A(x) → B; se B è vero, anche
∀xA(x) → B lo è; se A(x) non è soddisfatto da questo elemento, allora
∀xA(x) è falso e ∀xA(x) → B è vero.
Se ∃x(A(x) → B) è falso, per qualunque elemento A(x) → B non è
soddisfatta, quindi il calcolo del condizionale porta a un vero-falso, e A(x)
deve essere soddisfatta e B deve essere falso; ma allora ∀xA(x) è vero e B è
falso e ∀xA(x) → B falso. 2
143
Si noti lo scambio dei quantificatori universali ed esistenziali nei due pre-
fissi; lo scambio di solito non è permesso, non è valido in generale, ma capita
con prefissi diversi di due forme premesse equivalenti di una stessa formula.
Le regole viste, ed elencate nella tabella di sotto, sono sufficienti a trasfor-
mare ogni formula in forma prenessa.
Tuttavia alcune ulteriori leggi utili si derivano da esse con l’uso della
rinomina delle variabili vincolate. Ad esempio dalla distributività di ∀ su
∧ segue ∀xA ∧ B ≡ ∀x(A ∧ B) se x non libera in B, e analogamente dalla
distributività di ∃ su ∨ segue ∃xA ∨ B ≡ ∃x(A ∨ B) se x non libera in B.
Per trasformare in forma prenessa ∀xA(x) ∧ ∃xB(x) si può allora ot-
tenere prima ∃x(∀xA(x) ∧ B(x)); quindi poiché x è libera in B(x) si sostitu-
144
isce ∀xA(x) ∧ B(x) con l’equivalente ∀z(A(z) ∧ B(x)), dopo la rinomina di
∀xA(x) ∧ B(x) in ∀zA(z) ∧ B(x);
Si ottiene infine ∀xA(x) ∧ ∃xB(x) ≡ ∃x∀z(A(z) ∧ B(x)), oppure in altro
modo (esercizio) ∀xA(x) ∧ ∃xB(x) ≡ ∀x∃z(A(x) ∧ B(z)).
9.1 Esercizi
1. Dedurre la generalizzazione esistenziale dalla particolarizzazione uni-
versale e da De Morgan generalizzata.
145
che rispettano la relazione di conseguenza logica valgono anche quando le
lettere indicano formule di linguaggi predicativi.
Consideriamo l’esempio già menzionato di
x = 2 · c,
∃y(x + 1 = 2 · y).
9
In questo esempio particolare ce ne può essere solo uno, ma in generale, col quantifi-
catore esistenziale, non si sa quanti ≥ 1 ce ne sono.
10
Siccome c dipende da x, si dovrebbe piuttosto avere una funzione di x, o una notazione
del tipo cx , che però sarebbe inutilmente pesante.
146
Di nuovo, sia d una nuova costante, per cui x + 1 = 2 · d. d non solo
deve essere nuova non solo rispetto a quelle del linguaggio originario, ma
anche rispetto a quelle introdotte nel corso dell’argomentazione; in attesa di
ulteriori elaborazioni non si sa infatti e non si può dire se l’elemento sia lo
stesso o diverso11 .
Ora occorre svolgere le conseguenze di x = 2 · c ∧ x + 1 = 2 · d. c e d
vengono da due mosse indipendenti che non permettono di sapere come sono
fra loro i due elementi cosı̀ denotati; si devono quindi considerare tutte le
possibilità, che c = d, che c < d, che d < c.
c = d porta a una contraddizione x = x + 1; d < c porta a una contrad-
dizione x + 1 < x; c < d porta, per sottrazione, a 1 = 2 · (d − c) ≥ 2; in ogni
caso una contraddizione, a partire da ∃y(x + 1 = 2 · y), e da x = 2 · c, quindi
¬∃y(x + 1 = 2 · y), come si voleva dimostrare12 .
¬∃y(x + 1 = 2 · y) è stata dedotta da x = 2 · c, ma nella conclusione non si
parla di c, utilizzata come appoggio nel ragionamento; il che è bene, perché
non sarebbe opportuno concludere un teorema con una formula in cui occorre
un elemento sconosciuto. D’altra parte l’obiettivo della dimostrazione, fissato
all’inizio, non contemplava elementi sconosciuti, ma enunciati determinati.
E infine nella dimostrazione non si è usata alcuna proprietà di c, se non il
fatto che x = 2 · c.
Si conclude allora che ¬∃y(x + 1 = 2 · y) è stata in realtà dedotta da
∃y(x = 2 · y). 213
Quest’ultimo passaggio tecnicamente chiude l’applicazione della regola
dell’esemplificazione esistenziale, che copre tutti i passi dal momento in cui
si dice “sia c un elemento tale che x = 2c” fino a quando scompare la c. Esso
può sembrare diverso da una meccanica applicazione di una regola sintattica
(che ha una o due premesse e una conclusione immediata).
11
Se alla fine dovesse risultare che d è uguale a c, vuol dire che si sono attributi due
nomi allo stesso elemento, che non è inusuale, sia nella vita comune sia in matematica,
ogni volta che si dimostra che due termini sono uguali, ad esempio 0 = 0 + 0.
12
Ripasso di logica proposizonale: se da p e q segue una contraddizione C, p ∧ q → C,
ne segue ¬(p ∧ q), le due proposizioni sono incompatibili, ma quale salvare? ¬(p ∧ q) è
equivalente sia a p → ¬q sia a q → ¬p. Tuttavia dallo svolgimento della dimostrazione si
vede che in realtà si è dimostrato l’equivalente, per importazione/esportazione, p → (q →
C), da cui p → (¬C → ¬q) e quindi p → ¬q (perché?), e la scelta è dunque implicita
nell’impostazione della dimostrazione.
13
La dimostrazione termina poi scrivendo prima ∃y(x = 2 · y) → ¬∃y(x + 1 = 2 · y) e
quindi poiché x era qualunque, ∀x(∃y(x = 2 · y) → ¬∃y(x + 1 = 2 · y)).
147
Prima di discutere questo fatto, vediamo un altro caso di esemplificazione
esistenziale: dimostriamo che se un numero è divisibile per 4 allora è divisibile
per 2. In questo caso l’elemento sconosciuto apparentemente si mantiene
fino alla fine, nella conclusione, ed allora deve essere eliminato da questa con
un’applicazione della generalizzazione esistenziale.
Da
∃y(x = 4 · y)
si passa a
x=4·c
x = (2 · 2) · c
x = 2 · (2 · c)
Di qui si vede che x è divisibile per 2, ma non si può terminare con questa
formula. Per generalizzazione esistenziale invece, considerata la formula x =
2 · (2 · c) come formula del tipo A[2 · c/y], con A(y) uguale a x = 2 · y, si può
allora dedurre
∃y(x = 2 · y),
per concludere
∃y(x = 4 · y) → ∃y(x = 2 · y)
e quindi
148
Si può tuttavia dimostrare che, nelle condizioni della regola applicata a !!!
∃yA(y), se B è una formula che non contiene c, e se B è conseguenza logica
di A(c) allora B è conseguenza logica di ∃yA(y) - nonostante A(c) non sia
conseguenza logica di ∃yA(y).
La spiegazione, in breve, è la seguente. Posto che B segua da A(c), dove
c non occorre in B, si ha
A(c) → B.
∀c(A(c) → B)
A(w) → B
∀w(A(w) → B)
e infine
∃wA(w) → B.
149
come nell’esempio dell’amico che rende felici, che può essere qualunque, anche
ora si dice che y può essere qualunque, purché soddisfi poi l’antecedente
x = 2 · y.
Allora la y di x = 2 · y è trattata in questa versione della dimostrazione
come una variabile universale. Data una y qualunque, occorre dimostrare
che
x = 2 · y → ¬∃y(x + 1 = 2 · y),
ovvero
x = 2 · y → ∀y(x + 1 6= 2 · y).
Il quantificatore del conseguente può essere spostato nel prefisso, dopo aver
eseguito un’opportuna rinomina, e la formula da dimostrare è equivalente a
∀z(x = 2 · y → x + 1 6= 2 · z);
quindi possiamo provare a dimostrare
x = 2 · y → x + 1 6= 2 · z,
con tutte le variabili intese in senso universale.
Per assurdo, assumiamo la negazione del condizionale, quindi
x = 2 · y ∧ x + 1 = 2 · z,
e con gli stessi calcoli fatti sopra, con y e z al posto rispettivamente di c e d,
arriviamo a una contraddizione.
Abbiamo quindi
x = 2 · y → x + 1 6= 2 · z,
e quantificando universalmente
∀x∀y∀z(x = 2 · y → x + 1 6= 2 · z),
da cui con le leggi logiche pertinenti
∀x(∃y(x = 2 · y) → ∀z(x + 1 6= 2 · z)). 2
Si noti che di solito nel gergo matematico, dove non si usa indicare i
quantificatori, attraverso un’interpretazione (corretta) dell’enunciato da di-
mostrare si imposta direttamente proprio
150
se x = 2 · y, allora x + 1 6= 2 · z.
151
Da “sia y un elemento tale che x = 2·y” la dimostrazione prosegue come sopra:
si deve dimostrare che da x = 2 · y segue ¬∃y(x + 1 = 2 · y).
Per assurdo, si assume x = 2 · y e ∃y(x + 1 = 2 · y) e di nuovo si applica
l’esemplificazione esistenziale. La regola richiede che si utilizzi una variabile diversa
da quelle che occorrono libere nella parte precedente, in questo caso da y.
Si perviene cosı̀ a x = 2 · y ∧ x + 1 = 2 · z da cui segue una contraddizione con
gli stessi calcoli di sopra, con y e z al posto rispettivamente di c e d. 2
Altro esempio. La dimostrazione di ∃y(x = 4 · y) → ∃y(x = 2 · y) si svolge
come sopra assumendo ∃y(x = 4 · y) ed esemplifcando: sia y uno di questi, per cui
x=4·y
x = (2 · 2) · y
x = 2 · (2 · y)
∃y(x = 2 · y),
quest’ultima per generalizzazione esistenziale. 2
È come se il quantificatore ∃y, staccato dall’ipotesi, restasse a seguire dall’alto
i vari passi e trasformazioni della sua y, in questo caso in 2 · y, per poi alla fine
ripiombare nella posizione dovuta.
152
(come sopra, una dimostrazione per assurdo di un altro enunciato, oppure
per il taglio di un modus ponens), o per generalizzazione esistenziale16 .
Quello che bisogna assolutamente evitare è di quantificare universalmente !!!
una variabile che sia stata introdotta come esemplificazione di un quantifica-
tore esistenziale (in questo l’uso di una costante ha ovvi vantaggi).
Un esempio di errore clamoroso dovuto a una simile disattenzione è la
seguente dimostrazione di ∃x∀y(x < y) a partire da ∀x∃y(x < y).
Assunto ∀x∃y(x < y), per particolarizzazione si ha ∃y(x < y); per es-
emplificazione esistenziale, sia y tale che x < y. Se ora dimenticandosi della
natura esistenziale di y si affermasse ∀y(x < y) si potrebbe concludere per
generalizzazione esistenziale che ∃x∀y(x < y).
Ma questa conclusione non è conseguenza della premessa, come si vede
dal fatto che la premessa è ad esempio vera negli interi, mentre la conclusione
non lo è.
Anche la gestione della introduzione del quantificatore universale è più
delicata di quanto finora abbiamo lasciato intendere. Si possono legittima-
mente (ri)quantificare universalmente le variabili libere che derivano per par-
ticolarizzazione da un quantificatore universale, ma non è questa tutta la
storia. A volte sembra di lavorare con varibili libere che non derivano da
una particolarizzazione, e che pure hanno un significato universale. La vera
condizione è che le variabili non occorrano libere nelle premesse. !!!
Ad esempio, se si parte da 0 < x e con un argomento corretto, utilizzando
le proprietà dei numeri reali, si conclude ∃y(x = y 2 ), non si può affermare
∀x∃y(x = y 2 ) - c’è una condizione restrittiva su x stabilita dalla premessa.
In realtà l’argomento che porta da 0 < x a ∃y(x = y 2 ) stabilisce 0 < x →
∃y(x = y 2 ) per x qualunque, senza alcuna premessa (salvo le proprietà dei
numeri reali espresse da enunciati, senza variabili libere). Quindi x non è
libera nelle premesse della derivazione di quest’ultima formula, che non ci
sono, e si può correttamente quantificarla in ∀x(0 < x → ∃y(x = y 2 )).
Un altro caso del genere si ha nell’esempio precedente “se x è pari allora
x + 1 è dispari”. La dimostrazione che da “x è pari” porta a “x + 1 è dispari”
stabilisce “x è pari → x + 1 è dispari” senza premesse che non siano gli
16
L’affermazione ∃yA(y) introdotta per generalizzazione esistenziale comporta
un’affermazione apparentemente più debole, generica, rispetto a A(t), che sembra indi-
care esplicitamente un elemento con la proprietà A, ma nelle applicazioni come si è visto,
se t deriva da un’esemplificazione esistenziale, allora in realtà anche la sua denotazione è
vaga.
153
assiomi dei numeri naturali, espressi da enunciati. Quindi si può quantificare
universalmente la x.
come
Dopo i preliminari “sia x tale che . . . ” si deve cercare di dedurre partendo da x < y
prima ∀x(x < y) e quindi ∃y∀x(x < y). Ma l’assunzione x < y non può essere
quantificata universalmente, è una premessa della derivazione del condizionale.
Oppure si può pensare che quando si passa da ∃y(x < y) a x < c il termine c
dipenda da x (si scriva cx per ricordarlo, potrebbe essere addirittura proprio un
termine c(x), c nuovo simbolo funzionale). Allora l’applicazione della regola di
generalizzazione esistenziale per ottenere ∃z∀x(x < z) da ∀x(x < cx ) non sarebbe
lecita in quanto cc non sarebbe ammissibile per ∀x(x < z).
Queste sottigliezze sono precisate e rese di agevole applicazione nei sis-
temi di regole che costituiscono i calcoli logici per i linguaggi predicativi, ad
esempio il calcolo della deduzione naturale, che rientrano negli argomenti non
propedeutici.
154
10 Sillogismi
I sillogismi sono forme di ragionamento studiate fin dall’antichità che coin-
volgono enunciati di linguaggi predicativi, ancorché di un tipo semplificato;
molti argomenti del linguaggio comune si presentano in tale forma, e rapp-
resentano perciò un utile esercizio, sia di formalizzazione sia di deduzione,
anche al di fuori della matematica.
Gli enunciati che intervengono nei sillogismi contengono solo predicati
monadici, a un posto, e inoltre sono di una forma particolare.
Gli enunciati presi in considerazione e combinati tra loro affermano sem-
pre una delle seguenti circostanze: che tutti quelli che hanno una proprietà
P hanno anche la proprietà Q; che nessuno di quelli che hanno una proprietà
P hanno la proprietà Q; oppure che qualcuno che ha la proprietà P ha anche
Q, o infine che qualcuno con la proprietà P non ha Q.
Enunciati di questa forma si chiamano, nella tradizione logica, propo-
sizioni categoriche1 .
A prima vista si direbbe che il loro studio costituisca un’analisi dei quan-
tificatori, ma è forse più corretto dire che mette in evidenza e sfrutta alcune
relazioni insiemistiche della sola intersezione, e precisamente
A ∩ B = A, ovvero A⊆B
A ∩ B = ∅, ovvero A e B sono disgiunti
A ∩ B 6= ∅, ovvero A e B non sono disgiunti.
Le proposizioni categoriche venivano scritte e lette nel seguente modo,
dove a fianco mettiamo la versione insiemistica e quella logica moderna:
155
proposizioni2 : A ed E sono proposizioni affermative, rispettivamente uni-
versale ed esistenziale; I e O sono negative, rispettivamente universale ed
esistenziale.
Le parole “tutti”, “nessuno”, “qualche” diventavano superflue, sostituite
dalla sigla prefissa; scrivendo “A : P Q” si intendeva la frase “tutti i P sono
Q”, con “I : P Q” la frase “qualche P è Q”, e cosı̀ via. Il simbolismo logico
come si vede ha una lunga storia.
Siccome c’era sempre solo una variabile individuale, non si è sentita
l’esigenza di indicarla. Il verbo era sempre il verbo “essere”; noi dobbiamo
distinguere i casi universali che richiedono condizionale e quelli particolari,
resi da una congiunzione.
156
cui il nome di questi due predicati4 -, osservando che il termine medio deve
sempre comparire in entrambe le premesse - altrimenti si vede facilmente che
il sillogismo non è valido5 - e che l’ordine delle premesse non è rilevante (per
la terminologia, si chiama premessa maggiore quella che contiene S, e minore
l’altra) si ottengono in tutto quattro figure:
SM SM MS MS
P M MP MP P M.
E: P M
I : S M
O: S P,
ovvero
4
Sono grammaticalmente il soggetto e il predicato della conclusione.
5
A meno che la conclusione non coincida con una premessa.
6
Una lunga controversia ha riguardato il fatto di considerare o no predicati vuoti,
decisione che influenza la validità o meno di certi sillogismi. Nell’antichità si preferiva evi-
tarli; nella trattazione moderna prevale l’interpretazione cosiddetta booleana, che ammette
predicati vuoti. Sono 15 i sillogismi validi nell’interpretazione booleana.
157
∀x(P (x) → ¬M (x))
∃x(S(x) ∧ M (x))
∃x(S(x) ∧ ¬P (x)).
S(c) Allora c è un S e
M (c) c è un M.
158
In modo del tutto analogo, si dimostri (esercizio) la validità del sillogismo:
A: P M
O : S M
O: S P,
ovvero
A: M S
I : M P
I: S P,
ovvero
con la dimostrazione:
159
Dimostrazione
M (c) c è un M.
P (c) c è un P.
S(c) Siccome c è un M,
c è un S.
A: S M
A : M P
A: S P,
ovvero
∀x(S(x) → M (x))
∀x(M (x) → P (x))
∀x(S(x) → P (x)),
160
con la seguente dimostrazione:
Dimostrazione
per transitività da 2 e 4
S(x) → P (x) U no che sia un S è anche un P.
A: S M
A : M P
I: S P,
ovvero
∀x(S(x) → M (x))
∀x(M (x) → P (x))
∃x(S(x) ∧ P (x)),
161
∀x(S(x) → P (x)) sia vero (da ∀x(S(x) → P (x)) segue ∃x(S(x) → P (x)) -
verificato da un elemento non appartenente a S - non ∃x(S(x) ∧ P (x)))7 .
∀x(S(x) → M (x))
∃x(M (x) ∧ P (x))
∃x(S(x) ∧ P (x))
162
“Sarebbe come dire” significa che se il primo argomento fosse corretto
allora il sillogismo
A: P M
I : S M
I: S P
sarebbe valido e allora anche il nuovo argomento, della stessa struttura for-
male, dovrebbe essere corretto. Ma quest’ultimo ovviamente non lo è.
Che non lo sia, e quindi che si sia esibito un controesempio, non è mai del
tutto chiaro se gli esempi sono fatti in linguaggio naturale. Nessun insieme
definito nel linguaggio naturale ha i confini esattamente delimitati senza am-
biguità. Per questo i controesempi devono essere insiemi astratti, dove gli
elementi e i non elementi sono individuati in maniera precisa e indiscutibile.
Nel caso in oggetto, un controesempio è fornito da U = {a, b, c, d} con
S = {c, d}, P = {a, b} e M = {a, b, c}.
E: S M
I : P M
O: S P
163
non è valido se S è vuoto oppure se S ⊆ P .
P M
S M
valido, con M uguale a “essere disprezzato”, S uguale a “persone illogiche”
e P uguale a “saper trattare i coccodrilli”.
Combiniamo ora la conclusione e con a:
164
E: P M
A : S M
E: S P
ovvero
∀x(P (x) → ¬M (x))
∀x(S(x) → M (x))
∀x(S(x) → ¬P (x))
è valido:
Dimostrazione
165
riguarda le loro intersezioni (i loro complementi sono le regioni esterne ai
cerchi).
'$
'$
S P
'$
&%
&%
&%
M
A:S M S ∩ (∼ M ) = ∅
E:S M S∩M =∅
I: S M S ∩ M 6= ∅
O:S M S ∩ (∼ M ) 6= ∅
e cosı̀ le proposizioni categoriche che coinvolgono altre coppie di predicati.
Esempi
Consideriamo il sillogismo:
A: P M
O: S M
O: S P
ovvero
166
∀x(P (x) → M (x))
∃x(S(x) ∧ ¬M (x))
∃x(S(x) ∧ ¬P (x)).
'$'$
S P
× '$
&%&%
&%
M
Ora si interpreta quello che dice la figura, come conseguenza delle due pre-
messe, confrontandolo con quello che afferma la conclusione. La conclusione
afferma che deve esserci una crocetta in S ∩ (∼ P ) e infatti la crocetta è stata
disegnata in quell’area, come conseguenza delle due premesse; è stata messa !!!
prima di guardare la conclusione.
ovvero
∀x(P (x) → ¬M (x))
∃x(S(x) ∧ M (x))
∃x(S(x) ∧ ¬P (x)).
167
perché P ⊆ ∼ M . La seconda premessa ci fa mettere una crocetta nell’area
S ∩ M , ma di fatto nell’area S ∩ M ∩ (∼ P ) perché S ∩ M ∩ P = ∅.
'$
'$
S P
'$
× &%
&%
&%
M
A: S M
I: M P
I: S P
ovvero
∀x(S(x) → M (x))
∃x(M (x) ∧ P (x))
∃x(S(x) ∧ P (x)).
168
'$
'$
S P
'$
+
&%
&%
&%
M
169
11 Alberi di refutazione
11.1 Regole per i quantificatori
La tecnica degli alberi di refutazione si estende agli enunciati dei linguaggi
predicativi aggiungendo le seguenti regole per i quantificatori, una per ∃ e
una per ∀, mentre quelle per ¬∃ e per ¬∀ si riducono alle prime due grazie
alle leggi di De Morgan generalizzate:
• Se A è ∃xB, si introduce una nuova costante c e alla fine di ogni ramo
non chiuso passante per A si appende alla foglia il successore B(c)1 ,
come nello schema
[∃xB]
..
.
↓
F
↓
B(c)
• Se A Se A è ∀xB, allora alla fine di ogni ramo non chiuso passante per
A, per tutti i termini chiusi t1 , . . . , tn che occorrono in qualche enunciato
del ramo, e tali che B(ti ) non occorre già nel ramo, si appendono alla
foglia n + 1 nodi in serie, prima B(t1 ), . . . , B(tn ) e poi ancora ∀xB, !!!
come nello schema
[∀xB]
..
.
↓
F
↓
B(t1 )
↓
1
S’intende che se B non contiene la x libera B(c) è B.
170
..
.
↓
B(tn )
↓
∀xB
[¬∀xB]
..
.
↓
F
↓
∃x¬B(x)
[¬∃xB]
..
.
↓
F
↓
∀x¬B
171
Nell’applicazione della regola per ∃xB la costante deve essere diversa da
quelle che occorrono già in enunciati del ramo - nuova perché le informazioni !!!
disponibili non permettono di dire se l’elemento che esemplifica B sia uno già
noto o no - ma non necessariamente diversa da quelle che sono solo su altri
rami. Ogni ramo è una strada indipendente dalle altre; tuttavia per evitare
confusioni è bene ogni volta prendere una costante che sia diversa da tutte
quelle che occorrono in tutto l’albero.
Esempi
L’albero:
¬(∀x(P (x) → Q(x)) → (∀xP (x) → ∀xQ(x)))1
↓
∀x(P (x) → Q(x))5
172
↓
¬(∀xP (x) → ∀xQ(x))2
↓
∀xP (x)4
↓
¬∀xQ(x)3
↓
¬Q(c)
↓
P (c)
↓
P (c) → Q(c)
. &
¬P (c) Q(c)
chiuso chiuso
è chiuso.
L’albero:
173
P (d) → ∃yQ(y)
↓
¬Q(d)
chiuso
174
Teorema 11.1.2 (Completezza) Se A è insoddisfacibile, l’albero con radice
A si chiude.
Esempio
L’albero
175
all’infinito, e non è detto che ci sia mai uno stadio in cui ci accorgiamo che
l’albero andrà avanti a crescere all’infinito (altrimenti è come se sapessimo
che non si chiude).
Un metodo con queste caratteristiche si dice metodo di semidecidibilità
e l’insieme degli enunciati insoddisfacibili è semidecidibile.
11.1.1 Esercizi
1. Verificare con gli alberi di refutazione tutte le leggi logiche finora in-
contrate.
2. Verificare con gli alberi di refutazione che ∃xP (x)∧∃xQ(x) → ∃x(P (x)∧
Q(x)) e ∀x(P (x) ∨ Q(x)) → ∀x(P (x) ∨ ∀xQ(x)) non sono logicamente
veri.
176
diventa
quindi
che diventa
177
A questo punto si lavora prima sugli enunciati che iniziano con un ∃ o un
¬∀, il cui effetto è quello di introdurre nuove costanti - e sono i soli che intro-
ducono nuove costanti. Essi danno origine a enunciati privi di quantificatori,
per l’assenza di quantificatori incapsulati.
Ora si applicano le regole agli enunciati che iniziano con ∀ o ¬∃, eseguendo
tutte le sostituzioni possibili delle costanti, che danno di nuovo origine a
enunciati privi di quantificatori. Tali enunciati non devono essere riscritti,
perché il seguito del lavoro non costringerà più a tornare su di essi; non si
generano più altri enunciati che iniziano con ∃ o ¬∀. Ai nuovi enunciati
privi di quantificatori si applicano eventualmente le regole proposizionali del
caso, ma l’applicazione di regole proposizionali dopo un numero finito di passi
termina.
Esempi
Il sillogismo
∀x(S(x) → M (x))
∃x(M (x) ∧ P (x))
∃x(S(x) ∧ P (x))
∀x(S(x) → M (x))3
↓
∃x(M (x) ∧ P (x))1
↓
¬∃x(S(x) ∧ P (x))4
↓
M (c) ∧ P (c)2
↓
M (c)
↓
↓
P (c)
↓
178
S(c) → M (c)5
↓
¬(S(c) ∧ P (c))6
.&
¬S(c) M (c)
.& .&
¬S(c) ¬P (c) ¬S(c) ¬P (c)
chiuso chiuso
Due rami sono chiusi; gli altri due danno le stesse informazioni, in quanto
contengono entrambi M (c), P (c), ¬S(c). Il controesempio fornito da questo
albero è U = {c} con M = {c}, P = {c} e S = ∅.
Questa non è l’interpretazione proposta a suo tempo come controesempio,
che era stata U = {a, b, c}, S = {a}, M = {a, c}, P = {b, c}, ma ques’ultima
si ottiene dalla presente aggiungendo a e b all’universo; l’interpretazione for-
nita dall’albero è minimale, e lo è sempre3 .
È raro che si trovi un solo modello di un enunciato, in realtà non ce ne è
mai uno solo, ma la dimostrazione di questo fatto è complicata4 .
Il sillogismo:
è valido.
L’albero:
179
∃x(M (x) ∧ P (x))1
↓
¬∃x(S(x) ∧ P (x))3
↓
M (c) ∧ P (c)
↓
M (c)
↓
P (c)
↓
M (c) → S(c)4
↓
¬(S(c) ∧ P (c))5
.&
¬M (c) S(c)
chiuso .&
¬S(c) ¬P (c)
chiuso chiuso
è chiuso.
11.2.1 Esercizi
Verificare con gli alberi di refutazione la validità o meno dei 256 sillogismi.
180
12 Il principio di induzione
Come si fa a dimostrare che un enunciato universale1 ∀xA(x) vale in un
universo infinito? Non si possono certo passare in rassegna tutti gli elementi
dell’universo. Alcune regole logiche sembrano utilizzabili, in particolare la
riduzione all’assurdo o quelle che permettono di derivare enunciati universali
da altri, già però noti, come la distributività di ∀ su →:
∀x(B(x) → A(x)) ∀xB(x)
∀xA(x).
Con le sole regole logiche si dimostrano solo enunciati veri in tutte le inter-
pretazioni, non in una particolare.
Un insieme infinito peraltro non può essere dato se non attraverso una
definizione, che ne mette in evidenza alcune proprietà caratteristiche. Queste
sono assunte in genere come assiomi della struttura, e a partire da essi si
deducono altre proprietà vere nella struttura stessa (e in tutte le eventuali
altre che soddisfano gli assiomi). !!!
Le strutture numeriche classiche, che sono insiemi infiniti, hanno poi cias-
cuna qualche caratteristica particolare che permette di svolgere ragionamenti
tipici ed esclusivi2 , ad esempio la continuità per i numeri reali. La più sem-
plice struttura numerica è quella dei numeri naturali N.
181
0, 00 , 000 , . . . , n, n0 , . . .
∀x(0 6= x0 )
∀x∀y(x 6= y → x0 6= y 0 )
che costituiscono i primi assiomi dei numeri naturali6 .
Si è abituati a dire che ogni numero si ottiene dal precedente con “+ 1”,
ma l’operazione di addizione compare, è definita, solo nella più ricca struttura
che si ottiene sulla base della definizione fondamentale.
Quando si parte da zero7 per introdurre N, si vuol dire innanzi tutto che
N è un insieme infinito; la definizione è la seguente: un insieme X è infinito
se esiste una iniezione di X su un sottoinsieme proprio di se stesso.
I tre assiomi sopra presentati esprimono questo fatto, con la funzione
iniettiva (terzo assioma) “successore” che manda tutto l’insieme N (primo
assioma) nel suo sottoinsieme proprio N \ {0} (secondo assioma)8 .
Ora però N non è solo un insieme infinito: ogni suo elemento si ottiene
da 0 iterando un numero finito di volte l’operazione di successore. Non ci
sono altri elementi al di fuori di questa catena senza fine. La condizione non
sembra facile da esprimere, perché per parlare di iterare un numero finito
di volte il successore parrebbe necessario avere già la nozione di numero
naturale.
4
Il fatto che n nella successione venga dopo i puntini, non significa che è un numero
grande; n è una variabile che indica un numero qualunque, e può assumere anche i valori
0, 1,. . .
5
E lo 0 non ha nulla di magico ma è solo il primo. Meglio ancora indicare la serie con
|, ||, |||, . . .
182
Tuttavia soccorre questa idea, derivata dalla precedente intuizione, che
se una proprietà, espressa da una formula A(x), è tale che si trasporta nel
passaggio da n a n0 , o che è invariante rispetto al successore, cioè è tale
che se vale per un generico n allora vale per n0 , in simboli A(n) → A(n0 ),
allora come ogni numero si ottiene da 0 passando attraverso una catena di
successori, cosı̀ se A vale per 0 allora A vale per tutti i numeri.
Un’immagine comoda per rappresentarsi la situazione è quella di una
successione di pezzi di domino messi in piedi in equilibrio precario, distanti
tra loro meno della loro altezza. Cosı̀ se un pezzo cade verso destra fa cadere
verso destra quello adiacente. Se cade il primo, fa cadere il secondo, che fa
cadere il terzo, e tutti cadono.
-
0 ∈ X ∧ ∀x(x ∈ X → x0 ∈ X) → N ⊆ X,
dove A è una formula qualsiasi del linguaggio aritmetico, che all’inizio con-
tiene solo 0 e 0 , oltre a =.
183
parte del programma. Nel seguito ci limiteremo a familiarizzarci con le con-
seguenze dell’assioma di induzione in una varietà di esempi, e per far questo
daremo per note alcune proprietà aritmetiche, algebriche e geometriche ele-
mentari.
In particolare useremo subito il fatto che dalla definizione dell’addizione
(che daremo in seguito) segue che n0 = n + 1 e adotteremo questa notazione
per il successore.
Supporremo anche definita10 la relazione d’ordine totale ≤ con minimo 0.
A(0) Base
∀x(A(x) → A(x + 1)) P asso induttivo
∀xA(x).
Per dimostrare ∀xA(x) sono sufficienti due mosse: la prima consiste nel di-
mostrare A(0), e la seconda nel dimostrare ∀x(A(x) → A(x + 1)).
Si dice allora che ∀xA(x) è stata dimostrata per induzione su x, e A(x)
si chiama la formula d’induzione.
La base non si riferisce necessariamente solo a 0. Se a cadere verso destra
non è il primo domino, ma il sesto
@
R
@
@
184
In corrispondenza a questa idea si ha una formulazione più generale del
principio di induzione:
A(k) Base
∀x ≥ k (A(x) → A(x + 1)) P asso induttivo
∀x ≥ kA(x).
A(x) → A(x + 1)
per un x generico.
Si assume quindi A(x), chiamandola ipotesi induttiva e si cerca di dedurre
A(x + 1):
185
in grande è ∀xA(x), cioè che A vale per tutti gli elementi; in piccolo, nel passo
induttivo, si vuole solo dimostrare che A vale per un altro elemento, una bella
differenza, anche sintatticamente visibile, se si usassero i quantificatori.
Se ci sono difficoltà, sono le difficoltà tipiche della manipolazione di vari-
abili e quantificatori.
n(n+1)+2(n+1)
= 2
(n+1)(n+2)
= 2
che è P (n + 1). 2
11
Uno dei primi algoritmi che si chiede di scrivere (Horstmann, p. 45) e quello per la
somma 1 + 2 + . . . + n.
12
L’uso di n come variabile libera universale per i numeri naturali è tipica della scrittura
matematica; se si usano i quantificatori introducendo la notazione logica è meglio tornare
alla x. Il passo induttivo può comunque essere sempre presentato come dimostrazione di
A(n) → A(n + 1).
13
Usiamo P perché è una formula atomica.
186
Sono possibili diversi sviluppi del passo induttivo, in avanti o all’indietro;
in avanti si procede come nell’esempio, si scrive l’ipotesi induttiva P (n) e poi
la si manipola cercando di arrivare a P (n + 1).
Nel procedimento all’indietro si può affrontare direttamente quello che si
deve dimostrare, P (n + 1), impostando l’espressione
1 + 2 + ... + n + (n + 1) = ?,
e allora “per ipotesi induttiva”, cioè facendo giocare a questo punto un ruolo
a P (n),
n(n+1)
1 + 2 + ... + n + (n + 1) = 2
+ (n + 1),
187
Verificato che quest’ultima uguaglianza è valida, perché diventa
(n+1)(n+2) (n+1)(n+2)
2 = 2 ,
P (n + 1) è dimostrato. 2
Avvertenza P (n + 1) è dimostrato dai passaggi di sopra non perché da essa !!!
segua un’identità; lo studente di logica sa che dal fatto che A → B sia vero e B
sia vero non segue la verità di A.
I passaggi di sopra vanno letti all’indietro partendo dall’ultima uguaglianza, e
tutte le uguaglianze scritte sono tra loro equivalenti (se si assume P (n)). P (n+1) è
conseguenza di P (n) e di n(n+1)
2 +(n+1) = (n+1)(n+2)
2 , che è un’identità aritmetica.
In questa impostazione, ci sono due movimenti logici all’indietro: innanzi
tutto si parte dalla tesi da dimostrare P (n + 1), quindi si sviluppa una serie di
uguaglianze, che tuttavia, essendo collegate da equivalenza, vanno lette nell’ordine
inverso, dall’ultima identità fino a P (n + 1).
1 − 12 + 13 + . . . + (−1)n−1 n1
1 − 12 + 31 + . . . + (−1)n−1 n1 > 0.
Dimostrazione
1 − 21 + 31 + . . . + (−1)n n+1
1
(1 − 12 + 13 + . . . − n1 ) + 1
n+1
188
1
si ottiene da quella fino a n sommando n+1 , una quantità positiva.
1
Siccome per ipotesi induttiva anche (1 − 2 + 3 + . . . − n1 ) > 0, si ha la
1
conclusione voluta.
Se n + 1 è pari, la somma
1 − 12 + 13 + . . . + 1
n
− 1
n+1
si può riscrivere
(1 − 21 ) + ( 13 − 14 ) + . . . + ( n1 − 1
n+1
)
Si noti che l’ipotesi induttiva interviene solo in uno dei due casi in cui è
distinta la dimostrazione del passo induttivo, ma comunque interviene.
Se si fosse voluto dimostrare che
1 − 12 + 13 + . . . + (−1)i−1 1i + . . . − 1
2n
>0
189
che è divisibile per 3 in quanto somma di addendi tutti divisibili per 3 (il
primo per ipotesi induttiva). 2
Ma si può anche fattorizzare n3 − n in (n − 1)n(n + 1) e osservare che uno
dei tre consecutivi deve essere divisibile per 3. 2
Di solito quando sono disponibili due vie, una per induzione e una che
potremmo chiamare algebrica, la seconda dà maggiori informazioni, in quanto
lega il problema dato con altri.
2 + 4 + + 2n = n(n + 1) + 5.
190
per un’asserzione del tipo ∀xA(x). Al massimo si possono verificare alcuni
casi particolari iniziali, per numeri piccoli. Questa verifica è talvolta detta
induzione empirica.
f (n) = n2 + n + 41
191
caso). La congettura che si potrebbe indurre che f (n) sia sempre primo è
tuttavia smentita dal controesempio
Di fronte alla congettura che f (n) sia sempre primo, naturalmente viene
naturale l’idea di controllare gli eventuali zeri e scomporre il polinomio (se
si sa che gli zeri permettono una scomposizione). Il tentativo di dimostrare
il passo induttivo invece fallisce per mancanza di idee.
L’esplorazione empirica è utile tuttavia e raccomandabile quando non !!!
viene proposta una formula da dimostrare, ma la si deve trovare, quando
cioè bisogna formulare una congettura - e poi dimostrarla.
Ad esempio se si vuole trovare una formula per
1 1 1 1
2
+ 2·3
+ 3·4
+ ... + n(n+1)
,
1 1 2
n=2 2
+ 2·3
= 3
1 1 1 3
n=3 2
+ 2·3
+ 3·4
= 4
n
si può arrivare alla congettura che la risposta in generale sia n+1 , quindi
provare a dimostrarla (esercizio, e come ulteriore esercizio trovare e dimostrare
la formula in modo algebrico senza induzione).
1 + 3 + ... + (2n + 1)
192
I primi calcoli mostrano come risultato dei quadrati,
n=0 1=1
n=1 1+3=4
n=2 1+3+5=9
n=3 1 + 3 + 5 + 7 = 16
n=2 1 + (2 · 1 + 1) = 4
n=3 22 + (2 · 2 + 1) = 9
n=4 32 + (2 · 3 + 1) = (3 + 1)2 .
n=5 42 + (2 · 4 + 1) = (4 + 1)5
1 + 3 + + (2n − 1) + (2n + 1) =
n2 + (2n + 1) = (n + 1)2 .
193
o il passaggio dall’aritmetica all’algebra; l’algebra, rispetto all’aritmetica,
non è altro che questa attenzione non al risultato numerico - che non può
esserci, in presenza delle variabili - ma alla struttura e all’organizzazione
delle operazioni da eseguire, e il loro trasporto alle variabili. L’importante è
lasciare indicate sempre le espressioni dei calcoli eseguiti.
{X | X ⊆ U } ∪ {X ∪ {a} | X ⊆ U },
194
f (n + 1) = 2f (n).
Una funzione definita in questo modo, per cui il suo valore per un numero
qualsiasi si ottiene eseguendo operazioni note sul valore della funzione per il
numero precedente, si dice che è definita ricorsivamente. Funzioni di questo
genere si ottengono di solito quando si esegue un ragionemento induttivo.
L’argomento delle funzioni definite ricorsivamente sarà affrontato tra breve.
In alcuni casi casi, come l’attuale, da equazioni ricorsive come quella di
sopra, che definiscono implicitamente una funzione, si ricava un’espressione
esplicita.
Il ragionamento è di nuovo induttivo; tenendo conto anche della con-
dizione di base, f (0) = 1, si ricavano i seguenti valori
n=0 f (0) = 1
n=1 f (1) = 2
n=2 f (2) = 2 · f (1) = 2 · 2
n=3 f (3) = 2 · f (2) = 2 · 2 · 2 = 23
n=4 f (4) = 2 · f (3) = 2 · 23 = 24
f (n + 1) = 2f (n) = 2 · 2n = 2n+1 .
1 + 2 + 22 + 23 + ... + 2n = f (n)
f (n) = 1 + 2f (n − 1);
f (n − 1) + 2n = 1 + 2f (n − 1)
195
e quindi
f (n − 1) = 2n − 1,
da cui
1 + 2 + 22 + 23 + ... + 2n = 2n+1 − 1,
caso particolare della somma della progressione geometrica di ragione r
r n+1 −1
1 + r + r2 + . . . + rn = r−1
.
12.5 Esercizi
Sono diversi i campi in cui l’induzione si rivela utile. Il più ricco di appli-
cazioni naturalmente è quello della
Aritmetica
Si dimostri per induzione, e anche in altro modo se possibile:
1 1 1 1 n
1. 2
+ 2·3
+ 3·4
+ ... + n(n+1)
= n+1
n(n+1)(2n+1)
2. 1 + 4 + 9 + . . . + n2 = 6
3. 2 + 4 + . . . + 2n = ?
n3 −n
4. 2 + 6 + 12 + . . . + (n2 − n) = 3
n(n+1)(n+2)
5. 2 + 2 · 3 + 3 · 4 + . . . + n(n + 1) = 3
7. n5 + 4n + 10 è divisibile per 5
196
Problemi divertenti
12. Ammettiamo di avere francobolli da 3 e da 5 centesimi. Far vedere che
qualsiasi tassa postale maggiore di 7 può essere pagata con bolli da 3
e 5.
Suggerimento: prima si suppone che per n si sia usato almeno un bollo
da 5; poi, se si sono usati solo bolli da 3, si osserva che n deve essere
almeno 9.
Alternativa: distinguere i tre casi: n = 3k, n = 3k + 1, n = 3k + 2.
13. Lo stesso con
bolli da 2 e 3, tutti gli n maggiori di 1,
bolli da 3 e 7, tutti quelli maggiori di 11,
bolli da 2 e da 2k + 1, tutti quelli maggiori di 2k − 1.
Esercizi di geometria
14. Quante rette passano per n punti (di cui mai tre allineati)?
Suggerimento: impostare un ragionamento induttivo “se si aggiunge
un punto . . . ”.
15. Quante sono le diagonali di un poligono convesso di n lati?
16. Quante diagonali non intersecantesi occorrono per dividere un poligono
convesso di n lati in triangoli disgiunti?
17. La somma degli angoli interni di un poligono convesso con n lati è
π(n − 2).
Argomenti di analisi
18. Se n intervalli su una retta sono a due a due non disgiunti, la loro
intersezione non è vuota.
Suggerimento: anche se la base è n = 2, nella dimostrazione del passo
induttivo occorre (almeno nell’impostazione in mente a chi scrive) uti-
lizzare il caso n = 3, che va dimostrato a parte, sfruttando proprietà di
connessione degli intervalli (se due punti appartengono a un intervallo,
tutti i punti intermedi anche vi appartengono).
197
Combinatoria
19. Quante sono le funzioni da un insieme con n elementi in un insieme con
m elementi?
Suggerimento. Per induzione su n, con un ragionamento induttivo.
Supposto di conoscere quante sono le funzioni da un insieme X con n
elementi in un insieme Y con m elementi, si aggiunga a X un elemento
a 6∈ X. Le funzioni di dominio X ∪ {a} si ottengono da quelle di
dominio X aggiungendo una coppia ha, yi con y ∈ Y .
23. In una festa, le buone maniere richiedono che ogni persona saluti con un
“Buona sera” ogni altra persona, una sola volta; se ci sono n persone,
quanti “Buona sera” sono pronunciati? E se ci si dà la mano, quante
strette di mano occorrono?
24. Con quale degli esercizi precedenti si è già risolto il problema 23?
Facciamo osservare che molti problemi in cui il passo induttivo, se
s’imposta un ragionamento per induzione, consiste in un +n, come al-
cuni di quelli di sopra, si possono risolvere anche direttamente con un
conto del numero di eventi rilevanti, che porta non a caso a risultati
in forma di prodotto; è un’applicazione del cosiddetto principio fonda-
mentale del conteggio che vedremo più avanti.
198
Dimostrare che lo spostamento è possibile, per induzione su n, risol-
vendo prima n = 3, e calcolare quante mosse (ogni mossa è lo sposta-
mento di un disco) sono necessarie.
Fondamenti
26. Dimostrare che la funzione successore N −→ N \ {0} è suriettiva, o
sopra N \ {0}.
Osservazione. Questo equivale a dimostrare che ∀x(x = 0∨∃y(x = y 0 )).
199
Qui abbiamo considerato il caso di una funzione a due argomenti, di cui uno
funge da parametro.
Più in generale, se sono date due funzioni: g(x1 , . . . , xr ) a r argomenti
e h(x1 , . . . , xr , x, y) a r + 2 argomenti18 , dove r può essere 0, la coppia di
equazioni
f (x1 , . . . , xr , 0) = g(x1 , . . . , xr )
f (x1 , . . . , xr , x0 ) = h(x1 , . . . , xr , x, f (x1 , . . . , xr , x))
definisce ricorsivamente f (x1 , . . . , xr , x) a partire da g e h.
Questa forma di ricorsione si chiama propriamente ricorsione primitiva,
ma noi non cosidereremo le forme più generali di ricorsione19 .
In una ricorsione primitiva, il valore di f ( con valori fissati dei parametri)
per ogni numero x0 maggiore di 0 dipende, attraverso operazioni note, dal
valore di f per il predecessore x. x si chiama anche variabile di ricorsione.
È ovvia la differenza rispetto alle definizioni esplicite; l’equazione di ri-
corsione f (x1 , . . . , xr , x0 ) = h(x1 , . . . , xr , x, f (x1 , . . . , xr , x)) non è del tipo
f (~x) = . . . 20 dove . . . non contiene f , come richiesto dalla definibilità es-
plicita, al contrario la definizione appare circolare.
Un teorema generale, che dipende solo dalla struttura fondamentale di
N, cioè dagli assiomi che abbiamo proposto, afferma tuttavia che questo tipo
di definizione individua una e una sola funzione che soddisfa le equazioni di
ricorsione per tutti i possibili argomenti.
Dal precedente esempio, è chiaro come si possa ottenere ogni valore con
un numero finito di passi.
L’unicità della funzione si dimostra nel seguente modo. Supponiamo che
due funzioni f1 ed f2 soddisfino entrambe le equazioni. Dimostriamo per
induzione su x che f1 e f2 hanno sempre lo stesso valore:
Base: f1 (x1 , . . . , xr , 0) = g(x1 , . . . , xr ) = f2 (x1 , . . . , xr , 0).
Passo induttivo: Se f1 (x1 , . . . , xr , x) = f2 (x1 , . . . , xr , x), allora
f1 (x1 , . . . , xr , x0 ) = h((x1 , . . . , xr , x, f1 (x1 , . . . , xr , x))
= h((x1 , . . . , xr , x, f2 (x1 , . . . , xr , x))
= f2 ((x1 , . . . , xr , x0 ).2
18
In verità, per considerare tutti i casi possibili, g ed h non devono avere necessariamente
lo stesso numero di parametri, e h può non dipendere da x.
19
L’argomento rientra in un’introduzione alla teoria della calcolabilità.
20
~x sta per una n-upla di elementi, n imprecisato.
200
Con ovvie modifiche si definiscono ricorsivamente funzioni il cui dominio
è l’insieme dei numeri ≥ k, f : N \ {0, . . . , k − 1} −→ N, con equazioni del
tipo
f (k) = n0
f (x0 ) = h(x, f (x)) x ≥ k.
Con una semplice ricorsione primitiva si definisce l’addizione:
x+0 = x
x + y 0 = (x + y)0 .
In queste equazioni + è il nuovo simbolo per la funzione da definire, a due
argomenti; x funge da parametro e y da variabile di ricorsione. Le funzioni
date sono per la prima equazione la funzione identità x 7→ x e per la seconda
la funzione successore.
Si vede che, se con 1 si indica 00 , allora x + 1 = x + 00 = (x + 0)0 = x0 . !!!
Con l’addizione a disposizione si definisce ricorsivamente la moltiplicazione
come una iterazione dell’addizione con le equazioni:
x·0 = 0
x · y 0 = x · y + x.
In modo analogo si definiscono la potenza, come iterazione del prodotto,
e altre operazioni aritmetiche. Ad esempio il fattoriale
0! = 1
x0 ! = x! · x0 .
201
c(X × (Y ∪ {a})) = n · m + n = n · (m + 1). 2
A questo risultato si dà addirittura il nome di Fundamental Counting Prin-
ciple per la sua utilità in combinatoria, già menzionata.
(x + y) + z 0 = ((x + y) + z)0
= (x + (y + z))0
= x + (y + z)0
= x + (y + z 0 ).2
Con la ricorsione non si definiscono solo funzioni numeriche, ma anche
funzioni non numeriche che dipendono da un parametro numerico. Ad esem-
pio l’unione e l’intersezione generalizzata di n insiemi A1 , . . . , An si possono
definire con
S1
i=1 Ai = A1
Sn+1
Ai = ( ni=1 Ai ) ∪ An+1
S
i=1
e rispettivamente
T1
i=1 Ai = A1
Tn+1
Ai = ( ni=1 Ai ) ∩ An+1 .
T
i=1
202
e analogamente per l’intersezione.
o
S∞
i=0 Xi ,
si ricorre
S come si è visto alla generalizzazione della definizione originaria:
x ∈ i∈N Xi se e solo se esiste un i ∈ N tale che x ∈ Xi .
Analogamente per l’intersezione.
Pn
o più in generale ai , per n ≥ k ≥ 0, con
i=k
Pk
i=k ai = ak
Pn+1
ai = ( ni=k ai ) + an+1 .
P
i=k
P∞
La sommatoria infinita i=0 ai rientra negll’argomento delle serie, studi-
ate in Analisi.
o con un altro metodo che vedremo in seguito e che utilizza anche nella
notazione la definizione di relazione come insieme di coppie ordinate.
203
La ricorsione primitiva può essere combinata con altre forme di definizione,
come la definizione per casi, o essere usata per definire simultaneamente due
funzioni.
Un esempio è la seguente definizione di quoziente e resto per la divisione
di m per n, con m ≥ n > 0 (n è fissato, la ricorsione è su m).
qm se rm < n − 1
qm+1 =
q + 1 se rm = n − 1
m
rm + 1 se rm < n − 1
rm+1 =
0 se rm = n − 1
(qm è un’altra notazione per q(m); si dovrebbe scrivere q(m, n) o qm,n , ma
non è il caso di appesantire la notazione).
Come base della ricorsione si pone, per m = n, qn = 1 e rn = 0. Si
dimostra (esercizio) per induzione su m, con base m = n, che
204
12.6.1 Esercizi
1. Dimostrare per induzione che se due insiemi finiti X e Y sono disgiunti,
c(X ∪ Y ) = c(X) + c(Y ).
Suggerimento: l’induzione è su c(Y ), ma occorre dimostrare a parte il
caso in cui c(Y ) = 1, cioè che se a X si aggiunge un elemento a 6∈ X
allora c(X ∪ {a}) = c(X) + 1 (e questo è l’unico momento della di-
mostrazione in cui interviene la condizione che gli insiemi siano dis-
giunti). La dimostrazione richiede il teorema 12.7.1, ne è un immediato
corollario.
2. Dimostrare la proprietà distributiva x·(y+z) = x·y+x·z per induzione
su z.
3. Dimostrare per induzione la proprietà associativa della moltiplicazione.
4. Definire ricorsivamente mn (vedi esercizio 19 di 12.5) e dimostrare
mp+q = mp · mq .
5. Dimostrare per induzione che n > 3 → n2 < n!.
6. Dimostrare per induzione che n > ? → n3 < n!.
7. Dimostrare per induzione che n > ? → 2n < n!.
8. Dimostrare per induzione che x ∈ ni=1 Ai se e solo se x appartiene ad
S
almeno uno degli Ai (l’unione generalizzata era stata introdotta proprio
con questa definizione, che ora va dimenticata a favore di quella ricor-
siva; oppure si veda l’esercizio come una dimostrazione dell’equivalenza
delle due definizioni).
9. Dimostrare per induzione che x ∈ ni=1 Ai se e solo se x appartiene a
T
tutti gli Ai .
10. Dimostrare che ni=1 m = m · n, dove ni=1 m significa ni=1 ai con
P P P
tutti gli ai = m.
11. Trovare e dimostrare per induzione la formula per la
Psomma dei primi
n
termini della progressione aritmetica di ragione k: i=0 (a + ik).
Suggerimento: le somme, già considerate, dei primi n numeri, dei primi
n pari e dei primi n dispari sono casi di somme di progressioni arit-
metiche, le più semplici, di ragione 1 e 2 a partire da a = 0 o a = 1.
205
Qn
12. Definire ricorsivamente il prodotto generalizzato
Qn i=1 ai e dimostrare
che se gli ai sono numeri interi allora i=1 ai = 1 se e solo se ai = 1
per ogni i = 1, . . . , n.
14. Dimostrare per induzione che ni=1 a2i = 0 se e solo se ai = 0 per ogni
P
i = 1, . . . , n.
16. Data la definizione ricorsiva di < del testo, dimostrare che x < y è
equivalente a ∃z 6= 0(x + z = y).
206
In una sistemazione rigorosa dei concetti di finito ed infinito, una volta
scelta la riflessività come definizione fondamentale di “infinito”, ed aver for-
mulato gli assiomi per N, il principio dei cassetti diventa dimostrabile.
Consideriamo come tipici insiemi finiti gli insiemi Nn = {0, 1, . . . , n − 1},
con N0 = ∅. Un insieme si dice finito se esiste una biiezione tra di esso e un
Nn .
Abbiamo allora
Passo induttivo: Supponiamo vero per n che per ogni m > n non esista
un’iniezione di Nm in Nn ; supponiamo per assurdo che esista invece un
m > n + 1 con un’iniezione di Nm in Nn+1 , chiamiamola g.
Siccome Nn+1 = Nn ∪ {n}, deve essere n = g(i) per qualche i < m,
altrimenti g sarebbe una iniezione di Nm in Nn .
Se i = m − 1 eliminiamo la coppia hm − 1, ni; altrimenti prima scam-
biamo tra di loro i valori attribuiti da g a i e a m − 1, ed elimini-
amo m − 1 col suo nuovo valore n; consideriamo cioè g1 cosı̀ definita:
g1 (i) = g(m − 1), e g1 (j) = g(j) per ogni altro j < m − 1, j 6= i.
g1 risulta un’iniezione di Nm−1 in Nn , con m − 1 > n, contro l’ipotesi
induttiva. 2
207
all’oggetto nel precedente conteggio, e si arriverebbe a contare al massimo
solo fino a n − 1.
∅=
6 X ⊆ N → ∃x(x ∈ X ∧ ∀y ∈ X(x ≤ y))
o equivalentemente:
∅=
6 X ⊆ N → ∃x(x ∈ X ∧ ∀y < x(y 6∈ X)).
t0 t t t t t t s s s s r qq q q q r r sc
Poiché questo vale per ogni formula, possiamo considerare una formula che
inizi con una negazione, che scriveremo ¬A, e abbiamo
Di qui, contrapponendo
ovvero
208
∀x¬(¬A(x) ∧ ∀y < xA(y)) → ∀xA(x),
e infine
209
∀x > k(∀y(k < y < x → A(y)) → A(x))
segue
Esempio Il teorema che ogni numero naturale > 1 ammette una scompo-
sizione in fattori primi27 si dimostra per induzione forte nel seguente modo:
dato un numero n, o n è primo, oppure è il prodotto di due numeri minori
di n e maggiori di 1. Se la proprietà vale per tutti i numeri minori di n e
maggiori di 1, per ipotesi induttiva, questi due o sono primi o ammettono
una scomposizione in fattori primi, e allora anche il loro prodotto n ammette
una scomposizione in fattori primi. 2
Esempio Nella dimostrazione del passo induttivo per
1 − 21 + 13 + . . . + (−1)n−1 n1 > 0
si erano distinti due casi, a seconda che n fosse pari o dispari. Con l’induzione
forte la distinzione rimane ma non porta a due dimostrazioni diverse. Si può
ragionare nel seguente modo: se la disuguaglianza vale per ogni m < n allora
se n è pari vale
1 − 12 + 31 + . . . − 1
n−2
>0
27
La formulazione concisa significa che ogni numero > 1 o è primo o è un prodotto di
numeri primi. Vale anche l’unicità della scomposizione, che non dimostriamo.
210
e quindi
1 − 12 + 13 + . . . − 1
n−2
1
+ ( n−1 − n1 ) > 0
1
perché ( n−1 − n1 ) > 0, mentre se n è dispari
1 − 12 + 31 + . . . − 1
n−1
>0
e quindi
1 − 12 + 13 + . . . − 1
n−1
+ 1
n
> 0. 2
211
B(x) ↔ ∀y < xA(y)
e si dimostra ∀xB(x) (da cui segue ovviamente ∀xA(x)) per induzione su x,
utilizzando anche ∀x(∀y < xA(y) → A(x)) nel corso della dimostrazione:
Passo induttivo: Ammesso B(x), cioè ∀y < xA(y), da questa segue A(x), e
quindi ∀y < x0 A(y) che è B(x0 ). 2
212
proprietà P . In questo caso, non è vero per P che per ogni n che ha la
proprietà P anche uno minore ha la proprietà P . Quindi esiste un n che
soddisfa P ma tale che nessun suo predecessore soddisfa P , ed n è il minimo
di X. 2
Un’ovvia variante è che se una proprietà P vale per un h > k e quando
vale per un n qualunque > k allora vale anche per un numero < n e ≥ k,
allora P vale per k.
Il principio della discesa finita è alla base delle dimostrazioni di termi-
nazione degli algoritmi, quando ad un algoritmo si associa una proprietà P !!!
che decresce ad ogni esecuzione di un passo dell’algoritmo. Un esempio è la
dimostrazione di terminazione per l’algoritmo di costruzione degli alberi di
refutazione proposizionali, nel Lemma 7.2.1.
Il principio del minimo fornisce un comodo e utile metodo di definizione
di funzioni: a ogni x (o a più elementi se si tratta di funzione a più argomenti)
si associa il minimo y tale che A(x, y), ammesso di sapere che esistono degli
y tali che A(x, y), dove A(x, y) è una formula.
La definizione di minimo comune multiplo di due numeri è un esempio
ovvio del ricorso a tale possibilità, che è molto frequente in aritmetica, e si può
combinare con la ricorsione per definire funzioni effettivamente calcolabili.
Ad esempio si definisce per ricorsione la successione dei numeri primi
{pn | n ∈ N } ponendo innanzi tutto p0 = 2, quindi osservando che se è noto
pn allora esiste (teorema di Euclide) un numero primo maggiore di pn , e uno
che dalla dimostrazione dell’infinità dei primi si sa che è minore o uguale a
2 · 3 · 4 · . . . · pn + 1.
Si definisce allora pn+1 come il minimo numero primo maggiore di pn .
La definizione è corretta in base solo al principio del minimo, ma l’esistenza
di un confine superiore la rende anche effettivamente calcolabile in modo
elementare (eseguendo una ricerca limitata a priori).
A ricorsione primitiva e operatore di minimo corrispondono nei linguaggi
di programmazione strutturata i costrutti repeat (for i = 0 to n) e while
. . . do.
213
specificati predecessori. Ad esempio
A(0) Base
A(1) Base
∀x(A(x) ∧ A(x0 ) → A(x00 )) P asso induttivo
∀xA(x).
Questa forma di induzione si giustifica, come quella forte, con l’induzione
normale, considerando la formula
Passo induttivo: Ammesso B(x), quindi A(x) ∧ A(x0 ), dal passo induttivo
per A si deduce A(x00 ), quindi A(x0 ) ∧ A(x00 ), cioè B(x0 ). 2
0, 1, 1, 2, 3, 5, 8, 13, . . .
le radici dell’equazione x2 − x − 1 = 0, o
x2 = x + 1,
214
an = √1 (αn − β n ).
5
Dimostrazione
an = an−1 + an−2
quindi
Ma α + 1 = α2 e β + 1 = β 2 , per cui
an = √1 (αn
5
− β n ). 2
215
dimostrazione, perché nel passo induttivo dell’induzione su y si avrà a dis-
posizione l’ipotesi induttiva relativa all’induzione su y e l’ipotesi induttiva
relativa all’induzione più esterna su x.
Non è facile trovare esempi elementari in cui il ricorso all’induzione doppia
è proprio necessario30 . Diamo un esempio per mostrare come si organizzano
i passi della dimostrazione, scegliendo la commutatività dell’addizione, an-
che se per questa proprietà l’induzione doppia si potrebbe evitare (e dopo
mostreremo come).
Dimostriamo quindi
∀x∀y(x + y = y + x),
e iniziamo con un’induzione su x.
Basex : Dobbiamo dimostrare
∀y(0 + y = y + 0).
ovvero
∀y(0 + y = y).
Basey : 0 + 0 = 0.
Passo induttivoy : Ammesso 0 + y = y, si ha
0 + y 0 = (0 + y)0
= y0.
∀y(x0 + y = y + x0 )
per induzione su y.
30
Nel primo teorema del paragrafo 14.7 abbiamo visto un esempio in cui la formula
d’induzione era universale ma non ha richiesto l’induzione doppia.
216
Basey : Da dimostrare è
x0 + 0 = 0 + x0 .
Ma
0 + x0 = (0 + x)0
= (x + 0)0
(il precedente passaggio per l’ipotesi induttivax particolarizzando
∀y a 0)
= x0
= x0 + 0 .
Passo induttivoy : Assumiamo l’ipotesi induttivay che x0 + y = y + x0
e dimostriamo x0 + y 0 = y 0 + x0 .
x0 + y 0 = (x0 + y)0
= (y + x0 )0
= (y + x)00
dove si è usata l’ipotesi induttivay .
D’altra parte
y 0 + x0 = (y 0 + x)0
= (x + y 0 )0
= (x + y)00
= (y + x)00
dove si è usata prima l’ipotesi induttivax particolarizzando ∀y a
y 0 , e infine di nuovo l’ipotesi induttivax particolarizzando ∀y a y.
Naturalmente si sono anche usate le equazioni della definizione
ricorsiva dell’addizione, in particolare la seconda.
Quindi il passo induttivoy è dimostrato 2
217
Abbiamo già dimostrato per induzione la proprietà associativa della somma,
e che ∀x(x + 0 = 0 + x), nel corso della precedente dimostrazione.
Dimostriamo ora per induzione su x che ∀x(x + 1 = 1 + x). Si ricordi che
in base alla definizione di addizione x0 = x + 1.
Base: 0 + 1 = (0 + 00 ) = (0 + 0)0 = 00 = 1 = 1 + 0.
1 + x0 = (1 + x)0
= (x + 1)0
= (x + 1) + 1
= x0 + 1.2
∀y(x + y = y + x)
per induzione su y:
Base: x + 0 = 0 + x.
x + y 0 = (x + y)0 = (y + x)0
= (y + x) + 1
= y + (x + 1)
= y + (1 + x)
= (y + 1) + x
= y 0 + x.2
218
Dimostrazione Basta dimostrare che, comunque si prendano n mele, queste
hanno tutte lo stesso colore. Se prendiamo una mela, tutte le mele nell’insieme
hanno lo stesso colore. Sia dato un insieme di n + 1 mele. Se togliamo una
mela a, otteniamo un insieme di n mele che per ipotesi induttiva hanno lo
stesso colore. Ma se rimettiamo a nel mucchio e ne togliamo un’altra b, ab-
biamo un altro insieme di n mele che devono avere tutte lo stesso colore;
quindi b ha il colore di mele che hanno lo stesso colore di a, quindi a ha lo
stesso colore delle altre. 2
Mentre nella precedente dimostrazione è presente un vero errore, diverso è
il caso di ragionamenti come i seguenti, che lo studente è invitato a discutere.
Sul primo non sarebbero d’accordo i sollevatori di pesi.
Teorema 12.9.2 Chiunque è in grado di sollevare un mucchio di sabbia pe-
sante quanto si vuole.
Dimostrazione Dato un granello di sabbia, chiunque è in grado di soll-
evarlo. Se una persona è in grado si sollevare un mucchio di sabbia, e al
mucchio si aggiunge un granello, la stessa persona è in grado di sollevare il
nuovo mucchio. Qualunque mucchio di sabbia, di qualsiasi peso, si ottiene
accumulando un numero sufficiente di granelli di sabbia. 2
Sul prossimo sarebbero d’accordo i matematici, e non si può dire che sia
un errore, né un paradosso, sembra solo paradossale.
Teorema 12.9.3 Ogni numero è interessante.
Dimostrazione Iniziamo con un’induzione empirica. 0 è interessante, al punto
che si continuano a scrivere libri su di esso, rappresenta il vuoto, il nulla
. . . 1 è molto interessante, genera tutti gli altri. 2 è il primo numero pari, e
rappresenta tutte le dicotomie che danno origine alla vita, la divisione nella
coppia, maschio e femmina, il bene e il male . . . , 3 è la trinità, il primo
numero primo dispari, somma dei suoi predecessori . . . , 4 è il primo numero
composto, ci sono i quattro cavalieri dell’Apocalisse . . . , 5 in effetti non
sembra avere nessuna caratteristica unica; beh, questo è interessante di 5,
che è il primo numero non interessante . . .
Si vede ora come svolgere la dimostrazione, nella forma del principio del
minimo: l’insieme dei numeri non interessanti è vuoto, perché se no avrebbe
un primo elemento, e questo sarebbe interessante, come primo numero non
interessante. 2
Non sembra invece accettabile
219
Teorema 12.9.4 Ogni numero è piccolo.
o
S∞
I= i=0 {In }
220
F anche è una funzione qualunque, ma in generale si prende crescente,
rispetto all’inclusione, nel senso che se X ⊆ Y allora F (X) ⊆ F (Y ), e
continua, rispetto all’unione, nel senso che “F della unione uguale unione
degli F ”:
S S
F ( {Xj | j ∈ J }) = {F (Xj ) | j ∈ J }.
Si può sempre fare in modo che la funzione sia crescente utilizzando F 0 (X) =
X ∪ F (X) invece della data F .
Se F è continua, e F (∅) = B, la definizione cumulativa si può anche
esprimere con la sola
S
In = F ( i<n Ii )
avendo posto
Sn−1
S i=0 Xi se n>0
i<n Xi =
∅ se n = 0.
Esempi
L’insieme dei polinomi in x a coefficienti reali si può definire con
P0 =R
Pn+1 = {x · p + c | p ∈ Pn , c ∈ R}
e
S
P = {Pn | n ∈ N }.
(Esercizio: Esaminare quali siano gli elementi di P1 e P2 .)
Come si vede dall’esempio, la base B non è necessariamente un insieme
finito. La funzione F in questo caso è
F (X) = {x · p + c | p ∈ X, c ∈ R},
che si vede facilmente essere crescente e continua, come sarà anche negli
esempi successivi.
L’insieme dei termini T costruiti con 0, 1, x, + e · si può definire con
T0 = {0, 1, x}
Tn+1 = Tn ∪ {t1 + t2 | t1 , t2 ∈ Tn } ∪ {t1 · t2 | t1 , t2 ∈ Tn }
e
221
S
T = {Tn | n ∈ N }.
I due tipi di definizione si dicono anche definizione dal basso (quella in-
duttiva con l’unione) e dall’alto, per intersezione.
Un modo di esprimere in simboli il fatto che un insieme X è il più pic-
colo insieme che ha una certa proprietà P è infatti quello di dire che X è
l’intersezione (generalizzata) di tutti gli Y tali che P (Y ), quando l’intersezione
ha ancora la proprietà P . !!!
Questo succede ad esempio se la proprietà P consiste, come nel caso
attuale, nel contenere un dato insieme o nell’essere chiusi rispetto a una
funzione. Non è sempre cosı̀, ad esempio nel campo reale l’intersezione di tutti
gli intervalli che contengono propriamente l’intervallo (−1, 1) è l’intervallo
chiuso [−1, 1] (estremi inclusi), che ha ancora la stessa proprietà; invece
l’intersezione di tutti gli intervalli aperti (−x, x) è l’insieme {0}, che non è
un intervallo aperto31 .
Facciamo vedere che le due definizioni di I sono equivalenti, se si usa
l’induzione cumulativa ed F è crescente e continua, e a questo scopo chiami-
amo J l’insieme definito dall’alto:
T
J = {X | B ⊆ X ∧ ∀Y (Y ⊆ X → F (Y ) ⊆ X)}.
222
Per J ⊆ I basta far vedere che I è uno degli insiemi di cui J è l’intersezione,
quindi che B ⊆ I e I è chiuso rispetto a F . B ⊆ I è ovvio.
È sufficiente controllare la proprietà di chiusura per sottoinsiemi finiti
di I. InfattiSogni Y ⊆ I, ogni Y in verità, è l’unione dei suoi S sottoinsiemi
finiti, Y = {Z ⊆ Y | Z finito}, e se F è continua F (Y ) = {F (Z) | Z ⊆
Y e Z finito}.
Ora se Z ⊆ I e Z è finito, allora Z ⊆ In per qualche n32 , e F (Z) ⊆
F (In ) ⊆ In+1 , quindi F (Z) ⊆ I. 2
223
Esempi
La definizione delle proposizioni P aveva la forma induttiva
mentre A1 contiene
• • •
↓ .&
• • •
e A2 oltre a quelli di A1
224
• • •
↓ ↓ .&
• • • •
↓ .& ↓
• • • •
• • •
.& .& .&
• • • • • •
↓ .& ↓ .&
• • • • • •
• • •
.& .& .&
• • • • • •
.& .& ↓ .& .&
• • • • • • •• •
= {hx, x0 i | x ∈ N }
I0
In+1 = In ∪ {hx, y 0 i | hx, yi ∈ In },
e I = <, che mostra come < sia l’iterazione della relazione “successore” (che
è la base I0 ).
La definizione ricorsiva che abbiamo visto in precedenza, da cui segue
mostra anch’essa come < sia l’iterazione del successore, dal momento che
l’addizione è l’iterazione del successore; quest’ultima equivalenza peraltro è
piuttosto la definizione di una formula, che a sua volta definisce la relazione,
che non la definizione della relazione come insieme.
225
Un altro modo di presentare la relazione < è quello di definirla come la
chiusura transitiva della relazione successore S = {hx, x0 i | x ∈ N }.
La chiusura transitiva di una relazione S è la più piccola relazione che
estende S ed è transitiva; se scriviamo
T rans(R) per ∀x, y, z(hx, yi ∈ R ∧ hy, zi ∈ R → hx, zi ∈ R),
e T C(S) per “chiusura transitiva di S” allora
T
T C(S) = {R | S ⊆ R e T rans(R) }.
L’intersezione non è fatta sull’insieme vuoto, perché esiste sempre almeno
una R soddisfacente le condizioni richieste, ad esempio la relazione totale.
Anche la chiusura transitiva di S ammette in generale una definizione
induttiva dal basso (come quella vista sopra per <), data da
I0 = S
In+1 = In ∪ {hx, yi | ∃z(hx, zi ∈ In ∧ hz, yi ∈ S)},
e T C(S) = ∞
S
i=0 {In }.
Esempi
La relazione d’ordine parziale negli alberi è la chiusura transitiva della
relazione di successore immediato che è inclusa nella definizione ricorsiva
degli alberi.
La relazione “B è una sottoproposizione di A” è la chiusura transitiva
della relazione “B è una sottoproposizione immediata di A” della definizione
del paragrafo 3.2.1.
226
Esempio L’altezza di un polinomio rispetto alla definizione induttiva di
P è il grado del polinomio.
Un’induzione sull’altezza di x è un’induzione su n, che tuttavia prende in !!!
esame non solo tutti i numeri naturali, ma tutti gli elementi di tutti i livelli In
della gerarchia in cui è strutturato I. Essa si presenta nella seguente forma:
Base: Ogni elemento di altezza 0, cioè ogni elemento di I0 , ha la proprietà
P.
Passo induttivo: Ammesso che ogni elemento di altezza n abbia la proprietà
P , si dimostra che ogni elemento di altezza n + 1 ha la proprietà P .
Sn−1
Gli elementi di altezza n sono gli elementi di In \ i=0 Ii . Se si vuole che
l’ipotesi induttiva riguardi tutto In occorre utilizzare l’induzione forte:
Passo induttivo: Ammesso che ogni elemento di altezza minore di n abbia la
proprietà P , si dimostra che ogni elemento di altezza n ha la proprietà
P.
Esempio Dimostriamo che :
Ogni proposizione ha un numero pari di parentesi.
Dimostrazione Per induzione forte. Supponiamo che tutte le proposizioni di
altezza minore di n abbiano un numero pari di parentesi. Indichiamo con ]A
il numero di parentesi di A.
Sia A una proposizione di altezza n. Se n = 0, la proposizione è atomica,
della forma (p), e ha due parentesi.
Se n > 0, A è una proposizione composta, e il fatto cruciale è che le sue
componenti hanno altezza minore di quella di A. Si danno due casi.
Se A è (¬B), per ipotesi induttiva ]B è un numero pari e ]A = ]B + 2 è
anch’esso pari.
Se A è (B • C) composta con un connettivo binario, per ipotesi induttiva
]B e ]C sono pari e ]A = ]B + ]C + 2 è anch’esso pari. 2
227
S∞
importa è che X si possa rappresentare come i=k Xi , indipendentemente da
come è stato originariamente definito.
Esempio L’algoritmo di trasformazione di una proposizione in forma nor-
male congiuntiva (o disgiuntiva) del paragrafo 6.3 presentava una ricorsione
sulla lunghezza delle proposizioni. L’esecuzione delle operazioni sintattiche
da compiere su una proposizione era riportata, attraverso l’applicazione delle
leggi distributive, a proposizioni di lunghezza minore: da A∨B ≡ (C ∧D)∨B
via (C ∨ B) ∧ (D ∨ B) a C ∨ B e D ∨ B. Data una forma normale congiuntiva
per queste ultime, si ha una forma normale congiuntiva anche per A ∨ B.
Si noti che C ∨ B e D ∨ B potrebbero avere invece la stessa altezza di
A ∨ B, se prevale l’altezza di B.
La misura di complessità associata in modo naturale alla definizione delle
proposizioni è l’altezza dell’albero di parsing, ma vale anche
P= ∞
S
i=3 Li
dove L≤
i è l’insieme delle proposizioni che hanno lunghezza ≤ i.
12.10.1 Esercizi
1. Dimostrare per induzione doppia che per ogni m esiste un punto f (m)
tale che ∀n(n > f (m) → nm < n!).
2. Dimostrare per induzione:
228
(e) Ogni proposizione ha lunghezza (come lista) maggiore o uguale a
3.
(f) In nessuna proposizione occorrono due connettivi consecutivi.
(g) In ogni proposizione non atomica occorre almeno un connettivo.
(h) In nessuna proposizione occorre la sottosequenza “()”, né “)p”.
(i) In ogni proposizione la sua lunghezza è maggiore della sua altezza.
229