Langages de Spécification Partie 1: Spécifications en logique propositionnelle Master 1 Informatique Université Paris-Est Créteil 2012-2013
: Syntaxe, Sémantique et
Syntaxe Construction des formules Le vocabulaire du langage de la logique propositionnelle est composé : d un ensemble, fini ou dénombrable, de propositions notées p, q, r,... Dans la suite, nous notons les ensembles de propositions par les lettres P, Q,... ; de deux constantes : vrai (notée ) et faux (notée ), parfois notée 1 et 0 ; d un ensemble de connecteurs logiques : et (noté ), ou (noté ), non (noté ), implique (noté ), équivalent (noté ) ; les parenthèses : (,).
Syntaxe Construction des formules Soit P un ensemble de propositions. Les formules de la logique propositionnelle respectent la règle de formation BNF suivante : φ ::= p φ 1 φ 2 φ 1 φ 2 φ 1 φ 2 φ 1 φ 2 φ 1 (φ 1 ) Où, sont respectivement les constantes vrai et faux, p P est une proposition et φ 1, φ 2 sont des formules propositionnelles bien formées.
Syntaxe Quelques exemples de formules Voici quelques exemples de formules et leur lecture intuitive : la formule propositionnelle p (q r), peut être lue de la façon suivante p implique q et r, ou peut être également lue comme si p est vrai alors q et r doivent être vrais ; la formule propositionnelle (p q), peut-être lue de la façon suivante il est faux que p et q soient vrais (en même temps).
Syntaxe Ambiguïtés L utilisation de la notation infixe s accompagne de problèmes de lecture : Comment lire p q r? p q r?
Syntaxe Ambiguïtés L utilisation de la notation infixe s accompagne de problèmes de lecture : Comment lire p q r? p q r? Pour lever les ambiguïtés, on utilise les parenthèses ou des règles de priorité entre opérateurs : si op 1 a une plus grande précédence (priorité) que op 2 alors e 1 op 1 e 2 op 2 e 3 est équivalent à ((e 1 op 1 e 2 )op 2 e 3 ) Par ex :2 3 + 5 = (2 3) + 5 = 11 2 (3 + 5) = 16. si op 2 a une plus grande précédence (priorité) que op 1 alors e 1 op 1 e 2 op 2 e 3 est équivalent à (e 1 op 1 (e 2 op 2 e 3 )) Par ex :2 + 3 5 = 2 + (3 5) = 17. si op est associatif à gauche alors e 1 ope 2 ope 3 est équivalent à ((e 1 ope 2 )ope 3 ) Par ex : 10/2/5 = (10/2)/5 = 1 10/(2/5) = 25. Il faut donc fixer des règles de priorité entre opérateurs afin d avoir une lecture unique de la formule.
Syntaxe Règles de précédence en logique propositionnelle Ordre de précédence sur les opérateurs : et associativité à gauche pour,, et à droite pour. p q r se lit se lit se lit se lit se lit
Syntaxe Règles de précédence en logique propositionnelle Ordre de précédence sur les opérateurs : et associativité à gauche pour,, et à droite pour. p q r se lit p (q r) se lit se lit se lit se lit Remarque Les parenthèses permettent de contrecarrer ces règles, si elles ne conviennent pas. Elles permettent aussi de rendre une formule plus lisible, ou de ne pas devoir retenir les règles de précédence.
Syntaxe Règles de précédence en logique propositionnelle Ordre de précédence sur les opérateurs : et associativité à gauche pour,, et à droite pour. p q r se lit p (q r) p q p se lit se lit se lit se lit Remarque Les parenthèses permettent de contrecarrer ces règles, si elles ne conviennent pas. Elles permettent aussi de rendre une formule plus lisible, ou de ne pas devoir retenir les règles de précédence.
Syntaxe Règles de précédence en logique propositionnelle Ordre de précédence sur les opérateurs : et associativité à gauche pour,, et à droite pour. p q r se lit p (q r) p q p se lit p (q p) se lit se lit se lit Remarque Les parenthèses permettent de contrecarrer ces règles, si elles ne conviennent pas. Elles permettent aussi de rendre une formule plus lisible, ou de ne pas devoir retenir les règles de précédence.
Syntaxe Règles de précédence en logique propositionnelle Ordre de précédence sur les opérateurs : et associativité à gauche pour,, et à droite pour. p q r se lit p (q r) p q p se lit p (q p) p q r se lit se lit se lit Remarque Les parenthèses permettent de contrecarrer ces règles, si elles ne conviennent pas. Elles permettent aussi de rendre une formule plus lisible, ou de ne pas devoir retenir les règles de précédence.
Syntaxe Règles de précédence en logique propositionnelle Ordre de précédence sur les opérateurs : et associativité à gauche pour,, et à droite pour. p q r se lit p (q r) p q p se lit p (q p) p q r se lit (p q) r se lit se lit Remarque Les parenthèses permettent de contrecarrer ces règles, si elles ne conviennent pas. Elles permettent aussi de rendre une formule plus lisible, ou de ne pas devoir retenir les règles de précédence.
Syntaxe Règles de précédence en logique propositionnelle Ordre de précédence sur les opérateurs : et associativité à gauche pour,, et à droite pour. p q r se lit p (q r) p q p se lit p (q p) p q r se lit (p q) r p q se lit se lit Remarque Les parenthèses permettent de contrecarrer ces règles, si elles ne conviennent pas. Elles permettent aussi de rendre une formule plus lisible, ou de ne pas devoir retenir les règles de précédence.
Syntaxe Règles de précédence en logique propositionnelle Ordre de précédence sur les opérateurs : et associativité à gauche pour,, et à droite pour. p q r se lit p (q r) p q p se lit p (q p) p q r se lit (p q) r p q se lit ( p) q se lit Remarque Les parenthèses permettent de contrecarrer ces règles, si elles ne conviennent pas. Elles permettent aussi de rendre une formule plus lisible, ou de ne pas devoir retenir les règles de précédence.
Syntaxe Règles de précédence en logique propositionnelle Ordre de précédence sur les opérateurs : et associativité à gauche pour,, et à droite pour. p q r se lit p (q r) p q p se lit p (q p) p q r se lit (p q) r p q se lit ( p) q p q r s se lit Remarque Les parenthèses permettent de contrecarrer ces règles, si elles ne conviennent pas. Elles permettent aussi de rendre une formule plus lisible, ou de ne pas devoir retenir les règles de précédence.
Syntaxe Règles de précédence en logique propositionnelle Ordre de précédence sur les opérateurs : et associativité à gauche pour,, et à droite pour. p q r se lit p (q r) p q p se lit p (q p) p q r se lit (p q) r p q se lit ( p) q p q r s se lit p ((q r) s) Remarque Les parenthèses permettent de contrecarrer ces règles, si elles ne conviennent pas. Elles permettent aussi de rendre une formule plus lisible, ou de ne pas devoir retenir les règles de précédence.
Syntaxe Arbre correspondant à une formule La formule p q r s est donc équivalente à et donc son arbre de lecture est : p ((q r) s) p s q r
Sémantique La sémantique jusqu ici, on a vu la syntaxe des formules, qui ne sont rien d autre que des suites de caractères sans signification. la sémantique donne du sens aux formules, elle permet de les interpréter et de leur attribuer une valeur de vérité vrai ou faux. l interprétation des symboles de proposition est cependant libre et c est à nous de la fixer. On se donnera donc une une fonction d interprétation V pour l ensemble P de propositions considérées : V : P {vrai, faux} Cette fonction assigne à chaque proposition de P la valeur vrai ou la valeur faux. Dans la suite, nous utiliserons parfois le terme valuation, souvent utilisé dans la littérature, au lieu de fonction d interprétation. A partir d une fonction d interprétation V des symboles de proposition, nous allons voir comment interpréter les formules.
Sémantique La sémantique Définition La valeur de vérité d une formule propositionnelle φ formée à partir des propositions d un ensemble P, évaluée avec la fonction d interprétation V, est notée [[φ]] V. En particulier, on a [[φ]] V {vrai, faux}. La fonction [[φ]] V est définie par induction sur la syntaxe de φ de la façon suivante : φ =, dans ce cas, [[φ]]v = vrai ; φ =, dans ce cas, [[φ]]v = faux ; φ = p, dans ce cas, { [[φ]]v = V (p). faux si [[φ1]] φ = φ1, [[φ]] V = V = vrai vrai si [[φ 1]] V = faux φ = φ1 φ 2, [[φ]] V = vrai ssi [[φ 1]] V = vrai ou [[φ 2]] V = vrai φ = φ1 φ 2, [[φ]] V = vrai ssi [[φ 1]] V = vrai et [[φ 2]] V = vrai
Sémantique La sémantique φ = φ 1 φ 2, [[φ]] V = vrai ssi [[φ 1 ]] V = faux ou [[φ 2 ]] V = vrai φ = φ 1 φ 2, [[φ]] V = vrai ssi [[φ 1 ]] V = faux et [[φ 2 ]] V = faux ou [[φ 1 ]] V = vrai et [[φ 2 ]] V = vrai φ = (φ 1 ), [[φ]] V = [[φ 1 ]] V. Nous notons V =φ si et seulement si [[φ]] V = vrai, qui se dit V satisfait φ.
Sémantique La sémantique sous forme de tables de vérités L information contenue dans la définition précédente est souvent présentée sous forme de tables, appelées tables de vérité : vrai faux φ φ (φ) vrai faux vrai faux vrai faux
Sémantique La sémantique sous forme de tables de vérités φ 1 φ 2 φ 1 φ 2 φ 1 φ 2 φ 1 φ 2 φ 1 φ 2 vrai vrai vrai vrai vrai vrai vrai faux faux vrai faux faux faux vrai faux vrai vrai faux faux faux faux faux vrai vrai
Prenons l interprétation V 1 (p) = faux, alors on a : [[p]] V1 = faux [[ p]] V1 = vrai [[p p]] V1 = vrai [[p p]] V1 = faux [[p p]] V1 = vrai [[p p]] V1 = vrai [[ p p]] V1 = faux Prenons la formule φ = (p q) ( q r) et l interprétation V 2 (p) = V 2 (r) = vrai et V 2 (q) = faux. Pour calculer la valeur de vérité de φ, on calcule d abord les valeurs de vérité des sous-formules et on applique les tables de vérité. Donc [[φ]] V2 = vrai. (p q) ( q r) (vrai faux) ( faux vrai) (vrai faux) (vrai vrai) vrai (vrai vrai) vrai vrai vrai
Prenons la même formule φ = (p q) ( q r) et l interprétation V 3 (r) = vrai et V 3 (p) = V 3 (q) = faux. Donc [[φ]] V3 = faux. (p q) ( q r) (faux faux) ( faux vrai) (faux faux) (vrai vrai) faux (vrai vrai) faux vrai faux
On peut utiliser le principe de décomposition en sous-formule et l application des tables de vérité pour obtenir la valeur de vérité de φ pour toutes les interprétations possibles des variables p q r (p q) q ( q r) (p q) ( q r) vrai vrai vrai vrai vrai faux vrai faux vrai vrai faux faux faux vrai vrai faux vrai faux faux faux vrai faux faux faux
On peut utiliser le principe de décomposition en sous-formule et l application des tables de vérité pour obtenir la valeur de vérité de φ pour toutes les interprétations possibles des variables p q r (p q) q ( q r) (p q) ( q r) vrai vrai vrai vrai vrai vrai faux vrai vrai faux vrai vrai vrai faux faux vrai faux vrai vrai vrai faux vrai faux vrai faux faux vrai faux faux faux faux faux
On peut utiliser le principe de décomposition en sous-formule et l application des tables de vérité pour obtenir la valeur de vérité de φ pour toutes les interprétations possibles des variables p q r (p q) q ( q r) (p q) ( q r) vrai vrai vrai vrai faux vrai vrai faux vrai faux vrai faux vrai vrai vrai vrai faux faux vrai vrai faux vrai vrai vrai faux faux vrai faux vrai faux faux faux vrai faux vrai faux faux faux faux vrai
On peut utiliser le principe de décomposition en sous-formule et l application des tables de vérité pour obtenir la valeur de vérité de φ pour toutes les interprétations possibles des variables p q r (p q) q ( q r) (p q) ( q r) vrai vrai vrai vrai faux vrai vrai vrai faux vrai faux vrai vrai faux vrai vrai vrai vrai vrai faux faux vrai vrai vrai faux vrai vrai vrai faux vrai faux vrai faux vrai faux faux faux faux vrai faux vrai vrai faux faux faux faux vrai vrai
On peut utiliser le principe de décomposition en sous-formule et l application des tables de vérité pour obtenir la valeur de vérité de φ pour toutes les interprétations possibles des variables p q r (p q) q ( q r) (p q) ( q r) vrai vrai vrai vrai faux vrai vrai vrai vrai faux vrai faux vrai vrai vrai faux vrai vrai vrai vrai vrai vrai faux faux vrai vrai vrai vrai faux vrai vrai vrai faux vrai vrai faux vrai faux vrai faux faux faux faux faux vrai faux vrai vrai faux faux faux faux faux vrai vrai faux
p q (qui se lit ( p) q) p q p p q vrai vrai faux vrai vrai faux faux faux faux vrai vrai vrai faux faux vrai vrai Remarque : c est la même table de vérité que pour l implication : p q p q vrai vrai vrai vrai faux faux faux vrai vrai faux faux vrai On dira que les deux formules p q et p q sont équivalentes.
Remarques sur l implication l implication φ 1 φ 2 modélise le raisonnement si-alors : Si φ 1 est vraie, ALORS φ 2 est vraie aussi. le cas où φ 1 est faux ne nous intéresse pas dans l implication. par conséquent, si φ 1 est faux, alors peu importe la valeur de vérité de φ 2, l implication φ 1 φ 2 reste vraie. Autrement dit le faux implique le vrai, et le faux, mais le vrai doit toujours impliquer le vrai.
Un dernier exemple : φ = (p q) ( p q) Calculons la table de vérité : p q p q (p q) p q p q φ vrai vrai vrai faux faux faux faux vrai vrai faux faux vrai faux vrai vrai vrai faux vrai faux vrai vrai faux vrai vrai faux faux faux vrai vrai vrai vrai vrai pour toute les interprétations possibles des propositions, φ est vraie. On dira dans ce cas que φ est valide. En fait, on a montré ici que les deux formule (p q) et p q sont équivalentes. C est une des lois de Morgan.
Exercices Dire pour les interprétations V et les formules φ suivantes si V = φ : 1. V (p) = vrai, V (q) = faux et φ = (p q) (p q) 2. V (p) = V (q) = faux et φ = (( p q) ( q p)) (p q) 3. V (p) = faux et V (q) = vrai et φ = (( p q) (q (p q)) 4. V (p) = V (r) = vrai et V (q) = faux et φ = (( r p q) s) (p q r s) 5. V (p) = V (q) = faux et V (r) = vrai et φ = (p (q r)) (( p q) (p r)). Construire les tables de vérité pour les formules suivantes : 1. (p q) (q p) 2. p (p q) q 3. (p (q r)) (p q) (p r) 4. (p (q r)) ((p q) r)
Satisfaisabilité et Validité Validité et Satisfaisabilité Voici deux définitions importantes : Définition (Satisfaisabilité) Une formule propositionnelle φ est satisfaisable si et seulement si il existe une fonction d interprétation V pour les propositions de φ, telle que V =φ. Définition (Validité) Une formule propositionnelle φ est valide si et seulement si pour toute fonction d interprétation V pour les propositions de φ, on a V =φ.
Satisfaisabilité et Validité formule satisfaisable valide oui oui p oui non V (p) = vrai V (p) = faux p oui non V (p) = faux V (p) = vrai (p q) ( q r) oui non voir table précédente voir table précédente p p non non p q ( q p) non non p p oui oui (p q) (q p) oui oui
Satisfaisabilité et Validité Application importante de la notion de validité Définition Deux formules φ et ψ sont dites équivalentes si la formule φ ψ est valide. On notera φ ψ pour signifier que φ et ψ sont équivalentes. dans une formule, on peut substituer une sous-formule par une autre équivalente sans changer la sémantique de la formule de départ par exemple, dans la formule γ = (p q) (p r) on peut remplacer la sous-formule (p r) par ( p r) et on obtient la formule suivante, qui est équivalente à γ : γ = (p q) ( p r) l application d équivalences simples va nous permettre de simplifier des formules, et de les mettre sous des formes particulières
Satisfaisabilité et Validité Quelques équivalences Pour toutes formules φ 1, φ 2, φ 3, on a : φ 1 φ 1 (double négation) (φ 1 φ 2 ) ( φ 1 φ 2 ) (loi de De Morgan pour le et ) (φ 1 φ 2 ) ( φ 1 φ 2 ) (loi de De Morgan pour le ou ) φ 1 (φ 2 φ 3 ) (φ 1 φ 2 ) (φ 1 φ 3 ) (distributivité du et ) φ 1 (φ 2 φ 3 ) (φ 1 φ 2 ) (φ 1 φ 3 (distributivité du ou ) φ 1 φ 2 φ 2 φ 1 (contraposition)
Satisfaisabilité et Validité Lien entre satisfaisibilité et validité Théorème Une formule propositionnelle φ est valide ssi sa négation φ n est pas satisfaisable. Par conséquent, si on dispose d un algorithme qui décide si une formule est satisfaisable ou non, on obtient un algorithme qui décide si la formule est valide, il suffit de tester la (non-)satisfaisabilité de sa négation.
Satisfaisabilité et Validité Diagramme
Satisfaisabilité et Validité Comment tester la satisfaisabilité d une formule?
Satisfaisabilité et Validité Comment tester la satisfaisabilité d une formule? on a vu la méthode des tables de vérité : tester toutes les interprétations de propositions jusqu à ce qu on en trouve une qui satisfait la formule problème : quelle est la complexité d un tel algorithme? combien d interprétations faut-il tester si la formule contient n propositions?
Satisfaisabilité et Validité Comment tester la satisfaisabilité d une formule? on a vu la méthode des tables de vérité : tester toutes les interprétations de propositions jusqu à ce qu on en trouve une qui satisfait la formule problème : quelle est la complexité d un tel algorithme? combien d interprétations faut-il tester si la formule contient n propositions? il faut essayer, dans le pire des cas (c est à dire le cas où la formule n est pas satisfaisable), 2 n interprétations : cet algorithme a donc une complexité exponentielle dans le nombre de propositions ce n est pas raisonnable pour les applications que nous allons aborder, car nous allons générer des formules contenant plusieurs centaines de propositions. nous allons maintenant étudier un algorithme plus intelligent : la méthode des tableaux sémantiques.
Satisfaisabilité et Validité Remarques sur la complexité du problème SAT le problème de satisfaisabilité d une formule propositionnelle, appelé problème SAT, est dans la classe NP (voir cours calculabilité/complexité) actuellement, on ne sait toujours pas s il existe un algorithme pour ce problème dont la complexité en temps est polynomiale. la plupart des scientifiques pensent que ce n est pas le cas, mais personne n a été capable de le montrer. ce défit scientifique est plus connu sous la question P NP : est-ce qu il existe un problème résoluble en temps non-déterministe polynomial qui n est pas résoluble en temps polynomial? le premier qui aura la réponse (et la preuve de son affirmation) gagnera 1.000.000$ 1 1. Millenium Prize Problems du Clay Mathematics Institute http://www.claymath. org/millennium/
Satisfaisabilité et Validité Pourquoi SAT est-il si intéressant? beaucoup de problèmes pratiques intéressants se trouvent dans la classe NP, voir http://www.nada.kth.se/~viggo/problemlist/. par exemple le problème du voyageur de commerce : étant donné une distance d et n villes, est-il possible de construire un cycle de longueur au plus d qui passe par les les n villes exactement une fois (sauf la ville de départ). Application : optimiser la trajectoire d une fraiseuse, d un bus scolaire, d un camion de livraison, etc... autre exemple, le bin-packing : étant donné k boîtes de contenance différentes, n objets de volumes différents, et d 0 un entier, est-il possible de ranger les n objets en utilisant au plus d boîtes. Application : rangement de fichiers sur un support informatique, remplissage de camions ou containers... tous les problèmes de la classe NP se réduisent au problème SAT en temps polynomial. En d autre terme, pour résoudre une instance I du problème du voyageur de commerce ou du bin-packing, il est possible de construire, en temps polynomial, une formule de la logique propositionnelle φ I telle que φ I est satisfaisable ssi I a une solution il est donc important d avoir de bons algorithmes pour SAT