Files
cours/fonction d'ackermann de cori et lascar.md
2026-03-24 14:51:19 +01:00

17 KiB
Raw Blame History

up, tags, aliases
up tags aliases
fonction récursive primitive
s/maths/logique
s/informatique

[!info] But de la note Cette note à pour but de montrer qu'une certaine fonction \xi \in \mathbb{N}^{2} \to \mathbb{N} n'est pas fonction récursive primitive. Cela permet d'affirmer que toutes les fonctions de \mathbb{N}^{p} \to \mathbb{N} ne sont pas récursives primitives.

[!definition] fonction d'ackermann de cori et lascar fonction d'Ackermann modifiée pour la simplicité des preuves. On la note \xi, et on la définit comme suit :

  • \forall x \in \mathbb{N},\quad \xi(0, x) = 2^{x}
  • \forall y,\quad \xi(y, 0) = 1
  • \forall x, y \in \mathbb{N},\quad \xi(y+1, x+1) = \xi(y, \xi(y+1, x))

On pourra aussi noter : \xi _{n}(x) = \xi(n, x) (définie comme \xi _{n} := \lambda x. \xi(n, x)) La relation de récurrence est alors : \xi _{n+1}(x+1) = \xi _{n}(\xi _{n+1}(x)) ^definition

Propriétés

[!proposition]+ Unicité La définition donnée désigne bien une unique fonction.

[!démonstration]- Démonstration On utilise la notation \xi _{n} et la récurrence : \begin{cases} \xi _{n}(0) = 1\\ \xi _{n}(x+1) = \xi _{n-1}(\xi _{n}(x)) \end{cases} Cela établit clairement que chaque \xi _{n} est bien définie, et donc que \xi est unique.

[!proposition]+ Lemme 1 : \xi _{n}(x)>x Pour tout entiers x et n on a \xi _{n}(x) > x

[!démonstration]- Démonstration On utilise deux récurrences emboîtées : Par récurrence sur n, on montre que \forall x \in \mathbb{N},\quad \xi _{n}(x)>x

  • Initialisation : Pour n = 0 la propriété est évidente : \xi_0(x) = 2^{x} > x
  • Récurrence : Fixons n>0 et supposons que \forall x \in \mathbb{N},\quad \xi_{n-1}(x)>x On veut alors montrer que \forall x \in \mathbb{N},\quad \xi _{n}(x)>x Pour cela, on fait une récurrence sur x :
    • Initialisation sur x : La propriété est claire pour x=0, puisque \xi _{n}(0) = 1
    • Récurrence sur x : On suppose que \xi _{n}(x)>x et on va montrer que \xi _{n}(x+1)>x+1 On sait que \xi _{n}(x+1) = \xi _{n-1}(\xi _{n}(x)) Par nos suppositions, on sait que \xi _{n-1}(\xi _{n}(x)) > \xi _{n}(x) (puisque \forall x \in \mathbb{N},\quad \xi _{n-1}(x)>x). On peut donc affirmer que \xi _{n-1}(\xi _{n}(x)) \geq \xi _{n}(x)+1 (on ajoute 1 artificiellement) Encore par suppositions, on a que \xi _{n}(x)>x Ainsi on obtient : \xi _{n}(x+1) = \xi _{n-1}(\xi _{n}(x)) \geq \xi _{n}(x)+1 > x+1 Ce qui montre bien la relation de récurrence

^lemme 1 ^lemme-1

[!proposition] Lemme 2 \xi _{n}(x+1) > \xi _{n}(x) Pour tout entiers x et n on a \xi _{n}(x+1) > \xi _{n}(x)

[!démonstration]- Démonstration On procède par récurrence sur n :

  • Initialisation n=0 : \xi_0(x+1) = 2^{x+1} > 2^{x} = \xi _{0}(x+1)
  • Récurrence pour un n fixé on suppose \xi _{n}(x+1) > \xi _{n}(x) On veut alors montrer que \xi _{n+1}(x+1) > \xi _{n+1}(x) \xi _{n+1}(x+1) = \underbrace{\xi _{n}(\xi _{n+1}(x)) > \xi _{n+1}(x)}_{\text{par le lemme 1}} (fonction d'ackermann de cori et lascar#^lemme-1) ^lemme-2

[!proposition] Lemme 3 \xi_{n}(x) \geq \xi_{n-1}(x) Pour tout n \geq 1 et pour tout x on a \xi_{n}(x) \geq \xi_{n-1}(x)

[!démonstration]- Démonstration On procède par récurrence sur x :

  • Initialisation : pour x=0 On a \xi_{n}(0) = 1 \geq 1 = \xi_{n-1}(0)
  • Récurrence : pour un x fixé, on suppose \xi_{n}(x)\geq \xi_{n-1}(x) On veut alors montrer que \xi_{n}(x+1)\geq \xi_{n-1}(x+1) On sait que \xi_{n}(x) \geq x+1 (fonction d'ackermann de cori et lascar#^lemme-1) Et comme \xi_{n-1} est croissante (fonction d'ackermann de cori et lascar#^lemme-2) on a \xi_{n-1}(\xi_{n}(x)) \geq \xi_{n-1}(x+1) Or \xi_{n}(x+1) = \xi_{n-1}(\xi_{n}(x)) (par la définition par récurrence de \xi_{n}) Donc \xi _{n}(x+1) = \xi _{n-1}(\xi _{n}(x)) \geq \xi _{n-1}(x+1) ^lemme-3

[!definition] Fonctions \xi _{n}^{k} (itération de \xi _{n}) Si k est un entiers, notons \xi _{n}^{k} la fonction \xi _{n} itérée k fois :

  • \xi _{n}^{0} = \lambda x.x
  • \xi _{n}^{1} = \xi _{n}
  • \vdots
  • \xi _{n}^{k+1} = \xi _{n} \circ \xi _{n}^{k}

[!proposition] Lemme 4 propriétés trivialles des \xi _{n}^{k}

  • Les fonctions \xi _{n}^{k} sont strictement croissantes
  • \xi _{n}^{k}(x) < \xi _{n}^{k+1}(x)
  • \xi _{n}^{k}(x) \geq x
    • dem \xi _{n}^{0}(x) = x \geq x, or on vu plus haut que \xi _{n}^{k+1}(x) > \xi _{n}^{k}(x)
  • \xi _{n}^{k} \circ \xi _{n}^{h} = \xi _{n}^{k+h}
    • dem cela est assez évident par définition
  • si m \leq n alors \xi _{m}^{k}(x) \leq \xi _{n}^{k}(x)

    [!démonstration]- Démonstration On procède par récurrence sur k :

    • Initialisation : \xi _{m}^{0} = \xi _{n}^{0} = \lambda x. x donc l'inégalité est triviallement vraie
    • Récurrence : On suppose \xi _{m}^{k}(x) \leq \xi _{n}^{k}(x) et on veut montrer que \xi _{m}^{k+1}(x) \leq \xi _{n}^{k+1}(x). On sait (par définition) que : \xi _{m}^{k+1}(x) = \xi _{m} \circ \xi _{m}^{k}(x) \xi _{n}^{k+1}(x) = \xi _{n} \circ \xi _{n}^{k}(x) Or, par le fonction d'ackermann de cori et lascar#^lemme-3 on sait que \xi _{n}(X) \geq \xi _{n-1}(X) \geq \xi _{n-2}(X) \geq \cdots \geq \xi _{m}(X), ce qui permet d'obtenir \xi _{n}(X) \geq \xi _{m}(X). Comme toutes ces fontions \xi _{n} \dots \xi _{m} sont strictement croissantes, cela nous donne aussi que : X \geq Y \implies \xi _{n}(X) \geq \xi _{n}(Y) \geq \xi _{m}(Y) ce qui établit que X \geq Y \implies \xi _{n}(X) \geq \xi _{m}(Y) Et, en particulier, comme on a supposé que \xi _{n}^{k}(x) \geq \xi _{m}^{k}(x), on peut donc conclure que \xi _{n}\circ \xi _{n}^{k}(x) \geq \xi _{m} \circ \xi _{m}^{k}(x), autrement dit : \xi _{n}^{k+1}(x) \geq \xi _{m}^{k+1}(x)

^lemme-4

Domination : C_{n}

[!definition] fonction dominant une autre Soient f \in \mathscr{F}_{1} et g \in \mathscr{F}_{p} On dit que f domine $g$ s'il existe un entier A tel que pour tout (x_1, x_2, \dots, x_{p}) on aie g(x_1, x_2, \dots, x_{p}) \leq f(\sup\limits(x_1, x_2, \dots, x_{p}, A)). en une ligne : \boxed{f \text{ domine } g \iff \exists A \in \mathbb{N},\quad \forall \overline{x} \in \mathbb{N}^{p},\quad g(\overline{x}) \leq f(\sup\limits(\overline{x}, A))}

[!definition]+ C_{n} On appellera C_{n} l'ensemble des fonctions qui sont dominées par au moins une itérée de \xi _{n} : \boxed{C_{n} = \{ g \mid \exists k \in \mathbb{N} ,\quad \xi _{n}^{k} \text{ domine } g \}}

[!proposition]+ Quelques fonctions dans C_{0} Les fonctions suivantes appartiennent à C_0 :

  • Les fonctions de projection P_{p}^{i}
    • dem P_{p}^{i}(\overline{x}) \leq \xi _{0}^{0}(\sup\limits(\overline{x}, 0)) puisque \xi _{0}^{0} = \lambda x.x
  • Les fonctions constantes
    • dem (\lambda \overline{x}. c) \leq \xi_0^{0}(\sup\limits(\overline{x}, c)) puisque \xi_0^{0} = \lambda x.x
  • La fonction successeur S
    • dem S(x) \leq \xi_0^{1}(\sup\limits(x, 0)) puisque \xi_0^{1}(x) = 2^{x} \geq x+1
  • La fonction addition \lambda xy. x+y
    • dem (\lambda xy. x+y)(x, y) \leq \xi _{0}^{1}(\sup\limits(x, y, 1)) puisque x+y \leq 2^{\sup\limits(x, y, 1)}
  • Les fonction linéaires \lambda x. kxk est un entier quelconque
    • dem (\lambda x. kx)(x) \leq f(\sup\limits(x, k))
  • i on utilise la notation \overline{x}, voir fonction récursive primitive#^notations ^fonctions-dans-C0

[!proposition]+ \xi _{n} \in C_{n} La fonction \xi _{n} appartient à C_{n}

[!démonstration]- Démonstration On sait que \forall x,\quad \xi _{n}(x) \geq x (fonction d'ackermann de cori et lascar#^lemme-1) Donc, \forall x,\quad, \xi _{n}^{2}(x) = \xi _{n}(\xi _{n}(x)) \geq \xi _{n}(x) Ainsi, on peut affirmer que \exists k,\quad \exists A,\forall x,\quad \xi _{n}(x) \leq \xi _{n}^{k}(\sup\limits(x, A)) puisque c'est vrai en particulier pour k = 2 et A = 0 (en effet, \sup\limits(x, 0) = x car on est sur \mathbb{N}) Cela établit bien que \xi _{n} \in C_{n}

[!proposition]+ Stabilité par fonction inférieure Soient f, g \in \mathscr{F}_{p} Si g \in C_{n} et si \forall \overline{x},\quad f(\overline{x}) \leq g(\overline{x}) (si f est toujours inférieure à g) alors f \in C_{n}

[!démonstration]- Démonstration Cela est assez évident : Puisque g \in C_{n}, on sait que \exists k,\quad \exists A,\quad \forall \overline{x},\quad g(\overline{x}) \leq \xi _{n}(\sup\limits(\overline{x}, A)) Et comme \forall \overline{x},\quad f(\overline{x}) \leq g(\overline{x}) on obtient directement : \exists k,\quad \exists A,\quad \forall \overline{x},\quad f(\overline{x}) {\color{#606060}\,\leq g(\overline{x}) \leq\,} \xi _{n}(\sup\limits(\overline{x}, A)) Ce qui montre bien que \exists k,\quad \xi _{n} \text{ domine } f et donc que f \in C_{n}

[!proposition]+ Lemme 5 Clôture par composition Soient f_1, f_2, \dots, f_{m} \in \mathscr{ F_{p}} \cap C_{n} des fonctions à p variables de C_{n} Soit g une fonction à m variables de C_{n} g(f_1, f_2, \dots, f_{m}) est aussi dans C_{n}

[!démonstration]- Démonstration Comme f_1, f_2, \dots, f_{m} et g sont dans C_{n}, on sait qu'il y à des entiers k_1, k_2, \dots, k_{m}, k et A_1, A_2, \dots, A_{m}, A tels que : \forall 1 \leq i \leq m,\quad \forall \overline{x},\quad f_{i}(\overline{x}) \leq \xi _{n}^{k_{i}}(\sup\limits(\overline{x}, A_{i})) et \forall \overline{x},\quad g(\overline{x}) g= \xi _{n}^{k}(\sup\limits(\overline{x}, A)) Posons B = \sup\limits(A_1, A_2, \dots, A_{m}, A) et h = \sup\limits(k_1, k_2, \dots, k_{m}) Il est alors évident que : \forall 1 \leq i \leq m,\quad \forall \overline{x}, f_{i}(\overline{x}) \leq \xi _{n}^{h}(\sup\limits(\overline{x}, B)) et que \forall \overline{x},\quad g(\overline{x})\leq \xi _{n}^{k}(\sup\limits(\overline{x}, B)) Alors, en passant les f_1, f_2, \dots, f_{m} en argument de g on obtient : \forall \overline{x},\quad g(f_1(\overline{x}), f_2(\overline{x}), \dots, f_{m}(\overline{x})) \leq \xi _{n}^{k}(\sup\limits(f_1(\overline{x}), f_2(\overline{x}), \dots, f_{m}(\overline{x}), B)) Et, par la majoration de tous les f_{i} que l'on a déjà faîte (et car \xi _{n}^{k} est croissante et respecte \xi _{n}^{k}(x) > x) , on obtient : \forall \overline{x},\quad g(f_1(\overline{x}), f_2(\overline{x}), \dots, f_{m}(\overline{x})) \leq \xi _{n}^{k}(\xi _{n}^{h}(\sup\limits(\overline{x}, B))) Or, par les propriétés du fonction d'ackermann de cori et lascar#^lemme-4 on a \xi _{n}^{k} \circ \xi _{n}^{h} = \xi _{n}^{k+h}, donc : \forall \overline{x},\quad g(f_1(\overline{x}), f_2(\overline{x}), \dots, f_{m}(\overline{x})) \leq \xi _{n}^{k+h}(\sup\limits(\overline{x}, B)) Ce qui montre bien que g(f_1, f_2, \dots, f_{m}) \in C_{n} ^lemme-5

[!proposition]+ Lemme 6 Pour tous entiers n, k et x on a : \xi _{n}^{k}(x) \leq \xi _{n+1}(x+k)

[!démonstration]- Démonstration On procède par récurrence sur k

  • Initialisation : Pour k=0 et k=1, l'égalité est claire par croissance de \xi _{n}
  • Récurrence : Supposons que \xi _{n}^{k}(x) \leq \xi _{n+1}(x+k) \xi _{n}^{k+1}(x) = \xi _{n} \circ \xi _{n}^{k}(x) \underbrace{\leq \xi _{n}(\xi _{n+1}(x+k))}_{\text{par hypothèse}} \underbrace{=\xi _{n}(x+k+1)}_{\text{par définition de }\xi _{n}} ^lemme-6

[!proposition]+ Lemme 7 - Clôture par schéma de récurrence Soient g \in \mathscr{F}_{p} et h \in \mathscr{F}_{p+2} Si g et h sont dans C_{n} Alors la fonction f fonction récursive primitive#^definition de g et h (f = \rho(g, h)) appartient à C_{n+1}

  • ! Ce n'est pas C_{n} mais \displaystyle\bigcup _{n \in \mathbb{N}}C_{n} qui sera stable par schéma de récurrence

[!démonstration]- Démonstration Ecrivons d'abord les hypothèses explicitement : On utilise la notation \overline{x} pour x_1, x_2, \dots, x_{p} f(\overline{x}, 0) = g(\overline{x}) f(\overline{x}, y+1) = h(\overline{x}, y, f(\overline{x}, y)) Ensuite, comme g, h \in C_{n} on a : \exists A_{g}, A_{h}, k_{g}, k_{h},\quad \forall \overline{x}, y, z,\quad \begin{cases} g(\overline{x}) \leq \xi _{n}^{k_{g}}(\sup\limits(\overline{x}, A_{g}))\\ h(\overline{x}, y, z) \leq \xi _{n}^{k_{h}}(\sup\limits(\overline{x}, y, z, A_{h})) \end{cases} Montrons maintenant par récurrence sur y que \forall \overline{x}, y,\quad f(\overline{x}, y) \leq \xi _{n}^{k_{g}+yk_{h}}(\sup\limits(\overline{x}, y, A_{g}, A_{h}))

  • Initialisation y = 0 Pour y=0 on a f(\overline{x}, y) = g(\overline{x}) \leq \underbrace{\xi _{n}^{k_{g}}(\sup\limits(\overline{x}, A_{g}))}_{\text{car } g \in C_{n}} \leq \xi _{n}^{k_{g} + \overbrace{yk_{h}}^{=0}}(\sup\limits(\overline{x}, y, A_{g}, A_{h}))
  • Récurrence on suppose que f(\overline{x}, y) \leq \xi _{n}^{k_{g} +y k_{h}}(\sup\limits(\overline{x}, y, A_{g}, A_{h})), montrons que c'est vrai pour y+1 \begin{align} f(\overline{x}, y+1) &= h(\overline{x}, y, f(\overline{x}, y))\\ &\leq \xi _{n}^{k_{h}}(\sup\limits(\overline{x}, y, f(\overline{x}, y), A_{h})) \quad \text{car } h \in C_{n} \\&\leq \xi _{n}^{k_{h}}(\sup\limits(\overline{x}, y, \xi _{n}^{k_{g} + yk_{h}}(\sup\limits(\overline{x}, y, A_{g}, A_{h})), A_{g}, A_{h})) \quad \text{par hyp. de récurrence} \\&\leq \xi _{n}^{k_{h}}\circ\xi _{n}^{k_{g}+yk_{h}}(\sup\limits(\overline{x}, y, A_{g}, A_{h})) \quad \text{par les propriétés du Lemme 4} \\&\leq \xi _{n}^{k_{h} +yk_{h}}(\sup\limits(\overline{x}, y, A_{g}, A_{h})) \quad\text{encore par le Lemme 4} \\&\leq \xi _{n+1}(\sup\limits(\overline{x}, y, A_{g}, A_{h}) + k_{h}+yk_{h}) \quad\text{par le Lemme 6}\end{align} Or, la fonction \lambda \overline{x}y. \xi _{n+1}(\sup\limits(\overline{x}, y, A_{g}, A_{h})+k_{h}+yk_{h}) s'obtient par composition de fonctions de C_{n+1} et est donc dans C_{n+1} (fonction d'ackermann de cori et lascar#^lemme-5), ce qui montre que f \in C_{n+1} ^cloture-par-recurrence

[!proposition] Corollaire : toutes les fonctions récursives primitives sont dans un C_{n} \displaystyle\bigcup _{n \in \mathbb{N}} C_{n} contient toutes les fonction récursive primitive.

[!démonstration]- Démonstration En effet :

Ce qui, fonction récursive primitive#^definition-courte de \mathscr{F} montre que \displaystyle\mathscr{F} \subseteq \bigcup _{n \in \mathbb{N}}C_{n}

[!proposition]+ Théorème : \xi n'est pas fonction récursive primitive La fonction d'Ackermann \xi n'est pas fonction récursive primitive.

[!démonstration]- Démonstration Supposons par l'absurde que \xi est récursive primitive. Il en est alors de même pour \lambda x. \xi(x, 2x). Il existe donc des entiers n, k et A tels que pour tout x > A on a \xi (x, 2x) \leq \xi _{n}^{k}(x) Donc, par le fonction d'ackermann de cori et lascar#^lemme-6 on a que pour tout x > A : \xi _{x, 2x} \leq \xi _{n}^{k}(x) \leq \xi _{n+1}(x+k)

Or, si x > \sup\limits(A, k, n+1) on a : \begin{align} \xi _{n+1}(x+k) &= \xi _{n}(\xi _{n+1}(x+k-1)) \\&\leq \xi _{n}(\xi _{n+1}(2x)) \quad\text{par croissance (Lemme 4)} \\&< \xi _{n+1}(2x) < \xi _{x}(2x) = \xi(x, 2x) \quad\text{(Lemme 4)} \end{align}

Ainsi, on a montré \xi(x, 2x) \leq \xi _{n+1}(x+k) et \xi(x, 2x) > \xi _{n+1}(x+k), ce qui est absurde. Cela montre bien que notre supposition est absurde, et donc que \xi ne peut pas être récursive primitive. ^thm-pas-recursive-primitive