21.06.2013 Views

Complessit`a Logica del primo ordine

Complessit`a Logica del primo ordine

Complessit`a Logica del primo ordine

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!