Construcción formal de un Quine mediante el teorema de Kleene

Fuentes: Formal construction of a Quine using Kleene's second recursion theorem

El artículo explora la formalización práctica del teorema de la segunda recursión de Kleene para construir un Quine, un programa que imprime su propio código fuente. A diferencia de las presentaciones clásicas basadas en la numeración efectiva de funciones recursivas parciales, el texto adopta un enfoque funcional utilizando el cálculo lambda sin tipos. Esta perspectiva permite una demostración más clara y concisa, evitando las codificaciones tediosas de la teoría de la computabilidad tradicional. El autor detalla cómo el teorema se aplica en lenguajes funcionales con capacidad de auto-reflexión, donde se define un 'quasi-quoter' para realizar citas internas. Se demuestra que, al elegir la función identidad, se obtiene un Quine, pero el teorema es más general y permite encontrar puntos fijos para propiedades sintácticas específicas, como el tamaño del programa. Además, el texto establece conexiones profundas con la lógica y la teoría de la demostración, mostrando que el teorema subyace a los lemas de diagonalización de Gödel y Tarski. Al trabajar en sistemas de aritmética de orden superior, se ilustra cómo el teorema genera sentencias de incompletitud o de indefinibilidad. La elección del cálculo lambda sin tipos como modelo de cómputo se justifica por su simplicidad estructural y su capacidad para representar tareas de programación no triviales, facilitando la implementación de la prueba dentro del propio lenguaje.