Files
cours/fonction d'ackermann de cori et lascar.md
2026-03-22 14:09:54 +01:00

5.4 KiB
Raw Blame History

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

[!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-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) 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}

[!corollaire] Lemme 4 propriétés trivialles

  • 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 a alors

Exemples