Université de Nice – Sophia Antipolis Licence 1 Sciences & Technologies Informatique Générale Élements de logique et d'algèbre de Boole Jacques Farré [email protected] http://deptinfo.unice.fr/~jf/InfoGene © Jacques Farré 2013 Informatique générale – éléments d'algèbre de Boole 1/12 La logique, pourquoi ? Pour modéliser des ”objets”, leurs propriétés, et pour faire des raisonnements rigoureux dessus Par exemple la logique aristotélicienne Raisonnement logique à 2 propositions conduisant à une conclusion (syllogisme) de la forme : si tous les éléments de l'ensemble E ont telle propriété, si e est un élément de E, alors e a la propriété P exemple classique : tous les hommes sont mortels; or Socrate est un homme; donc Socrate est mortel qu'on peut traduire par, en généralisant : si [(M ⊂ P) et (S ⊂ M)] alors (S ⊂ P) attention : si [(M ⊂ P) et (S ⊂ P)] alors (S ⊂ M) n'a pas de sens : les hommes sont bipèdes, les autruches sont bipèdes, donc les autruches sont des hommes © Jacques Farré 2013 Informatique générale – éléments d'algèbre de Boole 2/12 Calcul propositionnel Calcul propositionnel : théorie logique qui définit les lois formelles du raisonnement évaluation d'expressions résultant en une valeur parmi {faux, vrai} (notées aussi {F, V} ou {0, 1}) Une proposition atomique est une affirmation susceptible d'être vraie ou fausse : il pleut, 2009 est une année bissextile, i+j = k, ... On peut former une proposition en utilisant des opérateurs logiques (ou connecteurs), par exemple ➢ Il pleut et il y a du soleil ➢ i+j=k ou (i-j=k et k>0) ➢ si x est multiple de 4 alors x est pair ➢ l'année A est bissextile équivaut à l'année A a 366 jours © Jacques Farré 2013 Informatique générale – éléments d'algèbre de Boole 3/12 Opérateurs du calcul propositionnel Essentiellement 5 opérateurs ➢ la conjonction (et) notée Il pleut et il y a du soleil (si a=il pleut, b=il y a du soleil, on écrit a b) la disjonction (ou) notée i+j=k ou (i-j=k et k>0) de la forme a (b c) ➢ l'implication (alors) notée ⇒ x est multiple de 4 alors x est pair, de la forme a ⇒ b ➢ la négation (NON, PAS) notée ¬ si x n'est pas pair alors il n'est pas multiple de 4 : ¬b ⇒ ¬a ➢ l'équivalence, notée ⇔ 2012 est bissextile équivaut à 2012 a 366 jours, a ⇔ b ➢ (a ⇒ b) ⇔ (¬b ⇒ ¬a) mais on n'a pas (a ⇒ b) ⇔ (¬a ⇒ ¬b) (si x n'est pas multiple de 4 alors il n'est pas pair) est faux ➢ © Jacques Farré 2013 Informatique générale – éléments d'algèbre de Boole 4/12 A quoi sert le calcul propositionnel en mathématiques c'est la base de toute démonstration preuves assistées par ordinateur pour donner des définitions inductives : par exemple pour définir l'ensemble P des entiers pairs 0∈P n∈P⇒n+2∈P en informatique intelligence artificielle, bases de données ... programmation logique (Prolog) vérification de programme, spécification de programme, conception sûre ... © Jacques Farré 2013 Informatique générale – éléments d'algèbre de Boole 5/12 Opérateurs logiques unaires Les opérateurs sont définis par des tables de vérité 4 (22) opérateurs unaires (u1-u4) ; tables de vérité : A u1 u2 u3 u4 faux faux faux vrai vrai vrai faux vrai faux vrai u1 est la contradiction : u1(A) faux quelque soit A u2 est l'identité : u2(A) vaut A pour tout A u3 est la négation, notée ¬ A ¬A ou A faux vrai vrai faux u4 est la tautologie (toujours vrai) © Jacques Farré 2013 Informatique générale – éléments d'algèbre de Boole 6/12 Opérateurs logiques binaires 16 (24) opérateurs binaires, parmi lesquels A B ET (ou OU ( ou +) F F V V F V F V F F F V F V V V A B NAND (non ET) F F V V F V F V © Jacques Farré 2013 V V V F NOR équivalence (≡ ou ⇔) V F F V XOR (non OU) (OU exclusif) V F F F implication (⊃ ou ⇒ ) F V V F V V F V Quelques propriétés A = ¬¬A A ¬A = V A ¬A = F A V = V , A F = A A V = A , A F = F Pouvez-vous les démontrez ? Informatique générale – éléments d'algèbre de Boole 7/12 Opérateurs logiques binaires (solution) A = ¬¬A : (A = V) ⇒ (¬A = F) ⇒ (¬(¬A) = V) = A (A = F) ⇒ (¬A = V) ⇒ (¬(¬A) = F) = A A ¬A = V : (A = V) ⇒ (¬A = F) ⇒ (A ¬A = V F) = V (A = F) ⇒ (¬A = V) ⇒ (A ¬A = F V) = V A ¬A = F : preuve analogue, sachant que V F = F V = F A V = V : évident en regardant la table de A F = A : (A = V) ⇒ (V F = V) = A (A = F) ⇒ (F F = F) = A A V = A : évident en regardant la table de A F = F : preuve analogue en regardant la table de © Jacques Farré 2013 Informatique générale – éléments d'algèbre de Boole 8/12 Formule statisfiable Une formule F(A1, A2 … An) est satisfiable s'il existe, pour chaque Ai, une valeur parmi {vrai, faux} telle que F est vraie Par exemple, a b¬ c est satisfiable pour a=vrai, b=vrai, c=faux Une formule est contradictoire si elle n'est pas satisfiable : (a¬b)(b¬c)(c¬a)(ac(¬b¬c En règle générale, essayer de simplifier l'expression, puis établir la table de vérité Il existe d'autres méthodes (un peu) moins laborieuses (diagrammes de Karnaugh, méthode de Quine, méthode de Davis-Putnam ...) © Jacques Farré 2013 Informatique générale – éléments d'algèbre de Boole 9/12 Algèbre de Boole On considère les opérateurs { , } sur { 0, 1 } par convention on écrit a+b au lieu de ab, a.b pour a b, ã pour a Associativité et commutativité de + et de . (a+b)+c = a+(b+c) = a+b+c a+b = b+a (idem avec .) (idem avec .) Distributivité : a.(b+c) = a.b + a.c Idempotence : a+a+...+a = a (idem avec .) Élément neutre : a+0 = a, a.1 = a a+1 = 1, a.0 = 0 Et donc, parmi d'autres propriétés : a + a.b = a, a.(a+b) = a (a+b).(a+c) = a + bc a + ã.b = a + b a.(ã + b ) = a.b © Jacques Farré 2013 Informatique générale – éléments d'algèbre de Boole Sauriez vous le montrer ? 10/12 Algèbre de Boole (solutions de l'exercice précédent) On peut utiliser des tables de vérité, mais aussi procéder plus algébriquement : a + a.b = a.1 + a.b = a.(1+b) = a.1 = a e ut ilis a.(a+b) = a.a + a.b = a + a.b = a on tilis on u e (a+b).(a+c) = a.a + a.c + b.a + b.c = a + a.(b+c) + b.c = a + b.c on utilise a + ã.b = (a+ã).(a+b) = 1.(a+b) = a+b a.(ã + b ) = a.ã + a.b = 0 + a.b = a.b © Jacques Farré 2013 Informatique générale – éléments d'algèbre de Boole 11/12 Système complets Un ensemble d'opérateurs propositionnels est dit complet si tout autre opérateur peut se définir au moyen des connecteurs de l'ensemble L'ensemble { , } est complet (il y en a d'autres) par exemple : A XOR B = (A B) (A B) A F F V V B F V F V A B V V V F F V F F A B F V F F A B (A B) (A B) F F F V V V F F A XOR B F V V F Lois de Morgan (généralisables à N variables) (A B) ⇔ ( A) ( B) (A B) ⇔ ( A) ( B) © Jacques Farré 2013 Démonstration laissée à titre d'exercice Informatique générale – éléments d'algèbre de Boole 12/12