INF431 : Au-delà de Java : Logique eetive Un peu d'histoire 1. Aristote (384-322 av. J.-C.) : le syllogisme (et les premiers para- J.-M. Steyaert doxes) Cours 14 : Logique propositionnelle Syllogisme = raisonnement qui fonde une onlusion sur deux propositions posées omme vraies : 20 mai 2009 Tous les hommes sont mortels Or Sorate est un homme Don Sorate est mortel. Amphi 10 : Introdution aux Systèmes distribués : P2P Amphi 11 : Protooles et Routages Amphi 12 : Programmation oopérative et Életion Le syllogisme peut parfois être un sophisme = semble logique, mais Amphi 13 : Réseaux et réseaux mobiles onduit à des absurdités. (La plupart du temps les syllogismes sont Amphi 14 : Calul propositionnel justes, logiques et don orrets.) Amphi 15 : Logique dédutive Exemples de syllogismes non valides : Amphi 16 : Logique de Horn Tout e qui est rare est her, Un heval bon marhé est rare, J.-M. Steyaert Éole polytehnique INF431 Promotion X2008 Don un heval bon marhé est her ( !) Tous les hats sont mortels & Or Sorate est mortel Don Sorate est un hat. ( ?) 1 3 2. Base du raisonnement oidental pendant tout le Moyen-Âge (G. d'Oam (1285-1349, logique ternaire plus onnu pour son rasoir : Eulide et les parallèles) Plan : Introdution à la logique : alul propositionnel 3. G. Boole (1815-1864) et A. de Morgan (1806-1925) fondent la logique moderne en l'algébrisant. 1. Bref historique : d'Aristote à P = NP ? 4. F. Frege (1848-1925) : onstrution axiomatique des mathématiques sur la base du raisonnement formel (B. Russel et son paradoxe ensembliste) 2. Fontions booléennes : exemples, représentations 5. K. Gödel (1906-1978) théorème d'inomplétude et A. Turing (19121954) théorie de la alulabilité 3. Calul propositionnel : satisfaisabilité des formules 6. Refondation algorithmique de la logique : alul propositionnel, logique premier ordre et au-delà, systèmes de preuve 4. Compléments : lauses de Horn, BDD (dans le poly) 7. Les iruits et les ordinateurs : omment les valider ? 5. Ciruits : PA Eletrial Engineering et plus sur Wikipedia... 2 4 Les circuits Noms spéiaux : la fontion la fontion négation à un argument, ¬(0) = 1, ¬(1) = 0 ; onjontion à deux arguments, que l'on érit usuelle- ment en notation inxe, la fontion notation inxe, la 0 ∧ 0 = 0, 0 ∧ 1 = 0, 1 ∧ 0 = 0, 1 ∧ 1 = 1 disjontion 0 ∨ 0 = 0, 0 ∨ 1 = 1, 1 ∨ 0 = 1, 1 ∨ 1 = 1 barre de Shäer , ; à deux arguments, enore appelée NAND, 0|0 = 1, 0|1 = 1, 1|0 = 1, 1|1 = 0 le ; à deux arguments, érite usuellement en ; multiplexeur , fontion de trois arguments, α(x, y, z) = si x alors y sinon z. Source Intel x y z α(x, y, z) SoC = System on Chip microprocesseurs de PC téléphones, DVD, TV, GPS 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 5 7 Source Intel 2 Une porte de base (NAND) Fontions booléennes : dénitions Soit B à deux éléments, vrai et faux : B := {⊤, ⊥} := {1, 0} := {V, F }, et. Def : On appelle fontion booléenne toute appliation totale de Bm p dans B , pour m, p ≥ 1. On onsidére des fontions de Bm dans B, pour m ≥ 1. Pour des raisons d'éonomie et de ommodité on adopte la représentation des valeurs de vérité par {0,1}. Il y a 2m appliations booléennes à m variables et à valeurs dans 6 B. Source Cadence Design Systems 8 6 Représentations La taille du résultat dépend beauoup de l'ordre des variables, mais m bits 1. Tableau : taille (m + 1) 2 2. Table ompate : taille on ne sait pas la prédire failement (i.e. sans onstruire l'arbre) : ave 2m alul de la position du bit à partir des valeurs des entrées : T[ν(x)℄, ν(x) = où P p(x, y, z), le dag a taille 5 pour l'ordre bi2i f (x) = x y z pz (x, y, z) 3. Arbres : les variables sont ordonnées arbitrairement et on onstruit un arbre binaire omplet, exemple pour le multiplexeur : 0 x y 0 z x, y, z et 7 pour z, x, y . bits de la dernière ligne, néessite le 0 1 1 0 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 (x, y, z) 1 (z, x, y) Un problème voisin est elui de la reherhe de blos monovalués dans la table (impliquants premiers). La reherhe de solutions minimales 0 α(x, y, z) 1 0 1 0 0 1 1 est d'une omplexité exponentielle . 9 11 Expressions booléennes : bases de fontions Dérire les fontions booléennes sous la forme d'expressions algé- 4. Arbres réduits ou dag (direted ayli graph) briques dont les valeurs sont elles données par le tableau ou l'arbre On partage les sous-arbres identiques, le multiplexeur : 0 1 0 x des setions préédentes. (automates nis/expressions régulières) 1 Def : On appelle algèbre de Boole tout ensemble 0 1 0 1 y 0 1 0 trois opérateurs 1 : + et . binaires et ¬ S sur lequel existent unaire. Deux éléments de S sont distingués et notés 0 et 1. Les opérateurs vérient les axiomes 0 1 0 1 0 1 z 0 suivants : 1 a + b = b + a et a.b = b.a ; a + (b + c) = (a + b) + c et a.(b.c) = (a.b).c ; distributivité : a.(b + c) = (a.b) + (a.c) et a + (b.c) = (a + b).(a + c) ; idempotene : a + a = a et a.a = a ; involutivité : ¬¬a = a ; omplémentarité : ¬0 = 1 et ¬1 = 0 ; a + ¬a = 1 et a.¬a = 0 ; ommutativité : assoiativité : 0 1 0 1 α(x, y, z) 0 1 0 1 Prop : On gagne au moins un fateur 2 et en moyenne la taille du ( tiers exlus ) m dag est O(2 /m). absorption : 1 + a = 1 et 0.a = 0 ; 0 + a = a et 1.a = a ; Morgan : ¬(a + b) = ¬a.¬b neutralité : lois de de 10 et ¬(a.b) = ¬a + ¬b. 12 Voabulaire et Propriétés {a, b, c, d, ...} Formes normales et minimales : évaluation des expressions : variables booléennes > algèbre de Boole A. littéral : variable λ = a ou sa négation λ = ¬a. monme : terme formé d'un produit de littéraux : λ1 λ2 ...λh . lause : terme formé d'une somme de littéraux : λ1 + λ2 + ... + λh . une somme de monmes est forme disjontive et un produit de lauses est forme onjontive. f A m variables m variables, Forme normale disjontive (FND), disjontion de monmes et don normalisés . Dual de la forme normale disjontive : onjontion de lauses ou forme normale onjontive (FNC). Les formes normales sont uniques à isomorphisme près. La FNC du multiplexeur : Toute fontion booléenne de est représentable par une expression booléenne de à dont la taille est propor- . tionnelle au nombre de valeurs 1 de la fontion. (Faire la somme des + + monmes valant 1) : multiplexeur. ¬ Chaque fontion booléenne possède une innité d'expressions qui la désignent. y x z x 13 On appelle base pour les fontions booléennes tout système ni d'opé- rateurs qui permet de onstruire des expressions représentant toutes les fontions booléennes. {+, ., ¬} de l'algèbre de Boole lassique forment une {+, ¬} et {., ¬} forment également des bases, et {α}, Les opérateurs base. De fait l'opérateur multiplexeur, en forme une à lui seul. Preuve : On sait que {+, ., ¬} forme une base. Il sut don de traduire haune de es fontions dans haun des trois systèmes proposés. x + y = ¬(¬x.¬y) au moyen des lois de de Morgan, e qui prouve que {., ¬} est une base. Semblablement ¬x = α(x, 0, 1) et x.y = α(x, y, 0), e qui établit que {α} permet aussi d'exprimer toutes Par exemple, les fontions. Parmi toutes les fontions de deux variables elles qui permettent de onstruire des bases et de répondre à la question : peut-on faire une base ave seulement {+, .} ? 14 15 Un algorithme réursif de mise en FNC (et en FND dualement) : (* le type Lit = Var ou NVar : variable ave negation ou non *) (* le type Exp = Lit | - Exp | . Exp Exp | + Exp Exp en notation prefixe * funtion FND(Exp e) = { if (Lit(e)) {return(e)}; ase (opExp(e)): { (* extrait l'operateur *) {- : return(morganC(FNC(arg1(e))))}; (* arg1 et arg2 *) {+ : return(+(FND(arg1(e)),FND(arg2(e))))}; (* extraient les argument {. : return(mapmul(FND(arg1(e)),FND(arg2(e))))};}} funtion FNC(Exp e) = { if (Lit(e)) {return(e)}; ase (opExp(e)): { {- : return(morganD(FND(arg1(e))))}; {. : return(.(FNC(arg1(e)),FNC(arg2(e))))}; {+ : return(mapplus(FNC(arg1(e)),FNC(arg2(e))))};}} 16 funtion morganC(Exp e) = { (* e est en FNC *) if (Lit(e)) {return(-e)}; (* on retourne la negation de e *) return(+(morganC(arg1(e)),morganC(arg2(e))));} funtion morganD(Exp e) = { (* e est en FND *) if (Lit(e)) {return(-e)}; (* on retourne la negation de e *) return(.(morganD(arg1(e)),morganD(arg2(e))));} Des formules aux iruits funtion mapmul(Exp f,Exp g) = { (* f et g sont en FND *) if (Mon(f) && Mon(g)) {return(.(f,g))}; (* deux monomes *) if (Mon(f)) {return(+(.(f,arg1(g)),mapmul(f,arg2(g))))}; return(+(mapmul(arg1(f),g),mapmul(arg2(f),g)));} Du séquentiel au parallèle... funtion maplus(Exp f,Exp g) = { (* f et g sont en FNC *) if (Cls(f) && Cls(g)) {return(+(f,g))}; (* deux lauses *) if (Cls(f)) {return(.(+(f,arg1(g)),maplus(f,arg2(g))))}; return(.(maplus(arg1(f),g),maplus(arg2(f),g)));} Le temps de alul est prépondérant 17 19 Circuit : propagation de retenue Exemple : (a1 + a2)(b1 + b2)...(j1 + j2), variables, se développe sous FND en variables, ab...j , produit de 10 lauses de deux 210 = 1024 monmes de 10 haque variable étant indiée par 1 ou 2. Prop : Le oût de la transformation en FNC ou FND est en général r 0= 0 a0 b0 + + a 1 b + + r1 exponentiel en la taille de la formule. La taille de la formule représentant une fontion est-elle souvent petite ou réduite ? Existe-t-il des limites intrinsèques ? On montre dans le as des formules onstruites ave la fontion s0 1 s r 1 Pour n bits temps n 2 multiplexeur , ( résultat est valable en toute généralité,) que presque toutes les fontions ont de très grandes formules. Thm : La taille des formules minimales pour une fontion booléenne de m m variables est supérieure à 2m/2 log2 m ave probabilité 1 quand a2 b2 + + s2 r3 tend vers l'inni. 18 20 12 Additionneur von Neumann Évidenes ? Prop : Toute formule du alul propositionnel est équivalente à une formule sous forme normale onjontive et à une formule sous forme normale disjontive. On note Pour n bits temps log(n) E⊢F Prop : Soit E⊢F Alors, Preuve : Si F E le fait que F est dédutible de E. F un ensemble de formules, ni ou non, et si et seulement si l'ensemble E ⊢ F, E ∪ {¬F } est ontraditoire. E alors toute assignation satisfaisant et par onséquent donne à ¬F une formule. la valeur 0 ; don satisfait aussi E ∪ {¬F } est ontraditoire. Thm : Un ensemble de formules est ontraditoire si et seulement si un de ses sous-ensembles nis l'est. 23 21 13 Preuve Calul propositionnel et logique : Un des sens est trivial. Pour la réiproque, on suppose, a ontrario, que tout sous-ensemble ni de onstruit par réurrene une assignation Étant donnée une formule propositionnelle : la formule est-elle tou- une innité de variables) et satisfaisant jours vraie ( On ordonne les variables : tautologie) ? la formule est-elle vraie pour au moins une assignation de valeurs à ses variables (satisfaisable) ? variables, et Ek νk ν E E est satisfaisable, et on innie (ar il y a forément tout entier. est la restrition de ν aux k premières le sous-ensemble des formules érites sur es k va- Ek est riables. Et plus généralement pour un ensemble (éventuellement inni) de formules E : peut-on les satisfaire simultanément ou, au ontraire, xk+1 es formules sont-elles ontraditoires ? Enn, une formule F est-elle dédutible d'un ensemble Soit la suite des E de formules ? νk prolongeable en un est telle que, pour tout νk+1, Ek+1, k, νk , satisfaisant en donnant à la variable la valeur 0 ou 1, tout en laissant les autres variables d'indie inférieur inhangées. Et alors Soit pour un ertain Une assignation de valeurs aux variables qui rend toutes les formules satisfaisant k E est satisfaisable :-) on ne peut trouver auun νk (parmi les νk , il existe (νk , xk+1 = 0), valuations possibles) prolongeable. Et don quel que soit vraies en est un modèle. Un ensemble de formules qui n'a pas de toujours un sous-ensemble de modèle est ontraditoire. ni par (νk , xk+1 = 1) ; don Ek+1 Ek+1 non satisfait ni par n'est pas satisfaisable du tout et est ontraditoire ! D'où le théorème. 22 2k 24 L'algorithme de Davis et Putnam pour la satisfaisabilité E, Soit Prop : Tautologies, formules satisfaisables et ensembles ontradi- m variables se déident en un temps O(2m |E|), où E est la |E| sa taille. m d'essayer les O(2 ) valuations possibles sur l'ensemble des toires sur un ensemble de lauses non vides ni, dont auune n'est tautologique ; soit E. apparaît dans x une variable apparaissant ou dont la négation On note Ex ¬x x, le sous-ensemble des lauses ontenant donnée et E¬x (Il sut des lauses ne ontenant ni x, Lx ou sa négation le sous-ensemble des lauses ontenant ni ¬x et E6x le sous-ensemble ¬x. formules.) : supprime la variable x Peut-on trouver des algorithmes plus eaes ? lauses ; La dualité entre les deux problèmes préserve la omplexité des solu- une lause ne ontient que tions. vide notée Prop : Satisfaisabilité et Tautologie sont deux problèmes dont les omplexités sont reliées linéairement. Tout algorithme de omplexité f Lx(E¬x) pour l'un se transforme en un algorithme de omplexité O(f ) pour 3 ontient les lauses de x ou ¬x, ¬x E¬x dans un ensemble de privées du littéral ¬x. Si elle est ainsi réduite à la lause et dont la valeur de vérité est 0, puisqu'il est impossible de la satisfaire ! Soient alors P (E, x) = E6x ∪ Lx(Ex) et N (E, x) = E6x ∪ Lx(E¬x) les deux nouveaux ensembles de lauses à onsidérer. l'autre. De plus la satisfaisabilité en FNC est équivalente à la tautoPreuve : F E est satisfaisable si et seulement si l'un P (E, x) = Ex6 ∪ Lx(Ex) ou N (E, x) = E6x ∪ Lx(E¬x) Prop : Un ensemble de lauses logie en FND. est satisfaisable si et seulement si ¬F n'est pas tautolo- gique. des deux ensembles l'est. 25 27 On onstruit don un arbre de dédutions suessives qui est de Une lause est une tautologie si et seulement elle ontient au moins un littéral λ et sa négation ¬λ. λ et sa négation k, nombre de variables. Si toutes les feuilles de l'arbre ontiennent la lause vide Un monme est satisfaisable si et seulement si il ne ontient pas un littéral profondeur 3 alors la formule n'est pas satisfaisable ; si, au ontraire, au moins une des feuilles ne ontient que des lauses réduites à une seule variable et sans ontradition la formule est sa- ¬λ. tisfaisable d'après la proposition préédente. E Une formule en FNC est tautologique si et seulement si haune de p ses lauses l'est. Une formule en FND est satisfaisable si et seulement si l'un de ses q monmes l'est. D'où un algorithme naïf pour la tautologie : r (s)(r) (r + s) (s)(s) 3 Transformer la formule en FNC et vérier que haque lause vaut 1 ( !) (s)(q + r) (r + s)(q + s) (s)(s) (s)(s) (r + s) 3 s s 3 3 Idem pour la satisfaisabilité et la FND. 3 Pas très eae :-( Un arbre D-P sur la formule E = (p + q + ¬r)(p + r + s)(p + ¬q + s)(¬p + s)(¬s) On proède par frationnement des lauses : 26 28 . L'arbre de dédutions a dans la plupart des as une taille exponentielle en le nombre de variables. On doit herher à optimiser la stratégie heuristique pour aboutir le plus vite possible à une assignation satisfaisant la formule ou à une ontradition globale. On herhe alors des as partiuliers qui permettent d'éviter de développer deux sousarbres. Supposons par exemple que E¬x = ∅ N (E, x) = E6x ⊂ P (E, x) et, don, P (E, x) satisfait aussi N (E, x). pour quelque littéral toute assignation ν x, ; alors satisfaisant Un autre as utile est elui où une lause est réduite à un seul littéral λ. Comme L({λ}, λ) est la lause vide 3, l'ensemble P (E, λ) la ontient et est don ontraditoire. List of string litt = null; boolean DP(List_Exp e) = { if (e == null) {return true}; if (existelausevide(e)) {return false}; List_string litt = litteraux(e); // liste des litte'raux dans e for (l in litt) {if (formulevide (xtrtneg(e,l))) // auune lause ne ontient -l {if (DP(xtrtsans(e,l))) return true}; // reur^t sur sans l else {for ( in lause(e)) {if (lauseunit()) {l=litteral(); if (DP(xtrtsans(e,l) et elim(xtrtneg(e,l)))) return true;} else {if (DP(xtrtsans(e,l) et elim(xtrtneg(e,l)))) return true; if (DP(xtrtsans(e,l) et elim(xtrtpos(e,l)))) return true;}}} 31 29 La méthode de résolution (* Algorithme de Davis-Putnam a` la Java *) (* e est une liste de lauses; on utilise la fontion formulevide(e) a` re'sultat boole'en *) (* une lause est une liste de litte'raux; on utilise la fontion lausevide() a` re'sultat boole'en true si est vide et une fontion lauseunit() a` re'sultat boole'en true si est un litte'ral *) (* les fontions xtrtpos(e,l), xtrtneg(e,l) et xtrtsans(e,l) fabriquent respetivement les sous-ensembles de lauses de e ontenant l, ontenant -l et ne ontenant pas l *) (* la fontion elim(e,l) retourne la liste des lauses de e prive'es du litte'ral l *) (* la fontion litteraux(e) retourne la liste des litte'raux de e *) Def : Soient deux lauses (réduites) que x∈c la lause c et d, et ¬x ∈ d. On appelle résolvante ρx(c, d) = c ∪ d\{x, ¬x}. x une (c, d) (par et soit variable telle de rapport à c et d deux lauses réduites et x une variable telle que x ∈ c et ¬x ∈ d, alors si la formule {c, d} est satisfaisable, la résolvante ρx(c, d) l'est aussi. Prop : Soient Prinipe de l'algorithme : Soit E un ensemble de lauses. Une suite de lauses appelée dérivation par résolution de i ≤ n, ci est soit ck , pour j, k < i. résolution de E . élément de Si cn = 3, E, cn depuis E c1, c2, ..., cn si pour haque soit est la résolvante de deux la dérivation est appelée est 1≤ cj et réfutation par R(E, x) = E6x ∪ {ρx(c, d)|c ∈ Ex, d ∈ E¬x}. 30 x) 32 Thm : Soit E un ensemble de lauses, et soit est satisfaisable si et seulement si R(E, x) Preuve : Une valuation qui satisfait E6x E, x une variable. Alors, E l'est. satisfait aussi toutes les lauses c et d, partageant c et d le sont. Réiproquement, soit ν qui satisfait la résolvante R(E, x) de E ; ou bien P (E, x) ou bien N (E, x) est satisfait. Si P (E, x) ne l'est pas ; une ′ lause c au moins de P (E, x) ne l'est pas, alors que c = c ∪ {x} est ′ dans Ex ; or les résolvantes de c ave toutes les lauses d de E¬x sont satisfaites par ν ; don toutes ses lauses doivent être satisfaites une à une et par onséquent simultanément. Don N (E, x) est satisfait. de ainsi que toute résolvante de deux lauses, la variable x, puisque Cor : Soit E une formule en FNC et soit par résolution ; alors si l'assignation ν Beaucoup d'algorithmes difficiles ! c une lause qui en dérive satisfait E, elle satisfait aussi c. 33 • Compilation des spécifications en portes logiques • Optimisation logique • Portes physiques optimisées • Placement / routage des fils • Construction de jeux de tests • Constructions des masques (téra-octets) •... Beaucoup sont NP-Complets => heuristiques ! Une grande industrie: EDA*, ~5 milliards de $ * EDA = Electronic Design Automation 35 47 Thm : La formule E en FNC est ontraditoire si et seulement si elle admet une réfutation par résolution. {¬p, ¬q, s} FPGA = circuit programmable par logiciel {p} {¬q, s} portes logiques configurables routage configurable => téléchargement du circuit! {¬u, ¬s, w} {¬q, ¬u, w} {q} {¬u, w} {u} {w} {¬w} 3 Un arbre de réfutation pour l'ensemble de lauses E = {{¬p, ¬q, r}, {¬p, ¬q, s}, {¬t, ¬u, v}, {¬u, ¬s, w}, {p}, {q}, {t}, {u}, {¬w}}. 34 routeurs émulation petit volume prototypage recherche 36 50 La Semaine Prohaine Cours 11 : Introdution aux réseaux : Comment faire des aluls à plusieurs ? Aujourd'hui : PC de révision pour le CC1 de la semaine prohaine Et enn le PI C.C.C.P... 37