Theorem (Principe d’induction généreuse) Soit a un nombre entier (positif, 0 ou négatif) et P(n) une fonction propositionnelle avec l’univers de discours Z≥a = {n ∈ Z| n ≥ a}. Supposons P(a) soit vrai et supposons aussi pour chaque n ≥ a, que la vérité de P(m) pour chaque a ≤ m ≤ n impliquerait la vérité de P(n + 1). Alors nécessairement P(n) est vrai pour chaque n ∈ Z≥a . Si P(a) est vraie et pour chaque n ≥ a : [P(a) ∧ P(a + 1) ∧ . . . ∧ P(n − 1) ∧ P(n)] implique P(n + 1) : alors P(n) vraie pour chaque n ≥ a. MAT1500 1 of 18 Exemple. Pour chaque nombre naturel n ≥ 12 il existe deux nombres naturels r et t tels que n = 4r + 5t. Brouillon : Essayons 12 = 4 · 3 + 5 · 0, 13 = 4 · 2 + 5 · 1, 14 = 4 · 1 + 5 · 2, 15 = 4 · 0 + 5 · 3. Et puis 16 = 12 + 4 = 4 · (3 + 1) + 5 · 0, 17 = 13 + 4 = 13 = 4 · (2 + 1) + 5 · 1, 18 = 14 + 4 = 4 · (1 + 1) + 5 · 2... Idée ! Je vais soustraire 4 et utiliser induction généreuse. Donc je veux que ça fonctionne déjà pour (n + 1) − 4 ; alors que 12 ≤ (n + 1) − 4 ou n ≥ 15. Mais ça me force de montrer les cas 12, 13, 14, 15 avant par une autre façon (déjà fait heureusement). Je suis prêt pour la preuve ! MAT1500 2 of 18 Démonstration. Posons P(n) :=" il existe deux nombres naturels r et s tels que n = 4r + 5t." Début : On a P(12), P(13), P(14) et P(15) sont vraies : 12 = 4 · 3 + 5 · 0, 13 = 4 · 2 + 5 · 1, 14 = 4 · 1 + 5 · 2, 15 = 4 · 0 + 5 · 3. Étape d’induction (généreuse) : Supposons n ≥ 15 et P(m) vraies pour tout 12 ≤ m ≤ n. On a 12 ≤ n − 3 ≤ n donc P(n − 3) est vraie par l’hypothèse généreuse, c.-à-d., il existe deux nombres naturels r 0 et s 0 tels que n − 3 = 4r 0 + 5t 0 . Alors n + 1 = 4(r 0 + 1) + 5t 0 . Donc P(n + 1) est aussi vraie. Conclusion : Par induction généreuse P(n) est vraie pour chaque entier n ≥ 12. MAT1500 3 of 18 On peut aussi utiliser l’induction pour donner des définitions. Posons F (0) := 0, F (1) := 1. Nous allons définir une unique fonction F : N → N telle que pour n ≥ 2 on a F (n) = F (n − 1) + F (n − 2). F (n) est le n-ième nombre de Fibonacci. Construction : Début : Définissons F (0) := 0, F (1) := 1. Étape d’induction : Supposons n ≥ 1 et F (m) est définie pour 0 ≤ m ≤ n. Alors on définit F (n + 1) = F (n) + F (n − 1). Conclusion : Ainsi F (n) est définie pour chaque n ∈ N. F (2) = 1, F (3) = 2, F (4) = 3, F (5) = 5, F (6) = 8, F (7) = 13, F (8) = 21, F (9) = 34, . . . MAT1500 4 of 18 Unicité : Supposons G : N → N est une autre fonction aussi avec G(0) = 0, G(1) = 1 et G(n) = G(n − 1) + G(n − 2). Alors F = G. Preuve ? Par induction ! MAT1500 5 of 18 Preuve par induction généreuse. Posons P(n) := ”F (n) = G(n)”. Montrons ∀n ∈ N P(n). Début : P(0) et P(1) sont vraie. Étape d’induction : Supposons n ≥ 1 et P(m) vraies pour 0 ≤ m ≤ n. En particulier P(n) et P(n − 1) sont vraies ; c.-à-d., F (n) = G(n) et F (n − 1) = G(n − 1). Il suit que F (n + 1) = F (n) + F (n − 1) = G(n) + G(n − 1) = G(n + 1) et donc P(n + 1) vraie. Conclusion : Par induction généreuse : P(n) vraie pour chaque n ∈ N, c.-à-d., F (n) = G(n) pour chaque n ∈ N. D’où F = G comme fonctions. MAT1500 6 of 18 Pour les nombres de Fibonacci : Montrer F (n) < 2n pour chaque n ∈ N. Preuve par induction de P(n) := ”F (n) < 2n ” vraie pour chaque n ∈ N. Début (n = 0 et n = 1) : F (0) = 0 et en effet 0 < 20 = 1 et P(0) est vraie. Et F (1) = 1 et en effet 1 < 21 = 2 et P(1) est vraie. Étape d’induction (généreuse) : Soit n ≥ 1 et P(m) vraie pour chaque 0 ≤ m ≤ n. En particulier F (n) < 2n et F (n − 1) < 2n−1 . Donc F (n + 1) = F (n) + F (n − 1) < 2n + 2n−1 < 2n + 2n = 21 · 2n = 2n+1 . Alors en effet P(n + 1) est impliqué par l’hypothèse d’induction. Conclusion : Par le principe d’induction : P(n) est vraie pour chaque n ∈ N. MAT1500 7 of 18 Nous voulons montrer : pour chaque nombre naturel n, si U est un ensemble fini avec n éléments alors |P(U)| = 2n . En utilisant induction sur n ? Brouillon : Mais comment ? Il faut être capable de reduire la calculation de |P(U)| à une calculation d’un |P(V )| où |V | < |U|. Un candidat pour V ? On pourrait enlever un élément de U, disons x ∈ U. En effet V := U − {x } a seulement n − 1 éléments. Et 2n+1 = 2 · 2n . Donc il faut montrer que P(U) = 2P(V ) et utiliser induction. Possible ? Oui, mais ça prendra une préparation considérable ! MAT1500 8 of 18 Soit U un ensemble non-vide et fixons un élément x ∈ U. Divisons P(U), la collection des sous-ensembles de U, dans deux classes (sous-ensembles disjoints). Rappel A := U\A, le complément de A ⊆ U. x ∈ A si et seulement si x 6∈ A. Définissons C1 := {A ∈ P(U)| x ∈ A} et C2 := {A ∈ P(U)| x 6∈ A} et fonctions f1 : C1 → C2 par f1 (A) = A et f2 : C2 → C1 par f2 (A) = A. Lemme Les fonctions f2 et f1 sont bijectives. Corollaire Si U est un ensemble fini, alors |C1 | = |C2 | et |P(U)| = 2|C1 |. MAT1500 9 of 18 Démonstration. (lemme) Par un résultat montré en classe il suffit de montrer que f1 ◦ f2 = 1C2 et f2 ◦ f1 = 1C1 . Si A ∈ C2 , alors x 6∈ A et x ∈ A, donc A ∈ C1 , et f2 est une fonction. Puis (f1 ◦ f2 )(A) = f1 (A) = A = A = 1C2 (A). L’autre identité (f2 ◦ f1 ) = 1C1 est montrée de la même façon. (cor.) On a C1 ∪ C2 = P(U) et C1 ∩ C2 = ∅. Alors |P(U)| = |C1 | + |C2 | − |C1 ∩ C2 | = |C1 | + |C2 |. f2 : C2 → C1 est une fonction bijective, donc si U est fini, alors |C2 | = |C1 | comme déjà montré. MAT1500 10 of 18 Lemme La fonction f3 : P(U\{x }) → C2 définie par f3 (A) := A est bijective. Corollaire Si U est un ensemble fini, alors |P(U\{x })| = |C2 |. Démonstration. Si A ∈ P(U\{x }) alors c’est un sous-ensemble de U qui ne contient pas x , donc c’est un élément de C2 . Et vice versa. Etc. MAT1500 11 of 18 Supposons U un ensemble fini et x ∈ U. Conclusion des deux corollaires : |P(U)| = 2 · |P(U\{x })|. Ce résultat sera utilisé dans la preuve du théorème : Théorème Soit U un ensemble de n éléments. Alors |P(U)| = 2n . MAT1500 12 of 18 Démonstration. Soit P(n) :="Pour chaque ensemble fini U de n éléments, l’ensemble P(U) a 2n éléments". Montrons P(n) par induction. Début (n = 0). U = ∅ est le seule ensemble avec 0 éléments et P(U) = {∅} a 20 = 1 élément. Donc en effet P(0) est vraie. Étape d’induction : Soit n ∈ N et supposons P(n) vraie. Soit U un ensemble avec n + 1 éléments. Choisissons un élément x ∈ U, alors U\{x } a n éléments. Par l’hypothèse d’induction |P(U\{x })| = 2n . Par le résultat avant : |P(U)| = 2|P(U\{x })|. Donc |P(U)| = 2 · 2n = 2n+1 et P(n) implique P(n + 1). Par induction le théorème est vrai. MAT1500 13 of 18 Relations d’équivalence Les humains aiment faire des classifications. Les nombres entiers sont de deux sortes : les nombres pairs et les nombres impairs. Pour les nombres réels on a les classes des nombres positifs, négatifs et 0. Les animaux domestiques sont classifiés dans plusieurs classes : les chiens, les chats, les chevaux, les vaches, ... Les symboles sont divisés dans les classes a, b, c, . . . , z, 1, 2, . . . , +, ∗, :, .... Les A, a , a sont dans la même classe "a" etcetera. Idéalement, chaque objet considéré est placé dans une classe, et idéalement dans une seule classe. Nous avons besoin de modéliser cet idée en termes des ensembles. MAT1500 14 of 18 Soit U un ensemble. Nous voulons diviser les éléments dans plusieurs classes (sous-ensembles), selon une certain classification. Idéalement on ne veut pas permettre un élément dans deux classes différentes. Il y a plusieurs façons de le faire, mais ils sont tous équivalent. Soit à partir d’une fonction propositionnelle, soit à partir d’une partition de l’ensemble. MAT1500 15 of 18 Exemple. Soit |E | = n < ∞. Considérons U := P(E ) l’ensemble des sous-ensembles de E . Soient A1 et A2 deux éléments de P(E ), c.-à-d., deux sous-ensembles de E . Nous disons que A1 et A2 sont dans la même classe, A1 ∼ A2 , si |A1 | = |A2 |, i.e. si A1 et A2 ont la même taille. On a trivialement • A1 ∼ A1 , • si A1 ∼ A2 alors A2 ∼ A1 , • si A1 ∼ A2 et A2 ∼ A3 alors A1 ∼ A3 . Une classe d’équivalence est la réunion de tous les élément de P(E ) de même taille. E i ! := {A ⊆ E | |A| = i} ⊆ P(E ), l’ensemble de tous les sous-ensembles de E avec exactement i éléments. MAT1500 16 of 18 La collection des classes : U/ ∼= { E0 , E1 , E2 , . . . , E n } ⊆ P(U) = P(P(E )) Chaque élément de U = P(E ) (=chaque sous-ensemble de E ) est dans une unique classe d’équivalence. Et donc P(E ) = n [ i=0 est une partition de P(E ) : c.-à-d. chaque Ei non-vide, et En conséquence : E i et n X E i ! E j disjoints si i 6= j. ! E |P(E )| = | | i i=0 MAT1500 17 of 18 Si E = {a, b, c}. MAT1500 E 0 ! E 1 ! E 2 ! E 3 ! = {∅} = {{a}, {b}, {c}} = {{b, c}, {a, c}, {a, b}} = {E } 18 of 18