--- up: - "[[fonction récursive primitive]]" tags: - s/maths/logique - s/informatique aliases: --- > [!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|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 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|Lemme 1]]) > > Et comme $\xi_{n-1}$ est croissante ([[fonction d'ackermann de cori et lascar#^lemme-2|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 > - dem évident puisque $\lambda x.x$ et les $\xi _{n}$ sont croissantes ([[fonction d'ackermann de cori et lascar#^lemme-2|Lemme 2]]) > Pour tous $m, n, k, h, x \in \mathbb{N}$ on a : > - $\xi _{n}^{k}(x) < \xi _{n}^{k+1}(x)$ > - dem par changement de variable $X = \xi _{n}^{k}(x)$ on obtient $X < \xi _{n}(X)$ ce qui est vrai ([[fonction d'ackermann de cori et lascar#^lemme-2|Lemme 2]]) > - $\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|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. kx$ où $k$ 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|notation ̅x]] ^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|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|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|définie par récurrence à partir]] 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|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|fonctions récursives primitives]]. > > [!démonstration]- Démonstration > > En effet : > > - $\displaystyle\bigcup_{n \in \mathbb{N}}C_{n}$ contient toutes les fonctions constantes, toutes les fonctions projection, et la fonction sucesseur (car il contient $C_0$, qui [[fonction d'ackermann de cori et lascar#^fonctions-dans-C0|contient ces fonctions comme on l'a vu]]) > > - $\displaystyle\bigcup _{n \in \mathbb{N}}C_{n}$ est [[fonction d'ackermann de cori et lascar#^lemme-5|stable par composition]] et [[fonction d'ackermann de cori et lascar#^cloture-par-recurrence|stable par schéma de récurrence]] > > > > Ce qui, [[fonction récursive primitive#^definition-courte|par définition]] 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|récursive primitive]] > La fonction d'Ackermann $\xi$ n'est pas [[fonction récursive primitive|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|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