• Aucun résultat trouvé

Construction et étude d'une hiérarchie de complexité pour les fonctions récursives

N/A
N/A
Protected

Academic year: 2021

Partager "Construction et étude d'une hiérarchie de complexité pour les fonctions récursives"

Copied!
68
0
0

Texte intégral

(1)

FRANCIS RENAUD

,

,

,

CONSTRUCTION ET ETUDE D'UNE HIERARCHIE DE COMPLEXITE

,

POUR LES FONCTIONS RECURSIVES

Mémoire

présenté

à

la Faculté des études supérieures

de l'Université Laval

pour l'obtention

du grade de maître ès sciences (M.Sc.)

Département de mathématiques et de statistique

FACULTÉ DES SCIENCES ET DE GÉNIE

,

UNIVERSITE LAVAL

AVRIL 1995

(2)

Notre travail débute avec l'étude d'une fonction à croissance rapide construite selon les méthodes de L. Moser et H. Steinhaus, c.-à-d. à l'aide de figures géométriques. Nous montrons en premier lieu, après avoir adopté pour cette fonction une notation algébrique, qu'elle n'est pas récursive primitive. En généralisant cette fonction à une famille de fonctions à k arguments, nous bâtissons une hiérarchie de complexité pour les fonctions récursives. Nous montrons ensuite que cette hiérarchie ne s'écroule pas; autrement dit, la suite de classes de fonctions dont elle est constituée est strictement croissante. Une fois notre hiérarchie construite, nous parvenons, à partir de deux fonc-tions auxiliaires, à mettre en évidence une relation directe entre cette dernière et les hiérarchies des fonctions hcx (hiérarchie de Hardy) et Fcx (Fast Growing Hierarchy). Nous poursuivons notre travail en établissant quelques résultats liés au statut par-ticulier de certains ordinaux transfinis dans l'échelle de la complexité, lorsqu 'utilisés comme indices des fonctions Fcx de la Fast Growing Hierarchy. Nous présentons, pour conclure, deux résultats connus d'incomplétude de l'arithmétique liés à la complexité des fonctions Fw et Fto.

Québec, avril 1995

Francis Renaud Étudiant

Bernard R. Hodgson Directeur de recherche

(3)

REMERCIEMENTS

Je tiens d'abord à exprimer ma sincère reconnaissance envers tous les professeurs qui ont contribué à ma formation mathématique. J'aimerais remercier tout particu-lièrement M. Bernard R. Hodgson, mon directeur de recherche, pour ses nombreux encouragements et sans l'aide duquel je me serais irrémédiablement perdu dans les dédales de la littérature mathématique. L'aide matérielle du professeur Walter Hen-gartner a été plus que vitale et je lui dois pour cela toute ma reconnaissance. Ce mémoire n'aurait jamais vu le jour si François Pitt ne m'avait pas fait connaître la fonction à croissance rapide qui en est à l'origine. J'aimerais le remercier vivement pour m'avoir communiqué son enthousiasme pour cette fonction. Je tiens en outre à mentionner le travail de révision d'une qualité exceptionnelle effectué par mon père, Alix. Ses nom-breuses suggestions ont permis de rehausser le niveau de langue de ce mémoire et de rendre sa lecture plus agréable. Sans l'expertise de Luis Pablo Estable en Postscript, les nombreuses figures géométriques que comporte ce texte ne seraient que purs gribouillis. Je lui dois, pour les outils graphiques qu'il m'a fournis, une fière chandelle. Je voudrais remercier aussi mes examinateurs, messieurs Jules Desharnais et Charles Cassidy, pour leurs encouragements, leur lecture attentive et leurs commentaires constructifs.

Merci enfin à ma mère, pour son support moral constant et, de façon générale, à tous mes parents et amis, dont le support m'a été essentiel au cours des deux années qu'a duré l'élaboration de ce travail.

(4)

RÉSUMÉ

REMERCIEMENTS

INTRODUCTION

0.1 La fonction (:) . 0.2 La fonction

{x,y,z}

Chapitre 1. QUELQUES NOTIONS PRÉLIMINAIRES 1.1 La classe des fonctions récursives primitives 1.2 Ordinaux transfinis et suites fondamentales .

1.2.1 Opérations sur les nombres ordinaux 1.2.2 Induction transfinie . . .

1.2.3 La forme normale de Cantor

1.2.4

Suites fondamentales . . . .

1.2.5 Notations ordinales pour les fonctions récursives

Chapitre II. LA HIÉRARCHIE

r

2.1 Propriété de la fonction { x, y, z} . 2.2 La hiérarchie

r . .

.

. .

2.3

Les fonctions P0 et Q0 •

Chapitre III. LES FONCTIONS DE HARDY ET LA HIÉRARCHIE RAPIDE

3.1 Les fonctions de Hardy

3.2

Les fonctions Fn(x), pour n

<

w

3.3 Signification de w, dans le contexte des

F

0(x)

IV II III 2

3

5

8 8 10 11

13

14

14

15

17

17

19

29

DE CROISSANCE

39

39

41

41

(5)

1

3.4 La fonction F(0 • • • • • • • • • • • • • • • • • •

3.4.l La convergence des suites de Goodstein . 3.4.2 Les systèmes PA et

2::

1

-J

R. . . . .

CONCLUSION GÉNÉRALE

BIBLIOGRAPHIE

49 50 53 61

62

(6)

Nous présentons dans ce chapitre la fonction

0

,

en premier lieu dans sa forme originale et, enfin, dans une forme mieux adaptée à une étude mathématique rigoureuse. Ce chapitre comporte plusieurs exemples de calcul visant à familiariser le lecteur avec cette fonction, qui occupe le centre de ce travail.

Ce travail est consacré à la construction, puis à l'étude d'une hiérarchie de com-plexité pour les fonctions récursives. L'exploration préliminaire à ce travail a commencé par un amusement avec une fonction dont la croissance était jugée alors très rapide. Cette fonction, qui me fut présentée par F. Pitt, et dont l'origine remonte vraisemblable-ment à Hugo Steinhaus et Leo Moser, avait l'avantage, sous sa définition originale, de se comprendre aisément mais se prêtait assez mal aux calculs et aux démonstrations algébriques. Sa transposition en termes plus conventionnels s'avéra donc nécessaire. La première question qui se posa ensuite fut de savoir si notre fonction était récursive primitive. Nous essayâmes alors de montrer qu'elle croissait plus vite que la fonc-tion d'Ackermann (voir [1]), mais, pour des raisons d'ordre technique, cette piste fut vite abandonnée. Force nous fut d'attaquer de front le problème, ce qui s'avéra plus fructueux.

Plus tard nous vint l'idée de situer notre fonction dans une hiérarchie de complexité connue. Le moyen utilisé fut la construction d'une hiérarchie de complexité à partir de cette fonction qui occupe le centre de notre étude. Après plusieurs ajustements de définitions, apparut une relation évidente entre la hiérarchie de Hardy et celle que nous avons construite.

La hiérarchie que nous étudions plus loin a été construite à partir de généralisations de la fonction mentionnée plus haut. Une présentation détaillée de cette fonction, d'abord dans sa forme originale, puis ensuite dans une forme plus appropriée à notre étude, fera l'objet des prochains paragraphes.

(7)

3

0.1

La fonction

0

La fonction

Q

,

telle qu'elle me fut présentée, se définit de façon récursive en trois étapes à l'aide de figures géométriques. L'expression

0

,

pour x

>

1, se lit "x dans un cercle" et est égale, par définition, à "x dans x ( x

+

2)-gones", expression qui se calcule en se référant aux trois clauses ci-dessous :

1.

2. "m dans 1 n-gone"

=

"m dans m ( n - 1 )-gones"

3. "m dans k n-gones" = "m dans 1 n-gone, dans ( k - 1) n-gones "

Deux exemples vont permettre de clarifier cette définition. Essayons d'abord de calculer

0

.

Nous avons :

or,

131

1

Nous pouvons calculer L____!

II'

1_ 1 et, puisque

~

=

mm, nous trouvons que

3 (33))

( 33) ( ( 3 ) 385 . ' ,

= (

(33) )

= 3 . Il nous reste mamtenant a evaluer

[Gj

,

où m = 3385. Or, il est à présent assez clair que l'ampleur du travail re-quis pour terminer le calcul est telle qu'aucun délai raisonnable ne suffi.rait.

Essayons au moins de calculer

0

.

Nous avons :

0

=

m

et

Puisque

&

=

22

=

4, nous avons ~ ~

=

44

=

256. On a donc jusqu'à main-tenant

0

=

1

256

:

,

ce qui équivaut à "256 dans 256 triangles" et se calcule en

(8)

itérant 256 fois la fonction xx, attendu que x a pour valeur initiale 256. Contraire-ment au précédent, cet exemple permet au moins de formuler le résultat en termes algébriques.

Il ressort de ces deux exemples que la complexité des calculs requis pour l'évaluation

de

0

à de petites valeurs de x risque d'entraver une étude précise de la fonction

Q

.

Apportons à la définition de

Q

une légère modification qui ne lui ôtera rien d'essentiel. Il s'agit simplement de remplacer la clause 1 par la clause

la.

~

= m+ 1

Voyons maintenant ce qui se passe avec le calcul de

0

.

Nous avons :

I

~

:

et

1

~

2

i

,JÎ\

=

2 + 1+1

=

4. Nous voyons que

0

2 !

4

!

=

4 + 1 + 1 + 1 + 1

=

8.

Il est important de remarquer que le changement ainsi apporté à la définition de

0

ne fait que retarder la croissance rapide de celle-ci. Plus explicitement, il existe un nombre naturel n tel que, selon la nouvelle définition,

8

surpasse

0

de l'ancienne définition et ce, pour toute valeur de x supérieure à 1. Il suffit pour s'en convaincre, de suivre le raisonnement qui suit.

Selon la nouvelle définition, nous avons : = m

+

1 et

EJ

=

"m dans m triangles" = 2m, ce qui implique que

G

= m2m. Or, puisque 2m

>

m pour tout m:::: 1, nous concluons que

G

>

m2, ce qui implique que

0

,

qui est égal à

"m dans m pentagones", est supérieur à m2m; or, m2m

>

mm =

~

(selon l'ancienne définition). On peut vérifier aisément, par induction, le résultat plus général que voici : "m dans un (n

+

3)-gone", calculé selon la nouvelle définition, surpasse "m dans un n-gone", calculé d'après I1ancienne définition. On peut donc conclure que

8

,

nouvelle définition, surpasse

8

,

ancienne définition. Le changement apporté à la définition de

0

n'a donc rien d'essentiel et l'étude de la croissance de la fonction

0

n'en sera pas affectée.

(9)

5

0.2

La fonction {

x,

y,

z}

La notation que nous venons de présenter permet de comprendre immédiatement la mécanique de la définition récursive de

0

.

Toutefois, afin de mieux travailler avec cette dernière, une notation plus adaptée aux calculs algébriques s'impose. Voici donc la notation que nous utiliserons à l'avenir : "x dans (y

+

1) (z

+

3)-gones" sera noté

{x,y

,

z}.

Dès lors, notre fonction

0

devient

{x,x - l,x

-1}.

En traduisant dans ce nouveau contexte les clauses la, 2 et 3, la définition de la fonction { x, y, z} s'énonce comme ci-dessous.

Définition 0.1

La fonction { x, y, z}, où x, y et z sont des nombres naturels, et x

2

1, se définit par les trois clauses suivantes :

1. {x,0,0}

=X+

1

2.

{x,O,z+l}={x,x-l

,z

}

3.

{x

,

y+

1,z} =

{{x,y

,

z}

,

O,z}

Remarque 0.1

Dans les calculs de

0

qui précèdent, on aura remarqué qu'en présence d'une série de polygones emboîtés, il est plus commode de travailler sur le polygone le plus interne, c'est-à-dire celui qui ne contient qu'un nombre connu explicitement. De même, on calculera

{x,y

,

z}

à partir de l'argument le plus interne, en l'occurence le seul triplet de nombres connus explicitement. Cela revient à appliquer la clause 3 de préférence à la 2 lorsque le choix se présente.

Remarque 0.2

En analysant la da.use 3, on se rend compte qu'évaluer l'expression

{x, y-

l, z} revient à itérer y fois la. fonction { ·, 0, z} au premier argument. Autrement dit, en posant

f (x)

= {

x

,

0, z}, on obtient {

x, y - 1, z}

=

fY(x ),

où l'exposant y désigne la composée

fofo

·

··of

y fois

(10)

Exemples 0.1

Le lecteur pourra se familiariser avec la fonction { x, y, z} en vérifiant les quelques

cal-culs suivants : 1. {x, n - 1, O}

= x

+

n 2. {x,0,1} = 2x 3.

{X

,

1, 1} = 4x 4.

{X

,

n - 1, 1}

=

2n

X

5. {X, 0, 2} = X2I 8. {x,0,3}={x,x-l,2}

Après avoir fait quelques-uns des calculs proposés, le lecteur n'aura aucun mal

à se convaincre de la stricte monotonicité de la fonction { x, y, z} pour chacun de ses arguments et pour x

2:

1. Dans le but de fixer les idées, nous donnons la démonstration de deux cas particuliers :

1. Montrons que { x, 0, n} est strictement monotone en x, quel que soit n. Procédons

par induction.

(a) Vérifions le résultat pour n = O. On a { x, 0, 0} = x

+

1, qui est une fonction strictement monotone en x.

(b) Supposons que f(x) = {x,O,k} soit strictement monotone en x. Montrons qu'il en est de même pour g(x)

=

{x,O,k

+

l}.

Il faut donc vérifier que g(x

+

1)

>

g(x) pour toute valeur de x, c'est-à-dire {x

+

1, 0, k

+

l}

>

{x

,

0, k

+

l}

.

Or, en se souvenant de la propriété du deuxième argument et en invoquant la clause 2 de la définition 0.1, on trouve

(11)

7 et 9

(X

+

1)

=

{X

+

1, 0,

k

+

1}

=

{X

+

1, X, k}

= j x+ l

(X

+

1)

d'où il suit g(x

+

1) jx+I(x

+

1)

fx f(x

+

1)

Or, puisque f(x+l)

>

f(x), par hypothèse d'induction, fx f(x+l)

>

fx J(x). Par ailleurs, J(x)

>

x d'où il suit que fx f(x)

>

fx(x) = g(x). Or, il ne fait aucun clou te que fx ( x) soit strictement monotone en x, étant donnée la stricte monotonicité de f ( x) et le fait que { x, 0, k}

>

x, quel que soit x. 2. Par ailleurs, { x, y, k} est strictement monotone en y étant donné x et k fixés,

puisque {x,y

+

1,k}

=

{{x,y,k},O,k}, d'après la clause 3 de la définition 0.1, et que { { x, y, k }, 0,

k}

>

{x, y, k }, car f(x)

= {

x, 0,

k}

est strictement monotone en x et f ( x)

> x.

Avant de poursuivre plus sérieusement l'étude de la fonction {x,y,z}, qui nous servira plus tard à définir une hiérarchie de complexité pour les fonctions récursives, nous ferons appel à quelques notions préliminaires. Le prochain chapitre leur est

con-, sacre.

(12)

QUELQUES NOTIONS PRÉLIMINAIRES

Ce chapitre fournit au lecteur quelques notions essentielles à la compréhension de ce qui suit. Il introduit le lecteur à la classe des fonctions récursives primitives et comporte une brève introduction aux ordinaux transfinis. La notion de suite fondamentale d'un ordinal limite y

est définie, ainsi qu'un système de notation efficace pour les fonctions à croissance rapide.

1.1

La classe des fonctions récursives primitives

Commençons par définir les fonctions initiales, à partir desquelles nous construirons la

classe des fonctions récursives primitives. Définition 1.1 (Les fonctions initiales)

Voici les fonctions qui serviront de base aux classes de fonctions récursives que nous rencontrerons au cours de ce travail.

1. a(x)=x+l

3. O(x) = 0

Définissons maintenant le schéma de composition, qui permettra de générer de nouvelles fonctions.

(13)

9

Définition 1.2

Soient les fonctions prédéfinies f(x1 , ... , Xm) et g1(x1, ... , Xn), ... ,gm(Xi, ... , Xn)· Il est possible de définir une nouvelle fonction n-aire h( Xi, . .. , xn) en posant

Le second moyen principal que nous utiliserons pour en générer de nouvelles est la récursion primitive définie ci-dessous.

Définition 1.3 (Schéma de récursion primitive)

Soient g(x) et h(x, z1, z2), deux fonctions déjà définies. On en définit une nouvelle,

f

(x, y), de la façon suivante.

1. f (x,

O)

=

g(x)

2. f(x, y+ 1)

=

h(x, y, f(x, y))

Le schéma de la définition ci-dessus décrit une opération binaire permettant de construire une fonction

f

à

(n

+

1) arguments à partir d'une fonction g à

n

arguments et d'une fonction h à ( n

+

2) arguments. Voici, pour illustrer notre propos, quelques fonctions définies au moyen de ce schéma.

Exemples 1.1

1. On veut définir la somme s(x, y)= x +y.Deux étapes s'avèrent nécessaires soit (a) s(x,

0)

=

x

(b) s(x,y+l)=a(s(x,y))

2.

À

partir de cette dernière fonction, on peut définir le produit de façon récursive primitive:

(a) p(x, 0) = 0

(b) p(x,y+ 1) = s(p(x, y),x)

3. Nous pouvons en outre retrouver la somme et le produit itérés: soit

f

une fonction récursive primitive et posons S(x) = f(O)

+

f(l)

+ · · · +

f(x). On a:

(14)

(a) S(O)

=

J

(0)

(b)

S(x

+

1)

=

s(J(a(x)),S(x))

4. Si l'on pose

P(x)

=

J(O)

·

f(l) · · · f(x), on obtient: (a)

P(O)

=

f(O)

(b)

P(x

+

1) =

p(f(a(x)),P(x))

5. Pour finir, une définition récursive primitive de la fonction prédécesseur :

(a) ~(O)

=

0

(b) ~(x+l)=x

Définition 1.4

La classe des fonctions récursives primitives est définie comme étant la fermeture pour la composition et le schéma de récursion primitive del 'ensemble constitué des fonctions

a

,

nj

et O. On désignera par la suite cette classe par RP.

La classe RP comprend la plupart des fonctions calculables qui nous viennent spon-tanément à l'esprit : fonctions polynomiales, exponentielles, compositions et itérations de ces dernières, etc. Trouver une fonction hors de cette classe demande en effet un effort particulier.

1.2

Ordinaux transfinis et suites fondamentales

Les hiérarchies que nous examinerons plus loin sont construites à partir de suites finies de fonctions de plus en plus complexes. Nous nous servirons des ordinaux trans-finis inférieurs à Eo pour indicer ces suites. Voici donc une très brève introduction aux ordinaux transfinis.

Définition 1.5

Soient deux ensembles A et B ordonnés par une même relation

-< .

On dit que A et B ont le même type d'ordre ssi il existe une application

f

bijective entre ces deux ensembles qui préserve la relation

-<.

Plus précisément, s'il existe

f

:

A --+ B bijective telle que Vai, a2 E A, ai

-<

a2 =} f(a1)

-<

f(a2).

(15)

11

Le fait d'avoir le même type d'ordre constitue une relation d'équivalence parmi

les ensembles, ce qu'on peut vérifier aisément. On appelle types d'ordre les classes d'équivalence de cette relation. En restreignant cette relation d'équivalence aux

en-sembles bien ordonnés, tels les sous-enen-sembles des nombres naturels et les produits cartésiens de ces derniers, on obtient les nombres ordinaux, dans le cas général, et les

nombres ordinaux transfinis, dans le cas infini. On utilise les nombres naturels pour

désigner les types d'ordres d'ensembles finis bien ordonnés. Ainsi, le nombre 5, con-sidéré comme un nombre ordinal, représente la classe d'équivalence dont font partie les

ensembles

{O,

1, 2, 3, 4} et {22, 23, 24, 25, 26}. La lettre w désigne la classe d'équivalence contenant l'ensemble des nombres naturels. Définissons maintenant une relation d'ordre pour les ordinaux.

Définition 1.6

Soient a: et

/3

deux ordinaux quelconques et A et B des ensembles de types a: et

/3

respectivement. On dit que a:

<

/3

si a:

#

/3

et que A est du même type qu'un sous-ensemble de B.

La relation d'ordre que nous venons de définir s'applique en particulier aux ordinaux finis, c'est-à-dire les nombres naturels, et généralise de façon naturelle la relation d'ordre propre à ces derniers.

1.2.1

Opérations sur les nombres ordinaux

Nous nous contenterons ici de donner une idée intuitive et pratique de la somme, du produit et de l'exponentiation de nombres ordinaux. Nous renvoyons le lecteur à [8) pour une bonne introduction à ce sujet et à [18) pour un traitement plus exhaustif. Disons simplement que la somme de deux ordinaux a: et

/3

est le type d'ordre d'un ensemble obtenu en concaténant deux ensembles ordonnés, respectivement de types o et

/3.

Il est toutefois important de noter que cette opération n'est pas commutative. En adjoignant un singleton à l'ensemble des nombres naturels et en considérant son unique élément comme l'élément maximal du nouvel ensemble ainsi formé, on obtient un ensemble de type

w+

1. Il suffit de répéter la procédure autant de fois qu'il le faut pour engendrer des ensembles de type w

+

n. Détail significatif: l'ensemble {O, 1, 2, ... , n -1, 0, 1, 2, 3, ... }, qui est de type n

+

w, est aussi du même type d'ordre que l'ensemble des nombres naturels. Nous devons donc conclure, d'après la définition de l'addition qui vient d'être

(16)

donnée, que n

+

w

=

w. D'un point de vue plus général, on a n +a

=

a quel que soit

a> w.

Ce fait illustre la non-commutativité de l'addition pour les ordinaux transfinis. Nous nous en servirons pour démontrer la proposition 1.1.

La notion de produit est presque aussi simple. On peut considérer le produit de la façon suivante :

a/3

est le type d'ordre d'un ensemble obtenu en remplaçant chaque élément d'un ensemble de type

/3

par un ensemble de type

a

.

L'ensemble des nombres naturels concaténé à lui-même est un exemple d'ensemble de type w2. Rappelons que

la multiplication est elle aussi non commutative et que l'addition et la multiplication de nombres ordinaux n'engendrent que des nombres ordinaux. De plus, la classe des nombres ordinaux est bien ordonné pour la relation d'ordre que nous avons définie plus haut.

Il est absolument nécessaire, pour bien faire comprendre ce qui va suivre, notamment les suites fondamentales et } 'exponentiation, d'aborder la notion de limite de suites de nombres ordinaux. Soit

{µn}

une suite strictement croissante de nombres ordinaux. Sa limite

{µn}

est le plus petit ordinal strictement supérieur à tous les termes µn. La limite d'une telle suite est unique, lorsqu'elle existe, et s'exprime par un nombre ordinal transfini. Par exemple, la limite de la suite des nombres naturels est w.

Il est important de distinguer deux genres de nombres ordinaux, en plus du zéro qui constitue le type de l'ensemble vide. D'une part, il y a les ordinaux obtenus en appliquant un nombre fini de fois l'opération successeur à d'autres ordinaux: ce sont les ordinaux successeurs. Les nombres w

+

1, ww

+

w8

+

n, et 27 en font partie. D'autre part, il existe des ordinaux qui n'ont pas de prédécesseur immédiat et qui résultent d'un passage à la limite. Parmi ces derniers, que l'on nomme ordinaux limites, citons par exemple les nombres w, w2 et t

0, que nous définirons plus loin. Il est souvent nécéssaire de distinguer ces trois cas lors d'une démonstration qui fait appel à des nombres ordinaux transfinis.

Nous pouvons maintenant définir }'exponentiation. Dans cette définition, comme dans plusieurs autres qui suivront, nous distinguerons les deux classes d'ordinaux dont nous venons de parler et traiterons à part le cas de l'ordinal zéro.

Définition 1. 7

L'exponentiation de nombres ordinaux est définie comme suit : 1. a0 = 1 quel que soit a

(17)

13

3. a" = lim«,. aC si '"Y est un ordinal limite.

Nous aimerions montrer un résultat accessoire, de façon intuitive, car nous y ferons appel au chapitre 3.

Proposition 1.1 Étant donnés a, un ordinal supérieur à 11 et un nombre naturel N quelconque1 on a. aN

<

aw.

Démonstration Le résultat est clairement vrai si a est fini. Considérons maintenant

que a ~ w. Si a n'est pas un ordinal limite, on peut écrire a = a'

+

k, k est un nombre naturel et a' un ordinal limite. Dès lors, on a

(a'+k)N =a'N +k

et

(o'

+

k)w

=

o:'w

Or, par définition, o:'w

=

limm<w a'm. En prenant m

>

N

+

k, on obtient

o:' m

>

o:' N

+

o:' k

>

o:' N

+

k

puisque a

>

1. On a donc o'w

=

limm<w o'm

>

a' N

+

k, ce qui implique o:w

>

aN.

Parvient à ce résultat plus facilement encore en appliquant le même raisonnement dans le cas où a est un ordinal limite.

1.2.2

Induction transfinie

Nous utiliserons fréquemment, au cours des démonstrations qui suivent, une technique d'induction étendue aux nombres transfinis connue sous le nom d'induction transfinie. Une démonstration par induction transfinie s'appuie sur le fait que si une propriété est vérifiée pour zéro, et aussi pour tout ordinal successeur, en supposant qu'elle l'est pour son prédécesseur, et si elle est satisfaite pour un ordinal limite dès qu'elle l'est pour tous les ordinaux qui lui sont inférieurs, alors elle est vraie pour tous les ordinaux. Pratiquement, lorsque nous voudrons démontrer qu'une propriété est vraie pour tous

(18)

les ordinaux transfinis, il suffira de la vérifier pour zéro, pour les ordinaux de la forme O'.

+

1 en admettant qu'elle l'est pour O'. et pour les ordinaux limites O'., en supposant qu'elle est vraie pour tous les ordinaux (3

<

O'..

1.2.3

La forme normale de Cantor

La définition d'un nombre ordinal particulier s'impose : fo. Il nous servira à constituer une borne supérieure pour les ordinaux avec lesquels nous aurons à travailler. On définit

fo comme étant limn<w /n, où /l

=

w et /n+l

=

w-r". On peut montrer (voir [18]) que l'ordinal fo satisfait à l'équation wa

=

O'.. L'ordinal fo est le plus petit qui possède cette propriété, et l'on note en général fa le O'.e ordinal ayant cette propriété (soit dit en passant, cet ordinal est bien défini pour tout ordinal O'.).

Il existe une notation canonique pour les ordinaux inférieurs à fo connue sous le nom de forme normale de Cantor. En effet, Cantor a démontré que tout ordinal inférieur à fo peut s'écrire sous la forme wî'kak+ · · · +w,,0a0, avec /i+l

>

/i, où les /i sont inférieurs

à fo et les ai sont des entiers.

1.2.4

Suites fondamentales

Les définitions qui précèdent suffiront pour faciliter la compréhension de la suite de ce travail. Il nous reste à introduire la notion de suite fondamentale d'un ordinal limite. Un traitement détaillé de cette notion figure en [17a, 17b].

Définition 1.8

Une suite fondamentale pour un ordinal limite donné O'. est une suite strictement crois-sante d'ordinaux O'.n inférieurs à O'., telle que limn<w O'.n

=

O'..

Exemples 1.2

1. Les termes an

=

n et bn l'ordinal transfini w.

2n

+

1 définissent deux suites fondamentales pour

2. Le terme O'.n

=

w(3n + 1) définit une suite fondamentale pour l'ordinal transfini w2.

(19)

15

Il existe naturellement un choix illimité de suites fondamentales pour un ordinal limite donné. Nous appelons assignation de suites fondamentales une fonction associant à chaque ordinal limite d'un segment initial donné d'ordinaux une suite fondamentale bien déterminée. Nous nous en tiendrons toutefois, dans la suite de ce travail, à une assignation particulière de suites fondamentales aux ordinaux limites inférieurs à Eo, que nous définissons maintenant de façon récursive à partir de la forme normale de Cantor.

Définition 1.9

Soit a un ordinal limite inférieur à Eo exprimé sous la forme normale de Cantor. L'assignation A associe à a une suite d'ordinaux aA(n), n

2:

0, définie de la façon suivante.

1. Si a= wf3+1,aA(n) = wf3 · n

2. Si a= w'"Y, aA(n)

=

w-YA(n) où/ est un ordinal limite

3. Si a= w'"Y

+

(3, alors aA(n)

=

w-Y

+

f3A(n).

Remarque

À

l'avenir, nous omettrons l'indice A, puisque cette seule assignation de

suites fondamentales aux ordinaux inférieurs à Eo nous sera nécessaire.

1.2.5

Notations ordinales pour les fonctions récursives

Nous allons maintenant présenter un système de notation particulièrement efficace pour définir des fonctions à croissance rapide. Quelques exemples aideront le lecteur à comprendre le fonctionnement de ce système. Il consultera avec profit [16] s'il veut approfondir le sujet.

Exemples 1.3

Posons, par exemple, f0(x)

= x

+

1, !a+1(x)

= f'f.(x),

où l'exposant représente la com-position de fonctions, fa(x)

= fa(x)(x)

si a est un ordinal limite.

On arrive alors aux résultats suivants :

(20)

2.

fw(x)

=

fw(x)(x)

=

fx(x)

=

Jt'(x) =X+

2x 3.

fw+1(x)

=

J~(x)

=X+

2x

+

2x+2x

4.

fw+w(x)

=

fw+x(x)

= J~x(x)

On a pu constater qu'à partir d'ordinaux assez simples, tels que w2 ou

w3, il est

possi-ble de construire des fonctions beaucoup trop complexes pour être représentées à l'aide des notations conventionnelles. Nous sommes maintenant prêts à entrer dans le vif du sujet, c'est-à-dire l'étude de la fonction

{x,y,z}

et de la hiérarchie

r

basée sur cette fonction.

(21)

Chapitre II

LA HIÉRARCHIE

r

L'étude de la fonction { x, y, z} commence avec ce chapitre. Nous y démontrons qu'elle constitue un cas limite pour la classe des fonctions récursives primitives. Nous faisons ensuite la construction de la hiérarchie f à partir des fonctions {X, y, z}k, généralisations de la fonction { x, y, z} . Nous montrons pour cette hiérarchie un résultat de monotonicité essentiel et faisons

un lien entre cette dernière et la hiérarchie des fonctions Fa (Fast Growing Hierarchy dans la

documentation spécialisée), via les suites {Pa} a<[o et { Q a} a<[o issues de la fonction { x, y, z}.

Le dernier théorème de ce chapitre utilise les fonctions Q a (identiques aux fonctions Fa) pour établir une relation entre les arguments des fonctions { x, y, z} k et les ordinaux transfinis inférieurs à ww.

2 .1

Propriété de la fonction {

x,

y, z}

Le théorème qui suit nous montre un aspect de la relation entre la classe RP et la

fonction { x, y, z} définie précédemment.

Théorème 2.1 Pour tout n

2:

0 fixé, la fonction { x, y,

n}

est une fonction récursive

primitive des variables x

et

y.

Démonstration On procède par induction sur n.

(22)

1. Pour n = 0

{x,0,0}

x+l

{x,y+l,O}

a(7rÎ(x,y))

{{ x, y,

O}, 0, O}

a({x

,

y,O})

2. Supposons maintenant que { x, y, n} soit récursive primitive. Nous allons montrer que { x, y, n

+

1} l'est aussi.

(a)

(b)

{x

,

0

,

n+l}

{x

,

x-l

,

n}

{7rÎ(x

,

y)

,

_.:_7rÎ(x,y),n}

{ x, 0, n

+

1} est donc une fonction définie à partir de fonctions primitives, par hypothèse d'induction.

{x,y+l

,

n+l}

{{ x, y, n

+

1}, 0,

n

+

1}

{{x,y,n+ l},_.:_{x,y,n+ 1},n}

Ceci prouve que { x, y, n} obéit au schéma de récursion primitive pour chaque n

fixé.

Le théorème précédant et les exemples

0.1

illustrent le fait que la classe des fonc-tions récursives primitives est assez vaste. En effet, plusieurs fonctions qui ne sont pas calculables en pratique en font partie. Il suffit de considérer la fonction

f(x,y)

=

(23)

19

{ x

+

2, y

+

2, 20} pour s'en convaincre. Cette fonction ne peut être évaluée pour au-cune valeur de x et y avec les moyens dont nous disposons aujourd'hui et demeurera probablement incalculable à jamais en pratique. Elle est toutefois récursive primitive, d'après le théorème précédent. Le lemme 2.2 fera ressortir l'importance de ce théorème.

2.2

La hiérarchie

r

Pour construire une hiérarchie de complexité à partir de la fonction { x, y, z}, nous commencerons par généraliser cette dernière afin d'en faire une suite de fonctions dont chaque terme comportera un argument de plus que le précédent. Nous définirons en second lieu une suite croissante (pour l'inclusion) de classes de fonctions dont chaque terme sera obtenu en prenant la fermeture pour la composition et la récursion pri-mitive d'un segment initial de notre suite. La suite croissante de classes ainsi obtenue constituera la hiérarchie

r.

La mesure de complexité qui aura servi à construire la hiérarchie

r

est, implicitement, la rapidité de croissance des fonctions. Une hiérarchie de ce genre n'a évidemment d'intérêt que dans la mesure où la suite de classes qui la constitue est strictement croissante. On peut dire dans un tel cas que la hiérarchie ne

"s'effondre pas" et c'est ce que nous devrons prouver pour la hiérarchie r.

Définition 2.1 (Généralisation de la fonction { x, y, z})

Nous définissons maintenant les termes de la suite de fonctions à k

+

2 arguments,

k

>

1, qui servira de charpente à la hiérarchie r. Pour X

>

1

k + 1 fois

..---.-..

1.

{X,

0, ... , 0 }

=

X

+

1

2.

{x, 0, ... '0,

Zi

+ 1,

Zi+1, . . . 'Zk-d =

{x,

X - 1, ... 'X - 1, Zi, Zi+I, ... 'Zk-d

3.

{x,y+

1,z}

=

{{x,y,z},O,z}

Proposition 2.1 {x,

y, z,

O}

=

{x,

y, z}

Démonstration Il suffit de remarquer que, d'après la clause 1 de la définition 2.1,

k+2 fois k+l fois

{x,

~

= {

x,

~}

et que le "O" supplémentaire n'intervient pas dans les clauses 2 et 3 de la définition 2.1.

(24)

À

l'avenir,

{x,y,zo, ...

,Zk-d

sera noté

{x,y,z}k.

Le but de la proposition 2.1 est de faire remarquer que si m

<

n (m et n étant des nombres naturels), {x, y,

z}m

constitue un cas particulier de

{x,y,z}n·

Les fonctions

{x,y,z}k

sont donc bel et bien des généralisations de la fonction {x, y,

z }.

Plus précisément, si l'on pose

H(x)

= { x, 0, z

h

pour un certain k fixé et un z bien déterminé, on constate que { x,

y -

1, z

h

=

HY(x).

Permettons-nous une pause afin d'observer le saut immense qu'il y a de { x, y, z} à

{x

,

y

,z

o

,z

i}.

D'après la définition 2.1 et la proposition 2.1, nous avons {x,0,0,1} =

{ x

,

x-

l,

x-

l, 0}

= {

x, x-

l,

x-

l}. Or, {

x

,

x-

l,

x-

l}, on s'en souvient, est la nouvelle notation de

0

,

fonction qu'il est déjà laborieux d'évaluer pour x

=

3 et dont la valeur pour x = 4 ne se représente pas algébriquement. Dans le premier chapitre, nous n'avons pas osé parler d'itérations de la fonction

0

afin de ne pas trop étourdir le lecteur dès le début. Or, pour vraiment comprendre la fonction {x, y, z0 , zi}, il faudrait aller au-delà des itérations de la fonction

0

.

Précisons ce que nous entendons par itérations de la fonction

0

.

Par exemple,

0

,

que nous appelons "2 dans deux cercles", est la fonction

0

itérée deux fois à la valeur x

=

2. Puisque

0

=

8, comme nous l'avons montré au début du premier chapitre, nous avons donc

0

=

0

,

que nous éviterons de calculer ici. Comme nous l'avons indiqué à la remarque 0.2, l'expression {x,

y

,

z}k

s'obtient en itérant

y+

1 fois la fonction {x, 0,

z}k

au premier argument. Partant de cette remarque et de ce que nous avons dit plus haut, on peut observer que la fonction

0

se note aussi { x, 1, 0, 1} et la fonction

~

peut se représenter par {

x,

2, 0, 1}. On en déduit que la fonction

"x

dans

x

cercles" se note

{ x, x-

l, 0, 1} ou encore {

x

,

0, 1, 1}. Si l'on pose

I< ( x)

= {

x,

0, 1, 1} (

"x

dans

x

cercles"), on a alors {x, 1, 1, 1}

="K(x)

dans

I<(x)

cercles". Le lecteur qui n'est pas encore pris de vertige pourra essayer de se représenter {x,2,1,1}, {x,0,2,1} et {x,0,0,2} pour se convaincre du bond énorme effectué lorsqu'on passe de

{x,y,z}i

à

{x,y,z}2.

Pour de plus grandes valeurs de

k

,

le passage de

{x,y,z}k

à

{x,y,z}k+

1 est encore plus spectaculaire. C'est afin de mieux travailler avec de telles fonctions que nous devrons

(25)

21

utiliser les ordinaux transfinis.

La définition suivante précise le rôle que jouent les fonctions { x,

y, z}k

dans la con-struction de notre hiérarchie r. On y utilise la notation suivante : étant donné un ensemble E de fonctions, on note E sa fermeture pour la composition et la récursion primitive.

Définition 2.2

Désignons par I l'ensemble des fonctions initiales Œ,

7r1

et

o.

On définit la hiérarchie

r

récursivement de la façon suivante :

1.

r

0

=

I

2. fk+l

=

fk

u{ {

x, y, zh+1 }

La hiérarchie

r

est maintenant bien définie. On remarquera que

r

0 correspond à la classe des fonctions récursives primitives. Qu'en est-il des classes fk pour k

>

O? Nous espérons avoir fk ~ rk+i afin d'éviter que la hiérarchie ne dégénère. L'objet du théorème

suivant est précisément de montrer que la suite rk est strictement croissante.

Théorème 2.2 Vk fk ~ fk+ 1

Nous démontrerons en détail le cas particulier

r

0 ~

r

1. Plus précisément, ce que nous allons montrer est que la fonction

J(x)

définie par

f(x)

=

{x,x,x}

n'est pas récursive primitive. On se souvient du théorème 2.1 qui affirmait que

{x,y,n}

est une fonction récursive primitive pour chaque n fixé. La fonction { x, x, x} étant une diagonalisation des fonctions { x, y, n}, on peut dire qu'elle se situe en quelque sorte tout juste en dehors de la classe

r

0 des fonctions récursives primitives.

Avant de pouvoir expliquer le principe de la démonstration, il nous faut établir un lemme qui montre essentiellement que l'influence de z est en général beaucoup plus importante que celle de x sur la croissance de la fonction { x, y, z}.

(26)

On procède par induction sur N.

1. Pour N = 0, on a {x + 2,0,0} = x + 3

<

x2x = {x,0,2} (Voir les exemples 0.1)

2. Pour N

=

N'

+

1 {x+2,0,N} ={x+2,0,N'+l} = {x+2,x +l,N'} x+2 fois = {{ ... {x+2,0,N'},O,N'}, ... },O,N'} x+2 fois

< { {

...

{x,

0, N' + 2}, 0, N'}, ... }, 0, N'} = {{x,O,N'+2},x,N'}

:::; { {x

,

0, N' + 2},

{x,

0, N' + 2}_:_1, N'} = {{x,O,N'+2},0,N'+l} X fois Clause 2, définition 0.1. Clause 3, définition 0.1. Hypothèse d'induction. Clause 3, définition 0.1. Monotonicité de

{x,

y,

z

}.

Clause 2, définition 0.1.

< { {

...

{

x, 0, N' + 2}, 0, N' + 2}, ... }, 0, N' + 2} Majoration grossière. = {x,x - l,N' + 2} Clause 3, définition 0.1.

=

{x,

0, N'

+

3} Clause 2, définition 0.1. ={x,O,N+2}

Nous aurons besoin aussi d'un autre lemme, celui-là d'un intérêt purement technique.

Lemme 2.2 Vm

>

0, x

2:

2, on a

m

L{x,O,zi}:::; {x,O,Max(zi)

+

m

-1}

(27)

23

Démonstration Raisonnement pour m=2.

Si z1 = z2 = 0, le résultat est immédiat. Supposons donc que z1 ou z2 est non nul. Si l'on pose m = Max(z1 , z2), on a donc :

{x,O,zi} + {x,O,z2} ~2{x,0,m} = {{x,O,m},0,1}

~

{{x,O,m},O,m} ={x,1,m} ~{x,0,m+l} Monotonicité de { x, y, z}. Exemples 0.1. Monotonicité de { x, y, z}. Clause 3, définition 0.1. Clause 2, définition 0.1, X

2::

2 et monotonicité de {x,y,z}. Une induction très simple nous fournit le résultat dans le cas général.

Nous sommes maintenant prêts pour la démonstration du cas particulier

r

0 ~ f 1, c'est-à-dire le lemme 2.3 qui suit. L'idée principale est de montrer que, pour chaque fonc-tion récursive primitive u, il est possible de trouver un entier N(u) tel que

{l:::::x

+ 2,0,N(u)}

>

u(x)

pour tout

x

,

l:::::x

représente la somme des composantes du

vecteur

x.

Étant donné ce résultat, si nous supposons que la fonction {x,x,x} est récursive primitive, nous pouvons obtenir l'inégalité suivante: {x,O,x}

<

{x,x,x} = f(x)

<

{x + 2,0,N(J)}

<

{x,O,N(f) + 2} (voir lemme 2.1). Or, cette inégalité est fausse puisque, la fonction { x, y, z} est strictement croissante en tous ses arguments. La fonction { x, x, x} ne peut donc pas être récursive primitive.

Lemme 2.3 La fonction f(x)

= {

x, x, x} n'est pas récursive primitive.

Démonstration Nous procéderons par induction sur la construction des fonctions

récursives primitives. Il faut d'abord montrer que nous pouvons calculer l'entier N(J)

pour les fonctions initiales.

1. Pour

J

= 0, on a

{x + 2,0,0} = x + 3

>

O(x) quel que soit x Donc, N(O) = 0 est satisfaisant.

(28)

2. Pour

f

= a, on a :

a(x)

=

x

+

1

=

{x,0,0}

<

{x

+

2,0,0} quel que soit x Donc, N(

a)

= O.

3. Si

f

est une projection, on obtient

f(x)

=

?rj(x)

=

Xj :::;

Lx< L.:x

+

3

=

{L.:x

+

2, 0, 0 }quel que soit

x

Donc, N(rrj) =O.

Pour toutes les fonctions initiales, il suffit de prendre N(f)

=

O. L'hypothèse d'induction se trouve ainsi vérifiée.

Deux cas se présentent lors d'une induction sur l'ensemble des fonctions récursives primitives. La dernière étape de la construction de la fonction à étudier est soit une composition, soit une récursion primitive. Nous traiterons d'abord le cas de la compo-sition.

On a:

J(x1, ... , Xn)

=

h(g1(Xi, ... , Xn), · · · ,gm(X1, · · ·, Xn))

Notre hypothèse d'induction est la suivante: ~N0, N1 , N2, ... ,

Nm

tels que

et

(29)

25

On a alors :

f(x) h(g1(x), ... ,gm(x))

<

Li=• Y;(X)

+

2, 0, No} Hyp. ind.

<

Li=• {LX+ 2, 0, N;), 0, No+ 2} Lemme 2.1 et hyp. ind.

<

{LX+ 2,0, M), 0, No+ 2} Lemme 2.2

<

{L:

X+

2

,

0

,

Q},

0

,

Q

+

2}

<

{L:X+2

O

,

Q

+

2}

,

0

,

Q+2}

o~:x+2, l,Q + 2}

<

o:::::r+2

,

I:x+l

,

Q

+

2}

{I:x+2

,

0

,

Q+3}

Donc, l'entier /\ (.f)

=

Q

+

3 est satisfaisant.

M

=

Max(N1, ... ,

Nm)

+m-1. ici, Q

=

Max(M, N0 ). Monotonicité de

{x

,

y

,

z}

Clause 3, définition 0.1 Monotonicité de

{x

,

y

,

z}

Clause 2, définition 0.1

Traitons maintenant le cas où la fonction

f

(x, y) est obtenue à partir d'une récursion primitive et de deux fonctions récursives primitives h et g comme dans la définition 1.3.

Nous indiquerons par Dl.3 que le passage d'une inégalité à une autre se fait grâce à la définition 1.3 et par HI que nous invoquons l'hypothèse d'induction. Nous noterons

N9 et /\h les entiers /\ (g) et N(h). On a, en posant M = Max(N9, Nh)

f(Ï, k + 1) < < etc.

h

(:r

.

k

.

f(Ï,

k

)

)

I::r+k+2+f(Ï,k),O,Nh} L ï+k+2+h

(:r

.

k-1

,

/

(

i"

,

k-l

)

)

,O,Nh}

I::r+k+2+{

I::r+k+l+f(:X,k-1),0,Nh

}

.

o

,N

h}

I::r+k

+2+

{

Lï+k+1+h

(:r

.

k-2.f

(

i"

,

k-2

)

)

,o.Nh

}

.

o

,

N

h}

Dl.3 Hl Dl.3 Hl Dl.3

(30)

<

Lx+k+2+ L<+k+l{ ... {L:<+2+J(X,o),o,N,), .. .}.o.N, }.o,N,}

HI

L X+k+2+ L<+k+l {. .. {L x+Hu(X),O,No), ... } ,o,N,} ,o,N,} D 1.3

<

L<+k+2+ L<+k+1+{ ... {{Lx+2+{L<+2,o,N,),o,N,)), ... }.o.N, }.o,N,}

HI

~

. L•+k+2+ .Lx+k+i+{ ... {{LX+2+{LX+2,o,M),o,M)), .. .}.o,M

},o,M}

En etud1ant attentivement le processus qui nous a fourni la dernière inégalité, on remarque que le dernier terme est inférieur à Qk+ 2

o::::x

+

k

+

2), où

G(y)

=

{y,0,M}

+:Lx+

k+2

Or, d'après le lemme 2.2, nous avons

G(:Lx+k+2)

<

{:Lx+k+2,0

,M

}+{:Lx+k+2,0,0}

<

{:Lx+

k

+

2,0,M

+ 1}

En se basant sur le lemme 2.2, on trouve :

ck+2

(:Lx+k+2)

<

{:Lx+k+2,k+l,M+l}

<

{L:x+k+2.L:x+k+1,M+i}

{L

x+k+2,o,M +2}

<

{Lx+(k+I)+2,0,M+2}

Nous concluons donc que N(J) = Max(N9 , Nh)

+

2 est un entier suffisamment grand .

Théorème 2.2 \ln, rn~rn+I

La démonstration du cas général

rn

~

rn+i

est très semblable à celle que nous venons de faire. Le mécanisme de l'induction est le même et le seul ajout nécessaire à notre démonstration pour la rendre plus générale est la vérification que pour tout n, il existe

n+3

un entier

N

tel que {

x,

y,

z}n

< {

x

+y+

L

z

+

2, 0, ... , 0, N}. Or, cette vérification se fait directement de la façon suivante :

(31)

27

{X

+

y

+

L

z

+

2,

X

+

y

+

L

z

+

1, ...

'X +

y

+

L

z

+

1, 0}

{X

+

y

+

L z

,

0, ... '0, 1} d'où N( { x, y, z}n)

=

1 pour tout n

?::

2.

On peut se demander à quoi correspond l'entier minimal N(f) pour quelques-unes des fonctions

f

qui nous sont familières. Nous répondrons à cette question à l'aide de quelques exemples de majorations de fonctions où nous utiliserons la technique du lemme 2.3. Nous pourrons ainsi nous figurer la grandeur du N(f) requis pour majorer quelques fonctions f connues.

Exemples 2.1 Quelques majorations de fonctions.

1. Considérons, comme première fonction, la somme s(x, y) de deux nombres. Nous savons, d'après les exemples 1.1, que la fonction s(x,y) peut être définie de façon récursive primitive. Explicitons davantage la définition de la somme donnée aux exemples 1.1 de façon à respecter à la lettre le schéma de la définition 1.3. Nous avons:

(a) s(x,O)

=

1iUx)

(b) s(x,y

+

1)

=

cr(s(x,y))

=

h(x,y,s(x,y))

Or, nous avons montré, au début de la démonstration du lemme 2.3, que

N

=

0 était un entier suffisamment grand pour majorer les fonctions

7if

et cr avec la fonction { x, y, z}. Notre méthode nous donne donc

N

(s)

= Max(N(7rf),N(cr))

+

2 = 2.

Toutefois, il est facile de constater qu'une fois encore, l'entier N = 0 est satis-faisant. En effet, on a

{Lx+ 2, 0, O}

=

{x +y+ 2, 0, O}

=

x +y+ 3

>

x +y= s(x, y)

2. Pour la fonction produit, p( x, y)

=

xy, nous trouvons enfin un entier différent de zéro. On a

(32)

(a) p(x, 0) = 0

(b) p(x,y

+

1) = s(p(x,y),x) = h(x,y,p(x,y)),

pour adopter le formalisme de la définition 1.3. La technique du lemme 2.3 nous donne

N(p) =

Max(N(O),

N(s ))

+

2

=

2.

On peut vérifier que

N

=

0 et

N

=

1 ne sont pas suffisants. En effet,

{ x +y+ 2, 0, 1} = 2(x +y+ 2)

<

xy

pour des valeurs de x et y assez grandes. Pour nous convaincre que N

=

2 est

convenable, souvenons-nous des exemples 2.1 et remarquons que

{x +y+ 2,0,2} = (x +y+ 2)2x+y+2•

Dans le cas du produit, la technique du lemme 2.3 nous fournit une valeur

opti-male pour N.

3. Considérons maintenant la fonction factorielle,

f

(y) = y! Voici une définition

récursive primitive de la fonction factorielle conforme à la définition 1.3.

(a) f(x, 0) = g(x) = 1, où g(x) est la fonction constante 1 (définie sur l'ensemble

des vecteurs de longueur zéro). Puisque g est constamment égale à 1, on a

N(g) = 0 est donc suffisant.

(b)

f(x,y

+

1)

{2,0,0}

3

>

g(x) quel que soit x

(y+ l)f(y)

=

yf(y)

+

f(y) s(p(y, f(y)), f(y))

s(p(y, f(y)), 7r~(y, f(y))) h(x,y,f(y))

(33)

29

La fonction h est une composition des fonctions s, p et 7r~. La méthode du lemme 2.3 nous donne, dans ce cas :

N(h)

=

Max(Max(N(p),N(7r~)) + l,N(s)) + 3

=

6

comme entier suffisamment grand. La technique du lemme 2.3 nous donne, dans le cas de la récursion primitive, N(J)

=

Max(N(g), N(h)) + 2. On calcule donc

N(J)

=

8. Or, il est possible de faire mieux en généralisant le 7e élément des

exemples 1.1. En effet, on montre facilement que

{x + 2,0,3}

=

{x + 2,x + 1,2}

>

xx

2:

x!

quel que soit x. De même, si l'on définit e( x, y) par e( x, y)

=

xY, on peut pren-dre N(e) = 3. En effet, comme la fonction {x,y,z} est monotone en tous ses arguments, et que l'expression { u, v - 1, 2} peut se calculer en itérant v fois la fonction H( u) = u2u, on a, si y est non nul :

xY

<

{x,y-1,2}

<

{x+y,x+y-1,2}

<

{x+y+2,x+y+l,2}

{x +y+ 2,0,3} d'après la clause 2 de la définition 0.1.

Plus généralement, on remarque que si N est un entier suffisamment grand pour une fonction g donnée, alors N + 1 est satisfaisant pour la fonction G(x)

=

gx(x). En effet, on sait que, si {x+2,0,N}

>

f(x) quel que soit x, alors {x+2,x+l,N}

>

fx(x) quel que soit x. On en déduit aisément le résultat en appliquant la clause 2 de la définition

0.1. •

2.3

Les fonctions

Pa

et

Qo:.

Le premier but fixé lors de l'étude de la fonction {x,y,z} fut de la situer dans les hiérarchies de complexité déjà existantes. Ensuite nous vint l'idée un peu plus générale

(34)

de construire une hiérarchie de complexité à partir de la fonction { x, y, z} et de com-parer cette hiérarchie avec les autres plutôt que de limiter notre travail de comparaison à la seule fonction

{X

'

y' z}. La hiérarchie en résulte est la hiérarchie

r.

Le moyen qui sera utilisé dans l'étude comparative que nous proposons maintenant consiste à définir deux suites transfinies de fonctions {Pa}a<!o et {Qa}a<!o à partir de la fonction

{x

,

y

,

z}

,

et de comparer les fonctions

{x,y,z}k

à ces suites. Or, il est apparu que le comportement des fonctions Pa et Qa, telles qu'elles ont été définies originalement, était très semblable à celui des fonctions de Hardy. Il a même été possible, par mod-ifications successives des indices et par redéfinitions des fonctions { x, y,

z}

k, de faire

correspondre exactement les fonctions Pa et Q a à celles de Hardy. Ces redéfinition des fonctions P0 et

Q

a ont même permis de rendre plus directe encore la relation qui

existait auparavant entre ces fonctions et la hiérarchie

r.

Le seul désavantage de cette redéfinition, si c'en est un, a été que les quelques résultats obtenus pour les fonctions

Pa et

Q

0 se confondent maintenant avec des résultats connus depuis longtemps au sujet

des fonctions de Hardy.

Passons dès maintenant à la définition des fonctions P0 et Qa, qui ont pour domaine

et codomaine l'ensemble des nombres naturels.

Définition 2.3

Soit x un nombre naturel.

1. Po(x)

=

x

2. Pn(x)

=

{x,n -1,0} pour 0 < n

<

w

3. P"'r+I ( x)

=

P"'r( x

+

1) si 'Y

2::

w est un ordinal successeur

4. P"'r(x) = P"'r(x)(x), si/ est un ordinal limite.

Afin d'alléger l'écriture, la composée Pa(Pf3(x)) sera notée PaPf3(x).

Proposition 2.2 Si a

2::

/3

,

Pa+f3(x)

=

P0 Pf3(x).

(35)

31

L'hypothèse au sujet de {3 nous assure que

(a+

fJ)(x)

= a+ fJ(x),

ce

qui n'est pas toujours le cas. En effet, supposons que nous ayons a

=

w2 +w et {3

=

w2• Nous aurions

a+ {3

=

w2 • 2 et donc

(a+

{3)(x)

=

w2

+

w · x. Or,

a+f3(x) w2 +w+w2(x)

w2

+

w +w · x

Démonstration On procède par induction transfinie sur {3. L'hypothèse énoncée plus

haut au sujet de {3 ({3

<

w0

k+1 ), qui fait l'objet de la remarque précédente, sera utilisée

dans la troisième partie de l'induction. 1. Si {3

=

0, on a : 2. Si {3

= {3'

+

1, alors : Pa+.B'+l (X) Pa+.B'(x+l) P0 P,e1(x

+

1) P0 P,e1+1 (X) P0 P,e(x)

3. Si {3 est un ordinal limite, nous pouvons écrire :

P(a+,B)(x)(

X)

Pa+.B(x)(x) P0P,e(x)(x) P0 P,e(x)

(36)

Exemples 2.2 Quelques calculs. 1. Pn(x)

=

x

+

n 2. Pw(x)

=

2x 3. Pw2

=

Pww(x)

=

Pwx(x)

=

P~(x)

=

x2x

4.

Pw+n(x)

=

Pw(x

+

n)

=

PwPn(x)

=

2Pn(x)

=

2(x

+

n) 5. Pw+w(x)

=

Pw+x(x)

=

Pw(2x)

=

PwPw(x)

=

4x 6. Pw2+w(x)

=

Pw2+x(x)

=

P~(2x)

=

P~Pw(x)

=

2x22x

Définissons maintenant la deuxième suite de fonctions : { Q 0 } o<to.

Définition 2.4

1.

Q

n ( x) = { x, 0, n} pour n

<

w

2. Q"Y+I(x) = Q~(x), de façon générale, et 3. Q"Y(x)

=

Q"Y(x)(x), si Î' est un ordinal limite.

Nous pouvons alors comparer les suites transfinies {Q0 }o<to et

{P

0 }o<to·

Proposition 2.3 Pour

a<

Eo, on a Q0(x) = Pwa(x)

Démonstration On procède par induction transfinie sur a.

1. Si a= 0, on a Qo(x)

=

{x,0,0}

=

P1(x)

=

Pwo(x) 2. Si a = /

+

1, on a Qa(x) Q"Y+I(x) Q~(x) P:_,(x) Pw-rx(x) Proposition 2.2 Pw-rw(x) Pw-r+i(x) Pwa(x)

(37)

33 3. Si a est un ordinal limite, on a

Qa(x)(x) Pwa(z) (x) Pwa(x)

Quelques observations Voyons maintenant comment on peut représenter les

fonc-tions {

x

,

y, z}k au moyen des fonctions Q a(

x)

en examinant une propriété particulière des fonctions {x, y, z}k. Il suffit d'invoquer deux fois la clause 2 de la définition 2.1, pour trouver que

{x,0,0,n}

=

{x,x - l,x-1,n

-1}

=

{x,O,x,n-1} En général, on a :

{x,0, ... ,0,n,zi,···,zk} = {x,0, ... ,0,x,n-l,zi,··· ,zk} où le second membre de l'égalité comporte un zéro de moins.

Un exemple nous fera d'abord remarquer que

{x,x-1,x

-1} =

{x,O,x}

=

Qx(x)

=

Qw(x)

Notre fonction

0

est donc égale, soit dit en passant, à la fonction Qw(x). Utilisons alors la propriété décrite plus haut pour trouver les relations qui suivent. On a

{x,0,0,1}

=

{x,O,x,O}

=

{x,0,x}

=

Qa(x).

La propriété du deuxième argument des fonctions {x,y,z}k (rem. 2.1) implique

{X

,

0, 1, 1 }

= {X

,

X -

1, 0, 1 }

=

Q~

(X)

=

Q

w+ 1

(X)

Un raisonnement inductif permet de généraliser ainsi : {X, 0, n, 1 } = Q w+n (X)

(38)

Poursuivons :

{X, 0, 0, 2} = {X, 0, X, 1} = Q w+x (X) = Q w2 (X)

On peut montrer par induction que {x,0,0,n} = Qwn(x) et donc {x,0,0,x} = Qw2. Nous allons généraliser tous ces résultats au moyen du théorème qui suit.

Théorème 2.3 Soit 0

<

k

<

w, et/

=

wkxk

+

wk-l Xk-l

+ · ·

·

+

wx1

+

x0 , un ordinal

inférieur àww. On en déduit l'égalité suivante: {x,0,x0,xi, ... ,xk}

=

Q-y

Démonstration On procède par induction transfinie sur 'Y· 1. Si/= 0, On a par définition Q0(x) = {x,0,0}.

2. Si / est un ordinal successeur, on a x0

>

0 dans la représentation de 'Y sous la Forme Normale de Cantor. On peut donc écrire 'Y= wkxk + ·

·

·

+wx1+x0-l+1, ce qui entraîne les égalités suivantes :

Q-r(x)

d'après l'hypothèse d'induction et la propriété du deuxième argument des fonc-tions { x, y, z}k(rem.2.1 ). Nous déduisons résultat en appliquant la clause 2 de la définition 2.1.

3. Si 'Y est un ordinal limite, on a 'Y = wkxk

+ · · · +

wixi, avec i

>

O. Considérant le xe terme /A(x) d'une suite fondamentale vers/, et appliquant à répétition la clause 1 de la définition 1.9, on peut produire les égalités suivantes :

1(

X)

(w Xk k

+ ·

· · +

w1.

xi)A(x)

wkxk

+ · · · +

wi(xi - 1)

+

WÀ(x)

wkxk

+ · · · +

wi(xi - 1)

+

(wi-l · x)A(x)

wkxk

+ · ·

·

+

wi(xi - 1)

+

wi-l · (x - 1)

+

w~-1(x)

wkxk

+ ·

· ·

+

wi(xi - 1)

+

wi-l · (x - 1)

+

(wi-2 · x)A(x)

wkxk

+ · · · +

wi(xi - 1)

+

wi-l · (x - 1)

+

wi- 2 · (x - 1)

+

w~-2(x)

etc.

k i(

1)

i-1 (

l)+

i-2 (

l)+

i-3

W Xk

+ ·

· · +

W Xi -

+

W · X - W · X - W ·X

Références

Documents relatifs

La fonction d’Ackermann, fournit un exemple de fonction récursive mais non primitive récursive (notions totalement hors programme – pour simplifier, les fonctions

Théorème 2 (Lemme de Zorn pour les chaînes bien ordonnées) Soit (E , 6 ) un ensemble ordonné dont toute chaîne bien ordonnée possède un majorant, alors (E , 6 ) possède un

On ne demande pas sa

Écrire une fonction exponentiationRapide(a,n) qui prend en entré un réel a et un entier n et qui renvoie a n en utilisant l’égalité précédente2. On utilisera une

Montrer que cette s´ erie converge normalement.. Montrer que la somme est une fonction de classe

Schott indique (dans [2]) qu'un résultat de Nagell permet d'établir que le seul carré de nombre premier qui est brésilien est 11^2.. Il me paraît difficile d'avoir accès

On peut utiliser la mˆ eme approche que dans l’Ex.. Montrons d’abord que la suite {f n } est

[r]