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 AB
Dimostrazione di
A per assurdo
-eliminazione
da x A(x)
A
A
condizione di
chiusura
B
export
AB
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
GFØ, e questo è vero sia in m1 che in m2, e
quindi Assiomi x g(x)f(x). La seconda formula è
soddisfatta se FG, 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à.
• AB (AB)
(AB)
Nel riquadro le
formule da
•
A
A
B
A
soddisfare. Se
compare P
•
B
B
vuol dire che P
AB
(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 {PQ, PQ,
PQ, PQ} è insoddisfacibile.
•
è una tavola aperta
•
P
PQ
PQ
PQ
è una tavola chiusa
P
Q
PQ
PQ
P
PQ
PQ
P
Q
PQ
P
P
PQ
P
Q
P
P
Q
Q
P
Q
P
PQ
PQ
PQ
PQ
PQ
P
Q
Q
PQ
Q
PQ
PQ
PQ
Q
P
PQ
PQ
Q
P
P
PQ
Q
Q
PQ
PQ
Q
P
PQ
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
• 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
A
B
C
A
AC
AB
BC
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
AB
AC
BC
• 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 {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)
P
Q
PQ
PQ
PQ
PQ
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
• (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: <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
MV
V
M V
M
MM
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
MV
L
M
V
M
L
M
V
V
•In forma di clausola le premesse + la negazione della tesi
•diventano:
LMV
MV
LM
M
L

L  M
L