Dans cet article, nous explorerons l'impact de Fonction 91 de McCarthy dans différents domaines de la vie quotidienne. De son influence sur l'économie à son impact sur la société, Fonction 91 de McCarthy a été un sujet d'intérêt et de débat ces derniers temps. Nous analyserons comment Fonction 91 de McCarthy a transformé la dynamique de travail, les relations interpersonnelles et la façon dont nous interagissons avec le monde qui nous entoure. De plus, nous examinerons différentes perspectives sur Fonction 91 de McCarthy et son lien avec les aspects culturels, historiques et technologiques. À travers cet article, nous espérons offrir une vision large et complète de l’impact de Fonction 91 de McCarthy sur notre réalité contemporaine.
La fonction 91 de McCarthy est une fonction récursive définie par McCarthy dans son étude de propriétés de programmes récursifs, et notamment de leur vérification formelle. Avec la fonction de Takeuchi, elle est un exemple amplement repris dans les manuels de programmation.
La fonction 91 de McCarthy est une fonction récursive définie pour par
ou, dans la notation de Knuth[1] :
On peut démontrer qu'elle est en fait constante et égale à 91 pour .
La fonction 91 a été introduite en 1970 dans des articles de Zohar Manna, Amir Pnueli et John McCarthy[2],[3], qui sont les prémices de la recherche sur les méthodes formelles de vérification de programmes. La fonction 91 est réellement récursive (avec de multiples appels récursifs imbriqués) par opposition à des fonctions avec récursivité terminale. Cette fonction a été popularisée par le livre de Manna Mathematical Theory of Computation[4], puis citée en 1978 dans le livre en français de C. Livercy Théorie des programmes[5]. Donald Knuth en a présenté l'historique et des extensions en 1991[1].
La fonction a été citée maintes fois dans la littérature de recherche, car elle est apparue alors comme un défi pour les méthodes de vérification de programmes.
f(99) = f(f(110)) car 99 ≤ 100 = f(100) car 110 > 100 = f(f(111)) car 100 ≤ 100 = f(101) car 111 > 100 = 91 car 101 > 100
f(87) = f(f(98)) = f(f(f(109))) = f(f(99)) = f(f(f(110))) = f(f(100)) = f(f(f(111))) = f(f(101)) = f(91) = f(f(102)) = f(92) = f(f(103)) = f(93) ... = f(99) ... = 91
Pour démontrer que pour tout entier , on considère d'abord le cas ; on a alors
parce que ; on a donc
Comme pour les entiers d'un intervalle de 11 valeurs consécutives, on peut utiliser une récurrence pour les valeurs inférieures à 90, et on a pour aussi.
On peut considérer la fonction récursive terminale g définie par
et on a
parce que
où dénote l'application fois de (p. ex. ).
Une variante mutuellement récursive terminale est la définition :
avec
Une dérivation formelle de la version mutuellement récursive à partir de la version récursive initiale a été donnée par Mitchell Wand[6], en utilisant les continuations.
Donald Knuth, dans son article[1], considère des généralisations de la fonction, et notamment des itérés de la fonction, et illustre en particulier par une définition
Il montre que pour cette fonction aussi. Il regarde ensuite la généralisation
et il montre que la fonction ainsi définie est totale si et seulement si . Dans ce cas, la fonction vérifie aussi la relation plus simple