Files
cours/fonction récursive primitive.md

71 lines
5.0 KiB
Markdown

---
up:
tags:
- s/maths
- s/informatique
aliases:
- fonctions récursives primitives
---
> [!definition] [[fonction récursive primitive]]
> On définit par [[induction]] l'ensemble des fonctions récursives primitives comme suit :
> > [!definition] ensembles $\mathscr{F}_{p}$ et $\mathscr{F}$
> > Soit $p \in \mathbb{N}$ on note $\mathscr{F}_{p}$ l'ensemble des applications de $\mathbb{N}^{p} \to \mathbb{N}$ (par convention, $\mathscr{F}_{0}$ ne contient que la suite vide)
> > On note $\displaystyle\mathscr{F} = \bigcup _{p \in \mathbb{N}} \mathscr{F}_{p}$
>
> > [!definition] Fonctions projection
> > On note $P_{p}^{i}$ (pour $1 \leq i \leq p$) la fonction de $\mathscr{F}_{p}$ telle que pour tout $x_1, \dots, x_{p} \in \mathbb{N}$ on a :
> > $P_{p}^{i}(x_1, x_2, \dots, x_{p}) = x_{i}$
>
> > [!definition] fonction successeur
> > On note $S$ la fonction de $\mathscr{F}_{1}$ qui à chaque entier $n$ fait correspondre $n+1$ :
> > $S = \lambda x. x+1$
>
> > [!definition] Définition par récurrence
> > Soient $f \in \mathscr{F}_{p}$ et $g \in \mathscr{F}_{p+2}$, il existe une unique fonction de $\mathscr{F}_{p+1}$ qui, pour tout $x_1, \dots, x_{p}, y \in \mathbb{N}$ respecte :
> > - $f(x_1, x_2, \dots, x_{p}, 0) = g(x_1, x_2, \dots, x_{p})$
> > - $f(x_1, x_2, \dots, x_{p}, y+1) = h(x_1, x_2, \dots, x_{p}, y, f(x_1, x_2, \dots, x_{p}, y))$
>
> L'ensemble des **fonctions récursives primitives** est alors le plus petit des sous ensembles $E$ de $\mathscr{F}$ tel que :
> - $E$ contient toutes les fonctions constantes de $\mathscr{F}$
> - $E$ contient toutes les projections $P_{p}^{i}$ pour tous les entiers $p$ et $i$ avec $1 \leq i \leq p$
> - $E$ contient la fonction successeur $S$
> - $E$ est clos par composition, c'est-à-dire que si $n,p \in \mathbb{N}$ , si $f_1, f_2, \dots, f_{n}$ sont des fonctions de $\mathscr{F}_{p}$ qui sont aussi dans $E$, et si $g \in \mathscr{F}_{n}$ est aussi dans $E$, alors la fonction composée $g(f_1, f_2, \dots, f_{n})$ appartient à E
> - $E$ est clos par récurrence, cc'est-à-dire que si $p \in N$, si $g \in \mathscr{F}_{p}$ et $h \in \mathscr{F}_{p+2}$ sont dans $E$, alors la fonction $f \in \mathscr{F}_{p+1}$ définie par récurrence à partir de $g$ et $h$ est aussi dans $E$ : $f : \begin{cases} f(x_1,x_2, \dots, x_{p}, 0) = g(x_1, x_2, \dots, x_{p})\\ f(x_1, x_2, \dots, x_{p}, y+1) = h(x_1, x_2, \dots, x_{p}, y, f(x_1, x_2, \dots, x_{p}, y)) \end{cases}$
>
^definition
> [!definition] Définition courte
> Soit $\mathscr{F}$ l'ensemble des fonctions à valeurs entières et à paramètres entiers.
> L'ensemble des **fonctions récursives primitives** est alors le plus petit des sous ensembles $E$ de $\mathscr{F}$ tel que :
> - $E$ contient toutes les fonctions **constantes** de $\mathscr{F}$
> - $E$ contient toutes les fonctions de **projection**
> - $E$ contient la fonction **successeur**
> - $E$ est **clos par composition** : $f_1, f_2, \dots, f_{p}, g \in E \implies g(f_1, \dots, f_{p}) \in E$
> - $E$ est **clos par récurrence** : si $g\in \mathscr{F}_{p}$ et $h \in \mathscr{F}_{p+2}$ sont dans $E$ alors $f: \begin{cases} f(\overline{x}, 0) = g(\overline{x})\\ f(\overline{x}, y+1) = h(\overline{x}, y, f(\overline{x}, y)) \end{cases}$ est dans $E$
>
# Remarques
> [!info] Définition par le bas
> On peut également produire une définition "par le bas", en construisant d'abord l'ensemble $R_0$ contenant les fonctions constantes, projections et successeur, puis en posant pour tout $n \in \mathbb{N}$ :
> $R_0 = \{ \gamma \mid p \in \mathbb{N} \text{ et } \gamma \text{ est une fonction constante de } \mathbb{N}^{p} \to \mathbb{N} \} \cup \{ P_{p}^{i} \mid 1 \leq i \leq p \} \cup \{ S \}$
> $\begin{align} R_{n+1} = R_{n} &\cup \{ h \mid h \text{ est obtenue par récurrence à partir de deux fonctions de } R_{n} \}\\ &\cup \{ h \mid h \text{ est obtenue par composition de deux fonctions de } R_{n} \} \end{align}$
> [!info] Montrer une propriété des fonctions récursives primitives
> - on peut montrer que cette propriété $\mathscr{P}$ est vraie sur les fonctions constantes, projections et successeur, puis montrer que $\mathscr{P}$ est stable par composition et récursion
> - on peut montrer que $\mathscr{P}$ est vraie sur $R_0$ puis que si $\mathscr{P}$ est vraie partout sur $R_{n}$ pour un $n \in \mathbb{N}$, alors elle est aussi vraie partout sur $R_{n+1}$
# Propriétés
> [!proposition]+ les fonctions récursives primitives possèdent des algorithmes les calculant
> Il existe un algorithme pour calculer chacune des fonctions récursives primitives.
> > [!démonstration]- Démonstration
> > Cela est évident :
> > - les fonctions constantes, projections et la fonction suivant possèdent toutes des algorithmes pour les calculer
> > - si $f_1, f_2, \dots, f_{n}$ et $g$ sont des fonctions récursives primitives pour lesquelles il existe un algorithme de calcul, alors il existe un algorithme pour calculer $g(f_1, f_2, \dots, f_{n})$, qui consiste à donner en entrée de l'algorithme de calcul de $g$ les résultats des algorithmes de calcul de $f_1, f_2, \dots, f_{n}$
> > -
>
# Exemples