Calcolo uguaglianze.
Benedetto Intrigila
e-mail [email protected]
Consideriamo l’alfabeto Σbool delle espressioni booleane (con variabili):
• costanti: 0, 1;
• variabili: x, x0, x1, ...;
• simbolo di operatore binario infisso u, operatore binario infisso t, operatore unario 0 ;
• simbolo di relazione binario: =;
• parentesi: (, ).
Adesso definiamo i termini booleani in questo modo (ricorsivo):
1. le variabili x, x0, x1, ... sono termini booleani;
2. le costanti 0 e 1 sono termini booleani;
3. se t1 e t2 sono termini booleani, anche t1 t t2 , t1 u t2 , t01 e t02 sono termini
booleani;
4. se t è un termine booleano, anche (t) è un termine booleano.
L’operazione di sostituzione Sost(t, t1 , z) che restituisce il risultato della sostituzione, nel termine t, di tutte le occorrenze della variabile z con il termine t1
è definita per ricursione come segue:
1. Sost((t), t1 , z) = (Sost(t, t1 , z));
2. Sost(t2 t t3 , t1 , z) = Sost(t2 , t1 , z) t Sost(t3 , t1 , z);
3. Sost(t2 u t3 , t1 , z) = Sost(t2 , t1 , z) u Sost(t3 , t1 , z);
4. Sost(t0 , t1 , z) = (Sost(t, t1 , z))0 ;
5. Sost(x, t1 , z) = x, dove x è una variabile diversa (come oggetto sintattico)
da z;
6. Sost(z, t1 , z) = t1 ;
1
7. Sost(0, t1 , z) = 0;
8. Sost(1, t1 , z) = 1.
Le espressioni booleane sono tutte le espressioni della forma t1 = t2 dove t1
e t2 sono termini booleani.
Esempio. x t 0 è un termine booleano, x t 0 = (x0 u 0)0 è un’espressione
booleana. Poiché abbiamo solo il simbolo per l’uguale chiameremo le nostre
espressioni uguaglianze.
Assiomi dell’Algebra di Boole
Alcune particolari uguaglianze booleane vengono scelte come Assiomi. L’elenco
di questi assiomi si trova nella dispensa sulle Algebre di Boole del corso di
Matematica Discreta. Come spiegato anche a lezione queste uguaglianze sono
scelte perché ci permettono di rendere chiaro il concetto di Algebra di Boole.
Ovvero un’Algebra di Boole è una struttura con le opportune operazioni che
sono tali da rendere veri gli assiomi.
Sulla base degli assiomi vogliamo ottenere nuove uguaglianze vere in ogni
Algebra di Boole. Ad esempio vogliamo ottenere che in ogni Algebra di Boole
vale x u x = x. Come facciamo?
Potremmo dire che:
x = x u 1 (Assioma)
ma 1 = x t x0 (Assioma) e quindi sostituendo x u 1 = x u (x t x0 )
usando la legge distributiva (Assioma) otteniamo x u (x t x0 ) = (x u x) t (x u x0 )
ma x u x0 = 0 (Assioma) e quindi sostituendo (x u x) t (x u x0 ) = (x u x) t 0
ma 0 è l’elemento neutro dell’operazione t (Assioma) e quindi (xux)t0 = (xux)
Siccome siamo partiti da x abbiamo dimostrato che x u x = x.
Possiamo dire che il nostro è un ragionamento valido? La risposta è sı̀ e
il motivo è che abbiamo usato solo gli assiomi dell’Algebra di Boole e alcune
proprietà generali dell’uguaglianza. Queste proprietà generali sono sempre vere
e dipendono solo dalla natura dell’uguaglianza. Però (anche per trattare queste
cose con i programmi) è necessario considerare con precisione queste proprietà
generali dell’uguaglianza.
Regole dell’uguaglianza:
Identità. Per ogni termine t, vale t = t.
Simmetria. Per ogni termine t1 e t2 , se t1 = t2 allora t2 = t1 .
Transitività. Per ogni termine t1 , t2 e t3 , se t1 = t2 e t2 = t3 allora t1 = t3 .
2
Sostituzione di termini uguali nello stesso termine. Per ogni termine
t, t1 e t2 , se t1 = t2 allora Sost(t, t1 , z) = Sost(t, t2 , z).
Sostituzione dello stesso termine in termini uguali. Per ogni termine
t, t1 e t2 , se t1 = t2 allora Sost(t1 , t, z) = Sost(t2 , t, z).
Esercizio 1. Dimostrare che la seguente regola dell’uguaglianza è conseguenza delle precedenti:
Sostituzione di termini uguali in termini uguali. Per ogni termine t1 ,
t2 , t3 e t4 se t1 = t2 e t3 = t4 allora Sost(t1 , t3 , z) = Sost(t2 , t4 , z).
Esercizio 2. Svolgere la dimostrazione di x u x = x usando solo gli assiomi
e le regole dell’uguaglianza.
3