Teorema S m n

Da testwiki.
Versione del 9 feb 2023 alle 12:48 di imported>Botcrux (Bot: aggiungo template {{Collegamenti esterni}} (ref))
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Vai alla navigazione Vai alla ricerca

Template:F In teoria della ricorsione, il teorema Snm è un risultato di base sugli algoritmi, astrattamente chiamati numerazione di Gödel, fornito originariamente da Stephen Cole Kleene.

Informalmente, il teorema dice che, dato un programma che prenda in entrata m+n variabili, esiste un algoritmo ricorsivo che fornisce in uscita un programma di n variabili che fornisce gli stessi risultati del primo e che codifica le altre m variabili.

Descrizione

Sia una funzione di m+n variabili il cui numero di Gödel sia z

φz(x1,...,xn,y1,...,ym)

Si dividono le variabili della funzione in due blocchi dove il primo rimane variabile e il secondo costante. Esiste una funzione ricorsiva primitiva Snm di m+1 variabili (detto altrimenti: "Esiste una procedura generale che prende in ingresso z e y1,...,ym") e fornisce il numero di Gödel gn di una procedura delle restanti variabili che dia lo stesso risultato.

φz(x1,...,xn,y1,...,ym)φSnm(z,y1,...,ym)(x1,...,xn)

dove φ è una funzione parziale.

Conseguenza

Se un sistema di funzioni soddisfa il Teorema Smn allora tale sistema è Turing completo.

Esempio

Il seguente codice Lisp implementa teorema S11.

(defun s11 (f x)
   (list 'lambda '(y) (list f x 'y)))

Ad esempio, (s11 '(lambda (x y) (+ x y)) 3) valuta a (lambda (y) ((lambda (x y) (+ x y)) 3 y)).

Voci correlate

Collegamenti esterni

Template:Portale