Proposition 1Calculabilité
La fonction d'Ackermann est récursive
Le calcul de la fonction d'Ackermann se mène sur une pile, suite finie d'entiers dont on ne modifie que la fin. Une étape transforme une pile , où est une suite et , ses deux derniers termes, selon la définition de : et laisse inchangée une pile de longueur au plus .
(i) Pour toute suite et tous , , la pile devient, après un nombre fini d'étapes, la pile , et toutes les piles intermédiaires s'écrivent avec de longueur au moins .
(ii) La fonction d'Ackermann est récursive et totale. L'inclusion des fonctions primitives récursives dans les fonctions récursives totales est stricte.
Démonstration
(i) Par récurrence sur , et, pour chaque , par récurrence sur , l'énoncé portant sur toutes les suites .
Pour , une étape mène à .
Pour et , une étape mène à ; l'hypothèse de récurrence sur la conduit à , en passant par des piles avec de longueur au moins .
Pour et , une étape mène à . L'hypothèse de récurrence sur , appliquée à la suite , conduit à ; l'hypothèse sur , appliquée à la suite , conduit enfin à Les piles intermédiaires s'écrivent puis , avec et de longueur au moins .
(ii) Codons les piles par les codes de suites de Codages. La fonction qui envoie le code d'une pile sur celui de la pile obtenue après une étape est primitive récursive : avec les notations de ce nœud, si code , alors , , et a pour code . Les trois cas, et le cas , sont des relations primitives récursives, et dans chacun le résultat s'obtient par la fonction d'ajout ; on conclut par la définition par cas (Clôture, (ii)).
Les itérés , définis par récurrence primitive sur , sont primitifs récursifs en . D'après (i), appliqué à la suite vide, la pile atteint , et c'est la première pile de longueur qu'elle rencontre. Ainsi avec , qui existe toujours. C'est une fonction récursive totale par le point (iii) de Fonctions récursives. Elle n'est pas primitive récursive (Ackermann).
□Pour , la pile passe par soit six étapes, et l'on retrouve . Le calcul de en demande , et celui de en demande : le nombre d'étapes croît comme la fonction elle-même.
La récurrence de (i) porte sur les couples rangés dans l'ordre lexicographique, qui est un bon ordre ; c'est ce qui garantit l'arrêt du calcul. Aucune borne primitive récursive du nombre d'étapes n'existe, sans quoi la minimisation pourrait être bornée et serait primitive récursive.