Logica Proposizionale.
Benedetto Intrigila
e-mail [email protected]
1
Sintassi della Logica Proposizionale
L’alfabeto ΣLP della Logica Proposizionale è il seguente:
• costanti: ⊥, >;
• variabili proposizionali: A, B, C...P, Q, R, ...;
• simbolo di operatore unario ¬, operatore binario infisso ∧, operatore binario infisso ∨, operatore binario infisso →, operatore binario infisso ≡;
• parentesi: (, ).
Nella Logica Proposizionale ¬, ∧, ∨, →, ≡ sono chiamati connettivi logici. In
particolare:
1. ¬ è la negazione;
2. ∧ è la congiunzione;
3. ∨ è la disgiunzione;
4. → è l’implicazione;
5. ≡ è l’equivalenza (chiamata anche doppia implicazione).
Adesso definiamo le formule della Logica Proposizionale in questo modo
(ricorsivo):
1. le costanti ⊥, > sono formule;
2. le variabili proposizionali A, B, C...P, Q, R, ... sono formule;
3. se F1 e F2 sono formule, anche ¬F1 , ¬F2 , F1 ∧ F2 , F1 ∨ F2 , F1 → F2 ,
F1 ≡ F2 sono formule;
4. se F è una formula, anche (F) è una formula.
1
Priorità dei connettivi logici (per risparmiare parentesi). L’ordine di
priorità (in ordine decrescente) è il seguente:
¬, ∧, ∨, →, ≡.
Albero sintattico. Supporremo sempre di avere l’albero sintattico delle
formule che consideriamo. L’albero sintattico ci dice in modo univoco in che
ordine dobbiamo applicare i connettivi logici.
Esercizio 1. Costruire l’albero sintattico delle due formule seguenti:
P ∧ Q → R, P ∧ (Q → R)
L’operazione di sostituzione Sost(F, F1 , P ) che restituisce il risultato della
sostituzione, nella formula F, di tutte le occorrenze della variabile proposizionale
P con la formula F1 è definita per ricursione come segue:
1. Sost((F), F1 , P ) = (Sost(F, F1 , P ));
2. Sost(F2 ∧ F3 , F1 , P ) = Sost(F2 , F1 , P ) ∧ Sost(F3 , F1 , P );
3. ... ripetere allo stesso modo per tutti gli altri connettivi logici binari ...;
4. Sost(¬F, F1 , P ) = ¬Sost(F, F1 , P );
5. Sost(Q, F1 , P ) = Q, dove Q è una variabile proposizionale diversa (come
oggetto sintattico) da P ;
6. Sost(P, F1 , P ) = F1 ;
7. Sost(⊥, F1 , P ) = ⊥;
8. Sost(>, F1 , P ) = >.
Per indicare la sostituzione, oltre alla notazione Sost(F, F1 , P ), useremo
anche la notazione F[F1 /P ].
Sostituzione simultanea di più formule al posto di più variabili. Supponiamo
di avere P1 , . . . , Pn variabili proposizionali (tutte diverse fra loro) e F1 , . . . , Fn
formule, l’operazione di sostituzione simultanea Sost(F, F1 , P1 , . . . , Fn , Pn ) che
restituisce il risultato della sostituzione simultanea, nella formula F, di tutte
le occorrenze della variabile proposizionale P1 con la formula F1 , di tutte le
occorrenze della variabile proposizionale P2 con la formula F2 , ..., di tutte le
occorrenze della variabile proposizionale Pn con la formula Fn è definita per
ricursione come segue:
1. Sost((F), F1 , P1 , . . . , Fn , Pn )) = (Sost(F, F1 , P1 , . . . , Fn , Pn ));
2. Sost(F̂∧F̃, F1 , P1 , . . . , Fn , Pn ) = Sost(F̂, F1 , P1 , . . . , Fn , Pn )∧Sost(F̃, F1 , P1 , . . . , Fn , Pn );
3. ... ripetere allo stesso modo per tutti gli altri connettivi logici binari ...;
4. Sost(¬F, F1 , P1 , . . . , Fn , Pn ) = ¬Sost(F, F1 , P1 , . . . , Fn , Pn );
2
5. Sost(Q, F1 , P1 , . . . , Fn , Pn ) = Q, dove Q è una variabile proposizionale
diversa (come oggetto sintattico) da tutte le P1 , . . . , Pn ;
6. Sost(Pi , F1 , P1 , . . . , Fn , Pn ) = Fi , per ogni i compreso fra 1 e n;
7. Sost(⊥, F1 , P1 , . . . , Fn , Pn ) = ⊥;
8. Sost(>, F1 , P1 , . . . , Fn , Pn ) = >.
Per indicare la sostituzione simultanea, oltre alla notazione Sost(F, F1 , P1 , . . . , Fn , Pn ),
useremo anche la notazione F[F1 /P1 , . . . , Fn /Pn ].
2
Semantica della Logica Proposizionale
La semantica della Logica Proposizionale sarà basata sull’algebra di Boole {0, 1};
come è usuale chiamiamo {0, 1} valori di verità e chiamiamo il valore 1 vero e
il valore 0 falso.
Prima di tutto dobbiamo dare una semantica (significato) alle costanti ed ai
connettivi logici. In particolare:
1. alla costante > assegnamo il valore 1 dell’algebra di Boole {0, 1};
2. alla costante ⊥ assegnamo il valore 0 dell’algebra di Boole {0, 1};
3. a ¬ assegnamo l’operatore unario N OT dell’algebra di Boole {0, 1};
4. a ∧ assegnamo l’operatore binario AN D dell’algebra di Boole {0, 1};
5. a ∨ assegnamo l’operatore binario OR dell’algebra di Boole {0, 1};
6. a → assegnamo una funzione booleana di due argomenti che restituisce
sempre 1, tranne nel caso in cui il primo argomento è vero e il secondo è
falso, e in questo caso restituisce 0;
7. a ≡ assegnamo una funzione booleana di due argomenti che restituisce 1
se i due argomenti sono uguali, 0 altrimenti.
Notare che abbiamo al posto di “operatore unario” potevamo dire “funzione
ad un argomento” e al posto di “operatore binario” potevamo dire “funzione a
due argomenti”. Spesso si usa la parola “operatore” al posto di “funzione” per
sottolineare l’aspetto computazionale (cioè che lo sappiamo calcolare).
Una assegnazione di valori di verità alle variabili proposizionali è una funzione V che prende in ingresso una variabile proposizionale e restituisce un valore
dell’algebra di Boole {0, 1}.
Fissata una assegnazione V, questa determina univocamente una valutazione
delle formule proposizionali IV definita per ricursione come segue:
1. IV (F1 ∧ F2 ) = IV (F1 ) AN D IV (F2 );
3
2. ... ripetere allo stesso modo per tutti gli altri connettivi logici binari
chiamando il corrispondente operatore o funzione...;
3. IV (¬F) = N OT IV (F);
4. IV (P ) = V(P ), dove P è una variabile proposizionale;
5. IV (⊥) = 0;
6. IV (>) = 1.
Diciamo che una formula F è soddisfatta dalla valutazione IV , se IV (F) = 1.
Una formula F è soddisfacibile se esiste una valutazione IV , tale che IV (F) = 1.
Notare che data IV , stabilire se IV (F) = 1 è un calcolo facile. Viceversa
trovare IV tale che IV (F) = 1 può essere molto difficile (computazionalmente).
Una formula F è una tautologia se per ogni valutazione IV , F è soddisfatta
dalla valutazione IV . Una formula F è una contraddizione se per ogni valutazione IV , F non è soddisfatta dalla valutazione IV .
Tavole di verità.
E’ importante osservare che per determinare il valore di verità di una formula
F rispetto ad una valutazione IV qualsiasi, bisogna solo conoscere il valore di
verità che IV assegna alle variabili proposizionali che compaiono in F. E’ evidente che il valore di verità assegnato alle altre variabili non gioca nessun ruolo.
Questo conduce al metodo della tavola di verità. Siano P1 , . . . , Pn le variabili
proposizionali che compaiono in F; costruiamo una tabella, dove in ogni riga
vi è una delle possibili assegnazioni di valori di verità alle variabili P1 , . . . , Pn
e sull’ultima colonna il valore di verità assunto da F. In questo modo determiniamo il comportamento di F rispetto ad ogni possibile valutazione IV .
Inoltre la tavola di verità ci fa vedere che F determina implicitamente una funzione booleana di n argomenti. Ad esempio si mostra la tavola di verità di
(P ∧ Q) ∨ (P ∧ R) ∨ (Q ∧ R)
P
0
0
0
0
1
1
1
1
Q
0
0
1
1
0
0
1
1
R
0
1
0
1
0
1
0
1
(P ∧ Q) ∨ (P ∧ R) ∨ (Q ∧ R)
0
0
0
1
0
1
1
1
4