• Aucun résultat trouvé

(~n ) si m =0 (m, ~n) = ( (m 1,~n),m 1,~n) si m>0

N/A
N/A
Protected

Academic year: 2022

Partager "(~n ) si m =0 (m, ~n) = ( (m 1,~n),m 1,~n) si m>0"

Copied!
13
0
0

Texte intégral

(1)

Chapitre 7

Fonctions r´ ecursives

L’objectif de cette partie est d’abord de voir un autre mod`ele de calcul que les machines de Turing et de montrer qu’il a le mˆeme pouvoir expressif que les machines de Turing (donc d’apporter un t´emoin `a la th`ese de Church). L’autre objectif est de montrer les th´eor`emes d’incompl´etudes dus `a G¨odel.

7.1 Fonctions r´ ecursives primitives

f d´esignera une fonction de Nk dans N. Les fonctions totales sont aussi des applications.f(n1, . . . , nk) =? sif n’est pas d´efinie enn1, . . . , nk.

Les fonctions initiales sont

— les projections Pki:Nk 7!N.Pki(n1, . . . , nk) =ni

— le successeur S(n) =n+ 1

— la fonction nulle Z(n) = 0

— la fonction constante 0 (`a 0 arguments).

Un ensemble d’applications F est ferm´e par composition si, pour toutes fonction ⇠ :Nk 7! N et 1, . . . , m : Nn 7! N, la fonction :Nn 7! N d´efinie par (~n) =⇠( 1(~n), . . . , m(~n)) est dans F. On note Compm(⇠, 1, . . . , n) la fonction ainsi obtenue.

Un ensemble d’applications F est ferm´e par r´ecursion primitive si, pour toutes fonctions ⇠, 2F, la fonction d´efinie par r´ecurrence par :

(m,~n) =

⇢ ⇠(~n) si m= 0

( (m 1,~n), m 1,~n) si m >0 est dans F. On note Prim(⇠, ) la fonction ainsi obtenue.

Definition 7.1.1 L’ensemble des fonctions r´ecursives primitivesest le plus pe- tit ensemble contenant la constante 0, les fonctions initiales, clos par composi- tion et r´ecursion primitive.

Toutes les fonctions r´ecursives primitives s’obtiennent ainsi `a partir de fonc- tions de base et des op´erations PrimetCompn.

Exemple 7.1.1 f(n, m) =n+mest primitive r´ecursive :f =Prim(P11,Comp1(S, P31)).

g(n, m) =n⇤nest primitive r´ecursive : g=Prim(Z,Comp2(+, P31, P33)) 165

(2)

Exercice 175

Montrer que les fonctions suivantes sont r´ecursives primitives (les pr´edicats sont vus comme des fonctions `a valeur dans{0,1}, les fonctions Bool´eennes traitent les entiers non nuls comme 1).

1. la factorielle 2. le test d’´egalit´e

3. Les connecteurs logiques ^,_,¬. Exercice 176

F estclos par maximisation born´ee si, pour toutes fonctions⇠, 2F telles que 8~n,9m (~n).⇠(~n, m) = 0

la fonction d´efinie par :

(~n) = max

m (~n)(⇠(~n, m) = 0) est dans F.

Montrer que l’ensemble des fonctions r´ecursives primitives est ferm´e par maximisation born´ee.

Exercice 177

Montrer que, comme dans l’exercice pr´ec´edent, l’ensemble des fonctions r´ecursives primitives est clos par minimisation born´ee.

Exercice 178 (4)

Montrer que la fonction qui, `a un entiernassocie le plus petit nombre premier plus grand que nest r´ecursive primitive.

Exercice 179

Montrer qu’il existe une fonction J :N2 !N, et deux fonctions K, L:N!N telles que :

1. J, K, L sont r´ecursives primitives 2. J est une bijection

3. pour tous x, y,K(J(x, y)) =x etL(J(x, y)) =y.

L’exercice suivant montre une caract´erisation important des fonctions r´ecursives primitives : ce sont les fonctions que l’on peut d´efinir exclusivement avec des bouclesfor. C’est aussi ce que dit l’exercice sur ma minimisation born´ee, d’une autre fa¸con.

Exercice 180 (5)

Si h est une fonction deN dansN on appelleit´eration de h la fonctionf(n, x) d´efinie par :

f(n, x) =

⇢ x sin= 0

h(f(n 1, x)) sinon

Montrer que la plus petite classe de fonctions sur les entiers qui contient les fonctions de base, les fonctions J, K, L et qui est close par it´eration et compo- sition, co¨ıncide avec l’ensemble des fonctions r´ecursives primitives.

(3)

7.1. FONCTIONS R ´ECURSIVES PRIMITIVES 167 Exercice 181 (5)

Montrer que la fonction suivante, d´efinie par r´ecurrence, est r´ecursive primitive.

8<

:

f(0) = 1 f(1) = 1

f(n+ 2) = f(n+ 1) +f(n) Sin2N Hi´erarchie de Grzegorczyk

On d´efinit par r´ecurrence sur n la suite de fonctions primitives r´ecursives comme suit :

0(m) = m+ 1

n+1(0) = n(1)

n+1(m+ 1) = n( n+1(m)) On montre, par r´ecurrence sur nque :

Lemme 7.1.1 Pour tout n, n est une fonction r´ecursive primitive.

Par r´ecurrence sur m, on montre successivement les r´esultats suivants pour les premi`eres fonctions de la hi´erarchie :

1(m) =m+ 2

2(m) = 2m+ 3

3(m) = 2m+3 3

4(m) =

m+ 3

( 22

2 3

Lemme 7.1.2 1. Pour tous n, m, n(m) 1 +m

2. Les fonctions k sont strictement croissantes pour tout k 3. Pour tous n, m, k, n(m) +k n+k(m)

Preuve:

1. Par r´ecurrence sur (n, m) (ordonn´es lexicographiquement) : 0(m) = m+ 1, ce qui montre la propri´et´e dans le cas de base. n+1(0) = n(1) n+ 1 1 par hypoth`ese de r´ecurrence. n+1(m+ 1) = n( n+1(m))

n+1(m) + 1 par hypoth`ese de r´ecurrence. Et n+1(m) m+ 1 (par H.R.) donc n+1(m+ 1) m+ 2.

2. Par r´ecurrence surkon montre que, pour toutm, k(m+1)> k(m) : si k= 0 on a bienm+2> m+1. k+1(m+1) = k( k+1(m)) k+1(m)+1 par le premier point du lemme. Donc k+1(m+ 1)> k+1(m).

3. On montre, par r´ecurrence sur (n, m), que n+1(m) n(m) + 1. Si n= 0, n+1(m) =m+ 2 0(m) + 1. n+2(0) = n+1(1) n(1) + 1 (par hypoth`ese de r´ecurrence). Or n(1) = n+1(0). Donc n+2(0)

n+1(0) + 1.

(4)

n+2(m+ 1) = n+1( n+2(m)) n+1( n+1(m) + 1) (par hypoth`ese de r´ecurrence et par croissance de n+1.) n+1( n+1(m)+1) n( n+1(m)+

1)+1 (par hypoth`ese de r´ecurrence), et n( n+1(m)+1)+1 n( n+1(m))+

1 = n+1(m+ 1) + 1.

Lemme 7.1.3 Pour tous k, m, n, k( m(n)) 2+max(k,m)(n).

Preuve:

On utilise les r´esultats de l’exercice 7.1.2 sans mention. Soit M = max(k, m).

k( m(n))  M( M+1(n))

M+1(n+ 1)

M+1( 1(n 1)) Sin >0

M+1( M+2(n 1))

M+2(n)

et, si n= 0, M+1(n+ 1) M+2(0) et on a encore l’in´egalit´e.

Proposition 7.1.1 Pour toute fonction r´ecursive primitive `a un argument ⇠, il existe une fonction de la hi´erarchie de Grzegorczyk n telle que

8m.⇠(m) n(m) Preuve:

On prouve par r´ecurrence sur le nombre d’op´erations utilis´ees dans la construc- tion des fonctions primitives r´ecursives que, si est primitive r´ecursive, alors il existe un k tel que (~n) k (max~n).

— C’est vrai pour les fonctions initiales :Pki(~n) 0(max~n),S(n) 0(n), Z(n) 0(n).

— Si est obtenue par composition de⇠, 1, . . . , m, il suffit de choisir k = 2 + max(k, k 1, . . . , k n),

en utilisant l’exercice 7.1.2.

— Si est obtenue par r´ecursion primitive : (m,~n) =

⇢ ⇠(~n) Sim= 0

( (m 1,~n), m 1,~n) Sim >0

On montre par r´ecurrence sur m que (m,~n)  km( k(max(~n))) Si m= 0, alors (0,~n) =⇠(~n) k(max(~n)) par hypoth`ese de r´ecurrence.

Sim >0, par hypoth`ese de r´ecurrence,

(m 1,~n) mk 1( k(max(~n))).

Par croissance de k et comme mk (n) n+m, on a aussi (m,~n)  k (max( km 1( k(max(~n))), m 1,~n))

k ( km 1( k(max(~n))))

(5)

7.1. FONCTIONS R ´ECURSIVES PRIMITIVES 169 Par ailleurs, km(n) k+1(n+m) (par r´ecurrence sur m), donc

(m,~n) 1+k (m+ k(max(~n))) Il suffit d’utiliser alors le r´esultat sur la composition.

La fonction d’Ackermann est la fonction `a deux arguments A(n, m) =

n(m).

Th´eor`eme 7.1.1 La fonction d’Ackermann n’est pas r´ecursive primitive.

Preuve:

Si cette fonction ´etait r´ecursive primitive, d’apr`es la proposition 7.1.1, il exis- terait un entier k tel que, pour tout n, A(n, n)  k(n). Mais en choisissant n=k+ 1, on obtient k+1(k+ 1) k(k+ 1), ce qui contredit le r´esultat de l’exercice 7.1.2.

Exercice 182

Le sh´ema de r´ecursion mutuelle `a partir des fonctions f, g, h, k sur les entiers d´efinit par r´ecurrence les fonctions↵, sur les entiers par :

⇢ ↵(0,~x) = f(~x)

↵(n+ 1,~x) = g( (n,~x), n,~x) et

⇢ (0,~x) = h(~x)

(n+ 1,~x) = k(↵(n,~x), n,~x)

1. Montrer que, pour toutes fonctions r´ecursives primitivesf, g, h, la fonc- tion d´efinie par r´ecurrence par :

8<

:

↵(0,~x) = f(~x)

↵(1,~x) = g(~x)

↵(n+ 2,~x) = h(↵(n,~x), n,~x) est r´ecursive primitive.

2. Montrer que l’ensemble des fonctions r´ecursives primitives est clos par r´ecursion mutuelle.

Exercice 183

Montrer qu’il existe une fonction calculable et injective N de l’ensemble des fonctions r´ecursives primitives dans les entiers telle que les pr´edicats :

— R2(n, m) = 1 ssi il existe une fonction primitive r´ecursive `amarguments g telle que n=N(g)

— R1(n) = 1 ssi il existe un entierm tel queR2(n, m) = 1 sont r´ecursifs primitifs.

Exercice 184

Soitp0, p1, . . . , pn, ...la suite strictement croissante des nombres premiers. Mon- trer que les fonctions suivantes sont primitives r´ecursives :

(6)

1. La fonction PrimeS(n) =pn

2. La fonctionLogqui, `ai, nassocie l’exposant depidans la d´ecomposition de nen facteurs premiers.

Exercice 185

Soit gune fonction r´ecursive primitive et Qun pr´edicat r´ecursif primitif. Mon- trer que le pr´edicat d´efini par :

P(~n) = 8ig(~n). Q(~n, i) est primitif r´ecursif

Exercice 186

Montrer qu’il existe une fonction Ccalculable et injective des suites finies d’en- tiers dans les entiers et une fonction r´ecursive primitive Dtels que :

D(i, k) =

⇢ ui Si9n i,C(u0, . . . , un) =k 0 Sinon

(En particulier D doit bien ˆetre une fonction : son r´esultat doit ˆetre d´efini de mani`ere unique).

Exercice 187 (7)

Soit R0 le plus petit ensemble de fonctions des entiers dans les entiers, qui contient les fonctions de base, est clos par composition et par la variante suivante de la r´ecursion primitive : sig, h2R0 alorsf d´efinie de la mani`ere suivante est dans R0 :

f(n,~x) =

⇢ g(~x) Sin= 0 h(f(n 1,~x), n,~x) sinon

Autrement dit, au lieu de donner n 1 en argument `a h, on donne n comme argument.

Montrer que la fonction pr´ed´ecesseur est dans R0 et en d´eduire que R0 est l’ensemble des fonctions r´ecursives primitives (autrement dit, cette d´efinition de la r´ecursion primitive est ´equivalente `a la pr´ec´edente).

(7)

7.2. FONCTIONS R ´ECURSIVES TOTALES 171

7.2 Fonctions r´ ecursives totales

Un ensemble de fonctions F est ferm´e par minimisation si, pour toute ap- plication⇠ 2F telle que 8~n9m.⇠(~n, m) = 0, la fonction d´efinie par

(~n) = min

m (⇠(~n, m) = 0) est dans F.

Definition 7.2.1 L’ensemble des fonctions r´ecursives (totales)est le plus petit ensemble de fonctions qui contient les fonctions initiales et qui est ferm´e par composition, r´ecursion primitive, et minimisation.

Th´eor`eme 7.2.1 La fonction d’Ackermann est r´ecursive totale.

Preuve:

L’id´ee est de consid´erer une approximation du graphe deA: la fonctionA0 aura 3 arguments, le troisi`eme codant le graphe de la fonction d’Ackermann dans un parall´elipip`ede born´e ; toute portion born´ee du graphe de A est en e↵et une suite finite d’entiers qui peut ˆetre repr´esent´ee par un entier.

On consid`ere la fonction A0(n, m, k) d´efinie par : A0(n, m, k) =

⇢ A(n, m) Si A(n, m)k 0 Sinon

Nous allons montrer que A0(n, m, k) est primitive r´ecursive. Pour simplifier la pr´esentation, en utilisant les exercices 180, 186, on s’autorise les boucles for et l’utilisation de tableaux pour m´emoriser les r´esultats interm´ediaires (les op´erations sur les tableaux cod´es par des entiers sont bien r´ecursives primitives, gˆace `a l’exercice 186).

On suppose k 2 (pourk= 0 on d´efinit A0(n, m, k) = 0 et pourk= 1 on d´efinit A0(n, m, k) = 1 si n=m= 0 et 0 sinon).

for i :=0 ton do for j :=0to kdo

T[i,j] :=0 for i :=0 ton do

for j :=0to k-1do if i=0

then T[0,j] := j+1 if j=0

then T[i,0] := T[i-1,1]

if i>0andj >0and k-1 T[i,j-1] 1 then T[i,j] := T[i-1,T[i,j-1]]

Nous pr´etendons que, `a l’issue de l’´ex´ecution, siT[n, m]k, alorsT[n, m] = A0(n, m, k) et donc que A0 est r´ecursive primitive.

Pour le prouver, on consid`ere le plus petit ensemble S de paires d’entiers tel que (n, m)2S et,

(8)

— si (i+ 1,0)2S alors (i,1)2S

— si (i+ 1, j + 1) 2 S et A(i+ 1, j)  k 1, alors (i+ 1, j) 2 S et (i, A(i+ 1, j))2S

On montre, par r´ecurrence sur la paire (i, j) que, `a l’issue de l’execution du programme, pour tous (i, j)2S,T[i, j] =A0(i, j, k).

— Si (0, j) 2 S, alors j  k 1 (par minimalit´e de S) et donc T[0, j] = j+ 1 =A(0, j) =A0(0, j, k)

— Si (i+1,0)2S, alors (i,1)2Set, par hypoth`ese de r´ecurrence,T[i,1] = A0(i,1, k). Si k A(i,1), alors T[i+ 1,0] = T[i,1] = A(i,1) = A(i+ 1,0) =A0(i+ 1,0, k). Sinon,T[i,1] = 0 =T[i+ 1,0] =A0(i+ 1,0, k)

— Si (i+ 1, j+ 1)2S alors,

— ou bien A(i+ 1, j) k et, dans ce cas, A(i+ 1, j+ 1) > k et donc A0(i+ 1, j+ 1, k) = 0. Par ailleurs, T[i+ 1, j+ 1] = 0 et doncA0(i+ 1, j+ 1, k) =T[i+ 1, j+ 1]

— ou bienA(i+ 1, j)k 1 et dans ce cas (i, A(i+ 1, j))2S et donc, par hypoth`ese de r´ecurrence, A0(i, A(i+ 1, j), k) = T[i, A(i+ 1, j)].

Par ailleurs,A0(i+ 1, j, k) =A(i+ 1, j) =T[i+ 1, j] par hypoth`ese de r´ecurrence. DoncT[i+1, j+1] =T[i, T[i+1, j]] =A0(i, A(i+1, j), k).

Donc T[i+ 1, j + 1] = A(i, A(i+ 1, j), k) si A(i, A(i+ 1, j))  k et T[i+ 1, j + 1] = 0 sinon. Dans tous les cas T[i+ 1, j + 1] = A0(i+ 1, j+ 1, k).

On remarque enfin que

A(n, m) = min

k (A0(n, m, k)6= 0) Exercice 188

Montrer qu’il existe une fonction non r´ecursive primitive dont le graphe est r´ecursif primitif. (Le graphe de f est l’ensemble des paires (n, f(n)).

Exercice 189

Montrer qu’il existe une fonction calculableRde l’ensemble des fonctions r´ecursives primitives dans les entiers et une fonction r´ecursive totale U telles que, pour toute fonction r´ecursive primitive f `a un argument et tout entieri:

U(R(f), i) =f(i)

(9)

7.3. FONCTIONS R ´ECURSIVES PARTIELLES ET ENSEMBLES R ´ECURSIVEMENT ´ENUM ´ERABLES173

7.3 Fonctions r´ ecursives partielles et ensembles r´ ecursivement

´ enum´ erables

La minimisation est ´etendue au cas o`u on n’a pas n´ecessairement8~n9m.⇠(~n, m) = 0. Dans ce cas, la fonction d´efinie est une fonction partielle :

(~n) = min{m|(⇠(~n, m) = 0)^ 8k < m,⇠(~n, k)6=?}

La composisition de fonctions r´ecursives totales est ´etendue aux fonctions partielles : la compos´ee n’est d´efinie que lorsque les fonctions composantes le sont. De mˆeme, la r´ecursion primitive appliqu´ee `a des fonctions partielles :

= Prim(⇠, ) est d´efinie en (m,~n) si m = 0 et ⇠(~n) 6=? ou bien m > 0, (m 1,~n) est d´efinie et est d´efinie en ( (m 1,~n), m 1,~n).

Definition 7.3.1 L’ensemble des fonctionsr´ecursives partielles(aussi appel´ees fonctions r´ecursives partielles) est le plus petit ensemble de fonctions sur les entiers contenant les fonctions initiales et clos par r´ecursion primitive, compo- sition et minimisation.

Un ensemble est r´ecursif si sa fonction caract´eristique est une fonction r´ecursive totale. Un ensemble S est r´ecursivement ´enum´erable si la fonction qui vaut 1 quand n 2 S et est ind´efinie ou vaut 0 quand n /2 S est r´ecursive partielle.

7.3.1 Turing-calculabilit´e et fonctions r´ecursives

A l’appui de la th`ese de Church, les notions de calculabilit´e d´efinies sur les entiers par les machines de Turing et les fonctions r´ecursives partielles co¨ıncident :

Th´eor`eme 7.3.1 Soit f :Nk !N une fonction partielle. f est r´ecursive par- tielle (resp. r´ecursive) ssi il existe une machine de Turing Mf telle que Mf s’arrˆete exactement sur les donn´ees du domaine de d´efinition de f et, lors- qu’elle s’arrˆete sur n1, . . . , nk, le ruban contientf(n1, . . . , nk).

Preuve:

On suppose que les entiers sont repr´esent´es (dans une base b) par des mots.

Tout d’abord, si f est r´ecursive partielle (resp. r´ecursive totale), f est cal- culable par une machine de Turing. On montre que l’ensemble des fonctions partielles calculables par une M.T., contient les fonctions initiales et est clos par r´ecursion primitive, par composition et par minimisation.

— Soient M0, M1, . . . , Mk calculant respectivement f0, f1, . . . , fk. Soit la machineM `ak+ 1 rubans qui duplique la donn´ee sur les rubans puis si- muleM1, . . . , Mk sur les rubans 1, ...k puis, si tous les calculs s’arrˆetent, simule M0 sur les r´esultats obtenus. M s’arrˆete sur la donn´ee ~x ssi M1, . . . , Mks’arrˆetent sur~xetM0 s’arrˆete sur la donn´eef1(~x), . . . fk(~x).

M s’arrˆete donc ssi f0(f1(~x), . . . , fk(~x)) est d´efini et, dans ce cas, le r´esultat du calcul de M est f0(f1(~x), . . . , fk(~x)). On a donc la clˆoture par composition.

(10)

— Pour la r´ecursion primitive : soit f(~x, n) =

⇢ g(~x) Sin= 0 h(f(~x, n 1),~x, n 1) Sinon

Soient Mg et Mh les machines qui calculent respectivement g et h (et ne s’arrˆetent pas sur les donn´ees hors des domaines de d´efinition). On d´efinit Mf comme suit :~x, n sont donn´es sur le ruban 0. Sur le ruban 1, Mf conserve un compteur (initialement 0). Sur le ruban 2, Mf simule Mg sur la donn´ee~x.

Mf r´ep`ete ensuite les op´erations suivantes tant que le compteur est inf´erieur strictement `an:

1. SimulerMh sur le ruban3, avec les donn´ees fournies par le deuxi`eme ruban, ~x (ruban 0) et la donn´ee du ruban 1

2. Recopier le contenu du ruban 3 sur le ruban 2 3. incrementer le ruban 1

— Pour la minimisation : soit f(~x) = minn(g(~x, n) = 0) et soit Mg une machine qui calcule g (et ne s’arrˆete pas sur les valeurs pour lesquelles g n’est pas d´efinie).

Mf a sur son premier ruban la donn´ee ~x, sur un deuxi`eme ruban un compteur (initialement 0). Sur le troisi`eme ruban,Mf r´ep`ete les op´erations suivantes :

1. simuler Mg sur les donn´ees des deux premiers rubans

2. si le r´esultat est nul, alors s’arrˆeter (et le r´esultat est donn´e sur le deuxi`eme ruban), sinon incr´ementer le deuxi`eme ruban.

R´eciproquement, ´etant donn´ee une machine de Turing, on construit une fonction r´ecursive primitive qui simule un mouvement de la machine, puis avec un coup de minimisation on termine. Plus pr´ecis´ement : les mots sont consid´er´es comme des entiers en base |Q|+|⌃|+ 1. Les configurations sont des triplets (q, w1, w2) et sont donc cod´es de mani`ere bijective par des entiers sup´erieurs ou

´egaux `a 2. Soit C ce codage.

La fonction f0 qui, `a ~n associe le codage de la configuration initiale de la machine sur la donn´ee ~n est r´ecursive primitive (car l’exponentiation est r´ecursive primitive).

La fonctiongqui `a un entiernassocie associeC(q0, w01, w02) sin=C(q, w1, w2), et (q, w1, w2) `M (q0, w10, w20) et 0 sinon est une fonction r´ecursive primitive puisque quotient, reste, multiplication, somme et tests d’´egalit´e sont r´ecursives primitives et les fonctions r´ecursives primitives sont closes par branchement conditionnel (quand la condition est elle-ˆeme r´ecursive primitive).

Enfin, la fonction f qui associe `a un entier 0 ssi cet entier code une confi- guration finale de la machine est aussi r´ecursive primitive et la fonction d qui associe au code d’une configuration finale l’entier r´esultat du calcul est aussi r´ecursive primitive.

On d´efinit alors

h(~n, k) =

⇢ f0(~n) Si k= 0 g(h(~n, k 1)) Sinon

(11)

7.3. FONCTIONS R ´ECURSIVES PARTIELLES ET ENSEMBLES R ´ECURSIVEMENT ´ENUM ´ERABLES175 qui calcule le codage de la ni`eme configuration de la machine de TuringM dans

son calcul sur la donn´ee~n.

La fonction

fM(~n) =d(h(~n,min

k (f(h(~n, k)) = 0)))

est alors r´ecursive partielle. Son domaine de d´efinition est l’ensemble des entiers sur lesquelsM s’arrˆete. fM calcule par construction la mˆeme fonction queM, sur son domaine de d´efinition.

Corollaire 7.3.1 (Kleene) Pour toute fonction r´ecursive partielle `a k argu- ments f, il existe deux fonctions r´ecursives primitivesg, h telles que, pour tous x1, . . . , xk, f(x1, . . . , xk) =g(x1, . . . , xk,miny(h(y, x1, . . . , xk) = 0)).

Exercice 190

Montrer que si on remplace la d´efinition de la minimisation (pour les fonctions partielles) par

g(~x) = min{n|f(n,~x) = 0&8m. f(m,~x)6=?}

(Autrement dit,h doit ˆetre d´efinie pour toutm et pas seulement pourm < n) Alors on ne change pas la d´efinition des fonctions r´ecursives partielles.

Exercice 191 (5)

Montrer que le probl`eme suivant est ind´ecidable : Donn´ee : une fonction r´ecursive primitivef Question : f calcule-t-elle la fonction nulle ? Exercice 192 (5)

Montrer que, si f est une fonction r´ecursive partielle croissante (dans tous ses arguments ; en particulier sif est ind´efinie surx1, . . . , xk, etyi xi, alorsf est ind´efinie sur y1, . . . , yk), alors son graphe est r´ecursif primitif.

(12)

7.3.2 Elimination de la r´´ ecursion primitive

On veut montrer que la r´ecursion primitive peut ˆetre simul´ee par les autres constructions.

On note C le plus petit ensemble de fonctions sur les entiers qui contient les fonctions initiales, l’addition, la multiplication, l’´egalit´e, et qui est clos par composition et minimisation. (Donc pas de r´ecursion primitive ici).

Exercice 193

Montrer que les fonctions ou pr´edicats suivants sont dans C : 1. conjonction, disjonction, n´egation de pr´edicats dans C 2. SiP, f1, f2 2C,f = n.ifP(n) thenf1(n) else f2(n) 3. La soustraction enti`ere : x y= max(0, x y) 4. L’in´egalit´e x y

5. Les foncions J, K, L

6. D(n, m) qui est satisfait sin6= 0 etndivisem

7. rem(x, y) qui calcule le reste de la division de x pary lorsquey 6= 0 (et est ind´efini lorsque y= 0).

8. 8xf(~y).P(x,~y) et 9xf(~y).P(x,~y) o`uP, f 2C. 9. P rime(n) qui est satisfait par les nombres premiers 10. P P(n) : “nest une puissance d’un nombre premier”.

Lemme 7.3.1 Il existe une fonction 2 C (la fonction beta de G¨odel) telle que, pour tout net toute s´equence a0, . . . , an, il existe un entier dtel que, pour tout i= 0, . . . , n, (d, i) =ai.

Preuve:

On pose N = max(n, a0, . . . , an) et ui = 1 + (i+ 1)N!. Alors ui > aj et gcd(ui, uj) = 1 pour i6=j.

Le syst`eme d’´equations z = ai mod ui a alors une unique solution b telle que b < u0⇥. . .⇥un.

On pose enfind=J(b, N!) et (x, y) = rem(K(x),1 + (y+ 1)L(x)) On v´erifie ais´ement que 2C `a l’aide des exercices pr´ec´edents.

De plus,

(d, i) = rem(K(d),1 + (i+ 1)L(d)) = rem(b,1 + (i+ 1)N!) = rem(b, ui) =ai

Elimination de la r´ecursion primitive :´

Th´eor`eme 7.3.2 Cco¨ıncide avec l’ensemble des fonctions r´ecursives partielles.

Preuve:

Comme l’addition, la multiplication et l’´egalit´e sont facilement expressibles comme des fonctions r´ecursives primitives, il suffit de montrer que C est clos par r´ecursion primitive.

(13)

7.3. FONCTIONS R ´ECURSIVES PARTIELLES ET ENSEMBLES R ´ECURSIVEMENT ´ENUM ´ERABLES177 Soit

f(x,~n) =

⇢ ⇠(~n) Six= 0 (f(x 1,~n), x 1,~n) Sinon Soit alors

S(x, b,~n)def= (b,0) =⇠(~n)^ 8i < x.( (b, i+ 1) = ( (b, i), i,~n)) S 2C par l’exercice 193.

Montrons alors, par r´ecurrence sur z  x, que, si S(x, b,~n) = 1, alors (b, z) =f(z,~n).

Si z = 0, alors (b, z) =⇠(~n) =f(0,~n). Sinon, (b, z) = ( (b, z 1), z 1,~n) = (f(z 1,~n), z 1,~n) (par hypoth`ese de r´ecurrence) et donc (b, z) = f(z,~n).

De plus, d’apr`es le lemme 7.3.1, si f(x,~n) est d´efini, il existe un b0 tel que S(x, b0,~n) = 1. Donc (minb(S(x, b,~n) = 1), x) =f(x,~n).

Si maintenant f(i,~n) est ind´efini. Si i = 0, S(x, b,~n) ne vaut jamais 1 et f0(x,~n) est ind´efini. Si i > 0, alors (f(i 1,~n), i 1,~n) est ind´efini et donc S(i, b,~n) est ind´efini. f0(i,~n) est alors ind´efini (puisque S(i, b,~n) 6= 1 quel que soitb).

Dans tous les cas, f(x,~n) = (minb(S(x, b,~n) = 1), x). Doncf 2C.

Références

Documents relatifs

Les relations de la question précédente présentent une certaine analogie avec celles dénissant les coecients du binôme... Application à un calcul

Montrer que tout polynôme non nul admet un unique antécédent pour ∆ divisible par X.. Application à un calcul

Montrer que les points M 1 et M 2 varient sur un même cercle dont on précisera le centre et le rayon.. Etudier la dérivabilité de f à droite en 0 et interpréter graphiquement

Le raisonnement est similaire pour n impair. On cherche la meilleure approximation linéaire

[r]

En d´ eduire que la suite (f n ) n∈ N converge uniform´ ement vers une fonction f continue et croissante..

This non-negative functional tF was shown to be lower semi-continuous on the set of Lipschitz functions with the 1: I topology and hence could be extended to

Soit X une variable al´ eatoire de loi N (0, 1), c’est-` a-dire une variable al´ eatoire admettant pour densit´ e la