Introduzione alla LOGICA MATEMATICA Corso di Matematica Discreta. Corso di laurea in Informatica. Prof. Luigi Borzacchini VI. La dimostrazione e il general.

Slides:



Advertisements
Presentazioni simili
LIMITI:DEFINIZIONI E TEOREMI
Advertisements

Definitezza Vogliamo poter richiedere la “definitezza” delle funzioni
Equazioni differenziali
MATEMATICA PER L’ECONOMIA
Sommario Nelle lezioni precedenti abbiamo introdotto tutti gli elementi che formano un particolare tipo di linguaggio logico, denominato linguaggio predicativo.
Capitolo 8 Sistemi lineari.
Matematica I: Calcolo differenziale, Algebra lineare, Probabilità e statistica Giovanni Naldi, Lorenzo Pareschi, Giacomo Aletti Copyright © The.
Algebra parziale con predicati
Specifiche Algebriche Modello Iniziale Versione 1.0 Gianna Reggio
Intelligenza Artificiale
Precorsi di Informatica Dott. Antonio Cisternino Settembre 2003
Deduzione naturale + Logica & Calcolabilità
(se a = 0 l’equazione bx + c = 0 è di primo grado)
Il ragionamento classico
Introduzione alle “Ricerche sulla teoria della dimostrazione” (1930)
Introduzione alla Logica Modale.
Algoritmi e Dimostrazioni Stefano Berardi
Intelligenza Artificiale 1 Gestione della conoscenza lezione 7 Prof. M.T. PAZIENZA a.a
Iterazione enumerativa (for)
Intelligenza Artificiale 1 Gestione della conoscenza lezione 8
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
LOGICA E MODELLI Logica e modelli nel ragionamento deduttivo A cura di Salvatore MENNITI.
Modelli simulativi per le Scienze Cognitive Paolo Bouquet (Università di Trento) Marco Casarotti (Università di Padova)
Modelli simulativi per le Scienze Cognitive
Semantica di Tarski.
Qualche esempio di tableaux
Semantica per formule di un linguaggio proposizionale p.9 della dispensa.
Corso di Matematica Discreta cont. 2
Intelligenza Artificiale
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
Intelligenza Artificiale - AA 2001/2002 Logica formale (Parte 2) - 1 Intelligenza Artificiale Breve introduzione alla logica classica (Parte 2) Marco Piastra.
Intelligenza Artificiale - AA 2002/2003 Logica formale (Parte 2) - 1 Intelligenza Artificiale Breve introduzione alla logica classica (Parte 2) Marco Piastra.
IL GIOCO DELLA LOGICA.
Logica formale e logica discorsiva 2° Lezione
Studio funzioni Premesse Campo esistenza Derivate Limiti Definizione di funzione Considerazioni preliminari Funzioni crescenti, decrescenti Massimi,
Logica Matematica Seconda lezione.
Riassunto delle puntate precedenti:
Pierdaniele Giaretta Primi elementi di logica
Agenti logici: calcolo proposizionale Maria Simi a.a. 2008/2009.
ESTENSIONI SEMPLICI e TEOREMA DELL’ELEMENTO PRIMITIVO
Corso di logica matematica
Valutare la difficoltà dei problemi
PRESENTAZIONE DI RAGANATO ROBERTO, BISCONTI GIAMMARCO E
La logica è lo studio del ragionamento.
Logica Lezione Nov 2013.
Logica Lezione ESAME FINALE Si svolgerà dalle 10 alle 11 Mercoledì 18 Dicembre in AULA A Si raccomanda di venire con il libretto.
Logica Lezioni Lunedì 18 Nov. Annuncio E' possibile che dovrò rinviare delle lezioni della prossima settimana. Tenete d'occhio gli annunci.
Logica F. orilia. Lezz Lunedì 4 Novembre 2013.
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
La logica Dare un significato preciso alle affermazioni matematiche
Logica Lezz Nov Reiterazione (RE) P |- P 1 P A 2 P & P 1,1, &I 3 P 2, & E.
Esecuzione di un Programma [P] Una computazione corrisponde al tentativo di dimostrare, tramite la regola di risoluzione, che una formula (goal) segue.
1 Linguaggi di Programmazione Cenni di logica proposizionale.
AOT Lab Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Rappresentazione della Conoscenza e Ragionamento.
2) PROBABILITA’ La quantificazione della ‘possibilità’ del verificarsi di un evento casuale E è detta probabilità P(E) Definizione classica: P(E) è il.
Rappresentazione dell'informazione 1 Se ho una rappresentazione in virgola fissa (es. su segno e 8 cifre con 3 cifre alla destra della virgola) rappresento.
Codici prefissi Un codice prefisso è un codice in cui nessuna parola codice è prefisso (parte iniziale) di un’altra Ogni codice a lunghezza fissa è ovviamente.
Agenti logici: calcolo proposizionale Maria Simi a.a. 2006/2007.
Aristotele Poi ch’innalzai un poco più le ciglia,
Introduzione alla LOGICA MATEMATICA Corso di Matematica Discreta. Corso di laurea in Informatica. Prof. Luigi Borzacchini III. La logica delle proposizioni.
Elementi di Logica Teoria degli insiemi Proff. A. Albanese – E. Mangino Dipartimento di Matematica e Fisica “E. De Giorgi” - Università del Salento Precorso.
Sistemi di equazioni lineari. Sistemi di primo grado di due equazioni a due incognite Risolvere un sistema significa trovare la coppia di valori x e y.
Raccogliamo x al primo membro e 2 al secondo:
Logica Lezione 8, DISTRIBUIRE COMPITO 1.
Introduzione alla LOGICA MATEMATICA Corso di Matematica Discreta. Corso di laurea in Informatica. Prof. Luigi Borzacchini II. La logica delle proposizioni.
Lezione marzo nota su "a meno che" A meno che (non) = oppure Il dolce lo porto io (I) a meno che (non) lo porti Mario (M) I  M   I  M.
Logica Lezione 19, Distribuire compito 3 DATA esame in classe intermedio: Lunedì 20 aprile.
Logica Lezione 11, Annuncio Non si terrà la lezione di Lunedì 16 Marzo.
INSIEMI E LOGICA PARTE QUARTA.
Introduzione alla LOGICA MATEMATICA
Transcript della presentazione:

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 e la conclusione tramite il modus ponens, oppure da e la conclusione per la regola derivata della transitività dell’ . Ma non si poteva dedurre anche da e la conclusione, 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.

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 d 2 =2 l 2

Il teorema vale per ogni quadrato, sia esso di lato l e diagonale d. passaggi non dimostrati: M 2 è 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. 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 d 2 : l 2 = M 2 : N 2. Dal teorema di Pitagora d 2 = 2 l 2, e quindi M 2 = 2N 2, e M 2 è un numero pari. Ma se M 2 è pari, M è pari, e quindi M = 2K. Sostituendo, otteniamo 4 K 2 = 2 N 2 e dividendo per 2 si ha 2 K 2 = N 2, 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.

Le sottoderivazioni sottoderivazioneassunzione condizione di chiusura export Lemma A  B AB ABAB Dimostrazione di A per assurdo AA  contraddizione A  -eliminazione da  x A(x) A(c) c costante nuova B indipendente da c B 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)) p(a)  q(a) assunzione p(a)  -eliminaz.  x p(x)  -introduz. q(a)  -eliminaz.  x q(x)  -introduz.  x p(x)   x q(x)  -introd.  x p(x)   x q(x) b)  x p(x)   x q(x)  x p(x)  -eliminaz.  x q(x)  -eliminaz. p(a) assunzione  x q(x) import q(b) assunzione p(a) import 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) premessa  y A(y,c) sottoderiv.  -elim. A(t,c)  -elim.  x A(t,x)  -intro  x A(t,x) export (non dipende da c)  y  x A(y,x)  -intro (t non libera nelle prem.)  y  x A(y,x) premessa  x A(t,x)  -elim. A(t,c) 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) “Kant è filosofo” f(k) Ci sono 16 interpretazioni Quali violano gli assiomi ? ne rimangono due: m 1 in cui l’estensione di f è {s,k} e quella di g è {s}, e m 2 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 Ø{s}{k}{s,k} Ø {s} {k} {s,k} m 1 m2m2

Semantica) La prima formula è soddisfatta se G  F  Ø, e questo è vero sia in m 1 che in m 2, e quindi Assiomi   x g(x)  f(x). La seconda formula è soddisfatta se F  G, e questo è vero in m 2 ma non in m 1, e quindi Assiomi  x (f(x)  g(x)). Ovviamente la negazione della seconda formula  x (f(x)  g(x)) sarà vera in m 1 ma non in m 2 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. g(s) prem. f(k) prem. f(k) prem. g(s)  f(s)  -elim  x (g(x)  f(x)) prem. f(s)  -elim  x(  g(x)  f(x)) g(s)  f(s)  -intro  g(s)  f(s)  -elim  x (g(x)  f(x))  -intro  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 A 1,A 2,....,A n, trova tutte le interpretazioni M tali che  i M  A i, 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 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à. A  B  (A  B)  (A  B) A  A  B  A B  B A  B  (A  B) A  B A B A B  A  B Nel riquadro le formule da soddisfare. Se compare  P vuol dire che P è da refutare.

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)  x p(x) p(t 1 ) p(t 2 )  p(c) p(t k )  x p(x) La regola a sinistra è banalmente corretta, ma è anche utile poiché esplicitare i t i 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. ove t 1, t 2, …., t k, sono tutti i termini liberi, cioè senza variabili, (anche complessi) che già compaiono nelle tavole (se non ce 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.

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. Ad esempio le interpretazioni che soddisfano 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 l’estensione di Q contiene le coppie (a,b) e (c,a) ma non la coppia (a,c). P(a) Q(a,b) Q(c,a)  P(b)  Q(a,c) PQRPQR

Il sistema di formule {P  Q, P  Q,  P  Q,  P  Q} è insoddisfacibile. è una tavola aperta è una tavola chiusa P  Q P  Q  P  Q  P  Q P P  Q  P  Q  P  Q Q P  Q  P  Q  P  Q P  P  Q  P  Q P  Q  P  Q  P  Q P  P  P  Q P Q  P  Q Q P  P  P  Q Q P  P  Q PQPPQP PQQPQQ QPPQPP QPQQPQ Q P  P  Q  P  Q Q  Q  P  Q  P  Q P  Q  P  P  Q P  Q Q  P  Q

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) p(c’’,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) p(c’,c)  y p(y,c’)  x  y p(y,x) p(c’’,c’) p(c’,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’’’) … } Nell’universo di Herbrandt c’è anche c’ Nell’universo di Herbrandt c’è anche c’’ L’universo di Herbrandt è vuoto, introduciamo 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 ……… q(c) p(c)  q(c)  x ………  p(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?  x  y A(y,x)  y  x A(y,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)   x A(d,x)  y  x A(y,x)  x  y A(y,x)  x A(c,x)  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(c,d)  A(e,c) 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 diventa ora H ={c, d}. Ripetendo le regole precedenti sul nuovo termine d; L’universo di Herbrandt all’inizio è formato dal solo c: H ={c} 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 diventa ora H ={c, d}. Ripetendo le regole precedenti sul nuovo termine d; L’universo di Herbrandt all’inizio è formato dal solo c: H ={c} 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 A  B  A  C B  C In realtà è una generalizzazione del modus ponens e del modus tollens. e si dimostra facilmente corretta.

La regola di risoluzione 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. ABC AA ACACABABBCBC A  B  A  C B  C

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 {P  Q, P  Q,  P  Q,  P  Q} è insoddisfacibile (semanticamente). P  Q P  Q  P  Q  P  Q P  P Verifichiamo con le tavole di verità (sintatticamente) Per il calcolo dei predicati la procedura non cambia, solo occorre fare in modo che le variabili delle formule da cancellare coincidano PQ PQPQP  Q PQPQ  P  Q Per ogni interpretazione c’è almeno una formula non soddisfatta.

la risoluzione e la programmazione logica (C  B),A  (A  B)  C equivalente a (C  B),A,  ((A  B)  C) insoddisfacibile, in forma di clausola: (C  B),A,  C,  A  B insoddisfacibile C  B A  C  A  B  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:,,. Si dimostri che di conseguenza : 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:, M:, V:. Allora occorre dimostrare:  L  M  V,  M   V,  L   M.  L L M V M  V  L  M  V  M   V  L   M Premesse Tesi (L)

 L  M  V premessa  M   V premessa  L   M premessa  L assunzione per sottoderivazione per assurdo  L   M import  M  -eliminazione  L  M  V import M  V  -eliminazione V  -eliminazione  M   V import M modus tollens M  M  -introduzione: assurdo L export

 L  M  V  M   V premesse  L   M  L negazione della tesi  L  M  V  L  M  V  M   V  M   V L  M  L  L  M  M  L  M  V  L  M  V  V M  L  L  M  M  V  V L M  V  L  L  M  M  V  V M V

In forma di clausola le premesse + la negazione della tesi diventano: L  M  V M  V L   M  L L  M  M L 