Linguaggi di Programmazione Da logica proposizionale a logica del primo ordine FMZ Logica proposizionale Sintassi vs Semantica Sintassi Semantica Simboli FBF ASSIOMI Regole di inferenza Funzione di interpretazione S F S ??? Mondo F Concetto di modello FMZ Sintassi vs Semantica Osservazioni Una dimostrazione per S F è una sequenza DIM=P1,P2,…,Pn • • • • Pn=F PiS PiASSIOMI Pi è ottenibile da Pi1,…,Pim (con i1<i,.., im<i) applicando una regola di inferenza FMZ Sintassi vs Semantica Osservazioni DIM=P1,P2,…,Pn Problema: introduciamo sempre formule vere? • PiS • PiASSIOMI vere per ipotesi veri poiché tautologie • Pi è ottenibile da Pi1,…,Pim (con i1<i,.., im<i) applicando una regola di inferenza anello debole FMZ Sintassi vs Semantica Regole di inferenza e veridicità A1,…,An A1… An A1… An Ai PB,P B AI A V V F F B V F V F AB V F F F A V V F F B V F V F AB V F V V AE MP FMZ Sintassi vs Semantica • La preservazione della veridicità è osservabile per induzione • Formalmente: – (Meta)Teorema di completezza – (Meta)Teorema di Deduzione (+ Ogni teorema di L è una tautologia) FMZ Logica proposizionale (limiti) Socrate è un uomo. Gli uomini sono mortali. (A) Allora Socrate è mortale. Traduzione di (A) nella logica proposizionale Se Gino è un uomo, allora Gino è mortale. Se Pino è un uomo, allora Pino è mortale. Se Rino è un uomo, allora Rino è mortale. Se Socrate è un uomo, allora Socrate è mortale. … Se X è un uomo, allora X è mortale. FMZ Logica del primo ordine (logica dei predicati del primo ordine) Sintassi Ingredienti: Simboli L – Letterali • • • • Costanti individuali Ai Variabili individuali ai Lettere funzionali fi Lettere predicative Pi – Connettivi Logici: {,,,,(,)}, FMZ Logica del primo ordine Sintassi Ingredienti: Termine T costanti individuali T variabili individuali T Se t1,…,tn T allora fi(t1,…,tn) T (applicazione di un simbolo di funzione n-ario a n termini) Termine ground - senza variabili (oggetti dell'Universo del discors Es.: padre(padre(giovanni)) FMZ Logica del primo ordine Sintassi Formule Atomiche (atomi) Se t1,…,tn T allora Pi(t1,…,tn) è una formula atomica Esempi: uomo(paolo) maggiore(X,3) maggiore(più(X,1),Y) ama(giovanni,maria) ama(padre(giovanni),giovanni) ama(padre(padre(giovanni)),giovanni) maggiore(più(più(1,giovanni),Y),padre(3)) FMZ Logica del primo ordine Sintassi Ingredienti: Formule Ben Formate – Le Formule Atomiche sono FBF – Se f1 e f2FBF e x è una variabile individuale allora x.f1FBF x.f1FBF f1FBF f1 f2FBF f1 f2FBF f1f2FBF FMZ Logica del primo ordine Sintassi Ingredienti: Regole di inferenza – Eliminazione del quantificatore universale x.F(…x…) SUBST({x/a},F(…x…)} – Eliminazione del quantificatore esistenziale x.F(…x…) Dove a non appartiene a costanti già introdotte SUBST({x/a},F(…x…)} – Introduzione del quantificatore esistenziale F(…a…) x.F(…x…) FMZ Logica del primo ordine Sintassi esempi 1) un esempio filosofico (X)(uomo(X) mortale(X)) uomo(socrate) mortale(socrate) 2) due degli assiomi di base dei numeri naturali interpretare f e g come funzioni successore e predecessore la costante 0 come zero il predicato u come uguaglianza ) (X)(Y)(u(Y,f(X)) (Z)(u(Z,f(X)) u(Y,Z))) (X)( ~u(X,0) ((Y)(u(Y,g(X)) (Z)(u(Z,g(X)) u(Y,Z))))) 3) nella formula (X) p(X,Y), tutte le occorrenze di X sono vincolate, mentre Y è libera FMZ Logica del primo ordine Semantica Dare una interpretazione alle espressioni sintatticamente corrette. Definire se certe espressioni sono vere o false in base al significato che si dà ai componenti dell'espressione. Interpretazione (I): • Insieme D (dominio) I(ai) = di • Insieme di funzioni I(fi) = fi fi: Dn D • per ciascuna costante individuale per ciascuna lettera funzionale fi Insieme di relazioni I(Pi)=Pi Pi Dn per ciascuna lettera predicativa Pi FMZ Logica del primo ordine Semantica Interpretazione • Interpretazione delle formule atomiche – I(Pi(a1,…,an)) =V se (I(a1),…,I(an))I(Pi) =F altrimenti – I(x.Pi(a1,…,x,…,an)) =V se per tutti gli x d accade che (I(a1),…,x,…,I(an))I(Pi) =F altrimenti FMZ Logica del primo ordine Semantica Interpretazione • Interpretazione delle formule quantificate I(x.Pi(a1,…,x,…,an))=V =F I(x.Pi(a1,…,x,…,an)) =V =F se per tutti gli x D accade che (I(a1),…,x,…,I(an))I(Pi) altrimenti se esiste x D tale che (I(a1),…,x,…,I(an))I(Pi) altrimenti FMZ Sostituzione una sostituzione J è un insieme finito della forma {v1 t1,…, vn tn} vi è una variabile ti è un termine diverso da vi le variabili vi, i=1,…,n sono tra loro distinte una sostituzione è una funzione da variabili a termini l’applicazione di J ad E è l’espressione ottenuta da E sostituendo simultaneamente ogni occorrenza della variabile vi, i=1,…,n con il termine ti il risultato dell’applicazione (denotato da EJ) è una FMZ istanza di E. Sostituzione: Composizione siano J = {X1 t1,…, Xn tn} e l = {Y1 u1,…, Ym um} due sostituzioni la composizione di J e l (denotata da J l) è la sostituzione così definita i) costruiamo l’insieme {X1 t1l,…, Xn tnl, Y1 u1,…, Ym um} ii) eliminiamo dall’insieme gli elementi Xi til tali che til = Xi iii) eliminiamo dall’insieme gli elementi Yj uj tali che Yj occorre in {X1,…, Xn} FMZ Sostituzione: Composizione J = {X f(Y), Y Z} l = {X a, Y b, Z Y} costruzione di J l i) {X f(b), Y Y, X a, Y b, Z Y} ii) {X f(b), X a, Y b, Z Y} iii) {X f(b), Z Y} costruzione di l J i) {X a, Y b, Z Z, X f(Y), Y Z} ii) {X a, Y b, X f(Y), Y Z} iii) {X a, Y b} FMZ Unificazione L’unificazione è un meccanismo che permette di calcolare una sostituzione al fine di rendere uguali due espressioni. Per espressione intendiamo un termine, un letterale o una congiunzione o disgiunzione di letterali. Sia dato un insieme di espressioni (termini, atomi, etc.) {E1,… Ek} una sostituzione J è un unificatore per {E1,…, Ek}se e solo se E1J = E2J = …= EkJ Un insieme {E1,…, Ek} è unificabile se e solo se esiste una sostituzione J tale che J è un unificatore per {E1,…, Ek} ESEMPIO: l’insieme {p(a,Y), p(X,f(b))} è unificabile dato che la sostituzione J = {X a, Y f(b)} è un unificatore per FMZ l’insieme Unificazione • un unificatore J per l’insieme {E1,…, Ek} è l’unificatore più generale (most general unifier, mgu) se e solo se per ogni unificatore l dell’insieme {E1,…, Ek} esiste una sostituzione tale che l = J • esiste un algoritmo (algoritmo di unificazione), che, dato un insieme di espressioni E = {E1,…, Ek}, rivela la sua non unificabilità, oppure calcola un unificatore più generale per E FMZ Logica proposizionale vs. Logica del primo ordine “Aggiunte”: • Strutturazione dei letterali • Introduzione delle variabili • Introduzione dei quantificatori FMZ Logica del primo ordine Socrate è un uomo. Gli uomini sono mortali. Allora Socrate è mortale. • Costanti individuali {Socrate, Pino, Gino, Rino} • Lettere predicative {Uomo,Mortale} FMZ Logica del primo ordine Socrate è un uomo. Gli uomini sono mortali. Allora Socrate è mortale. • Traduzione affermazioni Uomo(Socrate) x.(Uomo(x) Mortale(x)) • Traduzione goal Mortale(Socrate) FMZ Logica del primo ordine x.(Uomo(x) Mortale(x)) Universal Elimination (SUBST({x/Socrate},Uomo(x) Mortale(x)) Uomo(Socrate) Mortale(Socrate) , Uomo(Socrate) MP Mortale(Socrate) FMZ