Théorème d'itération

Un article de Wikipédia, l'encyclopédie libre.

Le théorème d'itération est dû à Stephen Kleene, il est aussi connu sous le nom de théorème smn[1] dans sa forme paramétrisée.

Énoncé[modifier | modifier le code]

Pour une énumération de fonction récursive[modifier | modifier le code]

Si est une énumération acceptable, alors il existe une fonction partielle récursive telle que pour tout indice et tous nombres et

.

Pour un langage de programmation[modifier | modifier le code]

Si est un langage de programmation acceptable alors il existe une fonction calculable telle que pour tout programme et tous et

.

est appelée fonction d'itération ou fonction s-m-n dans sa forme paramétrisée.

Évaluation partielle[modifier | modifier le code]

La fonction d'itération est un des points fondamentaux de l'évaluation partielle. En effet, dans , le programme peut être vu comme la spécialisation du programme pour l'entrée , en d'autres termes, le programme dont la première entrée a été fixée pour la valeur . Pour cette notion, on pourra se référer aux travaux de N. Jones.

Auto-référence[modifier | modifier le code]

Par , ce théorème permet de construire des programmes faisant référence à leurs propres codes puisque . En particulier, est fondamental dans la construction d'une machine de Turing dont l'arrêt est indécidable ou dans la preuve du théorème de récursion de Kleene.

Exemple[modifier | modifier le code]

Le programme Python suivant implémente la fonction s11 pour une fonction quelconque f et une variable x :

def S11(f,x):
    return lambda y: f(x,y)

Appliqué à la fonction d'addition entre deux nombres :

def addition(x,y):
    return x+y

def g(x):
    return S11(addition,x)

print(g(4)(3)) # affiche le résultat de addition(4,3) = 4+3 = 7

Dans l'exemple précédent, g s'écrit autrement .

Références[modifier | modifier le code]

  1. René Cori et Daniel Lascar, Logique mathématiques II, p. 47