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 +, operatore binario infisso ·, operatore
unario ¯;
• 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 + t2 , t1 · t2 , t¯1 e t¯2 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 + t3 , t1 , z) = Sost(t2 , t1 , z) + Sost(t3 , t1 , z);
3. Sost(t2 · t3 , t1 , z) = Sost(t2 , t1 , z) · Sost(t3 , t1 , z);
4. Sost(t̄, t1 , z) = Sost(t, t1 , z);
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+0 è un termine booleano, x+0 = x0 è 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 nel libro di testo RETI LOGICHE Tabella 2.3. Come
spiegato anche a lezione queste uguaglianze sono scelte perché ci permettono
di rendere preciso 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 · (x + y) = x. Come facciamo?
Potremmo dire che:
usando la legge distributiva (Assioma) otteniamo x · (x + y) = (x · x) + (x · y)
ma x · x = x (Assioma) e quindi sostituendo (x · x) + (x · y) = x + (x · y)
ma x · 1 = x (Assioma) e quindi x + (x · y) = (x · 1) + (x · y)
usando la proprietà distributiva (Assioma) abbiamo (x · 1) + (x · y) = x · (1 + y)
ma 1 + y = 1 (Assioma) e quindi x · (1 + y) = x · 1
ma x · 1 = x (Assioma) e siamo arrivati.
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 .
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).
2
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 · (x + y) = x usando solo gli
assiomi e le regole dell’uguaglianza.
3