Fondamenti di Informatica
Sistemi di Elaborazione delle Informazioni
Informatica Applicata
Logica: nozioni di base
Antonella Poggi
Anno Accademico 2012-2013
DIPARTIMENTO DI SCIENZE DOCUMENTARIE
LINGUISTICO FILOLOGICHE
E GEOGRAFICHE
Le espressioni booleane
• Abbiamo parlato di espressioni booleane quando
abbiamo presentato i vincoli di tupla
• Parleremo ancora di espressioni booleane nell’ambito
della presentazione del linguaggio SQL
• In prima battuta, diciamo che un’espressione booleana è
una espressione, ovvero una formula, che, quando è
valutata, assume un valore booleano, ovvero un valore
tra VERO e FALSO
– formula intera: 1 + 2 -> valore intero
– formula reale: 1 + 2.5 -> valore reale
– formula booleana: (Voto > 17) AND (Voto>31) -> valore
booelano
• Ma cosa significa che “una formula viene valutata”?
Cosa rappresentano i valori “VERO” e “FALSO”?
Antonella Poggi
Pagina 2
La logica
• Da Wikipedia: La logica (dal greco logos, ovvero
“parola”, “pensiero”, “idea”, “argomento”, “ragione”) è lo
studio del ragionamento e dell’argomentazione e, in
particolare, dei procedimenti inferenziali, rivolto a
chiarire quali procedimenti di pensiero siano validi e
quali non validi
• La logica nasce con Aristotele (384 a.c.) che per primo
studia come argomenti corretti seguano
necessariamente da premesse corrette (esempio: studio
sul sillogismo)
• Per opera di Boole (1815), l’algebra viene utilizzata
come mezzo per esprimere le leggi del ragionamento
Antonella Poggi
Pagina 3
Inferenza
• Un’inferenza è un processo che, a partire da alcuni
enunciati assunti come punto di partenza (le
premesse dell’inferenza), porta ad asserire un altro
enunciato (la conclusione)
– Premesse:
• Tutti gli uomini sono mortali
• Io sono un uomo
– Conclusione
• Io sono mortale
Antonella Poggi
Pagina 4
La logica proposizionale
• La logica proposizionale è un linguaggio che cattura
le forme più semplici di inferenza logica
• E’ basata su
– proposizioni elementari (anche detti atomi), che non
possono essere ulteriormente scomposte in altre
proposizioni
– connettivi logici che restituiscono il valore di verità di una
proposizione in funzione del valore di verità delle
proposizioni conesse
• Per rendere conto della validità delle inferenze
proposizionali non occorre scomporre le formule
atomiche in componenti più elementari
Antonella Poggi
Pagina 5
Esempi di proposizioni atomiche
•
•
•
•
•
Piove
Si è dimesso Papa Benedetto XVI
E’ stato eletto Papa Francesco I
Ho preso 30
Ho preso la lode
Antonella Poggi
Pagina 6
Esempio di inferenza proposizionale
• Premesse:
– Se ho preso la lode, allora ho preso 30
– Non ho preso 30
• Conclusione?
– Non ho preso la lode
Antonella Poggi
Pagina 7
Proposizioni: vere o false?
1. Piove
Falso adesso, vero ieri
2. Se è stato eletto Papa Francesco, allora si è dimesso
Papa Benedetto XVI
Vero oggi, perché Benedetto XVI si è dimesso e Francesco
è stato eletto
Vero il 9 Marzo 2013, perché Francesco non era ancora
stato eletto
Vero a Settembre 2012, perché Papa Benedetto XVI non si
era dimesso
3. Piove oppure non piove
Sempre vero
Antonella Poggi
Pagina 8
La logica proposizionale: sintassi (1)
• Ingredienti:
– alfabeto
– formule (booleane) o proposizioni
Alfabeto
– Gli operatori proposizionali
• unario: NOT
• binari: AND, OR, →, ↔
– Le costanti T, F (per denotare il vero e il falso)
– Un insieme non vuoto di simboli (o lettere) proposizionali
S={P, Q,...}
– I simboli separatori “(“ e “)”
Antonella Poggi
Pagina 9
La logica proposizionale: sintassi (2)
Formule
• L’insieme delle formule (ben formate) della logica
proposizionale è l’insieme PROP definito come
segue:
1. le costanti ed i simboli proposizionali sono formule
2. se A è una formula, allora (NOT A) è una formula
3. se A e B sono formule e OP è un operatore binario (cioè
OP è uno tra {AND,OR,→,↔), allora (A OP B) è una
formula
Antonella Poggi
Pagina 10
Precedenza operatori
• Le parentesi permettono di indicare la precedenza con cui gli
operatori vanno applicati
• In assensa di parentesi, la massima precedenza viene data a
NOT, poi a AND,OR, →, ed infine a ↔.
• Gli operatori sono associativi a destra.
• Esempi:
– La formula NOT(A) AND NOT(B) viene parentetizzata come ((NOT(A))
AND (NOT(B)))
– La formula A AND B OR C viene parentetizzata come ((A AND B) OR C)
– La formula A → B → C viene parentetizzata come (A → (B → C))
– La formula NOT(A) AND NOT(B) → C AND D AND E viene
parentetizzata come (((NOT(A)) AND (NOT(B))) → (C AND (D AND E)))
– La formula NOT(A) AND (NOT(B) → C) AND D AND E viene
parentetizzata come ((NOT(A)) AND ((NOT(B)) → C) AND (D AND E))
Antonella Poggi
Pagina 11
Esempi
1. Piove
P
2. Se è stato eletto Papa Francesco, allora si è
dimesso Papa Benedetto XVI
F→B
3. Piove oppure non piove
P OR NOT(P)
Antonella Poggi
Pagina 12
Logica proposizionale: semantica
• Sia ass una funzione totale, detta funzione di assegnazione,
dall’insieme delle lettere proposizionali S all’insieme {0,1},
dove 0 denota il valore FALSO e 1 denota il valore VERO.
• La semantica di una formula viene assegnata per mezzo della
funzione di valutazione val, dall’insieme PROP (di tutte le
formule proposizionali) all’insieme dei valori di verità {0,1}, tale
che:
–
–
–
–
–
val(Q) = ass(Q) se Q ∈ S
val(T) = 1
val(F) = 0
val(NOT(A)) = 1 se val(A)=0, val(NOT(A)) = 0 se val(A) = 1
val(A OP B) è definito dalla seguente tavola di verità
Antonella Poggi
A
B
AND
OR
→
↔
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
Pagina 13
Esempi
1. Piove
Adesso: ass(P)=ass(P)=0 perché val(P)=0
Ieri: ass(P)=ass(P)=1 perché val(P)=1
2. Se è stato eletto Papa Francesco, allora si è dimesso
Papa Benedetto XVI
Oggi: ass(F→ B)=1, perché val(F)=1 e val(B)=1
Il 9 Marzo: ass(F→ B)=1, perché val(B)=1 e val(F)=0
A Settembre 2012: ass(B→ F)=1, perché val(B)=0 e
val(F)=0
3. Piove oppure non piove
Sempre vero perché, quale che sia val, ass(P OR
NOT(P))=1
Antonella Poggi
Pagina 14
Tavole di verità
• La possibilità di organizzare in una tabella i valori di
verità di una proposizione composta come funzione
dei valori di verità delle sue componenti può essere
generalizzata a proposizioni qualunque
• Esempio: la tabella di verità della proposizione P
OR NOT(P) è la seguente:
Quale che sia Val,
è sempre vera!
Antonella Poggi
P
NOT(P)
P OR NOT(P)
1
0
1
0
1
1
Pagina 15
Tavole di verità (altro esempio)
• Sia la proposizione: A=((NOT(P) AND Q) → R)
• La sua tabella di verità è la seguente:
P
Q
R
NOT(P)
NOT(P) AND Q
A
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
Antonella Poggi
Pagina 16
Torniamo ai vincoli e a SQL
• Sia quando esprimiamo un vincolo che quando
esprimiamo una condizione in SQL, usiamo
espressioni (o formule) booleane costruite su atomi
che confrontano valori di attributi o espressioni
aritmetiche su di essi
• Rispetto alle proposizioni della logica
proposizionale viste sino ad ora, al posto delle
lettere abbiamo delle formule più complesse, il cui
valore di verità è dato dall’esito del confronto
• Esempi:
(Voto≤30) AND (Voto≥18)
(Lode=“e lode”) → (Voto=30)
Antonella Poggi
Pagina 17
Operatori di confronto
• Gli operatori di confronto che possono essere usati
sono tutti quelli “ammissibili” per gli operando a cui
sono applicati
• Esempi:
– ≤, ≥, ≠, ... - per interi, reali, ecc. (eventualmente espressi
mezzo di operazioni aritmetiche)
– “=“, “sottostringa=“, “iniziale=“,...– tra stringhe di caratteri
– in, not in – tra elemento(i) ed un insiemi di elementi dello
stesso tipo
– ...
Antonella Poggi
Pagina 18
Interpretazioni e modelli
• Una valutazione Val si può vedere come un insieme di
simboli proposizionali, detto interpretazione, nel
seguente modo: l’interpretazione associata ad una data
valutazione Val è l’insieme che contiene tutti e soli i
simboli P tali Val(P) = 1.
• Definiamo ricorsivamente la relazione |= tra
interpretazioni e formule come segue. Se M è una
interpretazione, allora:
1.
2.
3.
4.
5.
6.
7.
M |= P se P ∈M
M |= T e non è vero che M |= F;
M |= NOT(A) se non è vero che (M |= A)
M |= A AND B se M |= A e M |= B
M |= A OR B se M |= A oppure M |= B
M |= A → B se non è vero che M |= A oppure M |= B
M |= A ↔ B se M |= A e M |= B, oppure se non è vero che M
|= A e M|= B
Antonella Poggi
Pagina 19
Modelli - definizioni
• Se M ⊨ A, diciamo che M soddisfa A, ovvero che M
rende vera A, ovvero che M è un modello di A
• Se F è un insieme di formule, e per ogni formula A in F
si ha che M ⊨ A, diciamo che M è un modello per F e
indichiamo questo con M ⊨ F
• Se ogni interpretazione è un modello di A, allora A è una
tautologia, e possiamo scrivere ⊨A
• Se esiste almeno unM tale che M ⊨ A, allora diciamo che
A è soddisfacibile
• Se per nessun M si ha che M ⊨ A, allora diciamo che A è
insoddisfacibile, o che è una contraddizione. Si noti
che una formula A è una tautologia se e solo NOT(A) è
una contraddizione
Antonella Poggi
Pagina 20
Esempi: soddisfacibile? modelli?
1. Piove
Ha il modello {P}, corrispondente al mondo ieri. Quindi è soddisfacibile.
2.
Se è stato eletto Papa Francesco, allora si è dimesso Papa Benedetto
XVI
Ha i seguenti modelli:
– {}, corrispondente al mondo a Settembre 2012
– {B,F}, corrispondente al mondo oggi
– {B}, che corrisponde al mondo al 9 Marzo 2013
Mentre {F}, non è un modello: Papa Francesco non avrebbe potuto essere
stato eletto se Papa Benedetto non si fosse dimesso!
3. Piove oppure non piove
E’ una tautologia
4. Piove e non piove
Non ha nessun modello, quindi è insoddisfacibile
Antonella Poggi
Pagina 21
Esercizio 1
Se Giovanni studia canto e non ha una brutta voce allora avrà
successo.
Siano:
C = Giovanni studia canto
B = Giovanni ha una brutta voce
S = Giovanni avrà successo
1. Esprimere con una formula della logica proposizionale,
l’enunciato di cui sopra.
2. Dire quali tra i seguenti insiemi sono modelli:
–
–
–
–
–
–
{C, B, S}
{C, S}
{B, S}
{C}
{B}
{}
Antonella Poggi
Pagina 22
Esercizio 1: soluzione
1. Esprimere con una formula della logica proposizionale,
l’enunciato di cui sopra
C AND NOT(B) → S
2. Dire quali tra i seguenti insiemi sono modelli:
– {C, B, S}
• SI
– {C, S}
• SI
– {B, S}
• SI
– {C}
• NO
– {B}
• SI
– {}
• SI
Antonella Poggi
Pagina 23
Implicazione e equivalenza logica
• A implica logicamente B se, per ogni valutazione
booleana Val, ogni volta che Val(A) = 1, si ha anche
che Val(B) = 1, ovvero se
∀M: se M ⊨ A allora M ⊨ B
Se A implica logicamente B, scriviamo A ⊨ B.
• A e B sono logicamente equivalenti se Val(A) =
Val(B) per ogni valutazione booleana Val, ovvero se
∀M: M ⊨ A se e solo se M ⊨ B
ovvero se A e B hanno gli stessi modelli. Se A è
logicamente equivalente a B, scriviamo A ≡ B.
Antonella Poggi
Pagina 24
Leggi della logica proposizionale (1)
• Idempotenza:
A AND A ≡ A
A OR A ≡ A
• Associatività:
A AND (B AND C) ≡ (A AND B) AND C
A OR (B OR C) ≡ (A OR B) OR C
A ↔ (B ↔ C) ≡ (A ↔ B) ↔ C
• Commutatività:
A AND B ≡ B AND A
A OR B ≡ B OR A
A↔B≡B↔A
Antonella Poggi
Pagina 25
Leggi della logica proposizionale (2)
• Distributività:
A AND (B OR C) ≡ (A AND B) OR (A AND C)
A OR (B AND C) ≡ (A OR B) AND (A OR C)
• Assorbimento:
A AND (A OR B) ≡ A
A OR (A AND B) ≡ A
• Doppia negazione:
NOT(NOT(A)) ≡ A
• Leggi di De Morgan:
NOT(A AND B) ≡ NOT(A) OR NOT(B)
NOT(A OR B) ≡ NOT(A) AND NOT(B)
Antonella Poggi
Pagina 26
Leggi della logica proposizionale (3)
• Terzo escluso:
A OR NOT(A) ≡ T
• Contrapposizione:
A → B ≡ NOT(B) → NOT(A)
• Contraddizione:
A AND NOT(A) ≡ F
Antonella Poggi
Pagina 27
Implicazione logica, soddisfacibilità e
deduzione
• Il seguente teorema lega le nozioni di implicazione
logica e di insoddisfacibilità:
F ⊨ A se e solo se F ∪ {NOT(A)} è insoddisfacibile
• Il seguente teorema di deduzione lega le nozioni di
implicazione logica e di implicazione materiale:
F ⊨ A se e solo se ⊨ F’→ A
dove F’ è la formula ottenuta come “and” delle formule
in F
Antonella Poggi
Pagina 28
Decidibilità
• Problemi di decisione associati alla logica proposizionale:
– SAT: data una formula A della logica proposizionale, decidere se A è
soddisfacibile o no
– TAUT: data una formula A della logica proposizionale, decidere se A
è una tautologia o no
• Data una formula A con n simboli proposizionali distinti, per
verificare se la formula è soddisfacibile basta costruire una
tabella di verità per A, che conterrà 2n righe. Per ogni riga,
basta poi verificare se essa corrisponde ad un modello
• Si dice che:
La logica proposizionale è decidibile.
Antonella Poggi
Pagina 29