{"id":2148,"date":"2000-06-04T00:00:00","date_gmt":"2000-06-03T22:00:00","guid":{"rendered":""},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T22:00:00","slug":"2148","status":"publish","type":"post","link":"https:\/\/www.vialattea.net\/content\/2148\/","title":{"rendered":"Vorrei sapere che cos&#8217;\u00e8 una dimostrazione. Se la dimostrazione di una proposizione \u00e8 la sequenza ottenuta partendo da alcuni assiomi scelti arbitrariamente utilizzando regole di inferenza arbitrarie (data l&#8217;esistenza di sistemi logici non classici) e che ha come ultima riga la proposizione cercata, allora questo vuol dire che anche una qualsiasi metadimostrazione rispetto ad un particolare sistema assiomatico deve basarsi su altri assiomi e regole di inferenza che vengono spesso non esplicitati. Scusatemi se ho detto sciocchezze, vorrei solo avere dei chiarimenti a riguardo."},"content":{"rendered":"<p><font size=\"2\">Il calcolo proposizionale \u00e8 il procedimento mediante<br \/>\n        il quale si deducono, mediante regole formali ben definite, <i>proposizioni<\/i><br \/>\n        da altre proposizioni. Le operazioni utilizzate sono quelle dell\u2019algebra<br \/>\n        booleana convenzionale: OR (<i>somma logica<\/i>), AND (<i>prodotto logico)<\/i>,<br \/>\n        NOT, XOR.<\/font><\/p>\n<p><b><font size=\"2\">Definizione<\/font><\/b><\/p>\n<p><font size=\"2\"><i>G(X<sub>1<\/sub>,&#8230;,X<sub>n<\/sub>) : {<\/i><b>T<\/b>,<b>F<\/b><i>}<br \/>\n        x &#8230; x {<\/i><b>T<\/b>,<b>F<\/b><i>}<\/i> <img loading=\"lazy\" decoding=\"async\" width=\"20\" height=\"14\" src=\"..\/..\/esperti\/mat\/cp\/Image15.gif\" alt=\"\"\/><i>{<\/i><b>T<\/b>,<b>F<\/b><i>}<\/i><br \/>\n        \u00e8 una <i>proposizione<\/i> di <i>arit\u00e0 n<\/i> con parametri<br \/>\n        gli <i>atomi<\/i> <i>X<sub>1<\/sub>,&#8230;,X<sub>n<\/sub><\/i><\/font><\/p>\n<p><font size=\"2\">Una proposizione \u00e8 una espressione che pu\u00f2<br \/>\n        valere <i>vero<\/i> o <i>falso<\/i>, ed \u00e8 esprimibile in termini<br \/>\n        di linguaggio informale, come ad esempio mediante la frase &#8220;<i>socrate<br \/>\n        \u00e8 mortale<\/i>&#8220;, o con un formalismo matematico corrispondente,<br \/>\n        come nella formula proposizionale <i>mortale(socrate)= vero<\/i>. Entrambe<br \/>\n        le espressioni hanno lo stesso significato.<\/font><\/p>\n<p><font size=\"2\">Nel calcolo proposizionale, una <i>formula proposizionale<br \/>\n        <\/i>\u00e8 una espressione <i>G<\/i> composta da <i>atomi<\/i>, unit\u00e0<br \/>\n        logiche che possono valere <i>vero<\/i> (<b>T<\/b>, dall\u2019inglese &#8220;true&#8221;)<br \/>\n        o <i>falso<\/i> (<b>F<\/b>, dall\u2019inglese &#8220;false&#8221;).<\/font><\/p>\n<p><font size=\"2\">L\u2019insieme <i>{<\/i><b>T<\/b>,<b>F<\/b><i>} <\/i>\u00e8 detto<br \/>\n        <i>spazio booleano<\/i>.<\/font><\/p>\n<p><font size=\"2\">Si dice <i>atomo <\/i>una variabile booleana <i>X<img loading=\"lazy\" decoding=\"async\" width=\"12\" height=\"12\" src=\"..\/..\/esperti\/mat\/cp\/Image16.gif\" alt=\"\"\/>{<\/i><b>T<\/b>,<b>F<\/b><i>}<\/i>,<br \/>\n        il numero di atomi o parametri booleani che definiscono una proposizione<br \/>\n        \u00e8 detto <i>arit\u00e0<\/i> della proposizione.<\/font><\/p>\n<p><font size=\"2\">Un <i>literal<\/i> <i>L<\/i> \u00e8 una variabile booleana<br \/>\n        ottenuta negando o meno un atomo.<\/font><\/p>\n<p><font size=\"2\">L\u2019assegnazione di valori agli atomi che compongono la<br \/>\n        definizione \u00e8 detta <i>interpretazione<\/i> della formula proposizionale.<\/font><\/p>\n<p><font size=\"2\">Una proposizione \u00e8 in <i>forma normale congiuntiva<\/i><br \/>\n        se \u00e8 definita come prodotto logico di literal, mentre viene detta<br \/>\n        in <i>forma normale disgiuntiva<\/i> se espressa come somma logica di literal.<\/font><\/p>\n<p><b><font size=\"2\">Definizione<\/font><\/b><\/p>\n<p><font size=\"2\"><i>G <\/i>\u00e8 <i>tautologia<\/i> <img loading=\"lazy\" decoding=\"async\" width=\"22\" height=\"16\" src=\"..\/..\/esperti\/mat\/cp\/Image17.gif\" alt=\"\"\/><i>G(X<sub>1<\/sub>,&#8230;,X<sub>n<\/sub>)=<\/i><b>T<\/b><br \/>\n        <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"17\" src=\"..\/..\/esperti\/mat\/cp\/Image18.gif\" alt=\"\"\/><i>(X<sub>1<\/sub>,&#8230;,X<sub>n<\/sub>)<br \/>\n        <img loading=\"lazy\" decoding=\"async\" width=\"12\" height=\"12\" src=\"..\/..\/esperti\/mat\/cp\/Image16.gif\" alt=\"\"\/>{<\/i><b>T<\/b>,<b>F<\/b><i>} x<br \/>\n        &#8230; x {<\/i><b>T<\/b>,<b>F<\/b><i>} <\/i><\/font><\/p>\n<p> <font size=\"2\"><i>G <\/i>\u00e8 <i>contraddizione<\/i> <img loading=\"lazy\" decoding=\"async\" width=\"22\" height=\"16\" src=\"..\/..\/esperti\/mat\/cp\/Image17.gif\" alt=\"\"\/><i>G(X<sub>1<\/sub>,&#8230;,X<sub>n<\/sub>)=<\/i><b>F<\/b><br \/>\n        <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"17\" src=\"..\/..\/esperti\/mat\/cp\/Image18.gif\" alt=\"\"\/><i>(X<sub>1<\/sub>,&#8230;,X<sub>n<\/sub>)<br \/>\n        <img loading=\"lazy\" decoding=\"async\" width=\"12\" height=\"12\" src=\"..\/..\/esperti\/mat\/cp\/Image16.gif\" alt=\"\"\/>{<\/i><b>T<\/b>,<b>F<\/b><i>} x<br \/>\n        &#8230; x {<\/i><b>T<\/b>,<b>F<\/b><i>}<\/i><\/font><\/p>\n<p><font size=\"2\">ovvero <i>G <\/i>\u00e8 detta <i>tautologia<\/i> se e<br \/>\n        solo se \u00e8 identicamente vera per ogni sua interpretazione; viceversa,<br \/>\n        <i>G <\/i>\u00e8 detta <i>contraddizione<\/i> se e solo se \u00e8 identicamente<br \/>\n        falsa per ogni sua interpretazione. <\/font><\/p>\n<p><font size=\"2\">Le operazioni formali che consentono di <i>dedurre<\/i><br \/>\n        una proposizione <i>G<\/i> da una <i>H<\/i> sono le seguenti:<\/font><\/p>\n<ul>\n<li><font size=\"2\"><i>G<img loading=\"lazy\" decoding=\"async\" width=\"12\" height=\"12\" src=\"..\/..\/esperti\/mat\/cp\/Image19.gif\" alt=\"\"\/>H <\/i>(equivalenza)<br \/>\n          <img loading=\"lazy\" decoding=\"async\" width=\"22\" height=\"16\" src=\"..\/..\/esperti\/mat\/cp\/Image17.gif\" alt=\"\"\/><i>G = H<\/i> per ogni interpretazione<br \/>\n          di <i>G<\/i>, <i>H <\/i><\/font><\/li>\n<li> <font size=\"2\"><i>G<img loading=\"lazy\" decoding=\"async\" width=\"20\" height=\"14\" src=\"..\/..\/esperti\/mat\/cp\/Image15.gif\" alt=\"\"\/>H <\/i>(implicazione)<br \/>\n          <img loading=\"lazy\" decoding=\"async\" width=\"22\" height=\"16\" src=\"..\/..\/esperti\/mat\/cp\/Image17.gif\" alt=\"\"\/>NOT(<i>G<\/i>) OR <i>H<\/i><br \/>\n          = <b>T <\/b><\/font><\/li>\n<li><font size=\"2\"><i>G<img loading=\"lazy\" decoding=\"async\" width=\"21\" height=\"14\" src=\"..\/..\/esperti\/mat\/cp\/Image20.gif\" alt=\"\"\/>H<\/i><br \/>\n          (condizione necessaria e sufficiente) <img loading=\"lazy\" decoding=\"async\" width=\"22\" height=\"16\" src=\"..\/..\/esperti\/mat\/cp\/Image17.gif\" alt=\"\"\/><\/font><\/li>\n<\/ul>\n<p><font size=\"2\">NOT(<i>G <\/i>XOR<i> H<\/i>) <\/font><\/p>\n<p><font size=\"2\">Il teorema fondamentale del calcolo proposizionale \u00e8<br \/>\n        il seguente.<\/font><\/p>\n<p><b><font size=\"2\">Teorema (Principio di Deduzione)<\/font><\/b><\/p>\n<p><font size=\"2\">Siano <i>F<sub>1<\/sub>,&#8230;,F<sub>n<\/sub><\/i> , <i>G <\/i>proposizioni,<\/font><\/p>\n<p><font size=\"2\"><i>F<sub>1 <\/sub><\/i>AND<i> &#8230; <\/i>AND <i>F<sub>n<\/sub><\/i><br \/>\n        <img loading=\"lazy\" decoding=\"async\" width=\"20\" height=\"14\" src=\"..\/..\/esperti\/mat\/cp\/Image15.gif\" alt=\"\"\/><i>G <img loading=\"lazy\" decoding=\"async\" width=\"22\" height=\"16\" src=\"..\/..\/esperti\/mat\/cp\/Image17.gif\" alt=\"\"\/>F<sub>1<br \/>\n        <\/sub><\/i>AND<i> &#8230; <\/i>AND <i>F<sub>n<\/sub><\/i> AND NOT(<i>G<\/i>) \u00e8<br \/>\n        una <i>contraddizione<\/i><\/font><\/p>\n<p><font size=\"2\">ovvero, <i>G <\/i>\u00e8 <i>conseguenza logica<\/i> del<br \/>\n        prodotto logico delle proposizioni <i>F<sub>i<\/sub><\/i> se e solo se il<br \/>\n        prodotto logico delle proposizoni <i>F<sub>i<\/sub><\/i> e della proposizione<br \/>\n        <i>G<\/i> \u00e8 identicamente falso per ogni interpretazione degli atomi<br \/>\n        che lo compongono.<\/font><\/p>\n<p><font size=\"2\">Una estensione del calcolo proposizionale \u00e8 il<br \/>\n        <i>calcolo dei predicati<\/i>, costruito in base alla <i>logica del primo<br \/>\n        ordine<\/i>.<\/font><\/p>\n<p><font size=\"2\">Le differenze sostanziali tra calcolo dei predicati e<br \/>\n        calcolo proposizionale sono le seguenti:<\/font><\/p>\n<ul>\n<li><font size=\"2\">Un atomo pu\u00f2 essere una variabile booleana,<br \/>\n          una costante o una proposizione. <\/font><\/li>\n<li><font size=\"2\">La definizione dei quantificatori <i>esistenziale<img loading=\"lazy\" decoding=\"async\" width=\"12\" height=\"16\" src=\"..\/..\/esperti\/mat\/cp\/Image21.gif\" alt=\"\"\/><\/i><br \/>\n          (esiste) ed <i>universale<\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"17\" src=\"..\/..\/esperti\/mat\/cp\/Image18.gif\" alt=\"\"\/>(per<br \/>\n          ogni). <\/font><\/li>\n<\/ul>\n<p><font size=\"2\">Tutti i concetti di interpretazione, tautologia, contraddizione<br \/>\n        e deduzione sono analoghi a quelli del calcolo proposizionale.<\/font><\/p>\n<p><font size=\"2\">Il calcolo dei predicati, il cui linguaggio di programmazione<br \/>\n        d\u2019elezione \u00e8 il <i>Prolog<\/i>, consente di definire proposizoni<br \/>\n        su delle costanti, variabili o proposizioni e, quindi, di trattare espressioni<br \/>\n        logiche complesse.<\/font><\/p>\n<p><font size=\"2\">Ad esempio, \u00e8 possibile descrivere la proposizione<br \/>\n        <i>X<\/i> <i>\u00e8 cugino di Y<\/i> mediante una espressione tipo<\/font><\/p>\n<p><i><font size=\"2\">cugino(X,Y):=zio(A, X) . padre(A,Y)<\/font><\/i><\/p>\n<p><font size=\"2\">ove l\u2019operatore \u2018.\u2019 indica prodotto logico e l\u2019operatore<br \/>\n        \u2018:=\u2019 \u00e8 di definizione.<\/font><\/p>\n<p><font size=\"2\">Questa espressione calcola la veridicit\u00e0 dell\u2019espressione<br \/>\n        <i>X \u00e8 cugino di Y<\/i> (di gradi vari) verificando l\u2019esistenza<br \/>\n        di un elemento <i>A<\/i> che sia contemporaneamente padre di <i>X<\/i> e<br \/>\n        zio di <i>Y<\/i>.<\/font><\/p>\n<p><font size=\"2\">Perch\u00e9 una proposizione sia interpretabile occorre<br \/>\n        che sia definita, vale a dire che, se per uno dei literal che la compongono<br \/>\n        non esiste definizione, allora il predicato \u00e8 <i>indefinito<\/i>.<\/font><\/p>\n<p><font size=\"2\">Supponiamo, ad esempio, di definire le seguenti <i>clausole<br \/>\n        costanti<\/i> (o <i>fatti<\/i>):<\/font><\/p>\n<p><font size=\"2\"><i>zio(adolfo, barbara)<\/i> .\t&#8211;\ti.e. &#8220;Adolfo \u00e8<br \/>\n        lo zio di Barbara&#8221;<\/font><\/p>\n<p><font size=\"2\"><i>padre(adolfo, claudio).\t<\/i>&#8211;\ti.e. &#8220;Adolfo \u00e8<br \/>\n        il padre di Claudio&#8221;<\/font><\/p>\n<p><font size=\"2\">una clausola costante \u00e8 una interpretazione del<br \/>\n        predicato per cui questo sia vero, vale a dire, se <i>G<\/i> \u00e8 un<br \/>\n        predicato e <i>a, b<\/i> sono costanti:<\/font><\/p>\n<p><font size=\"2\"><i>G(a,b). <img loading=\"lazy\" decoding=\"async\" width=\"22\" height=\"16\" src=\"..\/..\/esperti\/mat\/cp\/Image17.gif\" alt=\"\"\/>G(a,b)<br \/>\n        = <\/i><b>T<\/b><\/font><\/p>\n<p><font size=\"2\">Alla luce di queste affermazioni, il predicato<\/font><\/p>\n<p><font size=\"2\"><i>cugino(claudio,barbara):= zio(adolfo,barbara).padre(adolfo,<br \/>\n        claudio) = <\/i><b>T<\/b>.<b>T <\/b>= <b>T<\/b><\/font><\/p>\n<p><font size=\"2\">\u00e8 verificato, ovvero \u00e8 una <i>tautologia<\/i><br \/>\n        per la sua unica interpretazione possibile.<\/font><\/p>\n<p><font size=\"2\">D\u2019altro canto, il predicato <i>cugino(claudio, davide)<\/i><br \/>\n        non \u00e8 n\u00e9 vero, n\u00e9 falso, ma indefinito, per via della<br \/>\n        mancanza di informazioni necessarie ad ottenere una interpretazione valida<br \/>\n        per esso.<\/font><\/p>\n<p><font size=\"2\">Utilizzando il Prolog, \u00e8 possibile interrogare<br \/>\n        la macchina con una clausola del tipo<\/font><\/p>\n<p><i><font size=\"2\">cugino(X, barbara).<\/font><\/i><\/p>\n<p><font size=\"2\">a cui il sistema risponde con <\/font><\/p>\n<p><i><font size=\"2\">X = claudio<\/font><\/i><\/p>\n<p><font size=\"2\">Il meccanismo che consente alla macchina di fare tanto<br \/>\n        sfoggio di intelligenza \u00e8 basato su un <i>algoritmo di unificazione<\/i>,<br \/>\n        che opera per sostituzioni ed unificazioni di prodotti logici di predicati.<br \/>\n        Questo procedimento \u00e8 stato costruito grazie all\u2019importantissimo<br \/>\n        risultato di <i>Herbrand<\/i> pubblicato nel 1930 con un teorema omonimo.<\/font><\/p>\n<p><font size=\"2\">Il <i>Teorema di Herbrand<\/i> fornisce infatti una metodologia<br \/>\n        per confutare (i.e. rendere inconsistenti) le proposizioni. Un teorema<br \/>\n        \u00e8 essenzialmente una proposizione che utilizza le operazioni di<br \/>\n        implicazione (<img loading=\"lazy\" decoding=\"async\" width=\"20\" height=\"14\" src=\"..\/..\/esperti\/mat\/cp\/Image15.gif\" alt=\"\"\/>) e condizione<br \/>\n        necessaria e sufficiente (<img loading=\"lazy\" decoding=\"async\" width=\"21\" height=\"14\" src=\"..\/..\/esperti\/mat\/cp\/Image20.gif\" alt=\"\"\/>)<br \/>\n        che, abbiamo visto, sono riconducibili alle operazioni booleane<\/font><\/p>\n<ul>\n<li><font size=\"2\"><i>G<img loading=\"lazy\" decoding=\"async\" width=\"20\" height=\"14\" src=\"..\/..\/esperti\/mat\/cp\/Image15.gif\" alt=\"\"\/>H <\/i>=<br \/>\n          NOT(<i>G<\/i>) OR <i>H<\/i> <\/font><\/li>\n<li><font size=\"2\"><i>G<img loading=\"lazy\" decoding=\"async\" width=\"21\" height=\"14\" src=\"..\/..\/esperti\/mat\/cp\/Image20.gif\" alt=\"\"\/>H<\/i><br \/>\n          = NOT(<i>G <\/i>XOR<i> H<\/i>) <\/font><\/li>\n<\/ul>\n<p><font size=\"2\">Se l\u2019algoritmo di confutazione fallisce, allora \u00e8<br \/>\n        stata trovata una dimostrazione del teorema. <\/font><\/p>\n<p><font size=\"2\">Rispondendo al lettore, quindi, possiamo dire che una<br \/>\n        dimostrazione \u00e8 una catena di deduzioni e sostituzioni ed un procedimento<br \/>\n        automatico di dimostrazione di un teorema pu\u00f2 consistere nel confutarne<br \/>\n        la negazione mediante il teorema di Herbrand. In questo senso, se alcuni<br \/>\n        assiomi necessari alla dimostrazione non vengono esplicitati, il teorema<br \/>\n        non \u00e8 dimostrabile vero ne dimostrabile falso, ma rimane indefinito.<br \/>\n        <\/font><\/p>\n","protected":false},"excerpt":{"rendered":"<p>[&#8230;]<\/p>\n","protected":false},"author":180,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[70],"tags":[],"class_list":["post-2148","post","type-post","status-publish","format-standard","hentry","category-logica"],"_links":{"self":[{"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/posts\/2148","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/users\/180"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/comments?post=2148"}],"version-history":[{"count":0,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/posts\/2148\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/media?parent=2148"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/categories?post=2148"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/tags?post=2148"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}