Introduzione alla LOGICA MATEMATICA Corso di Matematica Discreta. Corso di laurea in Informatica. Prof. Luigi Borzacchini VII. Relazioni e funzioni
Le relazioni Il trattamento formale delle relazioni è una delle novità principali della logica e della matematica moderna. Nel formalismo di Frege la relazione è data sintatticamente da un simbolo predicativo con due o più argomenti: ama(Michele, Francesca) per o passa_per(r, A, B) per. Semanticamente una relazione R n-aria (cioè con n argomenti) è data dall’insieme delle n-ple (a 1, a 2,…, a n ) per le quali R(a 1, a 2,…, a n ) è soddisfatta. Se M è il nostro universo, R M n
Consideriamo ad esempio l’insieme di tutti i numeri interi, una relazione m-aria sarà quindi interpretata come un sottoinsieme di m. Una relazione binaria su sarà un sottoinsieme dell’insieme delle coppie: 2 ={(1,1), (1,2), (1,3), …, (2,1), (2,2),…, (3,1),…, (n,m),…}. Consideriamo per esempio la relazione binaria divisore(x,y),x|y …. ………………………………………………………. rappresentata dalle coppie segnate con nella tabella. Nell’altro esempio abbiamo la relazione ‘passa per’ tra due Bari Pisa Roma Milano Torino Firenze Po Tevere Dora Adige Arno Aniene insiemi diversi: città e fiumi.
I Grafi Un grafo è formato da un insieme di vertici V ed un insieme di archi (formati da due vertici). Ma per arco possiamo intendere o una coppia ordinata (a,b) V 2, come una strada a senso unico, o una coppia non ordinata {a,b}, come una strada a doppio senso (o un sentiero). Nel primo caso parliamo di grafo diretto (o orientato), nel secondo caso di grafo indiretto (o non orientato). Risulta chiaro quindi che nello studio delle relazioni binarie risulta utile rappresentarle tramite grafi diretti.
Per le relazioni binarie esiste quindi la rappresentazione tramite un grafo diretto. Per gli esempi precedenti il grafo è: (a sinistra per la relazione ‘divisore’ ignorando l’1 che è divisore di tutti gli interi e le frecce di transitività, a destra per la relazione ‘passa per’) Bari Torino Pisa Firenze Roma Milano Dora Po Arno Adige Tevere Aniene Un altro esempio già incontrato riguardava le relazioni di ‘inclusione’ tra insiemi o di ‘implicazione’ tra definizioni negli alberi delle tassonomie o nell’insieme dei domini numerici. Tutti gli esempi visti riguardavano relazioni binarie, le più frequenti, ma in computer science si trovano relazioni con più numerosi argomenti, come vedremo in seguito
Da una relazione binaria R X Y si definisce la relazione inversa R -1 Y X così definita (y,x) R -1 (x,y) R. Nella rappresentazione tramite grafo la relazione inversa si ottiene semplicemente invertendo le frecce (padre -1 è figlio) Date due relazioni binarie R X Y e S Y Z, si può definire la relazione composta R S X Z così definita (x,z) R S y (x,y) R (y,z) S. Nella rappresentazione tramite grafo la relazione composta si ottiene da un cammino di due frecce. Lazio Ile de france Scotland Lombardia Italia Francia Regno Unito Roma Bergamo Parigi Cardiff Milano Glascow
Qual è la relazione inversa della relazione ‘divisore’? Se divisore(4,20) 4|20 allora…… (20,4). E quindi divisore -1 = multiplo. In termini insiemistici: (x,y) multiplo (y,x) divisore. In termini logici: multiplo (x,y) divisore (y,x) ovvero y|x. Se R è la relazione fratello e S è la relazione padre, allora R S è la relazione, in quanto x è lo zio di y se esiste un z di cui x è fratello e che è il padre di y. In termini insiemistici: (x,y) R S z (x,z) R (z,y) S. In termini logici: zio(x,y) z fratello(x,z) padre(z,y) multiplo zio
Relazioni funzionali e funzioni Consideriamo la relazione nella_regione(x,y) da interpretarsi come la frase. La sua interpretazione standard sarebbe: {(Firenze, Toscana), (Torino, Piemonte), (Milano, Lombardia), (Pisa, Toscana), (Roma, Lazio), (Bari, Puglia),…}. Essa ha una particolarità: ogni città può appartenere al massimo ad una regione; una relazione f(x,y) con tale proprietà si dice funzionale, e da essa si può costruire una funzione y=f(x). Nel nostro esempio possiamo definire la funzione regione: Toscana =regione(Firenze), Piemonte =regione(Torino), Lombardia =regione(Milano), etc.
L’insieme X su cui la funzione f è definita si dice dominio, l’insieme Y dei suoi valori si dice codominio, e si scrive f: X Y. Se la funzione assume un valore per ogni elemento del dominio si dice totale, altrimenti si dice parziale. La funzione stato che ad ogni città associa lo stato di appartenenza è totale in Europa, parziale negli USA (in quanto Washington non appartiene a nessuno stato). Una funzione f si dice ingettiva sse x y f(x)=f(y) x=y, sul grafo cioè non esistono vertici del tipo. Si dice surgettiva sse y x f(x)=y, cioè se ogni vertice del codominio è raggiunto da una freccia.
Definizioni equivalenti della ingettività x y (f(x)=f(y) x=y) «se due elementi hanno immagini coincidenti, allora coincidono» Dalla conversione: x y (x y f(x) f(y)) «elementi diversi hanno immagini diverse» e trascrivendo l’ , otteniamo x y ( f(x)=f(y) x=y), e dalle regole che legano quantificatori e negazione la formula diventa x y (f(x)=f(y) x y) «dato un qualsiasi elemento non ne esiste un altro con la stessa immagine». Ovvero x y ( f(x)=f(y) x y) «non esistono due elementi distinti con la stessa immagine»
Una funzione si dice bigettiva se è ingettiva e surgettiva, e si dice anche una corrispondenza biunivoca o una corrispondenza 1-1. La composizione di una funzione f: X Y con una funzione g: Y Z dà la funzione g f: X Z definita come g f(x) = g(f(x)), che si ottiene come sequenza delle due frecce f g Se f è totale l’inversa f -1 : Y X, si ottiene capovolgendo la direzione delle frecce f Se la funzione identica 1 X : X X è definita x 1 X (x)=x, allora f -1 f = 1 X, f f -1 = 1 Y, f -1 (f(x))=x f(x) Esempio: la relazione ‘a multiplo di b’ è la relazione inversa della relazione ‘b è divisore di a’, ‘b divide a’.. x g f g f(x) f -1 f(x)
Relazioni n-arie e funzioni (n-1)-arie Le relazioni binarie sono le più diffuse, ma si trovano anche relazioni n-arie. Punto di partenza: il prodotto cartesiano M 1 M 2 … M n, l’insieme delle n-uple, (a 1, a 2,…. a n ), in cui a 1 M 1, a 2 M 2 ….., a n M n, Una relazione è un sottoinsieme di un prodotto cartesiano: (a 1, a 2,…. a n ) R M 1 M 2 … M n vuol dire che gli elementi a 1, a 2,…. a n sono in relazione R Se, fissati a 1, a 2,…. a n-1 c’è un unico a n per il quale (a 1, a 2,…. a n ) R, allora si può definire la funzione f R (n-1)-aria: f R (a 1, a 2,…. a n-1 ) = a n
Definiamo ad esempio la relazione S ternaria su : (a,b,c) S 3 sse aggiungendo b oggetti ad un gruppo di a oggetti troviamo un gruppo di c oggetti, ad esempio (3,6,9) S, scritto anche S(3,6,9), mentre (4,3,8) S. Poiché fissati a e b è univocamente determinato c, possiamo definire la funzione +: 2 → : a+b=c Se è un alfabeto, è l’insieme delle parole su (a,b,c) append 3 sse aggiungendo alla parola a la parola b otteniamo la parola c, ad esempio (car, ta, carta) append, scritto anche append(car, ta, carta), mentre (ca, ne, gatto) append. Anche in questo caso possiamo definire la funzione Append: 2 → , append(car, ta)=carta
Logica e Matematica Nella matematica moderna, fondata sulla teoria degli insiemi, sono molto importanti le distinzioni logiche tra elementi (variabili e costanti), insiemi, funzioni, predicati (sottoinsiemi e relazioni), proposizioni (formule). è l’insieme dei numeri interi, i singoli numeri sono le costanti; x, n, m, etc. denotano variabili che possono assumere numeri come valori; funzioni sono le operazioni che ad uno o più numeri associano un altro numero (somma, prodotto, etc.); predicati sono proprietà vere su uno o più numeri: nel primo caso individuano sottoinsiemi (pari insieme dei numeri pari), nel secondo relazioni (a è minore di b l’insieme delle coppie (a,b) con a<b); proposizioni (formule) esprimono fatti aritmetici, veri o falsi
Esempio: il minimo comune multiplo Definiamo in la relazione binaria ‘a divide b’ a|b m b=m a, e definiamo ‘c multiplo comune di a e b’ a|c b|c, relazione ternaria su . Diciamo ‘n minimo comune multiplo di a e b’ il più piccolo dei multipli comuni di a e b, cioè a|n b|n c (a|c b|c) n c. E in tal caso si ha anche n|c Per le caratteristiche della relazione tale numero esiste sempre ed è unico (un sottoinsieme non vuoto di ha sempre un unico minimo), e quindi la relazione ternaria ‘n minimo multiplo comune di a e b’ può essere considerata come una funzione binaria: n=mcm(a,b).
E proveremo anche che il mcm divide ogni altro comune multiplo. Consideriamo mcm una relazione ternaria: mcm(a,b,x) quando x è mcm di a e b. Supponiamo per assurdo che i due numeri a e b abbiano due distinti mcm. L’ipotesi assurda ha forma esistenziale: x y mcm(a,b,x) mcm(a,b,y) (x=y) e quindi iniziamo con una doppia sottoderivazione - eliminazione: m ed n sono costanti nuove, a|m b|m c (a|c b|c m|c ) a|n b|n d (a|d b|d n|d ) (m=n) A questo punto entra in gioco l’intuizione: le variabili c e d sono sostituibili nella -eliminazione con qualsiasi termine, potrebbe essere utile farle coincidere con le costanti m e n
possiamo sostituire a c il numero n e a d il numero m, ottenendo a|m b|m (a|n b|n m|n ) a|n b|n (a|m b|m n|m) m|n n|m, x n=m x y m=n y n=m x’ m=n y’ n= n y’ x’ e quindi y’ x’ = 1 da cui y’=x’=1 e allora m=n. Ma (m=n) e quindi In algebra studierete il problema in e non in , e quindi la soluzione sarà ±1
Prendiamo a=6, b=15. I multipli di 6 sono: {6, 12, 18, 24, 30, 36, 42, 48, 54, 60...}, i multipli di 15 sono: {15, 30, 45, 60, 75,...}, i loro multipli comuni sono: {30, 60, 90, 120, 150,...}, il loro minimo comune multiplo è 30: 30=mcm(6,15), e gli altri multipli comuni sono tutti e soli i multipli di Analogo ragionamento per definire il ‘massimo comun divisore’: i divisori di 6 sono: {1,2,3}, quelli di 15 sono: {1,3,5}, quelli comuni sono: {1,3} e quindi 3 = MCD(6,15).
Ancora la combinatoria La combinatoria conta le configurazioni simboliche, ad esempio «quante parole distinte di lunghezza n si possono costruire da una alfabeto di k segni?» oppure «in quanti modi diversi si possono mettere n palline distinte in k scatole?». Ad esempio se k=3 e n=2, le parole distinte sono {aa, ab, ac, ba, bb, bc, ca, cb, cc}, mentre le distribuzioni nelle scatole sono ab/Ø/Ø, a/b/Ø, a/Ø/b, b/a/Ø, Ø/ab/Ø, Ø/a/b, b/Ø/a, Ø/b/a, Ø/Ø/ab. In entrambi i casi abbiamo 9=3 2 =k n configurazioni: è un caso? In entrambi i casi sono le funzioni da un n-insieme in un k-insieme.
1 I 1 I 1 I 1 I 1 I 1 I 2 II 2 II 2 II 2 II 2 II 2 II III III III III III III …… aa ab ac ba bb bc ab/Ø/Ø a/b/Ø a/Ø/b b/a/Ø Ø/ab/Ø Ø/a/b Altro esempio: contiamo quante sono le proposizioni non equivalenti (che hanno cioè diversa tavola di verità) che si possono creare con n proposizioni elementari. In primo luogo le diverse interpretazioni sono 2 n, in quanto ogni proposizione elementare può essere vera o falsa. Poi per ogni interpretazione la proposizione può essere vera o falsa, e quindi in totale abbiamo 2 2 diverse tavole di verità. n
Sia M un insieme di m elementi (distinti): |M|=m Le coppie ordinate di elementi di M sono: |M 2 |= m 2 Quante sono le coppie ordinate di elementi di M se non sono ammesse ripetizioni? m 2 – m E quante sono le coppie non ordinate senza ripetizioni? (m 2 – m)/2 Possiamo generalizzare a M n ? |M n |= m n Le n-uple ordinate senza ripetizioni sono: m (m-1) (m-2) … (m-n+1). Ad esempio le terne ordinate su M = {a, b, c, d} sono X X X X X X
a b c d ab ac ad ba bc bd ca cb cd da db dc abc abd acb acd adb adc bac bad bca bcd bda bdc cab cad cba cbd cda cdb dab dac dba dbc dca dcb Se m=n otteniamo il numero degli ordinamenti possibili di M: m! = m (m-1) (m-2) … 2 1 Ma una n-upla non ordinata (un sottoinsieme di n elementi) può essere ordinata in n! modi diversi. Ad esempio {a,c,d} corrisponde ai 6=3! ordinamenti acd, adc, cad, cda, dac, dca. E quindi le n-uple su M non ordinate (i sottoinsiemi di M di cardinalità n) sono: (m (m-1) (m-2) … (m-n+1))/n! = (m-n)! (m (m-1) (m-2) … (m-n+1))/ (m-n)! n! (m (m-1) (m-2) … 2 1)/(m-n)! n! = m!/(m-n)! n!
Il poker numero di n-sottoinsiemi da un m-insieme