Vous êtes sur la page 1sur 16

Cours Logique et Calculabilit

L3 Informatique 2013/2014

Texte par Sverine Fratani, avec addenda par Luigi Santocanale Version du 14 janvier 2014

Table des matires


1 Introduction 1.1 Pourquoi la logique ? . . . . . . . . . . . . 1.1.1 La formalisation du langage . . . . 1.1.2 La formalisation du raisonnement . 1.2 Logique et informatique . . . . . . . . . . 1.3 Contenu du cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 5 5 6 6 7 7 7 8 10 12 16 17 17 17 18 19 19 20 21 23 26 28 28 31 32 32 32 35 35 40 43 43 43 43 44 44 44 45 45 45

2 Calcul propositionnel 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . 2.2 Syntaxe du calcul propositionnel : les formules . 2.3 Smantique du calcul propositionnel . . . . . . . 2.3.1 Modles dune formule . . . . . . . . . . . 2.3.2 La consquence logique (dun ensemble de 2.3.3 Dcidabilit du calcul propositionnel . . . 2.4 Equivalence entre formules . . . . . . . . . . . . . 2.4.1 La substitution . . . . . . . . . . . . . . . 2.4.2 Equivalences classiques . . . . . . . . . . 2.4.3 Formes normales . . . . . . . . . . . . . . 2.5 Le problme SAT . . . . . . . . . . . . . . . . . . 2.5.1 Dnition du problme . . . . . . . . . . . 2.5.2 Un problme NP-complet . . . . . . . . . 2.5.3 Modlisation - Rduction SAT . . . . . 2.5.4 Algorithmes de rsolution de SAT . . . . 2.5.5 Sous-classes de SAT . . . . . . . . . . . . 2.5.6 Les SAT-solvers . . . . . . . . . . . . . . . 2.5.7 Applications . . . . . . . . . . . . . . . . 2.5.8 Sur la modlisation . . . . . . . . . . . . . 2.6 Systmes de preuve . . . . . . . . . . . . . . . . . 2.6.1 Dnition dun systme formel . . . . . . 2.6.2 La rsolution . . . . . . . . . . . . . . . . 2.6.3 Correction, compltude et dcidabilit . . 2.6.4 Systmes de preuve la Hilbert . . . . . . 2.7 Rsum . . . . . . . . . . . . . . . . . . . . . . . 3 Calcul des prdicats 3.1 Introduction . . . . . 3.2 Prliminaires . . . . 3.2.1 Les fonctions 3.2.2 Les relations 3.3 Un exemple . . . . . 3.3.1 Interprtation 3.3.2 Interprtation 3.3.3 Interprtation 3.3.4 Interprtation . . . . . 1 2 3 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . formules) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

TABLE DES MATIRES

3.4

3.5

3.6

3.7

3.8

3.3.5 Interprtation 5 . . . . . . . . . . . . . . . . . . 3.3.6 Interprtation 6 . . . . . . . . . . . . . . . . . . 3.3.7 Comparaison des interprtations . . . . . . . . Expressions et formules . . . . . . . . . . . . . . . . . 3.4.1 Les termes . . . . . . . . . . . . . . . . . . . . 3.4.2 Le langage . . . . . . . . . . . . . . . . . . . . 3.4.3 Les formules du calcul des prdicats . . . . . . 3.4.4 Occurrences libres et lies dune variable . . . . Smantique . . . . . . . . . . . . . . . . . . . . . . . . 3.5.1 Structures et valuations . . . . . . . . . . . . . 3.5.2 Evaluation . . . . . . . . . . . . . . . . . . . . 3.5.3 Un exemple . . . . . . . . . . . . . . . . . . . . 3.5.4 Vocabulaire . . . . . . . . . . . . . . . . . . . . Manipulation de formules . . . . . . . . . . . . . . . . 3.6.1 Substitution de variables . . . . . . . . . . . . . 3.6.2 Equivalences classiques . . . . . . . . . . . . . 3.6.3 Formes Normales . . . . . . . . . . . . . . . . . Unication . . . . . . . . . . . . . . . . . . . . . . . . 3.7.1 Substitions et MGUs . . . . . . . . . . . . . . . 3.7.2 Algorithme dunication . . . . . . . . . . . . . 3.7.3 Correction et completude . . . . . . . . . . . . Rsolution . . . . . . . . . . . . . . . . . . . . . . . . . 3.8.1 Substitution, sur les formules propostionnelles . 3.8.2 Les rgles du calcul de la rsolution . . . . . . 3.8.3 Utilisation dun dmonstrateur automatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . premier ordre . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

45 46 46 46 46 47 48 49 50 50 51 52 53 54 54 54 55 57 57 58 59 61 61 62 65 71 71 72 73 73 73

4 Calculabilit 4.1 Machines de Turing . . . . . 4.2 Problmes de dcision . . . . 4.3 Un problme indcidable . . . 4.4 Thse de Chruch . . . . . . . 4.5 Indecidabilit de la logique du

Chapitre 1

Introduction
1.1
1.1.1

Pourquoi la logique ?
La formalisation du langage

Le mot logique provient du grec logos (raison, discours), et signie "science de la raison". Cette science a pour objets dtude le discours et le raisonnement. Ceux-ci dpendent bien entendu du langage utilis. Si on prend le langage courant, on se rend compte facilement : quil contient de nombreuses ambiguts : nous ne sommes pas toujours srs de la smantique dun nonc ou dune phrase. Par exemple : nous avons des jumelles la maison . (Deux lles ou des lunettes optiques ?) Ou il a trouv un avocat (le professionnel ou le fruit ?) quil est dicile de connatre la vracit dun nonc : il pleuvra demain , Jean est laid , la logique cest dur . quil permet dnoncer des choses paradoxales : 1. Je mens : comme pour tout paradoxe de ce type, on aboutit la conclusion que si cest vrai alors cest faux. . . et inversement. 2. Je suis certain quil ny a rien de certain 3. Un arrt enjoint au barbier (masculin) dun village de raser tous les hommes du village qui ne se rasent pas eux-mmes et seulement ceux-ci. Le barbier na pas pu respecter cette rgle car : sil se rase lui-mme, il enfreint la rgle, car le barbier ne peut raser que les hommes qui ne se rasent pas eux-mmes ; sil ne se rase pas lui-mme (quil se fasse raser ou quil conserve la barbe), il est en tort galement, car il a la charge de raser les hommes qui ne se rasent pas eux-mmes. 4. Paradoxe de Russel : cest la version mathmatique du paradoxe du barbier : soit a lensemble des ensembles qui ne se contiennent pas eux-mme. Cet ensemble nexiste pas car on peut vrier que a a ssi a / a.

Tout ceci fait que les langues naturelles ne sont pas adaptes au raisonnement formel. Cest pourquoi par exemple, on vous a appris un langage spcique pour faire des preuves en mathmatique. Une preuve mathmatique ne peut tre faite en utilisant tout le vocabulaire de la langue naturelle car les noncs et les preuves deviendraient alors ambigus. Le langage utilis en mathmatique est celui de la logique classique (en ralit, cest un langage un peu plus souple, entre la logique classique et la langue naturelle).

1.1.2

La formalisation du raisonnement

Une fois le langage formalis, ce qui intresse les logiciens cest le raisonnement, et en particulier, la dnition de systmes formels permettant de mcaniser le raisonnement. Au dbut du 20ime sicle, le rve du logicien est de faire de la logique un calcul et de mcaniser le raisonnement et par suite toutes les mathmatiques. En 1930, Kurt Gdel met n cette utopie en prsentant son rsultat dincompltude : il existe des noncs darithmtique qui ne sont pas prouvable par un 5

Chapitre 1. Introduction

systme formel de preuve. Il nexiste donc pas dalgorithme qui permette de savoir si un nonc mathmatique est vrai.

1.2

Logique et informatique

Malgr ce rsultat ngatif, larrive de linformatique partir des annes 30 marque lessor de la logique. Elle est prsente dans quasiment tous les domaines de linformatique : vous verrez par exemple en cours darchitecture que votre ordinateur est form de circuits logiques. la programmation nest au fond que de la logique. Dans les anne 60, la correspondance de Curry-Howard, tablie une correspondance preuve/programme : une relation entre les dmonstrations formelles dun systme logique et les programmes dun modle de calcul. le traitement automatique des langues, lintelligence articielle, la logique apparait galement dans toutes les questions de suret. On demande maintenant de plus en plus de prouver la suret des programmes et des protocoles. Pour cela on modlise les excutions des programmes, on exprime les proprits de sret par une formule logique, puis on vrie que les modles satisfont bien la formule. A cette eet, dinnombrables logiques ont ts dveloppes, comme les logiques temporelles qui permettent de raisonner sur lvolution de certains systmes au cours du temps. Il existe mme des logiques pour formaliser les rgles des pare-feu, an dviter davoir des systmes de rgle incohrents. et plein dautres que joublie. Il existe galement des logiciels qui permettent de prouver des formules logique (automatiquement ou semi-automatiquement). En particulier on a des logiciels permettant de gnrer du code vri : on entre une abstraction du programme a raliser, on prouve sur cette abstraction de faon plus ou moins automatique mais sre, les proprits de sret souhaites ; et le logiciel produit du code certi. Linformatique est donc indissociable de la logique. Heureusement tout bon informaticien nest pas oblig dtre un bon thoricien de la logique, mais il doit tre capable maitriser son utilisation.

1.3

Contenu du cours

On sintressera principalement (des fragments de) la logique classique, qui est la logique utilise pour les mathmatiques, et forme la base de presque toutes les autres logiques. Nous allons nous intresser aux fragment suivants : la logique propositionnelle ; la logique du premier ordre. Pour chacune de ces logiques, nous nous poserons principalement les questions suivantes : Quelle est sa syntaxe ? I.e., comment crire une phrase dans le langage de la logique considr. Quel est sa smantique ? Cest--dire, tant une phrase, savoir lui attribuer un sens. Cette question ouvre une autre qui est "de quel forme sont les modles dune formule", cest dire : mon langage parle dobjets, qui se placent dans un univers prcis : quel est cet univers ? La logique est elle-dcidable ? Etant donn une phrase (formule) du langage, existe-il une procdure eective permettant dvaluer cette formule. Existe-il un systme formel de calcul permettant de "prouver" quun nonc est vrai ou faux. Dautres questions se posent videment mais se sont principalement celles-ci qui intressent linformaticien.

Chapitre 2

Calcul propositionnel
2.1 Introduction

Les formules (ou phrases, ou enoncs) du calcul propositionnel sont de deux types : ou bien une formule est une proposition atomique, ou bien elle est compose partir dautres formules laide des connecteurs logiques , , , (et , non , ou , implique , que lon appelle connecteurs propositionnels ). Considrons, par exemple, lnonce arithmtique 2+2 = 4 ou 3+3 = 5 . Cette formule peut se considrer comme construite des propositions atomiques 2+2 = 4 et 3+3 = 5 , via le connecteur propositionnel ou . Une analyse similaire peut se faire pour les noncs du langage naturel. On considre lnonce sil pleut, alors le soleil se cache , que lon reconnatra tre quivalent il pleut implique que le soleil se cache , comme obtenu des deux propositions atomiques sil pleut et le soleil se cache via le connecteur propositionnel implique . Une proposition atomique est un nonc simple, ne pouvant prendre que les valeurs "vrai" ou "faux ", et ce de faon non ambigu ; elle donne donc une information sur un tat de chose. De plus une proposition atomique est indcomposable : le ciel est bleu et lherbe est verte nest pas une proposition atomique mais la composition de deux propositions atomiques. Dans lanalyse du langage naturel, on ne peut pas considrer comme des propositions : les souhaits, les phrases impratives ou les interrogations. Nous avons dj vu des exemples de formules composes. Considrons maintenant lnonc sil neige, alors le soleil se cache et il fait froid . Cest une formule compose, via le connecteur implique , depuis la formule atomique il neige et la formule compose le soleil se cache et il fait froid . On peut donc composer des formules partir dautres formules composes. La valeur de vrit dune formule compose se calcule comme une fonction de formules dont elle est compose. Le calcul des propositions est la premire tape dans la dnition de la logique et du raisonnement. Il dnit les rgles de dduction qui relient les phrases entre elles, sans en examiner le contenu ; il est ainsi une premire tape dans la construction du calcul des prdicats, qui lui sintresse au contenu des propositions. Nous partirons donc en gnral de faits : "p est vrai, q est faux" et essaierons de dterminer si une armation particulire est vraie.

2.2
Le

Syntaxe du calcul propositionnel : les formules


langage du calcul propositionnel est form de : symboles propositionnels Prop = {p1 , p2 , . . .} ; connecteurs logiques {, , , } ; symboles auxiliaires : parenthses et espace.

Remarque 2.1. Dans la littrature logique on utilise plusieurs synonymes pour symbole propositionnel ; ainsi variable propositionnelle, proposition atomique, formule atomique, ou encore atome sont tous des synonymes de symbole propositionnel. 7

Chapitre 2. Calcul propositionnel

Lensemble Fcp des formules du calcul propositionnel est le plus petit ensemble tel que : tout symbole propositionnel est une formule ; si est une formule alors est une formule ; si , sont des formules alors , et sont des formules. Les symboles auxiliaires ne sont utiliss que pour lever les ambiguts possibles : par exemple, la formule p q r est ambigu, car elle peut se lire de deux faons direntes, ((p q ) r) ou bien (p (q r)). Exemple. p, p (q r) et p q sont des formules propositionnelles ; (q ) et f (x) g (x) nen sont pas. A cause de la structure inductive de la dnition, une formule peut-tre vue comme un arbre dont les feuilles sont tiquets par des symboles propositionnels et les noeuds par des connecteurs. Par exemple, la formule p (q r) correspond larbre reprsent Figure 2.2.

p q
Figure 2.1 Reprsentation arborescente de la formule p (q r) Notation 2.2. On utilise souvent en plus le connecteur binaire comme abrviation : est labrviation de ( ) ( ). De la mme faon, on ajoute le symbole qui correspond Faux et le symbole > qui correspond Vrai. Ces deux symboles sont aussi des abrviations, ils ne sont pas indispensables au langage. (Par exemple peut tre utilis la place de p p et > la place de p p.) Dnition 2.3 (Sous-formule). Lensemble SF () des sous-formules dune formules est dni par induction de la faon suivante. SF (p) = {p} ; SF () = {} SF () ; SF ( ) = { } SF () SF ( ) (o dsigne un des symboles , , ). Par exemple, SF (p (q r)) = {p, q, r, q, q r, p (q r)}. Quand on voit une formule comme un arbre, une sous-formule est simplement un sous-arbre (voir Figure 2.2). Dnition 2.4 (Sous-formule stricte). est une sous-formule stricte de si est une sous-formule de qui nest pas .

2.3

Smantique du calcul propositionnel

Il faut maintenant un moyen de dterminer si une formule est vraie ou fausse. La premire tape est de donner une valeur de vrit aux propositions atomiques. Lvaluation dune formule, dpend donc des valeurs choisies pour les symboles propositionnels. Ces valeurs sont donnes par une valuation. Dnition 2.5 (Valuation). Une valuation est une application de Prop dans {0, 1}. La valeur 0 dsigne le "faux" et la valeur 1 dsigne le "vrai".

2.3 Smantique du calcul propositionnel

p q
Figure 2.2 Reprsentation arborescente des sous-formules de p (q r) Une valuation sera souvent donne sous forme dun tableau. Par exemple, si Prop = {p, q } p q alors la valuation v : p 7 1, q 7 0 scrit plus simplement v : 1 0 Une fois la valuation v choisie, la valeur de la formule se dtermine de faon naturelle, par extension de la valuation v aux formules de la faon suivante : Dnition 2.6 (Valeur dune formule). v () = 1 ssi v () = 0 ; v ( ) = 1 ssi v () = 1 ou v ( ) = 1 ; v ( ) = 1 ssi v () = 1 et v ( ) = 1 ; v ( ) = 0 ssi v () = 1 et v ( ) = 0. La dnition prcdente peut apparatre trompeuse car circualire : an dexpliquer la logique, nous somme en train de lutiliser (ssi, ou, et . . . ). Par ailleurs, on peut se servir de la dnition suivante qui est en eet quivalente la Dnition 2.6 : Dnition 2.7 (Valeur dune formule (bis)). v ( ) = 1 v ( ) ; v ( ) = max(v (), v ( )) ; v ( ) = min(v (), v ( )) ; v ( ) = v ( ) . Cette dernire dnition est purement combinatoire car elle repose sur la structure de lensemble ordonn ni { 0 < 1 } ; nous supposons en fait que cette structure est tellement vidente et claire per se quil ny a pas besoin de la justier autrement. Exercice 2.8. Proposez un algorithme qui, tant donn une formule du calcul propositionnel et une valuation v , calcule v (). Quel type de structure de donnes utiliser pour coder les formules ? Quel type de structure de donnes utiliser pour coder les valuations ? Notez que la dnition 2.7 correspond aux tables de vrit des connecteurs logiques (dont vous avez srement entendu parler) : p p 0 1 1 0 p 0 0 1 1 q 0 1 0 1 pq 0 0 0 1 p 0 0 1 1 q 0 1 0 1 pq 0 1 1 1 p 0 0 1 1 q 0 1 0 1 pq 1 1 0 1

Remarque 2.9. Remarquez la dnition particulire de limplication : on lentend en gnral comme un "si ..., alors ...", on voit ici que lnonc "si 1+1=1, alors la capitale de la France est Marseille" est vrai, puisque toute phrase est vraie ds lors que est value faux. Ceci est

10

Chapitre 2. Calcul propositionnel

peu naturel, car dans le langage courant, on ne sintresse la vrit dun tel nonc que lorsque la condition est vraie : "sil fait beau je vais la pche" na dintrt pratique que sil fait beau. . . Attribuer la valeur vrai dans le cas ou la prmisse est fausse correspond a peu prs lusage du si .. alors dans la phrase suivante : "Si Pierre obtient sa Licence, alors je suis Einstein" : cest dire que partant dune hypothse fausse, alors je peux dmontrer des choses fausses (ou vraies). Par contre, il nest pas possible de dmontrer quelque chose de faux partant dune hypothse vraie. On peut ajouter la dnition de la valeur de labrviation : v ( ) = 1 ssi v () = v ( ). Ce qui correspond la table de vrit suivante : p 0 0 1 1 q 0 1 0 1 pq 1 0 0 1

Exercice 2.10. Dnissons lensemble Prop(), des variables propositionnelles contenues dans Fcp , par induction comme suit : Prop() = Prop() , Prop(p) = { p } ,

Montrez que : Prop() = Prop SF (), pour tout Fcp ; si v (p) = v 0 (p) pour tout p Prop(), alors v () = v 0 ().

Prop( ) = Prop() Prop( ) ,

{ , , } .

2.3.1

Modles dune formule

Dnition 2.11. Lensemble des valuations dun ensemble de variables propositionnelles Prop est not Val(Prop) (ou juste Val lorsquil ny a pas dambiguit sur Prop). Val(Prop) est donc lensemble des fonctions de Prop dans {0, 1}. Par exemple, si Prop = {p, q, r}, alors Val est reprsent par la Table 2.3.1, dans lequel chaque ligne est une valuation de Prop : p 0 0 0 0 1 1 1 1 q 0 0 1 1 0 0 1 1 r 0 1 0 1 0 1 0 1

Table 2.1 Lensemble Val(Prop) des valuations de Prop = {p, q, r} Dnition 2.12 (Modle dune formule). Un modle de est une valuation v telle que v () = 1. On note mod() lensemble des modles de . Exemple. Si Prop = {p, q, r} et = (p q ) (p r) alors lensemble des modles de est p 0 1 mod() = 1 1 1 q 1 0 1 1 1 r 0 0 1 0 1

2.3 Smantique du calcul propositionnel

11

Dnition 2.13 (Satisfaisabilit). Une formule est satisfaisable (ou consistante, ou encore cohrente) si elle admet un modle (i.e., si il existe une valuation v telle que v () = 1, i.e. si mod() 6= ).

Dnition 2.14 (Insatisfaisabilit). Une formule est insatisfaisable (ou inconsistante, ou incohrente) si elle nadmet aucun modle (i.e., si pour toute valuation v , v () = 0, i.e., si mod() = ) Dnition 2.15 (Tautologie). Une formule est une tautologie (ou valide) si v () = 1 pour toute valuation v (i.e., si mod() = Val). On note |= pour dire que est une tautologie. Exercice 2.16. Montrez que les formules suivantes sont des tautologies : p p, p ( q p) , (p (q r)) ((p q ) (p r)) , ((p q ) p) p . Un exemple de tautologie est , cest dire le tiers exclus.

Dnition 2.17 (Equivalence). On dit que est quivalente si les deux formules ont les mmes modles (i.e. si mod() = mod( )). On note alors .

Exemple. Les oprateurs , sont associatifs-commutatifs. Deux formules identiques associativitcommutativit prs sont quivalentes. Remplacer une sous-formule dune formule par une formule quivalente 0 donne une formule note [ 0 ]. Cette substitution prserve les modles, i.e., mod() = mod([ 0 ]). Exercice 2.18. crivons si v () = v ( ) pour toute valuation v (voir dnition 2.17). Montrez : >> > ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) .

( ) ( ) ( )

( ) ( )

Proposition 2.19. Soient et deux formules, on a : 1. mod() = Val mod() ; 2. mod( ) = mod( ) mod( ) ; 3. mod( ) = mod( ) mod( ) ; 4. |= ssi mod() mod( ). Dmonstration. 1. pour toute valuation v Val, v mod() ssi ssi ssi ssi 2. pour toute valuation v Val, v mod( ) ssi ssi ssi 3. pour toute valuation v Val, v mod( ) ssi ssi ssi v () = 1 et v ( ) = 1 v mod() et v mod( )
mod() mod( )

v ( ) = 1 v ( ) = 0 v / mod()

Val mod()

v () = 1 ou v ( ) = 1 v mod() ou v mod( )
mod() mod( )

12

Chapitre 2. Calcul propositionnel

4. |= ssi ssi ssi ssi ssi pour toute valuation v Val, v ( ) = 1 pour toute valuation v Val, v ( ) = 1 pour toute valuation v Val, v () v ( )
mod() mod( )

pour toute valuation v Val, v () = 0 ou v ( ) = 1

Dnition 2.20 (Consquence logique). Une formule est consquence logique dune formule si tout modle de est un modle de (i.e., si mod() mod( )). On note alors |= . Remarque 2.21. Attention la confusion dans les deux notations ! v |= o v est une valuation, i.e., lassignation dune valeur aux propositions atomiques de la formule ; cest un raccourcis assez frquent pour v () = 1 ; |= o est une formule. Proposition 2.22. Soient et deux formules propositionnelles. 1. |= si et seulement si |= . 2. si et seulement si |= . Dmonstration. 1. Consquence directe du point 4 de la Proposition 2.19

2. |= ssi v Val, v ( ) = 1 (par la dnition de tautologie) ssi v Val, v () = v ( ) (par la table de verit de ) ssi v Val, v mod() ssi v mod( ) ssi mod() = mod( ) ssi .

2.3.2

La consquence logique (dun ensemble de formules)

Les formules propositionnelles peuvent tre vues comme un ensemble de contraintes sur les propositions. Ainsi, p q contraint p et q tre vraies. Il est donc trs courant de considrer des ensembles de formules propositionnelles pour modliser des problmes de satisfaction de contraintes. On tend les dnitions vues prcdemment aux ensembles de formules. Dnition 2.23 (Modle). Un modle dun ensemble de formules est une valuation v telle que v () = 1 pour tout . On note mod() lensemble des modles de . Cet ensemble de modles est donc lensemble des valuations quon peut attribuer aux variables si on veut respecter toutes les contraintes de . Dnition 2.24 (Satisfaisabilit/Consistance). Un ensemble de formules est satisfaisable (ou consistant, ou cohrent) si il admet au moins un modle (i.e., si mod() 6= ) Dnition 2.25 (Insatisfaisabilit/Contradiction). Un ensemble de formules est insatisfaisable (ou contradictoire, ou inconsistant, ou encore incohrent) si il nadmet aucun modle ( i.e., si mod() = ), on note alors |=. Un ensemble contradictoire ne peut tre satisfait : par exemple lensemble = {p, p} est insatisfaisable. Dnition 2.26 (Consquence logique). Une formule est consquence logique de si et seulement si toute valuation qui donne 1 toutes les formules de donne 1 (i.e., si mod() mod()), on note alors |= . On note cons() lensemble des consquences logiques de . Remarque 2.27. Attention la confusion dans les notations ! v |= o v est une valuation : cette notation est souvent utilise pour dire que v rend vraie la formule ; elle est donc une autre notation pour v () = 1 1 ; |= o est une formule ; |= o est un ensemble de formule.
1. Dans ce texte, nous essayerons dviter cette notation.

2.3 Smantique du calcul propositionnel

13

Remarquez, par ailleurs que |= si, et seulement si, { } |= ; les derrires notations sont donc cohrentes entre elles. Une consquence logique dun ensemble est une nouvelle contrainte dduite directement de . Puisquelle dcoule de , elle ne peut pas apporter de contraintes supplmentaires que celles apportes par . En particulier, les modles de et ceux de {} sont exactement les mmes (cette intuition sera prouve formellement avec la Proposition 2.32). Par exemple, si = {(p s) q, q }, on peut en dduire que p s. Bien entendu, les modles de sont exactement les modles de {p s}. Ceci implique donc galement une mthode de simplication dun ensemble de formule, si contient une formule consquence logique de {}, alors peut tre retire de lensemble de contraintes sans en modier la smantique : mod() = mod( {}). Proposition 2.28. |= ssi {} est contradictoire. Dmonstration. |= ssi pour toute valuation v soit v est un modle de et v () = 1 soit v nest pas un modle de ssi pour toute valuation v soit v est un modle de et v () = 0 soit v nest pas un modle de ssi pour toute valuation v , v nest pas un modle de {} ssi {} est contradictoire. Proposition 2.29. Pour tous ensembles de formules , , En particulier, si alors mod() mod().
mod( ) = mod() mod().

Cette proposition se comprend bien si on voit un ensemble de formules comme un ensemble de contraintes sur les variables propositionnelles. Plus on ajoute de contraintes, et moins il reste de possibilits pour rsoudre ces contraintes. Dmonstration. Pour toute valuation v : v mod( ) ssi pour tout , v () = 1 ssi v mod() et v mod() ssi v mod() mod(). ssi pour tout , v () = 1 et pour tout , v ( ) = 1

Les preuves des propositions suivantes sont laisses en exercice. Proposition 2.30. Si 0 et 0 |= , alors |= . Proposition 2.31. {1 , . . . n } |= ssi |= (1 . . . n )

Cette proposition exprime le fait quun ensemble ni de formules propositionnelles peut toujours tre vu comme une seule formule forme de la conjonction des formules de lensemble. Une formule tant un objet ni, ce rsultat ne se gnralise pas au cas des ensembles de taille non borne. Dans le cas o est inni, il faudra utiliser le thorme de compacit (Thorme 2.35) qui permet de ramener les problmes de satisfaisabilit et de contradiction dun ensemble de taille quelconque celle densemble nis. Dmonstration. Remarquons que
mod({ 1 , . . . , n }) = mod({ 1 } . . . { n })

= mod({ 1 }) . . . mod({ n })

Donc, on a que mod({ 1 , . . . , n }) mod( ) si et seulement si mod(1 . . . n ) mod( ) et, par la Proposition 2.19, la dernire relation est vraie ssi (1 . . . n ) est une tautologie.

= mod(1 ) . . . mod(n ) = mod(1 . . . n ) .

14

Chapitre 2. Calcul propositionnel

Proposition 2.32. |= si, et seulement si, mod() = mod( {}).

Dmonstration. La proposition decoule du fait que mod( {}) = mod() mod({}), et que la relation mod() mod() est equivalenete mod() mod({}) = mod(). Exemple. Avec cet exemple, nous allons tirer avantage des propositions et remarques prcdentes pour rsoudre un ensemble de contraintes ayant une certaine complexit. On dispose de 4 variables propositionnelles, pA , pB , pC , PD , qui obissent aux contraintes suivantes : 1 : pB pC 2 : pA ( pC pD ) 3 : pC ( pB p A ) Soit 1 = {1 , 2 , 3 }, cet ensemble forme lensemble des prmisses partir desquelles nous allons essayer de dduire les valeurs que les variables propositionnelles peuvent prendre. On se pose les questions suivantes : 1. Peut-on simplier lensemble 1 de faon ne pas changer lensemble de ses modles, et donc de ses consquences ? (a) On remarque que la contrainte 3 est une consquence logique de la contrainte 1 . En eet, pour toute valuation v , v satisfait 1 ssi v (pC ) = 0 et v (pB ) = 1, v satisfait 3 ssi v (pC ) = 0 et (v (pA ) = 1 ou v (pB ) = 1). Do, mod(1 ) mod(3 ). (b) Soit 2 = {1 , 2 }, on a mod(2 ) = mod(1 ). En eet, par dnition, mod(1 ) = mod(1 ) mod(2 ) mod(3 ) = mod(1 ) mod(2 ) = mod(2 ). Donc les consquences de 1 et 2 sont les mmes et on peut alors simplier 1 par 2 . 2. Quel est lensemble des modles de 2 ? Modles de pA p B 0 1 0 1 1 1 1 1 1 : pC pD 0 0 0 1 0 0 0 1 Modles de p A pB 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 1 1 1 1 1 2 : pC pD 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1

Lensemble M des modles de 2 est lintersections des modles de 1 et 2 : p A pB p C p D 0 1 0 1 1 1 0 1 3. 2 est-il consistant ? contradictoire ? 2 admet un modle, il est donc consistant et non contradictoire. 4. Quelles consquences logiques pouvons nous tirer de lensemble 2 ? Les consquences logiques de 2 sont toutes les formules dont lensemble des modles contient M . On a donc entre autres : pC , pB , pB pC cons() 5. Ajoutons maintenant une nouvelle contrainte : 3 = {pB pD } 2 . On a mod(3 ) = mod(2 ) mod(pB pD ) = . Donc mod(3 ) = et 3 est contradictoire.

2.3 Smantique du calcul propositionnel

15

2.3.2.1

Compacit

Le thorme de compacit sert caractriser la consquence logique dans les cas o lensemble des formules est inni en ne considrant que des sous-ensembles nis. Par ailleurs, ce thorme jouera un rle cruciale plus tard, dans la preuve du thorme de compltude pour la calcul de la rsolution (Thorme ??). Le thorme de compacit Pour commencer, nous avons besoin du lemme suivant appel Lemme de Knig. Lemme 2.33. Tout arbre inni branchement ni possde une branche innie. Dmonstration. Supposons que T , qui est branchement ni, soit inni. On dnit une branche innie dans T , ce qui mnera la conclusion. Pour cela, on montre par induction la proprit suivante : P(n) : := il existe une branche e0 , . . . en telle que le sous arbre issu de en est inni. Pour n = 0, on choisit e0 = r (la racine de larbre) qui par hypothse est racine dun arbre inni. On suppose P(n) et on montre P(n+1) : Par hypothse, il existe une branche e0 , . . . en telle que le sous arbre issu de en est inni. Considrons les successeurs immdiats de en , disons en1 , . . . , enk : si tous taient racines de sous-arbres nis, disons de cardinaux p1 , . . . , pk , alors il en serait de mme de en (avec un cardinal dau plus p1 + ... + pk+1 ), contradiction. Donc lun dentre eux est le en+1 recherch. Nous aurons besoin du Lemme dans la forme suivante : Lemme 2.34. Tout arbre a branchement ni et dont toutes les branches sont nies, est ni. Thorme 2.35 (Compacit). Un ensemble de formules propositionnelles est satisfaisable ssi tout sous-ensemble ni de est satisfaisable. Par contrapose, le thorme de compacit peut snoncer de la faon suivante : Thorme 2.36 (Compacit). Un ensemble de formules propositionnelles est contradictoire ssi il existe un sous-ensemble ni de contradictoire. Remarquons que limplication si un sous-ensemble ni de est contradictoire, alors est contradictoire est trivialement vraie. Nous nous limiterons prouver limplication inverse. Dmonstration. On fait la preuve dans le cas dnombrable. Nous avons besoin dune construction importante appele "arbre smantique" ou "arbre de Herbrand". Considrons un ensemble dnombrable datomes {p0 , p1 , p2 , . . . , pn , . . .}. Larbre smantique associ est un arbre binaire inni dont toutes les artes gauches sont tiquetes "faux" et celles droites sont tiquetes "vrai". Chaque niveau de larbre est associ une proposition. La racine (le niveau 0) est associ p0 : chaque fois que lon descend dun noeud de niveau pi , ceci revient poser pi faux si lon descend gauche, et pi vrai si lon descend droite. Chaque chemin inni partant de la racine correspond une valuation de lensemble des propositions. Chaque noeud e profondeur n correspond une valuation ve des variables {p0 , . . . pn1 }. Nous appelons un noeud e noeud dchec si sa profondeur est n et il existe une formule e telle que Prop(e ) { p0 , . . . pn1 } et ve (e ) = 0. On suppose que est inconsistante et on montre quil existe un sous-ensemble 0 ni et inconsistant. On commence par remarquer que chaque branche contient un noeud dchec. En eet, si une branche nen contient pas, elle dnit un modle de , ce qui est contradictoire lhypothse. On peut donc faire la construction suivante : Prenons le premier noeud dchec de chaque branche et tiquetons le par une formule de fausse sur ce noeud, puis coupons larbre au niveau du noeud dechec.

16

Chapitre 2. Calcul propositionnel

Larbre obtenu en tronquant ainsi toutes les branches est un arbre branchement ni, ses branches sont nies donc il est ni. Le sous-ensemble 0 des formules de tiquetant les feuilles de larbre est donc ni. Or toutes les feuilles de larbre sont des noeuds dchec et donc chacune des valuations rend fausse au moins une des formules de 0 . Lensemble 0 est ni et inconsistant Corollaire du thorme de compacit : Corollaire 2.37. Une formule est consquence dun ensemble de formules si et seulement si il existe un sous-ensemble ni f ini de tel que f ini |= . Dmonstration. |= ssi {} est contradictoire ssi il existe f {} ni et contradictoire

ssi il existe f ni tel que f {} est contradictoire ssi il existe un sous-ensemble ni f tel que f |= .

2.3.3

Dcidabilit du calcul propositionnel

Une logique est dcidable sil existe un algorithme (calcul ralisable sur un ordinateur qui termine toujours pour toute donne) qui permet de savoir pour chaque formule si elle est une tautologie (i.e. si |= ) ou pas. Thorme 2.38. Le calcul propositionnel est dcidable. Dmonstration. Mthode des tables de vrit : calculer la table de vrit prenant en argument les symboles propositionnels de et calculer pour chaque valuation possible la valeur de . Cot : O(2n ) avec n la taille de (nombre de propositions). Nous verrons par la suite quil y a de meilleurs algorithmes, mais quil ont tous un cot exponentiel. La plupart de ces algorithmes dbutent par une premire phase de normalisation de la formule, cest dire quon modie la syntaxe de la formule de manire la mettre sous une forme normalise, tout en conservant la smantique de la formule, cest--dire lensemble de ses modles.