Soluzioni degli esercizi di logica dei predicati File

M. Barlotti
 Soluzioni per gli
“Esercizi di Logica”

v. !."

Capitolo L2  Pag. 1
L2.  Soluzione degli esercizi su: Logica dei predicati.
Esercizio L2.1
Si consideri un linguaggio _ per la logica dei predicati al quale appartengono un simbolo di
funzione 0 di arietà ", un simbolo di predicato P di arietà ", un simbolo di predicato Q di
arietà # e due variabili individuali B, C . Si trasformi la seguente formula ben formata di _ in
forma di Skolem:
a(bB)(cT (B)) ” ((aB)T (B) Ä (bC )Q(0 (C ), C ))b • a(aB)ca(aC ) Q(B, C )bb .
Soluzione  In primo luogo, trasformiamo la formula data in forma normale prenessa.
Essa è formata con un “ • ” a partire dalle due formule
! ³ (bB)(cT (B)) ” ((aB)T (B) Ä (bC )U(0 (C ), C ))
e
" ³ (aB)ca(aC )U(B, C )b
ciascuna delle quali va trasformata in forma normale prenessa.
La formula ! è formata con un “ ” ” a partire dalle due formule
!" ³ (bB)(cT (B)) (già in FNP)
!# ³ (aB)T (B) Ä (bC )U(0 (C ), C ) ´ c(aB)T (B) ” (bC )U(0 (C ), C ) ´
´ (bB)cT (B) ” (bC )U(0 (C ), C ) ´ (bB)cT (B) ” (bB)U(0 (B), B) ´
´ (bB)acT (B) ” U(0 (B), B)b (ora in FNP)
e dunque la forma normale prenessa di ! è
(bB)a(cT (B)) ” acT (B) ” Q(0 (B), B)bb
che naturalmente può essere semplificata in
(bB)acT (B) ” Q(0 (B), B)b
mentre la forma normale prenessa di " è
(aB)(bC )cQ(B, C ) ´ (aD )(bC )cQ(D , C )
cosicché la FNP di ! • " è
(bB)(aD )(bC )aacT (B) ” Q(0 (B), B)b • cQ(D , C )b
Infine, per la skolemizzazione basterà introdurre una costante - in luogo di B e una funzione
unaria 1(D ) in luogo di C, ottenendo
(aD )aacT (- ) ” Q(0 (- ), - )b • cQ(D , 1(D ))b .
M. Barlotti
 Soluzioni per gli
“Esercizi di Logica”

v. !."

Capitolo L2  Pag. 2
Esercizio L2.2
In un opportuno linguaggio della logica dei predicati, siano H, K simboli di predicato e B, C, D
variabili individuali. Si stabilisca se
a(bB)H(B)b Ä a(bC )K(C)b } (bD )aH(D ) Ä K(D )b
Soluzione “astuta” (applicando la definizione)  Dobbiamo provare che in ogni
modello nel quale è vero che
a(bB)H(B)b Ä a(bC )K(C )b
è anche vero che
(bD )aH(D ) Ä K(D )b .
Sia allora ` un modello nel quale è vero che a(bB)H(B)b Ä a(bC)K(C )b.
Consideriamo in tale modello la formula (bD )cH(D ). Essa, per il principio di Aristotele, è vera
oppure è falsa.
Se è vera, esiste in ` un elemento - per il quale cH(- ) e quindi H(- ) Ä K(- ); in questo caso,
si è provato che in ` è vero che (bD )aH(D ) Ä K(D )b .
Se invece la formula (bD )cH(D ) è falsa, è vera la sua negazione e quindi è vero in ` che
(aB)H(B); scelto un elemento + di `, è in particolare vero in ` che H(+), quindi in ` è
vero che (bB)H(B). Ma per ipotesi in ` è vero che a(bB)H(B)b Ä a(bC )K(C )b, dunque in `
esiste un elemento A tale che K(A) è vera; ma allora in ` è vera la H(A) Ä K(A) e infine in
` è vero che (bD )aH(D ) Ä K(D )b, come si voleva dimostrare.
Soluzione “meccanica” (applicando le tecniche apprese a lezione)  Dobbiamo
provare che non è soddisfacibile la formula
: ³ aa(bB)H(B)b Ä a(bC )K(C)bb • c(bD )aH(D ) Ä K(D )b .
A tale scopo la trasformiamo in forma normale prenessa, la skolemizziamo e la trasformiamo
ancora in un insieme di clausole.
: ´ aca(bB)H(B)b ” a(bC )K(C )bb • (aD )aH(D ) • cK(D )b ´
´ aa(aB)cH(B)b ” a(bC )K(C )bb • (aD )aH(D ) • cK(D )b ´
´ a(bC )aK(C )b ” (aB)acH(B)bb • (aB)aH(B) • cK(B)b ´
´ (bC )(aB)aaK(C )b ” acH(B)bb • aH(B) • cK(B)b
che, in forma di Skolem (con l’introduzione di una costante - ) e sopprimendo il quantificatore
universale per trasformarla in un insieme di clausole diventa
{{K(- ), cH(B)}, {H(B)}, {cK(B)}} .
L’universo di Herbrandt consiste soltanto nella costante - , quindi possiamo lavorare su
{{K(- ), cH(- )}, {H(- )}, {cK(- )}} .
Applicando l’algoritmo di Davis  Putnam con pivot K(- ) si ottiene
{{cH(- )}, {H(- )}}
e subito dopo l’insieme che consiste nella sola clausola vuota. Dunque l’insieme di clausole
non è soddisfacibile, e si è provata la
a(bB)H(B)b Ä a(bC )K(C)b } (bD )aH(D ) Ä K(D )b .
M. Barlotti
 Soluzioni per gli
“Esercizi di Logica”

v. !."

Capitolo L2  Pag. 3
Esercizio L2.3
Si esprimano le premesse
(3) Ogni numero primo è un numero irriducibile;
(33) #% non è un numero primo;
in un opportuno linguaggio della logica dei predicati e si stabilisca, motivando la risposta, se è
corretto trarne la deduzione che
(333) #% non è un numero irriducibile.
Soluzione  Introduciamo due simboli di predicato unario (I, P) e una costante (8),
che interpretiamo come segue per tradurre le premesse date:
I(B) ³ B è un numero irriducibile;
P(B) ³ B è un numero irriducibile;
: ³ #%.
In questo linguaggio della logica dei predicati, le premesse diventano:
( 3)
(aB)(P(B) Ä I(B)) ;
(33)
cP(8) ;
e la supposta conclusione diventa
(333)
cI(8) .
Dobbiamo pertanto vedere se
(aB)(P(B) Ä I(B)) • cP(8) } cI(8)
ossia se la formula ben formata : definita da
(aB)(P(B) Ä I(B)) • cP(8) • c(cI(8))
è o non è soddisfacibile.
Scriviamo : in forma normale prenessa:
: ´ (aB)((cP(B) ” I(B)) • cP(8) • I(8)) .
In questa forma, : è già skolemizzata e possiamo considerare l’insieme di clausole ad
essa associato
{{cP(B), I(B)}, {cP(8)}, {I(8)}} .
Poiché l’universo di Herbrandt consiste della sola costante 8, assegniamo direttamente
alla B il valore 8 e otteniamo
{{cP(8), I(8)}, {cP(8)}, {I(8)}} .
Possiamo applicare l’algoritmo di Davis-Putnam! Scegliendo come pivot nell’ordine P(8) e
I(8) si giunge rapidamente all’insieme vuoto di clausole: dunque l’insieme di clausole dato è
soddisfacibile e la (333) non è conseguenza logica delle (3) e (33).
In effetti, interpretando (sempre nell’insieme  dei numeri naturali) P(B) come “B è
multiplo di %”, I(B) come “B è pari” e 8 come il numero ', le premesse risultano vere (ogni
multiplo di % è un numero pari, e ' non è un multiplo di %) ma la conseguenza è falsa (non è
vero infatti che ' non è pari).
M. Barlotti
 Soluzioni per gli
“Esercizi di Logica”

v. !."

Capitolo L2  Pag. 4
Esercizio L2.4
Date le premesse
( 3)
Tutti quelli che devono prendere il treno e sono in ritardo devono correre;
(33) Paolo deve prendere il treno;
(333) Paolo non è in ritardo;
le si esprimano in un opportuno linguaggio della logica dei predicati e si stabilisca, motivando
la risposta, se è corretta la deduzione che
(3@) Paolo non deve correre.
Soluzione  Introduciamo tre simboli di predicato unario (T, R, C) e una costante (:),
che interpretiamo come segue per tradurre le premesse date:
T(B) ³ B deve prendere il treno;
R(B) ³ B è in ritardo;
C(B) ³ B deve correre;
: ³ Paolo.
In questo linguaggio della logica dei predicati, le premesse diventano:
( 3)
(aB)((T(B) • R(B)) Ä C(B)) ;
(33)
T(:) ;
(333)
cR(:) ;
e la supposta conclusione diventa
(3@)
cC(:) .
Dobbiamo pertanto vedere se
(aB)((T(B) • R(B)) Ä C(B)) • T(:) • cR(:) } cC(:)
ossia se la formula ben formata : definita da
(aB)((T(B) • R(B)) Ä C(B)) • T(:) • cR(:) • c(cC(:))
è o non è soddisfacibile.
Scriviamo : in forma normale prenessa:
: ´ (aB)((cT(B) ” cR(B) ” C(B)) • T(:) • cR(:) • C(:)) .
In questa forma, : è già skolemizzata e possiamo considerare l’insieme di clausole ad
essa associato
{{cT(B), cR(B), C(B)}, {T(:)}, {cR(:)}, {C(:)}} .
Poiché l’universo di Herbrandt consiste della sola costante :, assegniamo direttamente
alla B il valore : e otteniamo
{{cT(:), cR(:), C(:)}, {T(:)}, {cR(:)}, {C(:)}} .
Possiamo applicare l’algoritmo di Davis-Putnam!
M. Barlotti
 Soluzioni per gli
“Esercizi di Logica”

v. !."

Capitolo L2  Pag. 5
Pivot C(:):
clausole non contenenti né C(:) né cC(:): {T(:))}, {cR(:)} ;
non ci sono risolventi da calcolare!
{{T(:)}, {cR(:)}}
È già chiaro a questo punto che l’insieme di clausole è soddisfacibile (chi non è convinto
prosegua con l’algoritmo di Davis-Putnam e troverà alla fine l’insieme vuoto di clausole).
Dunque non si può concludere che Paolo non deve correre! (In effetti, se ci fosse un leone che
lo insegue...)
Esercizio L2.5
Sia
: ³ (bB)(aC )(P(B) Ä P(C )) ;
< ³ (bC)(aB)(P(B) Ä P(C )) .
Si dica, motivando la risposta:
( 3)
(33)
se < è conseguenza logica di :;
se : e < sono logicamente equivalenti.
Soluzione  Sia : che < sono tautologie, quindi ciascuna di esse è conseguenza
logica dell’altra e in particolare sono logicamente equivalenti.
Proviamo che : è una tautologia. Qualunque siano l’ambiente A e l’interpretazione
scelta, ci sono soltanto due possibilità: esiste in A un B! per quale P(B! ) è falso, opure P(B) è
vero per ogni B − A. Nel primo caso, P(B! ) Ä P(C ) per ogni C − A (perché P(B! ) è falso); nel
secondo caso, P(B) Ä P(C ) per ogni C − A (perché P(C ) è vero per ogni C − A) scegliendo B a
piacere. Dunque : è una tautologia.
Analogamente si prova che < è una tautologia. Qualunque siano l’ambiente A e
l’interpretazione scelta, ci sono soltanto due possibilità: esiste in A un C! per quale P(C! ) è
vero, opure P(B) è falso per ogni B − A. Nel primo caso, P(B) Ä P(C! ) per ogni B − A (perché
P(C! ) è vero); nel secondo caso, P(B) Ä P(C ) per ogni B − A (perché P(B) è falso per ogni
B − A) scegliendo C a piacere. Dunque anche < è una tautologia.
Esercizio L2.6
Siano B, C , D variabili individuali, P un simbolo di predicato unario e Q un simbolo di
predicato binario. Si stabilisca se
(aB)c(bD )(Q(B, D ) Ä P(B)) } (bC )(Q(C , C ) • cP(C )) .
Soluzione  Se ! e " sono formule, sappiamo in generale che " è conseguenza logica
di ! se e soltanto se ! • (c" ) non è soddisfacibile.
M. Barlotti
 Soluzioni per gli
Dunque la formula
(aB)c(bD )(Q(B, D ) Ä P(B))
“Esercizi di Logica”

v. !."

Capitolo L2  Pag. 6
(bC )(Q(C , C ) • cP(C ))
è conseguenza logica della formula
se e soltanto se la formula
(aB)c(bD )(Q(B, D ) Ä P(B)) • c(bC )(Q(C , C ) • cP(C ))
non è soddisfacibile.
Scriviamo tale formula in forma normale prenessa in modo che la parte senza
quantificatori sia in forma normale congiuntiva.
(aB)c(bD )(Q(B, D ) Ä P(B)) • c(bC )(Q(C , C ) • cP(C ))
(aB)c(bD )(cQ(B, D ) ” P(B)) • (aC )c(Q(C , C ) • cP(C ))
(aB)(aD )(Q(B, D ) • cP(B)) • (aC )(cQ(C , C ) ” P(C ))
(aB)(aD )(aC )(Q(B, D ) • cP(B) • (cQ(C , C ) ” P(C ))
Nella formula così ottenuta non compaiono quantificatori esistenziali, quindi possiamo
esprimerla direttamente come un insieme di clausole:
{{Q(B, D )}, {cP(B)}, {cQ(C , C ), P(C )}}
L’universo di Herbrandt consta di un’unica costante, sia essa - . Ponendo B ³ - ,
C ³ - e z ³ - , si ottiene l’insieme di clausole chiuse
{{Q(- , - )}, {cP(- )}, {cQ(- , - ), P(- )}}
al quale possiamo applicare l’algoritmo di Davis-Putnam.
Pivot P(- ):
{{Q(- , - )}, {cQ(- , - )}}
Pivot Q(- , - ):
{[]}
Dunque la formula considerata non è soddisfacibile, e la (bC)(Q(C , C ) • cP(C ))
effettivamente conseguenza logica della (aB)c(bD )(Q(B, D ) Ä P(B)) .
è
Esercizio L2.7
Si consideri un linguaggio _ per la logica dei predicati al quale appartengono un simbolo di
funzione 1 di arietà ", un simbolo di predicato P di arietà #, un simbolo di predicato Q di arietà
" e due variabili individuali B, C . Si trasformi la seguente formula ben formata di _ in forma di
Skolem:
a(aB)ca(aC )P(B, C )bb • (a(bB)cQ(B)b ” ((aB)Q(B) Ä (bC )P(1(C ), C ))) .
Soluzione  In primo luogo, trasformiamo la formula data in forma normale prenessa.
Essa è formata con un “ • ” a partire dalle due formule
! ³ (aB)ca(aC )P(B, C )b
e
" ³ a(bB)cQ(B)b ” ((aB)Q(B) Ä (bC )P(1(C ), C ))
ciascuna delle quali va trasformata in forma normale prenessa.
M. Barlotti
 Soluzioni per gli
“Esercizi di Logica”

v. !."

Capitolo L2  Pag. 7
La forma normale prenessa di ! è
(aB)(bC )cP(B, C ) ´ (aD )(bA)cP(D , A) .
La formula " è formata con un “ ” ” a partire dalle due formule
"" ³ (bB)(cQ(B)) (già in FNP)
"# ³ (aB)Q(B) Ä (bC )P(1(C ), C ) ´ c(aB)Q(B) ” (bC )P(1(C ), C ) ´
´ (bB)cQ(B) ” (bC )Q(1(C ), C ) ´ (bB)cQ(B) ” (bB)Q(1(B), B) ´
´ (bB)acQ(B) ” Q(1(B), B)b (ora in FNP)
e dunque la forma normale prenessa di " è
(bB)a(cU(B)) ” acU(B) ” Q(1(B), B)bb ´ (bB)acU(B) ” Q(1(B), B)b
cosicché la FNP di ! • " è
(bB)(aD )(bA)acP(D , A) • acQ(B) ” Q(1(B), B)bb .
Infine, per la skolemizzazione basterà introdurre una costante - in luogo di B e una funzione
unaria 0 (D ) in luogo di A, ottenendo
(aD )acP(D , 1(D ) • acQ(- ) ” Q(1(- ), - )b)b .
Esercizio L2.8
Siano B, C variabili individuali, P un simbolo di predicato binario e Q un simbolo di predicato
unario. Si stabilisca se
(aB)c(bC )(P(B, C ) Ä Q(B)) } (bB)(P(B, B) • cQ(B)) .
Soluzione  Se ! e " sono formule, sappiamo in generale che " è conseguenza logica
di ! se e soltanto se ! • (c" ) non è soddisfacibile.
Dunque la formula
(aB)c(bC )(P(B, C ) Ä Q(B))
(bB)(P(B, B) • cQ(B))
è conseguenza logica della formula
se e soltanto se la formula
(aB)c(bC )(P(B, C ) Ä Q(B)) • c(bB)(P(B, B) • cQ(B))
non è soddisfacibile.
Scriviamo tale formula in forma normale prenessa in modo che la parte senza
quantificatori sia in forma normale congiuntiva.
(aB)c(bC )(P(B, C ) Ä Q(B)) • c(bB)(P(B, B) • cQ(B))
(aB)c(bC )(cP(B, C ) ” Q(B)) • (aB)c(P(B, B) • cQ(B))
(aB)(aC )(P(B, C) • cQ(B)) • (aB)(cP(B, B) ” Q(B))
(aB)(aC )a(P(B, C ) • cQ(B) • (cP(B, B) ” Q(B))b
Nella formula così ottenuta non compaiono quantificatori esistenziali, quindi possiamo
direttamente esprimerla come un insieme di clausole:
{{P(B, C )}, {cQ(B)}, {cP(B, B), Q(B)}}
M. Barlotti
 Soluzioni per gli
“Esercizi di Logica”

v. !."

Capitolo L2  Pag. 8
L’universo di Herbrandt consta di un’unica costante, sia essa - . Ponendo B ³ - e
C ³ -, si ottiene l’insieme di clausole chiuse
{{P(- , - )}, {cQ(- )}, {cP(- , - ), Q(- )}}
al quale possiamo applicare l’algoritmo di Davis-Putnam.
Pivot Q(- ):
{{P(- , - )}, {cP(- , - )}}
Pivot P(- , - ):
{[]}
Dunque la formula considerata non è soddisfacibile, e la (bB)(P(B, B) • cQ(B))
effettivamente conseguenza logica della (aB)c(bC )(P(B, C ) Ä Q(B)).
è
Esercizio L2.9
Date le premesse
(3) Tutti quelli che hanno sete e non hanno i soldi per comprarsi una bibita bevono l’acqua
del rubinetto;
(33) Paolo ha sete;
(333) Paolo ha i soldi per comprarsi una bibita;
le si esprimano in un opportuno linguaggio della logica dei predicati e si stabilisca, motivando
la risposta, se è corretta la deduzione che
(3@) Paolo non beve l’acqua del rubinetto.
Soluzione  Introduciamo tre simboli di predicato unario (T, S, A) e una costante (:),
che interpretiamo come segue per tradurre le premesse date:
T(B) ³ B ha sete;
S(B) ³ B ha i soldi per comprarsi una bibita;
A(B) ³ B beve l’acqua del rubinetto;
: ³ Paolo.
In questo linguaggio della logica dei predicati, le premesse diventano:
( 3)
(aB)((T(B) • cS(B)) Ä A(B)) ;
(33)
T(:) ;
(333)
S(:) ;
e la supposta conclusione diventa
(3@)
cA(:) .
M. Barlotti
 Soluzioni per gli
“Esercizi di Logica”

v. !."

Capitolo L2  Pag. 9
Dobbiamo pertanto vedere se
(aB)((T(B) • cS(B)) Ä A(B)) • T(:) • S(:) } cA(:)
ossia se la formula ben formata : definita da
(aB)((T(B) • cS(B)) Ä A(B)) • T(:) • S(:) • c(cA(:))
è o non è soddisfacibile.
Scriviamo : in forma normale prenessa:
: ´ (aB)((cT(B) ” S(B) ” A(B)) • T(:) • S(:) • A(:)) .
In questa forma, : è già skolemizzata e possiamo considerare l’insieme di clausole ad
essa associato
{{cT(B), S(B), A(B)}, {T(:)}, {S(:)}, {A(:)}} .
Poiché l’universo di Herbrandt consiste della sola costante :, assegniamo direttamente
alla B il valore : e otteniamo
{{cT(:), S(:), A(:)}, {T(:)}, {S(:)}, {A(:)}} .
Possiamo applicare l’algoritmo di Davis-Putnam!
Pivot A(:):
clausole non contenenti né A(:) né cA(:): {T(:))}, {S(:)} ;
non ci sono risolventi da calcolare!
{{T(:)}, {S(:)}}
È già chiaro a questo punto che l’insieme di clausole è soddisfacibile (chi non è convinto
prosegua con l’algoritmo di Davis-Putnam e troverà alla fine l’insieme vuoto di clausole).
Dunque non si può concludere che Paolo non beve l’acqua del rubinetto! (In effetti, se non c’è
in giro nessuno che vende bibite...)
Esercizio L2.10
Date le premesse
(3) Tutti gli aderenti al “Club dei Cattivi Soggetti” sono ladri o mentitori;
(33) Chi è iscritto alle “Giovani Marmotte” non mente mai;
(333) Lupetto è iscritto alle “Giovani Marmotte” e aderisce al “Club dei Cattivi Soggetti”;
le si esprimano in un opportuno linguaggio della logica dei predicati e si formalizzi la
deduzione che
(3@) Lupetto è un ladro.
M. Barlotti
 Soluzioni per gli
“Esercizi di Logica”

v. !."

Capitolo L2  Pag. 10
Soluzione  Introduciamo quattro simboli di predicato unario (C, G, L, M) e una
costante (j), che interpretiamo come segue per tradurre le premesse date:
C(B) ³ B aderisce al “Club dei Cattivi Soggetti”;
G(B) ³ B è iscritto alle “Giovani Marmotte”;
L(B) ³ B è un ladro;
M(B) ³ B è un mentitore;
j ³ Lupetto.
In questo linguaggio della logica dei predicati, le premesse diventano:
( 3)
(aB)(C(B) Ä (L(B) ” M(B))) ;
(33)
(aB)(G(B) Ä cM(B)) ;
(333)
C(j) • G(j) ;
e la desiderata conclusione diventa
(3@)
L(j) .
Dobbiamo pertanto dimostrare che
(aB)(C(B) Ä (L(B) ” M(B))) • (aB)(G(B) Ä cM(B)) • C(j) • G(j) } L(j)
ossia che la formula ben formata : definita da
(aB)(C(B) Ä (L(B) ” M(B))) • (aB)(G(B) Ä cM(B)) • C(j) • G(j) • cL(j)
non è soddisfacibile.
Scriviamo : in forma normale prenessa:
: ´ (aB)acC(B) ” (L(B) ” M(B)) • (cG(B) ” cM(B)) • C(j) • G(j) • cL(j)b .
In questa forma, : è già skolemizzata e possiamo considerare l’insieme di clausole ad
essa associato
{{cC(B), L(B), M(B)}, {cG(B), cM(B)}, {C(j)}, {G(j)}, {cL(j)}} .
Poiché l’universo di Herbrandt consiste della sola costante j, assegniamo direttamente
alla B il valore j e otteniamo
{{cC(j), L(j), M(j)}, {cG(j), cM(j)}, {C(j)}, {G(j)}, {cL(j)}} .
Possiamo applicare l’algoritmo di Davis-Putnam!
Pivot C(j):
clausole non contenenti né C(j) né cC(j): {cG(j), cM(j)}, {G(j)}, {cL(j)} ;
ResC(j) ({cC(j), L(j), M(j)}, {C(j)}) œ {L(j), M(j)} ;
{{L(j), M(j)}, {cG(j), cM(j)}, {G(j)}, {cL(j)}}
M. Barlotti
 Soluzioni per gli
“Esercizi di Logica”

v. !."

Capitolo L2  Pag. 11
Pivot G(j):
clausole non contenenti né G(j) né cG(j): {L(j), M(j)}, {cL(j)} ;
ResG(j) ({cG(j), cM(j)}, {G(j)}) œ {cM(j)} ;
{{L(j), M(j)}, {cL(j)}, {cM(j)}}
Pivot L(j):
clausole non contenenti né L(j) né cL(j): {cM(j)} ;
ResL(j) ({L(j), M(j)}, {cL(j)}) œ {M(j)} ;
{{cM(j)}, {M(j)}}
Pivot M(j):
ResM(j) ({cM(j)}, {M(j)}) œ [] ;
{[]}
Poiché abbiamo ottenuto la clausola vuota, l’insieme di clausole considerato non è
soddisfacibile; dunque nemmeno la formula : è soddisfacibile, e possiamo concludere che la
(3@) è conseguenza logica delle (3), (33) e (333) .
Esercizio L2.11
Si stabilisca se dalle premesse
( 3)
Chi non è un cane è un gatto;
(33)
Ogni cane insegue qualche gatto;
(333)
Fufi non insegue alcun gatto;
si può dedurre logicamente che
(3@)
Fufi è un gatto.
Soluzione  Introduciamo opportuni simboli di predicato:
C(B) traduce “B è un cane”;
G(B) traduce “B è un gatto”;
I(B, C) traduce “B insegue C ”.
Inoltre, introduciamo una costante 0! per indicare Fufi. Posto allora
! ³ (aB)(cC(B) Ä G(B)) ;
" ³ (aB)(C(B) Ä (bC )(G(C ) • I(B, C ))) ;
# ³ c(bB)(G(B) • I(0! , B)) ;
$ ³ G(0! ) ;
dobbiamo dimostrare che
{! , " , # } } $
ossia che
! • " • # • (c$ )
non è soddisfacibile.
M. Barlotti
 Soluzioni per gli
“Esercizi di Logica”

v. !."

Capitolo L2  Pag. 12
Posto : ³ ! • " • # • (c$ ), scriviamo : in forma normale prenessa in modo che la
parte senza quantificatori sia in forma normale congiuntiva.
(aB)(cC(B) Ä G(B)) • (aB)(C(B) Ä (bC )(G(C ) • I(B, C ))) • c(bB)(G(B) • I(0! , B)) • cG(0! )
(aB)(C(B) ” G(B)) • (aB)(cC(B) ” (bC )(G(C ) • I(B, C ))) • (aB)c(G(B) • I(0! , B)) • cG(0! )
(aB)(C(B) ” G(B)) • (aB)(bC )(cC(B) ” (G(C ) • I(B, C ))) • (aB)(cG(B) ” cI(0! , B)) • cG(0! )
(aB)(C(B) ” G(B)) • (aB)(bC)((cC(B) ” G(C)) • (cC(B) ” I(B, C))) • (aB)(cG(B) ” cI(0! , B)) • cG(0! )
(aB)a(C(B) ” G(B)) • (bC )((cC(B) ” G(C )) • (cC(B) ” I(B, C ))) • (cG(B) ” cI(0! , B)) • cG(0! )b
(aB)(bC )a(C(B) ” G(B)) • ((cC(B) ” G(C )) • (cC(B) ” I(B, C ))) • (cG(B) ” cI(0! , B)) • cG(0! )b
Adesso introduciamo un simbolo di funzione 2 e poniamo C ³ 2 (B) per ottenere la
“forma di Skolem”:
(aB)a(C(B) ” G(B)) • ((cC(B) ” G(2 (B))) • (cC(B) ” I(B, 2 (B)))) • (cG(B) ” cI(0! , B)) • cG(0! )b.
L’universo di Herbrandt associato è {0! , 2(0! ), 2 (2 (0! )), 2 (2 (2 (0! ))), á }.
Trasformiamo infine la formula così ottenuta in un insieme di clausole
{{C(B), G(B)}, {cC(B), G(2 (B))}, {cC(B), I(B, 2(B))}, {cG(B), cI(0! , B)}, {cG(0! )}}
e cerchiamo di trovarne una confutazione rapida assegnando alla B opportuni valori scelti
nell’universo di Herbrandt.
Per chiarezza, poniamo:
V" (B) ³ {C(B), G(B)} ;
V# (B) ³ {cC(B), G(2(B))} ;
V$ (B) ³ {cC(B), I(B, 2(B))} ;
V% (B) ³ {cG(B), cI(0! , B)} ;
V& ³ {cG(0! )} .
Una possibile confutazione rapida è:
V' ³ V" (0! ) œ {C(0! ), G(0! )} ;
V( ³ ResG(0 ) ÐV& , V' ) œ {C(0! )} ;
!
V) ³ V$ (0! ) œ {cC(0! ), I(0! , 2(0! ))} ;
V* ³ ResC(0 ) ÐV( , V) ) œ {I(0! , 2 (0! ))} ;
!
V"! ³ V% (2(0! )) œ {cG(2(0! )), cI(0! , 2 (0! ))} ;
V"" ³ ResI(0 , 2(0 )) ÐV* , V"! ) œ {cG(2 (0! ))} ;
!
!
V"# ³ V# (0! ) œ {cC(0! ), G(2(0! ))} ;
V"$ ³ ResG(2(0 )) ÐV"" , V"# ) œ {cC(0! )} ;
!
V"% ³ ResC(0 ) ÐV( , V"$ ) œ [] .
!
Si è così provato che dalle (3), (33) e (333) si può dedurre logicamente la (3@).
M. Barlotti
 Soluzioni per gli
“Esercizi di Logica”

v. !."

Capitolo L2  Pag. 13
Esercizio L2.12
In un opportuno linguaggio della logica dei predicati, siano P, Q simboli di predicato e +, ,, variabili individuali. Si stabilisca se
a(b+)P(+)b Ä a(b,)Q(,)b } (b- )aP(- ) Ä Q(- )b
Soluzione “astuta” (applicando la definizione)  Dobbiamo provare che in ogni
modello nel quale è vero che
a(b+)P(+)b Ä a(b,)Q(,)b
è anche vero che
(b- )aP(- ) Ä Q(- )b .
Sia allora ` un modello nel quale è vero che a(b+)P(+)b Ä a(b,)Q(, )b.
Consideriamo in tale modello la formula (b- )cP(- ). Essa, per il principio di Aristotele, è vera
oppure è falsa.
Se è vera, esiste in ` un elemento 5 per il quale cP(5 ) e quindi P(5 ) Ä Q(5 ); in questo caso,
si è provato che in ` è vero che (b- )aP(- ) Ä Q(- )b .
Se invece la formula (b- )cP(- ) è falsa, è vera la sua negazione e quindi è vero in ` che
(a+)P(+); scelto un elemento + di `, è in particolare vero in ` che P(+), quindi in ` è vero
che (b+)P(+). Ma per ipotesi in ` è vero che a(b+)P(+)b Ä a(b,)Q(,)b, dunque in ` esiste
un elemento A tale che Q(A) è vera; ma allora in ` è vera la P(A) Ä Q(A) e infine in ` è
vero che (b- )aP(- ) Ä Q(- )b, come si voleva dimostrare.
Soluzione “meccanica” (applicando le tecniche apprese a lezione)  Dobbiamo
provare che non è soddisfacibile la formula
: ³ aa(b+)P(+)b Ä a(b,)Q(,)bb • c(b- )aP(- ) Ä Q(- )b .
A tale scopo la trasformiamo in forma normale prenessa, la skolemizziamo e la trasformiamo
ancora in un insieme di clausole.
: ´ aca(b+)P(+)b ” a(b,)Q(,)bb • (a- )aP(- ) • cQ(- )b ´
´ aa(a+)cP(+)b ” a(b, )Q(,)bb • (a- )aP(- ) • cQ(- )b ´
´ a(b,)aQ(,)b ” (a+)acP(+)bb • (a+)aP(+) • cQ(+)b ´
´ (b,)(a+)aaQ(,)b ” acP(+)bb • aP(+) • cQ(+)b
che, in forma di Skolem (con l’introduzione di una costante 5 ) e sopprimendo il quantificatore
universale per trasformarla in un insieme di clausole diventa
{{Q(5 ), cP(+)}, {P(+)}, {cQ(+)}} .
L’universo di Herbrandt consiste soltanto nella costante 5 , quindi possiamo lavorare su
{{Q(5 ), cP(5 )}, {P(5 )}, {cQ(5 )}} .
Applicando l’algoritmo di Davis  Putnam con pivot Q(5 ) si ottiene
{{cP(5 )}, {P(5 )}}
e subito dopo l’insieme che consiste nella sola clausola vuota. Dunque l’insieme di clausole
non è soddisfacibile, e si è provata la
a(b+)P(+)b Ä a(b,)Q(,)b } (b- )aP(- ) Ä Q(- )b .
M. Barlotti
 Soluzioni per gli
“Esercizi di Logica”

v. !."

Capitolo L2  Pag. 14
Esercizio L2.13
Sia
: ³ (bB)(aC )(Q(B) Ä Q(C )) ;
< ³ (bC)(aB)(Q(B) Ä Q(C )) .
Si dica, motivando la risposta:
( 3)
(33)
se < è conseguenza logica di :;
se : e < sono logicamente equivalenti.
Soluzione  Sia : che < sono tautologie, quindi ciascuna di esse è conseguenza
logica dell’altra e in particolare sono logicamente equivalenti.
Proviamo che : è una tautologia. Qualunque siano l’ambiente A e l’interpretazione
scelta, ci sono soltanto due possibilità: esiste in A un B! per quale Q(B! ) è falso, opure Q(B) è
vero per ogni B − A. Nel primo caso, Q(B! ) Ä Q(C ) per ogni C − A (perché Q(B! ) è falso);
nel secondo caso, Q(B) Ä Q(C) per ogni C − A (perché Q(C ) è vero per ogni C − A)
scegliendo B a piacere. Dunque : è una tautologia.
Analogamente si prova che < è una tautologia. Qualunque siano l’ambiente A e
l’interpretazione scelta, ci sono soltanto due possibilità: esiste in A un C! per il quale Q(C! ) è
vero, opure Q(B) è falso per ogni B − A. Nel primo caso, Q(B) Ä Q(C! ) per ogni B − A
(perché Q(C! ) è vero); nel secondo caso, Q(B) Ä Q(C) per ogni B − A (perché Q(B) è falso per
ogni B − A) scegliendo C a piacere. Dunque anche < è una tautologia.
Esercizio L2.14
Siano B, C , D variabili individuali, P un simbolo di predicato unario e R un simbolo di
predicato binario. Si stabilisca se
(aB)c(bC )(R(B, C ) Ä P(B)) } (bD )(R(D , D ) • cP(D )) .
Soluzione  Se ! e " sono formule, sappiamo in generale che " è conseguenza logica
di ! se e soltanto se ! • (c" ) non è soddisfacibile.
Dunque la formula
(bD )(R(D , D ) • cP(D ))
è conseguenza logica della formula
(aB)c(bC )(R(B, C ) Ä P(B))
se e soltanto se la formula
(aB)c(bC )(R(B, C ) Ä P(B)) • c(bD )(R(D , D ) • cP(D ))
non è soddisfacibile.
Scriviamo tale formula in forma normale prenessa in modo che la parte senza
quantificatori sia in forma normale congiuntiva.
(aB)c(bC )(R(B, C ) Ä P(B)) • c(bD )(R(D , D ) • cP(D ))
(aB)c(bC )(cR(B, C ) ” P(B)) • (aD )c(R(D , D ) • cP(D ))
M. Barlotti
 Soluzioni per gli
“Esercizi di Logica”

v. !."

Capitolo L2  Pag. 15
(aB)(aC )(R(B, C ) • cP(B)) • (aD )(cR(D , D ) ” P(D ))
(aB)(aC )(aD )a(R(B, C ) • cP(B) • (cR(D , D ) ” P(D ))b
Nella formula così ottenuta non compaiono quantificatori esistenziali, quindi possiamo
direttamente esprimerla come un insieme di clausole:
{{R(B, C )}, {cP(B)}, {cR(D , D ), P(D )}}
L’universo di Herbrandt consta di un’unica costante, sia essa - . Ponendo B ³ - ,
C ³ - e z ³ - , si ottiene l’insieme di clausole chiuse
{{R(- , - )}, {cP(- )}, {cR(- , - ), P(- )}}
al quale possiamo applicare l’algoritmo di Davis-Putnam.
Pivot P(- ):
{{R(- , - )}, {cR(- , - )}}
Pivot R(- , - ):
{[]}
Dunque la formula considerata non è soddisfacibile, e la (bD )(R(D , D ) • cP(D ))
effettivamente conseguenza logica della (aB)c(bC )(R(B, C ) Ä P(B)) .
Esercizio L2.15
Si stabilisca se dalle premesse
( 3)
(33)
(333)
Chi non è maschio è femmina;
Ogni maschio invidia qualche femmina;
Andrea non invidia alcuna femmina;
si può dedurre logicamente che
(3@)
Andrea è una femmina.
Soluzione  Introduciamo opportuni simboli di predicato:
M(B) traduce “B è un maschio”;
F(B) traduce “B è una femmina”;
I(B, C) traduce “B invidia C ”.
Inoltre, introduciamo una costante + per indicare Andrea. Posto allora
! ³ (aB)(cM(B) Ä F(B)) ;
" ³ (aB)(M(B) Ä (bC )(F(C ) • I(B, C ))) ;
# ³ c(bB)(F(B) • I(+, B)) ;
$ ³ F(+) ;
dobbiamo dimostrare che
{!, " , # } } $ ossia che
! • " • # • (c$ ) non è soddisfacibile.
è
M. Barlotti
 Soluzioni per gli
“Esercizi di Logica”

v. !."

Capitolo L2  Pag. 16
Posto : ³ ! • " • # • (c$ ), scriviamo : in forma normale prenessa in modo che la
parte senza quantificatori sia in forma normale congiuntiva.
(aB)(cM(B) Ä F(B)) • (aB)(M(B) Ä (bC )(F(C ) • I(B, C ))) • c(bB)(F(B) • I(+, B)) • cF(+)
(aB)(M(B) ” F(B)) • (aB)(cM(B) ” (bC )(F(C ) • I(B, C ))) • (aB)c(F(B) • I(+, B)) • cF(+)
(aB)(M(B) ” F(B)) • (aB)(bC )(cM(B) ” (F(C ) • I(B, C ))) • (aB)(cF(B) ” cI(+, B)) • cF(+)
(aB)(M(B) ” F(B)) • (aB)(bC)((cM(B) ” F(C)) • (cM(B) ” I(B, C))) • (aB)(cF(B) ” cI(+, B)) • cF(+)
(aB)a(M(B) ” F(B)) • (bC )((cM(B) ” F(C )) • (cM(B) ” I(B, C ))) • (cF(B) ” cI(+, B)) • cF(+)b
(aB)(bC )a(M(B) ” F(B)) • ((cM(B) ” F(C )) • (cM(B) ” I(B, C ))) • (cF(B) ” cI(+, B)) • cF(+)b
Adesso introduciamo un simbolo di funzione 2 e poniamo C ³ 2 (B) per ottenere la
“forma di Skolem”:
(aB)a(M(B) ” F(B)) • ((cM(B) ” F(2(B))) • (cM(B) ” I(B, 2 (B)))) • (cF(B) ” cI(+, B)) • cF(+)b.
L’universo di Herbrandt associato è {+, 2(+), 2 (2 (+)), 2 (2 (2 (+))), á }.
Trasformiamo infine la formula così ottenuta in un insieme di clausole
{{M(B), F(B)}, {cM(B), F(2(B))}, {cM(B), I(B, 2(B))}, {cF(B), cI(+, B)}, {cF(+)}}
e cerchiamo di trovarne una confutazione rapida assegnando alla B opportuni valori scelti
nell’universo di Herbrandt.
Per chiarezza, poniamo:
V" (B) ³ {M(B), F(B)} ;
V# (B) ³ {cM(B), F(2(B))} ;
V$ (B) ³ {cM(B), I(B, 2(B))} ;
V% (B) ³ {cF(B), cI(+, B)} ;
V& ³ {cF(+)} .
Una possibile confutazione rapida è:
V' ³ V" (+) œ {M(+), F(+)} ;
V( ³ ResF(+) ÐV& , V' ) œ {M(+)} ;
V) ³ V$ (+) œ {cM(+), I(+, 2(+))} ;
V* ³ ResM(+) ÐV( , V) ) œ {I(+, 2 (+))} ;
V"! ³ V% (2(+)) œ {cF(2(+)), cI(+, 2 (+))} ;
V"" ³ ResI(+, 2(+)) ÐV* , V"! ) œ {cF(2 (+))} ;
V"# ³ V# (+) œ {cM(+), F(2(+))} ;
V"$ ³ ResG(2(+)) ÐV"" , V"# ) œ {cM(+)} ;
V"% ³ ResM(+) ÐV( , V"$ ) œ [] .
Si è così provato che dalle (3), (33) e (333) si può dedurre logicamente la (3@).
M. Barlotti
 Soluzioni per gli
“Esercizi di Logica”

v. !."

Capitolo L2  Pag. 17
Esercizio L2.16
Date le premesse
( 3)
Tutti gli aderenti al “Club dei Cattivi Soggetti” sono ladri o mentitori;
(33)
Chi è iscritto alle “Giovani Marmotte” non mente mai;
(333)
Lupetto è iscritto alle “Giovani Marmotte” e non è un ladro;
le si esprimano in un opportuno linguaggio della logica dei predicati e si formalizzi la
deduzione che
(333)
Lupetto non aderisce al “Club dei Cattivi Soggetti”.
Soluzione  Introduciamo quattro simboli di predicato unario (C, G, L, M) e una
costante (j), che interpretiamo come segue per tradurre le premesse date:
C(B) ³ B aderisce al “Club dei Cattivi Soggetti”;
G(B) ³ B è iscritto alle “Giovani Marmotte”;
L(B) ³ B è un ladro;
M(B) ³ B è un mentitore;
j ³ Lupetto.
In questo linguaggio della logica dei predicati, le premesse diventano:
( 3)
(aB)(C(B) Ä (L(B) ” M(B))) ;
(33)
(aB)(G(B) Ä cM(B)) ;
(333)
G(j) • cL(j) ;
e la desiderata conclusione diventa
(3@)
cC(j) .
Dobbiamo pertanto dimostrare che
(aB)(C(B) Ä (L(B) ” M(B))) • (aB)(G(B) Ä cM(B)) • G(j) • cL(j) } cC(j)
ossia che la formula ben formata : definita da
(aB)(C(B) Ä (L(B) ” M(B))) • (aB)(G(B) Ä cM(B)) • G(j) • cL(j) • C(j)
non è soddisfacibile.
Scriviamo : in forma normale prenessa:
: ´ (aB)acC(B) ” (L(B) ” M(B)) • (cG(B) ” cM(B)) • G(j) • cL(j) • C(j)b .
In questa forma, : è già skolemizzata e possiamo considerare l’insieme di clausole ad
essa associato
{{cC(B), L(B), M(B)}, {cG(B), cM(B)}, {G(j)}, {cL(j)}, {C(j)}} .
M. Barlotti
 Soluzioni per gli
“Esercizi di Logica”

v. !."

Capitolo L2  Pag. 18
Poiché l’universo di Herbrandt consiste della sola costante j, assegniamo direttamente
alla B il valore j e otteniamo
{{cC(j), L(j), M(j)}, {cG(j), cM(j)}, {G(j)}, {cL(j)}, {C(j)}} .
Possiamo applicare l’algoritmo di Davis-Putnam!
Pivot C(j):
clausole non contenenti né C(j) né cC(j): {cG(j), cM(j)}, {G(j)}, {cL(j)} ;
ResC(j) ({cC(j), L(j), M(j)}, {C(j)}) œ {L(j), M(j)} ;
{{L(j), M(j)}, {cG(j), cM(j)}, {G(j)}, {cL(j)}}
Pivot G(j):
clausole non contenenti né G(j) né cG(j): {L(j), M(j)}, {cL(j)} ;
ResG(j) ({cG(j), cM(j)}, {G(j)}) œ {cM(j)} ;
{{L(j), M(j)}, {cL(j)}, {cM(j)}}
Pivot L(j):
clausole non contenenti né L(j) né cL(j): {cM(j)} ;
ResL(j) ({L(j), M(j)}, {cL(j)}) œ {M(j)} ;
{{cM(j)}, {M(j)}}
Pivot M(j):
ResM(j) ({cM(j)}, {M(j)}) œ [] ;
{[]}
Poiché abbiamo ottenuto la clausola vuota, l’insieme di clausole considerato non è
soddisfacibile; dunque nemmeno la formula : è soddisfacibile, e possiamo concludere che la
(3@) è conseguenza logica delle (3), (33) e (333) .
Esercizio L2.17
Date le premesse
(3) Tutti quelli che hanno sostenuto l’esame e hanno sbagliato l’esercizio di logica sono
stati respinti;
(33) Paolo ha sostenuto l’esame;
(333) Paolo non ha sbagliato l’esercizio di logica;
le si esprimano in un opportuno linguaggio della logica dei predicati e si stabilisca, motivando
la risposta, se è corretta la deduzione che
(3@) Paolo non è stato respinto.
M. Barlotti
 Soluzioni per gli
“Esercizi di Logica”

v. !."

Capitolo L2  Pag. 19
Soluzione  Introduciamo tre simboli di predicato unario (E, S, R) e una costante (:),
che interpretiamo come segue per tradurre le premesse date:
E(B) ³ B ha sostenuto l’esame;
S(B) ³ B ha sbagliato l’esercizio di logica;
R(B) ³ B è stato respinto;
: ³ Paolo.
In questo linguaggio della logica dei predicati, le premesse diventano:
( 3)
(aB)((E(B) • S(B)) Ä R(B)) ;
(33)
E(:) ;
(333)
cS(:) ;
e la supposta conclusione diventa
(3@)
cR(:) .
Dobbiamo pertanto vedere se
(aB)((E(B) • S(B)) Ä R(B)) • E(:) • cS(:) } cR(:)
ossia se la formula ben formata : definita da
(aB)((E(B) • S(B)) Ä R(B)) • E(:) • cS(:) • c(cR(:))
è o non è soddisfacibile.
Scriviamo : in forma normale prenessa:
: ´ (aB)((cE(B) ” cS(B) ” R(B)) • E(:) • cS(:) • R(:)) .
In questa forma, : è già skolemizzata e possiamo considerare l’insieme di clausole ad
essa associato
{{cE(B), cS(B), R(B)}, {E(:)}, {cS(:)}, {R(:)}} .
Poiché l’universo di Herbrandt consiste della sola costante :, assegniamo direttamente
alla B il valore : e otteniamo
{{cE(:), cS(:), R(:)}, {E(:)}, {cS(:)}, {R(:)}} .
Possiamo applicare l’algoritmo di Davis-Putnam!
Pivot R(:):
clausole non contenenti né R(:) né cR(:): {E(:))}, {cS(:)} ;
non ci sono risolventi da calcolare!
{{E(:)}, {cS(:)}}
M. Barlotti
 Soluzioni per gli
“Esercizi di Logica”

v. !."

Capitolo L2  Pag. 20
È già chiaro a questo punto che l’insieme di clausole è soddisfacibile (chi non è convinto
prosegua con l’algoritmo di Davis-Putnam e troverà alla fine l’insieme vuoto di clausole).
Dunque non si può concludere che Paolo non è stato respinto! (In effetti, se ha fatto “scena
muta” alle domande di algebra...)
Esercizio L2.18
Date le premesse
(3) Tutti quelli che salgono sull’autobus e non hanno un valido titolo di viaggio devono
comprare un biglietto dal guidatore;
(33) Paolo sale sull’autobus;
(333) Paolo ha un valido titolo di viaggio;
le si esprimano in un opportuno linguaggio della logica dei predicati e si stabilisca, motivando
la risposta, se è corretta la deduzione che
(3@) Paolo non deve comprare alcun biglietto dal guidatore.
Soluzione  Introduciamo tre simboli di predicato unario (S, T, C) e una costante (:),
che interpretiamo come segue per tradurre le premesse date:
S(B) ³ B sale sull’autobus;
T(B) ³ B ha un valido titolo di viaggio;
C(B) ³ B deve comprare un biglietto dal guidatore;
: ³ Paolo.
In questo linguaggio della logica dei predicati, le premesse diventano:
( 3)
(aB)((S(B) • cT(B)) Ä C(B)) ;
(33)
S(:) ;
(333)
T(:) ;
e la supposta conclusione diventa
(3@)
cC(:) .
Dobbiamo pertanto vedere se
(aB)((S(B) • cT(B)) Ä C(B)) • S(:) • T(:) } cC(:)
ossia se la formula ben formata : definita da
(aB)((S(B) • cT(B)) Ä C(B)) • S(:) • T(:) • c(cC(:))
è o non è soddisfacibile.
M. Barlotti
 Soluzioni per gli
“Esercizi di Logica”

v. !."

Capitolo L2  Pag. 21
Scriviamo : in forma normale prenessa:
: ´ (aB)((cS(B) ” T(B) ” C(B)) • S(:) • T(:) • C(:)) .
In questa forma, : è già skolemizzata e possiamo considerare l’insieme di clausole ad
essa associato
{{cS(B), T(B), C(B)}, {S(:)}, {T(:)}, {C(:)}} .
Poiché l’universo di Herbrandt consiste della sola costante :, assegniamo direttamente
alla B il valore : e otteniamo
{{cS(:), T(:), C(:)}, {S(:)}, {T(:)}, {C(:)}} .
Possiamo applicare l’algoritmo di Davis-Putnam!
Pivot C(:):
clausole non contenenti né C(:) né cC(:): {S(:))}, {T(:)} ;
non ci sono risolventi da calcolare!
{{S(:)}, {T(:)}}
È già chiaro a questo punto che l’insieme di clausole è soddisfacibile (chi non è convinto
prosegua con l’algoritmo di Davis-Putnam e troverà alla fine l’insieme vuoto di clausole).
Dunque non si può concludere che Paolo non deve comprare alcun biglietto dal guidatore! (In
effetti, se Paolo sale sull’autobus assieme a un altro passeggero che è sotto la sua tutela, e non
ha con sé biglietti oltre al proprio abbonamento, deve comprare un biglietto dal guidatore per
l’altro passeggero...)
Esercizio L2.19
Si esprimano le premesse
( 3)
Ogni numero irriducibile è un numero primo;
(33) #% non è un numero irriducibile;
in un opportuno linguaggio della logica dei predicati e si stabilisca, motivando la risposta, se è
corretto trarne la deduzione che
(333) #% non è un numero primo.
Soluzione  Introduciamo due simboli di predicato unario (I, P) e una costante (8),
che interpretiamo come segue per tradurre le premesse date:
I(B) ³ B è un numero irriducibile;
P(B) ³ B è un numero irriducibile;
: ³ #%.
M. Barlotti
 Soluzioni per gli
“Esercizi di Logica”

v. !."

Capitolo L2  Pag. 22
In questo linguaggio della logica dei predicati, le premesse diventano:
( 3)
(aB)(I(B) Ä P(B)) ;
(33)
cI(8) ;
e la supposta conclusione diventa
(333)
cP(8) .
Dobbiamo pertanto vedere se
(aB)(I(B) Ä P(B)) • cI(8) } cP(8)
ossia se la formula ben formata : definita da
(aB)(I(B) Ä P(B)) • cI(8) • c(cP(8))
è o non è soddisfacibile.
Scriviamo : in forma normale prenessa:
: ´ (aB)((cI(B) ” P(B)) • cI(8) • P(8)) .
In questa forma, : è già skolemizzata e possiamo considerare l’insieme di clausole ad
essa associato
{{cI(B), P(B)}, {cI(8)}, {P(8)}} .
Poiché l’universo di Herbrandt consiste della sola costante 8, assegniamo direttamente
alla B il valore 8 e otteniamo
{{cI(8), P(8)}, {cI(8)}, {P(8)}} .
Possiamo applicare l’algoritmo di Davis-Putnam!
Pivot P(8):
clausole non contenenti né P(8) né cP(8): {cI(8)} ;
non ci sono risolventi da calcolare!
{{cI(8)}}
Pivot I(8):
{}
Dunque l’insieme di clausole è soddisfacibile e la (333) non è conseguenza logica delle
(3) e (33). In effetti, interpretando (sempre nell’insieme  dei numeri naturali) I(B) come “B è
multiplo di %”, P(B) come “B è pari” e 8 come il numero ', le premesse risultano vere (ogni
multiplo di % è un numero pari, e ' non è un multiplo di %) ma la conseguenza è falsa (non è
vero infatti che ' non è pari).