Introduzione alla LOGICA MATEMATICA Corso di Matematica Discreta. Corso di laurea in Informatica. Prof. Luigi Borzacchini VI. La dimostrazione e il general theorem prover. La logica delle proposizioni trattata precedentemente considerava solo proposizioni e permetteva di dedurre dalle premesse <Socrate è ateniese> e <se Socrate è ateniese allora è mortale> la conclusione <Socrate è mortale> tramite il modus ponens, oppure da <Se Socrate è ateniese allora Socrate è umano> e <Se Socrate è umano allora è mortale> la conclusione <Se Socrate è ateniese allora è mortale> per la regola derivata della transitività dell’ . Ma non si poteva dedurre anche da <Socrate è ateniese> e <ogni ateniese è mortale> la conclusione <Socrate è mortale>, mischiando così concetti universali e individui. Questo diventa possibile nella logica dei predicati. Deduzione naturale: i quantificatori • La prima regola concerne la -eliminazione che si realizza come x p(x) per qualsiasi termine t . p(t) Con tale regola possiamo passare da ‘per ogni quadrato’ a ‘prendiamo un quadrato di lato l e diagonale d’ (nell’esempio che faremo), oppure da ‘ogni ateniese è mortale’ a ‘Socrate è mortale’. La seconda regola concerne la - introduzione: p(t) ove t è un qualsiasi termine x p(x) Nell’esempio che vedremo, trovati due numeri, potremo dedurre ‘esistono M, N’. • La terza regola concerne la -introduzione, che si realizza come p(x) se x non occorre libera nelle premesse. x p(x) Nel nostro esempio questa regola apparirà alla fine, quando il risultato ottenuto per un particolare quadrato è generalizzato ad ogni quadrato. Ultima regola è la - eliminazione, che richiede una sottoderivazione: Se la formula da ridurre è x p(x), si parte assumendo p(c) («chiamiamo c …»), ove c è una costante nuova, non già esistente nella dimostrazione. Se si giunge ad una formula B non dipendente da c, la si può esportare nella dimostrazione principale. Nel nostro esempio questa procedura apparirà nella introduzione dei numeri M ed N. Nell’esempio seguente analizzeremo una classica dimostrazione matematica (la dimostrazione moderna della incommensurabilità di lato e diagonale del quadrato), utilizzando le regole di inferenza della deduzione naturale La dimostrazione • La dimostrazione non è solo il cuore del formalismo matematico, ma anche la forma base di ogni argomentazione razionale e sintattica. • Con la deduzione naturale l’abbiamo vista già apparire nella logica delle proposizioni, ma assume la sua forma completa nella logica dei predicati. • Per studiarla, partiamo da un esempio, una delle più famose dimostrazioni della storia della matematica, la dimostrazione della incommensurabilità del rapporto tra lato e diagonale del quadrato, il teorema che ha rivelato ai matematici la distinzione l tra continuo e discreto. d Per il teorema di Pitagora d2=2 l2 Il teorema vale per ogni quadrato, sia esso di lato l e diagonale d. Supponiamo per assurdo che esistano due numeri il cui rapporto sia uguale al rapporto tra l e d, cioè esistano m e n tali che d:l = m:n, ove m,n sono due numeri interi. Se m,n sono pari dividiamoli per il loro MCD, ottenendo M ed N, e quindi esistono M, N non entrambi pari, per cui d:l =M:N. Da cui d2 : l2 = M2 : N2 . Dal teorema di Pitagora d2 = 2 l2, e quindi M2= 2N2, e M2 è un numero pari. Ma se M2 è pari, M è pari, e quindi M = 2K. Sostituendo, otteniamo 4 K2 = 2 N2 e dividendo per 2 si ha 2 K2 = N2, e quindi N è pari. Quindi M ed N sono pari, contrariamente a quanto già asserito: contraddizione! E quindi per assurdo la negazione della supposizione iniziale. Ma il quadrato era qualsiasi e quindi il teorema vale per ogni quadrato. passaggi non dimostrati: M2 è pari M è pari, che può essere dimostrata a parte ed usata nella dimostrazione principale, un lemma, già incontrato nel terzo capitolo (sottoderivazione della -introduzione). • ‘quantificatori’ universali o esistenziali dimostrazione per assurdo: si ipotizza la negazione della tesi da dimostrare e si ottiene una contraddizione, e di qui si deduce la tesi, una sottoderivazione già incontrata come regola per trattare la negazione. Le sottoderivazioni sottoderivazione assunzione Lemma AB Dimostrazione di A per assurdo -eliminazione da x A(x) A A condizione di chiusura B export AB A contraddizione A(c) c B indipendente B costante nuova da c Esempio: x (p(x) q(x)) dn x p(x) x q(x) Essendo, nella tesi finale, la costante logica principale sappiamo che dovremo usare una introduzione. Nota: in dn ‘dn’ ci ricorda che la derivazione è fatta con la deduzione naturale. • x (p(x) q(x)) x (p(x) q(x)) premessa • x p(x) assunz. x p(x) assunz. p(t) -elim ………… x (p(x) q(x)) import …………. p(t) q(t) -elim q(t) -elim x q(x) -intro x q(x) -intro x p(x) x q(x) x p(x) x q(x) -intro Le variabili in logica sono ‘posti vuoti’ da riempire con termini, con l’unico vincolo che variabili uguali (libere in una formula o saturate nel campo di azione di un quantificatore) assumono valori uguali. •Dimostrare con la deduzione naturale: x (p(x) q(x)), x p(x) x (p(x) q(x)) x (p(x) q(x)) premessa x p(x) premessa p(c) assunzione per la -eliminazione x (p(x) q(x)) import p(c) q(c) -eliminazione q(c) -eliminazione p(c) q(c) -introduzione x (p(x) q(x)) -introduzione x (p(x) q(x)) uscita dalla -eliminazione (la formula non dipende da c) • Dimostrare con la deduzione naturale che x (p(x) q(x)) x ( p(x)) x q(x). x (p(x) q(x)) premessa x ( p(x)) assunzione della -introduzione p(c) assunzione della -eliminazione x (p(x) q(x)) import p(c) q(c) -eliminazione q(c) -eliminazione x q(x). -introduzione x q(x). sottoderivazione: -eliminazione x ( p(x)) x q(x). sottoderivazione: -introduzione a) Dimostra con la deduzione naturale che: x (p(x) q(x)) x p(x) x q(x) b) Si può dimostrare x p(x) x q(x) x (p(x) q(x))? a) x (p(x) q(x)) b) x p(x) x q(x) p(a) q(a) assunzione x p(x) -eliminaz. p(a) -eliminaz. x q(x) -eliminaz. p(a) assunzione x p(x) -introduz. q(a) -eliminaz. x q(x) import q(b) assunzione x q(x) -introduz. p(a) import x p(x) x q(x) -introd. x p(x) x q(x) p(a) q(b) -intr. -intro ??? le due costanti sono diverse! p(c) q(c) x (p(x) q(x)) Dimostrare con la deduzione naturale: x y A(y,x) y x A(y,x). Vale il viceversa? x y A(y,x) y A(y,c) A(t,c) x A(t,x) x A(t,x) y x A(y,x) y x A(y,x) x A(t,x) A(t,c) premessa sottoderiv. -elim. -elim. -intro export (non dipende da c) -intro (t non libera nelle prem.) premessa -elim. sottoderiv. -elim. non posso scrivere y A(y,c) in quanto t è libera nella assunzione, e quindi il viceversa non è dimostrabile Delle seguenti due dimostrazioni, dire se sono corrette. x A(x), x (A(x)B(x)) x B(x) x A(x)x B(x) x (A(x)B(x)) x A(x) premessa x A(x)x B(x) premessa x (A(x)B(x)) premessa A(t) assunz. A(c) assunz. -elim. x A(x) -intro x (A(x)B(x)) import x A(x)x B(x) import A(c)B(c) -elim. x B(x) -elim. B(c) -elim. B(t) -elim. x B(x) -intro. A(t) B(t) export -intro. x B(x) export -elim. x (A(x)B(x)) -intro Sintassi e Semantica • Anche la logica dei predicati è corretta e completa. E quindi Assiomi T se e solo se Assiomi T, e in tal caso i teoremi coincidono con le conseguenze logiche. Le interpretazioni che soddisfano gli assiomi si dicono modelli e soddisfano anche i teoremi. • Equivalente è il teorema di esistenza del modello: Un sistema di formule ammette un modello se e solo se non è contraddittorio. • Tuttavia le teorie matematiche più espressive non sono complete, contengono quindi verità non dimostrabili. Teorie assiomatizzate e modelli La matematica moderna si organizza in teorie assiomatizzate, basate cioè su un sistema di assiomi, da cui si derivano i teoremi validi in tutti i modelli: i modelli della teoria dei gruppi sono tutti i gruppi, per i quali valgono anche tutti i teoremi. Aggiungendo assiomi che non siano già teoremi aumentano i teoremi e si riducono i modelli a quelli che soddisfano anche gli assiomi aggiunti. Quando il modello è univocamente determinato il sistema di assiomi si dice ‘categorico’. Ma se il sistema di assiomi diventa contraddittorio, la teoria non ammette nessun modello. Esempio: Il greco filosofo • Gli ‘assiomi’: “Ogni greco è filosofo” x (g(x)f(x)) • “Socrate è greco” g(s) Ø {s} {k} {s,k} Ø • “Kant è filosofo” f(k) {s} {k} • Ci sono 16 interpretazioni {s,k} m m • Quali violano gli assiomi ? ne rimangono due: m1 in cui l’estensione di f è {s,k} e quella di g è {s}, e m2 in cui l’estensione di f è {s,k} e quella di g è {s,k}. Consideriamo due proposizioni:“C’è un greco filosofo” x g(x)f(x), “Ogni filosofo è greco” x (f(x)g(x)) f g 1 2 • Semantica) La prima formula è soddisfatta se GFØ, e questo è vero sia in m1 che in m2, e quindi Assiomi x g(x)f(x). La seconda formula è soddisfatta se FG, e questo è vero in m2 ma non in m1, e quindi Assiomi x (f(x)g(x)). Ovviamente la negazione della seconda formula x (f(x)g(x)) sarà vera in m1 ma non in m2 e quindi Assiomi x (f(x)g(x)). E se aggiungo agli Assiomi la negazione della prima formula x g(x)f(x) ? • Sintassi) Per la completezza dovrà essere Assiomi x g(x)f(x). E per il teorema di esistenza del modello dovrà essere Assiomi,x g(x)f(x) , ove indica una qualsiasi contraddizione. • • • • • • • • • • • x (g(x)f(x)) prem. x (g(x)f(x)) prem. g(s) prem. f(k) prem. g(s)f(s) -elim f(s) -elim g(s)f(s) -intro x (g(x)f(x)) -intro g(s) prem. f(k) prem. x (g(x)f(x)) prem. x( g(x)f(x)) g(s)f(s) -elim f(s) -elim g(s)f(s) -elim f(s) -elim f(s)f(s) -intro • Facciamo una parentesi prima di affrontare il teorema di completezza per la logica dei predicati. Infatti da ora cominceremo a trattare gli aspetti più strettamente matematici della logica, i quali nella matematica moderna assumono alla loro base il concetto di infinito. Questo concetto ha una storia complessa che inizia con i Greci e culmina nella teoria di Cantor. (→ Storia e Fondamenti della Matematica) Il teorema di completezza (Gödel, 1929) Se Ass T allora Ass T • Dimostreremo il teorema in una forma equivalente: il teorema di esistenza del modello Se S è consistente allora ammette un modello • Il viceversa è già noto: è la proprietà di correttezza. • L’equivalenza fra i due enunciati deriva da due lemmi: • Ass T sse Ass {T} è contraddittorio • Ass T sse Ass {T} non ammette un modello • Scrivendo Ass {T} = S S è un sistema consistente di formule, noi costruiremo un suo modello (e questo è un punto di forza per la logica, in quanto il carattere costruttivo del teorema apre la strada ad una logica computazionale), ma la costruzione sarà infinitaria (e questo sarà un punto critico poiché sarà la base dei teoremi limitativi della logica). Come trovare un modello di un sistema di formule S dato? In genere i modelli sono infiniti, ma a noi ne basta uno, e per ridurre il numero dei modelli noi sappiamo come fare: basta aggiungere assiomi. Costruiamoci allora tutte le fbf che utilizzano le costanti, le lettere funzionali e quelle predicative contenute in S. Sono in numero infinito (enumerabile): A1, A2, A3, ….., An, …… ed aggiungiamole una alla volta ad S se non creano contraddizioni, ottenendo così un sequenza non decrescente di sistemi di formule: S =S0, S1, S2, ….., Sn, ….. Più precisamente poniamo Sn+1=Sn sse Sn{An} è contraddittorio e Sn+1= Sn{An} altrimenti. Che succede? Sia l’insieme dei modelli di Sn, nel primo caso An creerebbe una contraddizione e quindi non lo aggiungiamo. Nel secondo caso invece, ci saranno An modelli in cui è An é soddisfatto e modelli in cui è soddisfatto An, il quale sarà un certo Am, (ovviamente è l’ordine degli a determinate quale An dei due sarà incontrato per primo). In ogni caso L’insieme dei modelli sarà diviso in due parti: quelli che soddisfano An, e quelli che soddisfano Am La aggiunta di An (o di An) per creare Sn+1 causerà il collasso del sistema dei modelli ad una sola delle due parti. Consideriamo ora la sequenza infinita degli Sn, la quale essendo non decrescente ammetterà un limite S*. E’ facile dimostrare che S* gode di diverse proprietà interessanti. S* è consistente massimale (l’aggiunta di ogni altra formula della sequenza lo renderebbe inconsistente), chiuso (S* A sse A S*), sintatticamente completo (per ogni A, A S* oppure A S*). Se troviamo un modello per S* esso sarà anche un modello per S. Il vantaggio è che S* è praticamente categorico, e la costruzione del suo modello, a meno di isomorfismi, è quasi banale, anche se abbastanza Strana: si basa sul prendere come universo del discorso (semantica) di fatto lo stesso lessico delle formule e la loro struttura sintattica. L’universo del discorso è l’universo di Herbrand, H, formato da tutti i termini chiusi (termini senza variabili, quindi formati da costanti e termini composti tramite funzioni e costanti, scritti in grassetto: ad esempio se abbiamo una sola costante c ed una sola funzione s, H = {c, s(c), s(s(c)), s(s(s(c))), …} ). Interpretiamo quindi le costanti (nella sintassi scritte come corsive) come se stesse intese come oggetti dell’universo del discorso (in grassetto): cH = c. Il termine composto [f(t1, t2, t3,…., tn)]H = f(t1, t2, t3,…., tn). Poi imponiamo H p(t1, t2, t3,…., tn) sse p(t1, t2, t3,…., tn) S* Si può dimostrare che una tale interpretazione è un modello per S*. A tal fine occorre dimostrare per ogni formula A: H A sse A S* . Per formule atomiche senza variabili il risultato è ovvio per definizione. Generalizzare al caso in cui i termini contengano variabili non presenta problemi. Generalizzare al caso in cui le forme non siano atomiche è facile per induzione sull’altezza dell’espressione. Ad esempio se la fbf è AB: H AB sse H A e H B, sse A S* e B S*, sse AB S*. E questo completa il teorema. Due corollari importanti: la forma semantica del teorema di Compattezza, e il teorema di Löwenheim. TEOREMA DI COMPATTEZZA (forma sintattica). Sia un sistema (anche infinito) di assiomi Ass e una fbf T, Ass T sse AAss, A finito, A T La dimostrazione è banale e deriva dalla definizione stessa di dimostrazione. Teorema di Compattezza (forma semantica). • Dai teoremi di correttezza e completezza abbiamo che: • Sia un sistema (anche infinito) di assiomi Ass e una fbf T, • Ass T sse AAss, A finito, A T. • Dal secondo lemma del teorema di completezza , scrivendo Ass {T} = S: • S non ammette modelli sse S’S, S’ finito, S’ non ammette modelli. Per conversione • S ammette modelli sse • S’S, S’ finito, S’ ammette modelli. • Per dimostrare che un sistema di assiomi (infinito) ammette un modello basta far vedere che ogni suo sottoinsieme finito ammette modelli, anche del tutto eterogenei e scoordinati. Teorema di Löwenheim. • Questo teorema è semplicemente un corollario che deriva dalla stessa dimostrazione. Infatti qui il modello è costruito sull’universo di Herbrandt, che è un insieme in genere infinito, ma sempre enumerabile. Da qui allora: • Ogni sistema di assiomi consistente ammette un modello enumerabile. • Da questo teorema deriva il cosiddetto paradosso di Skolem: una teoria del continuo (ad esempio quella dei numeri reali), se è consistente, ammette un modello enumerabile, ma il continuo si dimostra non enumerabile, e questo dovrebbe valere in ogni modello, anche in quello enumerabile! … … un paradosso ma non un’antinomia … • La non enumerabilità è una proprietà insiemistica: la non esistenza di una corrispondenza biunivoca tra l’insieme e , e una corrispondenza è un insieme di coppie. • Il paradosso si risolve osservando che nel modello enumerabile, tra gli insiemi che si possono formare, semplicemente non c’è nessuna corrispondenza biunivoca con . • Le teorie matematiche potenti non ammettono assiomatizzazioni categoriche al I ordine (in cui si quantifica solo sugli elementi), ma richiedono il II ordine (in cui si quantifica anche su predicati o insiemi). • Ogni assiomatizzazione categorica di è al II ordine. • La doppia natura della teoria degli insiemi … …al di là del teorema di completezza… • Il teorema di completezza di Gödel del 1929 è meno famoso dei suoi teoremi di incompletezza del 1931, ma è almeno altrettanto importante. Da esso, sia storicamente che didatticamente, si diramano due filoni intrecciati nello sviluppo della logica. • Da un lato i suoi aspetti costruttivi aprono la strada agli aspetti computazionali della logica, che porteranno alla programmazione logica. • Dall’altro lato il carattere infinitario della costruzione apre la strada a tutti i teoremi limitativi, non solo quelli di incompletezza. • Iniziamo dagli aspetti computazionali. Come decidere se Assiomi T? • Abbiamo dato una definizione formale della dimostrazione e da qui è decidibile se una sequenza di formule è una dimostrazione. Ma se non abbiamo la dimostrazione, ed anzi vogliamo provarne l’esistenza? • Sintatticamente costruire la dimostrazione può funzionare in molti casi ma non abbiamo un algoritmo generale. Semanticamente nella logica predicativa è impensabile (infinitario) far vedere che Assiomi T è soddisfatto in tutte le (infinite) interpretazioni. • Possiamo provare per assurdo, negando la tesi e cercando una contraddizione, cioè con la refutazione. Ma come si dimostra che un sistema di formule è contraddittorio? Sia fare dimostrazioni finchè non si trova una contraddizione, sia cercare modelli finchè non si è sicuri che non ce ne sono, è irrealizzabile, se non esiste una procedura di ricerca sistematica. Il general theorem prover • Torniamo al problema del general theorem prover per dimostrare Assiomi T , realizzato nella logica proposizionale tramite le tavole di verità, facendo vedere che Assiomi T ovvero che Assiomi T è una tautologia, ovvero che Assiomi T è una contraddizione, dimostrare quindi Assiomi, T , cioè dimostrare per assurdo. • Infatti se Assiomi e T sono contraddittori allora non ammettono modelli. Ma se gli Assiomi sono consistenti, ammettono modelli, e questo vuol dire che in tutti tali modelli T non è soddisfatto e quindi T è soddisfatto. Ma allora Assiomi T, e per la completezza: Assiomi T. Tavole Semantiche • Nella logica proposizionale le tavole di verità ci mostrano in quali interpretazioni un insieme di formule è soddisfatto. Nella logica dei predicati questo si realizza con le tavole semantiche. • L’algoritmo, data una sequenza di formule A1,A2,....,An, trova tutte le interpretazioni M tali che i M Ai, trova cioè tutti i loro modelli. • L’algoritmo consiste nella eliminazione dalle formule dei connettivi e dei quantificatori per costruire formule atomiche. Ogni eliminazione produce una o due formule e così si genera un albero binario labellato sui nodi con una formula. • L’algoritmo termina quando non ci sono più connettivi (escluso il ) da eliminare: nelle tavole-foglie dell’albero rimangono solo formule atomiche e loro negazioni. Associamo ad esse tutte le interpretazioni che le soddisfano (i loro modelli). • Se però in una tavola appaiono tanto una formula atomica P che la sua negazione P, allora quella tavola non ammette modelli e si dice ‘chiusa’. • L’unione dei modelli di tutte le tavole ‘aperte’ è l’insieme delle interpretazioni che soddisfacevano le formule di partenza. • Eventuali rami infiniti rappresentano modelli la cui costruzione è infinitaria. • L’eliminazione deve garantire che l’unione delle interpretazioni soddisfatte dalle formule prodotte siano le stesse della formula eliminata. questo si realizza per i connettivi seguendo le tavole di verità. • AB (AB) (AB) Nel riquadro le formule da • A A B A soddisfare. Se compare P • B B vuol dire che P AB (A B) A B è da refutare. A B A B B A • P significa che i modelli di P si ottengono → come intersezione di quelli di Q con Q quelli di R, mentre → P R significa che i modelli di P si ottengono unendo quelli di Q R Q con quelli di R. Ma queste regole coincidono con le tavole di verità. Più complesse le regole per i quantificatori. Ricordando che x p(x) equivale a x p(x) e che x p(x) equivale a x p(x),è sufficiente introdurre quelli per il quantificatore universale • • • • • • • • x p(x) p(t1) p(t2) x p(x) ove t1, t2, …., tk, sono tutti i termini liberi, cioè senza variabili, (anche complessi) che già compaiono nelle tavole (se non ce p(c) n’è nessuno si usa una nuova c). c è nuova nel senso che non compare già nelle tavole). L’aggiunta di x p(x) significa che la procedura va ripetuta quando si creino nella tavola nuovi termini liberi. p(tk) x p(x) La regola a sinistra è banalmente corretta, ma è anche utile poiché esplicitare i ti che già compaiono nelle tavole permette di riconoscere eventuali tavole chiuse, mentre una formula p(t’), con t’ che non appare nelle tavole, non potrebbe mai farlo. • Il risultato finale dell’algoritmo è dato dall’unione di tutte le interpretazioni che si ottengono dalle tavole che sono foglie dell’albero + le interpretazioni relative a rami infiniti. In una ‘foglia’ la tavola contiene solo formule atomiche e loro negazioni. P • Ad esempio le interpretazioni che soddisfano Q R questa tavola sono esattamente le interpretazioni per cui P e Q sono vere, R è falsa. • Per quest’altra sono tutte quelle per cui la estensione di P contiene a e non b, e P(a) Q(a,b) l’estensione di Q contiene le coppie (a,b) Q(c,a) P(b) e (c,a) ma non la coppia (a,c). Q(a,c) • Il sistema di formule {PQ, PQ, PQ, PQ} è insoddisfacibile. • è una tavola aperta • P PQ PQ PQ è una tavola chiusa P Q PQ PQ P PQ PQ P Q PQ P P PQ P Q P P Q Q P Q P PQ PQ PQ PQ PQ P Q Q PQ Q PQ PQ PQ Q P PQ PQ Q P P PQ Q Q PQ PQ Q P PQ Q P P Q P Q • <Il barbiere di Siviglia rade tutti coloro che non si radono da sé e non rade coloro che si radono da sé> ammette un modello ? x (rade(x,x) rade(G,x)) (rade(x,x) rade(G,x)) x rade(x,x) rade(G,x) x rade(x,x) rade(G,x) rade(G,G) • rade(G,G) rade(G,G) rade(G,G) x …………… • • • rade(G,G) rade(G,G) rade(G,G) rade(G,G) rade(G,G) rade(G,G) rade(G,G) rade(G,G) • rade(G,G) rade(G,G) • Tutte le tavole si chiudono e quindi la formula non ammette alcun modello. Infatti se Giovanni rade se stesso allora non rade se stesso e se non rade se stesso allora rade se stesso: assurdo. Tavole infinite. • Un esempio di un ramo infinito: i modelli che soddisfano la formula x y p(y,x) x y p(y,x) L’universo di Herbrandt è vuoto, introduciamo c p(c’,c) y p(y,c’) x y p(y,x) y p(y,c) x y p(y,x) p(c’,c) x y p(y,x) Nell’universo di Herbrandt c’è anche c’ p(c’’,c’) p(c’,c) x y p(y,x) Nell’universo di Herbrandt c’è anche c’’ p(c’’,c’) p(c’,c) y p(y,c’’) x y p(y,x) Il ramo non termina, Il modello è dato dall’ Insieme {p(c’,c), p(c’’,c’), p(c’’’,c’’), p(c’’’’,c’’’) … } Teorema di Skolem-Herbrand • Importante perché permette di ridurre in un certo senso un problema di insoddisfacibilità nella logica dei predicati in un problema di insoddisfacibilità nella logica proposizionale. • Teniamo presente che l’insoddisfacibilità sarà la base delle tecniche del gtp e che i problemi semantici per la logica proposizionale sono molto più semplici di quelli della logica dei predicati. • Sia una formula della logica dei predicati in forma di clausola: x1 x2 …xn F, con F = C1 C2 ….. Cm ove le Ci sono clausole, cioè disgiunzioni di letterali. • C1 • C2 • ……. • Cm Per verificarne la insoddisfacibilità le regole delle tavole semantiche produrranno istanziazioni delle variabili con termini chiusi e ramificazioni per le disgiunzioni. Alla fine, se la formula è insoddisfacibile, tutte le tavole saranno chiuse e senza variabili. C11 C21 C12 C22 C1j C2j C1j+1 C2j+1 ……. Cm1 ……. Cm2 ……. Cmj ……. Cmj+1 Ogni tavola sarà una congiunzione di formule proposizionali, istanze della formula di partenza. Avremmo lo stesso risultato se le tavole finali fossero semplicemente messe in disgiunzione, se cioè fosse insoddisfacibile F1 F2… Fj Fj+1 La difficoltà è dovuta al fatto che non possiamo prevedere quante saranno le istanze proposizionali. General theorem prover • Il gtp può essere ottenuto dalle tavole semantiche ponendo gli Assiomi (supposti consistenti) come formule da soddisfare e Teorema come formula da refutare. Questo corrisponde a partire dalla tavola che contiene Assiomi, Teorema. • Condizione necessaria e sufficiente perché Assiomi Teorema è che alla fine tutte le tavole siano chiuse, perché in tal caso non esiste alcun modello di Assiomi, Teorema, e quindi per tutti i modelli degli Assiomi si ha che Teorema è falso e quindi Teorema è vero. Quindi Teorema è conseguenza logica degli Assiomi: Assiomi Teorema e per completezza Assiomi Teorema. • I rami infiniti sono tavole aperte e in tal caso la formula Teorema non è un teorema. Dimostrazione automatica • x (p(x) q(x)) x p(x) x q(x) equivalente a x (p(x) q(x)),(x p(x) x q(x)) insoddifacibile x (p(x) q(x)) x p(x) x q(x)) x (p(x) q(x)) x p(x) x q(x) x (p(x) q(x)) x p(x) q(c) p(c) q(c) p(c) q(c) x ……… p(c) p(c) q(c) x ……… q(c) p(c) q(c) x ……… tutte le tavole si chiudono e quindi il sistema formato dalle due formule è insoddisfacibile. Di conseguenza il teorema è dimostrato. • Dimostrare con le tavole semantiche: x y A(y,x) y x A(y,x). Vale il viceversa? y x A(y,x) x y A(y,x) x y A(y,x) A(c,d) A(e,c) y x A(y,x) x A(c,x) y A(y,c) x A(d,x) A(c,c) A(d,c) A(d,c) A(d,d) y A(y,c) y x A(y,x) x y A(y,x) A(c,d) A(e,c) y x A(y,x) x y A(y,x) A(c,d) A(e,c) x A(d,x) x A(e,x) y A(y,d) y A(y,e) y x A(y,x) x y A(y,x) A(d,f) A(e,g) A(h,d) A(l,e) y x A(y,x) x y A(y,x) …………………. Sembra non terminare, ma in linea di massima non ne possiamo essere certi a) Scrivere come formula della logica dei predicati i due assiomi: “c non segue nessun elemento”, “per ogni elemento c’è un elemento che lo segue” utilizzando la costante ‘c’ e il predicato binario ‘segue’. b) Sostituire il primo assioma con “nessun elemento segue c” a) le formule sono x segue(c,x) e x y segue(y,x) b) La prima formula diventa x segue(x,c) con le tavole semantiche ricavare tutti i modelli del sistema formato dai due assiomi in entrambi i casi x segue(c,x) x y segue(y,x) segue(c,c) y segue(y,c) x segue(c,x) x y segue(y,x) segue(c,c) segue(d,c) x segue(c,x) x y segue(y,x) segue(c,c) segue(d,c) segue(c,d) segue(d’,d) x segue(x,c) x y segue(y,x) L’universo di Herbrandt all’inizio è formato dal solo c: H ={c} L’universo di Herbrandt diventa ora H ={c, d}. Ripetendo le regole precedenti sul nuovo termine d; L’universo di Herbrandt diventa ora H ={c, d, d’}. Iterando sempre le stesse regole verranno creati infiniti termini e l’universo di Herbrandt diventa H ={c, d, d’, d”, d”’, ….}. che in quest’ordine si seguono mentre c non segue alcun termine: c d d’ d” d”’ ……… Tutti i modelli che verificano questa condizione sono modelli dei due assiomi. x segue(x,c) x y segue(y,x) segue(c,c) y segue(y,c) x segue(x,c) x y segue(y,x) segue(c,c) segue(d,c) x segue(x,c) x y segue(y,x) segue(c,c) segue(d,c) segue(d,c) segue(d’,d) x segue(x,c) x y segue(y,x) L’universo di Herbrandt all’inizio è formato dal solo c: H ={c} L’universo di Herbrandt diventa ora H ={c, d}. Ripetendo le regole precedenti sul nuovo termine d; L’universo di Herbrandt diventa ora H ={c, d, d’}. Ora però la tavola si chiude, in quanto contiene segue(d,c) e segue(d,c) • Le tavole semantiche ci forniscono così un general theorem prover di natura semantica. • Si può da esso costruire un altro general theorem prover di natura sintattica, basato sulla ‘regola di risoluzione’. • La regola di risoluzione è una regola di inferenza • AB AC • BC • In realtà è una generalizzazione del modus ponens e del modus tollens. • e si dimostra facilmente corretta. La regola di risoluzione A B C A AC AB BC 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1 1 AB AC BC • Ne segue che il calcolo con la regola di risoluzione R è corretto. Ma è completo? In generale no, se Assiomi T, non è certo che Assiomi R T. • Anche la risoluzione viene utilizzata per costruire un general theorem prover. • Dato un insieme di clausole S una refutazione di S è una deduzione da S di una contraddizione: S R , che appare come controesempio a tali clausole. • Si può costruire il gtp che verifica se Assiomi T applicando la refutazione all’insieme di clausole dato da Assiomi + T: Assiomi,T R • Il calcolo per refutazione è corretto, ed è anche completo: se Assiomi T allora è possibile trovare una refutazione Assiomi, T R • Abbiamo una sola regola da applicare, ma come organizziamo il controllo sulla sua applicazione? L’algoritmo di risoluzione • Per essere sicuri di trovare una eventuale contraddizione (se esiste) occorre applicare la regola di risoluzione in tutti i modi possibili. • Scriviamo il sistema di formule di cui provare la insoddisfacibilità in forma di clausola, e applichiamo (quando possibile) ad ogni coppia di clausole la regola di risoluzione per ottenere una nuova clausola. La completezza garantisce che se il sistema è insoddisfacibile se ne ricaverà una contraddizione. • La procedura termina sempre (è decidibile) nella logica delle proposizioni, termina sempre nei casi positivi (è semidecidibile) nella logica dei predicati. • Il sistema di clausole {PQ, PQ, PQ, PQ} è insoddisfacibile (semanticamente). • PQ PQ PQ PQ • P P • • Verifichiamo con le tavole di verità (sintatticamente) P Q PQ PQ PQ PQ 0 0 0 1 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 Per ogni interpretazione c’è almeno una formula non soddisfatta. • Per il calcolo dei predicati la procedura non cambia, solo occorre fare in modo che le variabili delle formule da cancellare coincidano la risoluzione e la programmazione logica • (CB),A (A B) C equivalente a • (CB),A, ((A B) C) insoddisfacibile, in forma di clausola: (CB),A, C, AB insoddisfacibile • CB A C AB • B B • • Il problema del controllo sulle inferenze è realizzato con una esplorazione ad albero, studiata nella programmazione logica. Semidecidibilità della logica dei predicati • Con le tavole semantiche ed ancor più con l’algoritmo di risoluzione abbiamo trovato algoritmi che permettono di decidere se una fbf discende da certi assiomi, cioè se è un teorema. Sono procedure che terminano sempre in caso di risposta positiva, ma che possono non terminare nei casi di risposta negativa. Il teorema di Church dimostra che non esiste un algoritmo che termini sempre per qualsiasi fbf della logica dei predicati, la quale quindi, diversamente dalla logica delle proposizioni, è solo semidecidibile Gli algoritmi del GTP • Tavole di verità: sono decidibili ma valgono solo per la logica delle proposizioni. Semantiche, facilmente implementabili. • Deduzione naturale: vale anche per la logica dei predicati, riflette i procedimenti deduttivi naturali sintattici, non decidibile, non algoritmica. • Tavole semantiche: semidecidibili e semantiche, valgono anche per la logica dei predicati, e sono implementabili. • Risoluzione: semidecidibile e sintattica, vale anche per la logica dei predicati programmazione logica • Consideriamo le seguenti proposizioni: <se la luna non è piena allora o i lupi mannari dormono o i vampiri hanno fame>, <se i lupi mannari non dormono allora i vampiri non hanno fame>, <se la luna non è piena allora i lupi mannari non dormono>. • Si dimostri che di conseguenza <la luna è piena>: • con le tavole di verità • con la deduzione naturale • con le tavole semantiche • con la risoluzione • Il problema si risolve con la logica delle proposizioni. Poniamo L:<la luna è piena>, M:<i lupi mannari dormono>, V: <i vampiri hanno fame>. Allora occorre dimostrare: • L M V , M V , L M. L • L 0 • 0 • 0 • 0 • 1 • 1 • 1 • 1 M V M V L 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 1 M V M 0 1 1 1 1 1 1 1 V L 1 0 1 1 1 0 1 1 M Premesse Tesi (L) 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 L M V M V L M L L M M L M V MV V M V M MM L premessa premessa premessa assunzione per sottoderivazione per assurdo import -eliminazione import -eliminazione -eliminazione import modus tollens -introduzione: assurdo export L M V M V L M L L M V M V L L premesse negazione della tesi L M V M V M L L M L M V V L M V L L M L M V M L M V MV L M V M L M V V •In forma di clausola le premesse + la negazione della tesi •diventano: LMV MV LM L M M L MV V L LV