You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Complessità<br />
La procedura sopra descritta è esponenziale nella dimensione <strong>del</strong>la formula (o<br />
meglio nel numero dei simboli di proposizione distinti che occorrono in essa).<br />
Si può fare di meglio?<br />
È possibile trovare algoritmi polinomiali per T AUT e SAT ?<br />
Si può dimostrare che<br />
• SAT è NP-Completo<br />
• T AUT è CoNP-completo<br />
M. Lenzerini Richiami di logica 18<br />
<strong>Logica</strong> <strong>del</strong> <strong>primo</strong> <strong>ordine</strong><br />
In logica proposizionale il mondo è rappresentato da un insieme di fatti<br />
elementari.<br />
La logica <strong>del</strong> <strong>primo</strong> <strong>ordine</strong> assume che nel mondo vi siano:<br />
• Oggetti: persone, case, numeri, teorie, colori, partite, aula1, ...<br />
• Predicati o relazioni: rosso, <strong>primo</strong>, corrotto. . .,<br />
fratello di, più grande di, dentro a, parte di, accaduto dopo di, possiede,<br />
precede, ...<br />
• Funzioni: padre di, secondo tempo di, inizio di ...<br />
M. Lenzerini Richiami di logica 19
Il linguaggio: i simboli logici<br />
Un linguaggio <strong>del</strong> <strong>primo</strong> <strong>ordine</strong> L1 è costruito sui seguenti insiemi di simboli:<br />
Simboli Logici<br />
• I connettivi proposizionali: ¬,∧,∨, → e ↔<br />
• Le costanti proposizionali ⊤ e ⊥<br />
• Il simbolo di uguaglianza =, eventualmente assente<br />
• I simboli separatori ‘(’, ‘)’ e ‘,’<br />
• Un’infinità numerabile di simboli di variabile individuale x1, x2, ...<br />
• Il simbolo di quantificazione universale ∀<br />
• Il simbolo di quantificazione esistenziale ∃<br />
M. Lenzerini Richiami di logica 20<br />
Parametri<br />
Il linguaggio: i parametri<br />
• Un insieme finito o numerabile di simboli di predicato, ognuno dei quali ha<br />
associato un intero positivo n detto arità. Un predicato di arità n è detto<br />
n-ario;<br />
• Un insieme finito o numerabile di simboli di funzione, ognuno dei quali ha<br />
associato un intero positivo detto arità. Una funzione di arità n è detta<br />
n-aria;<br />
• Un insieme finito o numerabile di simboli di costante, ciascuno dei quali può<br />
essere considerato un simbolo di funzione di arità 0.<br />
M. Lenzerini Richiami di logica 21
Il linguaggio puro dei predicati:<br />
Uguaglianza: assente;<br />
Esempi – 1<br />
Simboli di predicato n-ari: P n<br />
1 ,Pn<br />
2 ,...;<br />
Simboli di costante: c1,c2,...;<br />
Simboli di funzione n-ari, n>0: nessuno.<br />
Il linguaggio <strong>del</strong>la teoria degli insiemi:<br />
Uguaglianza: presente;<br />
Simboli di predicato: un simbolo di predicato binario ∈;<br />
Simboli di costante: ∅;<br />
Simboli di funzione n-ari, n>0: nessuno.<br />
M. Lenzerini Richiami di logica 22<br />
Esempi – 2<br />
Il linguaggio <strong>del</strong>la teoria elementare dei numeri:<br />
Uguaglianza: presente;<br />
Simboli di predicato: un simbolo di predicato binario
Esempi di formule ben formate<br />
Alcuni medici sono arroganti<br />
Tutti gli operai faticano<br />
a) ∃x(Medico(x) ∧ Arrogante(x))<br />
b) ∀x(Operaio(x) → F atica(x))<br />
Tutti i pasticcieri sanno fare la pasta frolla<br />
Tutti i cuochi eccellono in almeno un piatto<br />
c) ∀x(P asticciere(x) → SaF are(x, pastafrolla))<br />
d) ∀x(Cuoco(x) →∃y(P iatto(y) ∧ Eccelle(x, y)))<br />
M. Lenzerini Richiami di logica 24<br />
Termini<br />
L’insieme Term dei termini di L1 è definito induttivamente come segue:<br />
1. Ogni simbolo di costante e di variabile è un termine;<br />
2. Se t1 ...tn sono termini e f è un simbolo di funzione n-aria, allora<br />
f(t1,...,tn) è un termine (detto termine funzionale).<br />
Esempi: x, c, f(x, y + c),. . .<br />
M. Lenzerini Richiami di logica 25
Formule atomiche<br />
L’insieme Atom degli atomi o formule atomiche è definito induttivamente come<br />
segue:<br />
1. ⊥ e ⊤ sono atomi;<br />
2. Se t1 e t2 sono termini, allora t1 = t2 è un atomo;<br />
3. Se t1,...,tn sono termini e P è un simbolo di predicato n-ario, allora<br />
P (t1,...,tn) è un atomo.<br />
Esempi: P (x), Q(x, c), R(x, f(x, y + c)),. . .<br />
M. Lenzerini Richiami di logica 26<br />
Termini:<br />
Esempi di termini e formule atomiche<br />
casaDi(Giovanni) batteriaDi(Miapolo)<br />
autoreDi(Divinacommedia)<br />
x + (2 × y) f(x, y, g(z, t + 3)) e −x<br />
Atomi:<br />
Grande(casaDi(Giovanni))<br />
P iuGrande(casaDi(Giovanni), casaDi(F ilippo))<br />
Scarica(batteriaDi(Miapolo))<br />
autoreDi(Divinacommedia) =P etrarca<br />
autoreDi(Divinacommedia) =Dante<br />
x + (2 × y) = 0 f(x, y, g(z, t + 3)) = f(x, y, w) e −x ≥ 0<br />
M. Lenzerini Richiami di logica 27
Formule<br />
L’insieme Form <strong>del</strong>le formule di L1 è definito induttivamente come segue:<br />
• Ogni atomo è una formula;<br />
• Se A è una formula, allora ¬A è una formula;<br />
• Se ◦ è un connettivo binario proposizionale, e A e B sono due formule,<br />
allora A ◦ B è una formula;<br />
• Se A è una formula, e x è una variabile, allora ∀xA e ∃xA sono formule.<br />
Esempi: P (x), ∃xQ(x, c), ∀zR(x, f(x, y + c)),. . .<br />
M. Lenzerini Richiami di logica 28<br />
Esempi di formule<br />
Grande(casaDi(Giovanni)) ∧<br />
P iuGrande(casaDi(Giovanni), casaDi(F ilippo))<br />
∀t Scarica(batteriaDi(Miapolo),t)<br />
∃x x= autoreDi(Divinacommedia) ∧ NatoA(F irenze, x)<br />
∀x x+ (2 × y) = 0 ¬(f(x, y, g(z, t + 3)) = f(x, y, w))<br />
∀x∃y ama(x, y) tutti amano qualcuno<br />
∀x∃y ama(y, x) tutti sono amati da qualcuno<br />
∃x∀y ama(x, y) esiste il grande amatore<br />
∃x∀y ama(y, x) qualcuno è amato da tutti<br />
M. Lenzerini Richiami di logica 29
Precedenza degli operatori<br />
La precedenza tra gli operatori logici è stabilita come segue:<br />
∀, ∃, ¬, ∧, ∨, →, ↔<br />
Come nel caso proposizionale, si assume che tutti gli operatori siano associativi<br />
a destra, e che si possa sempre scrivere una formula tra parentesi.<br />
Due modi di scrivere la stessa formula:<br />
∀xP (x) →∃y∃zQ(y, z) ∧ ¬∀xR(x)<br />
(∀x(P (x)) → ((∃y(∃zQ(y, z))) ∧ (¬(∀x(R(x)))))<br />
M. Lenzerini Richiami di logica 30<br />
Varianti di notazione<br />
Elemento di sintassi Noi Altri<br />
Negazione (not) ¬P ∼P P<br />
Congiunzione (and) P ∧ Q P &Q P · Q P Q P, Q<br />
Disgiunzione (or) P ∨ Q P | Q P; Q P + Q<br />
Implicazione (se) P → Q P ⊃ Q<br />
Universale (perOgni) ∀ xP (x) (∀x)P (x) xP(x)<br />
Esistenziale (esiste) ∃ xP (x) (∃x)P (x) xP(x)<br />
Relazione R(x, y) (R x y) Rxy xRy<br />
M. Lenzerini Richiami di logica 31
Variabili in termini e formule atomiche<br />
Denotiamo con var(t) l’insieme <strong>del</strong>le variabili di un termine t.<br />
Un termine od un atomo w si dice chiuso – ground – se non contiene variabili,<br />
cioè se var(w) =∅.<br />
Una occorrenza di una variabile x in una formula, si dice libera se non è nel<br />
campo di azione di un quantificatore, si dice vincolata o legata se non è libera.<br />
Esempi:<br />
P (x), ∃xQ(x, c), ∀zR(x, f(x, y + c)), ∀zR(x, f(x, y + c)) ∧ P (z),<br />
∀zR(x, f(x, y + c)) ∧∃zP(z), ∀z(R(x, f(x, y + c)) ∧ P (z))...<br />
Un enunciato – detto altrimenti formula chiusa – è una formula senza<br />
occorrenze libere di variabili.<br />
M. Lenzerini Richiami di logica 32<br />
Interpretazioni e mo<strong>del</strong>li<br />
Una interpretazione (o struttura) per il linguaggio L1 è una coppia M<br />
= 〈D, I〉 dove:<br />
• D è un insieme non vuoto chiamato dominio di M;<br />
• I è una funzione chiamata funzione d’interpretazione di M che associa:<br />
– ad ogni simbolo di costante c, un elemento c I ∈ D;<br />
– ad ogni simbolo di funzione n-aria f, una funzione f I : D n ↦→ D;<br />
– ad ogni simbolo di predicato n-ario P , una relazione n-aria P I ⊆ D n .<br />
M. Lenzerini Richiami di logica 33
Esempi<br />
∀x∃yP(x, y)<br />
D l’insieme degli esseri umani<br />
P I = l’insieme <strong>del</strong>le coppie 〈A, B〉, tale che B è padre di A<br />
Tutti gli esseri umani hanno un padre<br />
D l’insieme degli esseri umani<br />
P I′ l’insieme <strong>del</strong>le coppie 〈A, B〉, tale che B è madre di A<br />
Tutti gli esseri umani hanno una madre<br />
D l’insieme dei numeri naturali<br />
P J l’insieme <strong>del</strong>le coppie 〈m, n〉, tale che m < n<br />
Per ogni numero naturale ne esiste uno maggiore<br />
M. Lenzerini Richiami di logica 34<br />
Assegnazione a variabili in una interpretazione<br />
Sia V ar l’insieme <strong>del</strong>le variabili di un linguaggio <strong>del</strong> <strong>primo</strong> <strong>ordine</strong> L1. Una<br />
assegnazione, oambiente, ostato <strong>del</strong>le variabili η per una interpretazione<br />
M = 〈D, I〉 è una funzione dall’insieme <strong>del</strong>le variabili V ar all’insieme D:<br />
η : V ar ↦→ D<br />
Un’assegnazione η per M rappresenta quindi un modo di associare un<br />
elemento di D (il dominio di M) alle variabili <strong>del</strong> linguaggio L1.<br />
Consideriamo nel seguito solo formule chiuse. Inoltre, se x è una variabile,<br />
scriveremo x η invece di η(x).<br />
M. Lenzerini Richiami di logica 35
Assegnazione a termini in una interpretazione<br />
Sia M = 〈D, I〉 una interpretazione per L1 e sia η una assegnazione per M.<br />
Estendiamo η ad una assegnazione η = 〈I,η〉 sui termini, ricorsivamente come<br />
segue:<br />
• per ogni variabile x, x I,η = x η ;<br />
• per ogni costante c, c I,η = c I ;<br />
• se t1,...,tn sono termini ed f è una funzione n-aria, allora<br />
f(t1,...,tn) I,η = f I (t I,η<br />
1 ,...,tI,η<br />
n ).<br />
Un’assegnazione η associa quindi un elemento <strong>del</strong> dominio ad ogni termine <strong>del</strong><br />
linguaggio L1, in modo coerente con η.<br />
M. Lenzerini Richiami di logica 36<br />
Valutazione di formule<br />
Data una interpretazione M = 〈D, I〉 ed una assegnazione η per M, è<br />
possibile valutare ogni formula <strong>del</strong> <strong>primo</strong> <strong>ordine</strong> rispetto ad M ed η, dove la<br />
valutazione di una formula restituisce o 1 o 0.<br />
Diremo che una formula F è vera o soddisfatta in una intepretazione<br />
M = 〈D, I〉 ed una assegnazione η per M, e scriveremo<br />
〈M, η〉 |= F<br />
se la valutazione di F rispetto ad M ed η restituisce 1.<br />
M. Lenzerini Richiami di logica 37
Valutazione di formule<br />
Sia M = 〈D, I〉 una interpretazione ed η una assegnazione per M.<br />
1. 〈M, η〉 |= ⊤ e 〈M, η〉 |= ⊥<br />
2. Se F è una formula atomica <strong>del</strong> tipo P (t1,...,tn), allora<br />
〈M, η〉 |= P (t1,...,tn) se 〈t I,η<br />
1 ...t I,η<br />
n<br />
3. se F è una formula atomica <strong>del</strong> tipo t1 = t2 allora<br />
〈M, η〉 |= t1 = t2 se t I,η<br />
1<br />
4. 〈M, η〉 |= ¬F se 〈M, η〉 |= F<br />
= tI,η<br />
2<br />
5. 〈M, η〉 |= F ∧ G se 〈M, η〉 |= F e 〈M, η〉 |= G<br />
〉∈P I<br />
6. 〈M, η〉 |= F ∨ G se 〈M, η〉 |= F oppure 〈M, η〉 |= G<br />
M. Lenzerini Richiami di logica 38<br />
Valutazione di formule<br />
7. 〈M, η〉 |= (F → G) se 〈M, η〉 |= ¬F oppure 〈M, η〉 |= G<br />
8. 〈M, η〉 |= (F ↔ G) se (M, η) |= F → G e (M, η) |= G → F<br />
9. 〈M, η〉 |= ∀xF se per ogni d ∈ D si ha 〈M, η{x = d}〉 |= F<br />
10. 〈M, η〉 |= ∃xF se esiste d ∈ D tale che 〈M, η{x = d}〉 |= F<br />
dove<br />
η{x = d}<br />
denota l’assegnazione η ′ per M che coincide con η tranne che η ′ assegna ad x<br />
il valore d (indipendentemente da quello che η assegna a x). In altre parole,<br />
l’assegnazione η{x = d}, che si può anche scrivere come η[d/x], è definita così:<br />
⎧<br />
⎨ d se y = x<br />
η[d/x](y) =<br />
⎩ yη se y = x<br />
M. Lenzerini Richiami di logica 39
Valutazione di formule<br />
Si noti che se F è una formula chiusa, qualunque siano η1 ed η2, si ha che<br />
〈M, η1〉 |= F se e solo se 〈M, η2〉 |= F , se e solo se 〈M, ∅〉 |= F .<br />
Ne segue che se F è una formula chiusa, la valutazione di F è indipendente<br />
dall’assegnazione η.<br />
Nel seguito, scriveremo semplicemente M|= F nel caso in cui 〈M, ∅〉 |= F .<br />
M. Lenzerini Richiami di logica 40<br />
1. ∃x(P (x) ∧ Q(x))<br />
2. ∃x(P (x) → Q(x))<br />
Esempi – 1<br />
1. La formula è soddisfatta in M se esiste un d ∈ D per il quale è verificato<br />
che 〈M, η[d/x]〉 |= (P (x) ∧ Q(x)), ovvero se esiste un d ∈ D tale che<br />
d ∈ P I ∩ Q I . Quindi i sottoinsiemi di D associati da I a P e Q,<br />
rispettivamente, sono non vuoti ed hanno intersezione non vuota.<br />
2. La formula è soddisfatta in M se esiste un d ∈ D per il quale è verificato<br />
che 〈M, η[d/x]〉 |= (P (x) → Q(x)), ovvero se esiste un d ∈ D tale che<br />
d ∈ P I oppure d ∈ Q I .<br />
Si noti che se I associa a P il sottoinsieme vuoto di D, allora la formula<br />
∃x(P (x) → Q(x)) è resa vera addirittura da tutti gli elementi <strong>del</strong><br />
dominio.<br />
M. Lenzerini Richiami di logica 41
3. ∀x(P (x) ∧ Q(x))<br />
4. ∀x(P (x) → Q(x))<br />
Esempi – 2<br />
3. Sia P che Q hanno un’estensione non vuota, anzi entrambe coincidono con<br />
l’intero dominio D.<br />
4. L’estensione di P è contenuta in quella di Q, ma non si esclude affatto il<br />
caso in cui l’estensione di P sia vuota, né che entrambi P e Q abbiano<br />
un’estensione vuota.<br />
M. Lenzerini Richiami di logica 42<br />
Mo<strong>del</strong>li, validità, soddisfacibilità<br />
Sia F è una formula chiusa. Se M|= F diciamo che M è un mo<strong>del</strong>lo di F ,<br />
ovvero che F è vera in M, ovvero che M soddisfa F .<br />
Una formula F chiusa è valida se è vera in tutte le interpretazione di L1 e lo<br />
scriviamo |= F .<br />
Una formula chiusa F è soddisfacibile se esiste una interpretazione M tale che<br />
M|= F , ovvero se esiste un mo<strong>del</strong>lo di F . Un insieme Γ di formule chiuse è<br />
soddisfacibile se esiste una interpretazione M, tale che M|= F per ogni<br />
F ∈ Γ.<br />
La validità e la soddisfacilità non possono essere verificate semplicemente<br />
costruendo la tabella di verità!<br />
M. Lenzerini Richiami di logica 43
Implicazione logica, equivalenza<br />
Sia Γ un insieme di formule e F una formula chiusa. Allora Γ implica<br />
logicamente F , scritto Γ |= F , se per ogni interpretazione M <strong>del</strong> linguaggio, se<br />
M|= Γ (ovvero M|= B per ogni B ∈ Γ), allora M|= F .<br />
Due formule F e G si dicono logicamente equivalenti (scritto F ≡ G) se per<br />
tutte le interpretazioni M si ha che:<br />
M|= F se e solo se M|= G.<br />
Ad esempio sono logicamente equivalenti formule che differiscono solo per<br />
• il nome <strong>del</strong>le variabili quantificate<br />
∀xP (x) ≡∀yP(y)<br />
• l’<strong>ordine</strong> di quantificatori <strong>del</strong>lo stesso tipo<br />
∀x∀yP(x, y) ≡∀y∀xP (x, y) ≡∀x, yP (x, y)<br />
• l’eliminazione di quantificatori che non hanno occorrenze <strong>del</strong>la variabile<br />
quantificata nel campo d’azione<br />
∀xP (y) ≡ P (y)<br />
M. Lenzerini Richiami di logica 44<br />
Negazione:<br />
1. ∀xP ≡ ¬∃x¬P<br />
2. ¬∀xP ≡∃x¬P<br />
3. ∃xP ≡ ¬∀x¬P<br />
4. ¬∃xP ≡∀x¬P<br />
Equivalenza logica: proprietà<br />
I quantificatori sono distributivi rispetto a ∧ e ∨, ma con restrizioni:<br />
1. ∀x(P1 ∧ P2) ≡∀xP1 ∧∀xP2<br />
2. ∃x(P1 ∨ P2) ≡∃xP1 ∨∃xP2<br />
3. ∀x(P1 ∨ P2) ≡∀xP1 ∨ P2 se x ∈ var(P2)<br />
4. ∃x(P1 ∧ P2) ≡∃xP1 ∧ P2 se x ∈ var(P2).<br />
Sia P2 una formula in cui x non occorre libera<br />
1. ∀xP1 → P2 ≡∃x(P1 → P2)<br />
2. ∃xP1 → P2 ≡∀x(P1 → P2)<br />
3. P2 →∀xP1 ≡∃x(P2 → P1)<br />
4. P2 →∃xP1 ≡∀x(P2 → P1).<br />
M. Lenzerini Richiami di logica 45
Esercizio<br />
Rappresentare in un linguaggio puro (senza uguaglianza e senza simboli di<br />
funzione) <strong>del</strong> <strong>primo</strong> <strong>ordine</strong> i seguenti enunciati:<br />
1 Se è vero che ogni avo di un avo di un individuo è anche avo <strong>del</strong>lo stesso<br />
individuo, allora deve esistere una persona che non ha avi<br />
2 Tutte le donne sono belle e qualche uomo è bello<br />
3 Il papà di Gennaro batte a scopone i papà di tutti i bambini <strong>del</strong> quartiere<br />
Santa Lucia<br />
M. Lenzerini Richiami di logica 46<br />
Esercizi<br />
Rappresentare in logica <strong>del</strong> <strong>primo</strong> <strong>ordine</strong> le frasi:<br />
(1d) A, B e C sono cubi.<br />
A è su B, B è su C.<br />
A è verde e C non è verde.<br />
Tutti i cubi sono colorati.<br />
Un cubo è libero se non ci sono cubi sopra.<br />
(2d) I calciatori di successo sono bravi e fortunati.<br />
Francesco non è bravo e Mario non è fortunato.<br />
Giovanni è fortunato ma non è bravo.<br />
I fortunati sono ricchi.<br />
(3d) I bravi alpinisti sono prudenti<br />
Se uno non è sempre attento non è prudente<br />
Giorgio è un bravo alpinista<br />
M. Lenzerini Richiami di logica 47
Esercizio<br />
Considerare il seguente insieme di formule Σ<br />
Verificare se<br />
1. ∀x(Canarino(x) → Uccello(x))<br />
2. ∀x(Struzzo(x) → Uccello(x))<br />
3. ∀x(P assero(x) → Uccello(x)<br />
4. ∀x(Uccello(x) ∧ ¬Eccezione(x) → V ola(x))<br />
5. Canarino(titti) ∧ Struzzo(fred) ∧ P assero(alfredo)<br />
1. Σ |= V ola(alfredo)<br />
2. Σ |= ¬V ola(titti)<br />
3 Σ |= ¬(V ola(titti) ∧ V ola(fred))<br />
Rappresentare i mo<strong>del</strong>li di Σ, usando come dominio<br />
A = 〈{alfredo, titti, fred}, V ola, Uccello, Canarino . . .〉.<br />
M. Lenzerini Richiami di logica 48<br />
Compattezza e altro<br />
Teorema di compattezza<br />
Un insieme di enunciati Γ è soddisfacibile se e solo ogni suo sottoinsieme finito è<br />
soddisfacibile, ovvero, un insieme Γ di enunciati è insoddisfacibile se e solo se<br />
esiste un sottoinsieme finito ∆ ⊆ Γ che è insoddisfacibile.<br />
Il seguente teorema lega le nozioni di implicazione logica e di insoddisfacibilità:<br />
Γ |= F se e solo se Γ ∪ {¬F } è insoddisfacibile.<br />
Ne segue la compattezza <strong>del</strong>l’implicazione logica: Γ |= F se e solo se esiste un<br />
sottoinsieme finito Γ0 di Γ, tale che Γ0 |= F .<br />
Il seguente teorema di deduzione lega le nozioni di implicazione logica e di<br />
implicazione materiale:<br />
Γ |= F se e solo se |= Γ → F.<br />
M. Lenzerini Richiami di logica 49
Indecidibilità <strong>del</strong>la logica <strong>del</strong> <strong>primo</strong> <strong>ordine</strong><br />
La soddisfacibilità e l’implicazione logica in logica <strong>del</strong> <strong>primo</strong> <strong>ordine</strong> sono<br />
indecidibili. Ciò significa che non può esistere alcuna procedura effettiva che,<br />
dato un qualunque insieme finito di formule di L1, decida se esso è<br />
soddisfacibile o no (analoga considerazione vale per l’implicazione logica).<br />
Ovviamente, questo non esclude che vi possano essere dei casi particolari che<br />
sono decidibili. Ad esempio, la logica proposizionale (che è un caso particolare<br />
<strong>del</strong> <strong>primo</strong> <strong>ordine</strong>) è decidibile). Un altro esempio è la logica monadica <strong>del</strong> <strong>primo</strong><br />
<strong>ordine</strong>, in cui si hanno solo predicati di arità 1, e non si hanno simboli di<br />
funzione.<br />
M. Lenzerini Richiami di logica 50