8.1 Logica - Dipartimento di Informatica e Sistemistica

Fondamenti di Informatica 2
Linguaggi e Complessità : Lezione 1
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 1
1
Logica proposizionale
♦ Linguaggio matematico per ragionare sulla verità o falsità di proposizioni
♦ Composto da una sintassi (regole per costruire le frasi) e da una semantica
(regole per assegnare un significato)
♦ Esempio di frase
• piove, f a-caldo, f a-caldo∧(e)¬(non)piove, piove∨(o)sole
• costituito da proposizioni atomiche (piove, f a-caldo, sole . . .) e da proposizioni complesse (f a-caldo ∧ ¬piove, piove ∨ sole . . .)
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 1
2
Logica proposizionale: Alfabeto
• Un insieme non vuoto (finito o numerabile) di simboli proposizionali A =
{A, B, . . . , P, Q, . . .};
• Le costanti proposizionali >, ⊥ (per denotare il vero TRUE e il falso
FALSE);
• I connettivi proposizionali ¬ (unario), ∧ e ∨ (binari);
• I simboli separatori ‘(’ e ‘)’.
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 1
3
Logica proposizionale: Formule
♦ Formule (dette anche proposizioni)
L’insieme Prop delle formule ben formate o formule del linguaggio proposizionale è l’insieme definito induttivamente come segue:
1. Le costanti e i simboli proposizionali sono formule;
2. Se α è una formula (¬α) è una formula;
3. Se α e β sono due formule, (α ∧ β) e (α ∨ β) sono formule.
Nel seguito useremo la convenzione di denotare i simboli proposizionali con
le lettere maiuscole (A, B, . . .) e le formule proposizionali con le lettere
greche minuscole (α, β, . . . ).
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 1
4
Semantica: Sistema di valutazione
♦ Definiamo il dominio e gli operatori che ci permetteranno di dare una
semantica (significato) alle nostre proposizioni.
♦ Il sistema di valutazione della logica proposizionale è costituito dal
dominio B= {0, 1}, dove il simbolo 1 denota il valore di verità e 0 il valore di
falsità ed un insieme di operatori (tabelle di verità ) su questo dominio Op=
{Op¬, Op∧, Op∨} uno per ogni connettivo del linguaggio con Op¬ : B 7→ B
e Op∧ e Op∨ : B × B 7→ B.
Dove: Op¬(1) = 0 e Op¬(0) = 1
α
1
Op∧: 1
0
0
β α∧β
1
1
0
0
1
0
0
0
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 1
5
α
1
Op∨: 1
0
0
β α∨β
1
1
0
1
1
1
0
0
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 1
6
Semantica: Valutazione booleana
♦ Possiamo ora definire:
♦ Un’assegnazione booleana V ai simboli proposizionali A è una funzione
totale: V : A 7→ {1, 0}.
♦ Una valutazione booleana IV : Prop 7→ {1, 0} è l’estensione a Prop
di un’assegnazione booleana, cioè
IV (A) = V(A) se A ∈ A;
IV (>) = 1;
IV (⊥) = 0;
IV (¬α) = Op¬(IV (α));
IV (α ∧ β) = Op∧(IV (α), IV (β)).
IV (α ∨ β) = Op∨(IV (α), IV (β)).
Data V, si può facilmente dimostrare che l’estensione IV esiste ed è unica.
Notate che è una definizione ricorsiva (ricorsione strutturale).
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 1
7
Tautologie e contraddizioni
Definizioni:
♦ Una formula proposizionale α è soddisfatta da una valutazione booleana
IV se IV (α) = 1.
♦ Una formula proposizionale α è soddisfacibile se è soddisfatta da una
qualche valutazione booleana IV .
♦ Una formula proposizionale α è una tautologia se è soddisfatta da ogni
valutazione booleana IV .
♦ Una formula proposizionale α è una contraddizione se non è soddisfatta
da nessuna valutazione booleana IV .
Una formula α è una tautologia se e solo se ¬α è una contraddizione.
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 1
8
Equivalenza logica
Definizioni:
♦ α implica logicamente β (denotato α ⇒ β) se e solo se per ogni valutazione booleana IV , ogniqualvolta IV (α) = 1 anche IV (β) = 1.
♦ α e β sono logicamente equivalenti o tautologicamente equivalenti (denotato α ≡ β) se e solo se IV (α) = IV (β) per ogni valutazione booleana
IV .
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 1
9
Altri connettivi: 1
♦ Siamo in grado di rappresentare la congiunzione e la disgiunzione di
proposizioni, ma siamo in grado di denotare la nozione di implicazione tra
proposizioni ?
• Il fatto che una proposizione α implica un’altra β viene denotato con
α→β
• Quale è il suo operatore (tabella di verità ) Op→ ?
α
1
Op→: 1
0
0
β α→β
1
1
0
0
1
1
0
1
♦ Nel caso in cui l’antecedente (α) dell’implicazione sia falso, l’implicazione
è vera.
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 1
10
Altri connettivi: 2
♦ Possiamo ora introdurre anche l’operatore α ↔ β, che denota la relazione
che le due formule (α e β) si implicano vicendevolmente (α → β e β → α).
Il conseguente operatore Op↔ è cosı̀ definito:
α
1
Op↔: 1
0
0
β α↔β
1
1
0
0
1
0
0
1
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 1
11
Definibilità di connettivi
Dato un insieme di connettivi C e un connettivo c 6∈ C per cui si abbia una
funzione di verità fc = Opc, si dice che c si deriva dai (oppure si definisce in
termini dei) connettivi di C se esiste una formula proposizionale F costruita
usando solo i connettivi di C tale che fc ≡ fF .
Esempio:
Il connettivo ∧ si può definire in termini di {¬, ∨} nel seguente modo:
(α ∧ β) ≡ ¬(¬α ∨ ¬β).
α
1
1
0
0
β ¬α ¬β ¬α ∨ ¬β ¬(¬α ∨ ¬β) α ∧ β
1 0 0
0
1
1
0 0 1
1
0
0
1 1 0
1
0
0
0 1 1
1
0
0
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 1
12
Definibilità di connettivi: esempi
(α → β)
(α ∨ β)
(α ∨ β)
(α ∧ β)
(α ∧ β)
¬α
⊥
(α ↔ β)
≡
≡
≡
≡
≡
≡
≡
≡
(¬α ∨ β)
(¬α → β)
¬(¬α ∧ ¬β)
¬(¬α ∨ ¬β)
(((α → ⊥) → ⊥) → (β → ⊥)) → ⊥
α→⊥
α ∧ ¬α
(α → β) ∧ (β → α)
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 1
13
Precedenza operatori
♦ la massima precedenza a ¬, poi, nell’ordine, ai connettivi ∧,∨, → e infine
↔.
La formula ¬α ∧ ¬β
viene parentetizzata come ((¬α) ∧ (¬β)).
La formula α ∧ β ∨ γ
viene parentetizzata come ((α ∧ β) ∨ γ).
La formula ¬α ∧ ¬β → γ ∧ δ ∧ viene parentetizzata come (((¬α) ∧ (¬β)) → (γ ∧ (δ ∧ ))).
La formula ¬α ∧ (¬β → γ) ∧ δ ∧ viene parentetizzata come ((¬α) ∧ ((¬β) → γ) ∧ (δ ∧ )).
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 1
14
Leggi 1
1. Idempotenza:
α∧α ≡ α
α∨α ≡ α
2. Associatività:
α ∧ (β ∧ γ) ≡ (α ∧ β) ∧ γ
α ∨ (β ∨ γ) ≡ (α ∨ β) ∨ γ
α ↔ (β ↔ γ) ≡ (α ↔ β) ↔ γ
3. Commutatività:
α∧β ≡ β∧α
α∨β ≡ β∨α
α↔β ≡ β↔α
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 1
15
Leggi 2
1. Distributività:
α ∧ (β ∨ γ) ≡ (α ∧ β) ∨ (α ∧ γ)
α ∨ (β ∧ γ) ≡ (α ∨ β) ∧ (α ∨ γ)
2. Assorbimento:
α ∧ (α ∨ β) ≡ α
α ∨ (α ∧ β) ≡ α
3. Doppia negazione:
¬¬α ≡ α
4. Leggi di De Morgan:
¬(α ∧ β) ≡ ¬α ∨ ¬β
¬(α ∨ β) ≡ ¬α ∧ ¬β
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 1
16
Leggi 3
1. Terzo escluso:
α ∨ ¬α ≡ >
2. Contrapposizione:
α → β ≡ ¬β → ¬α
3. Contraddizione:
α ∧ ¬α ≡ ⊥.
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 1
17
Funzioni booleane e insiemi di connettivi
Definizione:
Sia α una formula contenente esattamente n atomi distinti A1, A2, . . . , An;
la funzione fα : {0, 1}n 7→ {0, 1} tale che fα(v1, v2, . . . , vn) = IV (α)
dove V è l’interpretazione per cui V(Ai) = vi per ogni i = 1, 2, . . . , n è
detta la funzione di verità (o funzione booleana) associata ad α.
Quindi, ogni proposizione del calcolo proposizionale definisce una funzione
n-aria (o connettivo n-ario), dove n è il numero degli atomi distinti che in
essa compaiono.
2n
Per ogni n esistono 2 funzioni booleane distinte (cioè tante quanti sono i
sottoinsiemi di {0, 1}n). Nel caso di n = 2 esistono 16 connettivi distinti.
Noi ne abbiamo introdotti 4, non indipendenti, nel senso che alcuni sono
esprimibili in termini di altri.
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 1
18
Completezza di insiemi di connettivi
Un insieme di connettivi logici C si dice completo se e solo se, data una
qualunque f : {0, 1}n 7→ {0, 1} esiste una formula proposizionale α costruita
mediante i connettivi dell’insieme C tale che f ≡ fα.
Esempi:
Gli insiemi {¬, ∧}, {¬, ∨} , {nand} e {nor} sono completi.
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 1
19
Proprietà di rimpiazzamento
Siano α[p], γ e δ formule proposizionali e sia IV una valutazione booleana.
Se IV (γ) = IV (δ) allora IV (α[γ/p]) = IV (α[δ/p]).
Si dimostra per induzione strutturale
Se γ ≡ δ allora α[γ/p] ≡ α[δ/p].
Esempio
Si consideri l’equivalenza tautologica
(A → B) ≡ (¬A ∨ B).
Sia α[p] = (p → (α ∨ β)). Si può facilmente verificare che
((A → B) → (α ∨ β)) ≡ ((¬A ∨ B) → (α ∨ β)).
Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010
Linguaggi e Complessità : Lezione 1
20