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 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 Assiomi T? Sintatticamente cercare una dimostrazione può funzionare in molti casi ma non abbiamo un algoritmo generale. Semanticamente nella logica predicativa è impensabile 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. 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, è ridicolo, 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 con una formula. • L’algoritmo termina quando non ci sono più connettivi (escluso il ) da eliminare: nelle tavolefoglie 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’’’) … } 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) x A(c,x) y x A(y,x) A(d,f) 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(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, difficile da implementare. • 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 M L L M L