Table des matières 1 Algèbre de Boole 1.1 Algèbres de Boole . . . . . . . . . . . . . . . . . . . . . . . . 1.1.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.2 Exemples . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.3 Développements et Simplifications en Algèbre de Boole 1.1.4 Règles de Calcul dans les Algèbres de Boole . . . . . . 1.1.5 Principe de Dualité . . . . . . . . . . . . . . . . . . . . 1.1.6 Règles sur les égalités . . . . . . . . . . . . . . . . . . 1.2 Les Fonctions Booléennes et leurs Formes Canoniques . . . . 1.2.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . 1.2.2 Indexation et Nombre de mintermes et maxtermes . . 1.2.3 Propriétés des mintermes et maxtermes . . . . . . . . 1.2.4 Formes canoniques d’une fonction booléenne . . . . . 1.2.4.1 Formes canoniques conjonctives et disjonctives 1.2.4.2 Détermination des formes canoniques . . . . 1.2.4.2.1 Détermination Algébrique . . . . . . 1.2.4.2.2 Code des poids . . . . . . . . . . . . 1.2.5 Passage d’une forme canonique à une autre . . . . . . 1.2.6 Application aux calculs sur les égalités . . . . . . . . . 1.3 Simplification des fonctions Booléennes . . . . . . . . . . . . . 1.3.1 Diagrammes de Karnaugh . . . . . . . . . . . . . . . . 1.3.1.1 Diagrammes de Karnaugh pour 4 variables . 1.3.1.2 Diagrammes de Karnaugh pour 5 variables . 1.3.1.3 Utilisation des diagrammes de Karnaugh . . 1.3.2 Méthode de Quine-Mc Cluskey . . . . . . . . . . . . . 1.3.2.1 Méthode de Quine . . . . . . . . . . . . . . . 1.3.2.2 Méthode de Mc Cluskey . . . . . . . . . . . . 1.4 Les Fonctions booléennes sur variables binaires . . . . . . . . 1.4.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . 1 3 3 3 4 4 5 5 6 6 6 7 7 8 8 8 9 9 9 10 10 10 10 11 11 11 11 15 17 17 1.4.2 Numérotation des fonctions booléennes . . . . . . . . 17 Chapitre 1 Algèbre de Boole 1.1 1.1.1 Algèbres de Boole Définition Définition 1.1.1 Soit B un ensemble contenant au moins deux éléments que l’on convient de noter 0 et 1, et muni : – D’une opération binaire appelée « somme » et notée + : + : B × B −→ B (a, b) 7→ a+b – D’une opération binaire appelée « produit » et notée . : . : B × B −→ B (a, b) 7→ a.b – D’une opération unaire appelée « complémentation » et notée ¯ : ¯: B −→ B a 7→ ā On dit que (B, +, .,¯) a une structure d’algèbre de Boole si les axiomes de structure suivants sont vérifiés : Axiome 1 : Les deux opérations binaires sont commutatives : ∀a, b ∈ B, a + b = b + a a.b = b.a Axiome 2 : Les deux opérations binaires sont associatives : ∀a, b, c ∈ B, (a + b) + c = a + (b + c) 2 (a.b).c = a.(b.c) Axiome 3 : 0 est un élément neutre pour + et 1 est un élément neutre pour .: ∀a ∈ B, a + 0 = a a.1 = a Axiome 4 : Chaque opération binaire est distributive par rapport à l’autre : ∀a, b, c ∈ B, a + (b.c) = (a + b).(a + c) Axiome 5 : ∀a ∈ B, a + ā = 1 1.1.2 a.(b + c) = (a.b) + (a.c) a.ā = 0 Exemples Exemple 1.1.2 Soient E un référentiel non vide, et P(E) l’ensemble des parties de E. Si on prend B = P(E) comme ensemble et que l’on définit les opérations A+C = A∪C A.C = A ∩ C Ā = CE A alors (P(E), ∪, ∩,¯) est une algèbre de Boole. Exemple 1.1.3 L’ensmble {0, 1} muni des opérations booléennes + et . est une algèbre de Boole. Exemple 1.1.4 Soit D10 l’ensemble des entiers naturels diviseurs de 10. D10 = {1, 2, 5, 10} Soient x, y ∈ D10 . On pose x + y = ppcm(x, y) x.y = pgcd(x, y) 10 x̄ = x alors (D10 , ppcm, pgcd,¯) est une algèbre de Boole. 1.1.3 Développements et Simplifications en Algèbre de Boole Dans la pratique, on effectue les développements comme en algèbre classique (dans R) et on donne la priorité à l’opérateur « produit » ( « . »). Les règles de suppression de parenthèses sont les mêmes que celles de l’algèbre classique. Par exemple – a + (b.c) s’écrira a + bc (mais on aura toujours a + bc = (a + b)(a + c) – (a.b) + (a.bc) s’écrira ab + abc – (a + b).(c + d) s’écrira ac + ad + bc + bd. 3 1.1.4 Règles de Calcul dans les Algèbres de Boole Théorème 1.1.5 ∀a ∈ B, a est l’unique élément de B vérifiant : a + a = 1 et a.a = 0 Théorème 1.1.6 (Idempotence) ∀a ∈ B, a + a = a et a.a = a Théorème 1.1.7 0 = 1 et 1 = 0 Théorème 1.1.8 ∀a ∈ B, a + 1 = 1 et a.0 = 0 Théorème 1.1.9 ∀a ∈ B, a = a Théorème 1.1.10 (Absorption) ∀a, b ∈ B, a + a.b = a et a.(a + b) = a Théorème 1.1.11 (Redondance) ∀a, x, y ∈ B, a.x + a.y = a.x + a.y + x.y Théorème 1.1.12 (Lois de De Morgan) ∀a, b ∈ B, a + b = a.b et a.b = a + b 1.1.5 Principe de Dualité Définition 1.1.13 Dans une algèbre de Boole, tout résultat se présente sous deux formes duales. Etant donné un résultat (P ), son dual (P ∗ ) s’obtient en permutant systématiquement : 1. Les symboles opératoires + et . 2. Les éléments neutres 0 et 1 Corollaire 1.1.14 Soit E un référentiel. On a vu que (P(E), ∩, ∪,¯) a une structure d’algèbre de Boole. D’après le principe de dualité (P(E), ∪, ∩,¯) est aussi une algèbre de Boole. 4 1.1.6 Règles sur les égalités Règle 1.1.15 ∀a, b, c ∈ B a=b ⇒ a+c=b+c a = b ⇒ a.c = b.c Règle 1.1.16 ∀a, b, c ∈ B a+c = b+c a.c = b.c ⇒a=b Règle 1.1.17 ∀a, b, c, d ∈ B a = b c = d ⇒ a+c = b+d a.c = b.d Règle 1.1.18 ∀a, b ∈ B, a = b ⇔ a = b Règle 1.1.19 ∀a, b ∈ B a.b = 1 ⇔ a = 1 et b = 1 a + b = 0 ⇔ a = 0 et b = 0 1.2 1.2.1 Les Fonctions Booléennes et leurs Formes Canoniques Définitions Définition 1.2.1 Soit (B, +, .,¯) une algèbre de Boole. On appelle fonction booléenne de n variables, toute combinaison de ces variables au moyen des trois opérations booléennes +, . et ¯. Exemple 1 f (a, b, c) = a.b + c.(a.b + b) est une fonction booléenne des 3 variables a, b et c. Définition 1.2.2 On appelle « minterme » de n variables, l’un des produits booléens de ces variables ou de leurs complémentaires. Chaque minterme est affecté d’un indice unique que l’on déterminera au paragraphe (1.2.2). Exemple 2 Si on considère 4 variables a, b, c et d, – m = a.b.c.d est un minterme, 5 – m = a.b.c.d est un autre minterme, – m = a.b.d n’est pas un minterme. Définition 1.2.3 On appelle « maxterme » de n variables, l’une des sommes booléennes de ces variables ou de leurs complémentaires. Chaque maxterme est affecté d’un indice unique que l’on déterminera au paragraphe (1.2.2). Exemple 3 Si on considère 4 variables a, b, c et d, – M = a + b + c + d est un maxterme, – M = a + b + c + d est un autre maxterme, – M = a + b + d n’est pas un maxterme. 1.2.2 Indexation et Nombre de mintermes et maxtermes Pour indexer les mintermes (maxtermes) on utilise la règle suivante : – Pour chaque minterme (maxterme) on construit un code binaire en posant 1 si une variable est présente, 0 si son complémentaire est présent. – On convertit ce code binaire en base décimal pour obtenir l’indice du minterme. Exemple 4 Soit le minterme de 4 variables mi = a.b.c.d, alors le code binaire associé à ce minterme est (1001)2 et donc i = 1 × 23 + 0 × 22 + 0 × 21 + 1 × 20 = 9. Remarque 1 Si deux mintermes sont différents, leurs codes binaires sont différents et donc leur indice est différent. Théorème 1.2.4 Soit Nn le nombre de mintermes de n variables. Alors Nn = 2n . 1.2.3 Propriétés des mintermes et maxtermes Théorème 1.2.5 Le complémentaire d’un minterme est un maxterme, le complémentaire d’un maxterme est un minterme et mi = M2n −1−i et M j = m2n −1−j Théorème 1.2.6 La somme booléenne de tous les mintermes vaut 1. n −1 2X mi = 1 i=0 6 Théorème 1.2.7 Le produit booléen de tous les maxtermes vaut 0. n −1 2Y Mj = 0 j=0 Théorème 1.2.8 Le produit de deux mintermes différents vaut 0 et la somme de deux maxtermes différents vaut 1. Théorème 1.2.9 Deux sommes de mintermes sont égales si et seulement si les mintermes qui ne sont pas communs aux deux sommes sont égaux à 0. Théorème 1.2.10 Deux produits de maxtermes sont égaux si et seulement si les maxtermes qui ne sont pas communs aux deux produits sont égaux à 1. Théorème 1.2.11 Soit e une expression booléenne écrite sous la forme d’une somme de mintermes (respectivement d’un produit de maxterme) alors son complémentaire e est la somme de tous les mintermes (respectivement le produit de tous les maxtermes) qui ne figurent pas dans l’écriture de e. 1.2.4 Formes canoniques d’une fonction booléenne Soit f une fonction booléenne de n variables. 1.2.4.1 Formes canoniques conjonctives et disjonctives Définition 1.2.12 Ecrire f sous forme canonique disjonctive (ou première forme canonique) revient à l’écrire comme la somme de mintermes des n variables. Définition 1.2.13 Ecrire f sous forme canonique conjonctive (ou deuxième forme canonique) revient à l’écrire comme le produit de maxtermes des n variables. Théorème 1.2.14 Tout fonction booléenne de n variables peut être mise de manière unique sous forme canonique disjonctive (respectivement conjonctive). 1.2.4.2 Détermination des formes canoniques On se concentrera sur les formes canoniques disjonctives, le cas conjonctif étant semblable. 7 1.2.4.2.1 Détermination Algébrique Il s’agit dans un premier temps d’utiliser le calcul booléen pour avoir une forme développée, et ensuite dans chaque monôme, de faire apparaitre les « variables » manquantes. Exemple 5 Pour 3 variables a, b et c, on aura ab = ab(c + c) = abc + abc Exemple 6 Pour 4 variables a, b, c, et d, on aura ab = ab(c + c) = abc + abc = abc(d + d) + abc(d + d) = abcd + abcd + abcd + abcd 1.2.4.2.2 Code des poids On part de la forme développée de la fonction sous forme de monômes, et on écrit les poids de chaque variables. Par exemple, pour quatre variables a, b, c et d, on aura : a 8 b 4 c 2 d 1 Pour chaque monôme, on applique ensuite la règle suivante : 1. Si dans l’expression du monôme une variable apparait, on entoure le poids correspondant. Si son complémentaire apparait, on barre le poids correspondant. 2. On fait la somme des poids entouré pour obtenir l’indice de base 3. On ajoute à l’indice de base toutes les sommes possibles des poids non entouré et non barrés : on obtient ainsi les indices de tous les mintermes formables à partir du monôme. 1.2.5 Passage d’une forme canonique à une autre Il s’agit connaissant l’une des décompositions canonique de déterminer l’autre. Pour cela il suffit d’utiliser l’identité f = f et le théorème (1.2.11). Exemple 7 Si f (a, b, c, d) = m0 + m2 + m4 + m5 + m6 + m7 + m11 + m12 + m13 + m14 8 Alors f (a, b, c, d) = m1 + m3 + m8 + m9 + m10 + m15 et donc f (a, b, c, d) = f (a, b, c, d) = M14 .M12 .M7 .M6 .M5 .M0 1.2.6 Application aux calculs sur les égalités Règle 1 Pour Démontrer une égalité booléenne, il suffit de revenir aux décompositions canoniques disjonctives des deux membres de l’égalité. Règle 2 Toute égalité ou tout système d’égalités booléennes peut s’écrire sous la forme d’une seule égalité dont le premier membre est une décomposition disjonctive et dont le second membre est nul. Règle 3 Pour montrer une implication ou une équivalence booléenne, il suffit de revenir aux décompositions canoniques disjonctives. 1.3 1.3.1 Simplification des fonctions Booléennes Diagrammes de Karnaugh Les diagrammes de Karnaugh est une méthode graphique pour simplifier les fonctions booléennes comportant un nombre modéré de variables (max 8). Chaque case du tableau correspond à un des mintermes. Une case du tableau ne diffère de l’une de ces voisines que par une variable (on utilise le code de Gray). 1.3.1.1 Diagrammes de Karnaugh pour 4 variables ab\cd 00 01 11 10 00 01 9 11 10 1.3.1.2 Diagrammes de Karnaugh pour 5 variables ab\cde 00 01 11 10 1.3.1.3 000 010 110 100 101 111 011 001 Utilisation des diagrammes de Karnaugh Si f est une fonction booléenne, on la simplifie en deux étapes : – On représente les mintermes qui compose f dans le diagramme à l’aide d’un signe distinctif – On regroupe les mintermes en blocs, les plus importants possibles. 1.3.2 1.3.2.1 Méthode de Quine-Mc Cluskey Méthode de Quine La méthode de Quine consiste, en partant de la décomposition canonique disjonctive de f , à utiliser systématiquement la formule de simplification x.y + x̄.y = y où x est un littéral et y un monôme. Considérons l’exemple suivant : f (a, b, c, d) = ab + bc + ac̄ + ācd + āb̄d¯ + āb̄c La décomposition canonique disjonctive de f est : f (a, b, c, d) = abcd + abcd¯ + abc̄d + abc̄d¯ + ab̄c̄d + ab̄c̄d¯ + ābcd + ābcd¯ + āb̄cd + āb̄cd¯ + āb̄c̄d¯ = 1111 + 1110 + 1101 + 1100 + 1001 + 1000 + 0111 + 0110 + 0011 + 0010 + 0000 10 Etape 0 : On classe les mintermes de la décomposition canonique selon le nombre de ”1” de leur écriture : classe sans ”1”, classe avec un seul ”1”, etc... On obtient le tableau suivant : classes 0 Etape 0 0000 1 0010 1000 2 0011 0110 1001 1100 3 0111 1101 1110 1111 4 11 repère Etape 1 : On additionne chaque minterme de la classe j avec chaque minterme de la classe j + 1. Lorsqu’il est possible d’utiliser la formule x.y + x̄.y = y et d’éliminer ainsi une variable, on consigne le résultat dans la colonne Etape 1. Le symbole ”x” remplace la variable éliminée. On repère à l’aide du symbole ”1” dans la colonne repère les deux mintermes concernés afin de montrer qu’ils disparaissent de la forme ΣΠ (Somme de produits). On obtient le tableau suivant : classes 0 Etape 0 0000 repère 1 1 0010 1000 1 1 2 0011 0110 1001 1100 1 1 1 1 3 0111 1101 1110 1111 1 1 1 1 4 12 Etape 1 00x0 x000 001x 0x10 100x 1x00 0x11 011x x110 1x01 110x 11x0 x111 11x1 111x repère Etape 2 : On procède comme à l’étape précédente avec les monômes des classes 0, 1, 2, etc... On inscrit dans la colonne Etape 2, les nouvreaux monômes obtenus. Si un monôme a déja été obtenu, on ne le réinscrit pas, par contre on marque avec des ”1”, les monômes dont il est issu. On obtient le tableau suivant : classes 0 Etape 0 0000 repère 1 1 0010 1000 1 1 2 0011 0110 1001 1100 1 1 1 1 3 0111 1101 1110 1111 1 1 1 1 4 Etape 1 00x0 x000 001x 0x10 100x 1x00 0x11 011x x110 1x01 110x 11x0 x111 11x1 111x 13 repère 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 Etape 2 0x1x 1x0x x11x 11xx repère Etape 3 (et suivantes) : On réitère le processus jusqu’à ce qu’il n’y ait plus de simplifications. Dans l’exemple, il n’y a pas d’étape 4 et on obtient : classes 0 Etape 0 0000 repère 1 1 0010 1000 1 1 2 0011 0110 1001 1100 1 1 1 1 3 0111 1101 1110 1111 1 1 1 1 4 Etape 1 00x0 x000 001x 0x10 100x 1x00 0x11 011x x110 1x01 110x 11x0 x111 11x1 111x repère 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 Etape 2 repère 0x1x 1x0x 0 0 x11x 11xx 0 0 Les monômes qui ont pour repère 0 sont les implicants premiers de f . Ici les implicants premiers de f sont : 00x0 ; x000 ; 0x1x ; 1x0x ; x11x ; 11xx ; soit encore : f (a, b, c, d) = āb̄d¯ + b̄c̄d¯ + āc + ac̄ + bc + ab 1.3.2.2 Méthode de Mc Cluskey La forme simplifiée de f n’est pas optimale car il y subsiste des redondances. On construit alors la grille de Mc Cluskey ci-dessous : 14 abcd abcd¯ abc̄d abc̄d¯ ab̄c̄d ab̄c̄d¯ ābcd ābcd¯ āb̄cd āb̄cd¯ āb̄c̄d¯ ab @ @ @ @ ac̄ @ @ @ @ @ @ @ @ @ @ @ @ āc bc @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ āb̄d¯ @ @ b̄c̄d¯ @ @ m15 m14 m13 m12 m9 m8 @ @ @ @ m7 m6 m3 m2 m0 Les barres verticales représentent les mintermes de la décomposition disjonctive de f et les barres horizontales ses implicants premiers. Les mintermes construits à partir des implicants premiers sont marqués d’une croix. Lorsqu’il n’y a qu’une croix sur une ligne verticale, elle est entourée. Cela signifie que les implicants premiers correspondants doivent figurer impérativement dans l’expression simplifiée de f . On a donc : f (a, b, c, d) = ac̄ + āc + . . . On remarque ensuite qu’avec ac̄ et āc, on peut construire tous les mintermes de f sauf abcd, abcd et abcc. Pour les couvrir, on a le choix entre ¯ ou (ab + b̄c̄d) ¯ ou (bc + āb̄d) ¯ ou (bc + b̄c̄d) ¯ (ab + āb̄d) ce qui donne les quatre formes simplifiées minimales de f : f (a, b, c, d) = ac̄ + āc + ab + āb̄d¯ f (a, b, c, d) = ac̄ + āc + ab + b̄c̄d¯ f (a, b, c, d) = ac̄ + āc + bc + āb̄d¯ f (a, b, c, d) = ac̄ + āc + bc + b̄c̄d¯ Remarque : Si aucune croix n’est entourée, on choisit judicieusement un certain nombre d’implicants premiers de manière à englober le plus de mintermes possibles. 15 1.4 1.4.1 Les Fonctions booléennes sur variables binaires Définitions Soit l’ensemble {0, 1} muni des deux opérations binaires : + 0 1 0 0 1 1 1 1 . 0 1 0 0 0 1 0 1 et posons que 0 = 1 et 1 = 0, alors ({0, 1}, +, .,¯) est une algèbre de boole. Définition 1.4.1 Une fonction booléenne de n variables binaires est une application de l’ensemble {0, 1}n vers {0, 1}. Les valeurs prises par une fonction booléenne de plusieurs variables peuvent être lues dans une table de vérité. Par exemple pour le OU exclusif, on a la table suivante : a 0 0 1 1 a⊕b 0 1 1 0 b 0 1 0 1 Tab. 1.1 – Table de vérité du OU exclusif On en déduit que a ⊕ b = āb + ab̄. 1.4.2 Numérotation des fonctions booléennes Pour n variables binaires, il existe 2N fonctions booléennes avec N = 2n . Pour les distinguer chaque fonction est affectée d’un exposant et d’un indice : – L’exposant correspond au nombre de variables dont dépend la fonction. – L’indice est déterminé comme suit : En respectant l’ordre décroissant des indices des mintermes présent dans la décomposition canonique disjonctive de la fonction, on pose 1 si le minterme est présent, 0 sinon. On obtient un nombre qui est l’écriture binaire de l’indice. 16 1.4.3 1.4.3.1 Fonctions de plusieurs variables binaires Fonctions de une variable Il existe 4 fonctions de 1 variable résumées dans le tableau suivant : Tab. 1.2 – Les 4 fonctions booléennes de 1 variable Fonction dans {0, 1} f01 (x) = 0 f11 (x) = x f21 (x) = x f31 (x) = 1 1.4.3.2 Appellation constante nulle complémentation identité constante unité fonctions duales 1 x x 0 Fonctions de deux variables Il existe 16 fonctions de 2 variables résumées dans le tableau suivant : Tab. 1.3 – Les 16 fonctions booléennes de 2 variables Expression dans Fonction dans {0, 1} Appellation toute algèbre de Boole f02 (x, y) = 0 constante nulle f12 (x, y) = x̄ȳ de Pierce, NI, NOR x↓y f22 (x, y) = x̄y inhibition f32 (x, y) = x̄ négation 2 f4 (x, y) = xȳ inhibition f52 (x, y) = ȳ négation f62 (x, y) = xȳ + x̄y Ou exclusif, XOR x⊕y 2 f7 (x, y) = x̄ + ȳ de Sheffer, ON, NAND x ↑ y f82 (x, y) = xy ET, multiplication x.y 2 f9 (x, y) = xy + x̄ȳ équivalence xy =x↔y 2 (x, y) = y f10 2 (x, y) = x̄ + y f11 implication x→y 2 f12 (x, y) = x 2 (x, y) = x + ȳ f13 implication x←y 2 f14 (x, y) = x + y OU, addition x+y 2 (x, y) = 1 f15 constante unité 17 fonctions duales 1 x↑y x→y x̄ x←y ȳ xy x↓y x+y x⊕y y x̄y x xȳ xy 0 1.4.3.3 x 0 0 0 0 1 1 1 1 Fonctions de trois variables y 0 0 1 1 0 0 1 1 Tab. 1.4 – Table des fonctions Majorité et Minorité z Maj(x, y, z) x y z Min(x, y, z) 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 1 0 1 1 0 0 0 1 0 0 1 1 1 1 0 1 0 0 1 1 1 0 0 1 1 1 1 1 0 On en déduit que : Maj(x, y, z) = x̄yz + xȳz + xyz̄ + xyz = xy + yz + xz Min(x, y, z) = x̄ȳz̄ + x̄ȳz + x̄yz̄ + xȳz̄ = x̄ȳ + ȳz̄ + x̄z̄ x 0 0 0 0 1 1 1 1 y 0 0 1 1 0 0 1 1 Tab. 1.5 – Table des fonctions Clés de Parité z P(x, y, z) x y z I(x, y, z) 0 1 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 1 1 1 0 1 1 0 0 0 1 0 0 1 1 1 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 On en déduit que : P(x, y, z) = x̄ȳz̄ + x̄yz + xȳz + xyz̄ et que I(x, y, z) = x̄ȳz + x̄yz̄ + xȳz̄ + xyz Ces fonctions s’écrivent de manière très simples à l’aide de l’opération ⊕. 18 1.5 1.5.1 1.5.1.1 Applications aux Circuits Les opérations duales NOR et NAND Définitions Dans une algèbre de Boole quelconque (B, +, .,¯) on définit les opération NOR (↓) et NAND (↑) par : ∀a, b ∈ B, a ↓ b = a + b = a.b ∀a, b ∈ B, a ↑ b = a.b = a + b Les deux opérations NOR et NAND sont duales. 1.5.1.2 Propriétés Proposition 1 Dans toute algèbre de Boole, les opérations NOR et NAND sont commutatives mais ne sont pas associatives. Proposition 2 Soient a et b deux éléments d’une algèbre de boole, alors a + b = (a ↓ b) ↓ (a ↓ b) a.b = (a ↓ a) ↓ (b ↓ b) a = a↓a et a.b = (a ↑ b) ↑ (a ↑ b) a + b = (a ↑ a) ↑ (b ↑ b) a = a↑a Les opérations NOR et NAND sont donc universelles. La conversion en opérateur NOR et NAND d’une expression booléenne est un exercice parfois difficile, conduisant à des formes lourdes à manier. Souvent l’incertitude demeure sur la possibilité d’obtenir une forme plus simple. 19 1.5.2 1.5.2.1 La disjonction exclusive Définitions Dans une algèbre de Boole quelconque (B, +, .,¯) on définit les opérations disjonction exclusive ⊕ et équivalence par : ∀a, b ∈ B, a ⊕ b = a.b + a.b ∀a, b ∈ B, a b = a.b + a.b Ces deux opérations sont duales et complémentaires l’une de l’autre. 1.5.2.2 Propriétés de la disjonction exclusive Théorème 1.5.1 Soit (B, +, .,¯) une algèbre de Boole. L’ensemble (B, ⊕) est un groupe commutatif dont l’élément nul est 0 et dont chaque élément est son propre symétrique (i.e. a ⊕ a = 0). On en déduit un premier corollaire utile sur l’existence d’une soustraction : Corollaire 1.5.2 Dans (B, ⊕), tout élément est régulier, c’est à dire : ∀a, b, c ∈ B, a⊕c=b⊕c⇔a=b La soustraction que l’on peut définir dans (B, ⊕) est identique à l’addition : Corollaire 1.5.3 ∀a, b, x ∈ B, a⊕x=b⇔x=a⊕b 20 Chapitre 2 Logique 2.1 2.1.1 La Logique Propositionnelle Définitions et Notations Définition 2.1.1 Dans le cadre d’une théorie, une proposition de base ou formule atomique ou atome est un énoncé qui est soit vrai, soit faux mais pas les deux. Chaque proposition p a une valeur de vérité, ou valuation ν qui est soit le vrai et on note ν(p) = 1, soit le faux et on note ν(p) = 0. On note P = {p, q, r, . . .} l’ensemble des atomes. Exemple 8 Voici trois propositions en zoologie : p : « Les poules ont des dents » q : « Les crabes sont des mammifères » r : « Les poules sont carnivores » 2.1.2 Connecteurs logiques Il y a cinq connecteurs de propositions (ou connecteurs logiques) utilisés en logique propositionnelle : 21 Symbole Nom ¬ NON ∧ ET ∨ OU → SI ... ALORS ↔ SI ET SEULEMENT SI Utilisation ¬p est appelé « négation de p » p ∧ q est appelé « conjonction de p et q » p ∨ q est appelé « disonjonction de p et q » p → q se lit « Si p alors q » ou « p implique q » p ↔ q se lit « p si et seulement si q » Tab. 2.1 – Les connecteurs logiques A partir des connecteurs logiques, on peut construire de nouvelles propositions. Remarque 2 Il faut distinguer les connecteurs logiques → et ↔ des symboles usuels ⇒ et ⇔. Définition 2.1.2 Les formules bien formées (fbf ) où formules ou proposititions sont définies récursivement : 1. Un atome est une formule 2. Si P est une formule alors ¬P est une formule 3. Si P et Q sont des formules alors P ∧ Q, P ∨ Q, P → Q et P ↔ Q sont des formules 4. Toutes les formules sont générées en appliquant ces règles. L’ordre d’une formule est le nombre maximal de fois où les règles de formation sont appliquées. Par exemple la formule : F = ((¬((p → q) ∨ r)) ↔ (p ↔ q)) est une formule d’ordre 4. On note P rop(P) l’ensemble des propositions qui peuvent être construites à l’aide de ces règles. La table de vérité des connecteurs logiques est la suivante : 22 ν(p) 0 0 1 1 ν(q) 0 1 1 0 ν(¬p) 1 1 0 0 ν(p ∨ q) 0 1 1 1 ν(p ∧ q) 0 0 1 0 ν(p → q) 1 1 1 0 ν(p ↔ q) 1 0 1 0 On remarque que p → q = ¬p ∨ q et que p ↔ q = (p ∨ ¬q) ∧ (¬p ∨ q). 2.1.3 Conséquences logiques Définition 2.1.3 Soit une formule F , et soient p1 , . . . , pn les atomes intervenant dans F . Une interprétation de F est une affectation des valeurs (0, 1) à p1 , . . . , pn . Parmi toutes les formules bien formées possibles, certaines ont des propriétés plus intéressantes. Définition 2.1.4 Une formule est dite valide ou appelée une tautologie si elle est vraie quelque soit son interprétation. Une formule est dite inconsistante ou appelée une antilogie ou une contradiction, si elle est fausse quelque soit son interprétation. Exemple 9 Soient p et q deux propositions : p ∧ q → p est une tautologie, (p → q) ∧ (p ∧ ¬q) est une antilogie. Définition 2.1.5 Soient p et q deux propositions, on dit que p implique q si la proposition p → q est une tautologie. On ecrit alors p ⇒ q. On dit que p est équivalent à q si p → q et q → p sont des tautologies. On écrit alors p ⇔ q Théorème 2.1.6 Une proposition p implique une proposition q si pour chaque interprétation où p est vraie, alors q est vraie. 2.1.4 2.1.4.1 Démonstration de formules Tables de Vérité Si la formule possède n atomes, il faut considérer 2n interprétations... 23 2.1.4.2 Arbres de Beth Un arbre de Beth est une méthode pour démontrer qu’une formule est une antilogie. Pour montrer que la formule F est une tautologie, il suffit de montrer que ¬F est une antilogie. Pour cela on développe ¬F en construisant un arbre (de Beth) de la manière suivante : Expression Arbre Expression P @ P ∨Q @ @ Q P P ∧Q 2.2 2.2.1 2.2.1.1 P Q P @ P →Q Arbre @ @ Q ¬(P → Q) Q La Logique des Prédicats Motivations Vers la logique des prédicats Regardons de plus près les propositions atomiques. En général, elles sont composées d’objets (ce dont on parle) et d’un prédicat (ce qu’on en dit). Par exemple : – « Socrate est mortel », le prédicat est mortel s’applique à l’objet Socrate. – « Socrate boit la ciguë », le prédicat boit s’applique aux objets Socrate et ciguë. On pourrait réécrire les propositions ci-dessus sous une forme qui met en évidence le prédicat et les objets : – « Socrate est mortel » s’écrira est mortel(Socrate) – « Socrate boit la ciguë » s’écrira boit(Socrate,ciguë) Dans certains domaines, dont les mathématiques, des notations particulières ont été inventées pour exprimer certains prédicats. On écrit par exemple 3 < 46 plutôt que inférieur(3,46) ou 1/2 = 3/6 plutôt que égal(1/2,3/6). 24 2.2.1.2 Les variables et les quantificateurs L’introduction de variables permet de formuler deux types d’énoncer. 1. Des énoncés universels dans lesquels les variables représentent tous les objets d’un domaine. Par exemple : – être humain(X) → est mortel(X) exprime le fait que si X est un être humain alors X est mortel. – X < X + 1 pour des nombres entiers exprime le fait que si X est un nombre alors il est strictement inférieur à X + 1. 2. Des énoncés exprimant l’existence de quelque chose, sans qu’on connaisse encore précisément cette chose. Par exemple : – Dans l’équation 3X − 8 = 22, X représente un nombre encore inconnu, qui existe et qui a la propriété que si on le multiplie par 3 et qu’on lui retranche 8, on obtient 22. – Dans père(Paul,X), X représente la personne qui est le père de Paul. 2.2.2 2.2.2.1 Le Langage L1 des prédicats Règles de grammaire Pour écrire des formules de logique, on commence par se donner un vocabulaire W composé de symboles de différents types : {x, y, z, x1 , y1 , z1 , . . .} {a, b, c, a1 , b1 , c1 , . . .} {f, g, h, f1 , g1 , h1 , . . .} {P, Q, R, P1 , Q1 , R1 , . . .} {¬, ∧, ∨, →, ↔} {(...); , } {∃, ∀} : : : : : : : des des des des des des des variables constantes fonctions prédicats connecteurs logiques séparateurs quantificateurs A chaque symbole de fonction et de prédicat est associé une arité qui est un entier positif ou nul a(f ), a(g), . . . , a(P ), a(Q), . . .. A partir de ce vocabulaire W , on construit les termes, les atomes et les formules bien formées (fbf). 1. Les termes sont définis récursivement sur W par : – Toute variable et toute constante est un terme – Si f est une fonction n-aire et t1 , t2 , . . . , tn sont des termes alors f (t1 , t2 , . . . , tn ) est un terme. 2. Si P est un prédicat k-aire et t1 , t2 , . . . , tk sont des termes alors P (t1 , t2 , . . . , tk ) est un atome. 25 3. Les formules bien formées (fbf) ou prédicats sont définies récursivement par : – Les prédicats atomiques sont des fbf, – Si F est une fbf, alors (F ) est une fbf, – Si F est une fbf et x est une variable, alors ∀x, (F ) et ∃x, (F ) sont des fbf, – Si F et G sont des fbf, alors (F ), ¬F , (F ∧ G), (F ∨ G), (F → G), (F ↔ G) sont des fbf. 2.2.2.2 Variables libres et variables liées Les variables qui apparaissent dans une formule sont dites libres ou liées, selon le principe suivant : – toutes les variables d’une formule sans quantificateurs sont libres, – si x est libre dans F , alors x est liée dans ∀x, (F ) et ∃x, (F ). Une formule dont toutes les variables sont liées est dite fermée. Par exemple : ∀x, (P (x) → ∃y, (Q(x, y))) Si ce n’est pas le cas, la formule est dite ouverte. 2.2.2.3 Substitution et instantiation L’opération de substitution consiste à remplacer certaines variables libres d’une formule F par des termes. On dira qu’une substitution instancie x si elle remplace x par un terme où n’apparaı̂t aucune variable. 2.2.3 2.2.3.1 Sémantique du calcul des prédicats Interprétation d’un vocabulaire Pour interpréter une formule construite avec le vocabulaire W , on se donne une interprétation de chaque symbole. Une interprétation I est constituée de : 1. un ensemble non-vide D appelé domaine de l’interprétation, 2. une fonction IC de l’ensemble des constantes dans D, 3. une fonction IF associant à chaque fonction à n arguments une application de Dn dans D, 4. une fonction IP associant à chaque prédicat à n arguments un sousensemble de Dn appelé ensemble de véracité de P et noté VP . 26 Par abus de notation, les fonctions d’interprétation IC , IF , IP sont souvent notées I. 2.2.3.2 Interprétation des formules Pour interpréter une formule, il faut : 1. Assigner des valeurs de D aux variables libres 2. Interpréter les fonctions f (t1 , t2 , . . . , tn )I = f I (tI1 , tI2 , . . . , tIn ) 3. Valuer les prédicats atomiques P (t1 , t2 , . . . , tk )I = vrai si (tI1 , tI2 , . . . , tIk ) ∈ VP 4. Valuer les formules composées comme en logique propositionnelle, par exemple : ¬F I = vrai si F I = faux 5. Valuer les formules quantifiées avec : ∀x, (F )I = vrai ssi F (x)I = vrai pour tout x ∈ D ∃x, (F )I = vrai ssi F (x)I = vrai pour au moins un élément x ∈ D 2.2.3.3 Modèles et conséquences logiques Définition 2.2.1 Soit F = {F1 , . . . , Fn } un ensemble de formules fermées, un modèle de F est une interprétation I tel que F1I = vrai, F2I = vrai,..., FnI = vrai. Définition 2.2.2 Un ensemble de formule fermées F est dite satisfaisable s’il existe au moins un modèle de F , autrement on dit que F est inconsistante où une antilogie. Par exemple F = {P (a, b), ¬∃y, (P (a, y))} est inconsistante. Définition 2.2.3 On appellera tautologie une formule F qui est vraie pour n’importe quelle interprétation. 27