Fondamenti di Informatica 2 - Dipartimento di Informatica e

Fondamenti di Informatica 2
Linguaggi e Complessità : Logica I Parte
Lucidi di M.Schaerf e A.Marchetti Spaccamela
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Fondamenti di Informatica 2: Logica
} Indice degli argomenti
• Introduzione: Motivazioni, Prove, Ragionamenti e loro conseguenze
• Logica Proposizionale: sintassi
• Il calcolo proposizionale: semantica
• Il calcolo proposizionale: dimostrazioni nel calcolo
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Logica: Motivazioni
} La LOGICA è la disciplina che studia le condizioni di correttezza del
ragionamento
} Occorre dire, anzitutto, quale oggetto riguardi ed a quale disciplina spetti
la presente indagine, che essa cioè
cio riguarda la dimostrazione e spetta alla
scienza dimostrativa: in seguito, bisogna precisare cosa sia la premessa, cosa
sia il termine, cosa sia il sillogismo... [Aristotele]
} Esempio di sillogismo (sillogismo = connessione di idee, ragionamento)
• Tutti gli uomini sono mortali
• Socrate è un uomo
• Socrate è mortale
Equivalentemente
Dato che Tutti gli uomini sono mortali e che Socrate è un uomo possiamo
concludere che Socrate è mortale
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Logica: Motivazioni
} Non tutti i sillogismi sono validi. Ad esempio
• Tutti gli animali sono mortali
• Socrate è mortale
• Socrate è un animale
• Tutti gli dei sono immortali
• Gli uomini non sono dei
• Gli uomini sono mortali
I due sillogismi precedenti sono errati: la conclusione non deriva logicamente
dalle premesse
} Obiettivi di questa parte:
- presentare la logica proposizionale, una (piccola) parte della logica
- presentare in modo formale i concetti di prova cosı̀ come si utilizzano nella
logica proposizionale
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Cosa è una dimostrazione, una prova astuta
} Cosa è un teorema in matematica?
Teorema di Pitagora: Se a, b, c sono lati di un triangolo rettangolo allora
a2 + b 2 = c 2
Familiare? SI Ovvio? No
- 4 triangoli rettangoli con cateti lunghi a e b e un quadrato di lato b
a
!
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Cosa è una dimostrazione, una prova astuta
} Teorema di Pitagora: Se a, b, c sono lati di un triangolo rettangolo allora
a2 + b 2 = c 2
- 4 triangoli rettangoli con cateti lunghi a e b e un quadrato con lato lungo
b a hanno area complessiva pari a c2
!
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Cosa è una dimostrazione, una prova astuta-2
} Teorema di Pitagora: Se a, b, c sono lati di un triangolo rettangolo allora
a2 + b 2 = c 2
- 4 triangoli rettangoli con cateti lunghi a e b e un quadrato con lato lungo
a hanno area complessiva pari a a2 + b2. Quindi c2 = a2 + b2!
!
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Una dimostrazione sbagliata
} Consideriamo la seguente sequenza di uguaglianze:
1=
p
r
r
r
r
1 = ( 1)( 1) = ( 1) ( 1) = ( ( 1))2 =
1
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Conseguenze di una dimostrazione sbagliata
} Consideriamo la seguente sequenza di uguaglianze:
1=
p
r
r
r
r
1 = ( 1)( 1) = ( 1) ( 1) = ( ( 1))2 =
1
} Dopo aver dimostrato che 1 = 1 otteniamo anche
• 12 = 12 (moltiplica per 12 i membri della uguagl. precedente)
• 2 = 1 (somma 32 ad ambedue i termini dell’uguagl. precedente)
} Conseguenze di 2 = 1
Dato che io e il Papa siamo chiaramente 2 possiamo concludere che io e il
Papa siamo 1, cioè io e il Papa siamo la stessa persona ed io sono il Papa!
[Bertrand Russel]
} Morale:
Le conseguenze di una prova sbagliata possono essere paradossali
perché una prova errata permette di fare a↵ermazioni chiaramente errate!
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Logica: Motivazioni
} La LOGICA è la disciplina che studia le condizioni di correttezza del
ragionamento
} Occorre dire, anzitutto, quale oggetto riguardi ed a quale disciplina spetti
la presente indagine, che essa cioè
cio riguarda la dimostrazione e spetta alla
scienza dimostrativa: in seguito, bisogna precisare cosa sia la premessa, cosa
sia il termine, cosa sia il sillogismo... [Aristotele]
} Noi ci limiteremo alla Logica Proposizionale
Nota anche come Calcolo Proposizionale ci permette di ragionare sulla verità
di semplici proposizioni
} Obiettivo
• Formalizzare i nostri ragionamenti (limitandoci alle proposizioni)
• Esaminare le regole che ci permettono di stabilire la verità o la falsità di
una a↵ermazione
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Logica e informatica
} Nel XIX secolo sono state in matematica sono state proposte notazioni
matematiche (algebriche) per trattare le operazioni della logica (George
Boole)
} Questo ha consentito, negli anni 1900-1930, di applicare la logica ai
fondamenti della matematica, arrivando a interessanti controversie e a capire
i limiti della matematica (Frege, Russel, Godel ed altri)
} In matematica, la logica è usata principalmente per esprimere asserti in
modo non ambiguo
} La logica matematica ha profondi legami con linformatica (ed in particolare nella programmazione e in intelligenza artificiale )
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Logica proposizionale
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
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 . . .)
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Logica proposizionale: Alfabeto
} Linguaggio matematico per ragionare sulla verità o falsità di proposizioni
• 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 (detti anche operatori) proposizionali ¬ (unario), ^ e _ (binari);
• I simboli separatori ‘(’ e ‘)’.
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
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 (↵, , . . . ).
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
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
0
1
0
↵^
1
0
0
0
operatore "not", o
negazione (logica)
operatore "and", o
congiunzione (logica)
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
↵
1
Op_: 1
0
0
1
0
1
0
↵_
1
1
1
0
operatore "or", o
disgiunzione (logica)
} Le operazioni ^ e _ sono commutative e associative. Infatti è facile
mostrare che per ogni assegnazione ai simboli proposizionali ↵, , abbiamo
che
↵^
↵_
e
(↵ ^
(↵ _
=
=
)^
)_
^↵
_ ↵_
=↵^( ^ )
=↵_( _ )
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Semantica: Valutazione booleana
} 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)
IV (>)
IV (?)
IV (¬↵)
IV (↵ ^ )
IV (↵ _ )
=
=
=
=
=
=
V(A) se A 2 A;
1;
0;
Op¬(IV (↵));
Op^(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).
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Esempio
} Tre amici, Antonio, Bruno e Carla, sono incerti se andare in pizzeria.
Introduciamo tre proposizioni:
A : Antonio va in pizzeria, B: Bruno va in pizzeria, C: Carla va in pizzeria
} Il giorno dopo sappiamo che:
Antonio non va in pizzeria, Bruno va in pizzeria, Carla va in pizzeria
Formalmente abbiamo la valutazione V: A = 0, B = 1, C = 1
assegnazione
} Data V valutiamo le formule
↵: Tutti e tre sono andati in pizzeria
: Almeno due sono andati in pizzeria
↵=A^B^C
= (A ^ B) _ (A ^ C) _ (B ^ C)
Applicando le regole mostrare che IV (↵) = 0 e che IV ( ) = 1
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
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 .
alcuna
Una formula ↵ è una tautologia se e solo se ¬↵ è una contraddizione.
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Esempi
} ↵ = A _ (¬A) è una tautologia
A ¬A A _ ¬A
1 0
1
0 1
1
}
= A ^ (¬A) è una contraddizione
A ¬A A ^ ¬A
1 0
0
0 1
0
} Con riferimento all’esempio precedente dei tre amici in pizzeria: la formula
A ^ B ^ C è soddisfacibile (ma non è una tautologia)
Infatti la formula è vera quando tutti e tre vanno in pizzeria, cioè per la
assegnazione
valutazione V per cui A = B = C = 1 abbiamo IV (A ^ B ^ C) = 1.
Inoltre per ogni altra valutazione V 0, V 0 6= V abbiamo che IV 0 (A^B^C) = 0
assegnazione
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Equivalenza logica
Definizioni:
} ↵ implica logicamente (denotato ↵ ) ) se e solo se per ogni valutazione booleana IV , ogniqualvolta IV (↵) = 1 anche IV ( ) = 1.
} Esercizio: ↵ implica logicamente (denotato ↵ ) ) se e solo ↵ !
è una tautologia
sposta a dopo def. implicazione
} ↵ e sono logicamente equivalenti o tautologicamente equivalenti (denotato ↵ ⌘ ) se e solo se IV (↵) = IV ( ) per ogni valutazione booleana
IV .
} Esercizio: ↵ e sono logicamente equivalenti o tautologicamente equivalenti (denotato ↵ ⌘ ) se e solo
↵ implica logicamente e implica logicamente ↵
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
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
0
1
0
↵!
1
0
1
1
operatore di "implicazione"
} NOTA: Nel caso in cui l’antecedente (↵) dell’implicazione sia falso,
l’implicazione è vera.
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
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
0
1
0
↵$
1
0
0
1
operatore di "co-implicazione", o
"equivalenza"
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Definibilità di connettivi
Dato un insieme di connettivi C e un connettivo c 62 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 . verificare notazione
Esempio:
Il connettivo ^ si può definire in termini di {¬, _} nel seguente modo:
(↵ ^ ) ⌘ ¬(¬↵ _ ¬ ). Infatti si può facilmente verificare che per ogni
valore di ↵ e le due funzioni ↵ ^ e ¬(¬↵ _ ¬ ) hanno lo stesso valore.
↵
1
1
0
0
1
0
1
0
¬↵
0
0
1
1
¬ ¬↵ _ ¬
0
0
1
1
0
1
1
1
¬(¬↵ _ ¬ ) ↵ ^
1
1
0
0
0
0
0
0
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Definibilità di connettivi: esempi
(↵ ! )
(↵ _ )
(↵ _ )
(↵ ^ )
(↵ ^ )
¬↵
?
(↵ $ )
⌘
⌘
⌘
⌘
⌘
⌘
⌘
⌘
(¬↵ _ )
(¬↵ ! )
¬(¬↵ ^ ¬ )
¬(¬↵ _ ¬ )
(((↵ ! ?) ! ?) ! ( ! ?)) ! ?
↵!?
↵ ^ ¬↵
(↵ ! ) ^ ( ! ↵)
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Precedenza operatori
} la massima precedenza a ¬, poi, nell’ordine, ai connettivi ^,_, !, $.
} Esempi
La formula ¬↵ ^ ¬
viene parentetizzata come
La formula ↵ ^ _
viene parentetizzata come
La formula ¬↵ ^ ¬ !
viene parentetizzata come
La formula ¬↵ ^ (¬ !
viene parentetizzata come
((¬↵) ^ (¬ )).
((↵ ^ ) _ ).
^ ^✏
(((¬↵) ^ (¬ )) ! ( ^ ( ^ ✏))).
)^ ^✏
((¬↵) ^ ((¬ ) ! ) ^ ( ^ ✏)).
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Leggi 1
La definizione dei connettivi implica diverse equivalenze logiche che sono
valide per ogni formula ↵ e
1. Idempotenza:
↵^↵ ⌘ ↵
↵_↵ ⌘ ↵
2. Associatività:
↵ ^ ( ^ ) ⌘ (↵ ^ ) ^
↵ _ ( _ ) ⌘ (↵ _ ) _
↵ $ ( $ ) ⌘ (↵ $ ) $
3. Commutatività:
↵^
↵_
↵$
⌘
⌘
⌘
^↵
_↵
$↵
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Leggi 2
1. Distributività:
↵ ^ ( _ ) ⌘ (↵ ^ ) _ (↵ ^ )
↵ _ ( ^ ) ⌘ (↵ _ ) ^ (↵ _ )
2. Assorbimento:
↵ ^ (↵ _ ) ⌘ ↵
↵ _ (↵ ^ ) ⌘ ↵
3. Doppia negazione:
¬¬↵ ⌘ ↵
4. Leggi di De Morgan:
¬(↵ ^ ) ⌘ ¬↵ _ ¬
¬(↵ _ ) ⌘ ¬↵ ^ ¬
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Leggi 3
1. Terzo escluso:
↵ _ ¬↵ ⌘ >
2. Contrapposizione:
↵!
⌘ ¬ ! ¬↵
3. Contraddizione:
↵ ^ ¬↵ ⌘ ?.
} Queste leggi si possono verificare costruendo una tabella di verità e verificare che per ogni valore delle variabili otteniamo i valori delle due funzioni
a destra e a sinistra di ⌘ sono uguali
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
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 è
assegnazione
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.
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
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↵.
} Teorema: L’insieme {¬, ^, _} è completo.
Prova: in due passi
1. Usando ¬ e ^ si può dimostrare come realizzare una funzione di n variabili
che è sempre falsa tranne per un singola assegnazione di valori di verità .
2. Data una funzione f che è 1 per k diversi valori di verità (V 1, V 2, ..., V k ),
utilizzando il passo 1 precedente per ogni i, i = 1, 2, ..k si definisce la
funzione fi che è 1 per V i ed è sempre 0 altrimenti. La funzione f è data
da: f1 _ f2 _ ... _ fk .
Esercizi:
Mostrare che gli insiemi {¬, ^}, {¬, _} , {nand} e {nor} sono completi.
Sugg. Il teorema precedente a↵erma che {¬, ^, _} è completo. Pertanto è
sufficiente mostrare come realizzare l’insieme di operatori {¬, ^, _}
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Esempio 1
} Tre amici, Antonio, Bruno e Corrado, sono incerti se andare in pizzeria.
Introduciamo tre proposizioni:
A : Antonio va in pizzeria, B: Bruno va in pizzeria, C: Carla va in pizzeria
(A è 1 se Anotnio va in pizzeria, 0 altrimenti)
} Si sa che:
Se Carla va in pizzeria, allora ci va anche Antonio:
C!A
e
Se Antonio va in pizzeria allora ci va anche Bruno:
A!B
Formalmente abbiamo la formula: (C ! A) ^ (A ! B)
} Consideriamo ora le asserzioni
1. Tutti e tre vanno in pizzeria: equivale a ↵ = A ^ B ^ C
2. Se Carla va in pizzeria anche Bruno va in pizzeria: = C ! B
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Esempio 1
} Domanda 1:
Sapere che se Carla va in pizzeria ci va anche Antonio e che se Antonio va
in pizzeria ci va anche Bruno, è sufficiente per a↵ermare che
Tutti e tre vanno in pizzeria?
Formalmente ci chiediamo se (C ! A) ^ (A ! B) implica logicamente
A^B^C
} Risposta: No
(C ! A) ^ (A ! B) NON implica logicamente A ^ B ^ C. Infatti
Consideriamo V per cui A = B = C = 0
Con questa assegnazione (C ! A) ^ (A ! B) è soddisfatta. Infatti
IV (C ! A) = 1 (infatti se C = 0 l’implicazione C ! A è vera)
analogamente IV (A ! B) = 1
Quindi IV ((C ! A) ^ (A ! B)) = 1
Poiché IV (A ^ B ^ C) = 0 concludiamo che (C ! A) ^ (A ! B) NON
implica logicamente A ^ B ^ C
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Esempio 1, cont.
} Dimostrare che (C ! A) ^ (A ! B) implica logicamente A ^ B ^ C
equivale a dimostrare che la seguente formula è una tautologia
[(C ! A) ^ (A ! B)] ! (A ^ B ^ C) (*)
} La formula (*) è soddisfacibile ma non è una tautologia.
Infatti abbiamo visto che la valutazione V per cui A = B = C = 0 soddisfa
(C ! A) ^ (A ! B) è ma (A ^ B ^ C) non è soddisfatta.
} Se consideriamo V 0 per cui A = B = C = 1 possiamo verificare che la
formula (*) è soddisfatta.
Infatti è sufficiente osservare che A ^ B ^ C è soddisfatta e, quindi, anche
IV 0 [((C ! A) ^ (A ! B)) ! (A ^ B ^ C)] = 1
} In conclusione possiamo a↵ermare che
Sapere che se Carla va in pizzeria ci va anche Antonio e che se Antonio va
in pizzeria ci va anche Bruno, non implica logicamente che tutti e tre siano
andati in pizzeria, ma possiamo dire che è possibile che tutti e tre siano
andati in pizzeria
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Esempio 2
} Domanda 2:
sapere che se Carla va in pizzeria ci va anche Antonio e che se Antonio va
in pizzeria ci va anche Bruno, è sufficiente per a↵ermare che
Se Carla è andata in pizzeria anche Bruno è andato in pizzeria?
Formalmente ci chiediamo se (C ! A) ^ (A ! B) implica logicamente
C!B
} Risposta: SI
A questo scopo possiamo ricostruire una tabella che verifica il valore della
formula per tutte le possbili assegnazioni di valori ad A, B e C. In questo
modo dobbiamo verificare che la formula sia vera per 23 = 8 possibili valori
di verità .
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
A
0
1
0
1
0
1
0
1
B
0
0
1
1
0
0
1
1
C C ! A A ! B (C ! A) ^ (A ! B) C ! B
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
E’ facile vedere che ogni qualvolta IV (C ! B)= 1) abbiamo che
IV((C ! A) ^ (A ! B))= 1
scambia
Si noti inoltre che quando IV (C ! A) ^ (A ! B) = 0 allora IV (C ! B )
può essere 1 o 0
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Esempio, cont. 2
} Possiamo pertanto rispondere alla Domanda 2:
sapere che se Carla va in pizzeria ci va anche Antonio e che se Antonio va
in pizzeria ci va anche Bruno, è logicamente equivalente a suff. per
affermare che
Se Carla è andata in pizzeria anche Bruno è andato in pizzeria
} Abbiamo visto che (C ! A) ^ (A ! B) implica logicamente C ! B
Questa proprietà è nota come transitività dell’implicazione
} Si noti la somiglianza con il sillogismo su Socrate
• Se A implica B
• e B implica C
• allora possiamo a↵ermare che A implica C
Nota: La di↵erenza è che nel caso del sillogismo su Socrate la prima a↵ermazione non è una formula atomica ma riguarda un insieme di atomi (Tutti
gli uomini sono mortali)
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela
Esempio 2, cont.
} Possiamo pertanto rispondere alla Domanda 2: 3
sapere che se Carla va in pizzeria ci va anche Antonio e che se Antonio va
in pizzeria ci va anche Bruno, è è logicamente equivalente a
Se Carla è andata in pizzeria anche Bruno è andato in pizzeria ?
} Dobbiamo dimostrare se (C ! A) ^ (A ! B) ⌘ (C ! B)
Abbiamo visto che (C ! A) ^ (A ! B) ) C ! B
L’equivalenza è vera se vale anche la seguente implicazione
(C ! B) ) ((C ! A) ^ (A ! B))
Consideriamo V = (A = 1, B = 0, C = 0).
Abbiamo IV (C ! B) = 1, ma IV (A ! B) = 0. Quindi
(C ! B) non implica logicamente ((C ! A) ^ (A ! B))
Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela