En la teoría de la computabilidad , los teoremas de recursión de Kleene son un par de resultados fundamentales sobre la aplicación de funciones computables a sus propias descripciones. Los teoremas fueron demostrados por primera vez por Stephen Kleene en 1938 [ 1 ] y aparecen en su libro de 1952, Introducción a la metamatemática [ 2 ] . Un teorema relacionado, que construye puntos fijos de una función computable, se conoce como el teorema de Rogers y se debe a Hartley Rogers, Jr. [ 3 ].
Los teoremas de recursión se pueden aplicar para construir puntos fijos de ciertas operaciones sobre funciones computables , para generar quinos y para construir funciones definidas mediante definiciones recursivas .
Notación
El enunciado de los teoremas hace referencia a una numeración admisible.de las funciones recursivas parciales , de tal manera que la función correspondiente al índicees.
Siyson funciones parciales sobre los números naturales, la notaciónindica que, para cada n , o bienyestán ambos definidos y son iguales, o bienyambos son indefinidos.
Teorema del punto fijo de Rogers
Dada una funciónen los números naturales, un punto fijo dees un índiceen el dominio dede tal manera que. Cabe señalar que la comparación de entradas y salidas aquí no se realiza en términos de valores numéricos, sino en términos de sus funciones recursivas parciales asociadas.
Rogers describe el siguiente resultado como "una versión más simple" del teorema de recursión (segundo) de Kleene. [ 4 ]
Teorema del punto fijo de Rogers — Sies una función totalmente computable, tiene un punto fijo en el sentido antes mencionado.
Esto significa, esencialmente, que si aplicamos una transformación efectiva a los programas (por ejemplo, reemplazar instrucciones como sucesor, salto o eliminar líneas), siempre habrá un programa cuyo comportamiento no se vea alterado por la transformación. Por lo tanto, este teorema puede interpretarse de la siguiente manera: «dado cualquier procedimiento efectivo para transformar programas, siempre habrá un programa que, al ser modificado por dicho procedimiento, hará exactamente lo mismo que hacía antes», o bien: «es imposible escribir un programa que cambie el comportamiento extensional de todos los programas».
Demostración del teorema del punto fijo
La demostración utiliza una función computable total particular., definido de la siguiente manera. Dado un número natural, la funciónDevuelve el índice de la función computable parcial que realiza el siguiente cálculo:
- Dado un input, primer intento de calcular. Si ese cálculo devuelve una salida, luego calculary devolver su valor, si lo hay. Por lo tanto, para todos los índicesde funciones computables parciales, sise define, entonces. Sino está definido, entonceses una función que no está definida en ninguna parte. La funciónpuede construirse a partir de la función computable parcialdescrito anteriormente y el teorema S m n : para cada, el númeroes el índice de un programa que calcula la función.
Para completar la demostración, dejemossea cualquier función computable total y construyacomo arriba. Dejeser un índice de la composición, que es una función totalmente computable, por lo tantoestá definido. Entoncespor definición dePero, porquees un índice de,y por lo tanto. Por esopara.
Esta demostración es una construcción de una función recursiva parcial que implementa el combinador Y.
Funciones sin punto fijo
Una funciónde tal manera quea pesar deSe denomina libre de punto fijo . El teorema del punto fijo muestra que ninguna función totalmente computable es libre de punto fijo, pero existen muchas funciones no computables libres de punto fijo. El criterio de completitud de Arslanov establece que el único grado de Turing recursivamente enumerable que computa una función libre de punto fijo es 0 ′ , el grado del problema de la parada . [ 5 ]
Segundo teorema de recursión de Kleene
El segundo teorema de recursión es una generalización del teorema de Rogers con una segunda entrada en la función. Una interpretación informal del segundo teorema de recursión es que permite construir programas autorreferenciales; véase «Aplicación a los quines» más adelante.
- El segundo teorema de recursión . Para cualquier función recursiva parcialHay un índicede tal manera que.
El teorema se puede demostrar a partir del teorema de Rogers dejandosea una función tal que(una construcción descrita por el teorema S m n ). Entonces se puede verificar que un punto fijo de estees un índicesegún se requiera. El teorema es constructivo en el sentido de que una función computable fija asigna un índice paraen el índice.
Comparación con el teorema de Rogers
El segundo teorema de recursión de Kleene y el teorema de Rogers pueden demostrarse, de forma bastante sencilla, uno a partir del otro. [ 6 ] Sin embargo, una demostración directa del teorema de Kleene [ 7 ] no utiliza un programa universal, lo que significa que el teorema se cumple para ciertos sistemas de programación subrecursiva que no poseen un programa universal.
Aplicación a los quines
Un ejemplo clásico que utiliza el segundo teorema de recursión es la función. El índice correspondienteEn este caso, produce una función computable que genera su propio índice cuando se aplica a cualquier valor. [ 8 ] Cuando se expresan como programas informáticos, dichos índices se conocen como quines .
El siguiente ejemplo en Lisp ilustra cómo elen el corolario se puede producir eficazmente a partir de la función. La función s11en el código es la función de ese nombre producida por el teorema S m n .
Qpuede cambiarse a cualquier función de dos argumentos.
( setq Q ' ( lambda ( x y ) x )) ( setq s11 ' ( lambda ( f x ) ( list 'lambda ' ( y ) ( list f x 'y )))) ( setq n ( list 'lambda ' ( x y ) ( list Q ( list s11 'x 'x ) 'y ))) ( setq p ( eval ( list s11 n n )))Los resultados de las siguientes expresiones deberían ser los mismos.p(nil)
( eval ( list p nil ))Q(p, nil)
( eval ( list Q p nil ))Aplicación a la eliminación de la recursión
Supongamos queyson funciones computables totales que se utilizan en una definición recursiva para una función:
El segundo teorema de recursión puede utilizarse para demostrar que dichas ecuaciones definen una función computable, donde la noción de computabilidad no tiene por qué permitir, a primera vista, definiciones recursivas (por ejemplo, puede definirse mediante μ -recursión o mediante máquinas de Turing ). Esta definición recursiva puede convertirse en una función computable.eso suponees un índice de sí mismo, para simular la recursión:
El teorema de recursión establece la existencia de una función computable.de tal manera que. De este modo Satisface la definición recursiva dada.
Programación reflexiva
La programación reflexiva se refiere al uso de la autorreferencia en los programas. Jones presenta una visión del segundo teorema de recursión basada en un lenguaje reflexivo. [ 9 ] Se demuestra que el lenguaje reflexivo definido no es más fuerte que un lenguaje sin reflexión (porque se puede implementar un intérprete para el lenguaje reflexivo sin usar reflexión); luego, se demuestra que el teorema de recursión es casi trivial en el lenguaje reflexivo.
El primer teorema de recursión
Mientras que el segundo teorema de recursión trata sobre puntos fijos de funciones computables, el primer teorema de recursión se relaciona con puntos fijos determinados por operadores de enumeración, que son un análogo computable de las definiciones inductivas. Un operador de enumeración es un conjunto de pares ( A , n ) donde A es un conjunto finito de números ( código para un) y n es un número natural . A menudo, n se considera un código para un par ordenado de números naturales, particularmente cuando las funciones se definen mediante operadores de enumeración. Los operadores de enumeración son de vital importancia en el estudio de la reducibilidad de enumeración .
Cada operador de enumeración Φ determina una función de conjuntos de números naturales a conjuntos de números naturales dados por
Un operador recursivo es un operador de enumeración que, al recibir como entrada el grafo de una función recursiva parcial, siempre devuelve el grafo de una función recursiva parcial.
Un punto fijo de un operador de enumeración Φ es un conjunto F tal que Φ( F ) = F . El primer teorema de enumeración muestra que los puntos fijos se pueden obtener de manera efectiva si el propio operador de enumeración es computable.
- Primer teorema de recursión . Se cumplen las siguientes afirmaciones.
- Para cualquier operador de enumeración computable Φ, existe un conjunto recursivamente enumerable F tal que Φ( F ) = F y F es el conjunto más pequeño con esta propiedad.
- Para cualquier operador recursivo Ψ existe una función computable parcial φ tal que Ψ(φ) = φ y φ es la función computable parcial más pequeña con esta propiedad.
El primer teorema de recursión también se denomina teorema del punto fijo (de la teoría de la recursión). [ 10 ] También existe una definición que se puede aplicar a los funcionales recursivos de la siguiente manera:
Dejar Sea $\mathbb {F} (\mathbb {N} ^{k})\rightarrow (\mathbb {N} ^{k})} $ un funcional recursivo.tiene un punto fijo mínimoque es computable, es decir
1)
2)de tal manera quesostiene que
3)es computable
Ejemplo
Al igual que el segundo teorema de recursión, el primer teorema de recursión puede utilizarse para obtener funciones que satisfacen sistemas de ecuaciones de recursión. Para aplicar el primer teorema de recursión, las ecuaciones de recursión deben reformularse primero como un operador recursivo.
Consideremos las ecuaciones de recurrencia para la función factorial f :El operador recursivo correspondiente Φ tendrá información que indica cómo llegar al siguiente valor de f desde el valor anterior. Sin embargo, el operador recursivo definirá en realidad la gráfica de f . Primero, Φ contendrá el par. Esto indica que f (0) es inequívocamente 1, y por lo tanto el par (0,1) está en la gráfica de f .
A continuación, para cada n y m , Φ contendrá el parEsto indica que, si f ( n ) es m , entonces f ( n + 1) es ( n + 1) m , de modo que el par ( n + 1, ( n + 1) m ) está en la gráfica de f . A diferencia del caso base f (0) = 1 , el operador recursivo requiere cierta información sobre f ( n ) antes de definir un valor de f ( n + 1) .
El primer teorema de recursión (en particular, la parte 1) establece que existe un conjunto F tal que Φ( F ) = F . El conjunto F estará compuesto enteramente por pares ordenados de números naturales y será la gráfica de la función factorial f , como se deseaba.
La restricción a ecuaciones de recursión que pueden reformularse como operadores recursivos garantiza que las ecuaciones de recursión definan realmente un punto fijo mínimo . Por ejemplo, consideremos el conjunto de ecuaciones de recursión:No existe ninguna función g que satisfaga estas ecuaciones, ya que implican tanto g (2) = 1 como g (2) = 0. Por lo tanto, no existe ningún punto fijo g que satisfaga estas ecuaciones de recurrencia. Es posible crear un operador de enumeración que corresponda a estas ecuaciones, pero no será un operador recursivo.
Bosquejo de demostración del primer teorema de recursión
La demostración de la parte 1 del primer teorema de recursión se obtiene iterando el operador de enumeración Φ comenzando con el conjunto vacío . Primero, se construye una secuencia F k , para. Sea F 0 el conjunto vacío. Procediendo inductivamente, para cada k , sea F k + 1. Finalmente, se toma F comoEl resto de la demostración consiste en verificar que F es recursivamente enumerable y es el punto fijo más pequeño de Φ. La secuencia F k utilizada en esta demostración corresponde a la cadena de Kleene en la demostración del teorema del punto fijo de Kleene .
La segunda parte del primer teorema de recursión se deduce de la primera. Se utiliza la suposición de que Φ es un operador recursivo para demostrar que el punto fijo de Φ es la gráfica de una función parcial. El punto clave es que si el punto fijo F no es la gráfica de una función , entonces existe algún k tal que F k no es la gráfica de una función.
Comparación con el segundo teorema de recursión
En comparación con el segundo teorema de recursión, el primer teorema de recursión produce una conclusión más sólida, pero solo cuando se cumplen hipótesis más restrictivas. Rogers utiliza el término teorema de recursión débil para el primer teorema de recursión y teorema de recursión fuerte para el segundo. [ 3 ]
Una diferencia entre el primer y el segundo teorema de recursión es que los puntos fijos obtenidos mediante el primer teorema de recursión están garantizados como puntos fijos mínimos, mientras que los obtenidos mediante el segundo teorema de recursión pueden no ser puntos fijos mínimos.
Una segunda diferencia radica en que el primer teorema de recursión solo se aplica a sistemas de ecuaciones que pueden reformularse como operadores recursivos. Esta restricción es similar a la que se aplica a operadores continuos en el teorema de punto fijo de Kleene de la teoría del orden . El segundo teorema de recursión puede aplicarse a cualquier función recursiva total.
Teorema generalizado
En el contexto de su teoría de numeraciones , Ershov demostró que el teorema de recursión de Kleene se cumple para cualquier numeración precompleta . [ 11 ] Una numeración de Gödel es una numeración precompleta en el conjunto de funciones computables, por lo que el teorema generalizado produce el teorema de recursión de Kleene como un caso particular. [ 12 ]
Dado un número precompleto, entonces para cualquier función computable parcialcon dos parámetros existe una función computable totalcon un parámetro tal que
- :\nu \circ f(n,t(n))=\nu \circ t(n).}
Véase también
- Semántica denotacional , donde se utiliza otro teorema del punto fijo mínimo con el mismo propósito que el primer teorema de recursión.
- Combinadores de punto fijo , que se utilizan en el cálculo lambda con el mismo propósito que el primer teorema de recursión.
- El lema diagonal es un resultado estrechamente relacionado en lógica matemática.
Referencias
- Ershov, Yuri L. (1999). «Parte 4: Matemáticas y teoría de la computabilidad. 14. Teoría de la numeración». En Griffor, Edward R. (ed.). Manual de teoría de la computabilidad . Estudios de lógica y fundamentos de las matemáticas. Vol. 140. Ámsterdam: Elsevier . pp. 473–503 . ISBN 9780444898821OCLC 162130533. Consultado el 6 de mayo de 2020 .
- Jones, Neil D. (1997). Computabilidad y complejidad: Desde una perspectiva de programación . Cambridge, Massachusetts : MIT Press . ISBN 9780262100649OCLC 981293265
- Kleene, Stephen C. (1952). Introducción a la metamatemática . Bibliotheca Mathematica. North-Holland Publishing . ISBN 9780720421033OCLC 459805591. Consultado el 6 de mayo de 2020 .
{{cite book}}: Incompatibilidad de ISBN/Fecha ( ayuda ) - Rogers, Hartley (1967). Teoría de las funciones recursivas y la computabilidad efectiva . Cambridge, Massachusetts : MIT Press . ISBN 9780262680523OCLC 933975989. Consultado el 6 de mayo de 2020 .
- Notas a pie de página
- ↑ Kleene, Stephen C. (1938). "Sobre la notación para números ordinales" ( PDF) . Journal of Symbolic Logic . 3 (4): 150– 155. doi : 10.2307/2267778 . ISSN 0022-4812 . JSTOR 2267778. S2CID 34314018. Recuperado el 6 de mayo de 2020 .
- ↑ Kleene 1952 .
- 1 2 Rogers 1967 .
- ↑ Rogers 1967 , §11.2.
- ↑ Soare, RI (1987). Conjuntos y grados recursivamente enumerables: un estudio de funciones computables y conjuntos generados computacionalmente . Perspectivas en lógica matemática. Berlín y Nueva York: Springer-Verlag . pág. 88. ISBN 9780387152998OCLC 318368332
- ↑ Jones 1997 , págs. 229–30.
- ↑ Kleene 1952 , págs. 352–3.
- ↑ Cutland, Nigel J. (1980). Computabilidad: Una introducción a la teoría de funciones recursivas . Cambridge University Press . pág. 204. doi : 10.1017 /cbo9781139171496 . ISBN 9781139935609OCLC 488175597. Consultado el 6 de mayo de 2020 .
- ↑ Jones 1997 .
- ↑ Cutland, Nigel. Computabilidad: una introducción a la teoría de funciones recursivas .
- ↑ Barendregt, Henk ; Terwijn, Sebastiaan A. (2019). «Teoremas de punto fijo para numeraciones precompletas» . Anales de lógica pura y aplicada . 170 (10): 1151– 1161. doi : 10.1016/j.apal.2019.04.013 . hdl : 2066/205967 . ISSN 0168-0072 . S2CID 52289429 . Consultado el 6 de mayo de 2020 . pág. 1151.
- ↑ Véase Ershov 1999 , §4.14 para un análisis en inglés.
Lecturas adicionales
- Jockusch, CG ; Lerman, M.; Soare, RI ; Solovay, RM (1989). "Conjuntos recursivamente enumerables módulo saltos iterados y extensiones del criterio de completitud de Arslanov". The Journal of Symbolic Logic . 54 (4): 1288– 1323. doi : 10.1017/S0022481200041104 . ISSN 0022-4812 . JSTOR 2274816. S2CID 32203705 .
Enlaces externos
- Entrada "Funciones recursivas"Por Piergiorgio Odifreddi en la Enciclopedia de Filosofía de Stanford , 2012 .
- teoría de la computabilidad
- Teoremas en los fundamentos de las matemáticas