Récurrence et induction
1. Ensembles définis par induction
Soit
Définition
On peut définir une partie
- un ensemble
d'élements de base appelés axiomes; - un ensemble de règles d'inférence : une règle
est une fonction de construction qui prend en entrée un nombre d'élements de déjà construits et en construit un nouveau. La valeur s'appelle arité de la règle d'inférence.
La partie
Exemples
- Les entiers naturels impairs
peuvent être définis par induction par : , et la règle . - Les arbres binaires stricts sont définis par
et la règle d'inférence d'arité 2 : qui créé un noeud à partir de deux sous-arbres qui seront ses fils. - Les formules propositionnelles : les cas de bases sont les variables propositionnelles et les formules
et . Il y a une règle d'arité : et 4 règles d'arité 2 : , , , .
En informatique, très souvent on ne précise pas l'ensemble
Définition constructive
Lorsqu'un ensemble
Proposition
La partie
La preuve de cette proposition peut s'obtenir par double inclusion. D'une part, on peut montrer par récurrence simple que chaque
2. Preuves par récurrence
Nous faisons ici quelques rappels sur le principe de démonstration par récurrence, très utilisé en informatique.
Une preuve par récurrence consiste à démontrer une propriété pour tout entier
A. Récurrence simple
Preuve par récurrence simple
S'il existe un entier
- Initialisation:
est vraie - Hérédité: Pour tout entier
:
alors par récurrence simple
Point méthode
Pour rédiger une récurrence on écrira systématiquement la propriété à démontrer:
puis on prouve l'initialisation et l'hérédité. Enfin on conclut.
Exercice
Démontrer que pour tout graphe non orienté
Attention
Une erreur de raisonnement fréquente dans ce genre d'exercice est de montrer l'hérédité en partant d'un graphe à
B. Récurrence double
Preuve par récurrence double
S'il existe un entier
- Initialisation:
et sont vraies - Hérédité: Pour tout entier
:
alors par récurrence double
Point méthode
Pour rédiger une récurrence double on écrira systématiquement la propriété à démontrer
puis on précisera très clairement que l'on procède par récurrence double. On montre les deux points de l'initialisation et l'hérédité. Enfin on conclut.
Exercice
On construit la suite
Démontrer que le nombre de noeuds+feuilles de
sont les nombres de Fibonnacci : sont les nombres de Lucas :
C. Récurrence forte
Preuve par récurrence forte
S'il existe un entier
- Initialisation:
est vraie - Hérédité: Pour tout entier
:
alors par récurrence forte
Point méthode
Pour rédiger une récurrence forte on écrira systématiquement la propriété à démontrer
puis on précisera très clairement que l'on procède par récurrence forte. On montre l'initialisation et l'hérédité. Enfin on conclut.
Exercice
Démontrer par récurrence forte que tout arbre binaire à
3. Preuves par induction
On dit aussi parfois preuve par induction structurelle.
Le schéma de preuve par induction ressemble à une récurrence, la différence est que la propriété
Preuve par induction
- Initialisation: La propriété est vraie pour tous les éléments de base (axiomes) :
est vraie - Hérédité: Pour chaque règle d'inférence
d'arité , et pour tous éléments , on a :
alors par induction structurelle
La formulation générale de ce princpe de preuve peut paraître intimidante, mais savoir l'appliquer en pratique est essentiel.
Exercice
Démontrer par induction structurelle que tout arbre binaire à
Exercice
Un arbre binaire de recherche est soit une
Démontrer que la liste des étiquettes d'un arbre binaire de recherche, énumérées dans l'ordre du parcours en profondeur infixe est une liste triée par ordre croissant.
Point méthode
Pour rédiger une preuve par induction on écrira systématiquement la propriété à démontrer
dépendant d'éléments
Exercices
Un exemple très facile
En utilisant la construction inductive des entiers impairs
Hauteur minimale
Démontrer qu'un arbre binaire possédant
Arbres 2-3
Un arbre 2-3 de hauteur 0 est une feuille. Un arbre 2-3 de hauteur
- Démontrer que le nombre de feuilles
d'un arbre 2-3 vérifie . - Pour quelles familles d'arbres ces bornes sont-elles atteintes ?
Crayons de couleur
Montrons par récurrence simple que dans toute boîte de
- Initialisation :Le résultat est vrai pour une boîte ne contenant qu'un seul crayon
- Hérédité : Considérons une boîte
contenant crayons de couleurs et enlevons lui le premier crayon. Par hypothèse de récurrence les crayons restants sont de la même couleur. Si on enlève maintenant le dernier crayon de la boîte initiale, on en déduit encore par hypothèse de récurrence que les crayons restants , sont de la même couleur. Conclusion : tous les crayons sont de la même couleur.
Par récurrence on a démontré que tous les crayons d'une boîte quelconque de
Ce résultat est évidemment absurde : trouver l'erreur de raisonnement qui a été faite.
Listes infinies (Mines 2024)
On définit par induction l'ensemble
- une liste est soit la liste vide notée
[]
- soit construite à partir d'un élement
et d'une liste , on la note alors
Questions
- Définir un type en langage OCaml pour représenter ces listes.
- Définir un type en langage C pour représenter ces listes (sur les entiers).
- On définit intuitivement l'ensemble
des listes finies ou infinies de valeurs. Est-ce que est stable par la règle d'induction. A-t-on ? - Démontrer que toute liste de
possède un nombre fini d'éléments. - Le type proposé en langage C permet-il de construire une liste infinie ?
Arbres ET/OU
Un arbre binaire ET/OU est un arbre binaire dans lequel :
- une feuille est soit la variable
, soit une constante représentant le faux, soit une constante représentant le vrai. - il existe deux types de noeuds, les noeuds
représantant la conjonction logique et les noeuds représentant la disjonction logique.
À tout arbre binaire ET/OU
Démontrer qu'il est impossible de produire la fonction booléenne de négation :
On considère un ensemble dénombrable de variables propositionnelles
Une théorie
Une théorie est dite satisfiable s'il existe une valuation qui rend toutes ses formules vraies.
Une théorie est dite finiment satisfiable si toute sous-théorie
Questions
- Donner un exemple de théorie à 3 formules satisfiable.
- Donner un exemple de théorie à 3 formules non satisfiable
- Donner un exemple de théorie infinie satisfiable.
- Démontrer que si une théorie
est satisfiable alors toute sous-théorie finie est satisfiable. - Démontrer que si toute les sous-théories finies
d'une théorie sont satisfiables alors est satifiable. (Indication : construire par récurrence une valuation qui convient, on suppose que les valeurs de vérité de sont fixées correctement, montrer qu'il est possible de fixer la valeur de vérité de de telle manière à ce que pour toute sous-théorie finie il existe une valuation qui la satisfait et qui a précisément précisément ces valeurs choisies sur )
On obtient le théorème de compacité qui énonce qu'une théorie est satisfiable si et seulement si toutes ses sous-théories finies le sont. Une autre façon de le dire est qu'une théorie n'est pas satisifiable si et seulement si elle admet une sous-théorie finie qui ne l'est pas. Autrement dit la non satisfiabilité d'une théorie infinie n'est jamais due à son caractère infini : elle provient d'un sous-ensemble fini de formules qui n'est pas satisfiable.