Définition 1Fonctions primitives récursives
Fonctions primitives récursives
Dans toute la théorie, les entiers sont ceux de , construits dans (Construction de ω), et une fonction d'arité est une application de dans . On note un élément de , et l'élément de obtenu en ajoutant à la fin.
Les fonctions de base sont la fonction nulle , définie sur , le successeur , et les projections , pour .
Composition. Si et , la composée est la fonction définie par
Récurrence primitive. Si et , il existe une unique fonction telle que, pour tous et , Sans paramètre, c'est-à-dire pour , on se donne un entier et , et est définie par et .
Les fonctions primitives récursives forment le plus petit ensemble de fonctions qui contient les fonctions de base et qui est stable par composition et par récurrence primitive.
Exemples. Sont primitives récursives : l'addition, la multiplication, , la factorielle, le prédécesseur , nul en et égal à si , la soustraction tronquée , égale à si et à sinon, et les fonctions et , définies par , , et , pour .
Démonstration
Le plus petit ensemble existe. Les fonctions d'arité quelconque forment un ensemble, réunion des ensembles d'applications de dans pour . L'intersection des parties de cet ensemble qui contiennent les fonctions de base et sont stables par les deux opérations a encore ces propriétés, et elle est contenue dans chacune d'elles.
Il en résulte un principe d'induction : une propriété vraie des fonctions de base, et conservée par composition et par récurrence primitive, est vraie de toute fonction primitive récursive, puisque l'ensemble des fonctions primitives récursives qui l'ont est stable et contient les fonctions de base.
Récurrence primitive. Fixons . Le théorème de définition par récurrence, appliqué à l'ensemble , à l'élément et à l'application , fournit une suite telle que et si . Par récurrence, la première composante de est ; notant la seconde, on obtient les deux égalités voulues. Toute fonction qui les vérifie coïncide avec , par récurrence sur . Le cas sans paramètre est identique.
Exemples. L'addition s'obtient par récurrence primitive à partir de et de , puisque et (Addition, multiplication).
De même, et ; puis et ; puis et , ces deux dernières sans paramètre. Dans chaque cas, la fonction est une composée de projections et de fonctions déjà obtenues.
Le prédécesseur vérifie et . La soustraction tronquée vérifie et .
Enfin et , où la constante est la fonction .
□Une fonction primitive récursive est totale, définie en tout point, et se calcule par des boucles dont le nombre de tours est connu avant d'y entrer : pour obtenir , on applique exactement fois. C'est ce caractère borné qui fait leur force, puisque tout calcul y termine, et leur limite, que le nœud Ackermann met en évidence.
L'erreur la plus répandue est de croire que la récurrence primitive autorise n'importe quelle définition récursive. Elle ne permet de définir qu'à partir de , avec les mêmes paramètres ; une récurrence qui fait varier le paramètre, comme celle de la fonction d'Ackermann, sort de la classe.