Sei sulla pagina 1di 13

Logica I ordine

Logica del primo ordine


Antonella Santone

Nella logica proposizionale un atomo rappresenta una frase dichiarativa che pu essere vera o falsa Molte idee NON possono essere trattate in questo semplice modo Ragionamento Esempio: Ogni uomo mortale. Poich Confucio un uomo, allora mortale p: Ogni uomo mortale q: Confucio un uomo r: Confucio mortale Ragionamento corretto ma r non conseguenza logica di p e q Le strutture di p, q e r non vengono utilizzate nella logica proposizionale

p q r (pq)r F F F T F F T F T F F T T T F F T F T T T F T T T T T T T T F T

Sintassi
Insieme finito C di simboli di costante {c1, c2, , cn} Insieme finito V di simboli di variabile {X1, X2, , Xm} Insieme finito F di simboli di funzione {f1, f2, , fk} Insieme finito P di simboli di predicato {p1, p2, , pl} Connettivi: , , , , Quantificatori: , Parentesi: ( )

Costanti & Variabili


Costanti: singole entit del dominio Esempio: maria, giovanni (iniziale minuscola)

Variabili: entit non note del dominio (iniziale maiuscola) Esempio: X, Y

Funzioni & Predicati


Funzione n-aria: individua univocamente un oggetto del dominio del discorso mediante una relazione tra altri n oggetti del dominio Esempio: madre(maria) Costante: una funzione con ariet 0 Importante: le funzioni, in logica, non presuppongono alcun concetto di valutazione Predicato n-ario: generica relazione (che pu essere vera o falsa) fra n oggetti del dominio Esempio: parente(maria, luca)

Termine
Termine (definito ricorsivamente):
una variabile un termine una costante un termine se f un simbolo di funzione n-aria e t1,...,tn sono termini, allora f(t1,...,tn) un termine

Esempio: maria, f(X)

Atomo o formula atomica


Applicazione di un simbolo di predicato n-ario p a n termini t1,...,tn: p(t1,..,tn) Esempio: parente(giovanna,maria)

Formule ben formate (fbf) (fbf)


Frasi sintatticamente corrette. Sono definite ricorsivamente come segue: ogni atomo una fbf se A e B sono fbf, allora lo sono anche A, AB, AB, AB, AB, (A) se A una fbf e X una variabile, X A eX A sono fbf

Esempio di fbf e non


parente(giovanna, maria) X (uomo(X) felice(X)) X (uomo(X) mortale(X)) X (uomo(X) ) X (uomo(f(X) fbf fbf fbf No! No!

Regole di precedenza
Esempio a b X c(X) d(X,Y) equivalente a (a (( b) (X c(X))) ) d(X,Y) maggiore minore

Letterale
fbf atomica o la sua negazione Esempio: parente(maria, giovanni)

Forma normale prenessa disgiuntiva


disgiunzione di una o pi fbf composte da congiunzioni di letterali; le quantificazioni compaiono tutte in testa Esempio: a(Z) d) f X Y Z (a(X) b(Y,Z)) (c(X)

Forma normale prenessa congiuntiva


congiunzione di una o pi fbf composte da disgiunzioni di letterali; le quantificazioni compaiono tutte in testa Esempio X Y Z (a(X) b(Y,Z)) (c(X) a(Z) d) f

Forme normali
Qualunque fbf pu essere trasformata in forma normale prenessa (congiuntiva o disgiuntiva) attraverso opportune trasformazioni sintattiche

Campo dazione (scope)


scope di un quantificatore: fbf che lo segue immediatamente. Nel caso di ambiguit si utilizzano le parentesi tonde Esempio X (p(X,Y) q(X)) q(X) la quantificazione sulla variabile X ha come campo d'azione la formula p(X,Y) q(X)

Variabili libere / formule chiuse


Variabili libere: variabili che non compaiono all'interno del campo di azione di un quantificatore. Esempio X (p(X,Y) q(X)) Y libera in F Formule chiuse: fbf che non contengono alcuna variabile libera Esempio X (uomo(X) felice(X)) Considereremo solo formule fbf chiuse

Ground/varianti Ground/varianti
Formule ground: formule che non contengono variabili. Esempio:

Semantica
Logica proposizionale: una interpretazione un assegnamento di valori di verit ad atomi Logica del primo ordine: necessario fare di pi

parente(giovanna, maria)
Varianti: una formula F2, ottenuta rinominando le variabili di una formula F1, detta variante di F1 Esempio: X Y p(X,Y) variante di W Z p(W,Z)

Interpretazione
Uninterpretazione di una formula F nella logica del primo ordine costituita da un dominio D e da un assegnamento di valori ad ogni costante, simbolo di funzione e simbolo di predicato presente in F nel seguente modo: ad ogni costante si assegna un elemento in D; ad ogni simbolo di funzione n-aria si assegna una corrispondenza da Dn D; ad ogni simbolo di predicato n-ario si assegna una relazione in Dn, cio un sottoinsieme di Dn oppure una corrispondenza da Dn a {T,F}

Linguaggio del primo ordine: una costante 0; un simbolo di funzione unaria s; un simbolo di predicato binario p. Interpretazione I1
D: numeri naturali. 0 rappresenta il numero zero. s rappresenta il successore di un numero naturale p rappresenta la relazione binaria

Esempio

Interpretazione I2
D: numeri interi negativi 0 rappresenta il numero zero s rappresenta il predecessore di un numero naturale p rappresenta la relazione binaria

Valori di verit
Formula atomica ground: ha valore vero sotto un'interpretazione quando il corrispondente predicato soddisfatto; ha valore falso quando il corrispondente predicato non soddisfatto Esempio Interpretazione I1 p(0,s(0)) vero p(s(0), 0) falso Interpretazione I2 p(0,s(0)) falso p(s(0), 0) vero
I1 : D: numeri naturali. 0 rappresenta lo zero. s rappresenta il successore p rappresenta D: numeri interi negativi 0 rappresenta lo zero s rappresenta il predecessore p rappresenta

Valori di verit (cont.)


Formula composta il valore di verit di una formula composta rispetto a uninterpretazione si ottiene da quello delle sue componenti utilizzando le tavole di verit dei connettivi logici

I2:

Valori di verit (cont.)


Formula quantificata esistenzialmente X F vera in uninterpretazione I se esiste almeno un elemento d del dominio D tale che la formula F', ottenuta assegnando d alla variabile X, vera in I. In caso contrario F ha valore falso. Esempio I1 : D: numeri naturali. 0 rappresenta lo zero. X p(X,s(0)) s rappresenta il successore Interpretazione I1 p rappresenta
Vero: esiste zero, minore di uno

Valori di verit (cont.)


Formula quantificata universalmente X F vera in uninterpretazione I se per ogni elemento d del dominio D, la formula F', ottenuta da F sostituendo d alla variabile X, vera in I. Altrimenti F ha valore falso. Esempio I1 : D: numeri naturali. Y p(0,Y) 0 rappresenta lo zero. Interpretazione I1 s rappresenta il successore vero: 0 minore o uguale a ogni p rappresenta I2: D: numeri interi negativi intero positivo Y 0 rappresenta lo zero Interpretazione I2 s rappresenta il predecessore p rappresenta falso: non vero che 0 minore o uguale a 1

Interpretazione I2
Vero: esiste -2, minore di -1

I2:

D: numeri interi negativi 0 rappresenta lo zero s rappresenta il predecessore p rappresenta

Esercizio: G: X (p(X) q(f(X),a))


Interpretazione I: Dominio: D={1,2} Assegnamento per a: ------a ------1 ------Assegnamento per f: ----------------f(1) f(2) ----------------2 1 ----------------Assegnamento per p e q: ----------------------------------------------------------------------p(1) p(2) q(1,1) q(1,2) q(2,1) q(2,2) ---------------------------------------------------------------------F T T T F T

Esercizio (cont.)
Se X=1

X (p(X) q(f(X),a))

p(X) q(f(X),a)) = p(1) q(f(1),a)) = p(1) q(2,1) =FF=T

Se X=2

p(X) q(f(X),a)) = p(2) q(f(2),a)) = p(2) q(1,1) =TT=T

Nota
Importane lordine tra X Y ama(X,Y): Tutti amano qualcuno Y X ama(X,Y): C qualcuno che amato da tutti

Continuano a valere
Soddisfacibile Insoddisfacibile Valida Conseguenza logica Teorema 1 e Teorema 2

Problema interessante
Determinare se una formula F segue logicamente da utilizzando solo semplici trasformazioni sintattiche (regole di inferenza), possibilmente ripetitive e quindi automatizzabili, e non introducendo concetti quali significato o interpretazione o modello

La logica dei predicati del primo ordine pu essere formulata come sistema assiomatico-deduttivo Teoria assiomatica formule ben formate ritenute vere: assiomi criteri di manipolazione sintattica: regole di inferenza derivano fbf da fbf: condizioni -------------conclusione Scopo: produrre nuove formule sintatticamente corrette (teoremi)

Sistemi deduttivi

Regole
(AB) equivale a (A ( B)) (AB) equivale a ( A) B (A B) equivale a ((A B) (B A)) (X A) equivale a X A (X A) equivale X A

Regole (cont.)
X (p(X) q(X)) equivale a Xp(X) X q(X) X (p(X) q(X)) equivale a X p(X) X q(X) X (p(X) q(X)) NON equivale a X p(X) X q(X) X (p(X) q(X)) NON equivale a X p(X) X q(X) Esempio p= pari, q=dispari

Regole (cont.)
Modus Ponens (MP): A, A B B Specializzazione (Spec): X A(X) A(t)

Dimostrazioni di teoremi
Dimostrazione: sequenza finita di fbf f1, f2, ..., fn, tale che ciascuna fi o un assioma oppure ricavabile dalle fbf precedenti mediante una regola di inferenza Teorema: Lultima fbf di ogni dimostrazione Prova del teorema: sequenza di regole di inferenza applicate Una fbf F derivabile in una teoria T (T |- F) se esiste una sequenza di fbf f1, f2, ..., fn, tale che fn = F e, per ogni i, o fi un assioma di T, oppure ricavabile dalle fbf precedenti mediante una regola di inferenza di T

Esempio
Teoria T: relazione di sui numeri naturali A1: p(0,0) A2: X Y (p(X,Y) p(X,s(Y))) A3: X p(X,X) Teorema p(0,s(0))

Esempio

A1: p(0,0) A2: X Y (p(X,Y) p(X,s(Y))) A3: X p(X,X)

X Y (p(X,Y) p(X,s(Y))) Spec Y (p(0,Y) p(0,s(Y))) p(0,0) p(0,s(0))

Spec

MP usando A1

p(0,s(0))

Dal linguaggio naturale alla logica

Dal linguaggio naturale alla logica

connettivi si applicano a proposizioni e non a temimi; individui tramite costanti (es.: giacomo) oppure se sono innominati tramite funzioni (es.: sorella(maria)) nomi comuni (es.: casa) o aggettivi qualificativi (es.: rosso) vengono rappresentati medianti predicati (es.: casa(X), rosso(Y)); verbo essere, usato come copula, non viene generalmente rappresentato; verbi intransitivi (es.: corre, dorme) vengono rappresentati mediante predicati unari (es.: dorme (X)); verbi transitivi vengono tradotti come predicati binari (es.: mangia(giovanni, mela))

Esercizio
Luigi mangia pane e formaggio
mangia(luigi, pane formaggio) NO!!! mangia(luigi, pane) mangia(luigi, formaggio) and solo tra proposizioni

Esempi
Sara ama i gatti:
ama(sara, gatti) NO! X gatto(X) ama(sara, X)

esiste un cane nero


Se il dominio dellinterpretazione solo di cani: X nero(X) Se il dominio ha anche altri oggetti che non sono cani, devo aggiungere la propriet di essere cani: X (nero (X) cane(X)) Errore!: X (cane(X) nero (X)) e equivalente a X (nero (X) cane(X)) Tale formula vera in ogni dominio per cui c un oggetto nero o c un oggetto che non un cane

Tutti i corvi sono neri


Se il dominio dellinterpretazione (universo del discorso) e solo di corvi: X nero (X) Se il dominio ha anche altri oggetti che non sono corvi devo aggiungere la propriet di essere corvi: X (corvo (X) nero(X)) Diverso significato: X (corvo(X) nero (X)) equivalente X (nero (X)) X (corvo(X)) Tutti gli oggetti del dominio sono corvi e sono neri

Tutti i gatti sono mammiferi X (gatto(X) mammifero(X))

Non tutti i politici sono onesti


( X politico(X) onesto(X) ) o equivalentemente X politico(X) onesto(X)

Alcuni studenti sono bravissimi


X studente(X) bravissimo(X)
stesso modo per tradurre qualche studente e uno studente Nel linguaggio naturale: pluratilt e quantificazione indefinita: molti, solo alcuni, a maggior parte ecc. non vengono colte direttamente dai quantificatori della logica

Ambiguit
Tutti i filosofi leggono alcuni libri Tutti coloro che sono filosofi leggono un certo numero di libri, che non detto siano gli stessi per tutti: X filosofo(X) Y libro(Y) legge(X,Y) Esiste un certo numero di libri (es.: La Metafisica di Aristotele, La Critica alla Ragion Pura di Kant) che tutti coloro che sono filosofi leggono: Y libro(Y)filosofo(X)legge(X,Y)

Esercizio
Trasformare le seguenti frasi nella logica del I ordine: A Simone piacciono i corsi facili I corsi di ingegneria sono difficili Tutti i corsi di scienze sono facili MK08 un corso di scienze

Esercizio (soluzione)
X Y (corso(Y,X) facile (X) piace(simone,X) X (corso(ingegneria,X) facile(X) ) X (corso(scienze,X) facile(X) ) corso(scienze,mk08)

Esercizio
Si trasformino le seguenti frasi nella logica del I ordine: Tutti i cavalli sono pi veloci di tutti i cani Esiste un levriero e questo levriero pi veloce di ogni lepre Ralph una lepre

Esercizio (soluzione)
X Y ((cavallo(X) cane(Y)) piu_veloce(X,Y)) X levriero(X) Y (lepre(Y) piu_veloce(X,Y)) lepre(ralph) Nota: (p q) r = p (q r)

Tutte le scimmie sono fuggite su un albero


Significato: alberi possibilmente diversi per scimmie diverse Il dominio contiene differenti oggetti (scimmie, alberi, ) Procedimento Top-down: X (scimmia (X) A(X)) dove A(X) una formula logica non atomica che rappresenta X e fuggito su un albero, ovvero esiste un albero su cui X e fuggito: A(X) = Y (albero(Y) fugge(X,Y)) Dunque: X Y (scimmia (X) fugge(X,Y) albero(Y))

Tutte le scimmie sono fuggite su un albero


Altro significato: Tutte le scimmie sono fuggite sullo stesso albero In altro modo: Esiste un albero su cui sono fuggite tutte le scimmie Procedimento Top-down: Y albero(Y) X scimmia (X) fugge(X,Y) Errore! X Y (scimmia (X) fugge(X,Y) albero(Y)) Ovvero: X scimmia (X) Y (fugge(X,Y) albero(Y)) Afferma che tutti gli oggetti sono scimmie e tutti gli oggetti sono fuggiti sullalbero

))

Esercizio
Esiste una tartaruga che pi vecchia di ogni essere umano Non tutti gli studenti seguono sia il corso di storia che quello di biologia

Soluzione
X (tartaruga(X) (Y umano(Y)piu_vecchio(X,Y))) _______________________________________________ (X (studente(X) (segue(X, storia) segue(X, biologia)))) X ( studente(X) (segue(X, storia) segue(X, biologia)) X studente(X) (segue(X,storia) segue(X, biologia))

Clausola
Disgiunzione di letterali (formule atomiche negate e non) in cui tutte le variabili sono quantificate universalmente in modo implicito Esempio: p(X) q(Y) X Y p(X) q(Y)

Principio di risoluzione
Logica del I ordine

Esempio
C1 = p(X,a) q(X) C2 = f p(b,a)

Regola di inferenza
C1 & C2 parent
C1 = A1 An C3 risolvente C2 = B1 Bm Se esistono in C1 ed in C2 due letterali opposti: [Ai] = [Bj]

C3 = [A1 Ai-1 Ai+1 An B1 Bj-1 Bj+1.. Bm

unificazione C3 conseguenza logica di C1 & C2

Sostituzione
Insieme di legami di termini a simboli di variabili ={X1/T1, X2/T2, , Xn/Tn}
X1, X2, , Xn distinte Xi Ti i [1..n]

Esempi
={X/c, Y/a, Z/W}
[p(X, f(Y), b, Z)] = p(c, f(a), b, W)

={Y/T, Z/neri}
[c(Y, Z)] = c(T, neri)

={Y/T, Z/neri}

[E ] : espressione ottenuta sostituendo SIMULTANEAMENTE ogni Xi con il corrispondente Ti

[c(T, neri)] = c(T, neri)

={X/a, Y/X}
[p(X, Y))] = p(a, X) simultaneamente

10

Unificazione
Sostituzione che rende sintatticamente uguali due o pi atomi Esempio: c(Y, Z) c(T, neri) = {Y/T, Z/neri} [c(Y, Z)] = [c(T, neri)] c(T, neri) = c(T, neri)
T2

Algoritmo di unificazione
T1 Costante C2 OK se C1 =C2 OK {X1/C2} NO Variabile X2 OK {X2/C1} OK {X1/X2} OK {X2/S1} Termine composto S2 NO OK {X1/S2} OK se S1 e S2 stesso funtore e ariet e argomenti unificano

Costante C1 Variabile X1 Termine composto S1

Esempio: unificazione termini composti


p(W, f(X,a,b)) p(c, f(c,Z,b)) unificano: = {W/c, X/c, Z/a} [p(W, f(X,a,b)) ] = p(c, f(c,a,b)) = [p(c, f(c,Z,b))] p(W, f(X,a,b)) non unificano p(W, f(X,a,b)) non unificano p(c, g(c,Z,b))

Esempio
C1 = p(X,a) q(X) C2 = f p(b,a)

= {X/b} p(c, f(c,Z)) C3 = [q(X) f] = q(b) f

Esercizio
1.X

Formule logiche
(cibo(X) piace(X,gianni))
2.cibo(mele) 3.cibo(pollo) 4.XY

A Gianni piacciono tutti i tipi di cibo Le mele sono un cibo Il pollo un cibo Tutto quello che si mangia senza esserne uccisi un cibo Paolo mangia noccioline ed ancora vivo Susanna mangia tutto quello che mangia Paolo Dimostrare
A Gianni piacciono le noccioline Che cibo mangia Susanna?

(mangia(Y,X) uccide(X,Y) cibo(X)) uccide(nocciol,paolo) 6.X(mangia(paolo,X) mangia(susanna,X))


5.mangia(paolo,nocciol)

G1: piace(nocciol, gianni) G2: X(cibo(X) mangia(susanna,X))

11

1.X

(cibo(X)piace(X,gianni))

2.cibo(mele)

Formule a clausole

3.cibo(pollo) 4.XY

(mangia(Y,X) uccide(X,Y) cibo(X)) nocciol) uccide(nocciol,paolo) 6.X(mangia(paolo,X) mangia(susanna,X)) G1: piace(nocciol, gianni)
5.mangia(paolo,

Risoluzione: G1 C3:cibo(pollo)

C1:(cibo(X) piace(X,gianni) C2:cibo(mele)

(cibo(X) piace(X,gianni) cibo(mele) cibo(pollo) uccide(X,Y)) cibo(X) (mangia(Y,X) C4: mangia(Y,X) uccide(X,Y) cibo(X) C5: mangia(paolo,nocciol) C6: uccide(nocciol,paolo) C7: mangia(paolo,X) mangia(susanna,X) G1neg: piace(nocciol, gianni) C1: C2: C3: C4:

C4: mangia(Y,X) uccide(X,Y) cibo(X) C5: mangia(paolo,nocciol) C6: uccide(nocciol,paolo) C7: mangia(paolo,X) mangia(susanna,X) G1neg: piace(nocciol,gianni)

G1neg+C1=C8: (cibo(nocciol)) {X/nocciol} C8+C4=C9: mangia(Y,nocciol) uccide(nocciol,Y) {X/nocciol} C9+C5=C10: uccide(nocciol,paolo) {Y/paolo} C10+C6=C11: clausola vuota

Risoluzione G2

C1:(cibo(X) piace(X,gianni) C2:cibo(mele) C3:cibo(pollo) C4: mangia(Y,X) uccide(X,Y) cibo(X) C5: mangia(paolo, nocciol) C6: uccide(nocciol,paolo) C7: mangia(paolo,X) mangia(susanna,X)

Esercizio
Antonio, Michele e Giovanni sono iscritti al CAI (Club Alpino Italiano). Ogni appartenente al Club che non sciatore uno scalatore. Gli scalatori non amano la pioggia. Ogni persona che non ama la neve non uno sciatore. Antonio non ama ci che Michele ama. Antonio ama la pioggia e la neve. Si rappresenti tale conoscenza come un insieme di predicati del primo ordine. Si mostri, mediante la risoluzione: "C' un iscritto al CAI che uno scalatore, ma non uno sciatore?"

G2neg: X(cibo(X) mangia(susanna,X)) G2neg: X (cibo(X) mangia(susanna,X)) G2neg: cibo(X) mangia(susanna,X) -----------------------------------------

G2neg+C7=C8: cibo(X) mangia(paolo,X) C8+C5=C9: cibo(nocciol) {X/nocciol} C9+C4=C10: mangia(Y,nocciol) uccide(nocciol,Y) {X/nocciol} C10+C5=C11: uccide(nocciol,paolo) {Y/paolo} C11+C6=C12: clausola vuota

Formule logiche

Antonio, Michele e Giovanni sono iscritti al CAI (Club Alpino Italiano). Ogni appartenente al Club che non sciatore uno scalatore. Gli scalatori non amano la pioggia. Ogni persona che non ama la neve non uno sciatore. Antonio non ama ci che Michele ama. Antonio ama la pioggia e la neve. Si rappresenti tale conoscenza come un insieme di predicati del primo ordine. Si mostri, mediante la risoluzione: "C' un membro del CAI che uno scalatore, ma non uno sciatore?"

Clausole

1. X(iscritto(X) sciatore(X) scalatore(X)) 2. X(scalatore(X) ama(X,pioggia)) 3. X(ama(X,neve) sciatore(X)) 4. X(ama(michele,X) ama(antonio,X)) 5. ama(antonio,neve) 6. ama(antonio, pioggia) 7. iscritto(antonio) 8. iscritto(michele) 9. iscritto(giovanni Goal: X iscritto(X) scalatore(X) sciatore(X)

1. 2. 3. 4. 5. 6. 7. 8. 9.

X(iscritto(X) sciatore(X) scalatore(X)) X(scalatore(X) ama(X,pioggia)) X(ama(X,neve) sciatore(X)) X(ama(michele,X) ama(antonio,X)) ama(antonio,neve) ama(antonio,pioggia) iscritto(antonio) iscritto(michele) iscritto(giovanni)

Goal: X iscritto(X) scalatore(X) sciatore(X)

C1. iscritto(X) sciatore(X) scalatore(X) C2. scalatore(X) ama(X,pioggia) C3. ama(X,neve) sciatore(X) C4. ama(michele,X) ama(antonio,X) C5. ama(antonio,neve) C6. ama(antonio, pioggia) C7. iscritto(antonio) C8. iscritto(michele) C9. iscritto(giovanni) Gneg: iscritto(X) scalatore(X) sciatore(X)

12

Risoluzione

C1. iscritto(X) sciatore(X) scalatore(X) C2. scalatore(X) ama(X,pioggia) C3. ama(X,neve) sciatore(X) C4. ama(michele,X) ama(antonio,X) C5. ama(antonio,neve) C6. ama(antonio, pioggia) C7. iscritto(antonio) C8. iscritto(michele) C9. iscritto(giovanni) Gneg: iscritto(X) scalatore(X) sciatore(X)

C10=Gneg +C8: scalatore(michele) sciatore(michele) {X/michele} C11=C10+C3:scalatore(michele) ama(michele,neve) {X/michele} C12=C11+C4:scalatore(michele) ama(antonio,neve) {X/neve} C13=C12+C5: scalatore(michele) C14=C13+C1: iscritto(michele) sciatore(michele) {X/michele} C15=C13+C8: sciatore(michele) {X/michele} C16=C15+C3: ama(michele,neve) {X/neve} C17=C16+C4: ama(antonio,neve) C18=C17+C5: clausola vuota

13

Potrebbero piacerti anche