Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Documenti analoghi
Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Ma il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l equazione

MACCHINE DI TURING E CALCOLABILITA SECONDO TURING

MACCHINE DI TURING defnizione formale del concetto astratto di algoritmo accettare riconoscimento parziale di tutti i linguaggi di tipo 0

Laurea Specialistica in Informatica - Università di Ferrara [1]

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29

acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1

Macchina di Turing ... !!... !!! a b b! b a! Nastro di Input. testina. s t q i. s r. Unità di Controllo q j S / D / F

12. MACCHINE DI TURING E CALCOLABILITA

Macchine RAM. API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD

Linguaggi Regolari e Linguaggi Liberi

AUTOMI A PILA. M.P. Schutzenberger

Dispense del corso di Linguaggi di programmazione e laboratorio Linguaggi formali(versione non definitiva con diversi refusi) Francesco Sisini

MODULO 07 LA MACCHINA DI TURING

Varianti Macchine di Turing

Linguaggio universale, riduzioni, e teorema di Rice. Linguaggio universale, riduzioni, e teorema di Rice

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI

Forma Normale di Chomsky

Forme Normali. Forma normale di Chomsky. E caratterizzata da regole di due tipi. A! BC dove A, B, C $ V N A! a con a $ V T. Forma normale di Greibach

Fondamenti di Informatica. Algoritmo. Algoritmo funzionale. Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a.

Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014

La tesi di Church-Turing

Informatica Teorica. Sezione Cremona + Como. Appello del 20 Luglio 2004

Università degli Studi di Udine. 1 Automi e Linguaggi. Prova Scritta di Fondamenti dell Informatica II Alcune Soluzioni

Tipologie di macchine di Turing

La macchina universale

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo

Aniello Murano Automi e Pushdown

ITLCC 2006/10/6 19:09 page 7 #3

Presentazione di gruppi

Linguaggi Regolari e Linguaggi Liberi

ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE

Le Macchine di Turing

Algoritmi e Principi dell Informatica

PARTE III MACCHINE A REGISTRI

PARTE III MACCHINE A REGISTRI

Informatica Teorica. Macchine a registri

Automi a pila. Automi a pila

Note aggiuntive al corso di Informatica Teorica a.a

Insiemi, Numeri, Terminologia. Prof. Simone Sbaraglia

Costruzione di espressioni regolari 4

Turing, i nastri e le macchine

controllo stringa a a b a b b c c b a b x y z pila di memoria

UNA GERARCHIA DI MACCHINE

Alcuni Teoremi sulle funzioni continue e uniforme continuità

L AUTOMA ESECUTORE L AUTOMA ESECUTORE

(2) se A A, allora A c A; (3) se {A n } A, allora +

Logica proposizionale

Esercizio su MT. Svolgimento

Le grammatiche formali

Calcolo e Quanti Una Brevissima Introduzione alla Computazione Quantistica

Il concetto di calcolatore e di algoritmo

acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1

Macchine di Turing: somma di due numeri

Macchine di Turing. a n B B. Controllo Finito

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali

Presentazioni di gruppi: generatori e relazioni

Elementi di Informatica e Programmazione

Lunghezza media. Teorema Codice D-ario prefisso per v.c. X soddisfa. L H D (X). Uguaglianza vale sse D l i. = p i. . p.1/27

Teoria della Complessità Computazionale. Accettazione/riconoscimento di linguaggi in tempo/spazio

Espressioni regolari

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13)

Funzioni calcolabili e linguaggi decidibili

LIMITI. 1. Definizione di limite.

La Macchina RAM Shepherdson e Sturgis (1963)

Complementi di Analisi Matematica Ia. Carlo Bardaro

Parole note, nuovi significati: linguaggio, determinismo e infinito

Proprietà dei linguaggi regolari

NOTE SULLE FUNZIONI CONVESSE DI UNA VARIABILE REALE

Argomenti diagonali. Gianluigi Bellin

01 - Elementi di Teoria degli Insiemi

Successioni di funzioni: esercizi svolti

Capitolo 3: Ottimizzazione non vincolata parte III. E. Amaldi DEI, Politecnico di Milano

Ti piacciono le riviste di meccanica? Settant anni di macchine di Turing

Argomenti Capitolo 1 Richiami

IL TEOREMA DEGLI ZERI Una dimostrazione di Ezio Fornero

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

In molte applicazioni sorge il problema di sapere in quanti modi possibili si può presentare un certo fenomeno.

8. Completamento di uno spazio di misura.

Concetti fondamentali

L aritmetica degli insiemi infiniti Parte I

Progamma sintetico. Nozioni preliminari Automi Finiti Macchine di Turing Limiti delle macchine di Turing La tesi di Church-Turing Le classi P e NP

I metodi formali dell Analisi Lessicale: Le Espressioni Regolar

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1

Definizione di Grammatica

Pumping lemma per i linguaggi Context-free

La codifica digitale

Corso di Linguaggi e Traduttori 1 AA GRAMMATICHE

Linguaggi di Programmazione Corso C. Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali. Nicola Fanizzi

L AUTOMA ESECUTORE L AUTOMA ESECUTORE

RELAZIONI, FUNZIONI, INSIEMI NUMERICI. 1. Relazioni. Siano X e Y due insiemi non vuoti. Si definisce il prodotto cartesiano

Algoritmi e Principi dell Informatica

Reti Sequenziali. Reti Sequenziali. Corso di Architetture degli Elaboratori

TEN Radici quadrate modulo p e modulo p k. Radici quadrate modulo p, con p > 2.

Analisi e Modelli Matematici

DIFFERENZIAZIONE. Sia f una funzione reale di variabile reale con dominio un intervallo. Se f è derivabile in un punto x 0, allora: f(x) f(x 0 ) lim

Proprieta dei Linguaggi regolari

Introduzione ad alcuni sistemi di logica modale

Programmazione Lineare

Transcript:

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing 1

Macchina di Turing (MDT ) Un dispositivo che accede a un nastro (potenzialmente) illimitato diviso in celle contenenti ciascuna un simbolo di un alfabeto fissato, piú il carattere b (cella vuota). La MDT opera sul nastro con una testina: puó leggere o scrivere un carattere in una cella, spostarsi a destra o sinistra. In ogni istante la macchina si trova in uno stato, e la computazione evolve attraverso la funzione di transizione δ: stato corrente + contenuto della cella su cui é la testina = nuovo stato + carattere da scrivere + spostamento. 2

Definizione 1 Una macchina di Turing deterministica (M DT ) é una sestupla M = Γ, b, Q, q 0, F, δ, dove: Γ é l alfabeto dei simboli di nastro b / Γ é il carattere speciale di cella vuota Q é un insieme non vuoto e finito di stati q 0 Q é lo stato iniziale F Q é l insieme degli stati finali δ é la funzione di transizione, definita come δ : (Q F ) (Γ { b}) Q (Γ { b}) {d, s, i} 3

Configurazioni e transizioni di una M DT Una configurazione istantanea di una M DT é l insieme del contenuto del nastro, della posizione della testina, e dello stato corrente. Definizione 2 Una configurazione istantanea di una M DT M = Γ, b, Q, q 0, F, δ é una stringa c = xqy, dove: 1. x ΓΓ {ε} (da ora in poi, L Γ ) 2. q Q 3. x Γ Γ { b} (da ora in poi, R Γ ) In xqy, xy rappresenta il contenuto della sezione non vuota del nastro; q é lo stato attuale; la testina é sul primo carattere di y. 4

La configurazione iniziale di una M DT prevede che: lo stato iniziale sia q 0 il nastro contenga l input x su x celle contigue (le altre vuote) la testina sia posizionata sul primo carattere di x. La configurazione finale di una MDT prevede che lo stato della macchina sia uno stato finale. Definizione 3 Una configurazione c = xqy si dice iniziale se x = ε, q = q 0, y Γ + { b} Definizione 4 Una configurazione c = xqy si dice finale se q F. 5

Funzione di transizione: data una configurazione c, un applicazione di δ produce una configurazione c (c M c ) come segue: 1. c = xqay, con x L Γ, y Γ Γ, a Γ, e δ(q, a) = (q, a, d) = c = xa q y; 2. c = xqy, con x L Γ, a Γ, e δ(q, a) = (q, a, d) = c = xa q b; 3. c = xaqby, con xa ΓΓ, y Γ Γ {ε}, b Γ e δ(q, b) = (q, b, s) = c = xq ab y; 4. c = qby, con y Γ Γ {ε}, b Γ, e δ(q, b) = (q, b, s) = c = q bb y; 5. c = xqay, con x L Γ, β Γ Γ {ε}, a Γ, e δ(q, a) = (q, b, i) = c = xq a y; 6

Computazione di una macchina di Turing Definizione 5 Data una macchina di Turing M = Γ, b, Q, q 0, F, δ, e dato un alfabeto di input Σ Γ, una stringa x Σ é accettata ( rifiutata) da M se esiste una computazione di accettazione (di rifiuto) con c 0 = q 0 x. Questa definizione implica che la macchina puó anche non terminare. Si puó sapere se una computazione termina? In altri termini, esiste una macchina M che puó dire se M termina per input x (problema dell halt)? 7

Definizione 6 Sia M = Γ, b, Q, q 0, F, δ una macchina di Turing deterministica. M riconosce ( decide) un linguaggio L Σ (con Σ Γ) sse per ogni x Σ esiste una computazione massimale q 0 x M wqz, con w ΓΓ {ε}, z Γ Γ { b}, e dove q F sse x L. Definizione 7 Sia M = Γ, b, Q, q 0, F, δ una macchina di Turing deterministica. M accetta un linguaggio L Σ (con Σ Γ) sse L = {x Σ q 0 x M wqz}, con w ΓΓ {ε}, z Γ Γ { b}, e q F. 8

Esempio. MT che accetta 0n1n (n1) M=<X, Y,b,Q,q 0,{q 4 },> Configurazione iniziale: q 0 0000011111 La MT esegue ripetutamente le seguenti operazioni: rimpiazza lo 0 piu' a sinistra con una X X000011111 si muove a destra verso l'1 piu' a sinistra rimpiazza l'1 piu' a sinistra con una Y X0000Y1111 si muove a sinistra verso la X piu' a destra si muove di una cella sullo 0 piu' a sinistra q 0 stato usato prima della sostituzione 0 X q 1 per muoversi a destra verso il primo 1 ed effettuare la sostituzione 1 Y q 2 per muoversi a sinistra verso le X q 3 per verificare che non rimane nessun 1 q 4 stato di accettazione se cercando un 1 trova un b allora rifiuta se cercando uno 0 non ne trova piu' allora se non e' rimasto nessun 1 accetta altrimenti rifiuta

Calcolo di funzioni Definizione 8 Sia M = Γ, b, Q, q 0, F, δ una MDT deterministica (un trasduttore) e f : Σ Σ, (Σ Γ); M calcola la funzione f sse per ogni x Γ : 1. se x Σ e f(x) = y allora q 0 x M x bqy, con q F ; 2. se x / Σ, oppure se x Σ e f(x) non definita, allora non esistono computazioni massimali, oppure esistono computazioni massimali che non terminano in uno stato finale. Codifica dei dati. 9

Calcolabilitá secondo turing Formalizziamo il concetto di calcolo secondo Turing (avendo a disposizione una definizione formale di algoritmo). Definizione 9 Un linguaggio é decidibile secondo Turing (Tdecidibile) se esiste una macchina di Turing che lo riconosce. Definizione 10 Un linguaggio é semidecidibile secondo Turing (T-semidecidibile) se esiste una macchina di Turing che lo accetta. Problema: Esistono linguaggi T-semidecidibili non T-decidibili? Definizione 11 Una funzione é detta calcolabile secondo Turing (T-calcolabile) se esiste una macchina di Turing che la calcola. 10

Esempio. MT che calcola f(x) = x per x*. M=<X, Y, b,q,q 0,{q 6 },> 0/X/d q1 b/b/d q3 X/0/d Y/1/d Configurazione iniziale: q 0 10010110 Configurazione finale: 10010110bq 6 10010110 rimpiazza il carattere piu' a sinistra (0 o 1) con una X o, rispettivamente, con una Y Y0010110 (stato q0) si muove a destra verso il primo b (stati q 1 e q 2 ) si muove a destra verso il secondo b e scrive 0 o, rispettivamente, 1 Y0010110 b1 (stati q 3 e q 4 ) si muove a sinistra verso la X (o la Y) e la rimpiazza con 0 (1) (stato q 5 ) si muove di una cella a destra sul carattere successivo (stato q 0 ) q0 b/b/d q6 1/Y/D 0/0/d 1/1/d q2 0/0/d 1/1/d 0/0/d 1/1/d q4 0/0/s 1/1/d b/0/s b/1/s 0/0/s 1/1/s b/b/s q5 se in questo ultimo passo trova b allora termina (stato q 6 )

Macchine di Turing multinastro Definizione 12 Una macchina di Turing a k 2 nastri (MT M) é una sestupla M (k) = Γ, b, Q, q 0, F, δ k, con Γ = k i=1 Γ i é l unione dei k alfabeti di nastro Γ 1... Γ k. La funzione di transizione é definita come δ (k) : (Q F ) Γ 1... Γ k Q Γ 1... Γ k {d, s, i} (k). La macchina esegue una transizione a partire da uno stato interno q i e con le k testine (una per nastro) posizionate sui caratteri a i1,..., a ik, e con δ (k) (q i, a i1,..., a ik ) = (q j, a j1,..., a jk, z j1,..., z jk ), con z jl {d, s, i}. 11

Configurazioni e transizioni di MTM La configurazione di una MT M deve descrivere lo stato, i nastri e i caratteri osservati. Definizione 13 Una configurazione istantanea di una macchina di Turing multinastro é una stringa del tipo q α 1 β 1 α 2 β 2... α k β k dove α i Γ i Γ i {ε} e β i Γ i Γ i { b}, con il simbolo che indica la posizione di ogni testina e un separatore. 12

Definizione 14 Una configurazione q α 1 β 1... α k β k si dice iniziale se α i = ε, β 1 Γ 1, β i = Z 0 (i = 2,..., k), e q = q 0. Definizione 15 Una configurazione q α 1 β 1... α k β k finale se q F. si dice Definizione 16 L applicazione della funzione di transizione δ (k) ad una configurazione si dice transizione o mossa o passo computazionale di una MT M. Estensione delle definizioni per M DT. In particolare: Definizione 17 Una MT M M calcola la funzione f(x) se q 0 x Z 0... Z 0 M q x f(x)... b, con q F. 13

Equivalenza fra MDT e MT M Macchine di Turing e macchine di Turing multinastro hanno differente potere computazionale? In altri termini, i linguaggi accettati (risp., le funzioni calcolate) da una MDT sono gli stessi accettati (calcolate) da un MT M?? Teorema 18 Data una macchina di Turing M (k) = Γ, b, Q, q 0, F, δ k, esiste una macchina a un nastro che simula t passi di M in O(t 2 ) transizioni usando un alfabeto di dimensione O((2 Γ ) k ). Come conseguenza del teorema, MDT e MT M hanno lo stesso potere computazionale. 14

Equivalenza tra MTM e MT Strumento di lavoro: MT a nastro suddiviso in tracce se il nastro ha h tracce la testina puo' leggere/scrivere h caratteri contemporaneamente la corrispondenza tra MT a nastro suddiviso in tracce ed una normale MT e' immediata osservazione: se sulle tracce sono usati gli alfabeti 1, 2,..., h, una MT corrispondente ha un alfabeto con 1 x 2 x...x h Teorema. Data una MTM M=<,b,Q,q 0,F,(k)> a k nastri esiste una MT che simula t passi di Mk in O(t 2 ) passi usando un alfabeto di cardinalità O((2 )k) Dim. costruiamo una MT M'=< ',b,k',q 0 ',F','> con nastro suddiviso in 2k tracce che simula M poi costruiamo una MT M" equivalente a M' le k tracce di posto pari di M' rappresentano i k nastri di M sulle k tracce di posto dispari di M' con il carattere "" indichiamo la posizione delle testine sui k nastri di M

il nastro di M' all' inizio della computazione si presenta con tutte le tracce dispari "vuote" tranne la prima per simulare la funzione di transizione di M che e' del tipo: (k)(qi,i1,..,ik) = <qj,j1,..,jk,zj1,..,zjk> la ' deve: rintracciare le posizioni dei marcatori, scrivere e spostare i marcatori, cambiare stato quindi per ogni passo di M, M' deve eseguire un numero di passi proporzionale alla distanza (numero di caselle) tra i due marcatori piu' lontani dopo t passi due marcatori possono essersi allontanati di al piu' O(t) caselle se M esegue t passi, M' ne esegue O(t 2 ) M" esegue gli stessi passi di M' per cio' che riguarda la cardinalita' dell'alfabeto di M" abbiamo da codificare con un solo alfabeto stringhe di 2k simboli cosi' composte: k simboli appartengono a {b,} 1 simbolo appartiene a {b} k-1 simboli appartengono a {b,z 0 } " = 2 k ( +1)( +2) k-1 = O((2 ) k )

Esempio. MTM per riconoscere xcx ~ con x{a,b} usiamo 2 nastri: uno di input monodirezionale a sola lettura e uno di lavoro che usiamo come pila durante la scansione di x, fino a c, x viene copiata sul nastro di lavoro durante la scansione di x ~ si confrontano i caratteri con quelli sul nastro di lavoro configurazione iniziale della MTM: q 0 #z#z 0 3 stati: q 0 per scandire x q 1 per scandire ~ x q 2 stato finale copiatura iniziale: (q 0,a,Z 0 )=<q 0,a,A,d,d> (q 0,b,Z 0 )=<q 0,b,B,d,d> copiatura a regime: (q 0,a,b)=<q 0,a,A,d,d> (q 0,b,b)=<q 0,b,B,d,d> passaggio dalla copiatura alla verifica: (q 0,c,b)=<q 1,c,b,d,s>

verifica positiva: (q 1,a,A)=<q 1,a,A,d,s> (q 1,b,B)=<q 1,b,B,d,s> accettazione: (q 1,b,b)=<q 2,b,b,i,i> computazione con input acb: q 0 #acb #Z0 q 0 #acb #ab q 1 #acb #a computazione con input bacab: q 0 #bacab #Z 0 q 0 #bacab #Bb q 0 #bacab #BAb q 1 #bacab #BA q 1 #bacab #BA q 1 #bacabb #bba q 2 #bacabb #bba

Macchine di Turing non deterministiche (MT ND) Le macchine di Turing non deterministiche hanno un potere computazionale maggiore di quelle deterministiche? Definizione 19 Una macchina di Turing non deterministica (MT ND) é una sestupla M = Γ, b, Q, q 0, F, δ, dove: Γ é l alfabeto dei simboli di nastro b / Γ é il carattere speciale di cella vuota Q é un insieme non vuoto e finito di stati q 0 Q é lo stato iniziale F Q é l insieme degli stati finali δ é la funzione di transizione (parziale), definita come δ : Q Γ P(Q Γ {d, s, i}). 15

Definizione 20 Dato una alfabeto Σ Γ, una stringa x Σ é accettata dalla macchina M se esiste una computazione accettante c 0,..., c n di M, con {c 0 = q 0 x}. Definizione 21 Dato una alfabeto Σ Γ, una stringa x Σ é rifiutata dalla macchina M se tutte le computazioni di M sono rifiutanti. Una MT ND rifiuta il suo input se perviene a configurazioni non finali sulle quali non si puó applicare la δ. Cosa succede al calcolo di una funzione tramite una macchina non deterministica? 16

Equivalenza fra MDT e MT ND Teorema 22 Per ogni macchina di Turing non deterministica M esiste una macchina di Turing deterministica M D a 3 nastri equivalente. Riduzione di MDT Teorema 23 Per ogni macchina di Turing M = Γ, b, Q, q 0, F, δ esiste una macchina di Turing a M equivalente, con nastro semiinfinito. 17

Equivalenza tra MT e MTND Le MTND sono più efficienti ma non più potenti computazionalmente delle MT Teorema. Data una macchina non deterministica M con grado di nondeterminismo d=(m) esiste una MT M D equivalente che simula k passi di M in O(kdk) passi Dim. L'albero di computazione di M viene visitato in ampiezza da M D (perché non in profondità?) M D ha 3 nastri nastro 1: contiene l'input nastro 2: viene usato per generare, in ordine lessicografico, tutte le sequenze finite composte da cifre comprese tra 1 e d nastro 3: nastro di lavoro Per ogni sequenza generata sul nastro 2, M D copia l'input sul nastro 3. Le transizioni di ogni insieme N(q,) sono numerate da 1 a d. Ogni sequenza di lunghezza s sul nastro 2 è in corrispondenza con una computazione di M di s passi Gli s numeri di ogni sequenza (compresi tra 1 e d) sono usati per scegliere ad ogni passo una transizione tra le d possibili Esempio: se s=4 e d=2 e la sequenza è 2122 M D sceglie per la prima mossa la seconda transizione disponibile, per la seconda mossa la prima, ecc.

Se su qualche foglia dell'albero di computazione di M c'è uno stato finale, allora M D lo raggiunge in tempo finito altrimenti M D non raggiunge mai uno stato finale. Se M termina in k passi M D ha bisogno di k O( jd j ) = O(kdk) passi j=0 Per dimostare che k O( jd j ) = O(kdk) passi j=0 si può procedere come segue. Tenendo conto del fatto che k d j = (d k+1-1)/(d-1) j=0 e derivando si ottiene: k e quindi jd j-1 = (kd k+1 -(k+1)d k +1)/(d-1) 2 j=1 k jd j = O (kd k ) j=1

La Macchina di Turing universale Qual é il potere computazionale della macchina di Turing? Esistono funzioni non calcolabili secondo Turing?? Definizione 24 Sia m : (Σ ) n Σ una funzione a piú argomenti. Una macchina di Turing M calcola m se realizza la computazione q 0 x 1 b... bx n M x 1 b... bx n bqy, con q stato finale sse m(x 1... x n ) = y. 19

Definizione 25 Una macchina di Turing U = Γ, b, Q, q 0, F, δ si dice macchina universale se calcola una funzione u : (Γ ) n+1 Γ con la seguente proprietá: data una qualunque macchina di Turing M = Γ, b, Q, q 0, F, δ che calcola la funzione m : (Γ ) n Γ, esiste una stringa c M Γ (una codifica di M) tale che u(c M x 1... x n ) = m(x 1... x n ). La macchina universale é quindi in grado di simulare il comportamento di ogni altra macchina di Turing. Esiste una tale macchina? 20

Il problema della terminazione (halting problem): data una macchina di Turing M ed una stringa x, stabilire se M termina la computazione avendo x come input. Teorema 26 Dati un alfabeto Γ ed una codifica che associa ad ogni macchina M = Γ, b, Q, q 0, F, δ una stringa c M Γ. La funzione h(c M, x) = non é T-calcolabile. 1 se M termina su input x, 0 se M non termina su input x. 21

3.9 IL PROBLEMA DELLA TERMINAZIONE (HALTING PROBLEM) Data una MT M=<,b,K,q0,F,> sia c M la codifica di M in. Per x* definiamo il predicato della terminazione Dim. Supponiamo che il predicato sia calcolabile, cioè che esista una macchina di Turing H che calcola h. Costruiamo la macchina H' che calcola il predicato h(d M,x) =1 se M con input x termina =0 se M con input x non termina h'(cm) =1 se M con input cm termina =0 se M con input cm non termina Teorema. Il predicato della terminazione delle macchine di Turing non è T-calcolabile. NOTA BENE. Invece è T-calcolabile il predicato: h(c M,x) =1 se M con input x termina = indefinito, altrimenti H' non è altro che la composizione di due macchine: la prima con input cm fornisce cmbcm, la seconda è la macchina H che prende in input e calcola il predicato della terminazione. In altre parole H' è la macchina che verifica se una MT termina quando le viene fornito in input il proprio codice. Possiamo ora costruire una nuova macchina H" che prende in input cm e calcola la funzione: h"(cm) =0 se h'(cm) = 0 =indefinito altrimenti

H", cioè, termina con 0 se H' si è fermata con 0 e si mette a ciclare, se H' si è fermata con 1. Cosa accade ora se calcoliamo h"(ch"): h"(ch") =indefinita se h"(ch") è definita =0 se h"(ch") è indefinita In ogni caso abbiamo una contraddizione. Quindi non può esistere la macchina H.