Appello del 5 settembre 2016. Scritto di Logica – Risoluzione 1. Dati i predicati unari s (studente) con estensione insiemistica S, p (pugliese) con estensione P, b (biondo) con estensione B, scrivere come formule del calcolo dei predicati e come formule di teoria degli insiemi le seguenti frasi: a) ‘non esistono pugliesi biondi’ b) ‘tutti gli studenti sono pugliesi’ c) ‘gli studenti non biondi non sono pugliesi’ d) ‘c’è uno studente non pugliese’. e) ‘gli studenti sono biondi o non pugliesi’ f) Esistono tra le proposizioni precedenti coppie di proposizioni equivalenti o contraddittorie? a) b) c) d) e) f) z p(z) b(z) PB = x s(x) p(x) SP z s(z) b(z) p(x) SB P z s(z) p(z) SP x s(x) b(x) p(x) S BP c) ed e) sono equivalenti: entrambe si possono trasformare in x s(x) b(x) p(x) b) e d) sono contraddittorie: negandone l’una si ottiene l’altra. 2. Usando il solo predicato binario ‘genitore(x,y)’ (e ignorando le differenze di genere) a) definire i predicati binari ‘fratello(x,y)’ (x e y hanno uno stesso genitore), ‘figlio(x,y)’ (relazione inversa di ‘genitore’), ‘nonno(x,y)’ (il figlio di x è genitore di y), ‘zio(x,y)’ (x è fratello di un genitore di y), ‘nipote(x,y)’ (relazione inversa di ‘zio’), ‘cugino(x,y)’ (un genitore di x e un genitore di y sono fratelli) b) verificare con tecnica a scelta se ‘se x è il fratello dello zio di y, un nonno di y e un genitore di x hanno un figlio in comune’ c) verificare con tecnica a scelta se il predicato fratello(x,y) è simmetrico e se è transitivo d) verificare c) con le tavole semantiche a) fr(x,y) z (g(z,x) g(z,y)) fg(x,y) g(y,x) n(x,y) z (g(x,z) g(z,y)) zi(x,y) z (fr(z,x) g(z,y)) np(x,y) zi(y,x) z (fr(z,y) g(z,x)) c(x,y) z t (fr(z,t) g(z,y) g(t,x)) b) t fr(x,t) zi(t,y) t z w (g(z,x) g(z,t) fr(w,t) g(w,y)) t z w s g(z,x) g(z,t) g(s,w) g(s,t) g(w,y) t z s g(z,x) g(z,t) g(s,t) no(s,y) t z s g(z,x) fg(t,z) fg(t,s) no(s,y) c) Che sia simmetrico è immediato. Verifichiamo se y fr(x,y) fr(y,z) fr(x,z). Si può fare tramite trasformazioni equivalenti o tramite la deduzione naturale, anche se però non abbiamo una vera dimostrazione della falsità della formula. Una dimostrazione vera si ottiene con un GTP, ad esempio con le tavole semantiche. Ad esempio con la deduzione naturale: y fr(x,y) fr(y,z) y z t g(z,x) g(z,y) g(t,y) g(t,z) g(c,x) g(c,a) g(d,a) g(d,z) ……………………….. g(c,x) g(c,z) w (g(w,x) g(w,z)) w (g(w,x) g(w,z)) Per dimostrare la tesi occorrerebbe poter dedurre g(c,a) g(d,a) g(d,z) g(c,z) cioè g(c,a) fr(a,z) g(c,z) cioè che due fratelli debbano avere sempre gli stessi genitori d) y w t g(w,x) g(w,y) g(t,y) g(t,z) w (g(w,x) g(w,z)) g(b,x) g(b,a) g(c,a) g(c,z) w (g(w,x) g(w,z)) g(b,x) g(b,a) g(c,a) g(c,z) (g(b,x) g(b,z)) w (g(w,x) g(w,z)) g(b,x) g(b,a) g(c,a) g(c,z) g(b,x) w (g(w,x) g(w,z)) g(b,x) g(b,a) g(c,a) g(c,z) g(b,z) g(c,x) w (g(w,x) g(w,z)) g(b,x) g(b,a) g(c,a) g(c,z) g(b,z) g(c,x) g(a,x) g(b,x) g(b,a) g(c,a) g(c,z) g(b,z) w (g(w,x) g(w,z)) g(b,x) g(b,a) g(c,a) g(c,z) g(b,z) g(c,z) w (g(w,x) g(w,z)) g(b,x) g(b,a) g(c,a) g(c,z) g(b,z) g(c,z) g(a,z)) Non ci sono altri passaggi possibili e le tavole non sono chiuse. 3. La deduzione naturale e il general theorem prover. Il gtp è un algoritmo che ha in input un sistema di assiomi e una formula e in output due possibili asserzioni: Assiomi Formula e Assiomi Formula Assiomi Assiomi, Formula Formula GTP Assiomi Formula In figura il GTP è decidibile in quanto si ferma in entrambi i casi. Se nel caso negativo potesse andare in loop sarebbe semidecidibile. Indecidibile se può andare in loop in entrambi i casi. Tecniche come le trasformazioni equivalenti o la deduzione naturale non sono GTP perché non possono essere messe in forma puramente algoritmica. Le tavole di verità danno un GTP per la logica proposizionale, GTP validi anche per la logica dei predicati sono le tavole semantiche e la risoluzione. Tuttavia mentre la deduzione naturale produce una dimostrazione affine a quelle usuali in matematica i GTP producono esecuzioni con un fondamento semantico.