Définition 1Calculabilité
Fonctions récursives partielles
Un calcul peut chercher sans fin un entier qui n'existe pas. Pour en rendre compte, on ajoute aux opérations de Primitives récursives une recherche non bornée, et l'on admet des fonctions qui ne sont pas définies partout.
Une fonction partielle est une application d'une partie de , son domaine de définition, dans . On écrit si et sinon. L'écriture signifie que les deux membres sont indéfinis, ou qu'ils sont définis et égaux. La fonction est totale si .
La composée est définie si et seulement si chaque l'est et si est définie en . La récurrence primitive , définit si et seulement si est défini et est définie en .
Minimisation. Pour , on note le plus petit entier tel que et que soit défini et non nul pour tout ; s'il n'y en a pas, n'est pas défini.
Les fonctions récursives forment le plus petit ensemble de fonctions partielles qui contient les fonctions de base et qui est stable par composition, récurrence primitive et minimisation. Une relation est récursive si sa fonction caractéristique l'est.
(i) Toute fonction primitive récursive est récursive et totale.
(ii) Les fonctions récursives totales et les relations récursives ont les propriétés de clôture (i) à (v) de Clôture.
(iii) Si est une relation récursive, la fonction , plus petit tel que , est récursive ; elle est totale si, pour tout , un tel existe.
Démonstration
La récurrence primitive sur des fonctions partielles se ramène au cas total : on adjoint à un élément qui n'est pas un entier, par exemple lui-même, qui n'appartient pas à (Bon ordre sur ℕ), on prolonge en lui donnant la valeur dès qu'elle n'est pas définie ou qu'un argument vaut , et l'on applique la construction de Primitives récursives dans , en partant de si ; est indéfini quand la valeur obtenue est .
(i) L'ensemble des fonctions récursives totales contient les fonctions de base, et il est stable par composition et par récurrence primitive, qui ne produisent que des fonctions totales à partir de fonctions totales. Il contient donc toutes les fonctions primitives récursives.
(ii) Les démonstrations de Clôture n'emploient que les fonctions de base, les exemples de Primitives récursives, la composition et la récurrence primitive, appliquées à des fonctions totales. Elles valent mot pour mot pour les fonctions récursives totales.
(iii) La fonction est récursive et totale, et elle s'annule exactement sur . Comme elle est définie partout, la minimisation donne
□L'exigence que soit défini pour tout n'est pas un détail. Le procédé de calcul évalue , puis , et ainsi de suite ; si l'une de ces évaluations ne termine pas, la recherche ne va jamais plus loin. L'erreur la plus répandue est de définir comme le plus petit zéro de sans cette condition : la classe obtenue contiendrait des fonctions qu'aucun procédé ne calcule.
Une fonction récursive totale peut avoir été construite à l'aide de fonctions partielles ; c'est la fonction obtenue, et non sa construction, qui est totale. Inversement, aucune règle syntaxique simple ne reconnaît les constructions qui donnent des fonctions totales : c'est l'un des visages de l'indécidabilité de l'arrêt.