Articulo de referencia

Teorema S m n

m n '' theorem","function":"displaytitle"},"params":{},"i":0}}]}"> S^m_n theorem"}},"i":0}}]}"> En la teoría de la computabilidad, el teorema S m n , también escrito como " ...

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 nombreSmetronorte{\displaystyle S_{m}^{n}}proviene de la ocurrencia de unS{\displaystyle S}con subíndicenorte{\displaystyle n}y superíndicemetro{\displaystyle m}en 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 positivosmetro{\displaystyle m}ynorte{\displaystyle n}, existe un algoritmo particular que acepta como entrada el código fuente de un programa conmetro+norte{\displaystyle m+n}variables libres , junto conmetro{\displaystyle m}valores. Este algoritmo genera código fuente que, en esencia, sustituye los valores por los primeros.metro{\displaystyle m}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ödelφ{\displaystyle \varphi }de funciones computables parciales, hay una función recursiva primitivas{\displaystyle s}de dos argumentos con la siguiente propiedad: para cada número de Gödelmi{\displaystyle e}de una función computable parcialF{\displaystyle f}con dos argumentos, las expresionesφs(mi,incógnita)(y){\displaystyle \varphi _{s(e,x)}(y)}yF(incógnita,y){\displaystyle f(x,y)}se definen para las mismas combinaciones de números naturalesincógnita{\displaystyle x}yy{\displaystyle y}y sus valores son iguales para cualquier combinación de este tipo. En otras palabras, la siguiente igualdad extensional de funciones se cumple para cadaincógnita{\displaystyle x}:

φs(mi,incógnita)λy.φmi(incógnita,y).{\displaystyle \varphi _{s(e,x)}\simeq \lambda y.\varphi _{e}(x,y).}

En términos más generales, para cualquiermetro,norte>0{\displaystyle m,n>0}, existe una función recursiva primitivaSnortemetro{\displaystyle S_{n}^{m}}demetro+1{\displaystyle m+1}argumentos que se comportan de la siguiente manera: para cada número de Gödelmi{\displaystyle e}de una función computable parcial conmetro+norte{\displaystyle m+n}argumentos y todos los valores deincógnita1,incógnita2,...,incógnitametro{\displaystyle x_{1},x_{2},...,x_{m}}:

φSnortemetro(mi,incógnita1,,incógnitametro)λy1,,ynorte.φmi(incógnita1,,incógnitametro,y1,,ynorte).{\displaystyle \varphi _{S_{n}^{m}(e,x_{1},\dots ,x_{m})}\simeq \lambda y_{1},\dots ,y_{n}.\varphi _{e}(x_{1},\dots ,x_{m},y_{1},\dots ,y_{n}).}

La funcións{\displaystyle s}descrito anteriormente puede tomarse comoS11{\displaystyle S_{1}^{1}}.

Declaración formal

Dadas las aridadesmetro{\displaystyle m}ynorte{\displaystyle n}, para cada máquina de TuringTMincógnita{\displaystyle {\text{TM}}_{x}}de aridadmetro+norte{\displaystyle m+n}y para todos los posibles valores de entraday1,,ymetro{\displaystyle y_{1},\dots,y_{m}}Existe una máquina de TuringTMk{\displaystyle {\text{TM}}_{k}}de aridadnorte{\displaystyle n}, de tal manera que

z1,,znorte:TMincógnita(y1,,ymetro,z1,,znorte)=TMk(z1,,znorte).{\displaystyle \forall z_{1},\dots ,z_{n}:{\text{TM}}_{x}(y_{1},\dots ,y_{m},z_{1},\dots ,z_{n})={\text{TM}}_{k}(z_{1},\dots ,z_{n}).}

Además, existe una máquina de Turing.S{\displaystyle S}que permitek{\displaystyle k}a calcular desdeincógnita{\displaystyle x}yy{\displaystyle y}; se denotak=Snortemetro(incógnita,y1,,ymetro){\displaystyle k=S_{n}^{m}(x,y_{1},\dots ,y_{m})}.

De manera informal,S{\displaystyle S}encuentra la máquina de TuringTMk{\displaystyle {\text{TM}}_{k}}ese es el resultado de codificar los valores dey{\displaystyle y}enTMincógnita{\displaystyle {\text{TM}}_{x}}El 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 laSnortemetro{\displaystyle S_{n}^{m}}teorema.)
  • 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.