Théorème de récursion de Kleene
Un article de Wikipédia, l'encyclopédie libre.
Sommaire |
[modifier] Théorème de récursion de Kleene
Pour une énumération de fonction récursive
Si est un enumération acceptable des fonctions recursives et f une fonction partielle récursive alors il existe un indice tel que
.
Pour un langage de programmation
Si est un langage de programmation acceptable et f une fonction semi-calculable alors il existe un programme tel que pour tout x
.
[modifier] 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 .
Forme de Rogers
Si f est une fonction calculable alors il existe un programme tel que pour tout x .
Paramétrisée
Il existe une fonction calculable n telle que pour tout x et y. .
Récursion double
Si f et g sont des fonctions calculables alors il existe deux programmes et tels que pour tout x
.
On doit le théorème de récursion double à R. Smullyan.
[modifier] Remarque
La démonstration de ce théorème utilise l'auto-référence s(x,x) 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 J. von Neumann dans le cadre des automates cellulaires auto-reproducteurs.
[modifier] 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 f la première projection, f(y,x) = y et en appliquant le théorème on obtient un programme tel que pour tout x
.
L'exécution du programme produit son propre code. De tels programmes sont communément appelés quines.