1 Sommare Lycée Lous-le-Grand Année 2003 2004 formules de la logque propostonnelle ; sémantque : l évaluaton des formules ; tautologes, formules satsfables, contradctons ; tables de vérté ; fonctons booléennes ; équvalence des formules ; formes normales conjonctves et dsjonctves. opton nformatque 1/25 2/25 2 Formules de la logque propostonnelle Les formules propostonnelles sont défnes à l ade de constantes, varables et connecteurs. Les constantes sont V et F ; les varables forment un ensemble dénombrable, et on les désgnera c par des lettres romanes : p, q, ; on dspose d un connecteur unare, et de quatre connecteurs bnares :,, et. L ensemble des formules se défnt alors récursvement : Le nombre de connecteurs n est pas lmté, certans ntrodusent le ou exclusf, ou le nand (la négaton de la conjoncton). On en reparlera plus tard. On ne revent pas non plus sur la représentaton par des arbres des formules de la logque propostonnelle. toute constante est une formule ; toute varable est une formule ; s e est une formule et s est un connecteur unare, ( e) est une formule ; s e et f sont des formules et s est un connecteur bnare, (e f) est une formule. Comme d habtude les règles de prorté entre opérateurs permettent d évter l accumulaton des parenthèses : p q r p r est (((p q) r) (p r)). 3/25 4/25
On pourra utlser le typage suvant en Caml : type formule = V F Varable of strng Neg of formule Ou of formule lst Et of formule lst Implque of formule * formule Equvalent of formule * formule ;; On notera qu on a antcpé sur l assocatvté de et de, qu s éclarcra quand on parlera de sémantque. 3 Sémantque : évaluaton des formules Défnr une sémantque sur les formules, c est défnr une foncton d évaluaton qu leur assoce, pour chaque contexte, une valeur de vérté. Plus précsément, on désgne par B l ensemble des valeurs de vérté, que nous noterons c {0, 1} ; par F l ensemble des formules propostonnelles et par V l ensemble (dénombrable) des varables. Un contexte µ est une applcaton de V dans B. L évaluaton d une formule f F dans un contexte µ se note [µ]f, c est un élément de B. On pourra noter eval µ : f [µ]f la foncton d évaluaton dans le contexte µ. 5/25 6/25 eval µ se défnt récursvement de la façon suvante : 4 Vocabulare [µ]v = 1 et [µ]f = 0 ; pour toute varable p, [µ]p = µ(p) ; s e est une formule, [µ]( e) = 1 [µ]e = ε ([µ]e) ; s e et f sont des formules : [µ](e f) = ε ([µ]e,[µ]f) = ([µ]e) ([µ]f) [µ](e f) = ε ([µ]e,[µ]f) = max([µ]e,[µ]f) [µ](e f) = ε ([µ]e,[µ]f) [µ](e f) = ε ([µ]e,[µ]f) Une formule logque e est une tautologe s pour tout contexte µ on a [µ]e = 1 ; une contradcton s pour tout contexte µ on a [µ]e = 0 ; satsfable s l exste au mons un contexte µ pour lequel [µ]e = 1. On n a pas encore vrament moyen de les dstnguer... Pour tout connecteur bnare c, on fournt la foncton ε c : B B B. En partculer : ε (0,0) = ε (0,1) = ε (1,1) = 1 et ε (1,0) = 0 ; ε (0,0) = ε (1,1) = 1 et ε (1,0) = ε (0,1) = 0. 7/25 8/25
5 Tables de vérté Par nducton structurelle sur les formules on peut faclement montrer le Sot e une formule logque. L ensemble V(e) des varables qu y fgurent est un ensemble fn. S µ 1 et µ 2 sont deux contextes qu coïncdent sur V(e), alors [µ 1 ]e = [µ 2 ]e. Autrement dt l sufft de connaître les valeurs des contextes sur les varables qu apparassent effectvement dans la formule, ce qu est assez évdent, non? C est ans que pour tester s une formule e telle que n = V(e) est une tautologe, l faudra tester les 2 n possbltés qu correspondent aux valeurs d un contexte sur les varables. Dresser la table de vérté de e, c est dresser un tableau à 2 n lgnes et (au mons) n + 1 colonnes. Les n premères colonnes contennent les valeurs des varables qu apparassent dans e, et la dernère la valeur de e, chaque lgne correspondant à un contexte dfférent. En pratque, on ajoute souvent des colonnes pour les valeurs des sousexpressons de l expresson consdérée. On lt sur la dernère colonne s e est une tautologe, une contradcton, ou ben satsfable. Cet algorthme pour décder s une formule est une tautologe est en O(2 n ). On ne connaît pas de melleur algorthme. On ne sat pas s l en exste. 9/25 10/25 Voc par exemple la table de vérté de (p q) ( p r) : p q r (p q) ( p r) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 6 Fonctons booléennes Une foncton booléenne à p varables est smplement une applcaton de B p dans B. S e est une formule et s n = V, on peut lu assocer une foncton booléenne de n varables, notée ε e : chaque n-uplet de booléens défnt un contexte (on peut affecter n mporte quelle valeur aux varables qu ne fgurent pas dans e) dans lequel on évalue l expresson e. Remarque Remarquons que ε (p q) = ε, et de même ε (p q) = ε pour tout connecteur bnare et ε ( p) = ε. En fat, toute foncton booléenne admet ce type de représentaton. 11/25 12/25
L dée est la suvante : sot ϕ : B n B une foncton booléenne, et nommons p 1, p 2,..., p n les varables. On dresse la table des valeurs de ϕ: c est un tableau à 2 n lgnes. On cherche à construre une formule, où n ntervennent que les varables p, dont ce tableau sot la table de vérté. On a le chox entre deux approches : on regarde les lgnes pour lesquelles le résultat vaut 1, et on dt l faut et l sufft que l on sot dans l un ou l autre de ces cas. Ou ben, on regarde les lgnes pour lesquelles le résultat vaut 0, et on dt l faut et l sufft que l on ne sot dans aucun de ces cas. Utlsons par exemple la premère approche, et notons 1 ϕ l ensemble des n-uplets de booléens sur lesquels ϕ vaut 1. Autrement dt : 1 ϕ = ϕ 1 ({1}). S p est une varable, notons p 0 = p et p 1 = p. Avec ces notatons on dspose du La foncton ϕ est représentée par la formule f suvante, c est-à-dre que ε f = ϕ avec : ( n ) f =. (b 1,b 2,...,b n) 1 ϕ La démonstraton est lassée au lecteur attentf et...courageux. =1 p b 13/25 14/25 En utlsant la deuxème approche, on obtendrat évdemment le théorème dual : La foncton ϕ est représentée par la formule g suvante, c est-à-dre que ε g = ϕ avec : ( n ) g =. (b 1,b 2,...,b n) 0 ϕ =1 p 1 b On a ben sûr noté 0 ϕ = ϕ 1 ({0}) l ensemble des n-uplets de varables où s annule ϕ. Là encore la démonstraton se ferat en vérfant que la table de vérté de g coïncde avec le tableau de valeurs de ϕ. 7 Équvalence des formules Deux formules e et f sont dtes équvalentes, et on note e f, s pour tout contexte µ on a [µ]e = [µ]f. Pour vérfer algorthmquement cette équvalence, on utlse le théorème suvant Deux formules e et f sont équvalentes s et seulement s la formule e f est une tautologe. C est une conséquence assez mmédate de ce que ε (x,y) = 1 s et seulement s x = y. 15/25 16/25
On vérfe asément les résultats suvants, pour deux varables p et q quelconques : (p q) p q (p q) p q p q p q p q q p p q (p q) (q p) p q (p q) ( p q) On amerat en dédure les mêmes résultats quand p et q désgnent non seulement des varables mas même des sous-formules... Substtuton dans une formule Sot f une formule, p 1, p 2,..., p k des varables deux à deux dstnctes, et e 1, e 2,..., e k des formules quelconques. On défnt nductvement la formule obtenue par substtuton dans f de e à chaque p, qu on note {e 1 /p 1,e 2 /p 2,...,e k /p k }f de la façon suvante : {e 1 /p 1,...,e k /p k }V = V et {e 1 /p 1,...,e k /p k }F = F; s p est une varable, { e, s p = p {e 1 /p 1,...,e k /p k }p = ; p, s p n est aucune des varables p 1,..., p k ; {e 1 /p 1,...,e k /p k }( f) = ({e 1 /p 1,...,e k /p k }f); pour tout connecteur bnare, {e 1 /p 1,...,e k /p k }(e f) = ({e 1 /p 1,...,e k /p k }e) ({e 1 /p 1,...,e k /p k }f). 17/25 18/25 On démontre alors par nducton structurelle le Sot p 1, p 2,..., p k des varables deux à deux dstnctes, f une formule quelconque, et enfn µ un contexte quelconque. On dspose alors de [µ]({e 1 /p 1,e 2 /p 2,...,e k /p k } f) = [µ ]f, où µ est le contexte défn par µ (p) = µ(p) s p n est pas une des varables p, et µ (p ) = [µ]e pour 1 k. On est mantenant en mesure de démontrer un nouveau théorème qu permet de généralser au cas des sous-formules les équvalences de formules déjà vues plus haut. Sot p 1, p 2,..., p k des varables deux à deux dstnctes, f et g deux formule quelconques, et enfn e 1, e 2, e k des formules quelconques. On suppose que f g. Alors : {e 1 /p 1,e 2 /p 2,...,e k /p k } f {e 1 /p 1,e 2 /p 2,...,e k /p k } g. En effet, pour tout contexte µ: [µ]({e 1 /p 1,...,e k /p k } f) = [µ ]f = [µ ]g = [µ]({e 1 /p 1,...,e k /p k } g). 19/25 20/25
8 Formes normales conjonctves, dsjonctves Un lttéral est ou ben une varable, ou ben la négaton d une varable. Donc une formule du genre p ou p. Notons au passage que la négaton d un lttéral est équvalente à un lttéral. Une clause est une dsjoncton de lttéraux, c est-à-dre une formule du genre l 1 l r où chaque l est un lttéral. Une forme normale conjonctve est une conjoncton de clauses, c est-à-dre une formule du genre c 1 c k où chaque c j est une clause. Une forme normale dsjonctve est une dsjoncton d une conjoncton de lttéraux. Nous voulons montrer que toute formule est équvalent à une forme normale conjonctve (resp. dsjonctve). Énonçons rapdement quelques lemmes. Lemme Lemme Lemme Toute négaton d un lttéral est équvalente à un lttéral. La négaton d une dsjoncton (resp. d une conjoncton) de lttéraux est équvalente à une conjoncton (resp. une dsjoncton) de lttéraux. La négaton d une dsjoncton de conjonctons (resp. d une conjoncton de dsjonctons) de lttéraux est équvalente à une conjoncton de dsjonctons (resp. une dsjoncton de conjonctons) de lttéraux. 21/25 22/25 Nous sommes en mesure de démontrer par nducton structurelle le Toute formule f est équvalente à une forme normale conjonctve f et à une forme normale dsjonctve f +. On peut se contenter des connecteurs bnares et, comme l a été prouvé plus haut. Le cas des constantes est facle : V + = V = p p, F + = F = p p. Le cas des varables auss : p + = p = p. Le cas de la négaton tout autant, grâce aux lemmes précédents. Reste le cas d une formule e = f g ou e = f g, pour laquelle on connaît déjà f +, f, g +, g. On dspose évdemment de (f g) + = f + g + et de (f g) = f g. Consdérons mantenant (f g). On dspose de f = f et g = g, où les f et les g sont des dsjonctons de lttéraux. Mas f g f g = ( f ) ( g j ) (f g j ) où on j,j reconnaît une conjoncton de dsjonctons de lttéraux. De même f g f + g + = ( f ) ( g j) (f g j) où on j,j reconnaît une dsjoncton de conjonctons de lttéraux. 23/25 24/25
Utlsaton des tables de vérté Le lecteur attentf aura remarqué que les théorèmes que nous avons énoncés pour la représentaton des fonctons booléennes par des formules, fasaent ntervenr des formes normales conjonctves ou dsjonctves : assocant à une formule e la foncton booléenne ε e, et applquant les théorèmes en queston, on en dédut de nouvelles formules, sous formes normales, qu seront équvalentes à e. C est, en pratque, la méthode la plus naturelle et la plus rapde pour obtenr une forme normale (qu elle sot dsjonctve ou conjonctve) d une formule propostonnelle. 25/25