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