Angela Bonazza Tesina d`informatica Il Problema dell`Indecidibilità

Angela Bonazza
Tesina d’informatica
Il Problema dell’Indecidibilità
Analisi e confronto dei risultati di Kurt Gödel e Alan Turing
Tra i problemi che assillarono i matematici del XX la questione sui fondamenti della
matematica fu uno più discussi.
Tutto ebbe origine dal famoso “assioma delle parallele”:per un punto esterno ad una retta
passa una ed una sola retta parallela alla retta data. È possibile dimostrare tale asserzione?
Una dimostrazione nel senso moderno del termine è una deduzione di una tesi a partire
da certe premesse dette ipotesi date per vere o a loro volta dimostrate in precedenza.Ci
chiediamo dunque è possibile dedurre tale proposizione dagli assiomi della geometria
euclidea?
Dopo secoli di tentativi,nel XIX secolo fu dimostrata l’impossibilità di dimostrare tale
asserzione .Si trassero dunque due conclusioni:
1. è possibile dare una dimostrazione dell’impossibilità
proposizioni a partire da certe premesse;
2. l’insieme degli assiomi euclidei è incompleto.
di dimostrare certe
Tali conseguenza aprirono le porte ad un campo d’indagine prima ignorato attorno ad una
domanda fondamentale:esiste un numero finito di assiomi da cui sia possibile generare
tutta la matematica?Ovvero la matematica è assiomatizzabile?
Queste domande ed altre ancora rientrano in un programma più vasto noto come
programma di Hilbert.
L’approccio formalista di Hilbert alla questione
Il tentativo di assiomatizzazione dell’intera matematica pretendeva di racchiudere l’intera
conoscenza fino ad allora raggiunta entro i limiti di un sistema formale.
In linea generale,un sistema formale è costituito da:
 un alfabeto:insieme di simboli astratti,svuotati di ogni significato. Così,ad
esempio, se nel mio alfabeto compaiono i simboli 0 e 1,questi non saranno i
numeri 0 e 1,ma i numerali 0 e 1.
 un numero finito di stringhe (cioè successioni finite di simboli dell’alfabeto)
prese come assiomi del sistema,ovvero verità indimostrabili.
 un numero finito di regole di trasformazione che specificano le operazioni
ammesse nella manipolazione di tali assiomi.
Dimostrare qualcosa all’interno di un sistema formale vorrà dire perciò partire dagli
assiomi e applicare una successione finita di trasformazioni: l’ultima stringa è detta
teorema del sistema formale.
A titolo d’esempio,una regola di trasformazione è quella del modus ponens: dalla veridicità
delle proposizioni P (ipotesi) e P→Q,deduciamo la veridicità di Q (tesi) .
Notiamo l’importanza di svuotare i simboli dal loro significato: da questa operazione di
svuotamento deriva l’aggettivo formale; in questo modo la validità della dimostrazione
poggia sulla struttura della affermazioni piuttosto che sul loro contenuto.
Ad un sistema formale che assiomatizzi l’intera conoscenza matematica si richiedono due
qualità principali:
2
1. Coerenza: un sistema non deve produrre al tempo stesso la proposizione P e la sua
negazione ~P.
2. Completezza: dato un qualsiasi enunciato matematico esso deve poter essere
dimostrato oppure refutato a partire dagli assiomi del sistema.
Hilbert era pronto a scommettere che tale sistema coerente e completo esistesse e anzi
riteneva che un possibile candidato fossero i Principia Matematica di Russel e Whitehead.
Ma non era così.
I RISULTATI DI GÖDEL
Il teorema di incompletezza
Le speranze di Hilbert vennero presto deluse dal grande logico Kurt Gödel (1906-1978).
Gödel riuscì a dimostrare che dato un sistema coerente di assiomi concernenti l’aritmetica
che fosse abbastanza potente da produrre proposizioni autoreferenziali,esistono delle
proposizioni aritmetiche vere che tuttavia non possono essere dedotte a partire
dall’insieme di assiomi considerato. Tali proposizioni sono dunque indecidibili e il sistema
è incompleto.
L’enunciato del teorema di incompletezza di Gödel è il seguente:
“Ogni sistema coerente è incompleto”
CENNI ALLA DIMOSTRAZIONE
Nella sua dimostrazione Gödel s’ispirò al classico paradosso logico d’Epimenide.
Consideriamo l’enunciato
“Questa proposizione è falsa”
Chi può dire se tale affermazione è vera o falsa?
I casi sono due:
1) se diciamo che è vera,allora è vero che è falsa;
2) se diciamo che è falsa,allora è vero che è vera perché affermiamo la veridicità della sua
negazione.
La proposizione sopra enunciata è autoreferenziale nel senso che afferma qualcosa circa se
stessa; se di se stessa afferma che è falsa allora essa è anche in decidibile, nel senso che non
possiamo stabilire se è vera o falsa.
Il problema di Gödel era tradurre questa proposizione in linguaggio matematico.
Per raggiungere tale scopo,innanzitutto considerò una leggera variazione sostituendo
“falsa” con “indimostrabile” e poi notò che la proposizione così ottenuta (chiamiamola P)
era una proposizione metamatematica, inerente cioè ad un linguaggio che descrive la
matematica dall’esterno.
3
Nella sua ricerca, anche Hilbert si occupò di distinguere tra la matematica,intesa come sistema formale di
simboli “senza significato”, e la metamatematica,affermazioni cioè dotate di significato attorno ai segni che
intevengono nel calcolo , alla loro disposizione e alle relazioni tra essi.
Ad esempio,l’espressione 2+7=9,è un’espressione che concerne l’aritmetica composta interamente da segni
aritmetici elementari; mentre invece l’affermazione: “‘2+7=9’ è una formula aritmetica” non appartiene al
linguaggio dell’aritmetica ma alla metamatematica.
Di per sé le affermazioni metamatematiche non appartengono al sistema dato perché lo
scrutano dall’esterno;ma poiché l’indecidibilità risiedeva proprio in una di tali
proposizioni, Gödel si rese conto dell’importanza tradurle in proposizioni aritmetiche del
sistema stesso. Questo processo di traduzione è noto come numerazione di Gödel o
godelizzazione.
Gödel cominciò con l’assegnare ad ogni segno, ad ogni formula (cioè combinazione di
segni) e ad ogni successione di formule un numero in maniera univoca,fissando
innanzitutto 10 costanti elementari che riporto nella tabella sotto,numerate da 1 a 10.
Assegnò inoltre alle variabili numeriche dette x,y,z,etc.. il numerale corrispondente ai
numeri primi superiori a 10.
~
V
→
Э
=
0
s
SIMBOLI
non
oppure
se..allora
esiste
eguale a
zero
successore
(
)
,
x
y
z
……
NUMERO
1
2
3
4
5
6
7
8
9
10
11
13
17
…..
Consideriamo ad esempio la formula
( Э x )( x = s y )
↓ ↓ ↓ ↓↓ ↓ ↓ ↓ ↓ ↓
8 4 11 9 8 11 5 7 13 9
Naturalmente vorremmo che tale formula, che a parole può essere espressa con “esiste x
tale che x è successore di y”, fosse rappresentata da un unico numero di Gödel.
Il numero associato a tale formula viene ricavato nel seguente modo: è dato dal prodotto
dei primi 10 primi elevati alla potenza del numero di Gödel elementare corrispondente.
Creiamo così il numero m che non ci conviene calcolare:
4
2^8×3^4×5^11×7^9×11^8×13^9×17^5×19^7×23^13×29^9
In questo modo Gödel creò una corrispondenza biunivoca tra le espressioni del calcolo e
certi sottoinsiemi dei numeri naturali.
Il passo successivo è dunque l’aritmetizzazione della metamatematica:l’idea è che se ad
ogni espressione del calcolo è associato un numero,una proposizione attorno a tali
espressioni e alle loro relazioni può essere costruita come una proposizione attorno ai
numeri corrispondenti.
Gödel focalizzò la sua attenzione sulla proposizione P :
“la sequenza di formule con numero di Gödel x è una dimostrazione della formula con
numero di Gödel z”
L’idea è quella di associare a tale proposizione una formula che esprima una relazione
puramente aritmetica fra x e z.
Per quanto complessa tale formula esiste e la denoteremo con Dim(x,z). Notiamo che la
proposizione P è vera se e solo se il numero di Gödel x sta a z nella relazione Dim.
Consideriamo ora la proposizione :
“Per ogni x,la sequenza d formule con numero di Gödel x non dimostra la formula con
numero di Gödel z”
La formula corrispondente a tale proposizione metamatematica è :
(x)~Dim(x,z)
Che in pratica afferma che non esiste alcun dimostrazione della formula espressa da z.
Al posto di z mettiamo ora il numero che indichiamo con sost(y,13,y) ,che è il numero di
Gödel della formula ottenuta sostituendo nella formula con numero di Gödel y alla
variabile con numero di Gödel 13 il numerale corrispondente a y.
Stiamo allora dicendo.
(x)~Dim[x,sost(y,13,y)]
(1)
Cioè la formula con numero di Gödel sost(y,13,y) non è dimostrabile.
La formula 1 appartiene al sistema in quanto rappresenta una proposizione
metamatematica che esprime relazioni tra numeri di Gödel, rappresentazioni di certe
espressioni matematiche; dunque anch’essa avrà un numero di Gödel:diciamo n.
Sostituiamo ora alla variabile con numero di Gödel 13 (cioè y) nella formula (1) che ha
numero di Gödel n, il numerale corrispondente a n. Otteniamo così una nuova
proposizione che chiameremo G, con numero di Gödel sost(n,13,n) che recita
(x)~Dim[x,sost(n,13,n)]
Ovvero in parole:
“la formula con numero di Gödel sost(n,13,n) non è dimostrabile”
5
Cioè
“Non sono dimostrabile”
Con non poca fatica abbiamo trovato quindi non solo un enunciato del sistema
autoreferenziale ,ma anche che dice di se stesso di non essere dimostrabile.
È ora inevitabile cadere nel paradosso di Epimenide che dice che tale proposizione è in
decidibile .Infatti G è vera se e soltanto se anche ~G lo è. Nonostante G sia in decidibile a
partire da qualsiasi insieme di assiomi dato, per ragionamenti metamatematici si riesce
anche a dimostrare che G è vera: cioè che esprime una proprietà numerica complicata ma
vera per ogni numero naturale. Dunque abbiamo una proposizione vera ma non
dimostrabile né refutabile all’interno del sistema. Conclusione:se ammettiamo che il
sistema sia coerente,esso è necessariamente incompleto.
I risultati di Gödel mostrarono anche che, qualora si volesse completare il sistema
aggiungendo al numero degli assiomi altri assiomi o la stessa proposizione G, avremmo
un altro sistema di assiomi in cui comunque potremmo trovare una proposizione in
decidibile H dello stesso tipo di G:dunque l’aritmetica non solo è incompleta ma è
essenzialmente incompleta.
Inoltre Gödel descrisse la maniera in cui costruire una formula aritmetica A che
rappresenti la proposizione metamatematica “l’aritmetica è coerente” e dimostrò che la
formula A→G è formalmente dimostrabile. Infine dimostrò che la formula A non è
dimostrabile,perché se lo fosse allora la regola del modus ponens affermerebbe che G è
dimostrabile in quanto A→G è dimostrabile;ma G è indimostrabile; conclusione:
- se l’aritmetica è coerente,essa è incompleta (A→G);
- la coerenza dell’aritmetica non è dimostrabile all’interno del sistema dell’aritmetica
stessa:non esiste nessun sistema formale che descriva l’aritmetica in grado di
provare la sua coerenza anche se questo non esclude una qualche dimostrazione
metamatematica
Schema riassuntivo dei passi della dimostrazione :
1. Numerazione di Gödel : schema di codifica che permette di trasformare ogni formula logica o sequenza
dimostrativa riguardante la matematica in un’asserzione attorno ai numeri naturali.
2. Paradosso di Epimenide : si considera la proposizione “Questa asserzione è indimostrabile”.
3. Costruzione di G : si costruisce una formula logica che sia l’equivalente del paradosso di Epimenide,
4. Incompletezza : si nota che G è indecidibile qualunque siano gli assiomi del sistema e quindi se il sistema
è coerente per forza sarà incompleto.
5. Essenziale incompletezza : si dimostra che anche se aggiungessimo altri assiomi al sistema o la stessa
G,comunque il nuovo sistema produrrebbe una proposizione equivalente a G e quindi indecidibile .
6. Coerenza : l’aritmetica come sistema formale è troppo debole per provare la sua coerenza ma un sistema è
coerente allora è incompleto.
6
TURING e L’ENTSCHEIDUNG PROBLEM
Anche Turing,quasi contemporaneamente a Gödel si occupò del problema della
decidibilità delle proposizioni all’interno di un dato sistema.Ciò che di meccanico aveva
l’idea di Hilbert di dimostrazione come manipolazione di simboli gli suggerì la creazione
di un oggetto matematico astratto battezzato poi col nome di macchina di Turing.
Ciò che spinse Turing ad elaborare tale macchina concettuale era il cosiddetto Problema
della Decisione che rientrava nel programma di Hilbert:esiste un metodo definito che
applicato a qualsiasi asserto ci dia delle informazioni sulla verità o falsità di tale asserto?in
pratica all’interno di un sistema formale per ogni proposizione P considerata,tale
proposizione è decidibile?Dai risultati di Godel sappiamo già la risposta:esiste almeno un
asserto non decidibile in qualunque sistema formale coerente.
Turing arrivò alla risposta passando attraverso la macchina di Turing.
Descrizione della macchina di Turing
In generale:
Una macchina di Turing consiste in un nastro di estensione infinita suddiviso in caselle ciascuna delle quali
è occupata da un singolo simbolo di un alfabeto finito.
Un dispositivo di lettura-scrittura opera a passi discreti,cioè in ogni istante si trova davanti a una ed una
sola di tali caselle.Tale dispositivo può:
-scrivere un nuovo o simbolo oppure mantenere quello che legge nella casella che ha davanti:
-spostarsi a destra o sinistra oppure fermarsi.
Se chiamiamo Ω l’alfabeto della macchina e Ψ l’insieme degli stati della macchina possiamo vedere il
comportamento come una funzione:
F: Ω x Ψ → Ω x Ψ x {←,→}
che alla coppia (stato, simbolo) associa una terna (stato ,simbolo, sx o dx).
Un esempio:
Consideriamo la macchina di Turing tale che Ω:={0,1,x},vogliamo che tale macchina sommi i due numeri 1
che scriviamo sul nastro:l’idea è quella di decrementare di 1 il secondo ad ogni passaggio e incrementare di 1
il primo. Si ferma quando il secondo è tutto 0.
x
1
1
0
x
1
1
0
x
x
x
x
x
x
Riassumiamo il comportamento della macchina in una tabella dove sono rappresentati gli stati possibili a
seconda del simbolo letto dalla testina. Le frecce indicano gli spostamenti a dx o a sx.
Decrementa (S1)
Cerca a sx (S2)
Incrementa (S3)
Cerca a dx (S4)
S5
0
1 , S1 , ←
0 , S2 , ←
1 , S4 , →
0 , S4 , →
0 , S5 , →
1
0 , S2 , ←
1 , S2 , ←
0 , S3 , ←
1 , S4 , →
1 , S5 , →
Lo stato X rappresenta la casella vuota.
7
X
X , Halt , ←
X , S3 , ←
1 , S4 , →
X , S5 , →
X , S1 , ←
La prima riga della tabella descrive la macchina nello stato di decremento del numero che sta sulla destra del
nastro (la testina parte a leggere da dx a sx):
-se incontra uno 0,deve trasformarlo in 1 e passare alla casella successiva sulla sinistra;
-se incontra 1 deve trasformarlo in 0 e passare a cercare l’altro numero,quindi allo stato S2,
-se incontra una casella vuota,vuol dire che ha finito di decrementare,quindi si ferma.
Supponiamo abbia incontrato un 1;siamo allora nello stato S2. Stiamo cercando il numero a sx;se troviamo
una casella vuota,vuol dire che la nostra ricerca è finita e possiamo passare allo stato S3 spostandoci a sx.Ora
dobbiamo incrementare di uno il nostro nuovo numero;dunque se incontro 0 o una casella x (vuota) lo
trasformo in uno e passo di nuovo a dx ; finché non incontro una casella vuota,cioè finché non scorro tutto il
numero permango nello stato S4;poi passo allo stato S5 che mi permette di scorrere il numero a dx senza
variarlo.
Macchina di Turing universale
accettare come input non solo dati ma anche programmi o algoritmi per la manipolazione
di questi. In pratica possiamo dire che la macchina di Turing non è altro che un
programma o algoritmo;se riusciamo a codificare tale programma in linguaggio macchina
possiamo scriverlo sul nastro di un’altra macchina di Turing che sarà quindi detta
macchina di Turing universale (MTU).Tale processo di codificazione è simile alla
enumerazione di Godel .Infatti,Turing mostrò che qualsiasi algoritmo matematico poteva
essere descritto da una MT . A questo punto bastava associare ad ogni MT un intero:una
MTU dunque avrebbe accettato come input il cosiddetto numero di descrizione
dell’algoritmo per elaborare i dati. Ad una MTU veniva dunque richiesto:
-la lettura dei numeri di trascrizione;
-le loro codificazione in tavole di istruzione che descrivessero le MT corrispondenti;
-l’esecuzione di tali istruzioni sui dati in ingresso. Turing elaborò anche l’idea per una
macchina immaginaria molto più potente che potesse
Avendo ridotto la dimostrazione di un enunciato matematico ad un processo puramente
meccanico,Turing avanzò l’ipotesi per cui qualunque calcolo matematico può essere svolto
da una particolare MT (tesi di Church-Turing):dunque ad ogni formula matematica
corrispondeva una data tavola e quindi un numero di descrizione.
Come lo stesso Godel aveva fatto in precedenza il problema veniva dunque spostato dalle
operazioni sui numeri ai numeri stessi,perché la MTU avrebbe manipolato solo numeri.
L’Halting Problem e la soluzione di Turing
Supponiamo di voler calcolare lo sviluppo decimale di л;esiste sicuramente un algoritmo
matematico in grado di farlo e quindi una MT associata a tale algoritmo;naturalmente per
calcolare tale sviluppo ci vorrà un tempo infinito perché л è un numero irrazionale,quindi
con infinite cifre dopo la virgola:una MTU che accettasse in input il programma per
calcolare л non terminerebbe mai. Una domanda interessante può essere allora: esiste una
procedura definita che ci dice se un programma terminerà o meno?Ovvero,dato un
qualsiasi programma P per una MT e un insieme di dati I come input,esiste una MT che
accetti P e I come input e ci dica se P si fermerà o meno dopo un numero finito di passi con
I come input?Questa è una formulazione del Problema dell’Arresto.
8
Turing mostrò che tale procedura non esiste, tramite una dimostrazione per assurdo. Usò
come aveva fatto Godel l’argomento dell’autoreferenza.
La soluzione di Turing
Supponiamo dunque che esista una macchina di Turing (o equivalentemente un
programma scritto in qualche linguaggio,C ad esempio) che accetti come input una
funzione F e i dati su cui tale funzione deve lavorare (in questo caso la funzione stessa
rappresenterà un qualche algoritmo matematico e quindi una MT corrispondente) e sia in
grado di dirci se tale funzione F applicata ai dati in input I termina oppure no;chiamiamo
questa supposta macchina HALT.
Se fosse un programma in “C” probabilmente avrebbe il seguente aspetto:
char* HALT(char* s)
/*funzione che accetti una stringa e restituisca una stringa/
s=”char*F(…){…}$..I.”
/*stringa che passeremo alla funzione HALT contenente F e I/
{
char*f=parte della stringa che contiene F;
char*x=parte della stringa che contiene I;
if(f(x) termina)
return YES;
else
return NO;
}
Costruiamo ora un programma G che accetti come input una stringa contenente la
funzione HALT e il suo argomento che sarà F(I).Tale programma G sarà costruito in modo
tale che:
-se la funzione HALT mi dice che F(I) termina,allora il programma G entra in un ciclo
infinito e quindi non termina;
-se la funzione HALT mi dice che F(I) non termina,allora il programma G terminerà
rispondendo “NO”.
Supponendo di costruire tale programma G in “C” avremo una cosa del genere:
char*G(char*s)
/*funzione che accetta e restituisce una stringa
s=”char*F(….){…}$..I”
/*stringa che descrive a sua volta una funzione F e i dati a cui F va applicata
{
If (HALT(s) restituisce YES)
/*se HALT mi dice che la funzione F(I) termina
while(1)
/*entra in un ciclo while infinito,cioè G non termina
else
return NO;
/*altrimenti restituisci NO e quindi G termina
}
9
Supponiamo ora di passare alla funzione G una stringa contenente non una funzione
qualsiasi ma la stessa G;chiamiamo tale stringa g. Cosa ci dirà il programma?G(g) termina
oppure no?per saperlo applichiamo la funzione HALT:
-se HALT(G(g)) risponde “YES” cioè G(g) termina,allora per come è costruito il
programma G,G non termina.
-se HALT(G(g)) risponde “NO”,cioè G(g) non termina,allora per come è costruito il
programma G,G termina.
Conclusione:esiste almeno un caso di indecidibilità per la funzione HALT comunque essa
sia costruita e quindi tale funzione non esiste!!
Turing parlò anche (e soprattutto) di numeri computabili;il concetto era il seguente:un qualsiasi numero
reale che fosse definito da qualche regola definita deve poter essere calcolato da una MT.Ad esempio ci sarà
una MT in grado di calcolare lo sviluppo decimale di л;tale processo ovviamente non avrà mai fine ma le
operazioni necessarie per il calcolo saranno finitamente descritte.Turing mostrò l’esistenza di numeri non
computabili usando l’analogo del ragionamento diagonale di Cantor per la dimostrazione dell’esistenza dei
numeri irrazionali. Supponiamo che esista una macchina in grado di produrre un numero diagonale non
computabile e supponiamo anche di aver codificato i procedimenti matematici per il calcolo di tutti i numeri
computabili tramite tavole di descrizione numerate a partire da 1. La macchina dovrebbe (secondo il
procedimento di Cantor) calcolare il numero corrispondente alla prima tavola fino alla prima cifra e
aumentare questa di 1,passare poi alla seconda tavola,calcolare il numero corrispondente fino alla seconda
cifra e aumentare questa di 1 e così via…produrremo quindi un numero che differisce dai precedenti per una
cifra ma che non è computabile in quanto abbiamo supposto di elencare tutti i numeri computabili all’inizio
del nostro ragionamento. Il Problema dell’Arresto poteva essere riformulato nel seguente modo:era possibile
prevedere il comportamento di una MT nel calcolo di tale numero?Possiamo sapere in anticipo se la MT
calcolerà il numero oppure si metterà a ripetere all’infinito le stesse operazioni senza produrre un bel
niente?La riposta è che ogni previsione è impossibile. E quindi la macchina che simula il procedimento di
Cantor,pur descrivendo un processo meccanico per il calcolo di un numero non esiste.
ANALOGIE TRA I RISULTATI DI GÖDEL E QUELLI DI TURING
I risultati di Gödel e quelli di Turing presentano impressionanti analogie;lo stesso Turing
mostrò l’equivalenza tra una MTU e un sistema formale:arrivò ad affermare che dato una
qualunque MTU,detta C, dotata di memoria illimitata (che quindi lavori su un nastro
infinito) possiamo trovare un sistema formale F tale che i possibili output di C coincidano
con i teoremi generati dal sistema formale F e viceversa.
Possiamo ad esempio creare una funzione in C che generi tutti i programmi in C esistenti;ci troviamo
all’interno di un sistema formale che abbia come alfabeto il codice ASCII e che accetti come teoremi del
sistema tutte le stringhe in C che il compilatore accetta;la compilazione sarà la nostra regola di deduzione di
una stringa dall’altra,naturalmente tale programma non terminerà mai perché i programmi C sono
numerabili ma infiniti (sono numerabili in quanto il numero di simboli nel codice ASCII è finito,126).
Supponiamo di aver creato un MTU che accetti come input la macchina di Turing associata ad una
compilatore e come dati in ingresso le stringhe scritte in codice ASCII su cui deve operare il compilatore;;tale
MT simulerà il comportamento del programma descritto e genererà a partire da una stringa iniziale tutte le
stringhe in codice ASCII che sono programmi in C,cioè tutti i teoremi del sistema.
Riformuliamo nel seguente modo le scoperte di Gödel e quelle di Turing per cogliere
meglio le analogie:
10
Teorema di Gödel:per ogni sistema formale F che si proponga di decidere (cioè
dimostrare o refutare) tutte le asserzioni dell’aritmetica,esiste una proposizione aritmetica
che non può essere né dimostrata né refutata all’interno del sistema stesso.Dunque il
sistema F è incompleto.
Teorema dell’Arresto:per ogni programma H che si proponga di decidere se un
qualunque programma termina o non termina,esistono un programma G e un input I tali
che H non riesce determinare se G si arresterà o meno quando elabora i dati I
CONCLUSIONI
Dopo le scoperte di Gödel e Turing si parlò di crisi dei fondamenti della matematica.
Ci troviamo infatti di fronte ad un bivio : ammettendo la coerenza della matematica viene
meno la sua completezza. Le conseguenze dei risultati di Gödel e Turing on vanno però
vissute in maniera così tragica;è chiaro che il sogno hilbertiano di assiomatizzazione
dell’intera matematica non è realizzabile;ciononostante le proposizioni non dimostrabili
sono all’origine di nuova matematica,ad esempio quando venne dimostrato che l’assioma
delle parallele era effettivamente tale,vennero esplorate nuove geometrie non euclidee.
Secondo lo stesso Gödel,chiudere la matematica nei limiti di un sistema formale avrebbe sì
avuto il pregio di avere il pieno e totale controllo della disciplina ma ne avrebbe limitato
notevolmente l’espansione.
Inoltre il fatto che i ragionamenti della mente umana nell’ambito della dimostrazione di
un qualsiasi teorema non possano essere ridotti a puro meccanicismo è consolante:ciò vuol
dire che la struttura e la potenza della mente umana sono di gran lunga più complicate e
sottili di quelle di qualunque macchina finora costruita,anche se i risultati di Gödel non
vietano né affermano che un giorno tale macchina possa esistere.
Bibliografia
 La prova di Gödel, E.Nagel,J.R.Newman,Bollati Boringhieri,Torino 1992
 Gödel,l’eccentrica vita di un genio, John L.Casti,Werner DePauli,Raffaello Cortina
editore,2001
 Storia di un enigma,vita di Alan Turing ,Andrew Hodges,Bollati Boringhieri,1991
11
12