Files
cours/fonction d'ackermann de cori et lascar.md
2026-03-23 00:40:03 +01:00

206 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
up:
- "[[fonction récursive primitive]]"
tags:
- s/maths/logique
- s/informatique
aliases:
---
> [!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
> [!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]]
> [!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
> 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}$
>
# Exemples