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 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

• 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 è AB: H AB sse H A
e H B, sse A S* e B S*, sse AB 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  AAss, 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  AAss, 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à.
• 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’’’) … }
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
• 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, 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
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
L  M
M
L
MV
V

L
LV