8.2 Logica - Dipartimento di Informatica e Sistemistica

Fondamenti di Informatica 2
Linguaggi e Complessità : Lezione 2
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 2
1
Strutture e modelli
Sia M ⊆ A un insieme di simboli proposizionali, definiamo la relazione
|= ⊆ (M × Prop) ricorsivamente come segue:
1. M |= > ogni insieme di simboli è un modello di >
2. M 6|= ⊥ nessun insieme di simboli è un modello di ⊥;
3. M |= A se e solo se A ∈ M;
4. M |= ¬α se e solo se non (M |= α) se e solo se M 6|= α;
5. M |= α ∧ β se e solo se M |= α e M |= β;
6. M |= α ∨ β se e solo se M |= α oppure M |= β;
7. M |= α → β se e solo se M 6|= α oppure M |= β;
8. M |= α ↔ β se e solo se M |= α e M |= β, oppure M 6|= α e M 6|= β.
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 2
2
Modelli-definizioni
Sia α una formula, se M |= α diciamo che M è un modello di α, ovvero
che M rende vera α.
Se M rende vere tutte le formule di un insieme Γ, cioè se M |= γ, per ogni
formula γ in Γ, diciamo che M è un modello per Γ e indichiamo questo con
M |= Γ.
Se α è una tautologia, possiamo scrivere |= α (ogni modello rende vera α).
Se M |= α per qualche M, allora diciamo che α è soddisfacibile.
Se per nessun insieme di simboli proposizionali M è verificato che M |= α
allora diciamo che α è insoddisfacibile.
Quindi una formula è insoddisfacibile se e solo se per essa non esiste un
modello.
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 2
3
Esempio
1. La formula A ∧ B ha {A, B} come modello. Dunque la formula è soddisfacibile.
2. La formula A ∧ ¬B ha {A} come modello.
3. La formula A ∧ ¬A non ha alcun modello. Dunque la formula non è
soddisfacibile.
4. La formula A → B ha {}, {B} e {A, B} come modelli; mentre {A}
non è un modello.
5. La formula A ∨ B ha {A}, {B} e {A, B} come modelli.
6. Sia A → ((B ∧ C) ∨ (C → ¬A)); M = {A, B} è un modello per essa.
Esistono altri modelli?
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 2
4
Proprietà
Se α implica logicamente β, allora la formula α → β è una tautologia e
quindi vale |= α → β
Se Γ è un insieme di proposizioni ed M un modello, scriviamo M |= Γ se e
solo se M è un modello di tutte le proposizioni in Γ.
Dato un insieme di proposizioni Γ e una proposizione α, diciamo che Γ implica logicamente α e scriviamo Γ |= α se e solo se tutti i modelli di Γ sono
anche modelli di α.
Se α è logicamente equivalente a β, cioè se α ≡ β, allora la formula
alpha ↔ β è una tautologia e quindi vale |= α ↔ β.
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 2
5
Notazioni
Data una formula α, indichiamo con M od(α) l’insieme dei modelli di α,
M od(α) = {M|M |= α}
Dato un insieme di proposizioni Γ, i modelli di Γ sono i modelli che ne
soddisfano tutte le formule,
M od(Γ) = {M|∀γ∈ΓM |= γ}
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 2
6
Proprietà dei modelli
Data una formula γ = ¬α, l’insieme dei modelli di γ è
M od(γ) = M od(α)
Data una formula γ = α ∧ β, l’insieme dei modelli di γ è
M od(γ) = M od(α) ∩ M od(β)
Data una formula γ = α ∨ β, l’insieme dei modelli di γ è
M od(γ) = M od(α) ∪ M od(β)
Data una formula γ = α → β, l’insieme dei modelli di γ è
M od(γ) = M od(α) ∪ M od(β)
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 2
7
Teorema
Il seguente importante teorema lega le nozioni di implicazione logica e di
insoddisfacibilità :
Γ |= α se e solo se Γ ∪ {¬α} è insoddisfacibile.
Dimostrazione
(⇒) Supponiamo Γ |= α, ma Γ ∪ {¬α} soddisfacibile. Allora esiste un
modello M tale che M |= Γ e M |= ¬α, contraddizione con la definizione
di implicazione logica.
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 2
8
Teorema
Γ |= α se e solo se Γ ∪ {¬α} è insoddisfacibile.
Dimostrazione
(⇐) Supponiamo che Γ∪{¬α} sia insoddisfacibile, consideriamo le seguenti
trasformazioni:
1. non esiste un modello M tale che M verifica entrambi gli asserti M |= Γ
e M |= ¬α;
2. per ogni modello M, M non verifica entrambi gli asserti M |= Γ e
M |= ¬α;
3. per ogni modello M, M 6|= Γ oppure M 6|= ¬α;
4. per ogni modello M, M |= Γ implica M 6|= ¬α;
5. M 6|= ¬α se e solo se M |= α;
6. per ogni modello M, M |= Γ implica M |= α;
7. Γ |= α.
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 2
9
Esempio
Verifichiamo che A ∧ B |= B e che {A ∧ B} ∪ {¬B} è insoddisfacibile.
Sia M = {A, B}, ogni modello M0 che contiene M è un modello di
A ∧ B e, ovviamente, un modello di B. Si osservi che M∗ = {B} è un
modello di B, ma non è un modello di A ∧ B. Più in generale, nessun
sottoinsieme proprio di M è un modello di A ∧ B.
{A ∧ B} ∪ {¬B}, è equivalente a A ∧ (B ∧ ¬B); è evidente che tale
formula non ha modelli.
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 2
10
Decidibilità
La logica proposizionale è decidibile.
Cioè si può decidere se una formula α del calcolo proposizionale
è una tautologia o meno.
Un altro interessante problema di decisione per il calcolo proposizionale consiste nello stabilire se una formula è soddisfacibile o meno (questo problema
è di solito indicato con SAT ).
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 2
11
Tabelle di verità ridotte
Usiamo tabelle di verità ridotte.
Il valore di verità dell’intera formula è leggibile nella colonna sottostante al
suo connettivo principale.
Esempio: Scriviamo la tabella di verità ridotta per P → (Q → P )
P → Q
1 1 1
1 1 0
0 1 1
0 1 0
→
1
1
0
1
P
1
1
0
0
Proprietà : α è una tautologia se e solo se la colonna della tabella di verità
(sottostante al connettivo principale) contiene solo 1, è soddisfacibile se
e solo se essa contiene almeno un 1, è contraddittoria se e solo se essa
contiene tutti 0.
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 2
12
Complessità
Per il problema di verificare se una formula del calcolo proposizionale è o
meno una tautologia, come pure il problema SAT , si conoscono solo algoritmi di costo esponenziale nella dimensione della formula (cioè il numero di
simboli di proposizione distinti che in essa compaiono).
Data una formula α con n simboli proposizionali distinti, per verificare se la
formula è una tautologia o se è soddisfacibile basta costruire una tabella di
verità per α, che conterrà 2n righe.
Si può fare di meglio? È possibile trovare algoritmi polinomiali per risolvere
il problema di decisione delle tautologie e della soddisfacibilità del calcolo
proposizionale?
SAT non è ancora stato dimostrato intrinsecamente non polinomiale, anche
se esiste una certa evidenza in questo senso.
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 2
13
Sistema assiomatico hilbertiano
♦ Introduciamo ora un sistema di deduzione per la logica proposizionale,
chiamato hilbertiano.
♦ Il sistema assiomatico hilbertiano è basato sulla definizione di 3 schemi
di assiomi e di 2 regole di inferenza, chiamate Modus Ponens
(MP) e Sostituzione Uniforme (SU).
♦ La verità di una formula viene definita attraverso la nozione di derivazione.
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 2
14
Schemi di assioma e regole di inferenza
♦ Schemi di assioma (Nota bene: α, β e γ denotano formule generiche ed
usiamo solo i connettivi ¬ e →)
1. (α → (β → α));
2. ((α → (β → γ)) → ((α → β) → (α → γ))) ;
3. ((β → ¬α) → ((β → α) → ¬β)).
♦ Regole di Inferenza
• Modus Ponens (MP):
α,
α→β
β
• Sostituzione Uniforme (SU):
β[p]
β[α/p]
dove p è un simbolo proposizionale che può occorrere in β, α è una
proposizione e p non occorre in α, β[α/p] è detta una istanza di β[p].
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 2
15
Definizioni
♦ denotiamo con Axioms l’insieme degli assiomi del calcolo proposizionale,
cioè tutte le formule ottenibili dai 3 schemi di assiomi per sostituzione.
♦ Una sequenza α1, . . . , αn è una dimostrazione di α se αn = α e se per
ogni i, 1 ≤ i ≤ n, αi ∈ Axioms (cioè è un’istanza di uno schema di
assioma ottenuto da a, b e c per mezzo di SU), oppure αi è ottenuto da αj
e αk , j < k < i per MP, dove αk = αj → αi. In tal caso α è un teorema
del calcolo proposizionale e lo indichiamo:
`H α
♦ Diciamo che una proposizione α ha una dimostrazione da un insieme di
proposizioni (ipotesi) Γ se esiste una derivazione α1, . . . , αn = α tale che,
per ogni i, 1 ≤ i ≤ n, αi ∈ Γ oppure αi ∈ Axioms oppure αi è ottenuto
da αj e αk , j < k < i per MP, dove αk = αj → αi, o αi è in Γ. Se α ha
una dimostrazione da Γ scriviamo:
Γ `H α
Gli elementi di Γ sono chiamati le premesse di α.
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 2
16
Definizione dei connettivi
Il sistema assiomatico di Hilbert contiene solo ¬ e →, gli altri connettivi
possono essere introdotti definendoli a partire da questi due.
1. α ∧ β =Def ¬(α → ¬β);
2. α ∨ β =Def ¬α → β;
3. α ↔ β =Def (α → β) ∧ (β → α).
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 2
17
Teorema di deduzione
Sia Γ un insieme di formule proposizionali e siano α e β due formule proposizionali:
Γ, β `H α se e solo se Γ `H β → α.
♦ Il simbolo “metalogico” `H viene “internalizzato” nel linguaggio mediante →
♦ Possiamo sempre trattare con teoremi, invece che con derivazioni da
insiemi di formule
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 2
18
Esempio
Vogliamo mostrare che, nel sistema hilbertiano si deriva:
`H ¬A → (A → B)
Prima dimostriamo che {A, ¬A} `H B
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
¬A
A
A → (¬B → A)
¬A → (¬B → ¬A)
¬B → A
¬B → ¬A
(¬B → ¬A) → ((¬B → A) → ¬¬B)
(¬B → A) → ¬¬B
¬¬B
B
(ipotesi)
(ipotesi)
(schema (a))
(schema (a))
(da 2 e 3 per MP)
(da 1 e 4 per MP)
(schema (c))
(da 6 e 7 per MP)
(da 5 e 8 per MP)
(da 9 per esercizio )
Con due applicazioni del teorema di deduzione si conclude la dimostrazione.
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 2
19
Consistenza
Diciamo che un insieme di formule proposizionali Γ è consistente se è verificata una delle seguenti:
1. Non esiste una proposizione α tale che Γ `H α e Γ `H ¬α;
2. Esiste una proposizione α, tale che Γ 6`H α.
♦ Le due formulazioni sono equivalenti.
♦ Si può correlare la nozione sintattica di consistenza con quella semantica
di soddisfacibilità, dimostrando che un insieme di formule Γ è consistente se
e solo se è soddisfacibile
Un insieme di formule Γ si dice consistente e massimale o completo se per
ogni formula α ∈ Prop si verifica una e una sola delle seguenti relazioni:
Γ `H α oppure Γ `H ¬α
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 2
20
Correttezza
♦ Quale relazione lega i teoremi e le tautologie??
♦ Se Γ `H α quale relazione lega i modelli di Γ ed α??
Per mostrare questa corrispondenza, dobbiamo mostrare che:
(i) L’insieme delle tautologie coincide con l’insieme dei teoremi:
`H α se e solo se |= α.
(ii) Ciò che deriva da un insieme Γ è vero in tutti i modelli di Γ:
Γ `H α se e solo se Γ |= α.
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 2
21
Teorema di completezza e correttezza
`H α se e solo se |= α
♦ Correttezza del sistema hilbertiano
`H α implica |= α.
È sufficiente dimostrare che:
i. gli schemi a, b e c sono tautologie (esercizio);
ii. MP e SU sono chiusi rispetto alla conseguenza tautologica. Ovvero se
α e α → β sono tautologie anche β è una tautologia, e se F [p] è una
tautologia, anche F [X/p] lo è.
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 2
22
Correttezza: fine dimostrazione
`H α implica |= α.
ii.
MP è chiuso rispetto alla conseguenza tautologica. Supponiamo per assurdo
che |= α e |= α → β, ma 6|= β. Se 6|= β, allora esiste un modello M che
non soddisfa β; ma α è una tautologia, perciò è verificata in ogni modello e
quindi in M. Pertanto M |= α e M 6|= β e per definizione di implicazione
tautologica 6|= α → β; contraddizione.
Consideriamo SU, sia F [p] una tautologia, allora |= F [p] per qualunque
assegnazione booleana alle lettere proposizionali di F [p], in particolare a p;
dunque per qualunque proposizione X possiamo porre IV (p) = IV (X). Per
il teorema del rimpiazzamento, IV (F [p/p]) = IV (F [X/p]), da cui segue che
F [X/p] è una tautologia.
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 2
23