Linguaggi di Programmazione Da logica proposizionale a logica del primo ordine
Logica proposizionale Sintassi vs Semantica Mondo Simboli FBF ASSIOMI Regole di inferenza Funzione di interpretazione S F S F Concetto di modello ???
Sintassi vs Semantica Osservazioni Una dimostrazione per è 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 S F
Sintassi vs Semantica Osservazioni DIM=P1,P2,…,Pn Problema: introduciamo sempre formule vere? PiS vere per ipotesi PiASSIOMI veri poiché tautologie Pi è ottenibile da Pi1,…,Pim (con i1<i,.., im<i) applicando una regola di inferenza anello debole
Sintassi vs Semantica Regole di inferenza e veridicità B AB A1,…,An AI V V V A1… An V F F F V F F F F A1… An AE Ai A B AB P B , P V V V MP V F F B F V V F F V
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)
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.
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: {,,,,(,)},
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 discorso) Es.: padre(padre(giovanni))
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))
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
Logica del primo ordine Sintassi Ingredienti: Regole di inferenza Eliminazione del quantificatore universale Eliminazione del quantificatore esistenziale Introduzione del quantificatore esistenziale x.F(…x…) SUBST({x/a},F(…x…)} x.F(…x…) Dove a non appartiene a costanti già introdotte SUBST({x/a},F(…x…)} F(…a…) x.F(…x…)
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
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 per ciascuna costante individuale Insieme di funzioni I(fi) = fi fi: Dn D per ciascuna lettera funzionale fi Insieme di relazioni I(Pi)=Pi Pi Dn per ciascuna lettera predicativa Pi
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
Logica del primo ordine Semantica Interpretazione Interpretazione delle formule quantificate I(x.Pi(a1,…,x,…,an))=V se per tutti gli x D accade che (I(a1),…,x,…,I(an))I(Pi) =F altrimenti I(x.Pi(a1,…,x,…,an)) =V se esiste x D tale che (I(a1),…,x,…,I(an))I(Pi)
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 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}
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}
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 l’insieme
Unificazione
Logica proposizionale vs. Logica del primo ordine “Aggiunte”: Strutturazione dei letterali Introduzione delle variabili Introduzione dei quantificatori
Logica del primo ordine Socrate è un uomo. Gli uomini sono mortali. Allora Socrate è mortale. Costanti individuali {Socrate, Pino, Gino, Rino} Lettere predicative {Uomo,Mortale}
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)
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)