Matematica Discreta Lezione del giorno 26 aprile 2010 Come anticipato nella lezione precedente, dimostreremo ora che la relazione di congruenza modulo m in Z è compatibile sia con l’operazione di somma che con l’operazione di prodotto fra interi. Compatibilità della congruenza modulo m con la somma: se ac (mod m), e se bd (mod m) allora m è divisore delle differenze a-c, b-d, dunque a-c=mk, b-d=mh (con k,h interi), da cui: (a+b)-(c+d)=m(h+k) ossia m è divisore della differenza (a+b)-(c+d) e si conclude che (a+b)(c+d) (mod m); Compatibilità della congruenza modulo m con il prodotto: con le stesse notazioni, si ha: (ab)-(cd)=a(b-d)+d(a-c)=m(ah+dk) ossia m è divisore della differenza (ab)-(cd) e si conclude che (ab)(cd) (mod m). Come detto nella lezione precedente, la compatibilità di somma e prodotto di interi con la relazione di congruenza modulo m permette di definire 2 operazioni indotte di somma e prodotto di classi nell’insieme Zm : [a]+[b] = [a+b] [a][b] = [ab] Esempio. Consideriamo l’insieme Z4 delle 4 classi di congruenza modulo 4: Z4 = {[0],[1],[2],[3]} Se costruiamo la tavola operazionale della somma fra classi (rispetto all’ordine [0],[1],[2],[3]) otteniamo la seguente matrice 4x4: [0] [1] [2] [3] [1] [2] [3] [0] [2] [3] [0] [1] [3] [0] [1] [2] (per calcolare per esempio [2]+[3] si calcola [2+3]=[5]=[1], notando che 1 è il resto della divisione di 5 per il modulo 4, etc….) Se invece costruiamo la tavola operazionale del prodotto fra classi (rispetto all’ordine [0],[1],[2],[3]) otteniamo la seguente matrice 4x4: [0] [0] [0] [0] [0] [1] [2] [3] [0] [2] [0] [2] [0] [3] [2] [1] (per calcolare per esempio [2][3] si calcola [23]=[6]=[2], notando che 2 è il resto della divisione di 6 per il modulo 4, etc….) Proprietà che si trasmettono da un’operazione all’operazione indotta. Torniamo al caso generale di un insieme A in cui sono definite sia una relazione di equivalenza R che un’operazione * compatibile con R, in modo che nell’insieme quoziente A/R delle classi di equivalenza sia definita un’operazione indotta * fra le classi. Notiamo che in tale caso molte proprietà dell’operazione * dell’insieme A si trasmettono all’analoga operazione * dell’insieme delle classi A/R: 1) se l’operazione * in A é associativa, l’operazione indotta * in A/R é anch’essa associativa. Infatti, date 3 classi [a],[b],[c] si ha (sfruttando la proprietà associativa valida in A): [a]*([b]*[c]) = [a]*[b*c] = [a*(b*c)] = [(a*b)*c] = [a*b]*[c] = ([a]*[b])*[c] 2) se l’operazione * in A é commutativa, l’operazione indotta * in A/R é anch’essa commutativa. Infatti, date 3 classi [a],[b],[c] si ha (sfruttando la proprietà commutativa valida in A): [a]*[b] = [a*b] = [b*a] = [b]*[a] 3) se esiste l’elemento neutro eA rispetto all’operazione *, allora esiste anche l’elemento neutro nell’insieme delle classi A/R rispetto all’operazione indotta * ; inoltre tale elemento neutro é la classe [e]. Infatti per ogni classe [a] si ha: [a]*[e] = [a*e] = [a] ; [e]*[a] = [e*a] = [a] 4) se un elemento aA é simmetrizzabile rispetto all’operazione * con simmetrico a’A, allora la classe [a] é simmetrizzabile nell’insieme delle classi A/R rispetto all’operazione indotta * ed il suo simmetrico é la classe [a’]. Infatti si ha : [a]*[a’] = [a*a’] = [e] = elemento neutro di A/R; [a’]*[a] = [a’*a] = [e] = elemento neutro di A/R In particolare: - se A é monoide rispetto all’operazione *, anche A/R é monoide rispetto all’operazione indotta * - se A é gruppo rispetto all’operazione *, anche A/R é gruppo rispetto all’operazione indotta * Inoltre se A è monoide (rispettivamente gruppo) commutativo anche A/R lo é. Applichiamo le considerazioni precedenti all’insieme Zm delle classi di congruenza modulo m, in cui abbiamo definito le operazioni di somma e prodotto di classi, indotte dalle operazioni di somma e prodotto fra interi. Vediamo quali proprietà hanno tali operazioni. Essendo Z un gruppo commutativo rispetto all’operazione di somma (con elemento neutro 0 e con simmetrico di un elemento a uguale all’opposto –a) per le osservazioni precedenti si ottiene che l’insieme Zm delle classi di congruenza modulo m é un gruppo commutativo rispetto all’operazione di somma fra classi (l’elemento neutro sarà [0] e il simmetrico di una classe [a] sarà la classe [-a]). Invece essendo Z solo un monoide commutativo rispetto all’operazione di prodotto (con elemento neutro 1) per le osservazioni precedenti si ottiene che l’insieme Zm delle classi di congruenza modulo m é un monoide commutativo rispetto all’operazione di prodotto fra classi (l’elemento neutro sarà [1]). Per quanto riguarda l’operazione di somma fra classi in Zm, possiamo notare che per calcolare il simmetrico (sempre rispetto alla somma) di una classe [a] scelta fra le classi {[0], [1],......., [m-1]}, vi é una regola pratica molto semplice: - se [a] = [0], il suo simmetrico é [0] (l’elemento neutro ha come simmetrico sé stesso) - se [a] [0] (quindi se a=1,2.....,m-1) allora il simmetrico di [a] é la classe [m-a] (infatti sommando [a] con [m-a] si ottiene [a]+[m-a] = [a+m-a] = [m] = [0] = elemento neutro, perché r=0 é il resto della divisione di m per m). Per esempio in Z100 il simmetrico di [48] é [100-48] = [52]. Abbiamo detto che rispetto all’operazione di prodotto di classi, l’insieme Zm é un monoide commutativo (con elemento neutro [1]), perché tale è Z rispetto al prodotto. Tale monoide Zm non è un gruppo: possiamo infatti notare che [0] non é certamente simmetrizzabile rispetto al prodotto fra classi, in quanto non può esistere il simmetrico di [0], perché il prodotto di [0] per qualunque classe dà come risultato sempre [0] (quindi non si ottiene mai [1] che é l’elemento neutro). Se esaminiamo per esempio la tavola operazionale del prodotto in Z4 (vista in precedenza) si verifica che gli unici elementi simmetrizzabili sono [1] e [3]. Resta da risolvere un problema generale: nel monoide Zm (rispetto all’operazione di prodotto fra classi) quali sono gli elementi simmetrizzabili e come si calcola il loro simmetrico (cioé il loro inverso) ? Ricordiamo anche che l’insieme degli elementi simmetrizzabili del monoide Zm é un gruppo (indicato con Zm*) rispetto alla stessa operazione di prodotto fra classi (ed é ovviamente commutativo anch’esso). Abbiamo già notato che [0] non é certamente simmetrizzabile rispetto al prodotto fra classi, dunque gli elementi simmetrizzabili nel monoide Zm sono da cercare fra le classi diverse da [0], cioé fra le classi [1],......., [m-1]. Il prossimo risultato caratterizza fra queste classi quali sono simmetrizzabili: Teorema. Una classe [a] del monoide Zm , con il rappresentante a scelto fra 1,.......,m-1, é simmetrizzabile rispetto al prodotto fra classi il rappresentante a della classe é coprimo con il modulo m (ossia mcd(a,m)=1). Dimostrazione: (): Se [a] é simmetrizzabile, esiste il suo simmetrico [b] tale che [a][b]=[ab]=[1], dunque si ha la congruenza: ab1 (mod m) ossia m è un divisore della differenza (ab-1) dunque esiste un intero k tale che (ab-1)=mk, ossia: 1=ab-(mk)=ab+m(-k) Si ottiene che 1 é combinazione lineare di a,m con coefficienti interi relativi b,-m, e ricordando che il mcd(a,m) é la minima combinazione lineare positiva di a,m (si ricava dalla dimostrazione del Teorema di esistenza del massimo comune divisore) si deduce che 1=mcd(a,m) e si ha la tesi. (): Se 1=mcd(a,m), allora, per una proprietà del massimo comune divisore, 1 é combinazione lineare di a,m a con opportuni coefficienti interi relativi x,y 1=ax+my Da ciò si ha ax-1=m(-y), dunque m é divisore della differenza (ax-1), ossia si ha la congruenza: ax1 (mod m) dunque in Zm sono uguali le classi [ax]=[1] da cui [a][x]=[1]=elemento neutro, e si conclude che [a] é simmetrizzabile (con simmetrico [x]) cioé la tesi. Il Teorema precedente risolve non solo il problema di caratterizzare quali sono gli elementi simmetrizzabili del monoide Zm rispetto al prodotto di classi, ma per ognuno di essi illustra un algoritmo per calcolare l’inverso (cioè il simmetrico): 1) data una classe [a][0] in Zm si calcola (con l’algoritmo Euclideo) il mcd(a,m) 2) se mcd(a.m)>1 allora si conclude che [a] non é simmetrizzabile 3) se mcd(a,m)=1, allora [a] è simmetrizzabile, ed il suo simmetrico è [x] dove x è il coefficiente di a nella rappresentazione di 1 come combinazione lineare di a,m a coefficienti interi relativi: 1 = ax+my [a]-1=[x] Per il calcolo del coefficiente x (e quindi dell’inverso di [a]) si può usare egualmente l’algoritmo Euclideo delle divisioni successive. Sappiamo che, dato un qualunque monoide A (rispetto ad una operazione *), il suo sottoinsieme A*, contenente gli elementi simmetrizzabili, è un gruppo rispetto alla stessa operazione. In particolare, dato il monoide Zm={[0], [1], …., [m-1]} delle classi di congruenza modulo m (rispetto all’operazione di prodotto di classi), abbiamo dimostrato che gli elementi simmetrizzabili sono le classi con rappresentante a compreso fra 1,2,…..,m-1, tali che a,m siano coprimi. Dunque il sottoinsieme degli elementi simmetrizzabile di Zm : Zm* = {[a] Zm / a=1,2,….,m-1; a,m coprimi} È un gruppo, rispetto all’operazione di prodotto di classi: ovviamente la sua cardinalità coincide con la funzione di Eulero (m) del modulo m: Zm* = (m) Esempio. Dato il monoide Z9 delle classi di congruenza modulo 9 rispetto all’operazione di prodotto di classi: Z9 = {[0],[1],[2],[3],[4],[5],[6],[7],[8]} (di cardinalità 9) il gruppo degli elementi simmetrizzabile contiene le classi con rappresentante compreso fra 1 e 8 e coprimo con 9 ossia: Z9*= {[1],[2],[4],[5],[7]} (di cardinalità (9)=6) Ricordiamo i dettagli dell’algoritmo Euclideo delle divisioni successive (che, come detto, si può utilizzare anche per calcolare il simmetrico nel caso di un elemento simmetrizzabile del monoide Zm rispetto all’operazione di prodotto di classi). Siano dati i numeri naturali a,b (con a>b): si effettua una prima divisione di a (dividendo) per b (divisore) ottenendo quoziente q1 e resto r1, dove q1, r1 sono interi 0, con r1<b; si effettuano poi successive divisioni con la regola seguente: effettuata la divisione numero k, se il resto è 0 l’algoritmo si arresta, mentre se il resto è >0 si effettua un’ulteriore divisione numero k+1, in cui il dividendo e il divisore sono rispettivamente il divisore e il resto della divisione numero k; l’ultimo resto non nullo è il mcd(a,b). Schematizzando: a=bq1+r1 (q10, 0<r1<b) b=r1q2+r2 (q20, 0<r2<r1) r1=r2q3+r3 (q30, 0<r3<r2) . . rn-3=rn-2qn-1+rn-1 (qn-10, 0<rn-1<rn-2) rn-2=rn-1qn+rn (qn0, rn=0) rn-1=mcd(a,b) Parallelamente si possono calcolare i coefficienti interi relativi x,y tali che mcd(a,b)=ax+by nel modo seguente: si costruiscono le 2 successioni di numeri interi relativi s0 ,s1,…..,sn ; t0,t1,….,tn (dove n é il numero di divisioni dell’algoritmo Euclideo) ponendo s0=1, s1=0, si=si-2-si-1qi-1 (per ogni i>1); t0=0, t1=0, ti=ti-2-ti-1qi-1 (per ogni i>1) dove qi-1 è il quoziente della divisione numero (i-1) nell’algoritmo Euclideo. Basta poi porre x=sn ,y=tn per avere i coefficienti x, y (x è il coefficiente di a; y quello di b). Esempio. Verifichiamo se [33] è simmetrizzabile nel monoide Z89 (rispetto al prodotto di classi) e in caso affermativo calcoliamone il simmetrico. Calcoliamo il mcd(88,33). Utilizzando l’algoritmo Euclideo si effettuano n=5 divisioni con i seguenti valori di quoziente e resto: q1=2, r2=23; q2=1, r2=10; q3=2, r3=3; q4=3, r4=1; q5=3, r5=0 Si conclude che mcd(89,33)=r4=1, dunque [33] è simmetrizzabile in Z89 . Calcolando le successioni si, ti si ottiene s5=-10, t5=27, dunque la rappresentazione di 1 come combinazione lineare di 89,33 è 1=89x+33y, con x= -10, y=27. In particolare si ottiene che [33] è simmetrizzabile in Z89 con simmetrico [27] (perché 27 è il coefficiente di 33 nella combinazione lineare). Facendo in effetti i calcoli si ottiene [33][27]=[3327]=[891]=[1] (perché 1 è il resto della divisione di 891 per il modulo 89).