Autre formes
Ce théorème peut être décliné sous différentes formes dont l'une des plus célèbre est dues à H. Rogers. On considère un langage de programmation acceptable .
Si
est une
fonction calculable alors il existe un programme
tel que pour tout
.
Il existe une
fonction calculable telle que pour tout
et
.
.
Si
et
sont des fonctions calculables alors il existe deux programmes
et
tels que pour tout
.
On doit le théorème de récursion double à R. Smullyan.
Remarque
La démonstration de ce théorème utilise l'auto-référence produite par le théorème d'itération (théorème s-m-n). Cette notion d'autoréférence est très profonde et a été largement traitée par John von Neumann dans le cadre des automates cellulaires auto-reproducteurs.
Applications
Ce théorème est reconnu comme le meilleur outil permettant de produire contre-exemples et cas pathologiques.
En particulier, il fournit l'existence de programmes calculant leurs propres codes. En prenant la première projection, et en appliquant le théorème on obtient un programme tel que pour tout
.
L'exécution du programme produit son propre code. De tels programmes sont communément appelés quiness.