Filosofia dell'informatica/Le radici logiche dell'informatica
George Boole e l’interpretazione algebrica della logica
modificaIl matematico e logico britannico George Boole (1815-1864) è considerato il fondatore della logica matematica. Le sue due opere principali sono L’analisi matematica della logica (The Mathematical Analysis of Logic, 1847) e Le leggi del pensiero (An Investigation of the Laws of Thought, 1854).
Boole applicò il metodo algebrico alla logica formale, considerata alla stregua della scienza delle leggi dei simboli attraverso cui si esprimono i pensieri. Convinto fin da giovane che fosse possibile esprimere le relazioni logiche in forma algebrica, Boole analizzò le leggi delle operazioni mentali alla base del ragionamento per esprimerle nel linguaggio simbolico del calcolo. Convinto, come Leibniz, di poter mettere a punto un formalismo matematico capace di produrre automaticamente la risposta corretta a ogni tipo di problema, Boole pensò di applicare i metodi algebrici ai cosiddetti operatori logici, come gli operatori differenziali, che agiscono sul calcolo infinitesimale.
Boole intuì che l’algebra della logica funziona come l’algebra ordinaria, pur disponendo di due soli valori, 0 e 1, due simboli reinterpretati come classi. La regola fondamentale della logica algebrica di Boole recita che «niente può tanto appartenere quanto non appartenere a una classe x». Si tratta di una riproposizione del principio aristotelico di non contraddizione, per cui «è impossibile che la stessa qualità appartenga e non appartenga alla stessa cosa». Questo era in sintesi il ragionamento di Boole: Le affermazioni sono di due tipi: vere o false. Identifichiamo le vere con il numero 1. Identifichiamo le false con il numero 0. Come rappresentare matematicamente i cosiddetti connettivi (negazione, congiunzione ecc.)? La negazione, che rende falsa una frase vera e viceversa, può tradursi matematicamente in “1 –”, perché 1 – 1 fa 0, mentre 1 – 0 fa 1. Boole capì che “1 – “ era la struttura matematica, algebrica, della negazione.
Si comportò in modo simile con la congiunzione. La congiunzione di due affermazioni è vera se tutte e due le frasi sono vere. Basta che una delle due affermazioni sia falsa, perché sia falsa anche la congiunzione. Qual è l’operazione che prende due frasi vere e restituisce come valore 1, ma che quando prende due numeri, almeno uno dei quali è uno 0, restituisce come risultato uno zero? È la moltiplicazione: 1x1=1, ma 1x0, 0x1 e 0x0=0. Se la sottrazione corrisponde alla negazione, la moltiplicazione corrisponde alla congiunzione. Andando avanti così si possono ricostruire tutti i connettivi. Alle operazioni linguistiche sulle proposizioni corrispondono dunque operazioni matematiche sui numeri, dotate della medesima struttura.
Questa scoperta fondamentale avrebbe poi prodotto la logica matematica, sulle cui fondamenta è nata l’informatica. Se il sistema escogitato da Boole sembrava riuscire a catturare il ragionamento informale su cui si basano le interazioni umane quotidiane, nulla vietava di pensare che fosse capace di catturare anche ragionamenti più complessi. L’opera di Boole rappresenta il primo passo teorico fondamentale per arrivare a costruire una macchina in grado di “pensare”. Pur non realizzando il sogno di Leibniz, Boole fornì il calculus ratiocinator, vagheggiato dal filosofo tedesco.
In effetti, nonostante l'idea leibniziana fosse concettualmente più ricca, può essere attribuito a Boole il merito di aver compiuto un primo passo verso l'utilizzo della matematica come effettivo strumento per realizzare i "calcoli logici". Al contrario di Leibniz che, nella sua concezione analitica dell'intero sapere, vedeva il calcolo come lo stadio estremo di un processo di astrazione, per Boole il calcolo è artificiale, astratto nel senso che prescinde dai contenuti particolari, viene costituito a priori. Leibniz non fornì mai il calculus ratiocinator, pur dandone l'impostazione concettuale di base che fu necessaria a Boole per fondare la sua algebra, anche sulla scorta di diversi mutamenti storici che portarono alla nascita delle forme di algebra astratte basate sulla premessa di regole formali e simboli variamente interpretabili.
Idealmente per Boole prima si costruisce in maniera formale la base del calcolo operazionale, e poi se ne trovano le interpretazioni nel campo della logica, un'impostazione algebrica che successivamente assumerà la denominazione di "algebra di Boole". La novità di Boole è proprio nella cosiddetta "algebra della logica"", ossia l'applicazione del calcolo operazionale al campo della logica, che diventa logica formale appropriandosi dei rigorosi strumenti dell'analisi matematica per andare al di là del senso comune dell'argomentare, spesso fallace e vago.
Ciò nonostante, la logica continua ad avere uno statuto proprio e non viene ridotta a branca della matematica, pur essendo ad un livello di astrazione superiore rispetto alla logica precedente e storicamente intesa. In questo senso è stato imputato a Boole il difetto di aver eccessivamente “matematizzato" il ragionamento logico, per cui il peso del rigore matematico ha messo fra parentesi la plausibilità logico-intuitiva dei passaggi intermedi fra premesse e conclusioni, allontanandolo di fatto dall'imitazione dell'andamento delle argomentazioni intuitive del pensiero umano.
Per algebra di Boole si intende ancora oggi l’interpretazione algebrica della logica, un sistema di regole di calcolo. Gli operatori booleani, parte del sistema logico sviluppato da George Boole, permettono di restringere il campo delle proprie ricerche sul web. In particolare essi sono fondamentali per il recupero delle informazioni in cataloghi e banche dati perché permettono di combinare più termini tra loro in una stessa interrogazione. I più comuni sono: AND (operatore di intersezione), OR (operatore di unione), NOT (operatore di sottrazione).
Gottlob Frege e la fondazione logica della matematica
modificaGottlob Frege (1848-1925) è stato un matematico, logico e filosofo tedesco, padre della logica matematica moderna e della filosofia analitica. A lui si deve il primo sistema logico pienamente sviluppato, capace di abbracciare tutti i ragionamenti deduttivi della matematica ordinaria. Se Boole aveva aperto la strada per esprimere in linguaggio matematico la logica dei filosofi, cioè la struttura del pensiero, Frege tentò di costruire un linguaggio puramente simbolico, restituendo la struttura del linguaggio naturale non attraverso lo 0 e l’1, bensì mediante un altro linguaggio, completamente formalizzato, di cui fosse possibile descrivere i principi fondamentali, gli assiomi e le regole necessari per il ragionamento (come aveva fatto Euclide per la geometria).
Nel 1879 pubblicò l’Ideografia (Begriffsschrift: “modo di scrivere i concetti”), sottotitolato Linguaggio in formule del pensiero puro modellato su quello dell’aritmetica, forse l’opera più importante della storia della logica. Se Boole aveva adottato l’algebra ordinaria, usando i simboli algebrici per rappresentare le relazioni logiche, Frege introdusse simboli speciali per tali relazioni, onde evitare confusioni. Frege non stava solo elaborando un trattamento matematico della logica, ma anche creando un nuovo linguaggio, "guidato" dall'idea leibniziana di una lingua universale la cui potenza espressiva derivasse da una scelta oculata dei simboli.
Frege intendeva dimostrare piuttosto che tutta la matematica poteva essere basata sulla logica, e per farlo creò la Begriffsschrift, un linguaggio artificiale che aveva regole grammaticali (o meglio sintattiche) rigorose, per cui diventava possibile presentare le inferenze logiche come operazioni puramente meccaniche condotte per mezzo di "regole d'inferenza". Fu così che nacque il primo esempio di linguaggio formale artificiale dotato di una sintassi precisa: la Begriffsschrift può considerarsi l’antenata di tutti i linguaggi di programmazione odierni e indirettamente ha condotto Alan Turing all’idea di un calcolatore generale. Tuttavia la logica di Frege non realizzò il sogno di Leibniz: pur conoscendone le leggi, infatti, non era possibile determinare infallibilmente se una certa conclusione segue o meno da certe premesse.
Bertrand Russell (1872-1970), il celebre logico, matematico e filosofo gallese, che pure condivideva l’idea di Frege di dimostrare che l’aritmetica e anzi tutta la matematica poteva essere considerata un ramo della logica (logicismo), dimostrò in una lettera a Frege che la sua costruzione, la sua aritmetica ricostruita attraverso l’uso di insiemi di insiemi non era immune da contraddizioni e incoerenze. Frege era convinto che la sua Begriffsschrift fosse la realizzazione del linguaggio logico universale invocato da Leibniz, ma Leibniz, il quale aveva immaginato un linguaggio non solo utilizzabile per trarre deduzioni, ma in grado anche di inglobare in maniera automatica tutte le verità della scienza e della filosofia, ne sarebbe stato probabilmente deluso.
Alle prese con il calcolo infinitesimale, Leibniz aveva proposto la distinzione tra numeri irrazionali algebrici e trascendenti. Il grande matematico tedesco Georg Cantor (1845-1918), padre della teoria degli insiemi e del numero transfinito, formalizzò tale distinzione nella teoria degli insiemi con i diversi gradi di infinito, per cui l'insieme dei numeri razionali (numeri ottenibili come rapporto tra due numeri interi) è infinitamente più piccolo dell'insieme dei numeri reali (numeri ai quali è possibile attribuire uno sviluppo decimale finito o infinito). L'idea dominante fino a Cantor era stata l'unicità dell'infinito. Cantor dimostrò invece che esistono infiniti più grandi e infiniti più piccoli.
David Hilbert e la crisi della matematica
modificaDavid Hilbert (1862-1943), nato a Königsberg, la stessa città che diede i natali a Kant, fu uno dei più eminenti ed influenti matematici a cavallo dei due secoli. Ai colleghi matematici presenti al Congresso internazionale di Parigi del 1900, Hilbert, che avvertiva il perpetuo richiamo “Ecco il problema, cerca la soluzione, puoi trovarla con la pura ragione”, propose la sfida del Novecento: 23 problemi che apparivano intrattabili con i metodi esistenti.
Dopo che il paradosso comunicato da Bertrand Russell a Gottlob Frege nel 1902 era divenuto di pubblico dominio, molti cominciarono a vedere la difficoltà di fondare la matematica come una crisi dei fondamenti. Ma lo stesso Russell lavorò a un sistema di logica simbolica capace di realizzare il programma di Frege di riduzione dell’aritmetica alla logica pura senza incorrere nei paradossi, con il sostegno del sistema dei simboli introdotto da Giuseppe Peano, più comprensibile rispetto a quello elaborato da Frege.
Il tentativo di Russell di resuscitare il programma di Frege prese la forma dei Principia Mathematica (1910-1913), scritti insieme ad Alfred Whitehead: gli autori dimostrarono una volta per tutte che la formalizzazione completa della matematica entro un sistema di logica simbolica era perfettamente realizzabile. Secondo Henri Poincaré, che contendeva a Hilbert il titolo di più grande matematico vivente, prendere sul serio gli sforzi di Cantor, Hilbert e Russell significava ammettere la possibilità di ridurre la matematica a mero calcolo (il sogno di Leibniz!): un'assurdità.
Hilbert alla ricerca della completezza - Nel 1928 Hilbert pubblicò un piccolo libro che poneva due problemi relativi alla logica di base della Ideografia di Frege, oggi chiamata “logica del primo ordine”. Il primo problema consisteva nel dimostrare che la logica del primo ordine era completa, cioè che ogni formula che, vista dall’esterno, apparisse valida poteva essere derivata dentro il sistema usando solo le regole proposte dal manuale. Il secondo problema, noto come l’Entscheidungsproblem (problema della decisione) di Hilbert, era quello di trovare un metodo che, data una formula della logica del primo ordine, determinasse, in un numero finito di passi ben definiti ed effettivi, se essa era o non era valida.
Questi due problemi fecero rivivere nel ventesimo secolo le speranze di avverare il sogno di Leibniz.
Kurt Gödel e i teoremi di incompletezza
modificaKurt Gödel (1906-1978) è stato un matematico, logico e filosofo austriaco naturalizzato statunitense, noto soprattutto per i suoi lavori sull’incompletezza delle teorie matematiche. Gödel, che conservò sempre un vivo interesse per i classici tedeschi della filosofia (soprattutto per Leibniz), è ritenuto uno dei più grandi logici di tutti i tempi insieme ad Aristotele e Frege; le sue ricerche ebbero un significativo impatto, oltre che sul pensiero matematico e informatico, anche sul pensiero filosofico del ventesimo secolo.
Il secondo problema del celebre elenco hilbertiano del 1900 era come dimostrare che l'aritmetica dei numeri reali non era contraddittoria. Hilbert aveva escogitato il suo programma “metamatematico” di assiomatizzazione di tutta la matematica all'interno di un sistema logico formale. Il programma di Hilbert era una completa e consistente assiomatizzazione di tutta la matematica, laddove consistente significa che dal sistema non si può derivare alcuna contraddizione.
Il programma di Hilbert ricevette un colpo mortale dal secondo dei teoremi di incompletezza di Gödel, il quale stabilisce che ogni sistema di assiomi sufficientemente espressivo non può mai dimostrare la propria consistenza. Anziché mettere la matematica al riparo dalle critiche degli avversari di Hilbert, come aveva sperato, Gödel di fatto seppellì il programma di Hilbert. Gödel giunse alla conclusione che l'estensione della verità matematica andava al di là di ciò che poteva essere dimostrato in qualsiasi sistema formale.
Nell'opera Su alcune proposizioni formalmente indecidibili dei Principia Mathematica e di sistemi affini (1931), Gödel dimostrò che nemmeno sistemi formali molto potenti come quello messo a punto da Whitehead e Russell, potevano sperare di abbracciare l’intero dominio della verità matematica. Grazie al metodo della diagonale, uno stratagemma matematico appreso da Georg Cantor, Gödel dimostrò che si poteva fare in modo che la proposizione di cui si asseriva l’indimostrabilità e quella in cui si faceva tale asserzione fossero una e una sola. Tale proposizione è vera ma non dimostrabile nel sistema stesso: è una proposizione indecidibile (all'interno del sistema).
La storia che va da Leibniz a Gödel fu dunque un periodo in cui si alternarono sogni, tentativi e disillusioni. Leibniz si era proposto di creare un linguaggio artificiale in cui buona parte del pensiero umano fosse ridotta a calcolo. Nella sua Ideografia, Frege aveva mostrato come fosse concretamente possibile catturare i normali ragionamenti logici dei matematici. Whitehead-Russell avevano rielaborato la matematica corrente in un linguaggio logico artificiale. Hilbert aveva creduto di poter fondare la matematica su un sistema logico formale completo e coerente. Gödel dimostrò che nessun sistema logico formale, poteva provare la propria coerenza interna e che esistono problemi matematici irrisolubili. Nel 1941, Gödel pubblicò una monografia sulla coerenza dell'ipotesi del continuo, dove per continuo si intende l'insieme dei numeri reali. Questi rappresentano l'infinito più piccolo,la cui dimensione è maggiore dei numeri interi ove nel mezzo non ci sono infiniti intermedi. Lo scienziato dimostrò quindi che,in un sistema definito non si può smentire l'ipotesi. In seguito lo studioso incentrò la propria speculazione sugli studi relativi alla cosmologia, con particolare riguardo alle equazioni di Einstein dell'universo rotante,e quelli riguardanti il filosofo Gottfried Wilhelm Leibniz sull'aritmetica binaria. Questa sua ultima elaborazione fu però ridicolizzata e tralasciata dai critici, che ritenevano la sua mente superiore a tali stupidi ragionamenti. Lo studio di Leibniz sulla codifica binaria come chiave interpretativa di un linguaggio universale, basato su regole meccaniche,costituiva il precursore della macchina universale di Turing, così come le osservazioni di Gödel. Il filosofo senza ovviamente saperlo, aveva inventato il registro elettronico a scorrimento veloce.Il meccanismo binario, infatti, prevedeva la traduzione simboli sferici in numeri binari. Tali simboli erano governati da porte con soli due punti: 0 e 1, le prime rimanevano chiuse, mentre le seconde, aperte, e proprio in queste si lasciavano cadere dadi o palline,il meccanismo si muoveva poi da una parte all'altra, con un trascinamento simile a quello della moltiplicazione. Quello che Leibniz, Gödel e Turing tentarono di far comprendere all'umanità era l'indimostrabilità delle verità matematiche all'interno di tale scienza stessa e del mondo reale nel suo insieme. Il nostro mondo,infatti,secondo i tre scienziati non era comprensibile e spiegabile attraverso le sue stesse leggi, ma il suo significato lo trascendeva.
Riferimenti bibliografici
modifica- M. Davis, The Universal Computer. The Road from Leibniz to Turing, 2000; tr. it. Il calcolatore universale, Milano 2003, nuova ed. 2012.
- U. Pagallo, Introduzione alla filosofia digitale. Da Leibniz a Chaitin, Torino 2005.
- George Dyson, La cattedrale di Turing, Codice Edizioni Torino 2012.