Logique O Gense 25 novembre 2014 Table des matières 1 Formules logiques 2 2 Règles de calcul 3 3 Expressions formelles 4 1 1 Formules logiques Formule logique Dénition 1. On considère Les constantes booléennes vrai et f aux.( B = {vrai, f aux}). Les connecteurs logiques ∧ ,∨ , ⇒, . . . . Un ensemble ni de symboles appelés variables propositionnelles. Les formules logiques se dénissent récursivement par Les constantes booléennes sont des formules logiques. Les variables propositionnelles sont des formules logiques. Si A est une formule logique alors ¬(A) est une formule logique. Si A et B sont deux formules logiques et ⊕ est un connecteur logique alors A ⊕ B est une formule logique. Instanciation Dénition 2. Étant donné une formule logique F à n variables booléennes v0 , . . . , vn−1 Choisir une instanciation µ pour F , c'est choisir un n-uplet µ = (b0 , . . . , bn−1 ) ∈ Bn étant donnée une instanciation µ = (b0 , . . . , bn−1 ) évaluer la formule F pour l'instanciation µ , c'est substituer à chaque vi la valeur bi et à faire le calcul suivant les règles classiques de la logique. ( On peut noter le résultat f (µ)) Dénition 3. Une formule logique F à n variables booléennes dénit ainsi une fonction de Bn dans B Vocabulaire On remarque que deux formules diérentes peuvent dénir la même fonction booléenne. Deux formules dénissant la même fonction booléenne sont dites équivalentes. Une formule booléenne équivalente à vrai est une tautologie. Une formule booléenne équivalente à f aux est une contradiction. Une formule qui n'est pas une contradiction est dite satisable. satisfaire une formule logique F , c'est déterminer une instanciation µ telle que F (µ) = vrai. Dénition 4. Tables de vérité Construire la table de vérité d'une formule F à n variables consiste à calculer F (µ) pour tout µ ∈ Bn Remarques Quand on écrit la table de vérité d'une expression booléenne, on organise les valeurs des variables booléennes de façon systématique. Dans le cas général, pour tester la satisablité d'une expression booléenne, on ne connaît pas de meilleur méthode que de construire la table de vérité. ( Pour certaines familles de formules logiques il peut exister des méthodes plus rapides , c'est le cas des formules de Horn) Travail en Caml 1. Dénir un type Caml pour représenter les formules booléenne. ( Ce sera une représentation de type arbre) 2. Écrire une fonction evaluer qui prend en argument une instanciation µ ( type à préciser ) et une formule booléenne F et calcule F (µ) 3. Écrire une fonction satisfiable qui teste la satisabilité d'une formule, vous pourrez vous inspirer de l'écriture binaire des entiers pour décrire Bn 2 2 Règles de calcul Règles de calcul Les principale règles de calculs sur les formules booléennes sont Propriété 1 (La double négation). Si A est une formule logique alors ¬(¬(A)) ≡ A Propriété 2 (Les lois de De Morgan). Si A et B sont deux formules logiques alors ¬(A ∧ B) = ¬(A) ∨ ¬(B). ¬(A¬B) = ¬(A) ∧ ¬(B). Propriété 3 (Tiers exclu). Si A est une formule logique alors A ∨ ¬(A) ≡ vrai A ∧ ¬(A) ≡ f aux Propriété 4. Distributivités ∧ se distribue sur le ∨. ∨ se distribue sur le ∧. Littéral, Clause, etc On appelle littéral une variable booléenne ou la négation d'une variable booléenne. On appelle clause une disjonction ( un ou) de littéraux. On dit qu'une formule est sous forme conjonctive si c'est une conjonction de clauses. Dénition 5. La forme conjonctive est la forme naturelle pour écrire une théorie ( Ensemble d'implications vraies). On appelle clause duale toute conjonction de littéraux. Une formule est dite sous disjonctive si c'est une disjonction de clauses duales Dénition 6. La forme disjonctive donne naturellement la table de vérité ( et donc la satisabilité ) d'une formule logique. Si on note + le ou , multiplicativement le et et A la négation de A alors en calculant de façon naturelle on peut mettre à la main une formule logique sous forme disjonctive et dire si elle est satisable. Par exemple dans les exercices de logique de CCP 3 Expressions formelles Expressions formelles Une expression formelle est une formule logique ou arithmétique ou autre, Attention : en informatique on fait la diérence entre l'expression abstraite ( en général représentée par un arbre ) et la valeur d'une formule. Par exemple les expressions 2 + 3 et 5 ne sont pas identique mais on la même valeur. Les machines formelles manipulent les expressions abstraites. Travaux possibles Écrire un dérivateur formel Simplier l'expression obtenue par votre dérivateur. 3