stringtranslate.com

teorema de smn

En la teoría de la computabilidad, la S mn
 
El teorema
, escrito también como " teorema smn " o " teorema smn " (también llamado lema de traducción , teorema de parámetros y teorema de parametrización ) es un resultado básico sobre los lenguajes de programación (y, más generalmente, las numeraciones de Gödel de las funciones computables ). (Soare 1987, Rogers 1967). Fue demostrado por primera vez por Stephen Cole Kleene (1943). Los nombres mn
 
proviene de la aparición de una S con subíndice n y superíndice m en la formulación original del teorema (ver más abajo).

En términos prácticos, el teorema dice que para un lenguaje de programación dado y números enteros positivos m y n , existe un algoritmo particular que acepta como entrada el código fuente de un programa con m + n variables libres , junto con m valores. Este algoritmo genera código fuente que efectivamente sustituye los valores de las primeras m variables libres, dejando libres el resto de variables.

El teorema de smn establece que dada una función de dos argumentos que es computable , existe una función total y computable tal que básicamente "arregla" el primer argumento de . Es como aplicar parcialmente un argumento a una función. Esto se generaliza sobre tuplas para . En otras palabras, aborda la idea de "parametrización" o "indexación" de funciones computables. Es como crear una versión simplificada de una función que toma un parámetro adicional (índice) para imitar el comportamiento de una función más compleja.

La función está diseñada para imitar el comportamiento de cuando se le dan los parámetros apropiados. Básicamente, al seleccionar los valores correctos para y , puede hacer que se comporten como para un cálculo específico. En lugar de lidiar con la complejidad de , podemos trabajar con uno más simple que capture la esencia del cálculo.

Detalles

La forma básica del teorema se aplica a funciones de dos argumentos (Nies 2009, p. 6). Dada una numeración de Gödel de funciones recursivas, existe una función recursiva primitiva s de dos argumentos con la siguiente propiedad: para cada número de Gödel p de una función computable parcial f con dos argumentos, las expresiones y están definidas para las mismas combinaciones de números naturales x e y , y sus valores son iguales para cualquier combinación de este tipo. En otras palabras, la siguiente igualdad extensil de funciones se cumple para cada x :

De manera más general, para cualquier m , n > 0 , existe una función recursiva primitiva de m + 1 argumentos que se comporta de la siguiente manera: para cada número de Gödel p de una función computable parcial con m + n argumentos, y todos los valores de x 1 , … , xm :

La función s descrita anteriormente se puede considerar como .

Declaración formal

Dadas las aridades m y n , para cada máquina de Turing de aridad y para todos los valores posibles de entradas , existe una máquina de Turing de aridad n , tal que

Además, existe una máquina de Turing S que permite calcular k a partir de xey ; se denota .

De manera informal, S encuentra la Máquina de Turing que es el resultado de codificar los valores de y en . El resultado se generaliza a cualquier modelo informático completo de Turing .

Esto también se puede extender al total de funciones computables de la siguiente manera:

Dada una función computable total y tal que ,:

También hay una versión simplificada del mismo teorema (definido de hecho como " teorema smn simplificado ", que básicamente utiliza una función computable total como índice de la siguiente manera:

Sea una función computable. Allí, existe una función computable total tal que :

Ejemplo

El siguiente código Lisp implementa s 11 para Lisp.

( defun s11 ( f x ) ( let (( y ( gensym ))) ( lista 'lambda ( lista y ) ( lista f x y ))))              

Por ejemplo, se evalúa como .(s11 '(lambda (x y) (+ x y)) 3)(lambda (g42) ((lambda (x y) (+ x y)) 3 g42))

Ver también

Referencias

enlaces externos