Files
cours/fonction d'ackermann de cori et lascar.md

122 lines
6.2 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.
> [!corollaire]+ 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
> [!corollaire] 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
> [!corollaire] 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}$
> [!corollaire] Lemme 4 propriétés trivialles
> - 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$
> >
# Exemples