En la teoría de la computabilidad, el teorema S m n , también escrito como " teorema smn " o " teorema smn " (también llamado lema de traslación , teorema del parámetro y teorema de parametrización ), es un resultado fundamental sobre lenguajes de programación (y, más generalmente, numeraciones de Gödel de las funciones computables parciales ) (Soare 1987, Rogers 1967). Fue demostrado por primera vez por Stephen Cole Kleene (1943). El nombreproviene de la ocurrencia de uncon subíndicey superíndiceen la formulación original del teorema (véase más abajo).
En términos prácticos, el teorema dice que para un lenguaje de programación dado y enteros positivosy, existe un algoritmo particular que acepta como entrada el código fuente de un programa convariables libres , junto convalores. Este algoritmo genera código fuente que, en esencia, sustituye los valores por los primeros.variables libres, dejando el resto de las variables libres.
Detalles
La forma básica del teorema se aplica a funciones de dos argumentos (Nies 2009, p. 6). Dado un número de Gödelde funciones computables parciales, hay una función recursiva primitivade dos argumentos con la siguiente propiedad: para cada número de Gödelde una función computable parcialcon dos argumentos, las expresionesyse definen para las mismas combinaciones de números naturalesyy sus valores son iguales para cualquier combinación de este tipo. En otras palabras, la siguiente igualdad extensional de funciones se cumple para cada:
En términos más generales, para cualquier, existe una función recursiva primitivadeargumentos que se comportan de la siguiente manera: para cada número de Gödelde una función computable parcial conargumentos y todos los valores de:
La funcióndescrito anteriormente puede tomarse como.
Declaración formal
Dadas las aridadesy, para cada máquina de Turingde aridady para todos los posibles valores de entradaExiste una máquina de Turingde aridad, de tal manera que
Además, existe una máquina de Turing.que permitea calcular desdey; se denota.
De manera informal,encuentra la máquina de Turingese es el resultado de codificar los valores deenEl resultado se generaliza a cualquier modelo de computación Turing-completo .
Ejemplo
El siguiente código Lisp implementa s 11 para Lisp.
( defun s11 ( f x ) ( let (( y ( gensym ))) ( list 'lambda ( list y ) ( list f x y ))))Por ejemplo, se evalúa como , donde es un símbolo "nuevo".(s11'(lambda(xy)(+xy))3)(lambda(g42)((lambda(xy)(+xy))3g42))g42
Véase también
Referencias
- Kleene, SC (1936). "Funciones recursivas generales de números naturales" . Mathematische Annalen . 112 (1): 727– 742. doi : 10.1007/BF01565439 . S2CID 120517999 .
- Kleene, SC (1938). " Sobre notaciones para números ordinales" (PDF) . The Journal of Symbolic Logic . 3 (4): 150– 155. doi : 10.2307/2267778 . JSTOR 2267778. S2CID 34314018 . (Esta es la referencia que la edición de 1989 de "Classical Recursion Theory" de Odifreddi da en la página 131 para lateorema.)
- Nies, A. (2009). Computabilidad y aleatoriedad . Oxford Logic Guides. Vol. 51. Oxford: Oxford University Press. ISBN 978-0-19-923076-1. Zbl 1169.03034 .
- Odifreddi, P. (1999). Teoría clásica de la recursión . North-Holland. ISBN 0-444-87295-7.
- Rogers, H. (1987) [1967]. La teoría de las funciones recursivas y la computabilidad efectiva . Primera edición en rústica de MIT Press. ISBN 0-262-68052-1.
- Soare, R. (1987). Conjuntos y grados recursivamente enumerables . Perspectivas en lógica matemática. Springer-Verlag. ISBN 3-540-15299-7.
Enlaces externos
- Weisstein, Eric W. "Teorema s - m - n de Kleene " . MathWorld .
- teoría de la computabilidad
- Teoremas en teoría de la computación