Predicato T di Kleene

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

In teoria della computabilità, il predicato T, studiato per la prima volta dal matematico Stephen Cole Kleene, è una particolare relazione ternaria sui numeri naturali, che viene utilizzata per rappresentare funzioni calcolabili all'interno delle teorie formali dell'aritmetica. Intuitivamente, il predicato T dice se un particolare programma per computer si fermerà se eseguito su un particolare input, e la corrispondente funzione U viene utilizzata per ottenere i risultati della computazione se il programma si ferma. Come per il teorema smn, la notazione originale usata da Kleene è diventata una terminologia standard per il concetto.[1]

Definizione[modifica | modifica wikitesto]

Esempio di chiamata di T1. Il primo argomento fornisce il codice sorgente (in C anziché come numero di Gödel e) di una funzione calcolabile, la funzione di Collatz f. Il secondo argomento fornisce il numero naturale i a cui deve essere applicata f. Il terzo argomento fornisce una sequenza x di passi di computazione che simulano la valutazione di f su i (come una catena di equazioni piuttosto che un numero di sequenza di Gödel). La chiamata al predicato restituisce true poiché x è in realtà la sequenza di calcolo corretta per la chiamata f(5) e termina con un'espressione che non coinvolge più f. La funzione U, applicata alla sequenza x, restituirà la sua espressione finale, ovvero 1.

La definizione dipende da un'opportuna numerazione di Gödel che assegni numeri naturali a funzioni calcolabili (date come macchine di Turing). Questa numerazione deve essere tale per cui, dato un indice di una funzione calcolabile e un input per la funzione, sia possibile simulare effettivamente il calcolo della funzione su quell'input. Il predicato si ottiene formalizzando questa simulazione.

La relazione ternaria prende tre numeri naturali come argomenti. è vero se codifica una sequenza di passi di computazione della funzione calcolabile con indice eseguita sull'input , e il programma si interrompe all'ultimo passo di questa sequenza. Ovvero:

  • prima chiede se è il numero di Gödel di una sequenza finita di configurazioni complete della macchina di Turing con indice , che esegue un calcolo sull'input .
  • Se ciò è vero, chiede poi se questa sequenza inizia con la configurazione iniziale e se ogni successivo elemento della sequenza corrisponde a un singolo passo della macchina di Turing.
  • Se ciò è vero, chiede infine se la sequenza si conclude con la macchina in stato di terminazione.

Se tutte e tre le domande hanno una risposta affermativa, allora è vero, altrimenti è falso.

Il predicato è ricorsivo primitivo nel senso che esiste una funzione ricorsiva primitiva che, dati gli input per il predicato, determina correttamente il valore di verità del predicato su quegli input.

Esiste una corrispondente funzione ricorsiva primitiva tale che, se è vero, allora restituisce l'output della funzione con indice calcolata sull'input .

Poiché il formalismo di Kleene assegna un numero di input a ciascuna funzione, il predicato può essere utilizzato solo per funzioni unarie. Esistono predicati aggiuntivi per funzioni con più input; la relazione

è vera se codifica una computazione terminante della funzione con indice sugli ingressi .

Come , tutti i predicati sono primitivi ricorsivi. Per questo motivo, qualsiasi teoria dell'aritmetica che sia in grado di rappresentare ogni funzione ricorsiva primitiva è in grado di rappresentare e . Esempi di tali teorie aritmetiche includono l'aritmetica di Robinson e teorie più forti come l'aritmetica di Peano.

Teorema della forma normale[modifica | modifica wikitesto]

I predicati possono essere usati per ottenere il teorema della forma normale di Kleene per funzioni calcolabili (Soare 1987, p. 15; Kleene 1943, pp. 52—53). Ciò afferma che esiste una funzione ricorsiva primitiva fissa tale per cui una funzione è calcolabile se e solo se esiste un numero tale che per ogni si ha

dove μ è l'operatore di minimizzazione ( è il più piccolo numero naturale per il quale è vero) e è vero se entrambi i membri sono indefiniti o se sono entrambi uguali. Per il teorema, la definizione di ogni funzione ricorsiva generale può essere riscritta in una forma normale tale che l'operatore μ sia usato una sola volta, come argomento dell'occorrenza più esterna di , che è indipendente dalla funzione calcolabile .

Gerarchia aritmetica[modifica | modifica wikitesto]

Oltre a codificare la computabilità, il predicato T può essere utilizzato per generare insiemi Turing-completi nella gerarchia aritmetica. In particolare, l'insieme

che è dello stesso grado di Turing del problema dell'arresto, è una relazione unaria -completa (Soare 1987, pp. 28, 41). Più in generale, il set

è un predicato (n+1)-ario -completo. Così, una volta ottenuta una rappresentazione del predicato Tn in una teoria dell'aritmetica, una rappresentazione di un predicato -completo può essere ottenuta da essa.

Questa costruzione può essere estesa più in alto nella gerarchia aritmetica, come nel teorema di Post (confronta Hinman 2005, p. 397). Ad esempio, se un insieme è -completo, allora l'insieme

è -completo.

Note[modifica | modifica wikitesto]

  1. ^ Il predicato qui descritto è stato presentato in (Kleene 1943) e (Kleene 1952), ed è ciò che di solito viene chiamato "predicato T di Kleene". (Kleene 1967) utilizza la lettera T per descrivere un predicato diverso relativo a funzioni calcolabili, ma che non può essere utilizzato per ottenere il teorema della forma normale di Kleene.

Bibliografia[modifica | modifica wikitesto]