Logica - Dipartimento di Matematica e Informatica

23 downloads 132 Views 183KB Size Report
Cenni di Logica matematica. May 8, 2007. 1 Calcolo proposizionale. Una proposizione `e una frase che `e o vera oppure falsa ma non entrambe. Esempio 1.1 ...
Cenni di Logica matematica May 8, 2007

1

Calcolo proposizionale

Una proposizione `e una frase che `e o vera oppure falsa ma non entrambe. Esempio 1.1 Le seguenti frasi sono proposizioni. 1. Milano `e la capitale d’Italia. 2. Parigi `e la capitale della Francia. 3. 3 + 3 = 7. 4. 2 + 2 = 4. Le proposizioni 1 e 3 sono false mentre le proposizioni 2 e 4 sono vere. Nel seguente esempio elenchiamo alcune frasi che non sono proposizioni. Esempio 1.2 Le seguenti frasi non sono proposizioni. 1. Che ora `e? 2. Vai a fare una passeggiata. 3. x + 3 = 7. 4. x + y = z. In generale, le proposizioni sono indicate con delle lettere, p, q, r, s,. . .. Il valore di verit`a di una proposizione vera `e indicato con V, mentre quello di una falsa con F. Definizione 1.1 Sia p una proposizione. La frase “La proposizione p non `e vera” `e un’altra proposizione detta la negazione di p. La negazione di p `e denotata da ¬p. La proposizione ¬p `e detta “non p”. 1

Esempio 1.3 La negazione della proposizione “oggi `e venerd`ı” `e “oggi non `e venerd`ı”. Riassumiamo nella Tabella 1 le relazioni fra il valore di verit`a di una proposizione e della sua negazione.

p

¬p

V

F

F

V

Tabella 1 Il simbolo ¬ detto operatore negazione. Esso, posto davanti ad una proposizione esistente p, forma una nuova proposizione detta la negazione di p. L’operatore negazione appartiene alla famiglia degli operatori logici o connettivi attraverso i quali si possono formare nuove proposizioni partendo da una o pi` u proposizioni esistenti. Definizione 1.2 Siano p e q due proposizioni. La frase “p e q”, denotata da p ∧ q, `e una nuova proposizione che risulta vera quando p e q sono entrambe vere, altrimenti `e falsa. La proposizione p ∧ q `e detta la congiunzione di p e q (si veda la Tabella 2).

p

q

p∧q

V

V

V

V

F

F

F

V

F

F

F

F

Tabella 2 Esempio 1.4 Siano date le proposizioni p=“oggi `e venerd`ı” e q=“oggi sta piovendo”. La proposizione p ∧ q `e “oggi `e venerd`ı e sta piovendo”. Ovviamente quest’ultima proposizione `e vera solamente nei venerd`ı in cui piove. 2

Definizione 1.3 Siano p e q due proposizioni. La frase “p o q”, denotata da p ∨ q, `e una nuova proposizione che risulta falsa quando p e q sono entrambe false, altrimenti `e vera. La proposizione p ∨ q `e detta la disgiunzione di p e q (si veda la Tabella 3).

p

q

p∨q

V

V

V

V

F

V

F

V

V

F

F

F

Tabella 3 L’uso del connettivo ∨ nella disgiunzione traduce il significato di “o” nella sua accezione pi` u comune in italiano, che `e detta o inclusivo. Per esempio l’o inclusivo `e usato nella seguente proposizione: “Gli studenti del primo anno che hanno superato l’esame di Formazione analitica I o di Formazione discreta I possono essere iscritti al secondo anno”. Essa dice che uno studente per iscriversi al secondo anno deve aver superato almeno uno dei due esami menzionati, quindi anche entrambi. Esiste anche un’altra accezione di “o”, detta o eslusivo che ha il valore V se una ed una sola delle due proposizioni componenti `e vera, ma non entrambe. Per esempio l’o esclusivo `e usato nella seguente proposizione “Il menu a prezzo fisso di questo ristorante prevede come secondo piatto pesce alla griglia o bistecca ai ferri”. Ovviamente non si possono ordinare entrambi i secondi pagando solo il prezzo del menu. Definizione 1.4 Siano p e q due proposizioni. L’o esclusivo di p e q denotato da p ⊕ q, `e una nuova proposizione che risulta vera quando esattamente una fra p e q `e vera, altrimenti `e falsa (si veda la Tabella 4).

3

p

q

p⊕q

V

V

F

V

F

V

F

V

V

F

F

F

Tabella 4 Definizione 1.5 Siano p e q due proposizioni. L’implicazione p → q `e una nuova proposizione che risulta falsa quando p `e vera e q `e falsa, altrimenti p → q `e vera (si veda la Tabella 5). Nell’implicazione p `e detta l’ipotesi e q la tesi.

p

q

p→q

V

V

V

V

F

F

F

V

V

F

F

V

Tabella 5 Poich`e l’implicazione `e molto usata in matematica, esistono diverse terminologie equivalenti per esprimerla. Ne citiamo alcune: • “se p, allora q”; • “p implica q”; • “p `e sufficiente per q”; 4

• “q `e necessaria per p”. Si noti che p → q `e falsa solo nel caso in cui p `e vera e q `e falsa. Cosicch`e p → q `e vera quando p e q sono entrambe vere oppure quando p `e falsa (non importa quale sia il valore di verit`a di q). Per ricordare che una implicazione `e vera quando la sua ipotesi `e falsa basta pensare alla seguente clausola di contratto per un giocatore di calcio: “Se il giocatore segna pi` u di 40 goal durante il campionato ricever`a un bonus di un milione di euro”. La clausola `e violata solo nel caso in cui il giocatore segna pi` u di 40 goal e non riceve il bonus. Essa non dice nulla se il giocatore segna un numero di goal minore od uguale a 40. Il modo in cui `e definita l’implicazione in logica matematica `e pi` u generale del modo in cui l’implicazione viene usata nel linguaggio comune. Per esempio la frase “se oggi c’`e sole, andremo alla spiaggia” `e una implicazione usata nel linguaggio normale poich`e c’`e una relazione fra l’ipotesi e la conclusione. Si noti che questa implicazione `e valida sempre eccetto il caso in cui “oggi c’`e sole” ma “non andiamo alla spiaggia”. L’implicazione “se oggi `e venerd`ı, allora 2 + 3 = 5” `e sempre vera poich`e la sua conclusione `e vera, mentre l’implicazione “se oggi `e venerd`ı, allora 2 + 2 = 5” `e vera ogni giorno della settimana eccetto il venerd`ı. Tuttavia queste due ultime implicazioni sebbene hanno perfettamente senso in logica matematica non sono mai usate nel linguaggio comune. Il concetto matematico di una implicazione `e indipendente da una relazione di causa ed effetto fra l’ipotesi e la tesi. L’istruzione if . . . then . . . usata in molti linguaggi di programmazione `e diversa dal “se . . ., allora . . .” usato in logica matematica. Molti linguaggi di programmazione contengono istruzioni del tipo if p then S, dove p `e una proposizione e S `e un segmento di programma (una o pi` u istruzioni da essere eseguite). S `e eseguito se p `e vera. Nel caso in cui p `e falsa S non `e eseguito. Vediamo il seguente esempio. Esempio 1.5 Supponiamo che un programma assegni alla variabile numerica x il valore 2 e, mentre `e in esecuzione, incontri la seguente istruzione if 2 + 2 = 4 then x := x + 1. Qual’`e il valore di x dopo l’esecuzione della precedente istruzione? (Il simbolo := assegna alla variabile x il valore di x + 1.) Poich`e 2 + 2 = 4 `e vera, l’istruzione x := x + 1 viene eseguita. Quindi, x ha il valore 2 + 1 = 3 dopo l’esecuzione dell’istruzione if-then. Usando i connettivi definiti sopra molte nuove proposizioni possono essere costruite. Per specificare l’ordine in cui i vari operatori logici debbano essere applicati, a volte sono necessarie le parentesi. Per esempio, (p ∨ q) ∧ (¬r) `e la congiunzione di p ∨ q e ¬r. Per diminuire il numero delle parentesi necessarie, si conviene che l’operatore ¬ venga applicato prima degli altri operatori logici. Per esempio, ¬p ∧ q `e la congiunzione di ¬p e q, cio`e (¬p) ∧ q, e non la negazione della congiunzione di p e q, cio`e ¬(p ∧ q). Si consideri l’implicazione p → q. La proposizione q → p si dice l’inversa della p → q. La proposizione contronominale della p → q `e ¬q → ¬p. 5

Esempio 1.6 Trovare l’inversa e la contronominale dell’implicazione: “se oggi `e venerd`ı, allora oggi ho un esame”. L’inversa `e “se oggi ho un esame, allora oggi `e venerd`ı”. La contronominale `e “se oggi non ho un esame, allora oggi non `e venerd`ı”. Introduciamo un altro connettivo. Definizione 1.6 Siano p e q due proposizioni. La bicondizionale o equivalenza p ↔ q `e una nuova proposizione che risulta vera quando p e q hanno lo stesso valore di verit` a, altrimenti `e falsa (si veda la Tabella 6).

p

q

p↔q

V

V

V

V

F

F

F

V

F

F

F

V

Tabella 6 Si noti che p ↔ q `e vera precisamente quando entrambe le implicazioni p → q e q → p sono vere. Per questa ragione per la bicondizionale `e usata la terminologia equivalente “p se e solo se q”. Altri modi equivalenti per esprimere la bicondizionale sono: “p `e necessaria e sufficiente per q”, “se p allora q, e viceversa”. Esistono molte ragioni per traslare il linguaggio comune in espressioni costruite mediante proposizioni elementari e connettivi logici. In particolare il linguaggio parlato `e ambiguo. Traducendo queste frasi in espressioni logiche si toglie questa ambiguit`a. Inoltre, `e possibile analizzare queste espressioni logiche in modo da ottenere il loro valore di verit`a. Infine le espressioni logiche possono essere manipolate e si possono usare delle regole di inferenza in modo da poter ragionare su di esse (si veda il paragrafo 4). I seguenti esempi mostrano come una proposizione del linguaggio comune possa essere tradotta in espressioni logiche. Esempio 1.7 Tradurre la seguente proposizione in una espressione logica: “Hai diritto ad una connessione Internet presso il centro di calcolo dell’Universit`a solo se sei uno studente di Informatica o non sei una matricola”. 6

Se traducessimo questa frase con una sola proposizione p, sarebbe difficile analizzarne il significato. Conviene rappresentare ogni sua parte con variabili proposizionali diverse e, poi, costruire la frase completa mediante gli appropriati connettivi logici. Pi` u precisamente poniamo: a=“Hai diritto ad una connessione Internet presso il centro di calcolo dell’Universit`a”, b=“sei uno studente di Informatica” e c=“sei una matricola”. Si osservi che “solo se” pu`o essere espresso come una implicazione. In conclusione la frase data pu`o essere tradotta nella seguente espressione logica: a → (b ∨ ¬c). Esempio 1.8 Tradurre la seguente proposizione in una espressione logica: “Non puoi andare sulle montagne russe se sei alto meno di un metro e sessanta a meno che non hai compiuto i 16 anni”. Usiamo variabili proposizionali diverse per rappresentare ogni parte della frase e determiniamo gli appropriati connettivi logici. Precisamente poniamo: a=“puoi andare sulle montagne russe”, b=“sei alto meno di un metro e sessanta” e c=“hai compiuto 16 anni”. Come nell’esempio precedente, il “se” pu`o essere espresso come una implicazione. Quindi possiamo tradurre la frase data con la seguente espressione logica: (b ∧ ¬c) → ¬a. I connettivi logici sono molto usati nella ricerca lungo liste di informazioni, come per esempio nella ricerca di pagine web. Queste ricerche sono dette ricerche booleane poich`e impiegano tecniche di logica proposizionale. In esse sono usati i seguenti connettivi: • AN D per trovare quei record che contengono entrambi i termini della ricerca; • OR per trovare quei record che contengono almeno uno dei due termini della ricerca (e quindi anche entrambi); • N OT per escludere quei record che contengono quel particolare termine della ricerca. Come vedremo nel seguente esempio, un attento uso di questi connettivi `e importante nelle ricerche booleane di informazioni di particolare interesse. Esempio 1.9 Nel Web, molti motori di ricerca supportano la ricerca booleana. Per esempio, usando la ricerca booleana per trovare le pagine web riguardanti le universit`a del New Mexico, possiamo scrivere NEW AN D MEXICO AN D UNIVERSITIES. Come risultato avremo le pagine che contengono tutte e tre le parole NEW, MEXICO, e UNIVERSITIES. Otterremo quindi tutte le pagine che ci interessano ma anche altre come per esempio quelle che contengono le NEW UNIVERSITES nel MEXICO (le quali non sono di nostro interesse). Se cerchiamo le pagine web riguardanti le universit`a del New Mexico e dell’Arizona possiamo scrivere (NEW AN D MEXICO OR ARIZONA) AN D UNIVERSITIES (si ricordi che l’operatore AN D ha precedenza sull’operatore OR). Come risultato avremo tutte le pagine contenenti la parola UNIVERSITIES e o entrambe le parole NEW e MEXICO oppure la parola ARIZONA. Ancora una volta otterremo anche delle pagine che non ci interessano. Infine, supponiamo di cercare pagine web riguardanti le universit`a del Mexico (e non del New Mexico). Se scriviamo MEXICO AN D UNIVERSITIES il risultato della ricerca 7

includer`a anche le pagine che riguardano il New Mexico. Per evitare ci`o potremmo scrivere (MEXICO AN D UNIVERSITIES) N OT NEW. Come risultato avremo quelle pagine contenenti le parole MEXICO e UNIVERSITIES ma non la parola NEW. Potremmo quindi perdere le pagine contenenti le NEW UNIVERSITIES nel MEXICO. I computer rappresentano le informazioni usando bit. Un bit ha due possibili valori: 0 e 1. Ci`o spiega il significato della parola bit (binary digit): 0 e 1 sono le cifre usate nella rappresentazione binaria di un numero. Un bit pu`o essere usato anche per rappresentare il valore di verit`a. Precisamente si usa 0 per rappresentare F e 1 per rappresentare V. Una variabile si dice booleana se il suo valore `e V o F. Quindi una variabile booleana pu`o essere rappresentata usando un bit (o meglio, lo spazio di memoria necessario in un computer per rappresentare una variabile booleana `e un bit). Le operazioni fra bit in un computer corrispondono ai connettivi logici. Sostituendo V con 1 e F con 0 nelle tavole di verit`a degli operatori ∧, ∨ e ⊕ otteniamo i risultati mostrati nella Tabella 7 per le operazioni fra bit corrispondenti. Come in molti linguaggi di programmazione, useremo anche le notazioni OR, AN D e XOR per rappresentare rispettivamente gli operatori ∨, ∧ e ⊕.

x∨y x∧y x⊕y

x

y

0

0

0

0

0

0

1

1

0

1

1

0

1

0

1

1

1

1

1

0

Tabella 7 Le informazioni sono spesso rappresentate da successioni di bit (bit string), cio`e da successioni di zeri e uni. In tal caso si possono usare operazioni fra bit string per manipolare le informazioni rappresentate da esse. Definizione 1.7 Una bit string `e una successione di zero o pi` u bit. La lunghezza di una bit string `e data dal numero dei suoi bit. Per esempio 1010111001 `e una bit string di lunghezza dieci. Le operazioni fra bit possono estendersi ad operazioni fra bit string della stessa lunghezza. Precisamente, le operazioni OR, AN D e XOR fra due bit string della stessa lunghezza 8

producono la bit string che si ottiene applicando le operazioni OR, AN D e XOR fra ogni coppia di bit corrispondenti delle due bit string. Mostriamo ci`o con un esempio dove usiamo i simboli ∨, ∧ e ⊕ per rappresentare rispettivamente OR, AN D e XOR. Esempio 1.10 Determinare OR, AN D e XOR fra le bit string 0110110110 e 1100011101. Applicando gli operatori bit per bit abbiamo: 0110110110 ∨ 1100011101 = 0 ∨ 1 1 ∨ 1 1 ∨ 0 0 ∨ 0 1 ∨ 0 1 ∨ 1 0 ∨ 1 1 ∨ 1 1 ∨ 0 0 ∨ 1 = 1110111111; 0110110110 ∧ 1100011101 = 0 ∧ 1 1 ∧ 1 1 ∧ 0 0 ∧ 0 1 ∧ 0 1 ∧ 1 0 ∧ 1 1 ∧ 1 1 ∧ 0 0 ∧ 1 = 0100010100; 0110110110 ⊕ 1100011101 = 0 ⊕ 1 1 ⊕ 1 1 ⊕ 0 0 ⊕ 0 1 ⊕ 0 1 ⊕ 1 0 ⊕ 1 1 ⊕ 1 1 ⊕ 0 0 ⊕ 1 = 1010101011.

2

Equivalenze proposizionali

Una tecnica importante nei ragionamenti matematici `e quella di sostituire una proposizione con un’altra pi` u semplice ma con lo stesso valore di verit`a. Definizione 2.1 Dicesi tautologia una proposizione composta che ha sempre il valore di verit` a V qualunque sia il valore di verit` a delle proposizioni che appaiono in essa. Dicesi assurdo una proposizione composta che ha sempre valore di verit` a F qualunque sia il valore di verit`a delle proposizioni che appaiono in essa. Esempio 2.1 Possiamo costruire esempi di tautologie e assurdi usando solo una proposizione, che indichiamo con p. Come si vede in Tabella 8, i valori di verit`a delle proposizioni composte p ∨ ¬p e p ∧ ¬p sono rispettivamente sempre V e F indipendentemente dal valore di verit`a di p.

p

¬p

p ∨ ¬p p ∧ ¬p

V

F

V

F

F

V

V

F

Tabella 8 Definizione 2.2 Le proposizioni p e q si dicono logicamente equivalenti se p ↔ q `e una tautologia. La notazione p ⇔ q indica che p e q sono logicamente equivalenti. 9

Un modo per verificare se due proposizioni sono logicamente equivalenti `e dato dal calcolo delle loro tavole di verit`a. Precisamente p e q sono equivalenti se e solo se le colonne risultanti nelle loro rispettive tavole di verit`a coincidono. Illustriamo ci`o in alcuni esempi. Esempio 2.2 Le proposizioni composte ¬(p ∨ q) e ¬p ∧ ¬q sono equivalenti. Basta calcolare le loro tavole di verit`a e verificare che esse coincidono (si veda la Tabella 9).

p ∨ q ¬(p ∨ q)

¬p

¬q

¬p ∧ ¬q

F

F

F

F

V

F

F

V

F

V

V

F

V

F

F

F

F

V

V

V

V

p

q

V

V

V

V

F

F F

Tabella 9 Esempio 2.3 Le proposizioni composte p → q e ¬p ∨ q sono equivalenti. Basta calcolare le loro tavole di verit`a e verificare che esse coincidono (si veda la Tabella 10).

p

q

¬p

¬p ∨ q p → q

V

V

F

V

V

V

F

F

F

F

F

V

V

V

V

F

F

V

V

V

Tabella 10 10

Esempio 2.4 Le proposizioni composte p ∨ (q ∧ r) e (p ∨ q) ∧ (p ∨ r) sono equivalenti. Basta calcolare le loro tavole di verit`a e verificare che esse coincidono (si veda la Tabella 11). Si osservi che se una proposizione `e composta da tre altre proposizioni, la sua tavola di verit`a contiene otto righe. In generale, se una proposizione si ottiene componendone altre n, la sua tavola di verit`a richiede 2n righe.

q ∧ r p ∨ (q ∧ r) p ∨ q p ∨ r (p ∨ q) ∧ (p ∨ r)

p

q

r

V

V

V

V

V

V

V

V

V

V

F

F

V

V

V

V

V

F

V

F

V

V

V

V

V

F

F

F

V

V

V

V

F

V

V

V

V

V

V

V

F

V

F

F

F

V

F

F

F

F

V

F

F

F

V

F

F

F

F

F

F

F

F

F

Tabella 11 La Tabella 12 contiene equivalenze interessanti. Con le parole V ERA e F ALSA indichiamo rispettivamente una proposizione sempre vera oppure sempre falsa. L’associativit`a per la disgiunzione mostra che l’espressione p ∨ q ∨ r `e ben definita, nel senso che non ha importanza se prima applichiamo la disgiunzione fra p e q e poi al risultato applichiamo la disgiunzione con r oppure se applichiamo la disgiunzione fra p e q ∨ r. Analogamente p ∧ q ∧ r `e ben definita. Generalizzando, se p1 , p2 , . . . , pn sono proposizioni, le scritture p1 ∨ p2 ∨ . . . ∨ pn e p1 ∧ p2 ∧ . . . ∧ pn sono ben definite. Si osservi che le regole di De Morgan si estendono nel seguente modo: ¬(p1 ∨ p2 ∨ . . . ∨ pn ) ⇔ (¬p1 ∧ ¬p2 ∧ . . . ∧ ¬pn ), ¬(p1 ∧ p2 ∧ . . . ∧ pn ) ⇔ (¬p1 ∨ ¬p2 ∨ . . . ∨ ¬pn ). 11

p ∧ V ERA ⇔ p p ∨ F ALSA ⇔ p

Identita0

p ∨ V ERA ⇔ V ERA p ∧ F ALSA ⇔ F ALSA

Domination

p∨p⇔p p∧p⇔p

Idempotenza

¬(¬p) ⇔ p

Doppia negazione

p∨q ⇔q∨p p∧q ⇔q∧p

Commutativita0

(p ∨ q) ∨ r ⇔ p ∨ (q ∨ r) (p ∧ q) ∧ r ⇔ p ∧ (q ∧ r)

Associativita0

p ∨ (q ∧ r) ⇔ (p ∨ q) ∧ (p ∨ r) p ∧ (q ∨ r) ⇔ (p ∧ q) ∨ (p ∧ r)

Distributivita0

¬(p ∧ q) ⇔ ¬p ∨ ¬q ¬(p ∨ q) ⇔ ¬p ∧ ¬q

De Morgan

Tabella 12 Altre ovvie equivalenze logiche sono quelle della Tabella 13.

p ∨ ¬p ⇔ V ERA p ∧ ¬p ⇔ F ALSA (p → q) ⇔ (¬p ∨ q) Tabella 13 Equivalenze come quelle delle Tabelle 12 e 13 sono utili nella costruzione di ulteriori equivalenze logiche. L’importanza di queste ultime `e dovuta al fatto che spesso in una proposizione composta `e utile cambiare una proposizione componente con una ad essa equivalente (cio`e avente lo stesso valore di verit`a). Vediamo ci`o nei due esempi seguenti. In essi viene anche utilizzata la propriet`a transitiva delle equivalenze: se p ⇔ q e q ⇔ r allora p ⇔ r. 12

Esempio 2.5 Le proposizioni ¬(p ∨ (¬p ∧ q)) e ¬p ∧ ¬q sono equivalenti. Invece di usare le loro tavole di verit`a, proveremo l’equivalenza in esame attraverso una successione di equivalenze logiche partendo dalla ¬(p ∨ (¬p ∧ q)) e arrivando alla ¬p ∧ ¬q. In ogni passo sfrutteremo una equivalenza delle Tabelle 12 o 13 (controllare quale). ¬(p ∨ (¬p ∧ q)) ⇔ ¬p ∧ ¬(¬p ∧ q) ⇔ ¬p ∧ [¬(¬p) ∨ ¬q] ⇔ ¬p ∧ (p ∨ ¬q) ⇔ ⇔ (¬p ∧ p) ∨ (¬p ∧ ¬q) ⇔ F ALSA ∨ (¬p ∧ ¬q) ⇔ ¬p ∧ ¬q. Esempio 2.6 La proposizione (p ∧ q) → (p ∨ q) `e una tautologia. Useremo le equivalenze logiche per provare che la proposizione in esame `e equivalente a V ERA (lo stesso potrebbe essere fatto attraverso la tavola di verit`a). (p ∧ q) → (p ∨ q) ⇔ ¬(p ∧ q) ∨ (p ∨ q) ⇔ (¬p ∨ ¬q) ∨ (p ∨ q) ⇔ (¬p ∨ p) ∨ (¬q ∨ q) ⇔ ⇔ V ERA ∨ V ERA ⇔ V ERA. Per verificare il valore di verit`a di una funzione composta basterebbe determinarne la tavola di verit`a. Ma cosa accade se il numero delle proposizioni componenti non `e basso? Supponiamo che vi siano 20 proposizioni componenti. In tal caso la tavola di verit`a della proposizione composta contiene 220 = 1.048.576 righe. In questo caso potremo risolvere in modo affidabile il nostro problema solo affidando ad un computer il calcolo della tavola di verit`a. Ma, nel caso in cui le proposizioni componenti crescano a 1000, il tempo di risposta del computer sarebbe proibitivo (il computer dovrebbe verificare 21000 combinazioni di valori di verit`a). D’altro canto non si conoscono altre procedure che un computer possa usare per verificare, in un tempo ragionevole, se una proposizione composta sia o no una tautologia. Per questi motivi riveste una notevole importanza in informatica lo studio della complessit`a di un algoritmo.

3

Predicati e quantificatori

Espressioni contenenti variabili, come “x > 3”, “x = y + 3” e “x + y = t”, sono comuni in matematica. Queste espressioni non sono, in generale, n`e vere n`e false (quindi non sono proposizioni nel senso definito precedentemente). Affinch`e lo diventino occorre specificare il valore delle variabili che appaiono in esse. Consideriamo la prima “x > 3”, cio`e “x `e maggiore di 3”. Questa espressione `e composta da due parti. La prima `e la variabile “x”, il soggetto. La seconda, il predicato “`e maggiore di 3”, esprime una propriet`a che il soggetto pu`o avere. Possiamo indicare l’espressione “x `e maggiore di 3” con P (x) convenendo che P indichi il predicato “`e maggiore di 3” ed x il soggetto. L’espressione P (x) `e detta valore della funzione proposizionale P in x. Una volta che un valore sia stato assegnato alla variabile x, P (x) diventa una proposizione ed ha quindi un valore di verit`a. Esempio 3.1 Sia P (x) l’espressione “x > 3”. Calcolare i valori di verit`a di P (4) e di P (1). Abbiamo P (4) =“4 > 3”. Quindi P (4) `e V. Invece P (1) `e F in quanto P (1) =“1 > 3”.

13

Possiamo avere espressioni dipendenti da una o pi` u variabili. Per esempio le espressioni “x = y + 3” e “x + y = t”, dipendendo rispettivamente da due e tre variabili, le possiamo indicare con Q(x, y) e R(x, y, t). Similmente all’Esempio 3.1, otteniamo che Q(1, 2) `e F, Q(3, 0) `e V, R(1, 2, 3) `e V e R(1, 0, 3) `e F. In generale, indicheremo con P (x1 , x2 , . . . , xn ) un’espressione dipendente da n variabili. Diremo che P (x1 , x2 , . . . , xn ) `e il valore della funzione proposizionale P nella n-upla (x1 , x2 , . . . , xn ), e P `e detto il predicato. Spesso le proposizioni funzionali sono usate anche nella scrittura di programmi per computer. Esempio 3.2 Si consideri la seguente istruzione if x > 0 then x := x + 1. Quando essa `e incontrata da un programma, il valore della variabile x viene inserito nella espressione P (x) =“x > 0”. Se P (x) `e V per quello specifico valore di x, allora l’assegnazione x := x + 1 viene eseguita, cio`e il valore di x viene incrementato di 1. Se P (x) `e F, sempre per quello specifico valore di x, l’assegnazione x := x + 1 non viene eseguita, cio`e il valore di x rimane inalterato. Abbiamo visto che assegnando dei valori alle variabili di una funzione proposizionale otteniamo una proposizione. Un altro modo per ottenere una proposizione da una funzione proposizionale `e l’uso del quantificatore universale ∀ (per ogni) e del quantificatore esistenziale ∃ (esiste). Molti enunciati matematici affermano che una propriet`a `e vera per tutti i valori di una variabile in un particolare dominio detto l’universo del discorso. Un tale enunciato viene espresso mediante l’uso di un quantificatore universale. La quantificazione universale di una funzione proposizionale P (x) `e la proposizione che afferma che P (x) `e vera qualunque sia il valore di x nell’universo del discorso. Useremo la notazione ∀xP (x) per indicare la quantificazione universale di P (x). Ovviamente bisogna aver specificato prima qual’`e l’universo del discorso. Esempio 3.3 Esprimere la frase “Ogni studente di questa classe ha studiato Formazione Analitica I” come una quantificazione universale. Poniamo P (x) =“x ha studiato Formazione Analitica I”. Allora l’enunciato “Ogni studente di questa classe ha studiato Formazione Analitica I” pu`o essere scritto come ∀xP (x) a condizione che sia ben precisato che l’universo del discorso `e dato da tutti gli studenti di questa classe. Se poniamo S(x)=“x `e in questa classe”, l’enunciato precedente pu`o essere scritto nel seguente modo ∀x(S(x) → P (x)).

14

L’esempio 3.3 mostra quindi che una quantificazione pu`o essere espressa in pi` u di un modo. Esempio 3.4 Sia P (x) =“x + 1 > x”. Qual’`e il valore di verit`a di ∀xP (x), essendo l’insieme dei numeri reali l’universo del discorso? Poich`e P (x) `e vera per ogni numero reale x, il valore di verit`a di ∀xP (x) `e V. Esempio 3.5 Sia Q(x) =“x < 2”. Qual’`e il valore di verit`a di ∀xQ(x), essendo l’insieme dei numeri reali l’universo del discorso? Q(x) non `e vera per ogni numero reale x (per esempio Q(5) `e falsa. Quindi il valore di verit`a di ∀xQ(x) `e F. Esempio 3.6 Sia P (x) =“x2 < 10”. Qual’`e il valore di verit`a di ∀xP (x), essendo l’universo del discorso dato da tutti gli interi positivi e minori od uguali a 4? Si osservi che il valore di verit`a di ∀xP (x) coincide con quello di P (1)∧P (2)∧P (3)∧P (4) poich`e l’universo del discorso coincide con l’insieme dei numeri 1, 2, 3 e 4. Essendo F il valore di verit`a di P (4) sar`a anche F quello di ∀xP (x). Molti enunciati matematici asseriscono che nell’universo del discorso esiste (almeno) un elemento che gode di una certa propriet`a. Un tale enunciato si esprime mediante la quantificazione esistenziale di una funzione proposizionale. Precisamente, sia P (x) una funzione proposizionale. Diremo quantificazione esistenziale di P (x) la proposizione “Esiste un elemento x nell’universo del discorso tale che P (x) `e vera”. La quantificazione esistenziale di P (x) si denota con la scrittura ∃xP (x). Spesso, invece di dire “esiste un x tale che P (x)” si dice “per qualche x P (x)”. Esempio 3.7 Sia P (x) =“x > 3”. Qual’`e il valore di verit`a di ∃xP (x), essendo l’insieme dei numeri reali l’universo del discorso? Si ha, per esempio, che P (4) `e V. Allora anche ∃xP (x) `e V. Esempio 3.8 Sia Q(x) =“x = x+1”. Qual’`e il valore di verit`a di ∃xQ(x), essendo l’insieme dei numeri reali l’universo del discorso? Poich`e Q(x) `e falsa per ogni numero reale x, il valore di verit`a di ∃xQ(x) `e F. Esempio 3.9 Sia P (x) =“x2 > 10”. Qual’`e il valore di verit`a di ∃xP (x), essendo l’universo del discorso dato da tutti gli interi positivi e minori od uguali a 4? Si osservi che il valore di verit`a di ∃xP (x) coincide con quello di P (1)∨P (2)∨P (3)∨P (4) poich`e l’universo del discorso coincide con l’insieme dei numeri 1, 2, 3 e 4. Essendo V il valore di verit`a di P (4) sar`a anche V quello di ∃xP (x). In Tabella 14 sono riassunti i significati dei quantificatori universale ed esistenziale.

15

Funzione proposizionale

Quando e0 vera?

Quando e0 falsa?

∀xP (x)

P (x) e0 vera per ogni x

Esiste un x per cui P (x) e0 falsa

∃xP (x)

Esiste un x per cui P (x) e0 vera

P (x) e0 falsa per ogni x

Tabella 14 Se l’universo del discorso contiene un numero finito di elementi, per determinare il valore di verit`a di ∀xP (x) oppure di ∃xP (x) si pu`o procedere calcolando il valore di verit`a di P (x) per ogni x nell’universo del discorso procedendo in modo simile agli Esempi 3.6 e 3.9. Certe espressioni logiche sono molto complicate. In tal caso conviene tradurle nel linguaggio comune. Vediamo i seguenti esempi. Esempio 3.10 Tradurre in forma pi` u comprensibile la seguente espressione ∀x[C(x) ∨ ∃y(C(y) ∧ F (x, y))], tenendo presente che C(x) =“x ha un computer”, F (x, y) =“x e y sono amici” e che l’universo del discorso per entrambe le variabili x e y `e l’insieme degli studenti della tua scuola. L’enunciato dice che per ogni studente x della tua scuola, x ha un computer oppure c’`e uno studente y che ha un computer e x ed y sono amici. In altre parole, ogni studente della tua scuola ha un computer oppure `e amico di uno studente della tua scuola che ha un computer. Esempio 3.11 Tradurre in forma pi` u comprensibile la seguente espressione ∃x∀y∀z[(F (x, y) ∧ F (x, z) ∧ (y 6= z)) → ¬F (y, z)], tenendo presente che F (x, y) =“x e y sono amici” e che l’universo del discorso per tutte e tre le variabili x, y e z `e l’insieme degli studenti della tua scuola. L’enunciato dice che c’`e uno studente x della tua scuola tale che per ogni studente y e per ogni studente z diverso da y, se x e y sono amici e x e z sono amici, allora y e z non sono amici. In altre parole, esiste almeno uno studente i cui amici non sono mai amici fra loro. Si osservi che la proposizione di questo esempio `e sempre falsa a meno che non si supponga x 6= y e x 6= z.

16

Esempio 3.12 Supponiamo che l’universo del discorso per tutte le variabili di questo esempio sia l’insieme dei numeri reali. L’enunciato ∀x∀y(x + y = y + x) dice che x + y = y + x per tutti i numeri reali x e y. Questa `e la propriet`a commutativa dell’addizione nei numeri reali. L’enunciato ∀x∃y(x + y = 0) dice che per ogni numero reale x esiste almeno un numero reale y tale che x + y = 0. Cio`e ogni numero reale ha almeno un opposto. Infine ∀x∀y∀z(x + (y + z) = (x + y) + z) `e la propriet`a associativa dell’addizione nei numeri reali. Negli esempi seguenti mostrano come esprimere espressioni del linguaggio comune in espressioni logiche. Esempio 3.13 Tradurre in espressioni logiche le seguenti frasi: “Qualche studente di questa classe `e stato in Francia”, “Ogni studente di questa classe `e stato o in Francia o in Inghilterra”. L’universo del discorso per la variabile x `e l’insieme degli studenti di questa classe. Siano F (x) =“x `e stato in Francia” e I(x) =“x `e stato in Inghiterra”. Allora “Qualche studente di questa classe `e stato in Francia” pu`o essere scritta come ∃xF (x), mentre la frase “Ogni studente di questa classe `e stato o in Francia o in Inghilterra ” si traduce in ∀x(F (x) ∨ I(x)). Esempio 3.14 Tradurre in espressione logica la frase “Ognuno ha un solo miglior amico”. L’universo del discorso per le variabili x, y e z `e l’insieme di tutte le persone. Sia B(x, y) =“y `e il miglior amico di x”. La frase dell’esempio afferma che per ogni persona x esiste un’altra persona y tale che y `e il miglior amico di x e che se z `e una terza persona, diversa sia da x che da y, allora z non `e il miglior amico di x. In definitiva, possiamo scrivere la traduzione della nostra frase `e ∀x∃y∀z[B(x, y) ∧ (((z 6= x) ∧ (z 6= y)) → ¬B(x, z))]. Esempio 3.15 Tradurre in espressione logica la frase “Se qualcuno `e di sesso femminile ed `e genitore, allora `e una madre”. L’universo del discorso, sia per x che per y, `e l’insieme di tutte le persone. Siano F (x) =“x `e di sesso femminile” e G(x) =“x `e genitore”. Infine poniamo M (x, y) =“x `e madre di y”. La traduzione della nostra frase `e ∀x((F (x) ∧ G(x)) → ∃yM (x, y)).

17

Esempio 3.16 Tradurre in espressione logica la frase “Esiste una donna che ha volato con ogni compagnia aerea del mondo”. Siano d, v e c le variabili nei seguenti rispettivi universi del discorso: insieme delle donne, insieme dei voli e insieme delle compagnie aeree. Poniamo P (d, v) =“d ha preso v” e Q(v, a) =“v `e un volo di a”. La traduzione della nostra frase `e ∃d∀a∃v(P (d, v) ∧ Q(v, a)). Esempio 3.17 Tradurre in espressione logica la definizione lim f (x) = L

x→a

essendo a ed L numeri reali e f (x) una funzione reale di variabile reale. Ricordiamo che la definizione di limx→a f (x) = L `e: Per ogni numero reale positivo  esiste un numero reale positivo δ tale che |f (x) − L| <  ogniqualvolta 0 < |x − a| < δ. Possiamo tradurre questa definizione nella seguente espressione logica ∀ > 0∃δ > 0∀x(0 < |x − a| < δ → |f (x) − L| < ). Esempio 3.18 Tradurre in espressioni logiche i seguenti enunciati: “Tutti i leoni sono animali feroci”, “Alcuni leoni non bevono caff`e” e “Qualche animale feroce non beve caff`e”. Poniamo P (x) =“x `e un leone”, Q(x) =“x `e un animale feroce”, R(x) =“x beve caff`e” e supponiamo che l’universo del discorso sia l’insieme di tutti gli animali. I tre enunciati precedenti si traducono rispettivamente nelle tre seguenti espressioni logiche: ∀x(P (x) → Q(x)), ∃x(P (x) ∧ ¬R(x)), ∃x(Q(x) ∧ ¬R(x)). Nel Paragrafo 4 useremo regole di inferenza che mostrano come dalle prime due espressioni (premesse) segua la terza (conclusione). Esempio 3.19 Tradurre in espressioni logiche i seguenti enunciati: “Tutti i colibr`ı sono molto colorati”, “Gli uccelli grandi non si cibano di miele”, “Gli uccelli che non si cibano di miele hanno colori spenti” e “I colibr`ı sono piccoli”. Poniamo P (x) =“x `e un colibr`ı”, Q(x) =“x `e grande”, R(x) =“x si ciba di miele”, S(x) =“x `e molto colorato” e supponiamo che l’universo del discorso sia l’insieme di tutti gli uccelli. I tre enunciati precedenti si traducono rispettivamente nelle quattro seguenti espressioni logiche: ∀x(P (x) → S(x)), ¬∃x(Q(x) ∧ R(x)), ∀x(¬R(x) → ¬S(x)), ∀x(P (x) → ¬Q(x)). Nel Paragrafo 4 useremo regole di inferenza che mostrano come dalle prime tre espressioni (premesse) segua la quarta (conclusione). 18

Diremo che una variabile `e impegnata se ad essa `e applicato un quantificatore oppure quando ad essa viene assegnato un valore. Altrimenti la variabile viene detta libera. Tutte le variabili di una funzione proposizionale devono essere impegnate. Spesso gli enunciati matematici contengono quantificazioni di funzioni proposizionali che dipendeno da parecchie ` quindi molto importante l’ordine in cui vengono scritti i quantificatori. Mostrivariabili. E amo ci`o negli Esempi 3.20, 3.21 e 3.22. In essi l’universo del discorso, per tutte le variabili, `e l’insieme dei numeri reali. Esempio 3.20 Sia P (x, y) =“x + y = y + x”. Determinare il valore di verit`a della quantificazione ∀x∀yP (x, y). Si osservi che ∀x∀yP (x, y) si pu`o tradurre nella seguente espressione “Per ogni numero reale x e per ogni numero reale y, `e vero che x + y = y + x”. Quindi il valore di verit`a di ∀x∀yP (x, y) `e V. Esempio 3.21 Sia Q(x, y) =“x+y = 0”. Determinare il valore di verit`a delle quantificazioni ∃y∀xQ(x, y) e ∀x∃yQ(x, y). Si osservi che ∃y∀xQ(x, y) si pu`o tradurre nella seguente espressione “Esiste un numero reale y tale che per ogni numero reale x, Q(x, y) `e vera”. Poich`e comunque si prenda il numero reale y, esiste solo un numero reale x per cui x + y = 0, possiamo concludere che il valore di ∃y∀xQ(x, y) `e F. Analogamente, ∀x∃yQ(x, y) si pu`o tradurre nella seguente espressione “Per ogni numero reale x esiste un numero reale y tale che Q(x, y) sia vera”. Quindi il valore di ∀x∃yQ(x, y) `e V. L’Esempio 3.21 mostra l’importanza dell’ordine in cui appaiono i quantificatori. Le proposizioni ∃y∀xQ(x, y) e ∀x∃yQ(x, y) non sono logicamente equivalenti. Infatti ∃y∀xQ(x, y) `e vera se e solo se esiste un y che rende vera Q(x, y) per ogni x. Quindi questa proposizione `e vera se esiste un y per cui Q(x, y) `e vera indipendentemente dalla scelta del valore di x. D’altro canto, ∀x∃yQ(x, y) `e vera se e solo se per ogni valore di x esiste un valore di y per cui Q(x, y) `e vera. In questo caso y pu`o dipendere da x, mentre nel primo caso y era una costante indipendente da x. Da queste osservazioni segue che se ∃y∀xQ(x, y) `e vera, allora ∀x∃yQ(x, y) deve anche essere vera. Per`o, se ∀x∃yQ(x, y) `e vera, non `e detto che ∃y∀xQ(x, y) sia vera. Lavorando con quantificazioni di pi` u di una variabile pu`o essere utile pensare che ogni variabile ricopra tutti i valori del suo universo (chiaramente questo non `e realmente fattibile se l’universo del discorso `e infinito). Per esempio, per vedere se ∀x∀yP (x, y) `e vera, pensiamo ad ogni possibile valore di x e, per ogni x fissato, ad ogni possibile valore di y. Se otteniamo che P (x, y) `e sempre vera, abbiamo provato che ∀x∀yP (x, y) `e vera. Se incontriamo un valore di x per cui sia possibile trovare un valore di y per cui P (x, y) `e falsa, allora ∀x∀yP (x, y) `e falsa. Analogamente, per verificare se ∀x∃yP (x, y) `e vera, pensiamo che x assuma tutti i valori del suo universo. Per ognuno di questi valori di x, pensiamo che y ricopra tutti i valori del suo universo fintantoch`e non ne troviamo uno per cui P (x, y) sia vera. Se per ogni x 19

incontriamo uno di questi y, ∀x∃yP (x, y) `e vera; se per qualche x non incontriamo nessuno di questi valori di y, ∀x∃yP (x, y) `e falsa. In modo simile si pu`o procedere per ∃x∀yP (x, y) e ∃x∃yP (x, y). La Tabella 15 riassume tutti i possibili casi per quantificazioni in cui le funzioni proposizionali hanno due variabili.

Proposizione

Quando e0 vera?

Quando e0 falsa?

∀x∀yP (x, y) ∀y∀xP (x, y)

P (x, y) e0 vera per ogni coppia x, y.

Esiste una coppia x, y per cui P (x, y) e0 falsa.

∀x∃yP (x, y)

Per ogni x esiste un y per cui P (x, y) e0 vera.

Esiste un x tale che P (x, y) e0 falsa per ogni y.

∃x∀yP (x, y)

Esiste un x per cui P (x, y) e0 vera per ogni y.

Per ogni x esiste un y per cui P (x, y) e0 falsa.

∃x∃yP (x, y) ∃y∃xP (x, y)

Esiste una coppia x, y per cui P (x, y) e0 vera.

P (x, y) e0 falsa per ogni coppia x, y.

Tabella 15

Esempio 3.22 Sia Q(x, y, z) =“x + y = z”. Determinare il valore di verit`a delle quantificazioni ∀x∀y∃zQ(x, y, z) e ∃z∀x∀yQ(x, y, z). Si osservi che ∀x∀y∃zQ(x, y, z) si pu`o tradurre nella seguente espressione “Per ogni numero reale x e per ogni numero reale y esiste un numero reale z tale che x + y = z sia vera”. Supponiamo che ad x e ad y siano assegnati due valori. Allora esiste un numero reale z tale che x + y = z. Quindi il valore di verit`a di ∀x∀y∃zQ(x, y, z) `e V. Si noti l’importanza dell’ordine della quantificazione. Infatti la seconda quantificazione ∃z∀x∀yQ(x, y, z) equivale a dire “Esiste un numero reale z tale che per ogni numero reale x e per ogni numero reale y l’uguaglianza x + y = z `e vera”. Ovviamente un tale z non pu`o esistere, quindi il valore di verit`a di ∃z∀x∀yQ(x, y, z) `e F. Consideriamo la negazione dell’espressione “Ogni studente di questa classe ha superato il corso di Formazione discreta I”. Questa espressione `e una quantificazione universale, cio`e ∀xP (x), dove P (x) =“x ha superato il corso di Formazione discreta I”. La negazione di questa quantificazione `e “Non `e vero che ogni studente di questa classe ha superato il corso di Formazione discreta I”, la quale equivale alla “Esiste almeno uno studente di questa classe

20

che non ha superato il corso di Formazione discreta I”, cio`e ∃x¬P (x). Abbiamo quindi visto l’equivalenza ¬∀xP (x) ⇔ ∃x¬P (x). Analogamente si prova l’equivalenza ¬∃xP (x) ⇔ ∀x¬P (x). Le negazioni dei quantificatori sono riassunte nella Tabella 16.

Negazione Proposizione Quando la negazione equivalente e0 vera?

Quando e0 falsa?

¬∃xP (x)

∀x¬P (x)

P (x) e0 falsa per ogni x.

Esiste un x per cui P (x) e0 vera.

¬∀xP (x)

∃x¬P (x)

Esiste un x per cui P (x) e0 falsa.

P (x) e0 vera per ogni x.

Tabella 16

4

Regole di inferenza

In questo paragrafo cercheremo di dare una risposta alle seguenti domande: 1. Quando un ragionamento `e matematicamente corretto? 2. Quali metodi possono essere usati per costruire ragionamenti matematici? Un teorema `e una proposizione di cui si deve provare la verit`a. Un teorema si dimostra mediante una successione di proposizioni che forma una argomentazione, detta dimostrazione. Le dimostrazioni si ottengono derivando proposizioni nuove da proposizioni vecchie fra le quali si possono trovare gli assiomi o postulati (che sono i presupposti della teoria), le ipotesi del teorema da provare e gli enunciati di altri teoremi precedentemente provati. Le regole di inferenza sono quelle regole per cui si ottengono conclusioni da altre proposizioni. Ovviamente, le regole di inferenza sono necessarie per la dimostrazione di un teorema. Si osservi che, a volte, invece della parola teorema viene usato il termine lemma (nel caso in cui si tratta di un teorema pi` u semplice utile per la dimostrazione di un altro teorema) o corollario (nel caso in cui si tratta di un teorema che `e facile conseguenza di un teorema gi`a provato). 21

Una congettura `e una proposizione il cui valore di verit`a `e sconosciuto. Una congettura, di cui si `e dimostrata la verit`a, diventa un teorema. Introduciamo alcune regole di inferenza per la logica proposizionale. La tautologia (p ∧ (p → q)) → q `e la base delle regole di inferenza. Essa `e detta modus ponens. Essa viene scritta nel modo seguente (col simbolo  denotiamo la parola “quindi”):

p p→q  q Con questa notazione, le ipotesi sono scritte in colonna e la conclusione al di sotto della linea. Il modus ponens dice che: data un’implicazione, se essa `e vera e la sua ipotesi `e pure vera, allora anche la sua conclusione `e vera. Esempio 4.1 Supponiamo vere sia l’implicazione “Se oggi nevica, andremo a sciare” che la sua ipotesi `e “oggi nevica”. Chiaramente la conclusione dell’implicazione “andremo a sciare” deve essere vera. Esempio 4.2 L’implicazione “Se n `e divisibile per 3, allora n2 `e divisibile per 9” `e vera. Quindi se supponiamo vero che n sia divisibile per tre abbiamo, per il modus ponens, che n `e divisibile per 9. In Tabella 17 sono riportate le pi` u importanti regole di inferenza. Esse possono essere facilmente dimostrate attraverso le tavole di verit`a. Esempio 4.3 Determinare su quale regola di inferenza si basa il seguente ragionamento “In questo momento siamo sotto i zero gradi, quindi o in questo momento siamo sotto i zero gradi oppure sta piovendo”. Siano p =“In questo momento siamo sotto i zero gradi” e q =“In questo momento sta piovendo”. Il ragionamento ha la forma

p  p∨q Quindi la regola d’inferenza usata `e l’Addizione. Esempio 4.4 Determinare su quale regola di inferenza si basa il seguente ragionamento: “In questo momento vi sono pi` u di 30 gradi e sta piovendo. Quindi, in questo momento sta piovendo.” Poniamo p =“In questo momento vi sono pi` u di 30” e q =“In questo momento sta piovendo”. Il ragionamento ha la forma 22

p∧q  p Quindi la regola d’inferenza usata `e la Semplificazione.

Regola di inferenza

Tautologia

Nome

p  p∨q

p → (p ∨ q)

Addizione

p∧q  p

(p ∧ q) → p

Semplificazione

((p) ∧ (q)) → (p ∧ q)

Congiunzione

p p→q  q

[p ∧ (p → q)] → q

Modus ponens

¬q p→q  ¬p

[¬q ∧ (p → q)] → ¬p

Modus tollens

[(p → q) ∧ (q → r)] → (p → r)

Sillogismo ipotetico

[(p ∨ q) ∧ ¬p] → q

Sillogismo disgiuntivo

(p → q) → (¬q → ¬p)

Contronominale

p q  p∧q

p→q q→r  p→r p∨q ¬p  q p→q  ¬q → ¬p

Tabella 17 Esempio 4.5 Determinare su quale regola di inferenza si basa il seguente ragionamento: “Se oggi piove non accenderemo il barbecue. Se oggi non accendiamo il barbecue, lo accenderemo domani. Perci`o, se oggi piove, accenderemo il barbecue domani.” 23

Poniamo p =“Oggi piove”, q =“Oggi non accendiamo il barbecue” e r =“Domani accenderemo il barbecue”. Il ragionamento ha la forma p→q q→r  p→r Quindi la regola d’inferenza usata `e il Sillogismo ipotetico. Diremo che un ragionamento `e valido se quando tutte le ipotesi sono vere allora la conlusione `e vera. Quindi, mostrare che q `e conseguenza delle ipotesi p1 , p2 , . . . , pn equivale a provare che la seguente implicazione sia vera (p1 ∧ p2 ∧ . . . ∧ pn ) → q. Se tutte le ipotesi usate in un ragionamento valido sono vere, si ottiene una conclusione corretta. Si noti che un ragionamento valido pu`o portare ad una conclusione errata se durante le argomentazioni sono state usate una o pi` u proposizioni false. Per esempio, consideriamo il seguente ragionamento: “Se 101 `e divisibile per 3, allora 1012 `e divisibile per 9. 101 `e divisibile per 3. In conclusione 1012 `e divisibile per 9.” Esso `e un ragionamento valido basato sul modus ponens. Ma la conclusione `e errata in quanto 1012 = 10201 non `e divisibile per 9. Il motivo `e che nel corso del ragionamento `e stata usata la proposizione falsa “101 `e divisibile per 3”. Come mostrano i seguenti esempi, una dimostrazione potrebbe necessitare di molte regole di inferenza. Esempio 4.6 Siano date le seguenti ipotesi: “Questo pomeriggio non c’`e molto sole e fa pi` u caldo di ieri”, “Se andremo a nuotare allora c’`e molto sole”, “Se non andremo a nuotare, faremo un giro in canoa” e “Se faremo un giro in canoa, saremo a casa prima del tramonto”. Provare che dalle precedenti ipotesi segue la conclusione “Saremo a casa prima del tramonto”. Poniamo: p =“Questo pomeriggio c’`e molto sole”, q =“Questo pomeriggio fa pi` u caldo di ieri”, r =“Andremo a nuotare”, s =“Faremo un giro in canoa” e t =“Saremo a casa prima del tramonto”. Allora le nostre ipotesi diventano rispettivamente: ¬p ∧ q, r → p, ¬r → s e s → t. La conclusione `e t. Proviamola un passo alla volta. Passo 1. ¬p ∧ q 2. ¬p 3. r → p 4. ¬r 5. ¬r → s 6. s 7. s → t 8. t

Spiegazione Ipotesi Semplificazione che usa il passo 1 Ipotesi Modus tollens che usa i passi 2 e 3 Ipotesi Modus ponens che usa i passi 4 e 5 Ipotesi Modus ponens che usa i passi 6 e 7 24

Esempio 4.7 Siano date le seguenti ipotesi: “Se mi mandi una e-mail, finir`o di scrivere il programma”, “Se non mi mandi una e-mail, andr`o a dormire presto” e “Se vado a dormire presto, mi sveglier`o riposato”. Provare che dalle precedenti ipotesi segue la conclusione “Se non finir`o di scrivere il programma, mi sveglier`o riposato”. Poniamo: p =“Tu mi mandi una e-mail”, q =“Finir`o di scrivere il programma”, r =“Andr`o a dormire presto” e s =“Mi sveglier`o riposato”. Allora le nostre ipotesi diventano rispettivamente: p → q, ¬p → r e r → s. La conclusione `e ¬q → s. Proviamola un passo alla volta.

Passo 1. p → q 2. ¬q → ¬p 3. ¬p → r 4. ¬q → r 5. r → s 6. ¬q → s

Spiegazione Ipotesi Contronominale del passo 1 Ipotesi Sillogismo ipotetico che usa i passi 2 e 3 Ipotesi Sillogismo ipotetico che usa i passi 4 e 5

Si osservi che la proposizione [(p → q) ∧ q] → p non `e una tautologia, infatti essa `e falsa quando p `e falsa e q `e vera. Purtroppo, vi sono molti ragionamenti che la trattano come una tautologia portando all’errore di affermare per vera la conclusione. Esempio 4.8 Verificare se il seguente ragionamento `e valido: “Se hai svolto ogni esercizio di quel libro, allora hai imparato la matematica discreta. Tu hai imparato la matematica discreta. Perci`o hai svolto ogni esercizio di quel libro.” Poniamo p =“Hai svolto ogni esercizio di quel libro” e q =“Hai imparato la matematica discreta”. Allora il ragionamento di sopra `e di questa forma: se p → q e q, allora p. Questo ragionamento `e chiaramente sbagliato in quanto tu potresti aver imparato la matematica discreta svolgendo gli esercizi di un libro diverso da quello indicato, oppure seguendo un corso. Esempio 4.9 Siano date le proposizioni p =“Il resto della divisione intera di n per 3 `e 1” e q =“Il resto della divisione intera di n2 per 3 `e 1”. L’implicazione p → q `e vera, infatti essa equivale a dire che “Se il resto della divisione intera di n per 3 `e 1, allora il resto della divisione intera di n2 per 3 `e 1”. Possiamo dire che se q `e vera, allora p `e vera? Sicuramente no. Infatti basta porre n = 2. La proposizione [(p → q) ∧ ¬p] → ¬q non `e una tautologia, poich`e essa `e falsa quando p `e falsa e q `e vera. L’errore che si commette consiste nel negare l’ipotesi. Esempio 4.10 Siano p e q le proposizioni date nell’Esempio 4.8. Se l’implicazione p → q `e vera e ¬p `e vera, possiamo dire che ¬q `e anch’essa vera? In altre parole, supposto vero che “Se hai svolto ogni esercizio di quel libro, allora hai imparato la matematica discreta”, 25

possiamo dire che “Se non hai svolto ogni esercizio di quel libro, allora non hai imparato la matematica discreta”? Chiaramente no. Infatti potresti aver imparato la matematica discreta anche senza aver svolto esercizi di quel libro. Questo `e un ragionamento scorretto della forma [(p → q) ∧ ¬p] → ¬q. ` corretto assumere che se Esempio 4.11 Siano p e q le proposizioni date nell’Esempio 4.9. E ¬p `e vera allora ¬q `e vera? Anche in questo caso la risposta `e no. Basti considerare n = 2. Molti ragionamenti sbagliati si commettono cadendo in un circolo vizioso, cio`e nella dimostrazione della verit`a di una proposizione p si assume che fra le proposizioni supposte vere come ipotesi si trovi p stessa o, come spesso accade, una proposizione equivalente a p. Esempio 4.12 Vogliamo provare il seguente teorema: “n `e un intero pari se n2 `e un intero pari”. Usiamo il seguente ragionamento: Supponiamo che n2 sia un intero pari. Allora n2 = 2k per qualche intero k. Sia n = 2m per qualche intero m. Allora n `e pari. La dimostrazione precedente `e errata. Infatti ho provato che n `e pari supponendo per ipotesi che n = 2m, cio`e che n `e pari. Si noti che l’enunciato del teorema `e corretto. Solamente la dimostrazione `e sbagliata. Si invita il lettore a produrre una dimostrazione corretta. Abbiamo finora considerato regole di inferenza per proposizioni. Consideriamo ora alcune regole di inferenza per proposizioni quantificate. Universal instantiation `e la regola di inferenza che partendo dal presupposto ∀xP (x) permette di concludere che P (c) `e vera nel caso in cui c appartiene all’universo del discorso per la variabile x. Questa regola viene usata quando dal supposto “Tutti gli uomini sono mortali” concludiamo che “Socrate `e mortale”, essendo Socrate un uomo, cio`e un elemento particolare dell’universo del discorso. Universal generalization `e la regola di inferenza che dice che se P (c) `e vera per ogni elemento c dell’universo del discorso, allora ∀xP (x) `e vera. Questa regola non vale se viene provato che solo per uno od alcuni particolari valore di c vale P (c). Existential instantion `e la regola di inferenza che permette di concludere che esiste almeno un elemento c nell’universo del discorso per cui P (c) `e vera qualora sappiamo che la proposizione ∃xP (x) `e vera. Si osservi che in questo caso non possiamo indicare quale sia lo specifico valore di c per cui P (c) sia vera ma solamente possiamo affermare che esso esiste. Existential generalization `e la regola di inferenza usata per concludere che ∃xP (x) `e vera qualora sia stato trovato un elemento c nell’universo del discorso per cui P (c) `e vera. Le precedenti regole sono riassunte nella Tabella 18.

26

Regola di inferenza

Nome

∀xP (x)  P (c) se c ∈ U

Universal instantiation

P (c) per un arbitrario c ∈ U  ∀xP (x)

Universal generalization

∃xP (x)  P (c) per qualche c ∈ U

Existential instantiation

P (c) per qualche c ∈ U  ∃xP (x)

Existential generalization

Tabella 18 Esempio 4.13 Mostrare come le premesse “Ogni studente di questa classe ha superato il corso di Formazione discreta I” e “Giovanni `e uno studente di questa classe” implicano la conclusione “Giovanni ha superato l’esame di Formazione discreta I”. Poniamo: D(x) =“x `e uno studente di questa classe” e C(x) =“x ha superato il corso di Formazione discreta I”. Le premesse o ipotesi sono ∀x(D(x) → C(x)) e D(Giovanni). La conclusione `e C(Giovanni). I seguenti passi mostrano la dimostrazione.

Passo 1. ∀x(D(x) → C(x)) 2. D(Giovanni) → C(Giovanni) 3. D(Giovanni) 4. C(Giovanni)

Spiegazione Ipotesi Universal instantiation del passo 1 Ipotesi Modus ponens che usa i passi 2 e 3

Si osservi che le dimostrazioni matematiche spesso includono passi dove sono usate contemporaneamente regole di inferenza per proposizioni quantificate e non quantificate. Per esempio l’universal instantiation e il modus ponens sono spesso usate insieme. Quando queste due regole di inferenza sono combinate, le ipotesi ∀x(P (x) → Q(x)) e P (c), dove c `e un elemento dell’universo del discorso, mostrano che la conclusione Q(c) `e vera. Molti teoremi in matematica affermano che una propriet`a vale per tutti gli elementi di un certo insieme (per esempio l’insieme dei numeri interi positivi o quello dei numeri reali). L’enunciazione precisa di questi teoremi richiederebbe l’inclusione di un quantificatore universale, ma `e convenzione standard in matematica ometterlo. Per esempio, l’enunciato “Se l’intero n `e divisibile per 3, allora n2 `e divisibile per 9” dovrebbe essere scritto “Per tutti 27

gli interi n, se n `e divisibile per 3, allora n2 `e divisibile per 9”. Similmente, l’enunciato “Se x > y, con x e y numeri reali positivi, allora x2 > y 2 ” dovrebbe scriversi “Per tutti i numeri reali positivi x e y, se x > y, allora x2 > y 2 ”. Inoltre, in teoremi di questo tipo la regola dell’universal generalization `e spesso usata senza essere esplicitamente menzionata. In generale, nel primo passo della dimostrazione, si seleziona un elemento generico dell’universo del discorso. Nei passi succesivi si mostra che esso gode della propriet`a in questione. L’universal generalization prova che essa vale per ogni elemento dell’universo del discorso. Nel seguito, converremo di non citare esplicitamente l’uso dell’universal instatiation e dell’universal generalization. Lasciamo al lettore il compito di capire quando queste regole di inferenza sono usate implicitamente. Ricordiamo che p → q `e sempre vera eccetto quando p `e vera e q `e falsa. Per provare che p → q `e vera, `e sufficiente provare che se p `e vera, allora q `e vera. Infatti questo fatto mostra che la combinazione p vera e q falsa non `e possibile. Questo tipo di dimostrazione si dice diretta. Per dimostrare la verit`a di p → q, si suppone che p `e vera e si usano regole di inferenza e teoremi gi`a provati per ottenere che anche q `e vera. Esempio 4.14 Dare una dimostrazione diretta del teorema “Se n `e dispari, allora n2 `e dispari”. Supponiamo vera l’ipotesi del teorema. Cio`e supponiamo che n sia dispari. Allora n = 2k + 1, per qualche intero k. Segue che n2 = (2k + 1)2 = 4k 2 + 4k + 1 = 2(2k 2 + 2k) + 1. Perci`o n2 `e dispari. L’implicazione p → q `e equivalente a ¬q → ¬p. Cio`e la verit`a dell’implicazione p → q pu`o essere dimostrata provando la verit`a di ¬q → ¬p. Questo tipo di dimostrazione si dice indiretta. Esempio 4.15 Dare una dimostrazione indiretta del teorema “Se 3n + 2 `e dispari, allora n `e dispari”. Supponiamo che l’ipotesi del teorema sia falsa. Cio`e supponiamo che n sia pari. Allora n = 2k, per qualche intero k. Segue che 3n + 2 = 3(2k) + 2 = 6k + 2 = 2(3k + 1). Cos`ı 3n + 2 `e pari. Poich`e la conclusione dell’implicazione implica che l’ipotesi `e falsa, l’implicazione originale `e vera. Supponiamo che l’ipotesi p di una implicazione p → q sia falsa. Allora l’implicazione p → q `e vera perch`e la proposizione ha la forma F→V oppure F→F, e quindi `e vera. Conseguentemente, se si pu`o provare che p `e falsa si `e ottenuta la dimostrazione, detta dimostrazione oziosa, di p → q. Dimostrazioni di questo tipo sono spesso usate per stabilire casi particolari di teoremi che affermano che una certa propriet`a `e vera per tutti gli interi positivi n. Esempio 4.16 Mostrare che la proposizione P (0) `e vera, essendo P (n) =“Se n > 1, allora n2 > n”. La proposizione P (0) `e “Se 0 > 1, allora 02 > 0”. Poich`e l’ipotesi `e falsa, l’implicazione P (0) `e vera. 28

` importante sottolineare come il fatto che la conclusione dell’implicazione, 02 > 0, `e E falsa non `e rilevante per la verit`a dell’implicazione stessa. Supponiamo che la conclusione q di una implicazione p → q sia vera. Allora l’implicazione p → q `e vera, perch`e la proposizione ha la forma V→V oppure F→V, che sono entrambe vere. Quindi, se q `e vera si `e ottenuta una dimostrazione, detta banale, di p → q. Le dimostrazioni banali sono importanti nella dimostrazione di casi particolari di teoremi e nell’induzione matematica. Esempio 4.17 Sia P (n) la proposizione “Se a e b sono interi positivi con a ≥ b, allora an ≥ bn ”. Mostrare che la proposizione P (0) `e vera. La proposizione P (0) `e “Se a e b sono interi positivi con a ≥ b, allora a0 ≥ b0 ”. Poich`e 0 a = b0 = 1, la conclusione P (0) `e vera. Quindi P (0) `e vera. Questo `e un esempio di dimostrazione banale. Si osservi che per la dimostrazione di questo caso particolare l’ipotesi a ≥ b non `e necessaria. Supponiamo che q sia un assurdo (cio`e una proposizione sempre falsa) tale che ¬p → q sia vera, cio`e ¬p → F ALSA `e vera. Allora ¬p `e falsa e quindi p deve essere vera. Questa tecnica pu`o essere usata quando si pu`o trovare un assurdo, come per esempio r ∧¬r, in modo tale che sia possibile provare che l’implicazione ¬p → (r ∧ ¬r) sia vera. Una dimostrazione di questo tipo `e detta per assurdo. √ Esempio 4.18 Provare per√assurdo che 2 `e irrazionale. √ Allora 2 `e Sia p la proposizione “ 2 `e irrazionale”. Supponiamo che ¬p sia vera. √ razionale. Mostreremo che questo porta ad un assurdo. Nell’ipotesi che 2 ` e razionale, √ 2 esistono due interi a e b, senza fattori a comune, tali che 2 = ab . Ne segue 2 = ab2 . Da cui, 2b2 = a2 . Quindi a `e pari. Inoltre, essendo a pari, a = 2c per qualche intero c. Cos`ı 2b2 = 4c2 , b2 = 2c2 . Ne segue che b2 , e quindi b, `e pari. Consideriamo ora la proposizione r =“siano a e b due interi senza fattori a comune”. Abbiamo appena provato che ¬r `e vera (infatti a e b, essendo entrambi pari, hanno 2 come un fattore a comune). D’altronde abbiamo visto che ¬p → r. In conclusione abbiamo provato che ¬p → (r ∧ ¬r). Quindi ¬p `e falsa. Segue che p `e vera. Una dimostrazione indiretta di una implicazione pu`o essere riformulata come una dimostrazione per assurdo. La verit`a di p → q si dimostra provando in modo diretto quella di ¬q → ¬p. Cio`e, nella dimostrazione indiretta di p → q supponiamo che ¬q `e vera e mostriamo che ¬p deve anche essere vera. Per riscrivere la dimostrazione indiretta di p → q come una dimostrazione per assurdo, supponiamo che entrambi p e ¬q siano veri. Allora usiamo i passi della dimostrazione diretta di ¬q → ¬p per provare che ¬p `e vera. Questo porta all’assurdo p ∧ ¬p, completando la dimostrazione per assurdo. Esempio 4.19 Dimostrare per assurdo il teorema “Se 3n + 2 `e dispari, allora n `e dispari”. Supponiamo che 3n+2 sia dispari ma che n non lo sia. Quindi n `e pari. Procedendo come nell’Esempio 4.15, possiamo provare che se n `e pari, allora 3n + 2 `e pari. Questo contraddice l’ipotesi che 3n + 2 `e dispari completando la dimostrazione. 29

Per provare un’implicazione della forma (p1 ∨ p2 ∨ . . . ∨ pn ) → q possiamo usare, come regola di inferenza, la seguente tautologia [(p1 ∨ p2 ∨ . . . ∨ pn ) → q] ↔ [(p1 → q) ∧ (p2 → q) ∧ . . . ∧ (pn → q)]. L’implicazione originale avente come ipotesi la disgiunzione delle proposizioni p1 , p2 , . . . , pn pu`o essere provata dimostrando una ad una tutte le n implicazioni pi → q, i = 1, 2, . . . , n. A volte per provare che l’implicazione p → q `e vera si preferisce determinare una successione di proposizioni p1 , p2 , . . . , pn tale che p sia equivalente a p1 ∨ p2 ∨ . . . ∨ pn e provare che (p1 ∨ p2 ∨ . . . ∨ pn ) → q. Consideriamo il seguente esempio. Esempio 4.20 Dimostrare il teorema “Se n `e un intero non divisibile per 3, allora n2 − 1 `e divisibile per 3”. Sia p =“n non `e divisibile per 3” e q =“n2 − 1 `e multiplo di 3”. Allora p equivale a p1 ∨ p2 , essendo p1 =“n − 1 `e divisibile per 3” e p2 =“n − 2 `e divisibile per 3”. Quindi mostrare che p → q equivale a (p1 ∨ p2 ) → q e quest’ultima equivale a (p1 → q) ∧ (p2 → q). Dimostriamo quindi le due implicazioni p1 → q e p2 → q. Supponiamo p1 vera. Allora n − 1 `e divisibile per 3, cio`e n = 3k + 1 per qualche intero k. Cos`ı, n2 = 9k 2 + 6k + 1 = 3(3k 2 + 2k) + 1. Segue che n2 − 1 `e divisibile per 3, quindi l’implicazione p1 → q `e vera. Sia ora p2 vera. Allora, n − 2 `e divisibile per 3, cio`e si ha n = 3h + 2 per qualche intero h. Cos`ı, n2 = 9h2 + 12h + 4 = 3(3h2 + 4h + 1) + 1. Quindi n2 − 1 `e divisibile per 3, cio`e p2 → q `e vera. Avendo provato che entrambe le implicazioni p1 → q e p2 → q sono vere, possiamo concludere che (p1 ∨ p2 ) → q `e vera. Segue che p → q `e vera. Per provare un teorema che `e una equivalenza (cio`e un teorema il cui enunciato ha la forma p ↔ q, con p e q proposizioni) pu`o essere usata la seguente tautologia (p ↔ q) ↔ [(p → q) ∧ (q → p)]. Cio`e la proposizione “p se e solo se q” `e vera se lo sono entrambe le proposizioni “p implica q” e “q implica p”. Esempio 4.21 Dimostrare il teorema “L’intero n `e dispari se e solo se n2 `e dispari”. Questo teorema ha la forma p se e solo se q, essendo p =“n `e dispari” e q =“n2 `e dispari”. Per quanto detto sopra, basta provare che p → q e q → p sono entrambe vere. Abbiamo visto nell’Esempio 4.14 che p → q `e vera. Proviamo ora che q → p `e vera mediante una dimostrazione indiretta. Supponiamo che p sia falsa, cio`e che n `e pari. Allora, n = 2k per qualche intero k. Segue che n2 = 4k 2 = 2(2k 2 ), quindi n2 `e pari e la dimostrazione di q → p `e cos`ı completa. Avendo provato che p → q e q → p sono entrambe vere, otteniamo che p ↔ q `e vera. 30

A volte un teorema afferma che alcune proposizioni p1 , p2 , . . . , pn sono mutuamente equivalenti, cio`e che p1 ↔ p2 ↔ . . . ↔ pn . Un modo per provare tutte queste equivalenze `e dato dalla seguente tautologia [p1 ↔ p2 ↔ . . . ↔ pn ] ↔ [(p1 → p2 ) ∧ (p2 → p3 ) ∧ . . . ∧ (pn → p1 )]. Cio`e se si dimostrano vere le implicazioni p1 → p2 , p2 → p3 , . . . , pn → p1 allora le proposizioni p1 , p2 , . . . , pn sono tutte equivalenti fra loro. Esempio 4.22 Dimostrare che, se n `e intero, le tre seguenti proposizioni sono equivalenti. p1 : n − 1 `e divisibile per 3 oppure n − 2 `e divisibile per 3 p2 : n non `e divisibile per 3 p3 : n2 − 1 `e divisibile per 3. Per quanto detto sopra, provare che le tre proposizioni sono mutuamente equivalenti equivale alla verit`a delle seguenti implicazioni: p1 → p2 , p2 → p3 e p3 → p1 . Proviamo che p1 → p2 `e vera. Supponiamo per il momento che n − 1 sia divisibile per 3, cio`e n − 1 = 3k per qualche intero k. Vogliamo provare per assurdo che n non `e divisibile per 3. Infatti, se n fosse divisibile per 3 avremmo n = 3h per qualche intero h, quindi 1 = n − (n − 1) = 3h − 3k = 3(h − k), cio`e 1 sarebbe divisibile per 3 il che `e assurdo. Sia adesso n − 2 divisibile per 3. Con analoghi ragionamenti si pu`o provare che se n fosse divisibile per 3 allora 2 dovrebbe essere divisibile per 3, assurdo. Cos`ı l’implicazione p1 → p2 rimane completamente provata. L’implicazione p2 → p3 `e stata provata nell’Esempio 4.20. Proviamo che p3 → p1 `e vera. Supponiamo che p1 sia falsa, cio`e che n `e divisibile per 3 (si osservi che, dato un intero n vale sempre una ed un sola delle tre seguenti proposizioni: “n `e divisibile per 3”, “n − 1 `e divisibile per 3” e “n − 2 `e divisibile per 3”). Quindi n = 3k per qualche intero k. Segue che n2 = 9k 2 = 3(3k 2 ), cio`e n2 `e divisibile per 3, quindi p3 `e falsa e l’implicazione p3 → p1 `e provata. Molti teoremi mirano a dimostrare l’esistenza di un certo elemento avente una determinata propriet`a. Essi hanno la forma del tipo ∃xP (x) essendo P un predicato. La dimostrazione di una proposizione di questo tipo si dice dimostrazione di esistenza. Vi sono diversi modi per produrre dimostrazioni di questo tipo. A volte si determina un ben preciso elemento c per cui P (c) `e vera (in tal caso parleremo di dimostrazione costruttiva). Esistono anche dimostrazioni di esistenza che non sono costruttive. Cio`e non possiamo trovare un elemento c per cui P (c) `e vera ma possiamo provare che ∃xP (x) in qualche altro modo. In questo caso, una delle dimostrazioni pi` u usate `e quella per assurdo: supponiamo che ∃xP (x) `e falsa e ne ricaviamo un assurdo. Esempio 4.23 Esempio di dimostrazione costruttiva. Dimostrare che per ogni intero positivo n esistono almeno n interi consecutivi che non sono numeri primi. L’enunciato del teorema consiste nella seguente proposizione 31

“∀n∃x(x + i non `e primo per ogni i = 1, 2, . . . , n)”. Sia n un intero positivo. Poniamo x = (n + 1)! + 1. Consideriamo gli interi x + 1, x + 2, . . . , x + n. Per i = 1, 2, . . . , n si ha x + i = (n + 1)! + (i + 1). Poich`e i + 1 `e un divisore di (n + 1)! (si ricordi che 1 ≤ i ≤ n) l’intero x + i non `e primo per ogni i. Esempio 4.24 Esempio di dimostrazione non costruttiva. Dimostrare che per ogni intero positivo n esiste un numero primo maggiore di n. L’enunciato del teorema consiste nella seguente proposizione “∀n∃x(x `e primo e x > n)”. Sia n un intero positivo. Consideriamo l’intero n! + 1. Ovviamente n! + 1 > n. Se n! + 1 `e primo, poniamo x = n! + 1 e la dimostrazione `e completata. Supponiamo ora che n! + 1 non `e primo. Allora esiste un primo y che divide n! + 1. Non pu`o accadere che y ≤ n. Infatti, se fosse y minore od uguale a n, seguirebbe che y dovrebbe dividere n! e quindi dovrebbe dividere 1 = (n! + 1) − n!, il che `e assurdo. Quindi y `e maggiore di n. Posto x = y il nostro enunciato `e completamente dimostrato. Supponiamo di voler dimostrare che un enunciato della forma ∀xP (x) `e falso. Come possiamo procedere? Ricordiamo che le proposizioni ¬∀xP (x) e ∃x¬P (x) sono equivalenti. Cio`e se troviamo un elemento c per cui P (c) `e falsa, abbiamo provato che ∃x¬P (x) `e vera e quest’ultima equivale a dire che ∀xP (x) `e falsa. Un elemento c per cui P (c) `e falso si dice controesempio. Si osservi che per provare la falsit`a di ∀xP (x) basta un solo controesempio. Esempio 4.25 Dimostrare che la proposizione “Tutti i primi sono dispari” `e falsa. La proposizione “Tutti i primi sono dispari” `e una quantificazione universale, cio`e ∀xQ(x), essendo Q(x) =“x `e dispari” e l’universo del discorso l’insieme dei numeri primi. Si noti che x = 2 `e un primo pari. Quindi la proposizione “Tutti i primi sono dispari” `e falsa. Un errore diffuso consiste nel pensare che uno o pi` u esempi in cui si verifica la verit`a della proposizione P (x) possano provare che ∀xP (x) sia vera. Anche se per innumerevoli elementi c si sia verificata la verit`a di P (c), potrebbe accadere che ∀xP (x) sia falsa. Esempio 4.26 Dimostrare o confutare la proposizione “per ogni intero positivo n, n2 −n+41 `e primo”. Posto P (n) =“n2 − n + 41 `e primo”, dobbiamo verificare se la proposizione ∀nP (n) `e vera oppure falsa. Se poniamo c = 1, otteniamo P (1) = 41 che `e primo. Lo stesso avviene se c `e un qualsiasi intero maggiore di uno e minore di 41. Ma si ha che P (41) non `e primo. Quindi non `e vero che “per ogni intero positivo n, n2 − n + 41 `e primo”.

32