I. Induction
Transcription
I. Induction
I. Induction II. Calcul propositionnel : syntaxe et sémantique Induction Bibliographie Induction I A. Arnold et I. Guessarian, Mathématiques pour l’informatique Logique I R. Lassaigne et M. de Rougemont, Logique et fondements de l’informatique I R. Cori et D. Lascar, Logique mathématique I J. Stern, Fondements mathématiques de l’informatique I M. Huth et M. Ryan, Logic in Computer Science : modelling and reasoning about systems Induction et Calcul propositionnel 2 / 34 Induction Induction L’induction Un outil formel élégant très utile en informatique I elle permet de faire des définitions ”récursives” I I I d’ensembles de fonctions elle propose une technique de preuve souvent plus élégante que la récursion sur les entiers I mais la récursion sur les entiers est toujours possible Induction et Calcul propositionnel 4 / 34 Induction Définition inductives La définition inductive d’une partie X d’un ensemble consiste I en la donnée explicite de certains éléments de X (bases), I en la donnée de moyens de construire de nouveaux éléments de X à partir d’éléments déjà connus (étapes inductives). Induction et Calcul propositionnel 5 / 34 Induction Définition inductives Définition Soit E un ensemble. Une définition inductive d’une partie X de E consiste en la donnée I d’un sous ensemble B de E, I d’un ensemble K de fonctions (partielles) Φ : Ea(Φ) → E, où a(Φ) ∈ N est l’arité de Φ. X est défini comme étant le plus petit ensemble vérifiant les assertions (B) et (I) suivantes (B) B ⊆ X (I) ∀Φ ∈ K, ∀x1 , . . . , xa(Φ) ∈ X, Φ(x1 , . . . , xa(Φ) ) ∈ X. Induction et Calcul propositionnel 6 / 34 Induction Définition inductives L’ensemble ainsi défini est donc X= \ Y Y∈F où F = {Y ⊆ E | B ⊆ Y et Y vérifie (I)}. I Cela justifie le terme ”le plus petit ensemble”. Notation : nous pourrons noter une définition inductive sous la forme (B) x ∈ X (∀x ∈ B) (I) x1 , . . . , xa(Φ) ∈ X =⇒ Φ(x1 , . . . , xa(Φ) ) ∈ X (∀Φ ∈ K). Induction et Calcul propositionnel 7 / 34 Induction Exemples L’ensemble P ⊆ N des entiers pairs (B) 0 ∈ P (I) n ∈ P =⇒ n + 2 ∈ P L’ensemble AB ⊆ (A ∪ {∅, ( , ) , ; })∗ des arbres binaires sur un alphabet A (B) ∅ ∈ AB (I) ∀a ∈ A, g, d ∈ AB =⇒ (a; g; d) ∈ AB Induction et Calcul propositionnel 8 / 34 Induction Définition explicite Théorème Si X est défini inductivement par les conditions (B) et (I), tout élément de X peut s’obtenir à partir de la base en appliquant un nombre fini d’étapes inductives. [ X= Xn n∈N où X0 = B Xn+1 = Xn ∪ {Φ(x1 , . . . , xa(Φ) ) | x1 , . . . , xa(Φ) ∈ Xn et Φ ∈ K} Remarque : tout élément de X peut être représenté graphiquement par une structure arborescente. Induction et Calcul propositionnel 9 / 34 Induction Preuve par induction Théorème Soit X un ensemble défini inductivement par les conditions (B) et (I), et soit P(x) un prédicat exprimant une propriété de l’élément x de X. Si les conditions suivantes sont vérifiées : I P(x) est vraie pour chaque x ∈ B, I pour tout x1 , . . . , xa(Φ) ∈ X, si P(x1 ), . . . , P(xa(Φ) ) sont vraies alors P(Φ(x1 , . . . , xa(Φ) )) est vraie, pour tout Φ ∈ K, alors P(x) est vraie pour tout x ∈ X. Induction et Calcul propositionnel 10 / 34 Induction Exercice On définit sur les arbres binaires AB I le nombre de feuille f (x) d’un arbre x comme le nombre d’occurrence du symbole ∅, I le nombre de nœud n(x) d’un arbre x comme le nombre d’occurrence des symboles de A. Montrer que pour tout x ∈ AB n(x) 6 2f (x) − 1 Induction et Calcul propositionnel 11 / 34 Induction Définition non-ambiguë Définition La définition inductive d’un ensemble X par les conditions (B) et (I) est dite non-ambiguë si I pour tout x1 , . . . , xa(Φ) ∈ X et Φ ∈ K, Φ(x1 , . . . , xa(Φ) ) < B, 0 I et pour tout x1 , . . . , xa(Φ) , x 0 , . . . , x 0 1 a(Φ 0 ) ∈ X et Φ, Φ ∈ K, 0 0 Φ(x1 , . . . , xa(Φ) ) = Φ 0 (x10 , . . . , xa(Φ 0 ) ) implique Φ = Φ et 0 x1 = x10 , . . . , xa(Φ) = xa(Φ) . Exercice : donner des exemples de I définition non-ambiguë I définition ambiguë Induction et Calcul propositionnel 12 / 34 Induction Fonctions définies inductivement Théorème Soit X ⊆ E un ensemble défini inductivement par les conditions (B) et (I) tel que X est non-ambiguë, soit F un ensemble quelconque, soit fB une fonction de B → F et une famille de fonctions fΦ ∈ E2a(Φ) → F, pour tout Φ ∈ K. Il existe une unique fonction f ∈ X → F telle que I pour tout x ∈ B, f (x) = fB (x) I pour tout x1 , . . . , xa(Φ) ∈ X et Φ ∈ K, f (Φ(x1 , . . . , xa(Φ) )) = fΦ (x1 , . . . , xa(Φ) , f (x1 ), . . . , f (xa(Φ) )) Induction et Calcul propositionnel 13 / 34 Calcul propositionnel Calcul propositionnel Logique : motivations Mathématiques I comprendre la nature du raisonnement I formaliser le raisonnement : en faire une théorie mathématique, s’assurer la cohérence. I mécaniser le raisonnement Informatique : faire raisonner les machines I intelligence artificielle I vérification des programmes Induction et Calcul propositionnel 15 / 34 Calcul propositionnel Le calcul propositionnel Objectifs I Formaliser ”et”, ”ou”, ”implique”, ”non”,.. I Noyau minimal commun à tous les systèmes logiques Les ingrédients d’un système logique (ou système formel) I Qu’est-ce qu’une formule ? (syntaxe) I Quel sens donner à une formule ? (sémantique) I Comment démontrer qu’une formule est vraie ? (systèmes de déduction) Attention à ne pas confondre les formules (syntaxe) et leurs interprétations (sémantique) ! Induction et Calcul propositionnel 16 / 34 Calcul propositionnel Syntaxe Syntaxe V un ensemble dénombrable de symboles, appelés variables propositionnelles. C ensemble fini de connecteurs : C = {∧, ∨, ¬, ⇒, ⇔} Définition (Formules propositionnelles) L’ensemble F des formules propositionnelles est un langage sur V ∪ C ∪ {(, )} défini inductivement par : I V ⊆ F I si F ∈ F, alors ¬F ∈ F I si F, G ∈ F, alors (F ∧ G), (F ∨ G), (F ⇒ G), (F ⇔ G) ∈ F Induction et Calcul propositionnel 17 / 34 Calcul propositionnel Syntaxe Définition explicite On pose I F0 = V, I Fn+1 = Fn ∪ {¬F | F ∈ Fn } ∪ {(F α G) | F, G ∈ Fn , α ∈ C} Lemme F= [ Fn n∈N Induction et Calcul propositionnel 18 / 34 Calcul propositionnel Syntaxe Principe d’induction sur les formules Comment prouver une propriété sur les formules ? I par récurrence sur la hauteur I par induction sur les formules Théorème Si une propriété P(F) vérifie I P(F) est vraie pour tout formule F ∈ V, I si P(F) est vraie pour F ∈ F alors P(¬F) est vraie, I et si P(F) et P(G) sont vraies pour F, G ∈ F alors P((F ∧ G)), P((F ∨ G)), P((F ⇒ G)) et P((F ⇔ G)) sont vraies, alors P(F) vraie pour toute formule F. Induction et Calcul propositionnel 19 / 34 Calcul propositionnel Syntaxe Hauteur d’une formule Définition (hauteur) La hauteur d’une formule F ∈ F est le plus petit entier n tel que F ∈ Fn . Exercice : Démontrer que pour tout formule F, hauteur(F) < longueur(F) Induction et Calcul propositionnel 20 / 34 Calcul propositionnel Syntaxe Décomposition unique Théorème (Décomposition unique) Soit F une formule, un et un seul des 3 cas suivants se présente : I F ∈ V I il existe une unique formule G telle que F = ¬G I il existe un unique α ∈ C \ {¬}, et deux uniques formules G et H telles que F = (G α H) (cf Cori&Lascar) Remarque : En d’autres termes, la définition inductive de F est non-ambiguë. Induction et Calcul propositionnel 21 / 34 Calcul propositionnel Syntaxe Substitution Définition (Substitution) La formule F[G/p] (substitution de G à p dans F) est définie par induction sur la formule F : I si F = p, F[G/p] = G I si F = q ∈ V \ {p}, F[G/p] = F I si F = ¬H, F[G/p] = ¬H[G/p] I si F = (F1 α F2 ) avec α ∈ {∧, ∨, ⇒, ⇔}, F[G/p] = (F1 [G/p] α F2 [G/p]) Induction et Calcul propositionnel 22 / 34 Calcul propositionnel Sémantique Valuation Nous interprétons maintenant les formules en termes de valeur de vérité. Définition Une distribution de valeurs de vérité (valuation) est une application ϕ : V → {vrai,faux} (où {0, 1}, {T, F}). Induction et Calcul propositionnel 23 / 34 Calcul propositionnel Sémantique Opérations booléennes ~¬ : {0, 1} → {0, 1} x ~¬(x) 0 1 1 0 ~α : {0, 1} × {0, 1} → {0, 1}, ∀α ∈ C \ {¬} x 0 0 1 1 y ~∧(x, y) ~∨(x, y) ~⇒(x, y) ~⇔(x, y) 0 0 0 1 1 1 0 1 1 0 0 0 1 0 0 1 1 1 1 1 Induction et Calcul propositionnel 24 / 34 Calcul propositionnel Sémantique Valeur de vérité Définition La valeur de vérité ϕ(F) d’une formule F, par rapport à une valuation ϕ est définie inductivement par : I ϕ(p) = ϕ(p), p ∈ V I ϕ(¬F) = ~¬(ϕ(F)) I ϕ((FαG)) = ~α(ϕ(F), ϕ(G)), ∀α ∈ C \ {¬} Remarque : ϕ sera éventuellement noté ϕ. Induction et Calcul propositionnel 25 / 34 Calcul propositionnel Sémantique Tautologies, formules équivalentes Définition I I I Une formule F est satisfaite pour une valuation ϕ si ϕ(F) = 1. Une tautologie est une formule satisfaite pour toute valuation. Deux formules F et G sont dites équivalentes si pour toute valuation ϕ, ϕ(F) = ϕ(G) (c’est une relation d’équivalence notée ≡). Exemple : ((p ⇒ (q ⇒ r)) ⇒ ((p ⇒ q) ⇒ (p ⇒ r))) est une tautologie. Induction et Calcul propositionnel 26 / 34 Calcul propositionnel Sémantique Conséquence, satisfiabilité Définition Soit Σ un ensemble de formules, F une formule. I F est conséquence de Σ (noté Σ |= F) si toute valuation qui satisfait toutes les formules de Σ satisfait aussi F. I Σ est satisfiable s’il existe une valuation qui satisfait toutes les formules de Σ. Proposition Σ |= F si et seulement si Σ ∪ {¬F} est non satisfiable. Induction et Calcul propositionnel 27 / 34 Calcul propositionnel Sémantique Substitutions Notation : F[p1 , . . . , pn ] indique qu’une formule F ne comporte pas de variables en dehors de p1 , . . . , pn . Proposition Soit F[p1 , .., pn ] une formule et ϕ une valuation, alors la valeur ϕ(F) ne dépend que de la valeur de ϕ sur p1 , .., pn . Proposition Soient F et G deux formules et ϕ une valuation, alors la valeur de F[G/p] pour ϕ est égale à la valeur de F pour une valuation ϕ 0 telle que ϕ 0 (p) = ϕ(G) et ϕ 0 (q) = ϕ(q) pour tout q ∈ V \ {p}. Induction et Calcul propositionnel 28 / 34 Calcul propositionnel Sémantique Substitutions Corollaire Soit F, F 0 , G, G 0 des formules et p ∈ V : I I I si F est une tautologie alors F[G/p] est une tautologie si F ≡ F 0 alors F[G/p] ≡ F 0 [G/p] si G ≡ G 0 alors F[G/p] ≡ F[G 0 /p] Exemples : I I pour toutes formules F, G, H, ((F ⇒ (G ⇒ H)) ⇒ ((F ⇒ G) ⇒ (F ⇒ H))) est une tautologie. ¬(F ∧ G) ≡ (¬F ∨ ¬G) Induction et Calcul propositionnel 29 / 34 Calcul propositionnel Sémantique Formes normales Théorème On a une bijection entre les applications de {0, 1}n → {0, 1} et l’ensemble des formules sur p1 , .., pn quotienté par ≡. Représentants particuliers : formes normales I Forme normale disjonctive (FND) : F = G1 ∨ .. ∨ Gk et Gi = (Bi,1 ∧ .. ∧ Bi,ni ) avec Bi,j = p ou ¬p (litéral). I Forme normale conjonctive (FNC) : F = G1 ∧ .. ∧ Gk et Gi = (Bi,1 ∨ .. ∨ Bi,ni ) avec Bi,j un litéral. Théorème Tout formule est équivalente à une formule sous FND et une formule sous FNC. Remarque : on s’autorise à supprimer des parenthèses quand cela ne change pas la classe d’équivalence. Induction et Calcul propositionnel 30 / 34 Calcul propositionnel Sémantique Forme normale Comment calculer une forme normale ? I I à partir de la table de vérité par manipulation symbolique Remarque : on peut éviter une explosion de la formule avec la transformation de Tseitin. On n’obtient pas une formule équivalente mais une formule satisfiable ssi la formule d’origine l’est. C’est un pré-traitement très utilisé dans les solveurs SAT. Induction et Calcul propositionnel 31 / 34 Calcul propositionnel Sémantique Systèmes complets de connecteurs Définition Un système complet de connecteurs est un ensemble de connecteurs qui permet d’engendrer toutes les applications de {0, 1}n → {0, 1} Exemple : {¬, ∧, ∨}, {¬, ∨}, {nand}, {nor}. Induction et Calcul propositionnel 32 / 34 Calcul propositionnel Sémantique Théorème de compacité Définition Un ensemble Σ de formules est finiment satisfiable si tout sous-ensemble fini de Σ est satisfiable. Théorème (de compacité) Σ satisfiable si et seulement si Σ finiment satisfiable. Induction et Calcul propositionnel 33 / 34 Calcul propositionnel Sémantique Plan 1 Induction 2 Calcul propositionnel Syntaxe Sémantique Induction et Calcul propositionnel 34 / 34