Chapitre 3 : logique Lycée Faidherbe 2014-2015 Table des matières 1 La logique des propositions 1.1 La syntaxe . . . . . . . . . . . . 1.2 Représentation arborescente 1.3 La sémantique . . . . . . . . . 1.4 Tables de vérité . . . . . . . . . . . . 1 1 2 3 3 2 Satisfiabilité 2.1 Tautologie et mathématiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Formule satisfiable et contradiction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Formes normales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4 5 5 3 Exercices 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Résumé La logique est un outil fondamental qui étudie et formalise le raisonnement mathématique. Elle s’est par la suite imposée comme une partie essentielle de l’informatique. Nous verrons que la logique fait apparaître nettement la différence entre la syntaxe, qui définit les règles formelles de manipulation des symboles utilisés, et la sémantique, qui étudie la signification ou l’interprétation des symboles utilisés. 1 1.1 La logique des propositions La syntaxe Les propositions La logique des propositions fait appel à la notion de proposition. Définition. Une proposition est un énoncé de quelque nature que ce soit et qui peut être qualifié de vrai ou faux. Option informatique deuxième année Lycée Faidherbe Ainsi 1 + 1 = 2 est une proposition vraie alors que 0 > 1 est une proposition fausse. Certains énoncés ne sont pas des propositions. Ainsi l’énoncé « cet énoncé est faux » n’est pas une proposition. En effet, s’il est vrai alors cela signifie qu’il est faux et s’il est faux cela signifie qu’il est vrai. Il ne peut donc être qualifié de vrai ou faux. Il y a d’autres exemples d’énoncés qui ne sont pas des propositions, les phrases impératives ou interrogatives par exemple. Les formules logiques La logique des propositions ne s’intéresse qu’aux relations logiques entre les propositions. On représente les propositions par des variables appelées variables propositionnelles. En utilisant les variables et des connecteurs, on peut définir les formules par induction. Définition. On note A un ensemble dénombrable de variables propositionnelles représentées par les lettres x, y, z, . . .L’ensemble des formules de la logique des propositions est noté L0 . Il est défini par : • toute variable propositionnelle est une formule ; • si F est une formule, alors ¬F est une formule ; • si F et G sont de formules alors : — F ∧ G est une formule, — F ∨ G est une formule, Toute formule est construite à partir de ces règles appliquées un nombre fini de fois. Conventions syntaxiques Dès qu’il y a plus de deux connecteurs logiques dans une formule, la présence de parenthèses est nécessaire. En effet, la formule x ∨ y ∧ z peut être lue (x ∨ y) ∧ z ou x ∨ (y ∧ z) ce qui ne signifie pas la même chose. Par contre une écriture complètement parenthésée peut très rapidement se révéler lourde 1 . On décide alors d’un ordre de priorité sur les différents connecteurs : • ¬ est prioritaire devant • ∧, qui est lui-même prioritaire devant • ∨. Ainsi la formule x ∨ y ∧ z sera lue (x ∨ y) ∧ z et ¬x ∧ y sera lue (¬x) ∧ y. Les parenthèses dans la formule ¬(x ∨y) ne peuvent pas être enlevées sous peine de changer la nature de la formule. Les opérateurs ∧ et ∨ sont associatifs, les parenthèses n’ont pas d’importance : (x ∧ y) ∧ z = x ∧ y ∧ z. Ces règles permettent de supprimer une ou plusieurs paires de parenthèses lorsqu’il n’y a aucune ambiguïté. Ainsi ((¬x) ∨ (¬(x ∨ y)) ∨ z) peut s’écrire ¬x ∨ ¬(x ∨ y) ∨ z. 1.2 Représentation arborescente Il existe une autre manière de représenter les formules qui utilise un type souvent utilisé en informatique : les arbres. Si c est un connecteur binaire et F et G des formules logiques, alors la formule F c G et la formule ¬F sont représentées par : ¬ c F G F Ainsi la formule (¬x ∨ y) ∧ (x ∨ ¬y) est représentée par : 1. essayer de vous mettre au langage de programmation Lisp, rien que pour voir. 2 Chapitre 3 : logique Lycée Faidherbe Option informatique deuxième année ∧ ∨ ¬ ∨ y x y x 1.3 ¬ La sémantique Évaluation des formules logiques L’évaluation d’une formule logique permet d’associer une valeur de vérité vrai ou faux à une formule. On commence par associer une valeur de vérité à chacune des variables propositionnelles puis on calcule la valeur de vérité de la formule. L’ensemble des valeurs de vérité est noté vr ai, f aux ou encore 1, 0 et c’est cette notation que nous adoptons pour la suite. Définition. On note B = 0, 1 l’ensemble des valeurs de vérité ou ensembles des booléens, 0 est appelé valeur de vérité faux et 1 est appelé valeur de vérité vraie. Pour pouvoir calculer la valeur de vérité d’une formule, il faut d’abord donner des valeurs dans B aux variables propositionnelles. Ainsi, la valeur de vérité d’une formule dépend des valeurs de vérité des variables propositionnelles qu’elle contient. Définition. A étant l’ensemble des variables propositionnelles, on appelle valuation des variables propositionnelles une application v : A → B. Maintenant qu’à chaque variable propositionnelle on a associé une valeur de vérité, on peut associer une valeur de vérité à toute formule logique : l’application v : A → B peut être prolongée en une application v : L0 → B de l’ensemble des formules dans l’ensemble des valeurs de vérité. v est définie de manière inductive : • si x ∈ A alors v(x) = v(x) ; • si F ∈ L0 alors v(¬F ) = 1 − v(F ) ; • si F , G ∈ L0 alors v(F ∧ G) = v(F ) · v(G) avec 1 · 0 = 0, 0 · 0 = 0, 0 · 1 = 0 et 1 · 1 = 1 ; • si F , G ∈ L0 alors v(F ∨ G) = v(F ) + v(G) avec 1 + 0 = 1, 0 + 0 = 0, 0 + 1 = 1 et 1+1=1 On peut maintenant définir formellement la fonction d’évaluation d’une formule logique. Définition. Soit A l’ensemble des variables propositionnelles et L0 l’ensemble des formules logiques, l’application Eval :L0 × (A → B) → B (F , v) , v(F ) est appelée la fonction d’évaluation des formules logiques. 1.4 Tables de vérité La technique du paragraphe précédent peut vite devenir fastidieuse dès que la formule devient un peu complexe. Le formalisme des tables de vérité permet de calculer de manière relativement simple les évaluations d’une formule pour toutes les valuations possibles de ses variables propositionnelles. Chapitre 3 : logique 3 Option informatique deuxième année Lycée Faidherbe Les connecteurs Les tables de vérité des connecteurs logiques sont donnés dans le tableau 1. x 0 1 ¬x 1 0 x 0 0 1 1 y 0 1 0 1 x∧y 0 0 0 1 x 0 0 1 1 y 0 1 0 1 x∨y 0 1 1 1 Table 1 – Table de vérité des connecteurs Exemple de construction d’une table de vérité Pour construire la table de vérité d’une formule, on commence par mettre une colonne pour chaque variable propositionnelle ayant une occurrence dans la formule, puis on construit les colonnes correspondant aux sous-formules de la formule. Par exemple pour la formule (x ∧ ¬y) ∨ (y ∧ ¬x), on obtient la table suivante : x 0 0 1 1 y 0 1 0 1 x ∧ ¬y 0 0 1 0 y ∧ ¬x 0 1 0 0 (x ∧ ¬y) ∨ (y ∧ ¬x) 0 1 1 0 Équivalence de formules Deux formules logiques sont équivalentes si pour toute valuation des variables propositionnelles qu’elles contiennent elles sont soit toutes les deux vraies, soit toutes les deux fausses. Définition. Soit F , G ∈ L0 , on dit que F et G sont équivalentes si et seulement si pour toute valuation v : A → B, on a v(F ) = v(G). Cette équivalence est notée F ≡ G. Deux formules équivalentes ont donc la même table de vérité. On définit (pour simplifier l’écriture) d’autres connecteurs logiques : • x NAND y ≡ ¬(x ∧ y) ; • x NOR y ≡ ¬(x ∨ y) ; • x XOR y ou encore x ⊕ y (ou exclusif) tel que x ⊕ y ≡ (x ∧ ¬y) ∨ (y ∧ ¬x) ; • x ⇒ y ≡ ¬x ∨ y ; • x a y ≡ (¬x ∨ y) ∧ (¬y ∨ x) 2 2.1 Satisfiabilité Tautologie et mathématiques Par définition, une tautologie est une formule évaluée à vrai, quelles que soient les valeurs de ses variables propositionnelles. Définition. Soit A l’ensemble des variables propositionnelles et soit F ∈ L0 une formule, F est appelée une tautologie si pour toute valuation v : A → B des variables propositionnelles on a Eval(F , v) = 1. La formule x ∨ x est une tautologie. 4 Chapitre 3 : logique Lycée Faidherbe Option informatique deuxième année Tautologies classiques Les formules suivantes sont des tautologies connues : Idempotence : x ∧ x a x . Absorption : x ∧ (x ∨ y) a x. Tiers exclu : x ∨ x. Contraposition : (x ⇒ y) a (y ⇒ x). Exportation : (x ⇒ (y ⇒ z)) a (x ∧ y ⇒ z). Syllogisme : (x ⇒ y) ⇒ ((y ⇒ z) ⇒ (x ⇒ z)). Loi de Pierce : ((x ⇒ y) ⇒ x) ⇒ x. Ex falso quod libet sequitur : 2 (x ∧ x) ⇒ y. Les deux suivantes, appelées lois de de morgan, sont les plus connues et sont aussi celles que nous utiliserons le plus : ( (x ∧ y) a x ∨ q (x ∨ y) a x ∧ q 2.2 Formule satisfiable et contradiction Définition. Une formule est dite satisfiable s’il existe une valuation des variables propositionnelles telle que la formule soit évaluée à vrai. Toute tautologie est aussi une formule satisfiable. Une formule est dite contradictoire si elle n’est pas satisfiable. Une formule contradictoire est une contradiction. Si F est une contradiction alors ¬F est une tautologie. Si la formule F contient n variables propositionnelles différentes, il nous faut essayer les 2n valuations possibles de ces n variables, et pour chacune de ces valuations, il faut évaluer la formule. Le temps de construction de la tables est donc un O(2n ). Ainsi, dans le pire des cas, déterminer si une formule est satisfiable se fait avec une complexité exponentielle. 2.3 Formes normales Pour travailler avec les formules logiques, il est utile de se ramener à une expression sémantiquement équivalente de syntaxe plus simple. Cela sera soit : • une version standardisée et maniable ; • une version minimisant le nombre de connecteurs binaires. Définitions Définition. On appelle littéral une variable propositionnelle ou bien la négation d’une variable propositionnelle. Définition. On appelle clause toute disjonction de littéraux. C’est à dire toute formule de la forme p1 ∨ · · · ∨ pn où n ≥ 1 et p1 , . . . , pn sont des littéraux. Définition. On appelle forme normale conjonctive toute conjonction de clause, c’est à dire toute formule de la forme C1 ∧ · · · ∧ Cm où m ≥ 1 et C1 , . . . , Cm sont des clauses. Définition. Une forme normale disjonctive est une formule de la forme D1 ∨ · · · ∨ Dm où m ≥ 1 et chaque formule Di pour i ∈ [1, n] est une conjonction de littéraux. Il existe une méthode pratique simple pour obtenir une forme normale : • on exprime la formule uniquement avec des ¬, des ∧ et des ∨ ; • on utilise les lois de De Morgan ; • on utilise la distributivité de ∧ par rapport à ∨ et inversement. 2. Ça veut rien dire mais je trouve que ça boucle bien dirait le roi Loth Chapitre 3 : logique 5 Option informatique deuxième année Lycée Faidherbe Exemple : obtention d’une forme normale Soit la formule : f = (p1 ⇒ p2 ) ⇒ (¬p3 ∧ p2 ). On calcule alors : f ≡¬(¬p1 ∨ p2 ) ∨ (¬p3 ∧ p2 ) ≡(p1 ∧ ¬p2 ) ∨ (¬p3 ∧ p2 ) ≡(p1 ∧ ¬p2 ∧ p3 ) ∨ (p1 ∧ ¬p2 ∧ ¬p3 ) ∨ (p1 ∧ p2 ∧ ¬p3 )∨ (¬p1 ∧ p2 ∧ ¬p3 ) Forme normale et table de vérité On peut aussi simplement lire les formes normales à partir de la table de vérité de la formule logique. On obtient la forme normale disjonctive de f à partir des lignes marquées d’un 1. La forme normale conjonctive de f s’obtient à partir de la forme normale disjonctive de ¬f déduite des lignes marquées d’un 0. Exemple On considère la formule f dont la table de vérité est : p1 1 1 1 1 0 0 0 0 p2 1 1 0 0 1 1 0 0 p3 1 0 1 0 1 0 1 0 f 0 1 1 0 1 0 0 1 On a, avec les ligne de valuation 1 f ≡ (p1 ∧ p2 ∧ ¬p3 ) ∨ (p1 ∧ ¬p2 ∧ p3 ) ∨ (¬p1 ∧ p2 ∧ p3 ) ∨ (¬p1 ∧ ¬p2 ∧ ¬p3 ) De même pour les ligne de valuation 0 ¬f ≡ (p1 ∧ p2 ∧ p3 ) ∨ (p1 ∧ ¬p2 ∧ ¬p3 ) ∨ (¬p1 ∧ p2 ∧ ¬p3 ) ∨ (¬p1 ∧ ¬p2 ∧ p3 ) d’où f ≡ (¬p1 ∨ ¬p2 ∨ ¬p3 ) ∧ (¬p1 ∨ p2 ∨ p3 ) ∧ (p1 ∨ ¬p2 ∨ p3 ) ∧ (p1 ∨ p2 ∨ ¬p3 ) 6 Chapitre 3 : logique Lycée Faidherbe 3 Option informatique deuxième année Exercices Exercice 1 — Évaluation Soit x, y ∈ A et soit v une valuation telle que v(x) = 1 et v(y) = 0, calculer Eval(y ∨ (x ∧ y), v) Exercice 2 — Représentation arborescente Dessiner la représentation arborescente de la formule (x ∨ (x ∨ y)) ∧ ¬x. Exercice 3 — Formule représentée Donnez la formule représentée par l’arbre suivant : ∨ ∧ ∨ y x y ¬ z Exercice 4 — Table de vérité Soit p, q et r trois variables propositionnelles, déterminer les tables de vérité des expressions suivantes : • (p ⇒ q) ∨ (q ⇒ r ) ; • (p ∧ q) a (p ∨ r ). Exercice 5 — Tautologie Montrez que la formule x ∨ y a x ∧ y est une tautologie. Exercice 6 — Ensemble des tables de vérités avec 2 variables Écrire toutes les tables de vérité correspondant aux expressions construites sur un ensemble de deux variables propositionnelles. Identifier pour chaque table une expression simple dont elle est l’évaluation. Exercice 7 — Associativité Montrer que les connecteurs NAND et NOR ne sont pas associatifs, puis que le connecteur XOR est associatif. Exercice 8 — Table de vérité et formes normales Établir la table de vérité de la formule : F = (a ∧ b) ∨ (a ∧ c) ⇒ (b ⇒ c) et mettre F sous forme normale disjonctive puis sous forme normale conjonctive. Chapitre 3 : logique 7 Option informatique deuxième année Lycée Faidherbe Exercice 9 — Le désert Vous êtes perdu sur une piste dans le désert. Vous arrivez à une bifurcation. Chacune des deux pistes est gardée par un sphinx que vous pouvez interroger. Les pistes peuvent soit conduire à une oasis soit se perdre dans un désert profond (au mieux elles conduisent toutes à une oasis, au pire elles se perdent toutes les deux). Vous disposez des informations suivantes : A : le sphinx de droite vous répond : « Une au moins des deux pistes conduit à une oasis ». B : le sphinx de gauche vous répond : « La piste de droite se perd dans le désert ». C : vous savez que les sphinx disent tous les deux la vérité ou bien mentent tous les deux. 1. Si D est la proposition « Il y a une oasis au bout de la route de droite » et si G est la proposition « Il y a une oasis au bout de la route de gauche », alors : 1. Exprimer par une formule logique les affirmations A et B. 2. Exprimer alors la connaissance C. 2. Résoudre l’énigme. Exercice 10 — Détecteur de pannes une nouvelle série de composants informatiques dédiés au raisonnement logique a été conçue de manière à faciliter la détection de pannes. Chaque processeur effectue des raisonnements logiques et peut-être soit en état de fonctionnement normal, soit en état de panne. Il se comporte de la manière suivante : • un processeur en état de fonctionnement normal ne peut affirmer que des propositions vraies ; • un processeur en état de panne ne peut affirmer que de propositions fausses. Un ordinateur est composé de trois processeurs qui possèdent la même mémoire, donc les mêmes connaissances. Périodiquement, un ingénieur vient interroger l’ordinateur pour déterminer si certains processeurs sont en état de panne. Lors d’une séance de test, l’ingénieur pose les deux questions suivantes au processeur no 1 : • est-ce que les processeurs no 2 et no 3 sont en état de fonctionnement normal ; • est-ce le processeur no 2 est en état de fonctionnement normal ? Le processeur no 1 répond à la première question : « Les processeurs no 2 et no 3 sont en état de fonctionnement normal. » Puis il répond à la seconde question : « Le processeur no 2 est en état de panne. » Notons p1 (respectivement p2 et p3 ) la proposition « Le processeur no 1 (respectivement no 2 et no 3) est en état de panne » et supposons que l’état des trois processeurs ne peut pas changer entre les réponses aux deux questions. 1. Exprimer la réponse à la première question sous la forme d’une expression logique. 2. Exprimer la réponse à la deuxième question sous la forme d’une expression logique. 3. Déterminer l’état de chaque processeur. 8 Chapitre 3 : logique Lycée Faidherbe Option informatique deuxième année Exercice 11 — Logique et calcul des propositions Dans un futur lointain, l’espèce humaine a découvert une autre espèce consciente. L’étude de cette espèce a permis de découvrir qu’elle est capable de percevoir si quelqu’un dit la vérité ou un mensonge. Les membres de cette espèce respectent les règles de politesse suivantes lors des discussions au sein d’un groupe : « Les orateurs doivent rester constants au cours d’une discussion : soit ils disent toujours la vérité, soit ils mentent toujours. De plus, si un orateur dit la vérité alors l’orateur suivant doit également dire la vérité. Si le sujet de la discussion change, les orateurs sont libres de changer leurs comportements. ». Vous assistez à une discussion sur les moyens d’attaque et de défense que peut posséder la faune de cette planète entre trois membres de cette espèce que nous appellerons A, B et C. A : « Le kjalt peut avoir un dard ou des griffes. » B : « Non, il n’a pas de dard. » C : « Il a des pinces et des griffes. » Nous noterons D, G et P les variables propositionnelles associées au fait qu’un kjalt possède respectivement un dard, des griffes et des pinces. Nous noterons A1 , B1 et C1 les formules propositionnelles associées aux déclarations de A, B et C dans cette première discussion. C quitte le groupe et la discussion change de sujet pour parler de la flore de la planète. A : « Un lyop peut être de couleur mauve mais pas de couleur jaune. » B : « Il ne peut pas être de couleur verte. » A : « Il ne peut être de couleur verte que s’il peut être de couleur jaune. » Nous noterons J, M et V les variables propositionnelles associées au fait qu’un lyop peut être respectivement de couleur jaune, mauve et verte. Nous noterons A2 , A3 et B2 les formules propositionnelles associées aux déclarations de A et B dans cette seconde discussion. 1. Représenter les règles de politesse appliquées à la première discussion sous la forme d’une formule du calcul des propositions dépendant des formules A1 , B1 et C1 . 2. Représenter les informations données par les participants de la première discussion sous la forme de formules du calcul des propositions A1 , B1 et C1 dépendant des variables D, G et P . 3. En utilisant le calcul des propositions (résolution avec les formules de De Morgan), déterminer le (ou les) moyen(s) d’attaque et de défense que peut posséder un kjalt. 4. Représenter les règles de politesse appliquées à la seconde discussion sous la forme d’une formule du calcul des propositions dépendant des formules A2 , A3 et B2 . 5. Représenter les informations données par les participants lors de la seconde discussion sous la forme de trois formules du calcul des propositions A2 , A3 et B2 dépendant des variables J, M et V . 6. En utilisant le calcul des propositions (résolution avec les tables de vérité), déterminer la (ou les) couleur(s) possible(s) pour un lyop. Chapitre 3 : logique 9 Option informatique deuxième année Lycée Faidherbe Exercice 12 — Le connecteur de Sheffer Le connecteur de Sheffer, noté |, est un connecteur binaire de la logique propositionnelle. Ce connecteur est défini par : F |G ≡def F ∨ G où F et G sont des formules de la logique propositionnelle, F et G sont les négations ou complémentations de ces formules et ≡def est un symbole d’égalité par définition. Notations : • On utilisera les lettres minuscules x, y, z,. . .pour désigner les variables propositionnelles ; • ∨ est le symbole pour le connecteur de disjonction ; • ∧ est le symbole pour le connecteur de conjonction ; • ⇒ est le symbole pour le connecteur d’implication. On considère la logique propositionnelle munie des connecteurs de négation, de conjonction, de disjonction, d’implication et du connecteur de Sheffer. L’objet de l’exercice est de montrer que pour toute formule F de la logique propositionnelle, il existe une formule F ∗ , ne contenant que des variables propositionnelles et le connecteur de Sheffer, telle que F et F ∗ soient logiquement équivalentes. 1. Construisez la table de vérité d’une formule x|y. 2. Construisez la table de vérité de la formule x|x. 3. Montrez que les formules x et x|x sont logiquement équivalentes. 4. Montrez que x ∨ y et (x|x)|(y|y) sont des formules logiquement équivalentes. 5. En vous servant des questions précédentes, montrez qu’il existe une formule logiquement équivalente à x ⇒ y ne contenant que les variables propositionnelles x et y et deux occurrences du connecteur de Sheffer. 6. De même, montrez qu‘il existe une formule logiquement équivalente à x ∧ y ne contenant que les variables propositionnelles x et y et des occurrences du connecteur de Sheffer. 7. Des questions précédentes, déduisez un algorithme permettant de transformer toute formule F de la logique propositionnelle en une formule F ∗ ne contenant que des occurrences du connecteur de Sheffer et les variables propositionnelles déjà présentes dans F . 8. Appliquez l’algorithme de la question précédente à la formule x ∧ (y ∨ z). Définition 1. Soit F une formule de la logique propositionnelle, on appelle poids de F et on note σ (F ) le nombre de connecteurs présents dans la formule. Définition 2. On appelle formule équilibrée une formule F sans connecteur de négation qui vérifie les propriétés suivantes : • si F est une variable propositionnelle, F est équilibrée par définition ; • si F peut s’écrire GcH avec c ∈ {∨, ∧, ⇒, |}, si G et H sont équilibrées et si σ (G) = σ (H) alors F est équilibrée. 9. Démontrez que si F est une formule équilibrée alors σ (F ) est dé la forme 2k − 1 avec k entier naturel. Que représente k ? 10. On note σ ∗ (n) le poids au pire de la transformée F ∗ d’une formule F équilibrée de poids n. Calculez σ ∗ (n). 10 Chapitre 3 : logique